| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2007. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." > |
| <meta http-equiv="Content-Language" content="en-us"> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" |
| type="text/css"> |
| <style type="text/css"> |
| td {border-top: solid thin black;} |
| img[alt] {background-color:#ffdddd;} |
| tr {vertical-align: top;} |
| </style> |
| <script language="JavaScript" type="text/javascript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"> </script> |
| </head> |
| <body> |
| <h1><img src="../../intro/css/images/ecf_intro.gif">Eclipse Communication Framework (ECF)</h1> |
| <p> |
| <h2>SharedObjectContainer Lifecycle - DRAFT</h2> |
| <p> SharedObjectContainers can provide access to arbitrary |
| communications protocols. So, for example, communication with a remote |
| instant messaging client, a server-based web service, or a distributed |
| multi-point application can all be represented through an |
| implementation of a SharedObjectContainer that understands the specific |
| application-level protocol or protocols necessary to communicate with a |
| given service or set of services. The primary role of the |
| SharedObjectContainer is to provide SharedObjects with </p> |
| <ol> |
| <li>a consistent API for achieving secure access to a remote service</li> |
| <li>a consistent API for sending and receiving asynchronous messages |
| to/from an arbitrary communications service</li> |
| <li>consistent information about message reliability and group |
| membership </li> |
| </ol> |
| ECF also defines an extensible factory for |
| creating ISharedObjectContainer instances called <a |
| href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/SharedObjectContainerFactory.html">SharedObjectContainerFactory</a>. |
| <br> |
| <br> |
| The lifecycle of a ISharedObjectContainer is typically as follows: |
| <ol> |
| <li>An ISharedObjectContainer instance is created via |
| SharedObjectContainerFactory.getDefault().createSharedObjectContainer() </li> |
| <li>ISharedObjects are created and added to the |
| ISharedObjectContainer </li> |
| <li>The ISharedObjectContainer 'joins/connects' with a remote |
| communications group via |
| ISharedObjectContainer.joinGroup() </li> |
| <li>The ISharedObject instances created/added in step #2 above send |
| asynchronous messages and receive asynchronous |
| events from the remote services </li> |
| <li>ISharedObject implementation code presents/manages user |
| interfaces, handles user input, keeps local state, |
| communicates with replicas or external services, exposes/introduces |
| local Eclipse-provided services to |
| remotes, etc. </li> |
| <li>When the ISharedObjectContainer is no longer needed for |
| communication, the ISharedObjectContainer can be |
| directed to leave the group, or leave the group on its own. </li> |
| <li>When the ISharedObjectContainer is no longer needed at all the |
| ISharedObjectContainer.dispose() method |
| can be called to free any resources managed by the container or it's |
| associated ISharedObjects. </li> |
| </ol> |
| <br> |
| </body> |
| </html> |