1.05k likes | 1.21k Views
Grid and Service-Oriented Computing: The Intergrid Perspective Part II. Michael Sobolewski Texas Tech sobol@cs.ttu.edu. Presentation Agenda – Part II. Grid Federated S2S Environment GISO Programming Monitoring Execution of SO Programs ServiceUI Provisioning and Autonomic Computing
E N D
Grid and Service-Oriented Computing:The Intergrid PerspectivePart II Michael Sobolewski Texas Tech sobol@cs.ttu.edu
Presentation Agenda – Part II • Grid Federated S2S Environment • GISO Programming • Monitoring Execution of SO Programs • ServiceUI • Provisioning and Autonomic Computing • Design Issues – UML Class Diagrams • Code Mobility in SORCER • File Store Service • SGrid and Intergrid • Surrogate Architecture for Mobility • Web/Grid Services in SORCER • DB Context Providers • A Grid Killer Application • SORCER Research Projects • Summary
Applying OO Techniques • Service activity is a special object of type: Exertion • Exertions are executed by network objects/service providers of type: Servicer • Service providers form P2P environment • Service is requested by calling the method: service(Exertion) • Service providers are identified by a type with methods: public ServiceContext selector(ServiceContext)
Exertion Interface • All service activities implement this interface: public interface Exertion { // Apply this exertion method to the specified context public Exertion exert() throws RemoteException, ExertionException; … }
Service Peer Interface: Servicer • All services implement this interface: public interface Servicer { // Put into action the specified exertion public Exertion service(Exertion exertion) throws RemoteException, ExertionException; // Monitoring methods … }
Contexts and Context Methods Job Task Service Context Service Method DAS MAT GEOM PP CC … Disk Airfoil LC MAT_RENE5 CC STRESS Disk_PRT BC Gas_Loads Mat_Rene5.dat Shank UIF Post_Stress.dat Disk.prt Cyclic ExtGLoads.dat TC AS_PRT AS_PRT Airfoil.uif Mesh AS_Shank.prt BCCyclic.dat AS_Shank.dat Stress_Tet Mesh Stress_Tet Modal_Hex • ServiceMethod • ScriptMethod • XYZMethod AS_Shank.dat AS_Shank.dat AS_Shank.dat ContextMethod attributes: service type, selector, group, provider name, method type Method type: preprocess, process, postprocess, append TC – Task Context, CC – Control Context
Service Binding Job Task Context Method Method type: preprocess, process, postprocess, append Job as a Megaapplication
Federation of Services Job Task Context Method Method type: preprocess, process, postprocess, append Job as Runtime Environment Federation Member
GISO Programming Grid Interactive Service-Oriented Programming Generic End-User Client Service-Oriented, Grid-Programming and Development Tools Service-Oriented Programs Domain Services Service-Oriented Infrastructure Services (SORCER.core)
Job Structure FiperJob Exertion FiperTask Airfoil FiperMethod FiperMethod FiperContext FiperContext … Exertion FiperTask Platform FiperMethod FiperMethod FiperContext FiperContext Shank . FiperMethod . Dovetail ControlContext Turbine Blade Solid Geometry
Mechnical Analysis of TB Process Turbine Analysis Actions Data
Web Based User Agent } FiperContext FIPERTask FIPERJob
Context Editor Context Name Domain Subdomain Context Node Data Node
Task Editor FiperMethod Definition Task Name Context for Task
Created Task Task Name FiperMethod FiperContext
Job Editor Operations Domain Subdomain Job Name { Job Tasks Create a new Job and add to Job Create a new Task and add to Job Task Editor Features Job Editor Features Browse & Add Task to Job Browse & Add Job to Job
Job Context Job Task 0 Context0 Task1 Context 1 Drag and Drop shows that this Input will come from task0, AutoShank Output Node
Monitorable Interface All ServiceProviders are Monitorable to monitor, control execution and debug SO programs
Execution States of Exertions Running Done Failed Suspended Error Initial Deleted resumestep suspend resumestep stop run • ServiceProvider – Exertion Status Map (ESM) • Jobber – Dispatcher Thread Map (DTM) • Exception/Errors returned in ServiceContexts
p1 p1 p1 Monitoring Framework service(job) monitor(rJob) Jobber service(ex) Client1 monitor(rex) service(job) WebPortal monitor(rJob) DB Client2 Persister • State of running SO program updated via DB • Clients can monitor the SO program via web portal • Clients can stop/resume/suspend • Monitoring requests are handled by Service Broker
Job Browser Exertion List Job List Launcher Control Panel
Control Context Review = Suspend
Job Monitor Full Job Edit Capability Job Execution Controls
MO - Complete Framework Monitor ServiceUI session Persistent session session Transient session session session session session SOP = { sop1, sop2, …..} Or = sop-x , x=1,2,…… Session Manager UI Manager Monitor Manager register (RemoteEventListener duration, timeout SOP) : RuntimeExertion update(..) stop(..) error(..) 1 4 2 notify (Monitor Event) For (every sop-x) x=0,1,2,… Init (cookie, monitorable, duration, timeout) 5 Monitorable Service Broker Monitorable Monitorable 3 SOP execute ( sop-x) Federation Service Requestor
Result or Failure Notification session session session session Monitor Manager update(..) stop(..) notify (Monitor Event) 8 9 Monitorable Service Broker Monitorable Monitorable 7 execute ( sop-x) Service Provider
Suspend/stop/resume a Job 1 suspend/stop/resume job(……) Monitorable Servicer 2 suspend/stop/resume job(……) Monitorable Servicer 3 notify (Monitor Event) Monitorable Servicer Monitorable Servicer Service Broker Monitorable Servicer Monitorable Servicer
Monitoring Framework MonitorableServicer • stop(Ueid) • suspend(Ueid) • resume(Ueid) • step(Ueid) MonitorSession • init (monitorable, duration, • timeout) • getState() • update(context) • done(context) • failed(context) • getLease() MonitorUIManager • getSOPInfo(Principal) • getSOP(referenceID, • Principal) Servicer . Issues Monitorable calls MonitorManager SessionManager • register (leaseDuration, • job, • listener) • init(cookie, monitorable, • duration, timeout) • update(cookie, context) • done(cookie, context) • failed(cookie, context) Remote Event Listener Registers and gets back Runtime Job Providers use session to update information about runtime exertions Service Provider 1 MonitorableProvider 1 0..* xxxServiceProvider ServiceTask Jobber Dispatches Exertion with Session Objects 1 ServiceJob invokes MonitorableDispatcher 1 1 Dispatches exertions in job
Service UI A "direct-use" client talks to a service through its object interface
Service UI A user interacts with a service via a UI object
Context/Method/Task/Job Entry Server Site Service Context 0..* Entry Exertion Has data Entry ServiceTask Arithmetic Method 1..* EntryServiceJob Remote Defines remote behavior 1..* ServiceJob ServiceTask Remote Service Method Service Method Exertion Client Site Defines behavior Serializable
Task Execution Servicer Provider Arithmetic Interface Remote Arithmetic Remote Unicast Remote Object Runs Provider Worker Service Provider JavaSpace Uses Submits task Arithmetic ProviderImpl Arithmetic Method Sorcer Joiner Publishes Proxy Submits task Executes Invokes Arithmetic Requestor Entry ServiceTask Remote ServiceMethod Requestor Runner Has data 0..* Service Context ServiceTask Drops task Requestor
Job Execution Provider Requestor Submits job Service Servlet Jobber Arithmetic Requestor Requestor Runner Service Provider <<HTTP>> Invokes Disapatcher Factory Servlet Protocol JobberImpl TaskDispatcher Uses Creates Cataloger Proxy Protocol TaskDispatcher Factory Service TaskDispatcher Service CatalogImpl Uses Sorcer Launcher Catalog TaskDispatcher Space TaskDispatcher Provider Accessor Uses Drops job JobBrowser JavaSpace Service access: Direct, Catalog, Space
SORCER Smart ProxyBL on Client and Server Unicast Remote Object Remote Service Bean Adapter Servicer Provider Uses Provider Worker Service Proxy Service Bean Service Provider Uses Uses Arithmetic Proxy Delegates to Java Space Provider Delegate Arithmetic Interface Arithmetic Bean Arithmetic Provider Arithmetic Service Arithmetic Remote Exports Provider Deploys by QoS Service Joiner Service Remote Provisioner Publishes provider’s proxy
Mobility • Mobility stems from desire to move either toward resources or away from scarcity • Mobility of computing entities • Physical mobility • Computers • Logical mobility • Running user application (active process) • Migrate within a local cluster of computers • Enable load distribution and fault resilience • A mobile agent • Migrate anywhere on the Internet • Act on the user behalf to pursue specific goals • Mobile code • Applets • MIDlets • RMI/Jini/Rio/SORCER
Mobile Agents • A mobile agent – a network application that migrates in a network (grid) • Active • Autonomous • Goal-driven • Acting on behalf of a user • Stationary agents • Intelligent agents • Multi-agent systems
Agents and Mobile Code • Mobile code solves problems • Heterogeneity (platform independence) • Dynamic class loading • Security and safety • Multi threading support • Object serialization • Reflection • Universal availability of JVM • A large number of docking stations
Mobile Code SORCER Code Mobility has many forms • 1. Proxies • Exertions • Task Methods • Agents • SORCER Beans (JSBs) • Service UIs
Agents in SORCER Agent Remote act Bootstraps Uses Stores Restores RemoteAgent ObjectLogger AgentBootstrap Dropper Uses Jobber Self SelfAgent Uses RequestorRunner ServiceProvider think 1..* 1..* Provider Requestor TaskAgent JobAgent doTask stopTask doJob stopJob suspendJob resumeJob stepJob getTask getJob 1..* Uses Uses EntryMethod EntryTask EntryJob 1..* ServiceMethod ServiceTask ServiceJob Servicer Agents 1..* Uses Uses service SORCER Providers JDK 1.4 objects Exertion ServiceContext Uses preprocess process postprocess JDK1.1 surrogate Limited objects EntryExertion Entry Uses
Self-Aware Grid • A grid federation knows what is doing • Learn from experience and adapt to surprises • Is aware of its behavior and explain itself • Is able to anticipate different scenarios and predict and plan for novel futures • It would learn, not crash, when faced with a new situation • Self-testing, self-debugging, and self-explaining within a federation
What is Rio? • A Dynamic Service Delivery architecture based on the capability to provision services through the network using Qualitative and Quantitative QoS attributes • Addresses essential issues for the development of a dynamic self healing services environment
RIO & Autonomous Computing • Dynamic, Distributed systems • - Capability to adapt to unforeseen changes on the network • - Driven by increasing componentization, distribution & heterogeneity • Scale to orders of magnitude • Dynamic Policy driven systems • - Injecting rules & policies into the service fabric allowing greater automation, scalability and controlled behavior • Telemetry • - Being able to monitor, meter, gauge and observe stimulus through the system • - Not just machine based, but network-wide
Rio Architecture Overview Tools Development & Assembly Jini Service Beans Federation Resources Assimilation Integration & Interoperability Dynamic Container Substrates Dynamic Provisioning JavaTM 2, JiniTM
Jini Service Bean Basics • Jini Service Beans (JSBs) are the fundamental domain specific computational entities on the network • JSBs are Java objects • JSBs can encapsulate access to NDI (legacy) components • Provides an easy to use programming model while maintaining access to low-level APIs • Are provisionable based on their QoS attribute