Top Banner
1 cmn 2006-02 Building Grids with Jini and JavaSpaces Carlo Nardone Grid Program Driver – Sun Microsystems Italy
61

Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

Jun 28, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

1cmn 2006-02

Building Grids with Jini and JavaSpaces Carlo Nardone

Grid Program Driver – Sun Microsystems Italy

Page 2: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

2cmn 2006-02

Agenda

● SOA● Jini● JGrid● Jini Rio● JavaSpaces● (JXTA, JxGrid ...)

● thanks to Z. Juhasz, Univ. of Veszprem (Hungary) and many colleagues at Sun

Page 3: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

3cmn 2006-02

Big Trends● Grid Computing moving towards a Service

Oriented Architecture (SOA)● Draft standards “war” in Web Services space ● OGSA (Open Grid Service Architecture) is based

on Web Services● ...

Page 4: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

4cmn 2006-02

Big Trends● Grid Computing moving towards a Service Oriented

Architecture (SOA)● Draft standards “war” in Web Services space ● OGSA (Open Grid Service Architecture) is based on

Web Services● ... but SOA is NOT = Web Services!● SOA architectural elements:

– What is a service? Identity, identification ...– How do I find a service? Discovery, registry ...– What is the communication model?– What is the programming model?– What is the failure model?

Page 5: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

5cmn 2006-02

Web Services Approach● Assumptions:

– WWW– Long-running, big services

● Service Identification : WSDL● Service Location: UDDI● Communication Model: SOAP● Programming model: Document Exchange● Failure model: HTTP failure, extended● Optimized for

– WWW (and firewalls)– Long running, different companies, etc.

Page 6: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

6cmn 2006-02

JiniTM

www.jini.org www.sun.com/jini

● Invented by Sun Microsystems, 1999● Service–oriented framework for creating

reliable distributed applications● Designed with the network in mind● Provides a spontaneous, self-healing

environment● Moves the Java platform to the network (but it

is language independent!)● Both an infrastructure and an object-oriented

programming model

Page 7: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

7cmn 2006-02

Jini Approach● Assumptions:

– Ad-hoc networking– Change all the time, moving objects

● Service Identification : Java types, UUIDs● Service Location: Lookup Service/Discovery● Communication Model: RMI/JERI● Programming model: Java + object mobility● Failure model: Leasing, RemoteException● Optimized for

– Flexibility– Reasonably open networks

Page 8: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

8cmn 2006-02

The benefits of Jini

● Self-healing, fault-tolerant system● Dynamic operation supports scaling up/down

and dynamic service provisioning● Service-oriented architecture● Can dynamically change implementation

without affecting clients● Fast and administration free system

integration

Page 9: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

9cmn 2006-02

Jini Spontaneous Networking

● Jini enables clients to automatically discover services at runtime

