OSGi Remote Services and ECF
The OSGi Alliance provides a new standard for distributed service-oriented architecture called Remote Services. Remote Services extends functionality of the OSGi service registry to export arbitrary services for out-of-process access.
ECF's support is implemented as a layered set of open, stable, documented, community-created and reviewed APIs. This layered modular structure allows service implementers and service consumers to easily but flexibly declare, implement, test, deploy, and manage their distributed services. Such an model is helpful for implementing distributed applications for two at least reasons:
- It reduces overall sytstem and application complexity by promoting loose coupling and high cohesion via OSGi Services. Distributed applications can easily become complicated and difficult to manage, version, and maintain. The use of OSGi Remote Services to create a formal separation between contract/service type and implementation makes system complexity much easier to understand and manage.
- It provides flexibility and extensibility. Networked applications frequently require a good deal of flexibility...i.e. the flexibility to replace one transport with another, one security model for another, one deployment and management approach with another, synchronous RPC with asynchronous messaging. The flexibility of using OSGi modularity and ECF allows service developers and consumers to mix-and-match transport protocols and serialization formats, supports interoperability and integration with existing systems, and supports use of synchronous and/or asynchronous invocation patterns as needed.
- Eliminate vendor transport lockin. ECF's open implementation of OSGi Remote Services is the only transport independent implementation, allowing custom distribution and discovery providers to replace existing implementations. Such custom providers may be FOSS or not; the decision is up to the custom provider implementer.
Here are several tutorials showing how ECF Remote Services can be used on several OSGi frameworks.