Programming with Live Distributed Objects Krzysztof Ostrowski† in collaboration with Ken Birman†, Danny Dolev§, Jong Hoon Ahnn† †Cornell University, §Hebrew University http://liveobjects.cs.cornell.edu
Introduction “Live Objects", Krzysztof Ostrowski
Modern Software Development “Live Objects", Krzysztof Ostrowski
Object-Orientation has Benefits “Live Objects", Krzysztof Ostrowski
Object-Orientation has Benefits “Live Objects", Krzysztof Ostrowski
Distributed Systems: Out of Luck “Live Objects", Krzysztof Ostrowski
Building a Collaborative App “Live Objects", Krzysztof Ostrowski
Building a Collaborative App “Live Objects", Krzysztof Ostrowski
Building a Collaborative App “Live Objects", Krzysztof Ostrowski
Using Obscure, Proprietary APIs ssize_t recvfrom( int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len); Channel channel = new JChannel( "UDP:PING:FD:STABLE:NAKACK:UNICAST:" + "FRAG:FLUSH:GMS:VIEW_ENFORCER:” + "STATE_TRANSFER:QUEUE"); obscure proprietary low-level confusing “Live Objects", Krzysztof Ostrowski
Tightly Coupled Components “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Many Layers In the Middleware “Live Objects", Krzysztof Ostrowski
Protocols = Components ??? “Live Objects", Krzysztof Ostrowski
…But Not In Java/.NET/COM/* “Live Objects", Krzysztof Ostrowski
Related Work Distributed objects Emerald, Argus, Globus, Linda, F.T. Corba, Croquet Protocol composition x-Kernel, Horus, Ensemble, BAST Protocol types CSP, π-calculus, BPEL, SSDL, WSCL, CFSM, TLA, IOA, IA, temporal logic, Protocol specifications Horus, Ensemble, Chockler et al. [2001] Distributed environments Jini, JXTA, WS-* specifications “Live Objects", Krzysztof Ostrowski
Related Work Distributed objects Emerald, Argus, Globus, Linda, F.T. Corba, Croquet Protocol composition x-Kernel, Horus, Ensemble, BAST Protocol types CSP, π-calculus, BPEL, SSDL, WSCL, CFSM, TLA, IOA, IA, temporal logic, Protocol specifications Horus, Ensemble, Chockler et al. [2001] Distributed environments Jini, JXTA, WS-* specifications “Live Objects", Krzysztof Ostrowski
Related Work Distributed objects Emerald, Argus, Globus, Linda, F.T. Corba, Croquet Protocol composition x-Kernel, Horus, Ensemble, BAST Protocol types CSP, π-calculus, BPEL, SSDL, WSCL, CFSM, TLA, IOA, IA, temporal logic, Protocol specifications Horus, Ensemble, Chockler et al. [2001] Distributed environments Jini, JXTA, WS-* specifications “Live Objects", Krzysztof Ostrowski
Every Protocol Instance = Object “Live Objects", Krzysztof Ostrowski
Every Protocol Instance = Object “Live Objects", Krzysztof Ostrowski
Objects “Live Objects", Krzysztof Ostrowski
Defining Live Distributed Objects “Live Objects", Krzysztof Ostrowski
Defining Live Distributed Objects “Live Objects", Krzysztof Ostrowski
Defining Live Distributed Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects “Live Objects", Krzysztof Ostrowski
Live Objects vs. .NET Objects Service = Behavior “Live Objects", Krzysztof Ostrowski
References “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Creating a Live Object “Live Objects", Krzysztof Ostrowski
Composition “Live Objects", Krzysztof Ostrowski
Connecting Objects “Live Objects", Krzysztof Ostrowski
Connecting Objects “Live Objects", Krzysztof Ostrowski
Connecting Objects “Live Objects", Krzysztof Ostrowski
Dependencies as Endpoints “Live Objects", Krzysztof Ostrowski
Creating Composite Objects “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects this is happening on a single machine “Live Objects", Krzysztof Ostrowski
Creating Composite Objects “Live Objects", Krzysztof Ostrowski
Compatibility “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Defining Live Object Types “Live Objects", Krzysztof Ostrowski
Types “Live Objects", Krzysztof Ostrowski
Defining Live Object Types “Live Objects", Krzysztof Ostrowski
Defining Live Object Types “Live Objects", Krzysztof Ostrowski
Defining Endpoint Types “Live Objects", Krzysztof Ostrowski
Behavioral Constraints “Live Objects", Krzysztof Ostrowski
Behavioral Constraints annotation alias for a live object type “Live Objects", Krzysztof Ostrowski
Constraints “Live Objects", Krzysztof Ostrowski
Behavioral Constraints “Live Objects", Krzysztof Ostrowski
Behavioral Constraints “Live Objects", Krzysztof Ostrowski
Behavioral Constraints “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Constraint Formalisms “Live Objects", Krzysztof Ostrowski
Authentication “Live Objects", Krzysztof Ostrowski
Authentication “Live Objects", Krzysztof Ostrowski
Authentication “Live Objects", Krzysztof Ostrowski
Authentication “Live Objects", Krzysztof Ostrowski
Authentication “Live Objects", Krzysztof Ostrowski
Demo “Live Objects", Krzysztof Ostrowski
http://liveobjects.cs.cornell.edu “Live Objects", Krzysztof Ostrowski