● Associative search– Not by name lookup (e.g. http://some.url:port)– Instead: find a service that does this or that

● Loose coupling– Services and clients can join and leave the

system (Jini federation) at any time without causing system failure

Page 10: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

10cmn 2006-02

Jini Operational Overview

● Clients and service discover the lookup service

● Service register in the lookup service

● Services may join and leave the network any time

● Clients search for services in the lookup service

Client Service

LookupService

proxy

Service

Service

registerlookup

proxy

register

register

proxy

proxy

proxy

Page 11: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

11cmn 2006-02

The Role of the Proxy

● The proxy is a Java object downloaded from the service– provides service or– transparently transfers

method calls to the remote service● Hides implementation and communication

details– Protocol independent (TCP/IP, HTTP, SOAP, etc.)

Page 12: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

12cmn 2006-02

Jini Programming Model

● Jini applications lease resources– Provides automatic resource management and self-

healing● Can use distributed events – Notify about events in a publish-subscribe manner

● Can execute operations under transactions● Can integrate non-Java implementations as well

Page 13: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

13cmn 2006-02

Jini and Java

● Builds upon Java– Platform-neutral

environment– Object-oriented

programming model● The Jini programming

model extends Java ● The Jini infrastructure provides the basic operation

mechanism: spontaneous configuration– discovery, join, lookup

● Jini services, client applications use the programming model and the infrastructure

Page 14: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

14cmn 2006-02

JGridjgrid.jini.org http://pds.irt.vein.hu● Started in 1999 at the University of Veszprem,

Dept. of Information Systems (Hungary)● Partially funded by Sun since 2003

● JGrid is a Jini-based service-oriented grid framework● It virtualises resources and applications as Jini

services● Provides a scalable and extensible framework to

create secure large-scale grid applications

Page 15: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

15cmn 2006-02

Characteristics of Grid Systems

● Grid systems are dynamic– Accidental or planned removal or resources– Temporary or long-term network failure– Adding new services, updating existing ones

● Important requirements– Location transparency – no explicit server addressing

(URLs don’t work)– Loose coupling between clients and services– Implementation transparency

Page 16: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

16cmn 2006-02

JGrid Main Features

● JGrid addresses these problems and provides:– Wide area service discovery– Platform and protocol independence based on Java and

Jini– Advanced security architecture– Support for transparent sequential and parallel

program execution as well as data storage

Page 17: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

17cmn 2006-02

JGrid Key Services

● Authentication and Registration services– Certificate-based access control to services and single sign-on

● Compute Service– Executing interactive Java programs

● Batch Service– Executing non-Java programs by integrating with batch

environments such as Sun Grid Engine and Condor

● Storage Service– Providing access to user files over the network

● Broker Service– Helper service for locating computational services and

managing program execution

Page 18: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

18cmn 2006-02

JGrid Wide Area Discovery

● Requires extension of standard Jini model– Simple lookup service federation is complicated– Large delays can block discovering entities– Some extensions use P2P and flooding – not suitable for very

large systems due to unpredictable performance and network load

● JGrid approach– A hierarchical service overlay network– Lookup services provide service information input– Grid Access Points are the main gateways– Information aggregation for content-based query routing and

flexible service matching

Page 19: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

19cmn 2006-02

User Access – Service Browser

● The JGrid Service Browser features:– Jini and wide-area

service discovery– View definitions– ServiceUI support– Security– Monitoring– Plug-in mechanism for

integrating client programs with grid

Page 20: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

20cmn 2006-02

Trivial JGrid Batch Execution

Batchservice

Batchservice

Batchservice

Lookupservice

Local services

Remote servicesBatch

service

Batchservice

Batchservice

Grid AccessPoint

Grid discovery

User is responsible for:• Discovering local/remote services• Submitting to services• Managing execution

Page 21: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

21cmn 2006-02

JGrid Interactive Execution● Complex grid service or parallel program execution

Compute

LUS

Local services Remote servicesCompute

Compute

GAP

Compute

Grid discovery

Services can be connected to run complex parallelapplications (co-allocation)

Communication using proxies

Proxy of dynamically

spawned service object

Page 22: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

22cmn 2006-02

JGrid Batch Execution using a Broker

Broker

Batch

LUS

Local services

Remote services

Batch

Batch

BatchGAP

Grid discovery

Batch

Only a local Broker is required• Broker acts on behalf of the user • Only submit to broker and retrieve results More user friendly.

Page 23: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

23cmn 2006-02

JGrid User Interfaces

● JGrid services use dynamic user interfaces

● User interface code arrives from service– No need to install clients

● Example:– Use of Media Service

● Jini (ServiceUI) can provide multiple, alternative user interfaces to services– Jini is unprecedented in

this respect

Browser

Dynamically downloaded main window

Dynamically downloaded

player window

open

search

play

Page 24: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

24cmn 2006-02

Some possible uses of JGrid

● JGrid can be used for non-computational domains as well

● Example services:– Streaming media delivery– News services– On-demand computing

● Media processing and delivery, spam filtering, long-lived service applications

– Compound services – Banking for more effective access for customers– Business-to-business applications

Page 25: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

25cmn 2006-02

... but what is Grid Computing?

● Purist view vs pragmatic view ● “Don't worry about definitions – if it's distributed,

connected by network, managed by middleware, it's a grid” (Wolfgang Gentzsch, D-Grid)

● Most businesses need to adopt fully distributed, virtualized architectures in their Datacenter before considering any Grand Grid Vision

● 3 phases of Grid adoption:– Cluster Grid– Enterprise Grid– Global Grid

Page 26: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

26cmn 2006-02

Phases of Grid Computing

Cluster GridDepartmental Computing

• Simplest Grid deployment• Maximum utilization of departmental resources• Resources allocated based on priorities

Enterprise GridEnterprise Computing

• Resources shared within the enterprise• Policies ensure computing on demand• Gives multiple groups seamless access to enterprise resources

Global GridInternet Computing

• Resources shared over the Internet• Global view of distributed datasets• Growth path for enterprise Grids

Page 27: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

27cmn 2006-02

From Local to Global

Backup Slides

Global Grid

Enterprise Grid

Enterprise Grid

InternetInternetCluster Grid

Cluster Grid

Page 28: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

28cmn 2006-02

Grid Adoption Trend

HPTC GridsTech/Tech:Technical End UserTechnical Application

End user: Academic/Research

Higher Priorities:Price/PerformanceTeraflops

Lower Priorities:ManageabilityHASLA'sCost of ownership

Tech GridsCom/Tech:Commercial End UserTechnical Application

End user: ManufactureEDAOil and GasFinancePharma

Higher Priorities:Cost AcquisitionPrice/PerformancePerformanceManageability

Lower Priorities:Availability (except Finance)SLAs (except Finance)Teraflops

Data Center GridsCom/Com:Commercial End UserCommercial Application

End user: EnterpriseService Providers

Higher Priorities:AvailabilitySLAsUtilizationManageabilityCost of ownership

Lower Priorities :Acquisition costPrice/PerformanceAbsolute PerformanceTeraflops

Time We're about here

Page 29: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

29cmn 2006-02

Case Study: Financial Services App● The Application

– Fraud detection system used daily by millions of consumers worldwide

– 1,000s transactions per second– 24x7– 0.3 TB of active data– Steady growth in throughput & data

Page 30: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

30cmn 2006-02

Case Study: Financial Services App● The Application

– Fraud detection system used daily by millions of consumers worldwide

– 1,000s transactions per second– 24x7– 0.3 TB of active data– Steady growth in throughput & data

● The Architecture– classic 2-tiered system– centralized application server, random-access data on disk– one giant domain on a large SMP (12 -> 32+ CPUs)– classic C/C++ hand-crafted code– single threaded, multi-process design, primitive data structures

in shared memory, queues for process comm.– serious mathematical computations for each transaction

Page 31: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

31cmn 2006-02

Case Study: Financial Services App● Distributing the architecture

– many small, cheap, fast compute nodes● View grid as unlimited distributed RAM

– Divide data into "buckets"– Distribute, "cache" buckets into compute nodes– Dispatch each transaction to the "right" compute node

● HA via N + k architecture– N compute nodes, k "spare nodes"– Jini/Rio based automatic provisioning, fault detection and

recovery

Page 32: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

32cmn 2006-02

Case Study: Financial Services App● Distributing the architecture

– many small, cheap, fast compute nodes● View grid as unlimited distributed RAM

– Divide data into "buckets"– Distribute, "cache" buckets into compute nodes– Dispatch each transaction to the "right" compute node

● HA via N + k architecture– N compute nodes, k "spare nodes"– Jini/Rio based automatic provisioning, fault detection and

recovery

● Results– 2x better throughput, 4x better TCO/3yrs, recovery time down 9x – “I guess Java really works in heavy-duty environments”– “With such a throughput, real-time processing is possible”– “With this kind of resilience, scalability and cost, who needs

mainframes?”

Page 33: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

33cmn 2006-02

Distributed Architecture

Page 34: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

34cmn 2006-02

Distributed Approach● Application fit

– Autonomous transactions– Partitionable data– Deterministic, 1-to-1 map between transaction & partition– Many real-world examples: credit scoring, stock trading, indexed

search, on-line banking, on-line catalog, payroll processing, readonly data marts, 90% batch systems

Page 35: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

35cmn 2006-02

Job Scheduling

Page 36: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

36cmn 2006-02

Job Scheduling

Page 37: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

37cmn 2006-02

Job Scheduling

Page 38: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

38cmn 2006-02

Job Scheduling

Page 39: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

39cmn 2006-02

Job Scheduling

Page 40: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

40cmn 2006-02

Job Scheduling

Page 41: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

41cmn 2006-02

Distributed Approach● Application fit

– Autonomous transactions– Partitionable data– Deterministic, 1-to-1 map between transaction & partition– Many real-world examples: credit scoring, stock trading, indexed

search, on-line banking, on-line catalog, payroll processing, readonly data marts, 90% batch systems

● Resource Management– Basically, what RAID is to storage, grids are to compute power– but ... management is hard!

● Deployment, Recovery, Monitoring ...

– Jini Rio to the rescue!● Dynamic Service Provisioning● Automatic failover detection & recovery management● Service Monitoring & Management

Page 42: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

42cmn 2006-02

The Dynamic Adaptive Grid● Jini Rio Overview

– Open source Jini project– Dynamic service provisioning– Handles service fail over– Manages Service Level Agreements (SLAs)– Jini Service Beans (JSBs)

● Simple component model

● Rio Components– Provision Manager

● Handles deployment, recovery, and enforcement of SLAs

– Cybernodes● Light weight container that handles service lifecycle and monitors

SLAs

– Applications may use Rio API to provide application-specific fail-over logic

Page 43: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

43cmn 2006-02

Dynamic Failover

Page 44: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

44cmn 2006-02

Dynamic Failover

Page 45: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

45cmn 2006-02

Dynamic Failover

Page 46: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

46cmn 2006-02

Dynamic Failover

Page 47: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

47cmn 2006-02

Yet Another Approach ...

● Distributed software architecture is complex– Remember the 8 fallacies of Network Computing by

Peter Deutsch? – Latency, memory access, partial failure, concurrency

● Simplicity is Key● A Complete Distributed Framework in Only 4 Basic

Calls:– Write– Read/ReadIfExists– Take/TakeIfExists– Notify

Page 48: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

48cmn 2006-02

JavaSpacesTM

● A model for building loosely coupled systems● An associative shared memory abstraction that

clients on the network can use to share and exchange objects– Remember Linda? – No “passing messages”, “invoke remote object”

● Benefits– Anonymity between applications– Uncoupled communication– Programs can communicate through time or space– Vast savings in design and development time

Page 49: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

49cmn 2006-02

What is a Space?

● A place on the network to share and store objects● Associative shared memory for the network● Unifies storage and communications● Simple design -> only four basic operations

Page 50: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

50cmn 2006-02

JavaSpaces and Jini

● An example of a Jini enabled service● Extensive use of Jini technology programming

model– Transactions (distributed consensus)– Leases (resource reclamation)– Remote Events (asynchronous notification)– Same matching rules as service attributes

● Code downloading– Interface defined as Java language interface

● Created by same people!

Page 51: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

51cmn 2006-02

A Dynamic Server Farm

● Animator needs to render movie frames– Writes "request for rendering" entries– Takes render results written back

● Server processes takes– Takes "request for rendering" entries– Executes each request, writing back results

Page 52: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

52cmn 2006-02

A Dynamic Server Farm

Page 53: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

53cmn 2006-02

A Dynamic Server Farm

● Add more servers– Don’t need to tell client about new servers

Page 54: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

54cmn 2006-02

A Dynamic Server Farm

● Add more servers– Don’t need to tell client about new servers

Page 55: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

55cmn 2006-02

A Dynamic Server Farm

● Sometimes servers crash– No need to tell client about missing servers

Page 56: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

56cmn 2006-02

A Dynamic Server Farm

● Add more animators– No need to tell servers about new clients

Page 57: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

57cmn 2006-02

A Dynamic Server Farm

● We run other jobs– We can add new types of jobs without touching servers

Page 58: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

58cmn 2006-02

JavaSpaces Implementations

● Outrigger– Sun Microsystems’ contributed implementation– Part of the starter kit

● Includes source under SCSL– 10,000 to 100,000 entries– www.sun.com/jini

● GigaSpaces– Enterprise implementation

● Clustering● Scalability● High Availability● Performance enhancements● Integration with web services, SOAP, WSDL, UDDI, JDBC

– www.gigaspaces.com

Page 59: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

59cmn 2006-02

JavaSpaces Real World Projects

● TeamVest– Developed online 401(K) investment site for Intuit– Uses spaces to run Monte Carlo simulations

● Compute server– www.teamvest.com

● Cisco– Scalable Infrastructure (SI) communication framework

● High availability● Agents

– http://developer.jini.org:80/exchange/projects/si/

Page 60: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

60cmn 2006-02

The Network Is the Computer

Page 61: Building Grids with Jini and JavaSpacesindico.ictp.it/event/a05191/session/90/contribution/64/material/0/0.pdf · cmn 2006-02 1 Building Grids with Jini and JavaSpaces Carlo Nardone

61cmn 2006-02

Thanks!

[email protected]

http://blogs.sun.com/cmn

The Network is the Computer