cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache CXF > DOSGi Architecture
Date Mon, 04 Mar 2013 07:52:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/15/_/styles/combined.css?spaceKey=CXF&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CXF/DOSGi+Architecture">DOSGi
Architecture</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~christian%2Bschneider">Christian
Schneider</a>
    </h4>
        <br/>
                         <h4>Changes (6)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >The Remote Services spec describes
a module named Distribution Provider that makes OSGi services available across container boundaries.
The idea is to use special service properties to mark services that are to be exported remotely.
The Distribution provider will create Endpoints for these services that are available outside
the container. On the consumer side the Distribution Provider can create local OSGi services
that act as proxies for the remote services and allow service consumers to use them to call
the remote service. <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{gliffy:name=remote
services spec|version=4} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{gliffy:name=remote-services-spec|version=4}
<br></td></tr>
            <tr><td class="diff-unchanged" > <br>The Remote Service Admin
spec then splits the Distribution provider into separate modules that communicate through
defined interfaces. This allows to change or enhance parts of an existing DOSGi implementation
without having to reimplement the whole Distribution provider. <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h3. Topology Manager <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{gliffy:name=cxf
dosgi topology manager|version=3} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{gliffy:name=cxf-dosgi-topology-manager|version=3}
<br></td></tr>
            <tr><td class="diff-unchanged" > <br>h3. Discovery Ditributed
with Zookeeper <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{gliffy:name=cxf
dosgi discovery distributed|version=3} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{gliffy:name=cxf-dosgi-discovery-distributed|version=3}
<br></td></tr>
            <tr><td class="diff-unchanged" > <br>h3. Remote Service Admin
<br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="DOSGiArchitecture-DOSGiintheOSGispec"></a>DOSGi in
the OSGi spec</h2>

<p>Distributed OSGi is described in the <a href="http://www.osgi.org/Download/File?url=/download/r4v43/osgi.core-4.3.0.pdf"
class="external-link" rel="nofollow">OSGi core spec</a> in chapter 6 (Remote Services)
and in the <a href="http://www.osgi.org/Download/File?url=/download/r4v43/osgi.cmpn-4.3.0.pdf"
class="external-link" rel="nofollow">OSGi compendium spec </a>in chapter 122 (Remote
Service Admin Service).</p>


<p>The Remote Services spec describes a module named Distribution Provider that makes
OSGi services available across container boundaries. The idea is to use special service properties
to mark services that are to be exported remotely. The Distribution provider will create Endpoints
for these services that are available outside the container. On the consumer side the Distribution
Provider can create local OSGi services that act as proxies for the remote services and allow
service consumers to use them to call the remote service.</p>



<map name='GLIFFY_MAP_30739778_remote-services-spec'></map>
<table width="100%">
    <tr>
        <td align="left">
            <table>
                <caption align="bottom">
                                    </caption>
                <tr>
                    <td>
                        <img style="border: none; width: 900px; height: 480px;"
                                                          usemap="#GLIFFY_MAP_30739778_remote-services-spec"
                                                          src="/confluence/download/attachments/30739778/remote-services-spec.png?version=4&amp;modificationDate=1362383433000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;remote&amp;#45;services&amp;#45;spec"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>




<p>The Remote Service Admin spec then splits the Distribution provider into separate
modules that communicate through defined interfaces. This allows to change or enhance parts
of an existing DOSGi implementation without having to reimplement the whole Distribution provider.</p>

<table style="background-color: #2C8FCF;  height: 38px">
    <tr>
        <td style="vertical-align: middle; padding-top: 0px; padding-bottom: 0px;">
            <div style="padding: 3px"><img
                    src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/gliffylogo32x32.PNG"/>
            </div>
        </td>
        <td style="border-right: 2px solid white; padding:3px">
            <span style="font-size:120%; font-weight: bold; color: white">Macro Error</span>
        </td>
        <td style="padding: 3px;">
            <span style="color:white;">
                Cannot find the diagram with these parameters: <br>
                <strong>name:</strong> remote service admin spec <br>
                <strong>version:</strong> 2 <br>
                <strong>pageName:</strong>  <br>
                <strong>pageId:</strong> 30739778 <br>
                <strong>spaceKey:</strong>  <br/>
            </span>

                        <hr/>
            <span style="font-weight: bold; ">
                <a href="/confluence/plugins/gliffy/adddiagram.action?name=remote service
admin spec&ceoid=30739778&key=&pageId=30739778">Create Diagram</a>
            </span>
                    </td>
    </tr>
</table>

<p>Modular Distribution Provider described in the Remote Service Admin Service spec.</p>

<h3><a name="DOSGiArchitecture-ModulesandtheirRoles"></a>Modules and their
Roles</h3>

