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 Fri, 02 Nov 2012 23:03: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 (4)</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" >| Remote Service Admin \\ | cxf-dosgi-ri-dsw-cxf
| Creates Endpoints and Proxies using the CXF Framework\\ | <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">Shows
how the CXF DOSGi modules map to the spec <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Shows
how the CXF DOSGi modules map to the spec. In the next chapters we look into each of these
modules. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
Topology Manager <br> <br></td></tr>
            <tr><td class="diff-unchanged" >{gliffy:name=cxf dosgi topology manager|version=3}
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
<br>h3. Discovery Ditributed with Zookeeper <br> <br>{gliffy:name=cxf dosgi
discovery distributed} <br> <br>h3. Remote Service Admin <br> <br>{gliffy:name=cxf
dosgi remote service admin} <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=1350723915000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;remote&amp;#32;services&amp;#32;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>


<map name='GLIFFY_MAP_30739778_remote_service_admin_spec'></map>
<table width="100%">
    <tr>
        <td align="left">
            <table>
                <caption align="bottom">
                                    </caption>
                <tr>
                    <td>
                        <img style="border: none; width: 897px; height: 600px;"
                                                          usemap="#GLIFFY_MAP_30739778_remote_service_admin_spec"
                                                          src="/confluence/download/attachments/30739778/remote+service+admin+spec.png?version=2&amp;modificationDate=1350658506000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;remote&amp;#32;service&amp;#32;admin&amp;#32;spec"/>
                    </td>
                </tr>
            </table>
        </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=1351502158000"
                             alt="A&amp;#32;Gliffy&amp;#32;Diagram&amp;#32;named&amp;#58;&amp;#32;cxf&amp;#32;dosgi&amp;#32;topology&amp;#32;manager"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>




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


<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> cxf dosgi discovery distributed <br>
                <strong>version:</strong>  <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=cxf dosgi discovery
distributed&ceoid=30739778&key=&pageId=30739778">Create Diagram</a>
            </span>
                    </td>
    </tr>
</table>


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


<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> cxf dosgi remote service admin <br>
                <strong>version:</strong>  <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=cxf dosgi remote
service admin&ceoid=30739778&key=&pageId=30739778">Create Diagram</a>
            </span>
                    </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=11&originalVersion=10">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