Holding slide prior to starting show 5 December 2003 WeSC 1 JISGA: A Jini-Based Service-Oriented Grid Architecture and Its Workflow Language Yan Huang 5 December 2003 WeSC 2 Presentation Outline • • • • Introduction to JISGA SWFL and its support for parallelism Implementation issues Current and future work 5 December 2003 WeSC 3 JISGA • Is a Jini-Based Service-Oriented Architecture. • Extends a Jini system into an OGSAcompatible system for Grid computing by introducing Web service techniques into the Jini system. • Services are presented as both Jini and Web services. 5 December 2003 WeSC 4 JISGA Service Registry Lookup Service Proxy discovery publish discovery publish binding Proxy WSDL HTTP 5 December 2003 Service Provider invoke WeSC Proxy Service Requester 5 JISGA • Service Workflow Language (SWFL) is the XML-based description language for composite applications and services. • The workflow engine serves as the execution environment for the SWFL-described Grid applications . • By using multiple distributed Job Processors and JavaSpaces as shared memory, JISGA supports parallel processing of applications. 5 December 2003 WeSC 6 Service Work Flow Language (SWFL) • Is XML based for describing interacting Web services. • Extends Web Service Flow Language (WSFL) by – supporting the use of all the conditional and loop control constructs of the Java language in the composition of Web services. – Allows more general data mapping. 5 December 2003 WeSC 7 Why SWFL? • Both Web Services and OGSA services present implementation-free interfaces in a platform-free, XML-based language such as WSDL. • Presenting service composite applications in traditional programming languages limits the applications to a range of specific services and a specific time. 5 December 2003 WeSC 8 Why SWFL? • Representing applications in an XMLdocument allows applications be run in any environment where a set of services are available. • Having a graph-based approach, SWFL gives the flexibility to dynamically partition and schedule services at run time in a distributed environment. 5 December 2003 WeSC 9 An Example of Service-based Application A <?xml …> <SWFLFlowModel> … <ControlLink name=“AtoB” source=“A” target=“B”/> <ControlLink name=“AtoC” source=“A” target=“C”/> <ControlLink name=“BtoD” source=“B” target=“D”/> <ControlLink name=“DtoE” source=“D” target=“E”/> <DataLink name=“AtoB” source=“A” target=“B”>..</DataLink> <DataLink name=“AtoC” source=“A” target=“C”>..</DataLink> <DataLink name=“BtoD” source=“B” target=“D”>..</DataLink> <DataLink name=“CtoD” source=“C” target=“D”>..</DataLink> <DataLink name=“DtoE” source=“D” target=“E”>..</DataLink> … <SWFLFlowModel> 5 December 2003 WeSC C B D E 10 The Architecture of JISGA Service Service JobProcessor Processor Job Service Service Service Service Service Service Service Service Service Service Service Service JavaSpaces JavaSpaces Workflow Workflow Engine Engine SWFL SWFL Document Document 5 December 2003 WeSC 11 What the WorkFlow Engine Does • Converts a SWFL-described job into an executable Java code and executes it. SWFL2Java <?xml…> <SWFLFlowModel …………… …………. ………. …. SWFL2Graph Intermediate Graph2Java FlowModel object Java Executable Code SWFL description 5 December 2003 WeSC To be continued12 What the WorkFlow Engine Does • Allows both non-blocking and blocking job submission Result (JobID) WorkFlow Engine JavaSpaces JobID Result 5 December 2003 WeSC To be continued13 What the WorkFlow Engine Does • Allows both sequential and parallel job processing. A B C A D TPSOG Algorithm E B C D E TPSOG: Task Processing Sequential Order Generating 5 December 2003 WeSC 14 Parallelism Support in SWFL • A label is specified for each parallel process. – A particular job can be assigned to a particular parallel process to support MIMD parallelism. – A message-passing path can be specified • Allow specification of shared and non-shared variables to support shared-memory applications – Accessing a shared variable requires mutual exclusion 5 December 2003 WeSC 15 Parallelism Support in SWFL: Data Mapping • The data mapping specification in SWFL can specify how a data structure is to be distributed across the processes. – In order to adequately support SPMD (Single-Program Multiple-Data) parallelism. – The mapping is implemented in two steps • a single-to-multiple data decomposition mapping • Mapping sub-data to processes 5 December 2003 WeSC 16 Parallelism Supports in SWFL --Data Mapping Data Sub-Data Processes 1 2 1 n n-1 n-1 2 n Mapping a data structure to parallel processes. 5 December 2003 WeSC 17 Parallelism Support in SWFL: Data Mapping • A “multiple-to-single” data mapping mechanism in SWFL to support data merging. It can be – data reduction in which all the data sub-parts are combined using a binary operation such as addition, multiplication, max, min, logical and, etc. – combining a data sub-parts into a larger data structure by allocating each element in the subparts to a specific location in the target data structure (gather operation). 5 December 2003 WeSC 18 Parallelism Support in SWFL: Data Mapping Processes Sub-Data 1 1 n-1 2 2 n-1 n n Data Data merging 5 December 2003 WeSC 19 JISGA Parallel Job Processing I A B C Job Partition Algorithm write D A write write JavaSpaces E take II take B take C F III IV E 5 December 2003 WeSC 20 To be continued JISGA Job Parallel Processing SWFL description Workflow Engine 1 Job Processor 2 JPP Job processor Job Queue Job Partitioning Process JavaSpaces 3 4 Job Processor JPP 5 Sub-job Processing Process 6 5 December 2003 SPP Sub-Job Queue WeSC SPP 21 Implementation Issues • Point-to-point message passing: Process C Process A take JavaSpaces Process D Process B 5 December 2003 Write WeSC 22 Implementation Issues • Broadcasting : Process C Process A notify Read/Register notify Read/Register notify Process D Read/Register JavaSpaces Process B 5 December 2003 Write WeSC 23 Implementation Issues • Shared Data: read and update operations allowed. – Update is combined take-and-write operations. • Non-shared Data: only a certain process can access the data. 5 December 2003 WeSC 24 Implementation Issues • Data decomposition and merging P1 P2 Data Decomposition JavaSpaces Data Merging S1 S2 S3 S4 5 December 2003 S5 WeSC 25 A JISGA Virtual Machine Grid Services JobProcessor JobProcessor (CPU) (CPU) JobProcessor JobProcessor (CPU) (CPU) JobProcessor JobProcessor (CPU) (CPU) JobProcessor JobProcessor (CPU) (CPU) JavaSpaces JavaSpaces (SharedMemory) Memory) (Shared UDDI UDDI Registry Registry Lookup Lookup Service Service 5 December 2003 Workflow Workflow Engine Engine Workflow Workflow Engine Engine Workflow Workflow Engine Engine WeSC JavaSpaces JavaSpaces Housekeeper Housekeeper 26 Current and Future Research • Update JISGA with Jini2.0 – Jini2.0 provides new programming models and infrastructure necessary to support and manage security in distributed applications. • Monitoring System – Job Tracking Service – Performance Analysis and more intelligent Scheduling Service. • Final release. 5 December 2003 WeSC 27 Current and Future Research • GSiB (Grid-Service-In-a-Box) – Development of a Visual Service Composition Environment to build service-composite application/service in an easy-to-use graphical environment. – Automatic Service Deployment and Updating. – Integrate Jini services, CORBA services and OGSI services by using workflow engine – Support other job description languages such as BPEL4WS and WSCI. 5 December 2003 WeSC 28 5 December 2003 WeSC 29