4th International Conference on Principles and Practices ... - MADOC
4th International Conference on Principles and Practices ... - MADOC
4th International Conference on Principles and Practices ... - MADOC
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
In following, we will explain in detail the architecture of the<br />
proposed M3PS. The M3PS provides four services: Synchr<strong>on</strong>ous<br />
Message Transportati<strong>on</strong> (SMT); PeerRoom Administrati<strong>on</strong><br />
(PRA); PeerCommunicati<strong>on</strong> Support (PCS) <strong>and</strong> Applicati<strong>on</strong>Space<br />
Management (ASM).<br />
3.1 Synchr<strong>on</strong>ous Message Transportati<strong>on</strong><br />
The SMT of M3PS c<strong>on</strong>sists of two modules: a message sender<br />
<strong>and</strong> a message receiver, as shown in Fig. 4. The message sender<br />
includes three main functi<strong>on</strong>al comp<strong>on</strong>ents: a data collector, a<br />
message encoder <strong>and</strong> a message pusher. The message receiver<br />
includes three corresp<strong>on</strong>dent comp<strong>on</strong>ents, a data distributor, a<br />
message decoder <strong>and</strong> a message listener. The pipes are<br />
abstracti<strong>on</strong>s of JXTA data transmissi<strong>on</strong> route <strong>on</strong> the JXTA virtual<br />
network. There are three basic pipes: insecure unicast, secure<br />
unicast <strong>and</strong> propagate types. The propagate pipe is used in SMT<br />
for multicasting. In additi<strong>on</strong> to the pipes used for group<br />
communicati<strong>on</strong> inside rooms, a peer is able to exchange messages<br />
with any individual peer <strong>and</strong> all peers in a collaborative<br />
community, which is a collecti<strong>on</strong> of peers <strong>and</strong> rooms. Therefore<br />
SMT provides three categorized transmissi<strong>on</strong> modes:<br />
• Room mode: for group message multicasting am<strong>on</strong>g shared<br />
applicati<strong>on</strong>s in a room;<br />
• Community mode: for message broadcasting to all peers in a<br />
community;<br />
• One-to-One mode: for <strong>on</strong>e-to-<strong>on</strong>e private message exchange<br />
between any two peers in a community.<br />
Thus, we have built three kinds of propagate pipes corresp<strong>on</strong>ding<br />
to these modes. When receiving attribute data <strong>and</strong>/or primitive<br />
data from the service modules or shared applicati<strong>on</strong>s, the<br />
messages will be formed based <strong>on</strong> the format shown in Fig. 5. The<br />
Coding ID (CID) is used to extract the primitive data as well as<br />
other data from a message. The Applicati<strong>on</strong> ID (AID) is used for<br />
uniquely identifying an applicati<strong>on</strong> for correct data dispatch. The<br />
Object ID (OID) <strong>and</strong> the source peer name elements are opti<strong>on</strong>al<br />
for being used by shared applicati<strong>on</strong> developers according to their<br />
actual requirements.<br />
The following four methods to send primitive data to all peers in a<br />
room have been provided.<br />
Type A: sendMsg(dest., source, CID, AID, OID)<br />
ñ to send attribute data related to an applicati<strong>on</strong><br />
Type B: sendMsg(dest., source, CID, AID, OID, string[])<br />
ñ to send a string array used for chat text<br />
Type C: sendMsg(dest., source, CID, AID, OID, integer[])<br />
ñ to send integer array like mouse coordinates<br />
Type D: sendMsg(dest., source, CID, AID, OID, byte[])<br />
ñ to send binary file, audio <strong>and</strong> video data<br />
3.2 PeerRoom Administrati<strong>on</strong><br />
Due to no server in our system, each peer is able to administrate<br />
groups. This is a distinctive characteristic of M3PS compared<br />
with others centralized <strong>and</strong> hybrid collaborative systems. In our<br />
system, such work is d<strong>on</strong>e by the services of PRA, which is<br />
resp<strong>on</strong>sible for room creati<strong>on</strong>, publicati<strong>on</strong> <strong>and</strong> searching under<br />
supported by the JXTA. Any room created by a peer must have a<br />
unique name <strong>and</strong> ID number, <strong>and</strong> its associated group<br />
advertisement should be generated <strong>and</strong> published <strong>on</strong> the JXTA<br />
network so that other peers can find the room by searching the<br />
room advertisement.<br />
PeerRoom<br />
Administrati<strong>on</strong><br />
Field Name<br />
Transmissi<strong>on</strong><br />
Mode<br />
Destinati<strong>on</strong><br />
Source<br />
Coding ID (CID)<br />
Applicati<strong>on</strong> ID (AID)<br />
Object ID (OID)<br />
Element<br />
PeerCommunicati<strong>on</strong><br />
Support<br />
D<br />
Data Collector<br />
E<br />
Message Encoder<br />
M<br />
Peers<br />
Sender<br />
Message Pusher<br />
Pipe_out(M)<br />
SMT<br />
Applicati<strong>on</strong>Space Shared<br />
Management Applicati<strong>on</strong>s<br />
Receiver<br />
Pipe_in(M)<br />
Data Distributor<br />
Peers<br />
D (Data)<br />
E (Elements)<br />
Message Decoder<br />
Message Listener<br />
Figure 4. Message sender <strong>and</strong> receiver.<br />
M (Message)<br />
Room Community One-to-One<br />
Room/Peer<br />
Peer<br />
Integer<br />
Integer<br />
Integer<br />
Value<br />
" Community " Peer<br />
Peer<br />
Integer<br />
Integer<br />
String, integer, byte String, integer, byte<br />
Figure 5. Message formats.<br />
Figure 6. Presence c<strong>on</strong>trol.<br />
Peer<br />
Integer<br />
Integer<br />
String, integer, byte<br />
It is very important <strong>and</strong> necessary to provide prompt <strong>and</strong><br />
correcti<strong>on</strong> awareness informati<strong>on</strong> of peers <strong>and</strong> rooms as well as<br />
their dynamic changes. This functi<strong>on</strong> is provided by the awareness<br />
m<strong>on</strong>itor, which automatically <strong>and</strong> periodically collects status<br />
informati<strong>on</strong> of peers <strong>and</strong> rooms in the community using presence<br />
c<strong>on</strong>trol <strong>and</strong> identity c<strong>on</strong>trol. The presence c<strong>on</strong>trol shows the<br />
peerís presence informati<strong>on</strong>. As menti<strong>on</strong>ed above, it is difficult to<br />
administrate peersí presence in real-time <strong>on</strong>ly using<br />
advertisements provided by JXTA core service. To provide<br />
correct presence informati<strong>on</strong>, the ping-p<strong>on</strong>g detecti<strong>on</strong> approach is<br />
used to manage peersí presence in real-time as shown in Fig. 6.<br />
226