270 likes | 358 Vues
Explore the evolution towards service-oriented infrastructure, building and customizing services, using distributed objects, and implementing dynamic code generation. Learn about base approaches, design principles, availability and scalability, and NinjaRMI communication. Discover iSpace and MultiSpace layers, Ninja Jukebox, Keiretsu service API, and code mobility benefits.
E N D
The Multispace: an Evolutionary Platform for Infrastructural Services ( S. Gribble, M. Welsh, E. Brewer, D. Culler) Presented by: Onur Celebioglu
Services on Internet • Evolution towards a service oriented infrastructure • Banks, restaurants, communities • Increasing number of .com businesses • These applications are different from traditional applications
Desired Properties • Available • Scalable • Simple interfaces in front of complex systems • Open to rapidly evolve and customizable by the end-user.
Building Services • Insufficient amount of reusable, general-purpose building blocks • Two different approaches: • Inflexible, highly tuned, custom-built services • Emergent Services using distributed objects
Customized Services • Most wide-spread type • Target a specific application, hardware, etc.. • Advantages: • High performance, robust operation • Disadvantages: • Inflexible, unscalable, may require massive effort to modify.
Using Distributed Objects • Use small components over large area (e.g. CORBA, SUN RMI). • Use different compositions of components to add/modify service. • Unmanageable over wide area. • May cause inconsistency
“Base” Approach • Encapsulate services and state in a controlled environment. • Undistributed to outside, distributed within. • Distribute the objects across the nodes of a cluster of workstations.
Design Principles • Availability, scalability • Base • Service Flexibility • Receptive execution environments • Dynamic code generation
Availability, Scalability • Base -- Cluster of workstations • Clusters provide: • High availability, • scalability, • fast communications, • easier administration.
Receptive Environments • Dynamic configuration of system. • Remotely upload components as necessary. • Use JVM to provide node homogeneity. • Service Components = Java classes
Interface • Should present a single interface while taking care of load-balancing, failover, etc… • Use a front-end machine (single point of failure, performance bottleneck) • Use multiple front end machines • Naming problem (Round robin DNS, static assignment…) • Consistency problem.
Dynamic Code Generation • Clients use redirector stubs to access the service • Stubs are generated dynamically during execution, clients obtain them from a registry • Stubs take care of load-balancing, failover… • Base advertises state to clients • intelligence is injected into the client
Implementation • NinjaRMI: Communications • iSpace: Single node execution environment • MultiSpace: Collection of nodes
RMI Call Stub Code Skeleton NinjaRMI • Success -- method invoked successfully • Failure -- Randomly choose & try different stub Method Call
Additions to Sun RMI • Unicast, UDP-based RMI • Beacons, log, no reliability • Multicast, UDP-based RMI • Services associated with multicast groups • Secure Unicast RMI • Certificate based authentication, Diffie-Helman key exchange, 3DES encryption.
Performance Rtt + JVMs = 0.316msec
Layer 2: iSpace • JVM running component loading service • Manage resources, provides protection, security (using security manager) • Relies on JVM as an OS • iSpace Security manager
Layer 3: MultiSpace • Collection of iSpaces • Provide state info to nodes • Each iSpace sends beacons • Beacons carry RMI stubs (~500 bytes) • Each node has enough information to reconstruct or advertise services • But what about scalability?
Layer 3: MultiSpace • Services can modify beacons • Beacons can be used for decentralized load balancing • Also included; • a distributed hash table • uptime monitoring capabilities
Ninja Jukebox Application • Cluster of 100+ Sun workstations. • CD ripper • push ripper to stations with CDs • scan CD • contact CDDB • make & advertise play list • Master directory • Make global play list available over RMI and HTTP
Ninja Jukebox Performance • Utilizes security extensions to NinjaRMI. • Authentication overhead = 10 sec per certificate exchange. • Streaming mp3 files through the network.
Keiretsu • Provide instant messaging between heterogeneous devices • Clients that can’t run a JVM connect to a proxy • Proxy functionality can be pushed on the nodes as needed
Keiretsu Service API public void identifySelf( String clientName, KeiretsuClientIF clientStub); public void disconnectSelf(String clientName); public void injectMessage(KeiretsuMessage msg); public String[] getClientList(); • All nodes maintain a table of others. • Each node can route messages to every other node.
Keiretsu Performance • Spends CPU to process client stubs • Poor service design
Discussion • Code Mobility • Not only for delivering code to clients, but also useful in the MultiSpace as in Ninja example • Bases simplify the work • Author still needs to ensure consistency , availability. • Java Environment (Modular, safe, slow)
Conclusions • Base: A controlled environment that abstracts load-balancing, failover, etc… • Ninja Jukebox • Rapid evolution, run-time binding of components... • Keiretsu • Simple service building tool, fault-tolerance...