8
DBDE ObjCommProtocolRev.ppt - 1 Copyright 97/5/4 - RJLechner IV. Object Communication Protocols Client Catch Up Mode Server Broadcast Mode Active Client Communications Aborted/Deferred Transactions Join-Meeting Protocol Download-Files Protocol Broadcast-Update Protocol

DBDE ObjCommProtocolRev.ppt - 1 Copyright 97/5/4 - RJLechner IV. Object Communication Protocols l Client Catch Up Mode l Server Broadcast Mode l Active

Embed Size (px)

Citation preview

DBDE ObjCommProtocolRev.ppt - 1 Copyright 97/5/4 - RJLechner

IV. Object Communication Protocols

Client Catch Up Mode

Server Broadcast Mode

Active Client Communications

Aborted/Deferred Transactions

Join-Meeting Protocol

Download-Files Protocol

Broadcast-Update Protocol

DBDE ObjCommProtocolRev.ppt - 2 Copyright 97/5/4 - RJLechner

Client Catch Up Mode

1. During GetInfo, the server transfers current meeting status, file directory and access authorization information to the client.

2. During ViewInfo, the client decides whether and how to participate in the meeting.

3. UpLoad and DownLoad are file transfer modes. In the UpLoad state, the client may contribute a file to the

meeting repository as a future meeting agenda item. Version and revision controls may apply.

In the DownLoad state, the client may get a copy of any file in the meeting repository. If the file is active, a snapshot is taken as of the last server transaction sequence number. Access controls may apply.

4. Clients that download an active file will next enter the CatchUp state. This will transfer any remote update transactions since the downloaded snapshot. After that, the broadcast server is responsible for communicating with this client.

A history of previous broadcast transactions is retained by the server over a moving window of time, for use by clients joining the meeting during the CatchUp state.

DBDE ObjCommProtocolRev.ppt - 3 Copyright 97/5/4 - RJLechner

Server Broadcast Mode

1. The server supports this mode for all clients who join and have caught up to the current transaction activity on the meeting's active file.

2. Update transactions received from active local or remote clients are serialized and rebroadcast to clients who either passivlely monitor or actively participate in the meeting.

3. Round-trip delays are assumed negligible for wide-band local clients, but may vary widely for remote clients.

4. We allow remote active clients to 'work ahead' of the server to receive immediate visual feedback of their local drawing actions.

5. Exception: A request to create a new drawing object must wait for a globally unique object-id to be issued by the server.

DBDE ObjCommProtocolRev.ppt - 4 Copyright 97/5/4 - RJLechner

Active Client Communications• Active clients send messages requesting the server to accept local

updates. Each message from client to server has a name starting with CS.

• The first 3 arguments of each message are standardized as follows:CSEIid: The originator's event instance (EI)

identifier. CSETid:The globally-scoped event type (ET) identifier.

• Client update requests have the event type and name CSEDIT.

• Client update requests have three additional standard arguments:SCRTid: Reply event type identifier (for SCack reply).

CLNTid The originating client's identifier;<text>: The formatted record or set-field request

(arg-list)

• Control, timing and state change events have simple or no arguments.

• Local clients reply to broadcast updates with standard ack/nack replies.

• Remote clients do not reply to broadcast messages

• Client replies include the server- specified return event type:CSRTid: Return event type requested by the

server;

DBDE ObjCommProtocolRev.ppt - 5 Copyright 97/5/4 - RJLechner

Aborted/Deferred Transactions

Aborted transactions:

1. If a client transaction would lead to a 'race' condition or update conflict, the server will tag the transaction as 'rejected' and rebroadcast it.

2. The originating client, using two-phase commit, may then abort his premature (and all subsequent) transactions, and reapply them to his local database properly interleaved with remote ones.

Deferred transactions:

1. The server may tag a client transaction, which it broadcasts out-of-order, with a 'may not commute' warning to the originating client.

