15.01.2015 Views

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!