H2O A Lightweight Approach to Grid Computing Roberto Podesta ropode@dist.unige.it
References Emory University (Atlanta, GA, USA) Distributed Computing Laboratory Director: Prof. Vaidy Sunderam Project Leader: Dawid Kurzyniec http://dcl.mathcs.emory.edu/h2o/ http://dcl.mathcs.emory.edu/rmix/ 20/02/2007 Roberto Podesta' 2
What is H2O? Services oriented computing Software base line for: deployment exposition invocation Grid Vision: a network of resources providers and resources consumers where roles can be dynamically and rapidly exchanged 20/02/2007 Roberto Podesta' 3
Components Two entities: 1. Services Container Run-time environment Dynamic hosting Services life-cycle management Transparent communication 2. Services Conceived as plug-in of a Distributed Virtual Machine (DVM) Invoked through functional interface 20/02/2007 Roberto Podesta' 4
Details Java based Services container H2OKernel Services Pluglet Communication layer RMIX 20/02/2007 Roberto Podesta' 5
Services Container Traditional (e.g. J2EE) model: static binding between resource owner and services deployment (i.e. owner deploys services only) H2O Model: resource owner and services deployment are decoupled any authorized third part (e.g. a client) may deploy components on a H2OKernel 20/02/2007 Roberto Podesta' 6
Traditional Services Container vs. H2OKernel 20/02/2007 Roberto Podesta' 7
Service (Pluglet) Implements the Pluglet interface Allows the use of raw resource made available by H2OKernel Must implement a functional interface to be invoked The functional interface must extend the Remote interface 20/02/2007 Roberto Podesta' 8
Pluglet Interface 20/02/2007 Roberto Podesta' 9
Deployment and Invocation Any third part (even a client) can deploy a component The invocation takes place through the functional interface (totally transparent) The Pluglet activation and life-cycle is managed by the H2OKernel 20/02/2007 Roberto Podesta' 10
Functional Interface import java.rmi.remote; import java.rmi.remoteexception; import org.jscience.mathematics.vectors.matrixfloat64; public interface PlugletSover extends Remote { String solve(matrixfloat64 A, MatrixFloat64 B) throws RemoteException; } 20/02/2007 Roberto Podesta' 11
Deployment and Invocation (2) 01 String pwd = "admin"; 02 PasswdRemoteCredential cred = new PasswdRemoteCredential("admin",pwd.toCharArray(),false); 03 Wallet wallet = new Wallet(); 04 wallet.addcredential(cred); 05 URI urikernel = new URI("https://"+host+":7799/"); 06 H2OClient clientcxt = H2OClient.newInstance(wallet, H2O.TRUST_ALWAYS); 07 KernelContext kernelcontext = H2O.getKernelContext(uriKernel,clientCxt); 08 URI[] plugletclasspath = new URI[] {URI.create("pluglet/solver-srv.jar")}; 09 DeploymentDescriptor desc = new DeploymentDescriptor(); 10 desc.setplugletclasspath(plugletclasspath); 11 desc.setplugletclassname("plugletsolverimpl"); 12 desc.setplugletname("solver"); 13 desc.settransient(true); 14 PlugletContext plugletcontext = kernelcontext.deployandwait(desc); 15 PlugletSolver ps = (PlugletSolver) plugletcontext.bind(); 16 String result = ps.solve(a,b); 20/02/2007 Roberto Podesta' 12
Transport Layer: RMIX (Remote Method Invocation extended) Multiprotocol framework (ServiceTransport Provider concept) JAVA RMI, XDR-RPC, SOAP, Asynchronous RMI Support for secure communication (SSL) Automatic stub generation H2OKernel leverages RMIX to make clients totally unaware of the c/s communication details 20/02/2007 Roberto Podesta' 13
Remarks Efficient protocol unaware remote deployment system Client/Server protocol unaware invocation Adoption of common, interoperable communication protocol Simply security management (based on Java Authentication and Authorization Service JAAS) Well suited to deploy enterprise grid application 20/02/2007 Roberto Podesta' 14
Remarks (2) No model for parallel application programming No system for resource brokering and monitoring No default discovering and lookup mechanism 20/02/2007 Roberto Podesta' 15