170 likes | 208 Views
NINJA. The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices. Project of UC Berkeley Computer Science Division Paper : The Ninja Architecture for Robust Internet-Scale Systems and Services. http://ninja.cs.berkeley.edu/
E N D
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Project of UC Berkeley Computer Science Division Paper : The Ninja Architecture for Robust Internet-Scale Systems and Services http://ninja.cs.berkeley.edu/ People : Eric Brewer ,David Culler, Anthony Joseph , Randy Katz ,Steven Gribble, Matt Welsh
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices • Points to be covered : • Goal :The end goal of the Ninja project is to enable the • development of a menagerie of Internet-based services • which are interoperable and immediately accessible • across the spectrum of user devices ranging from PCs • and workstations to cellphones and Personal Digital • Assistants. • Examples of Applications of Ninja Vision : • * Sanctio • * Juke Box
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices • Components of Ninja Architecture : • Building Robust services • * Scalability * Availability • * Fault-Tolerance * Consistency • * Persistence • All this in under the Growing Traffic Load • * Concept of Base : Cluster of Workstations • * Concept of vSpace :Cluster based software Platform
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices • Device Diversity : Concept of Units • Adaptation by Active proxies : Concept of Distillation • * Computational power • * Network Connectivity • * Interface Capabilities of devices • e.g. Wireless Base stations, Network gateways , • Firewalls , Gateways . • 4) The Composition of Services : Composition of services into a PATH as well as adaptation along that PATH. • * SDS (Service Discovery Service )
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Bases : Scalable Platforms for internet Services # Concept of Conditioning the Service: Graceful operation during the bursts # A programming Model : * Splitting a Service into Stages e.g. : web server service = reading + retrieving + return * Design Patterns 1.Wrap 2. Combine 3. Pipeline 4. Replicate # Java –Based I/O Substrate Implementation Jaguar : (Java Access to generic Underlying Architectural Resources ) Extension to the Java Environment
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices #vSpace: Cluster based execution environment for * Replication * Load balancing * Fault Tolerance Concept of * Worker : fixed size thread pool + methods * Service definition : set of workers * Service Publication :freezing of the code * Clone :replication of the workers along various other nodes * Clone Group : set of worker clones
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Distributed Data Structures : # Normal D.S. Like : Binary tree, Hash Table etc. # Properties Expected : * High throughput * High Concurrency * Availability # Strictly Consistent in Nature : # Atomic in Nature
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Active proxies : Execute in an environment local to devices and hence perform context aware optimizations and transformations on behalf of devices 1)Dynamic Service Adaptation : Distillation of service content into a format more suitable for small devices eg. 1) HTML to WML for WAP phones 2)Design of the light weight protocols 2) Secure Service Access from Diverse Clients: trusted active proxies can perform context aware transformations on data before it arrives at a kiosk 3) Multiple device fusion :Combining capabilities of various devices .Eg. Display of local kiosk and entering data thru PDA
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Paths : Composition of Services Across the Wide-Area 1)Automatic Path Creation : (APC ) * Finding path between the networks * Creating the network connection * Fine Tuning the performance of data flow * Error Correction 2) Path = Operators (perform computation on data) + Connectors (protocol translations between operators ) 3) Operators : Strongly types and know the input they accept and output they produce .
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices * Operators have Cost parameters associated with it which helps in route optimization . * Types of Operators : * Long lived :- standard Ninja services * Dynamically generated : light weight and short lived transformation elements created by the APC facility as and when required Both these types of the operators ensure that that the path can be reconstructed when A failure occurs . * Example of Path : Mapquest Service
Logical path Creation Physical path Creation Path Instantiation and Execution Path Tear Down Path Construction Process The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Service Location Service across the Wide Area (SDS): * Services announce their presence * Location of the announced services * help clients decide the trustworthiness of the service and vice a versa . # Properties of the SDS : * Fully secure * Semantically rich * Scalable * Fault Tolerant
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Design of Service Discovery Service : 1) Elements of the SLS * Clients * Services * SDS servers. 2) Hierarchical arrangement of servers : Domain concept 3) Uses of XML for encoding both services and queries 4) Certificate Authority : (CA) trusted source which provide the proof of binding between a principal and its public and Private keys in the form of certificates . 5) Capability Manager : (CM) Manages individual access control Lists on behalf of each authenticated service . Hiding the services rather than disallowing the access
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices Wide Area Operation in SDS * Information is propagated up to parent servers and queries are partitioned among and forwarded to the relevant servers. * To prevent upper level servers in the hierarchy from being loaded by the query load SDS filters the information while it propagates the information forward . * SDS servers dynamically organize themselves into potentially multiple hierarchies for data partitioning and query routing.
The Ninja Project Enabling Internet-scale Services from Arbitrarily Small Devices • Ninja and Related Work : Ninja is not Java • 1) Jini 2) EJB • 3) CORBA 4) Centaurus • 5) Active networks • Future Work in Ninja • Challenges in automatically composing service • components to meet the needs of particular device • 2) Unsolicited advertising : SPAM • 3) Requirement of Services capturing bits rather than • eyeballs