Holding slide prior to starting show 31 May 2016 WeSC 1 JISGA: A Jini-Based Service-Oriented Grid Architecture and Its Workflow Language Yan Huang 31 May 2016 WeSC 2 Presentation Outline • • • • Introduction to JISGA SWFL and its support for parallelism Implementation issues Current and future work 31 May 2016 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. 31 May 2016 WeSC 4 JISGA Service Registry Lookup Service Proxy discovery publish discovery publish binding Proxy WSDL HTTP 31 May 2016 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. 31 May 2016 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. 31 May 2016 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. 31 May 2016 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. 31 May 2016 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> 31 May 2016 WeSC C B D E 10 The Architecture of JISGA Service Service Service Service Service Job Processor Service Service JavaSpaces Workflow Engine SWFL Document 31 May 2016 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 31 May 2016 WeSC To be continued12 What the WorkFlow Engine Does • Allows both non-blocking and blocking job submission Result (JobID) WorkFlow Engine JavaSpaces JobID Result 31 May 2016 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 31 May 2016 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 31 May 2016 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 31 May 2016 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. 31 May 2016 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). 31 May 2016 WeSC 18 Parallelism Support in SWFL: Data Mapping Processes Sub-Data 1 1 n-1 2 2 n-1 n n Data Data merging 31 May 2016 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 31 May 2016 WeSC 20 To be continued JISGA Job Parallel Processing SWFL description Workflow Engine 1 2 Job Processor JPP Job processor Job Queue Job Partitioning Process JavaSpaces SPP 3 4 6 31 May 2016 Job Processor JPP 5 Sub-job Processing Process Sub-Job Queue WeSC SPP 21 Implementation Issues • Point-to-point message passing: Process C Process A take JavaSpaces Process D Process B 31 May 2016 Write WeSC 22 Implementation Issues • Broadcasting : Process C Process A notify Read/Register notify Read/Register notify Process D Read/Register JavaSpaces Process B 31 May 2016 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. 31 May 2016 WeSC 24 Implementation Issues • Data decomposition and merging P1 P2 Data Decomposition JavaSpaces Data Merging S1 S2 S3 S4 31 May 2016 S5 WeSC 25 A JISGA Virtual Machine Grid Services JobProcessor (CPU) JobProcessor (CPU) JobProcessor (CPU) JobProcessor (CPU) JavaSpaces (Shared Memory) Workflow Engine UDDI Registry Lookup Service 31 May 2016 Workflow Engine Workflow Engine WeSC JavaSpaces 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. 31 May 2016 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. 31 May 2016 WeSC 28 31 May 2016 WeSC 29