Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "OSGi Remote Services and ECF"

(Introduction)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Introduction==
+
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 for OSGi 4.2 Remote Services standard is a layered set of application programming interfaces (APIs).  This modular structure (coming from the use of OSGi and modular design principles) allows service creators to decide (at runtime if necessary) which mechanisms and underlying protocols are appropriate for their remote service, and then use only those mechanisms.   
+
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 servicesSuch an model is helpful for implementing distributed applications for two at least reasons:
  
This approach benefits the service creator in two major ways:  1) it reduces the complexity of creating, deploying, managing, and using remote services...by only using the mechanisms that are actually needed; and 2) giving flexibility to meet any needs for integration and interoperabilityIn other words, system complexity is reduced by using only the modules needed for the service, while flexibility is increased.
+
# It '''reduces''' overall '''system 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 messagingThe 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.
Here is a diagram showing the relationship between the various layered APIs in ECF's support of OSGi Remote Services.   
+
# '''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 implementationsSuch custom providers may be FOSS or not; the decision is up to the custom provider implementer.
  
 +
[[ECF#Introductory_Materials|Here are several tutorials]] showing how ECF Remote Services can be used on several OSGi frameworks.
 
[[Image:distributedosgi1.png]]
 
[[Image:distributedosgi1.png]]
  
Here are two pages (with source) showing the use of ECF's remote services to expose and access a 'hello world' remote service. 
+
==Under Construction==
 
+
#RFC119 - [[Getting Started with ECF's RFC119 Implementation]]
+
#Remote Services API - [[Getting Started with Using the ECF Remote Services API]]
+
  
 
==Related Documentation==
 
==Related Documentation==
 +
 +
[[Getting Started with ECF's OSGi Remote Services Implementation]]
 +
 +
[[Tutorial: Building your first Asynchronous OSGi Remote Service]]
 +
 +
[[ECF/Asynchronous_Remote_Services|Asynchronous Remote Services]]
 +
 +
[[ECF#Introductory_Materials|ECF Remote Services Tutorials]]
  
 
[[ECF API Docs]]
 
[[ECF API Docs]]
  
 
[http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/ API Javadocs]
 
[http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/ API Javadocs]
 
[[Getting Started with ECF's RFC119 Implementation]]
 
  
 
[[Getting Started with Using the ECF Remote Services API]]
 
[[Getting Started with Using the ECF Remote Services API]]
  
 
[[Distributed EventAdmin Service]]
 
[[Distributed EventAdmin Service]]
 
{{ECF}}
 
[[Category:Eclipse Communication Framework]]
 
[[Category:EclipseRT]]
 
[[Category:Draft Documentation]]
 

Latest revision as of 16:11, 9 April 2015

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:

  1. It reduces overall system 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.
  2. 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.
  3. 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. Distributedosgi1.png

Under Construction

Related Documentation

Getting Started with ECF's OSGi Remote Services Implementation

Tutorial: Building your first Asynchronous OSGi Remote Service

Asynchronous Remote Services

ECF Remote Services Tutorials

ECF API Docs

API Javadocs

Getting Started with Using the ECF Remote Services API

Distributed EventAdmin Service

Back to the top