incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "Synapse/Architecture" by PaulFremantle
Date Wed, 12 Apr 2006 08:55:56 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The following page has been changed by PaulFremantle:
http://wiki.apache.org/incubator/Synapse/Architecture

------------------------------------------------------------------------------
    * “SOAP Intermediary”. In this model, the service client explicitly uses WS-A “To”
headers, but delivers the message to Synapse to route on. This model is the replacement for
the now dead WS-Routing. In Axis2 this can be enabled by explicitly setting the transport
headers to pass the message to the Synapse endpoint. 
    * Embedded: In this model Synapse is embedded in a client or server and takes the place
of a “smart” or rules-based handler. 
  
+ === SynapseMessage ===
+ 
+ The core aim of a SynapseMessage is to capture the semantics of a SOAP message plus the
context required to mediate it. The SynapseMessage is a simple rendition of a SOAP message
plus context. The aim is that the message is injected into Synapse by the underlying framework,

+ 
  === SynapseEnvironment ===
  
  A given instance of Synapse is represented by a SynapseEnvironment (see org.apache.synapse.SynapseEnvironment).
This provides the interface from the mediators into the underlying environment and thus the
separation from – for example – Axis2.
+ 
+ [http://fremantle.org/synapsearchitecture.png Picture of the Synapse Architecture]
  
  The SynapseEnvironment offers a few simple functions: 
   * inject messages into Synapse or 
@@ -175, +181 @@

    * The metrics for outbound services that Synapse invokes
    * The metrics for the actual service invocations that Synapse itself makes.
  
- 
  Because of the inherent separation of concerns in the Synapse design, Synapse may be implemented
on other systems than Axis2, and so the metrics available from that underlying system are
abstracted through the SynapseEnvironment interface:
  
  ''Metrics getMetrics(String URI);'' 
  
  This method returns an object providing the usual metrics (average response time, hit rate,
failure rate, min response time, max response time, etc. Those metrics include metrics for
both the time spent inside the local Synapse environment as well as time spent on onbound
invocation) for any requests made to the given URI.  
  
- The SynapseEnvironment allows multiple “metric” providers to be used. For example, a
simple internal system may be used, or a more extensive JMX or WSDM based system may be plugged
in via this model. The metric provider is plugged in through the SynapseMetricProvider interface.
+ The SynapseEnvironment allows multiple “metric” providers to be used. For example, a
simple internal system may be used, or a more extensive JMX or WSDM based system may be plugged
in via this model. The metric provider is plugged in through the MetricFactory interface.
- 
   
  === Events ===
  
  Another important aspect of an ESB/Mediation fabric is the concept of an event. For example,
a typical model is that a mediation engine may generate events – for example – if a failure
occurs, or a large transaction goes through.
  
- In order to support a simple event model in Synapse we support a model compatible with WS-Eventing
([[http://www.w3.org/Submission/WS-Eventing/]]) spec in the engine.
+ In order to support a simple event model in Synapse we support a '''publish''' capability
which is available to a mediator.
+ 
+ The model is designed to be compatible with WS-Eventing ([[http://www.w3.org/Submission/WS-Eventing/]])
spec in the engine.
  
  The primary interface of interest to a mediator is the publish interface:
- <code java>
+  
+ {{{
- EndpointReference fullEPR = SynapseEnvironment.createEventSource(EndpointReference epr);
+ EndpointReference createEventSource(EndpointReference partialEPR);
- EndpointReference fullEPR = SynapseEnvironment.createEventSource(String partialURI);
+ EndpointReference createEventSource(String partialURI);
- SynapseEnvironment.publish(EndpointReference epr, SynapseMessage sm);
+ void publish(EndpointReference epr, SynapseMessage sm);
- SynapseEnvironment.deleteEventSource(EndpointReference epr);
+ void deleteEventSource(EndpointReference epr);
- </code>
+ List getEventSources();
+ }}}
+ 
+ 
  As time goes on we will add a suitable internal subscription model. 
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message