<ul>
	<li><b>Discovery:</b> Detects available Remote Endpoints and notifies EndpointListeners</li>
	<li><b>Topology Manager:</b> Monitors available and requested local OSGi
Services. Monitors remote OSGi services using an EndpointListener. Delegates creation of Endpoints
and Proxies to RemoteServiceAdmin.</li>
	<li><b>Remote Service Admin:</b> Creates and Destroys Endpoints and Proxys
and notifies RemoteServiceAdminListeners. Only reacts to commands sent over the Remote Service
Admin interface.</li>
</ul>


<p>Notes:</p>
<ul>
	<li>There can be more than one Discovery Impl and Topology Manager Impl at the same
time</li>
	<li>For one service the Remote Service Admin can create more than one endpoint (e.g
SOAP and Rest)</li>
</ul>




<h2><a name="DOSGiArchitecture-CXFDOSGi"></a>CXF DOSGi</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Spec Module<br class="atl-forced-newline" /> </th>
<th class='confluenceTh'> CXF Module<br class="atl-forced-newline" /> </th>
<th class='confluenceTh'> Description<br class="atl-forced-newline" /> </th>
</tr>
<tr>
<td class='confluenceTd'> Discovery<br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> cxf-dosgi-ri-discovery-local </td>
<td class='confluenceTd'> Describes Remote Endpoints using local configuration<br
class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'> cxf-dosgi-ri-discovery-distributed </td>
<td class='confluenceTd'> Discovers and Announces Endpoints using a Zookeeper Server<br
class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'> Topology Manager<br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> cxf-dosgi-ri-topology-manager </td>
<td class='confluenceTd'> Basic Topology Manager Implementation<br class="atl-forced-newline"
/> </td>
</tr>
<tr>
<td class='confluenceTd'> Remote Service Admin <br class="atl-forced-newline" />
</td>
<td class='confluenceTd'> cxf-dosgi-ri-dsw-cxf </td>
<td class='confluenceTd'> Creates Endpoints and Proxies using the CXF Framework<br
class="atl-forced-newline" /> </td>
</tr>
</tbody></table>
</div>


<p>Shows how the CXF DOSGi modules map to the spec. In the next chapters we look into
each of these modules.</p>

<h3><a name="DOSGiArchitecture-TopologyManager"></a>Topology Manager</h3>



<map name='GLIFFY_MAP_30739778_cxf-dosgi-topology-manager'></map>
<table width="100%">
    <tr>
        <td align="left">
            <table>
                <caption align="bottom">
                                    </caption>
                <tr>
                    <td>
                        <img style="border: none; width: 1217px; height: 773px;"
                                                          usemap="#GLIFFY_MAP_30739778_cxf-dosgi-topology-manager"
                                                          src="/confluence/download/attachments/30739778/cxf-dosgi-topology-manager.png?version=3&amp;modificationDate=1362383356000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;cxf&amp;#45;dosgi&amp;#45;topology&amp;#45;manager"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>




<h3><a name="DOSGiArchitecture-DiscoveryDitributedwithZookeeper"></a>Discovery
Ditributed with Zookeeper</h3>



<map name='GLIFFY_MAP_30739778_cxf-dosgi-discovery-distributed'></map>
<table width="100%">
    <tr>
        <td align="left">
            <table>
                <caption align="bottom">
                                    </caption>
                <tr>
                    <td>
                        <img style="border: none; width: 1191px; height: 1229px;"
                                                          usemap="#GLIFFY_MAP_30739778_cxf-dosgi-discovery-distributed"
                                                          src="/confluence/download/attachments/30739778/cxf-dosgi-discovery-distributed.png?version=3&amp;modificationDate=1362383313000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;cxf&amp;#45;dosgi&amp;#45;discovery&amp;#45;distributed"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>




<h3><a name="DOSGiArchitecture-RemoteServiceAdmin"></a>Remote Service Admin</h3>



<map name='GLIFFY_MAP_30739778_cxf-dosgi-remote-service-admin'></map>
<table width="100%">
    <tr>
        <td align="left">
            <table>
                <caption align="bottom">
                                    </caption>
                <tr>
                    <td>
                        <img style="border: none; width: 200px; height: 200px;"
                                                          usemap="#GLIFFY_MAP_30739778_cxf-dosgi-remote-service-admin"
                                                          src="/confluence/download/attachments/30739778/cxf-dosgi-remote-service-admin.png?version=2&amp;modificationDate=1362382251000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;cxf&amp;#45;dosgi&amp;#45;remote&amp;#45;service&amp;#45;admin"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>



    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/CXF/DOSGi+Architecture">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=30739778&revisedVersion=16&originalVersion=15">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CXF/DOSGi+Architecture?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message