Skip to main content
summaryrefslogtreecommitdiffstats
blob: 93a475cd90d87b6ebd67655d1e8439ad2c472648 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!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>
<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>

Back to the top