ABC - Ad-hoc collaboration - 24/03/2006 ABC - Ad-hoc collaboration - 24/03/2006 1 ABC ABC Ad-hoc collaboration Ad-hoc collaboration
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 11
ABCABC
Ad-hoc collaborationAd-hoc collaboration
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 22
AgendaAgenda
Activity Based Computing (short)Activity Based Computing (short)• What is ABC?What is ABC?
The current hybrid architectureThe current hybrid architecture• Current architectureCurrent architecture• Pros. et. cons.Pros. et. cons.
P2P infrastructure based on DOLCLANP2P infrastructure based on DOLCLAN• Peer-to-peer Distributed Shared ObjectsPeer-to-peer Distributed Shared Objects
Ad-hoc ABC collaborationAd-hoc ABC collaboration• StatusStatus
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 33
Activity Based ComputingActivity Based Computing
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 44
Activity Based ComputingActivity Based Computing
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 55
Activity Based ComputingActivity Based Computing
Activity-basedActivity-based Collection of related servicesCollection of related services Many concurrent activitiesMany concurrent activities
Session migrationSession migration The user’s session is distributed across the hospitalThe user’s session is distributed across the hospital Suspend – Resume Suspend – Resume Heterogeneous devices Heterogeneous devices
CollaborationCollaboration Shared activity (‘tele-conference’) (different places)Shared activity (‘tele-conference’) (different places) Synchronous (same time) + Asynchronous (different time)Synchronous (same time) + Asynchronous (different time) Ad-hoc (Any place, but synchronous)Ad-hoc (Any place, but synchronous)
Context AwarenessContext Awareness The computer adapts itself to the user’s context (PACS)The computer adapts itself to the user’s context (PACS)
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 66
The current architectureThe current architecture
Client-ServerClient-Server Easy to createEasy to create PerformancePerformance ScalabilityScalability
Hybrid architectureHybrid architecture AccountableAccountable EphemeralEphemeral
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 77
Hybrid architectureHybrid architecture
ProsPros Concurrency controlConcurrency control Late joiningLate joining SecuritySecurity MembershipMembership InvitationsInvitations Synchronous collaborationSynchronous collaboration Asynchronous collaborationAsynchronous collaboration Failure detection / handling / repairingFailure detection / handling / repairing Discovery serviceDiscovery service
ConsCons Disconnected collaborationDisconnected collaboration Ad-hoc collaboration (Anywhere)Ad-hoc collaboration (Anywhere)
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 88
ShortcomingsShortcomings
Ad-hoc collaborationAd-hoc collaboration No infrastructureNo infrastructure Collaboration anywhereCollaboration anywhere Disconnected collaborationDisconnected collaboration
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 99
P2P infrastructure - DOLCLANP2P infrastructure - DOLCLAN
Distributed Objects in Loose Coupled Distributed Objects in Loose Coupled Local Area NetworksLocal Area Networks
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1010
PDSO and groupsPDSO and groups
Peer-to-peer Distributed Shared ObjectsPeer-to-peer Distributed Shared Objects OIDOID PDSOPDSO GroupGroup
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1111
Model View ControllerModel View Controller
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1212
SyntaxSyntax
public distributed class DistributedPoint {
//A distributed Pointprivate distributed ephemeral int x;private distributed ephemeral int y;...
}
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1313
SyntaxSyntaxpublic distributed class DistributedPoint : Observable {
//A distributed x positionprivate int x;public distributed ephemeral int X{
get { return this.x; }set {
this.x = value;//Notify observersthis.stateChanged();
}}
//A distributed y position...
}
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1414
SyntaxSyntax
public void start(){OID[] oids = EaterModel.getOIDs();if (oids.Length > 0){
model = join EaterModel(oids[0]);} else {
model = new EaterModel("MyGame",10);}...
}
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1515
SyntaxSyntax
public distributed class DistributedStone : Observable {...public void merge(object netState){//Cast the object to a DistributedStoneDistributedStone netStone = (DistributedStone)netState;
//The position never change, so thats up to date
//Figure out if the stone has been eaten either offline or onlinethis.Eaten = (this.Eaten || netStone.Eaten);}
}
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1616
An exampleAn example
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1717
Current statusCurrent status
ABC supportABC support Collaboration using a server and P2PCollaboration using a server and P2P Ad hoc collaboration using DOLCLANAd hoc collaboration using DOLCLAN Hybrid collaborationHybrid collaboration P2P
CENTRALIZED
ABC - Ad-hoc collaboration - 24/03/2006ABC - Ad-hoc collaboration - 24/03/2006 1818
Current statusCurrent status