160 likes | 282 Views
Integrating Grid Components into Business Processes. Overview. ePVM – An Embeddable Process Virtual Machine GridCOMP/GCM GCM Use Case Application. Business Process Management Life Cycle. <process name=“MyProcess” > <sequence> … </sequence> </process>. BPMN UML. BPEL BPML.
E N D
Overview • ePVM – An Embeddable Process Virtual Machine • GridCOMP/GCM • GCM Use Case Application
Business Process Management Life Cycle <process name=“MyProcess” > <sequence> … </sequence> </process> BPMN UML BPEL BPML Process Definition Process Modelling Process Enactment Process Monitoring Audit Trail Data Process Evaluation Measures for Improvement
Problem Definition • Large number (7+) of process definition standards but no convergence, languages are rather domain specific • XML based - not easily programmable by hand (encoding is very ‘noisy’), not suitable to define behaviour, no fine grained procedural logic • Workflow/BPM systems are often heavy-weight, monolithic systems with many dependencies (e.g. based on application servers), not embeddable • MDA paradigm – developments rely on high-level tool support (modeling/code generation) Issues: Interoperability, Versatility, Programmability
Approach ePVM – A new Process Engine that: • is lightweight and generic (low-level) • is embeddable into all kind of applications (workflow-centric programming) • is easily programmable and independent of high-level tool support • Process Model: Communicating State Machines • Process Definition Language: JavaScript • Available as self-contained library
ePVM Architecture Host Application ePVM Core Engine Library Grid Component Adapter Create Engine Thread Thread in-queue in-queue Deploy Process Definition Instance Instance Instantiate Process BPEL Import/Export Communicate with Process Instance save-queue save-queue API Monitor Events ePVM Runtime . . . Query API Persistence, Trans- actions Monitoring, Audit Trail Messaging, Threading Process Definitions Host Process Object Web Services Gateway JavaScript Interpreter
An ePVM Example Host Process Object Host Process Object (1) (5) ePVM Thread ePVM Thread In-Queue In-Queue (2) (3) Process Instance B Process Instance A CM CM Call (4) (6) Save-Queue Save-Queue
An ePVM Example __PVMPackage = "Order Management"; function verifyOrder__PVMProcess (env, order) { var msg = {name:order.name, number:order.creditCardNumber}; // prepare message var handle = PVM_invoke(cardValidation); // create process instance msg = PVM_call(handle, msg); // send msg synchronous PVM_reply((msg)?”accepted”:”rejected”); // reply result string return false; // terminate process } function cardValidation(env, msg) { if (env.state == null) { // initial state PVM_send(PVM_hostProcess("cardService"), msg); // send msg asynchronous PVM_save(); // put current-message into save-queue env.state = "requested"; // update state return true; // wait for next message } // forward boolean message from cardService by replying to saved message PVM_replySaved(msg); return false; // terminate process }
An Advanced Grid Component Platform WP5: Applications (Use Cases) Objectives GridCOMP WP4: Advanced Component IDE • Define a Grid component model that enables efficient programming of Grid applications. • Define an advanced Grid component IDE. • Provide a reference implementation based on the ObjectWeb ProActive Grid middleware. • Provide industrial use cases for evaluation and demonstration of the component platform. WP2/3: Component Platform Basic Grid Middleware Existing Operating Systems State • Project started June 2006 (duration 30 month). Info: http://gridcomp.ercim.org • Current work: Use case architectural design and early experiments with the component platform.
IBM Use Case Application Real-time Biometric Identification System for Large User Population • Identify people solely on their biometric information (1:N match) • Use fingerprint biometrics • Consider multiple fingers (per person) to work reliably on large user population • Use distributed matching via GCM components to achieve real-time performance • Based on business process (workflow) engine for adaptability Threshold Impostors Genuine Frequency Match Score False Reject False Accept
IBM Use Case Application Demo Application Biometric Identification System (BIS) BIS Services Business Processes System Management Identification Admin Enrolment DB Access DB Identities Workflow Engine GridCOMP Adapter Grid Infrastructure Matching Component Matching Component . . .
Status/Next Steps • Prototype implementation of ePVM available • Initial publication presenting and positioning ePVM to be published at IEEE COMPSAC 2007 • Advance ePVM programming model and prototype implementation (e.g. persistence, WS support,…) • Publish results from GridCOMP use case application and component framework evaluation
Vision Architecture and Programming Model for an execution engine that: • is lightweight and generic (domain independent, small, few requirements to environment) • can support multiple standard languages • is embeddable into all kind of applications (workflow-centric programming) • is easily programmable (well known, easy language) and independent of high-level tool support
Approach ePVM: An embeddable Process Virtual Machine based on JavaScript • Open Standard: ECMAScript & E4X (ECMAScript for XML) • Easy to learn/use (implicitly typed, GC, …) • Very popular, exceptionally huge programmer base • Platform independent (cross-platform acceptance) • Open source implementations available (e.g. Rhino)
Programming Model Communicating Extended Finite State Machines (CEFSM) • Suitable to describe event-driven reactive systems involving many concurrent activities • Well know approach used in the design of telecommunication systems (e.g. network protocols) • Example: Specification and Description Language (SDL) • On abstract level, workflows are very similar to network protocols • ePVM Programming Model resembles CEFSM