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 "Distribution Providers"

Line 15: Line 15:
 
*ECF Core:  [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf org.eclipse.ecf], [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.identity org.eclipse.ecf.identity]
 
*ECF Core:  [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf org.eclipse.ecf], [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.identity org.eclipse.ecf.identity]
 
*org.eclipse.equinox.concurrent.future bundle
 
*org.eclipse.equinox.concurrent.future bundle
[http://download.eclipse.org/rt/ecf/latest/javadoc/org/eclipse/ecf/remoteservice/package-summary.html API Javadoc]<br>
+
[http://download.eclipse.org/rt/ecf/latest/javadoc/org/eclipse/ecf/remoteservice/package-summary.html Remote Service API Javadoc]<br>
  
 
All RSA distribution providers implement the Remote Services API.
 
All RSA distribution providers implement the Remote Services API.
  
==Open Source Providers==
+
==Distribution Providers==
 +
 
 +
Generic Provider
 +
 
 +
OSGi Configuration Types/ECF Container Types: 
 +
<ul>
 +
<li>ecf.generic.server</li>
 +
<li>ecf.generic.client</li>
 +
<li>ecf.generic.ssl.server</li>
 +
<li>ecf.generic.ssl.client</li>
 +
</ul>
 +
 
 +
For example, to export an instance of MyServiceImpl
 +
 
 +
<pre>
 +
// Set required OSGi standard service property
 +
props.put("service.exported.interfaces","*");
 +
// Set OSGI standard service.exported.configs property to ecf.generic.server
 +
props.put("service.exported.configs","ecf.generic.server");
 +
// With two service properties, will export as a remote service via an instance of ecf.generic.server
 +
bundleContext.registerService(MyService.class, new MyServiceImpl(), props);
 +
</pre>
 +
 
 +
See [[ECF_Generic_Provider_Configuration_Properties#Remote_Service_Configuration_Properties | here ]] for description for provider-specific service properties.
 +
 
 +
Bundles:  org.eclipse.ecf.provider, org.eclipse.ecf.provider.remoteservice
 +
Dependencies: 
 +
<ul>
 +
<li>org.eclipse.ecf.provider:  ECF core</li>
 +
<li>org.eclipse.ecf.provider.remoteservice: org.eclipse.ecf.provider, org.eclipse.ecf.remoteservice.asyncproxy</li>
 +
</ul>
  
 
[[ECF Generic Distribution Provider]]
 
[[ECF Generic Distribution Provider]]

Revision as of 16:43, 7 October 2015

Introduction

The Remote Services/Remote Service Admin specifications (chaps 100 and 122 in OSGi Enterprise spec) allows for the use of distinct distribution providers for every exported remote service. Distribution providers are responsible for the actual marshalling/serialization and network communication that takes place when a consumer invokes a method on a remote service.

The ECF Architecture allows the use of multiple distribution providers. Further, ECF's open APIs and implementations allows the creation of new distribution providers that may be based upon existing providers or may be created from scratch using any desired transport protocols and/or serialization formats.

Remote Services API

ECF's API for distribution providers is called the Remote Services API. An implementation of this API is the only thing required of distribution provider implementations for them to be successfully used as a standards/compliant implementation of RS/RSA.

Symbolic Name: org.eclipse.ecf.remoteservice
Minimum EE: J2SE-1.5+
Dependencies

Remote Service API Javadoc

All RSA distribution providers implement the Remote Services API.

Distribution Providers

Generic Provider

OSGi Configuration Types/ECF Container Types:

  • ecf.generic.server
  • ecf.generic.client
  • ecf.generic.ssl.server
  • ecf.generic.ssl.client

For example, to export an instance of MyServiceImpl

// Set required OSGi standard service property
props.put("service.exported.interfaces","*");
// Set OSGI standard service.exported.configs property to ecf.generic.server
props.put("service.exported.configs","ecf.generic.server");
// With two service properties, will export as a remote service via an instance of ecf.generic.server 
bundleContext.registerService(MyService.class, new MyServiceImpl(), props);

See here for description for provider-specific service properties.

Bundles: org.eclipse.ecf.provider, org.eclipse.ecf.provider.remoteservice Dependencies:

  • org.eclipse.ecf.provider: ECF core
  • org.eclipse.ecf.provider.remoteservice: org.eclipse.ecf.provider, org.eclipse.ecf.remoteservice.asyncproxy

ECF Generic Distribution Provider

r-OSGi Distribution Provider

JMS/ActiveMQ Distribution Provider

MQTT Distribution Provider

REST-based Distribution Providers

Back to the top