| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' |
| |
| $pageTitle = ""; |
| $pageKeywords = ""; |
| $pageAuthor = ""; |
| |
| ob_start(); |
| ?> |
| <div id="maincontent"> |
| <div id="midcolumn"> |
| |
| <h1>Swordfish</h1> |
| </p> |
| <?php |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); |
| generate_header("SOA Runtime"); |
| ?> |
| |
| <p> |
| |
| <h2>Introduction</h2> |
| |
| |
| <p>"Swordfish" is the nickname for the SOA Runtime Framework project. |
| It is is a proposed open source project. This proposal is in the |
| Project Proposal Phase (as defined in the Eclipse Development Process |
| document) and is written to declare its intent and scope. This proposal |
| is written to solicit additional participation and input from the |
| Eclipse community. You are invited to comment on and/or join the |
| project. |
| Please send all feedback to <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.soa">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.soa</a>.</p> |
| |
| |
| <h2>Background</h2> |
| |
| |
| <p>The goal of a service-oriented business architecture (SOA) is the |
| loose coupling of business services. In order to enable such a |
| service-oriented business architecture users require a SOA runtime |
| platform. As of today, enterprise users face a number of challenges in |
| operating these SOA runtime platforms, e.g.</p> |
| |
| |
| <ol> |
| |
| <li>SOA Platforms consist of a set of internal technical services |
| (e.g. registry, messaging, and security). Today, those technical |
| services are |
| strongly coupled within most of these platforms. A loose coupling of |
| those services would allow a best of breed approach and would give the |
| user the option to leverage existing software assets</li> |
| |
| <li>The interoperability between different SOA runtime platforms is |
| often limited to the basic technical services (e.g. messaging). High |
| level |
| interoperability (e.g. business process orchestration) across SOA |
| domains operated on different platforms is often not possible.</li> |
| |
| <li>The enablement of embedded systems collaborating in a SOA runtime environment.</li> |
| |
| </ol> |
| |
| |
| <p>The SOA platforms available today fall short to these expectations |
| and limit the value of SOA on the user side. This project intends to |
| address these three challenges:</p> |
| |
| <ul> |
| |
| <li>Lack of common interfaces between the technical components of a SOA runtime platform</li> |
| |
| <li>Lack of interoperability between SOA environments</li> |
| |
| <li>Lack of SOA runtime deployment on embedded systems, e.g., on medical devices in the healthcare industry</li> |
| |
| </ul> |
| |
| |
| <p><b>Lack of common interfaces</b>: The different SOA runtime |
| platforms consist of very similar technical components (e.g. service |
| registry, messaging). The lack of common APIs between these technical |
| components means |
| that these components cannot be exchanged. This project intends to |
| develop a common framework/API which treats these components as |
| exchangeable |
| plug-ins.</p> |
| |
| |
| <p><b>Lack of interoperability</b>: Although there are ongoing |
| standardization efforts, the interoperability of heterogeneous SOA |
| environments |
| is very limited today. As an example, a BPEL code can usually not be |
| executed across different SOA environments. Rather than introducing yet |
| another |
| new SOA platform, the SOA Runtime Framework introduces a new |
| abstraction layer and allows developers to create adapters to existing |
| SOA platforms.</p> |
| |
| |
| <p><b>Lack of SOA deployment on embedded systems</b>: The vast majority |
| of the currently existing SOA environments is exclusively targeted at |
| enterprise |
| environments and demands a considerable amount of memory and processing |
| resources. The SOA Runtime Framework takes a different approach in that |
| all components could potentially be replaced by alternatives with a |
| smaller footprint which renders it equally well suited for both |
| enterprise environments and |
| resource-restricted embedded and mobile devices.</p> |
| |
| |
| <h2>Description</h2> |
| |
| |
| <p>The goal of the Swordfish project is to provide an extensible SOA |
| framework that can be complemented by additional open source components |
| such as a service registry, a messaging system, a BPEL engine etc. to |
| form a comprehensive open source SOA runtime environment based on both |
| established and emerging open standards.</p> |
| |
| |
| <p>The following figure illustrates Swordfish's component architecture:</p> |
| |
| |
| |
| <div style="text-align: center;"><img style="width: 397px; height: 356px;" src="swordfish%20architecture.png" alt=""></div> |
| |
| |
| |
| <h3>(1) Functional components and plug-ins</h3> |
| |
| |
| <p>Swordfish defines a number of components and plug-ins:</p> |
| |
| |
| <ul> |
| |
| <li><i>Business Application Adaptor</i> (plug-in) |
| <p>Business application adaptors connect business application logic |
| (the actual service implementation) to the other components within the |
| framework. A Business Application Adaptor's reponsibilities include the |
| mapping of implementation-specific data types to normalized XML |
| messages and the correlation of incoming and outgoing messages. A |
| sample implementation of an Business Application Adapter delivered |
| along with the framework provides an easy-to-use Java API to facilitate |
| the integration of business logic.<br> |
| In addition to that, an open source BPEL engine will be integrated into |
| the framework as another example of a Business Application Adaptor.</p> |
| </li> |
| |
| |
| <li><i>Service Resolver</i> (plug-in) |
| <p>The Service Resolver is reponsible for resolving logical service |
| references into physically addressable communication endpoints. The |
| revolving process can take additional metadata (e.g. policies) into |
| account, depending on the desired strategy. A sample implementation |
| delivered as part of the |
| framework uses a file system-based data store to retrieve service |
| information. Another possible implementation resolves service |
| references based on information stored in a UDDI registry.</p> |
| </li> |
| |
| |
| <li><i>Security Manager</i> (core component & plug-in) |
| <p>The Security Manager is responsible for coordinating and |
| supervising security-related tasks such as authentication, |
| authorization, data confidnetiality and integrity protection within the |
| framework.</p> |
| </li> |
| |
| |
| <li><i>Message Dispatcher</i> (core component) |
| <p>The Message Dispatcher is responsible for decoupling message |
| processing being performed inside the Message Processor from the |
| Transport Bindings. The interfaces exposed by the Message Dispatcher |
| are defined by the JBI standard.</p> |
| </li> |
| |
| |
| <li><i>Transport Bindings</i> (plug-in) |
| <p>Transport Bindings are reponsible for a) transforming messages |
| from the canonical representation used |
| within the framework into transport and protocol specific formats and |
| b) communicating with remote source and target systems. The interface |
| provided by the framework for integrating Transport Bindings is defined |
| by the JBI standard. Sample implementations delivered along with the |
| framework support SOAP over HTTP and SOAP over JMS.</p> |
| </li> |
| |
| |
| <li><i>Message Processor</i> (core component) |
| <p>The Message Processor is responsible for coordinating message |
| processing between Business Application Adapters and Transport |
| Bindings. The actual |
| processing is performed within a chain of pluggable Interceptor |
| components. The assembly of the processing chain and the order of |
| execution is controlled by an interchangeable Planner component. A |
| sample implementation of a Planner that is provided as part of the |
| framework evaluates policies in WS-Policy format.</p> |
| </li> |
| |
| |
| <li><i>Message Interceptors</i> (plug-in) |
| <p>A Message Interceptor is responsible for processing a message |
| regarding (ideally exactly) one |
| functional aspect such as transformation, validation or compression. |
| Message Interceptors can be assembled into a chain to jointly |
| perform more complex tasks. The interface that Message Interceptors |
| have to implement will be defined within this project and serves as a |
| public extension point of the framework.</p> |
| </li> |
| |
| |
| <li><i>Management/Monitoring</i> (core component & plug-in) |
| <p>The Management/Monitoring component is responsible for recording |
| and processing relevant events within the framework and provides |
| management interfaces for monitoring and controlling the framework's |
| components remotely. A sample implementation provided along with the |
| framework is based on the JMX standard.</p> |
| </li> |
| |
| |
| <li><i>Configuration</i> (core component & plug-in) |
| <p>The Configuration component provides configuration data to all |
| other components of the framework in a unified way. A sample |
| implementation that is delivered as part of the framework takes |
| configuration data from filesystem-based storage. Another possible |
| implementation retrieves configuration data |
| from a remote respository.</p> |
| </li> |
| |
| </ul> |
| |
| |
| <p>In addition to that, the SOA Runtime Framework provides a deployment mechanism that supports run-time deployment of components |
| based on artefacts generated by SOA design tools (e.g. by the Eclipse SOA Tools Platform).</p> |
| |
| |
| <h3>(2) Foundation on OSGi</h3> |
| |
| |
| <p>The foundation on OSGi is a prerequisite of the SOA Runtime |
| Framework due to the following reasons. The OSGi Framework |
| provides a mature and proven component lifecycle model with an |
| underlying security concept and a fine-grained isolated class loading |
| scheme which makes it |
| an excellent choice for the technical foundation of the SOA Runtime |
| Framework. In addition to that, OSGi’s notion of a dynamically |
| deployable |
| bundle as a higher level unit of modularization allows for the |
| flexibility that is necessary to support the SOA Runtime |
| Framework’s deployment model. Apart from these technical aspects, |
| adopting OSGi as the SOA Runtime Framework’s future technical |
| base architecture has a number of additional advantages, including</p> |
| |
| <ul> |
| |
| <li>Seamless integration into the Eclipse ecosystem,</li> |
| |
| <li>Potentially more straight-forward integration into future enterprise runtime environments such as applications servers, and</li> |
| |
| <li>The opportunity to extend the reach of the SOA Runtime Framework into the embedded and mobile devices market.</li> |
| |
| </ul> |
| |
| |
| <h3>(3) Support existing SOA standards</h3> |
| |
| |
| <p>It is the intention that the SOA Runtime Framework will support all |
| available major existing SOA standards and be flexible enough |
| to react to future standard work. As of today, the Service Component |
| Architecture (SCA) and Java Business Integration (JBI) are planned to |
| be supported.</p> |
| |
| <ul> |
| |
| <li><i>Service Component Architecture (SCA)</i>: |
| SCA describes a model for building applications and systems using a |
| service-oriented and component-based architecture. The SOA Runtime |
| Framework will be designed to act as an SCA runtime implementation that |
| is able to execute SCA applications built, for example, with the |
| development tools created by the Eclipse SOA Tools Project. The SOA |
| Runtime Framework intends to provide a framework for the consumption of |
| existing SCA runtime implementations, for example Tuscany and Fabric3.</li> |
| |
| |
| <li><i>Java Business Integration (JBI)</i>: |
| JBI describes Java standard interfaces for normalized message mediation |
| between service components within a Java VM, along with a corresponding |
| component lifecycle model and management facilities. Out of these, the |
| normalized messaging concept is especially valuable to allow for |
| protocol and transport abstraction. Based on OSGi as the underlying |
| component model, the intention of the SOA Runtime Framework |
| project is to provide a JBI 2.0-compliant implementation.</li> |
| |
| </ul> |
| |
| |
| |
| <h2>Organization</h2> |
| |
| <h3>Project Management</h3> |
| |
| The SOA Runtime Framework project is overseen by a project lead.<br> |
| |
| <ul> |
| |
| <li>Oliver Wolf (Sopera): Project lead</li> |
| |
| </ul> |
| |
| <h3>Initial committers and contributors</h3> |
| |
| <p>The initial committers will focus on (a) making the contributed code |
| OSGi based, (b) providing |
| framework APIs, and (c) submitting patches and further code |
| contributions. Our agile |
| development process will follow eclipse.org's standards for openness |
| and transparency. As such we will actively encourage contributions to |
| this |
| project. The initial committers and contributors are:</p> |
| |
| |
| <ul> |
| |
| <li>Klaus Kiehne (DPWN): Lead Architect & Committer</li> |
| |
| <li>James Strachan (IONA): Architect & Committer</li> |
| |
| <li>Guillaume Nodet (IONA): Committer</li> |
| |
| <li>Zsolt Beothy-Elo (Sopera): Contributor</li> |
| |
| <li>Gerald Preissler (Sopera): Contributor</li> |
| |
| <li>Dietmar Wolz (Sopera): Contributor</li> |
| |
| <li>Anubhav Sharma (Sopera): Contributor</li> |
| |
| <li>Andreas Mattes (Sopera): Contributor</li> |
| |
| <li>Ramtin Mesbahipour (Individual): Contributor</li> |
| |
| <li>Adrian Co (Individual): Contributor</li> |
| |
| <li>Jonas Lim (Individual): Contributor</li> |
| |
| <li>Torsten Reimers (SoftQuadrat): Contributor</li> |
| |
| <li>Jörg Drescher (Sopera): QA</li> |
| |
| <li>Georg Voutsinos (Sopera): QA</li> |
| |
| <li>Carsten Biermann (Sopera): Build</li> |
| |
| </ul> |
| |
| |
| <h3>Mentors</h3> |
| |
| <ul> |
| |
| <li>Oisín Hurley (IONA): STP PMC Member and Member of the Architecture Council</li> |
| |
| <li>Jochen Krause (innoopract): WTP PMC Member</li> |
| |
| </ul> |
| |
| |
| <h3>Potential Consumers</h3> |
| |
| <p>Potential consumers of the SOA Runtime Framework within the Eclipse |
| Foundation include the ALF, SOA Tools, EclipseLink and the OSEE |
| projects. Potential non-Eclipse consumers include Deutsche Post World |
| Net (DPWN), Senacor, SoftQuadrat GmbH.</p> |
| |
| |
| <h3>Code Contribution</h3> |
| |
| <p>Deutsche Post World Net (DPWN) will contribute its custom-developed SOA |
| platform into this project. The contributed code contains the initial |
| code representing the framework, a messaging plug-in, a service |
| discovery plug-in and a management plug-in.</p> |
| |
| <p>The contributed code of Deutsche Post World Net is not based on OSGi. |
| One of the first project tasks will be an adoption of the code to |
| deliver an OSGi-based runtime component which enables the |
| implementation of OSGi-based service providers and consumers. The DPWN |
| contact person for the Eclipse Community will be Klaus Kiehne (Deutsche |
| Post World Net).</p> |
| |
| <h3>Related projects</h3> |
| |
| <p>The following related projects which require future alignment:</p> |
| |
| |
| <ul> |
| |
| <li><i>SOA Tool Platform (STP):</i> The major phase of the SOA |
| Lifecycle Management are “Planning”, “Design”, |
| “Implementation”, |
| “Deployment”, “Operations” and |
| “Support”, The STP aims the earlier phases of the |
| SOA lifecycle – “Planning”, “Design” and |
| “Implementation”. In contrast the SOA Runtime Framework |
| project aims the later phases “Operations” and |
| “Support”. It is general consensus that STP and |
| Swordfish complement each other. More |
| specifially, the deployment framework developed as part of the |
| STP effort will be crucial for successfully using Swordfish |
| in productive environments.</li> |
| |
| |
| <li><i>Equinox:</i> Swordfish relies heavily on OSGi as the |
| underlying component architecture. |
| Advancements in OSGi standardization and implementation -- especially |
| regarding results of the OSGi Enterprise Expert Group -- are expected |
| to require frequent alignment with Equinox</li> |
| |
| |
| <li><i>Corona:</i> The Corona project also aims at defining a Service |
| Runtime Framework, but concentrates on tool integration rather that |
| general SOA |
| applications. It is anticipated that Corona could benefit from adopting |
| Swordfish as the underlying SOA runtime framework in the future.</li> |
| |
| |
| <li><i>Higgins – The Trust Framework:</i> The Higgins project |
| is developing an extensible, platform-independent, |
| identity protocol-independent, software framework to support existing |
| and new applications that give users more convenience, privacy and |
| control over their identity information. Higgins should be considered |
| as a preferred candidate for a potential security and identity |
| framework for Swordfish.</li> |
| |
| </ul> |
| |
| |
| <h2>Tentative Plan</h2> |
| |
| |
| <p>Assuming a start of the incubation phase in August 2007 the following milestones are planned:</p> |
| |
| <table style="text-align: left; width: 100%; height: 116px; background-color: rgb(255, 255, 255);" border="1" cellpadding="2" cellspacing="2"> |
| |
| <tbody> |
| |
| <tr> |
| |
| <td><i>Milestone</i></td> |
| |
| <td><i>Version</i></td> |
| |
| <td><i>Deliverable/Scope</i></td> |
| |
| </tr> |
| |
| |
| <tr> |
| |
| <td>October 2007</td> |
| |
| <td>v0.5</td> |
| |
| <td>Basic framework</td> |
| |
| </tr> |
| |
| |
| <tr> |
| |
| <td>February 2008</td> |
| |
| <td>v0.7</td> |
| |
| <td>All examply plug-ins</td> |
| |
| </tr> |
| |
| |
| <tr> |
| |
| <td>July 2008</td> |
| |
| <td>v0.9</td> |
| |
| <td>BPEL plug-in</td> |
| |
| </tr> |
| |
| |
| <tr> |
| |
| <td>October 2008</td> |
| |
| <td>v1.0</td> |
| |
| <td>SCA compliant deployment mechanism</td> |
| |
| </tr> |
| |
| |
| </tbody> |
| </table> |
| |
| |
| |
| <h2>Outlook</h2> |
| |
| <p>The future server-side extension of OSGi (e.g. enterprise deployment and distributed |
| execution container) should be leveraged after v1.0 as soon as a first open source implementation is available.</p> |
| |
| |
| |
| |
| </p> |
| |
| </div> |
| </div> |
| <?php |
| $html = ob_get_contents(); |
| ob_end_clean(); |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |