Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Swordfish Documentation: Architecture: Internal Service Proxy"

Line 1: Line 1:
<h1>Component diagrams</h1>
+
== Overview ==
  
== Sketch of сomponent сlasses for internal Service Proxy Plugin ==
+
== Description ==
 +
=== Component diagrams ===
 +
 
 +
==== Sketch of сomponent сlasses for internal Service Proxy Plugin ====
 
[[Image:Service_Proxy_Classes.png]]
 
[[Image:Service_Proxy_Classes.png]]
  
Line 48: Line 51:
 
<br/>
 
<br/>
 
During invocation ServiceProxy performs the following steps:
 
During invocation ServiceProxy performs the following steps:
<ul>
+
* creates new NMR Exchange for provided operation;
<li>creates new NMR Exchange for provided operation;</li>
+
* looks up outbound endpoint from the NMR using provided service name;
<li>lookups outbound endpoint from the NMR using provided service name;</li>
+
* sends exchange to NMR according to selected message exchange pattern (e.g. "http://www.w3.org/ns/wsdl/in-out").
<li>sends exchange to NMR according to selected message exchange pattern (e.g. "http://www.w3.org/ns/wsdl/in-out").</li>
+
 
</ul>
+
'''NOTE: '''Current version of proxy assumes that outbound endpoint of target service is already registered within ServiceMix NMR.
<b>NOTE: </b>Current version of proxy assumes that outbound endpoint of target service is already registered within ServiceMix NMR.
+
<br/><br/>
 +
 
 +
== See also ==
 +
 
 +
----
 +
[[Swordfish_Documentation:_Architecture | Architecture overview ]]

Revision as of 05:14, 20 November 2009

Overview

Description

Component diagrams

Sketch of сomponent сlasses for internal Service Proxy Plugin

Service Proxy Classes.png

Plugin description

Example of ServiceProxy usage:

  • proxy injection (at runtime available as OSGi service):
  •     <osgi:reference id="serviceProxy"
        	interface="org.eclipse.swordfish.core.proxy.ServiceProxy" />
    
        <bean id="ASFRegistryProvider"
            class="org.eclipse.swordfish.internal.resolver.backend.remote.ASFRegistryProvider"
            p:proxy-ref="serviceProxy"/>
    
  • invocation of target service:
  • public class ASFRegistryProvider extends AbstractDocumentProvider {
    
        private ServiceProxy proxy;
    
        @Override
        public Collection<ServiceDescription<?>> getServiceProviderDescriptions(QName interfaceName) {
            String res = null;
            try {
                res = proxy.invokeRequestResponseOperation(
                    QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}ServiceRegistryProvider"),
                    QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}xlookUp_serviceProvider"),
                    "<inMessage/>");
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            // further processing...
    
            return null;
        }
    
        public void setProxy(ServiceProxy proxy) {
            this.proxy = proxy;
        }
    
    }
    


During invocation ServiceProxy performs the following steps:

  • creates new NMR Exchange for provided operation;
  • looks up outbound endpoint from the NMR using provided service name;
  • sends exchange to NMR according to selected message exchange pattern (e.g. "http://www.w3.org/ns/wsdl/in-out").

NOTE: Current version of proxy assumes that outbound endpoint of target service is already registered within ServiceMix NMR.

See also


Architecture overview

Back to the top