56 %
44 %
Information about Ninja

Published on November 20, 2007

Author: Kliment


Review of the Ninja Architecture (Berkeley):  Review of the Ninja Architecture (Berkeley) Larry Rudolph MIT/LCS Oxygen Reading Seminar A “Map Service” Example:  A “Map Service” Example User initiates call from cell phone. Speaks an address (to which to get directions) Speech-to-text converters audio into structured text. Text sent to map service. Map service gets driving directions and sent to a text-to-speech translator Audio sent to cell phone giving directions Ninja Components:  Ninja Components Bases The computational Platform E.g. workstation cluster Units Input/output devices (sensors, handhelds, etc.) Active Proxies Transforms data streams paths A chain composition across units, services (in base), proxies Slide4:  Figure1: The Ninja Platform Architecture: The architecture consists of bases (services running on clusters of workstations), active proxies (stateless or soft-gate intermediaries between units and services), units (heterogeneous devices and sensors), and paths (a composisition chain across units, proxies and services in bases. Bases internet Active proxy Active proxy Ninja Emphasis :  Ninja Emphasis Scalable Just Keep adding hardware Highly Available Fault Tolerant (workstations may fail) Continuously available Secure Java, SSL Services on Bases:  Services on Bases Software or application program Network-accessible, typed interface Can use Persistent, Consistent Data Base is a cluster of PC’s with middleware vSpace makes it easier to author services vSpace allows dynamic loading of new services Slide7:  Figure 2: Splitting a service into stages: Our programming model views a service as a sequence of stages, separated by high-or variable-latency operations. Stages only share data using pass-by-value semantics, for example, by exchanging messages. Developing Services:  Developing Services Split a service into stages Wrap a stage Put an input queue Bound number of threads for a service Pipeline wrapped stages Combine wrapped stages Replicate Services can be placed on different nodes Slide9:  After Before (a) Wrap (b) Pipeline (c) combine (d) Replicate Some Middleware:  Some Middleware Want to move messages between wrapped services Want to write middleware in Java Want non-blocking I/O Had to hack Java core a bit Want efficient access to specialized interfaces Jaguar – extension to java environment Pinned I/O buffers outside java heap Slide11:  Figure 4: Software Architecture of a Base: A base consists of a cluster, the nodes of which run the vSpace execution environment. Services are implemented as a graph of workers which communicate through a typed task dispatch mechanism. vSpace load balances tasks across workers based on information from a cluster load monitor. Workers are replicated across nodes for scalability and availability, and share global state through a consistent, scalable storage platform (distributed data structures, or DDS). Service workers vSpace Service workers vSpace Service workers vSpace DDS Brick DDS Brick Inter-worker Load-monitor Incoming request Balancing switch SAN Internet Clients Service Definition via vSpace:  Service Definition via vSpace Graph of service parts- how the wrapped services are interconnected Add resource requirements Number of threads Distributed data structures Max queue lengths Execution Times Helps system to replicate a service For load balancing & scaling Distributed Data Structures:  Distributed Data Structures A self-managing storage layer Designed to run on a cluster of workstations Program sees conentional structure Hash table, tree, log, etc Hidden is replication, recovery, access mech Two-phase commit for coherency Units:  Units Large number of diverse devices Each device has its own I/O and interface Want uniform interface to/from Units Special considerations: Low computation, do cheap encryptical Low power, do computation in right place Active Proxies:  Active Proxies Transform protocols and data format Between clients (units) and services (apps) Java RMI, JINI assumes clients Well connected Computationally powerful E.g. html,wap; textaudio Servicesslactive proxy Unit macactive proxy Service Location(SDS) :  Service Location(SDS) Registration / Publish Services can announce their presence Location query Interface for both humans and programs Find a service and its itnerface Fully Secure, Fault-tolerant, Scalable, Continous, Directory-style access SDS Design :  SDS Design Servers Hierarchal Structure via Domains Announce/listen model of propagation Perisodic Braodcast of service SDS uses XML to encode escriptions and queries Security Authenticated messages, certificate authority, and capability manager Xset:  Xset Database of XML descriptions Provides a simple queue language Search on specific set of XML field Paths: composition of Services:  Paths: composition of Services Services running on a base can be (automatically) interconnected Via streams (not RMI) Made to interact with each other Ninja Paths Guarantees All operators can exchange data Can determine which operators can interact Paths: Composition of Services:  Paths: Composition of Services Operators: Services which input and output streams Connectors Implement specific stream protocols Paths A sequence of operators and connectos Composed to perform a service Paths: Composition of Services:  Paths: Composition of Services Operators: Services which input and output streams Connectors Implement specific stream protocols Paths A sequence of operators and connectors Composed to perform a service Operator:  Operator For each unique path, there is: A thread handling the data stream Input connector which creates input stream Output connector which creates the output stream Operator to notify in case of failure Actions to instantiate a path:  Actions to instantiate a path Implementer gives location where to download the I/O connectors Implementer request reader and writer for the path be setup Implementer setup control path When path is destroyed, streams are closed Re-examine path example:  Re-examine path example The user initiates call from a cell phone An RTP-based audio connector is used to send this audio to the first operator in the path Speech-to-text in active proxy Structured text from operator passed along a TCP reliable byte stream to map service Map Service runing in a base Receives address, returns text along TCP Text-to-speech in active proxy An RTP audio connector sends to cell phone

Add a comment

Related presentations