190 likes | 202 Views
Learn about decomposing complex workflows, server assignment, dynamic selection, processing data, and more in office settings. Understand Petri-Nets, basic concepts, object modeling, and architectural aspects.
E N D
Application area:Distributed Office Workflows • Basic definitions: • Decomposition of a complex workflow to sequential and parallel partial steps • Representation and Management as an integrated workflow • Assignment of partial steps (basic services) to servers of a distributed system • Dynamic selection of the servers • Processing of assigned data/documents as mobile objects • Processing of the servers as fixed objects of coarse granularity • Hierarchical decomposition of workflows
Distributed Example Application • Processing (for instance, insurance industry/ actuarial science): • Complex workflows and basic service requirements • Basic services and distributed servers (1) Offer verification Special audit (2) Insurance offer Prepare contracts (parallel) Print documents (3) Calculate surcharges Client register Audit servers Client management Dept-s for special audit Printservers Form editors Contract forms Mobile radio ATM-Network Fast Ethernet
Workflow description: Petri-Nets (condi- tionally) Special audit Offer verification Print documents (parallel) • Basic concepts: - Basic service requirements: Transitions • - Intermediate buffers: States • - Conditions: input predicates for Transitions • Properties: - limited(Mark Quantity, for instance, as here <= 2) • - non-live (terminated) • - secure (Mark Quantity per each state is 0 or 1) • - non-conservative (Mark Quantity varies) Prepare contract Insurance offer Calculate surcharges Client register
DirectoryServer Modeling via Objects Controlstations Workflow object Document 1 Document 2 • Basic concepts: • Workflows are autonomous objects • Transmission via migration • Server co-operation via Remote Calls • Dynamic server selection • Workflow control via calls of Workflow Objects Partial document Partial document Dept-s for special audit Audit servers Form editors Client management Printservers Contract forms
Workflow object: structure Object Identifier Workflow graph Termination section Control data(status) Priority Data section (extensible): Object references attach xy Remote references Documents
Specific aspects • Object modeling: • Workflows are Objects themselves and are mobile • Workflow supervision using location-independent Calls to the Objects • Workflow transfer between Servers per object migration • Same processing for data objects („attach“ relation) • Splitting respectively replication of Workflow Objects for parallel paths • Architecture: • Absolutely decentralized • Autonomous components • Re-usable Workflow Descriptions
Language support • OFFICE_PROCEDURE Application_for_Insurance(Client, Officer) • DATA_SECTION { OfferForm, ClientData, InsuranceContract; } • ROUTING { • SERVICE InsuranceOffer START LINKS_TO OfferVerification, ClientRegister; • SERVICE OfferVerification LINKS_TO SpecialAudit IF risk > 0.8; // high risk CalculateSurcharges IF risk > 0.5; // conditional risk • Prepare Contract OTHERWISE; // normal case • SERVICE SpecialAudit LINKS_TO PrepareContract; • SERVICE CalculateSurcharges, ClientRegister LINKS_TO PrepareContract; • SERVICE PrepareContract LINKS_TO PrintDocuments; • SERVICE PrintDocuments OPTIONAL END; // optional • } TERMINATION { ... }
Basic service requirements: Details • Special properties: • Maximum execution time • Protection of associated data • Control of binding process to servers • Former assignment maintenance • Attribute-based assignment • Optimization measures • Example: • SERVICE PrintDocuments • ATTRIBUTES: Format=PostScript; // required attribute // of the service • MEASURES: 0.8 * PrintExpenses + 0.2 * IdleTime; • //optimized selection • TIMEOUT: 30 minutes REMIND; // time supervision • CHECKPOINT; // protection of data
Termination Section: Details • Inform the instances about Workflow termination • Protect of participating data objects • Start of new Workflows • TERMINATION { • NOTIFY Client, Officer; // NotificationCOPY ALL TO Department3_Fileserver; // Copying of all data objectsSTART ContractSending (InsuranceContract, Client); // Start of new Workflow • END_TERMINATION
Environment description • Structural description • Definition of server types with offered services (interface) • Attribution of services for selection control • Status requests and resource requirements • Definition of associated servers under optional re-definition of attributes
Environment description: example • SERVER_TYPE PrintServerSERVICES PrintDocuments (d: Set OF Document, OPTIONAL ControlData, OUT Status); • // service interface ATTRIBUTES Format = PostScript, PrintExpenses = PageExpenses * d [ ].Length; // service specific attributesSTATUS_INQUIRY IdleTime, Availability; // offered status noticesREQUIRED_RESSOURCES Lpr_Drucker; • // necessary hardware resources • END_SERVER_TYPE • SERVER Printer_1: PrintServer;ALLOCATION: Host_A; // specified placementPrintExpenses = SpecialPagesExpenses * d[ ].Length; • // overwriting of an attribute • END_SERVER
Control stations • Status requests • Data access • Workflow control Computer n Computer 1 Basic services and servers Runtimemechanisms Basic services and servers Runtimemechanisms Runtimemechanisms Distributed oointeraction mechanisms Distributed oointeraction mechanisms Distributed oointeraction mechanisms Runtime support: architecture Description of basic service environment Description of complex Workflows Compiler Compiler Developmentphase RuntimePhase Directory Service ...
Runtime support Initiation - Generating of a Workflow object - Registration at Directory Service - Data initialization - Specification of binding attributes Distributed - Validation of Workflow graphs Execution - Selection of servers - Migration of the Workflow object - Service call and execution - Processing of output data Termination - Notification - Storage of data objects - Start of new Workflows
Server Selection • Service **nextServices; • p->NextServices (&nextServices); // calculate the next executed service • for (i=0; i<maxServices; i++) { • if (nextServices[i] != NULL { // all requested services processed • Server **candidateServers; // server candidatesServer *selectedServers; // selected serversServer *status, *optimalStatus = NULL; // server statusDirectory.retrieve (nextServices[i], &candidateServers); // detect the candidatesfor (j=0; j<maxCandidates; j++) { // interview loop for all candidates if (candidateServers[j] != NULL) { status = candidateServer[j].statusQuery(); // delete status request to the server if (status > optimalStatus) { // audit of delivered status optimalStatus = status; selectedServer = candidateServers[j]; // better candidate found } } else break; • } else break; • } selectedServer->performService(move p); // migration of Workflow object
Path synchronization • Approach: • Definition of a primary path • Replication/Partitioning of the Workflow object • Sending of replicas to subordinate paths • Synchronization notices to Workflow object for primary path (2) Binding process and forwarding Workflow object(Original) primary path Offer verification Insurance offer • Information • about end of • execution Prepare contract Workflow object(Duplicate) Client register
Workflow Supervision • Object-independent Operations: • Workflow generating • Search of a Workflow • Object-specific Control Operations: • Location of a Workflow • Execution status • Workflow history • Object-specific Operations for Data Access: • Data description • Copy of Data Objects • Common Supervision Commands: • Permanent Monitoring • Stopping of Monitoring • Realization via direct access to objects
Workflow Supervision • Object-independent Operations: • StartControl() // Start a control station • EndControl() // Stop a control station • CreateProcedure(TypeName,Parameters) // Generate a new Workflow • GetProcedure(LogicalName,Attributes) // Search of a Workflow • Object-specific Operations of initialization phase: • AddBinding(Service,ServiceBinding) // Complete binding information • DeleteBinding(Service,ServiceBinding) // Delete binding information • Start(Priority) // Start a Workflow • Object-specific Control Operations of Workflow phase: • Location() // Detect location of a Workflow • ExecutingState() // Detect execution status • Binding(Service) // Detect binding information • History() // Detect Workflow history • Object-specific Operations for Data access in the Workflow phase: • DataLayout() // Detect data structure • DataDescription(SlotSelection) // Detect data description • DataCopy(SlotSelection) // Generate copy of data object • Common Monitoring Commands of Workflow phase: • ContinuousMonitoring() // Permanent monitoring • EndMonitoring() // Stop of monitoring
Comparison with Client/Server-Model • Objects of coarse granularity: servers (processing servers, Directory, control stations) • Mixed Clients and Servers • Data transfer by value return only • ==> no explicit Workflow representation • no data passing per reference • no Workflow localization • ==> high implementation expenditure