2. The client may optionally buffer all transactions received since the last local transaction which the server has echoed back over the broadcast channel, undo and re-do them in the proper order.

DBDE ObjCommProtocolRev.ppt - 6 Copyright 97/5/4 - RJLechner

Join-Meeting ProtocolJoin-Meeting Protocol

[The client requests to join the meeting over the global access channel:] CSJOIN(CSEIid, CSETid, CLNTid, SCRTid, meeting, access,data_rate)

[SCWAIT( ) * may be received while waiting for exclusive access to channel]

SCJOIN(SCEIid, SCRTid, CLNTid, meeting, limits, FILEid) [ack+join info]

[Client switches to file download mode to acquire meeting information:]

[server downloads meeting database (schedule, directory, etc.)]:

{SCINFO(SCEIid, SCETid, SCTR#, SCRTid, FILEid, <tableRow>)}+

[optional request by client to upload a file for later use in meeting]:CSUPLD(CSEIid, CSETid, CSTR#, CLNTid, CSRTid, FILEid)

[Server may send {SCWAIT}+ if ftp channel is busy:]

[Client uploads his file:]{CSDATA(CSEIid, CSETid, CSTR#, CSRTid, <tableRow>)}+

[Client is now ready to download the meeting’s active files.]

CLIENTInstance

SERVERInstance

(Event Trace or Object Interaction Diagram)

DBDE ObjCommProtocolRev.ppt - 7 Copyright 97/5/4 - RJLechner

Download-Files Protocol

CSOPEN(CSEIid, CSETid, CSTR#, CLNTid, SCRTid, FILEid)

SCOPOK(SCEIid, SCRTid, SCTR#, CLNTid, FILEid)

CSGETF(CSEIid, CSETid, CSTR#, CLNTid, SCRTid, FILEid) [file request]

[Server will send SCWAIT until ftp channel is available.]

SCDLOK (SCEIid, CSRTid, SCTR#, CSTR#) [Download channel available.]

[Client and server enter file transfer mode:]

{SCDNLD(SCEIid, SCETid, SCTR#, CSRTid, FILEid, <tableRow>)

CSACK(CSEIid, CSRTid, CSTR#, CLNTid, SCTR#) }+

[After downloading the file, the server sends recent updates:]

{SCUPDT(SCEIid, SCETid, SCTR#, CSRTid, CLNTid_src, CLTR#)

CSACK(CSEIid, CSRTid, CSTR#, CLNTid, SCTR#) }+

SCSYNC(SCEIid, SCETid, SCTR#, CSRTid) [End of updates to catch up]

CSACK(CSEIid, CSRTid, CSTR#, CLNTid, SCTR#) [acknowledge SYNC]

[The ftp channel is released; server switches client to broadcast mode.]

CLIENTSERVER

DBDE ObjCommProtocolRev.ppt - 8 Copyright 97/5/4 - RJLechner

Broadcast-Update Protocol

[A new user joins the broadcast protocol in passive (read) mode:]Server continues to send update broadcast stream to cllient:]{SCUPDT (SCEIid, SCETid, SCTR#, CLNTid_src, CSRTid, CSTR#, <text>)}

[Client requests to enter edit mode:]CSEDIT(CSEIid, CSRTid, CSTR#, CLNTid, SCRTid)

[Server returns permission to edit:] SCEDOK(SCEIid, SCRTid,SCTR#, CLNTid_src)

{CSUPDT(CSEIid, CSETid, CSTR#, CLNTid_src, CSRTid, FILEid) }*

[Local update echos are merged with remote updates and echoed back:]SCUPDT(SCEIid, SCETid, SCTR#, CLNTid_src, CSRTid, FILEid, <tableRow>)

[Client may leave via CSPAUSE, CSREADY, CSUPLD, or CSQUIT].

[Server may send SCWAIT, SCREAD, SCUPOK, SCNACK, SCQUIT]

CLIENT SERVER