Title: Proactive Infrastructure: The Ninja Service Platform
1Proactive InfrastructureThe Ninja Service
Platform
- David Culler
- Eric Brewer, Anthony Joseph Randy Katz
- UC Berkeley
- ninja.cs.berkeley.edu
2Moving Away from the average Device
3How do we get arbitrarily powerful, personalized
services on arbitrarily small devices anywhere?
- Harness the intelligence in the infrastructure
- adapt (distill) content to specific device and
context - increasingly diverse population
- Connectivity!
4Imagine
5How do we enabled distributed innovation on
Scalable, Available Services?
Infrastructure Services
gt Push services into an Active infrastructure
6Ninja Project Goals
- Enable a service-centric world
- Move applications into the core of the network
- Robust infrastructure for services
- Scalable, highly available, and persistent
- Customizable enable personal preferences (and
code!) - Support a wide-range of devices pagers to PCs
- Easy to author
- Universal framework for constructing and
deploying services - Programming model and execution environment for
scalable services - Authentication and pay-per-use services
- Automatic discovery, composition and use of
sub-services
7A Structured Architecture Approach
8What is a Service?
- Service
- Highly available program (or cooperating
programs) - fixed interface at a fixed location (lives in the
infrastructure) - guarantees about performance, availability,
consistency - Strongly typed interface
- Multiple services of a given type compete
- Compete on location, price, robustness,
quality, brand name - Service Discovery Service (SDS)
- Find best service of given type
- current approach based on weighted statistical
matching - Construct a path from client to service
9Ex Personal Information Management
- Users (will) have lots of (new) end devices
- Each device has its own address, capabilities,
etc. - Universal Inbox gives users control over how
info reaches them - Transcoders adapt content to end device
10Example Ninja Jukebox
11Example Millennium Cluster
Cell Phones
- Large-Scale Campus-wide Testbed
- Management by Services
- push monitoring service into nodes
- clusterview service logs, aggregates, manages
- Resource allocation by market services
- banks, brokers, merchants
12Why Open Infrastructure Services?
DATEK (Trust Contract)
Trusted Client
The Internet
https
13Embedded Untrusted Interface?
14One Time Passwd to pseudo-service
- Cannot increasing the security of the channel so
decrease the value of the content.
15Constrained Personal Device Untrusted Gateway
NINJA
Key Store
Personal Appl
sRMI
Content Filter (pseudonym)
Embeded Untrusted Client
https
DATEK (Trust Contract)
Trusted Client
The Internet
https
16Example Minimal Trader
- Shared secret between user and keystore
- keystore maps to service identity /
authentication - Content filter transcodes to very concise info to
pilot
17Uniform Access to Diverse Services
NINJA
Key Store
Personal Appl
sRMI
GWY
RMI PXY
ST
CF
Trade-R-us
Trade-R-us
Content Filter (pseudonym)
Embeded Untrusted Client
https
DATEK (Trust Contract)
Trusted Client
The Internet
https
18Automated Clients, ...
NINJA
Key Store
Personal Appl
sRMI
GWY
RMI PXY
ST
CF
BOT svc
Trade-R-us
Trade-R-us
Content Filter (pseudonym)
Embeded Untrusted Client
https
DATEK (Trust Contract)
Trusted Client
The Internet
https
19Requirements
- Utility scalable, highly available, reliable
- Support for persistent data
- Support for streams, not just RPC
- Support for automatic data transformation
- Support for fine-grain authentication and payment
- Provide support in the Ninja platform
- Compose services upon it
20Ninja Platform Architecture
- Base
- Active Proxy
- Units
- Paths
- Service Discovery
21Base
- A physical, administrative, and logical boundary
- a collection of machines geographically
co-located - administrative guarantees no network partitions
(!), constant power supply, trust within the Base - Base platform simplifies authoring of services
- cluster primitives
- task execution, naming, and monitoring
- load balancing, failure detection, and restart
- persistent data primitives and guarantees
- distributed, available data structures
- Hides service implementation from rest of world
- granularity of services is at cluster level, not
node level
22Base Implementation
iSpace
iSpace
iSpace
iSpace
SAN
Multispace cluster
- iSpace the building block of a Base
- receptive execution environment
- intra-Base primitives (stub generation,
persistent data repository, etc.) - Multispace cluster-wide naming and resource mgmt
23iSpace Execution Environment
Untrusted Services
Loader
Trusted Services
Security Mgr
Ninja RMI
JVM persistent store APIs
iSpace
24Multispace
Services names are at the granularity of the
entire cluster, not individual nodes.
- RMI Redirector Stubs assembled
- run-time compiled RMI superstub
- contains all of a services instances stubs
- stub selection policy
- fail-over, broadcast, multicast, fork, etc.
- currently, idempotency and atomicity required of
service instances
1
2
3
25Distributed Data Structures
- Solve the state management problem once and
provide high-level abstractions to service
authors - Hypothesis given a set of highly-available,
scalable, persistent data structures, persistent
BASE services will be much easier to construct - Example data structures
- append/truncate-only Log
- system logging, generational mailstore, undo/redo
logs, etc. - Hash table
- web cache, search index/data, mint accounts, etc.
- consistent, persistent, and highly available
- Tree / Trie / Treap
26Fast Communication and I/O in Java
- Scalable Ninja services need full capabilities of
Base devices - fast SAN, IO rivers
- JNI overhead too large
- can violate type safety
- chokes JVM
- JDI by JIT interpositioning
- intelligent devices reflected as Java objects
- JIT interprets operations on devices
- data buffers bypass JVM
- ex Java AM over VIA on Myrinet
Scalable Service
JVM
JNI
Fast Devices
Node HW/OS
Streaming data
27Status
- Several services running all the time
- Release 1.0 now available
- contact info ninja.cs.berkeley.edu
- Includes
- NinjaRMI, including authentication
- iSpace/MultiSpace infrastructure
- SDS (soon)
- Several example services, including Ninja Jukebox
- Active current focus
- driving applications e-mail, group calendar, PDA
svcs - service discovery path creation
- Java I/O and fast communication
- cluster-wide data structures
28Existing Applications
- Ninja "NOW Jukebox"
- Harnesses Berkeley Network of Workstations
- Plays real-time MPEG-3 audio served from 110
CD's worth of music - Voice-enabled room control
- Speech-to-text Operators control room services
(camera, lights, microphone) - Integration with GSM cell phones and PDA-based UI
(soon) - Stock Trading Service
- Accesses real-time stock data from Internet
- Programmatic interface to buy/sell/trade stocks
through online brokerage - NinjaFAX
- Programmable remotely-accessed FAX machine
service - Send/receive FAXes authentication used for
access control - Keiretsu The Ninja Pager Service
- Provides instant messaging service via Web,
1/2-way pagers, WorkPads, etc.
29Coming Applications
- Universal Inbox
- e-mail, FAX, pager, voicemail accessible anywhere
- persistent data (yes we will use it!)
- Infrastructure-based group calendar
- handles both web and PDA access
- supports disconnected operation
- Universal Remote
- multiple-UI control of household/room devices
- automatic UI generation
- Ecash Mint
- Authenticated service to act as digital secure
cash mint - Enable real pay-per-use services (e.g. Coke
machine)
30Ninja Requirements Summary
- Utility scalable, highly available, reliable
- Base, MultiSpace, Smart Client, NinjaRMI, and
mobile code - Architecture for easy development/deployment of
services - Support for persistent data
- Base and persistent hash tables
- Support for streams, not just RPC
- Operators and wide-area paths
- Support for automatic data transformation
- Wide-area paths Strong typing Automatic Path
Creation - Span spectrum of end-user devices dynamically
- Support for fine-grain authentication and payment
- Authenticated and pay-per-use services
31To Read More
- http//ninja.cs.berkeley.edu
- The MultiSpace an Evolutionary Platform for
Infrastructural Services, S. Gribble, Welsh,
Brewer, and Culler. 1999 Usenix Annual Technical
Conference. - An Architecture for a Secure Service Discovery
Service, Czerwinski, Zhao, Hodes, Joseph, and
Katz., MobiCom '99