Difference between revisions of "OSGi Remote Services and ECF"

From Eclipsepedia

Jump to: navigation, search
(New page: ==Introduction== ECF's support for OSGi 4.2 Remote Services is a layered set of application programming interfaces (APIs). The API layering and the associated modularity (coming from the...)
 
(Introduction)
(12 intermediate revisions by one user not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
  
ECF's support for OSGi 4.2 Remote Services is a layered set of application programming interfaces (APIs).  The API layering and the associated modularity (coming from the use of OSGi and modular design principles) allows service creators to decide which mechanisms are appropriate for their service, and only use those mechanisms.  This reduces the complexity of creating, deploying, and using remote services in service-oriented architectures, while at the same time giving high flexibility about how integration and interoperability can be accomplished.
+
Chapter 13 in the [http://www.osgi.org/Specifications/HomePage OSGi 4.2 compendium] specifies a new standard for service-oriented architecture (SOA).  This standard uses the well-established OSGi '''service registry''' to expose '''remote services'''...i.e. OSGi services that are distributed on a network.
  
Here is a diagram showing the relationship between the various layered APIs in ECF's support of OSGi Remote ServicesAPIs are shown in white and gray, implementation/providers are shown in blue.
+
ECF's support for this standard is implemented as a layered set of application programming interfaces (APIs).  The modular structure allows service builders and service consumers to use an 'ala carte' model for defining, creating, deploying, integrating, and running distributed services.  Such an 'ala carte' model is helpful for implementing distributed applications for two primary reasons:
 +
 
 +
# It '''reduces''' overall '''system complexity'''.  Networked/distributed applications frequently can quickly become very complicated.  By only including modules that are actually necessary, rather than including/requiring functionality needed to support other use cases for distributed services, overall system complexity is reduced.  For a lucid presentation about the value of modularity for simplifying complicated systems, see [http://www.martinlippert.org/events/MeetTheExperts-Architektur-2009-ModuleSystemsAndArchitectures.pdf How Module Systems Drive Architectures].
 +
# It provides '''flexibility'''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.
  
 
[[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.   
+
Here are two examples (with source) showing the use of ECF's remote services to expose and access a 'hello world' remote service.   
  
#RFC119 - [[Getting Started with ECF's RFC119 Implementation]]
+
#[[Getting Started with ECF's OSGi Remote Services Implementation]]
#Remote Services API - [[Getting Started with Using the ECF Remote Services API]]
+
  
 
==Related Documentation==
 
==Related Documentation==

Revision as of 19:47, 26 January 2010

Introduction

Chapter 13 in the OSGi 4.2 compendium specifies a new standard for service-oriented architecture (SOA). This standard uses the well-established OSGi service registry to expose remote services...i.e. OSGi services that are distributed on a network.

ECF's support for this standard is implemented as a layered set of application programming interfaces (APIs). The modular structure allows service builders and service consumers to use an 'ala carte' model for defining, creating, deploying, integrating, and running distributed services. Such an 'ala carte' model is helpful for implementing distributed applications for two primary reasons:

  1. It reduces overall system complexity. Networked/distributed applications frequently can quickly become very complicated. By only including modules that are actually necessary, rather than including/requiring functionality needed to support other use cases for distributed services, overall system complexity is reduced. For a lucid presentation about the value of modularity for simplifying complicated systems, see How Module Systems Drive Architectures.
  2. It provides flexibility. 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.

Distributedosgi1.png

Here are two examples (with source) showing the use of ECF's remote services to expose and access a 'hello world' remote service.

  1. Getting Started with ECF's OSGi Remote Services Implementation

Related Documentation

ECF API Docs

API Javadocs

Getting Started with ECF's RFC119 Implementation

Getting Started with Using the ECF Remote Services API

Distributed EventAdmin Service

Eclipse Communication Framework
API
API DocumentationJavadocProvidersECF/Bot Framework
Development
Development GuidelinesIntegrators Guide