260 likes | 397 Views
Coordination Middleware for document-centric applications. April 2002. Motivations. The Internet is "Document Centric" Document-centric computing models are needed A document is a communicable data structure Focus on two key issues:
E N D
Coordination Middleware for document-centric applications April 2002
Motivations • The Internet is "Document Centric" • Document-centric computing models are needed • A document is a communicable data structure • Focus on two key issues: • coordination models and middleware for the engineering of complex content management applications • XML as "The Standard" for passive and active documents
Documents Passive document = content + representation "Formatter programs" like TeX assign rendering behavior to mostly procedural (sometimes declarative) markup Passive documents have at least two facets: • The abstract view on content (eg. WYSIWYG) • The “concrete” machine-level representation
Documents • Documents were dependent from devices (a solution: Postscript) • Documents were dependent from applications (a solution: Rich Text Format) • Documents are dependent from the underlying os (think about the document fonts) • Documents are dependent from the browser (no WYSIWTS-what you send is what they see)
Taxonomy and History time 1990 1995 2000
Active documents • Active document = content + structure + behavior • The document itself "knows" how to be handled • Possible perspectives: • Reactive documents: external applications are forced touse the internal behavior to handle documents • Proactive documents: the document/agent can handleitself in autonomy(Agents = data + behavior + autonomy) • Documents virtuels personnalisables (DVP2002) http://iasc.enst-bretagne.fr/DVP2002
Middleware for XML Document Agents • Middleware that offers services for agents that • are specified using XML and • "run'' in an XML environment • Agents live in a completelyXML oriented world • Middleware is implementedoutside the XML world • Examples: Displets, JXML, Adlets Middleware XML
Displets [Dept. Computer Science, Univ. of Bologna] • General-purpose framework for active documents and for multi-document-agents applications • XML document agents ("Displets") can: • include re-active behaviors related to rendering, printing, be searched.. • Include pro-active behaviors to produce animation, generate new documents, search, etc… • coordinate with each other
The XML Compiler of Displets • - XML document -> DOM tree • - DOM tree -> DOM tree with XSL stylesheet • - The DOM tree ->tree of runnable Java objects • The XML document has become a document agent!
Coordinable Displets • Displets can have associated • their own “private” behavior • when on a group the “coordination” behavior enacting coordination laws • Static approach • compiler-based • the document agent and coordination laws generated atcompile time • no dynamic enteringor leaving of groups
XML Middleware for document Agents • Coordination middleware thatexploits XML at the middlewarelevel in itself • Coordination activities of application agents occur and are ruled via accesses to shared XML information spaces, in which the laws ruling coordination reside and are enacted • Information space in itselfbecomes sort of an active document agent • Examples: XMLSpaces, MARS-X, XMIDDLE, XML Protocol/SOAP Middleware XML
XMLSpaces [TU Berlin]: XML documents as field-data • <?xml version="1.0"?><!DOCTYPE address SYSTEM "address.dtd"><location> <city name="Trento"/> <host>FACOLTÀ DI ECONOMIA</host> <street name="Via Vigilio Inama" no="5"/></location> • <2001, __>
How to match? • A formal is an object describing an XML document • Can be: • Another document:in(2001, ?__) • Something elsein(2001, DOCTYPE="address.dtd") • There is a variety of relations that identify XML documents <?xml version="1.0"?><!DOCTYPE address SYSTEM "address.dtd"><location> <city name="Trento"/> <host>FACOLTÀ DI ECONOMIA</host> <street name="Via Vigilio Inama" no="5"/></location>
Multiple matching relations in XMLSpaces Relation Meaning Tool used Exact equality Exact textual equality DOM interfaces Restricted Textual equality ignoring equality comments, PIs, etc. DOM interfaces DTD Valid towards a DTD XML4J DOCTYPE Uses specific Doctype name DOM XPath Fulfills an XPath expression Xalan-Java XQL Fulfills an XQL expression GMD-IPSI XQL AND Fulfills two matching relations – NOT Does not fulfill matching relation – OR Fulfills one or two matching relations – XOR Fulfills one matching relation –
Node / Local Domain of Nodes Locally Executing Agents i Linda-like (JavaSpace) interface XML Dataspace Reactions: meta-level tuple space MARS-X [University of Modena and Reggio Emilia] • A coordination infrastructure for mobile agents • virtual mobility • actual agent mobility • physical (i.e., device) mobility • Local XML dataspaces for mobile agent access • shared by a node (or domain of nodes) • Linda-like (JavaSpaces)interface to XML data • Programmable tuplespace model: coordinationlaws can be programmed in Java
MARS-X: Tuple-based Access to the XML Documents • XML entries as JavaSpaces tuples • on match, the effect of the access on a documents can be ruled via properly programmed reactions class _infoN extends AbstractEntry {static final URL DTDfile = new URL(“http://mysite/myDTD.dtd”); public Integer f1; public String f2; public String f3; public Integer f4;} _infoN t = new _infoN(); t.f1= null; t.f2 = “foo”; t.f3 = “*bl*”; t.f4 = 17; myEntry result = space.read (t, null, NO_WAIT); ... ... <infoN> <f1>3</f1> <f2>foo</f2> <f3>blah</f3> <f4>17</f4> </infoN> ... <infoN> ... </infoN> ...
XMIDDLE [University College, London] • A Middleware (i.e., a coordination infrastructure) for mobile and ad-hoc networks • The nodes/processes in the network share a global XML data structure • The global data structure is an active document • it includes protocols for handling data reconciliation and data merging • also application specific protocols can be defined
XMIDDLE: The Architecture • Coordinables are active processes • mobile AND/OR executing on a mobile device • Coordination media as XML tree • possibly replicated (even partially) and shared among processes in the reach • Coordination laws rules modifications to the XML tree
Process B Process B Process A Process A XMIDDLE: Coordination over the XML Tree • Processes operate and coordinatewith each otherby manipulating a shared tree • A disconnected process can continue operating on a replica of the tree • When reconnecting, the globaldocument tree must be re-constructed in a consistent way Disconnection of Process A Reconnection of Process A with re-conciliation
Self-contained XML Middleware • Agents are represented as someXML documents as well as the data they operate onand the laws ruling theircoordination activities • Examples: WorkSpaces, XSL,XML Script, ADF Middleware XML
Workspaces [TU Berlin]: XML and XSL only • Documents andworksteps asXML documents • Workspacesengine is anextended XSLengine Store Rating exec("Excel") <RATING <RATING Workspaces PAPER="3" PAPER="3" engine SCORE="4"/> SCORE="4"/>
Higher and guarded coordination in workflowgraph • AND-SPLIT, OR-SPLIT, AND-JOIN, OR-JOIN as generative (and destructive) coordination operation • Transitions may also have conditions
Workspaces • An XML/XSL based workflow system • Workflow graph is split into single steps that are represented as XSL documents
Discussion • Displets • suitable for the definition and implementation of document agent apps • Too static • MARS-X • suited for complex coordination patterns to be dynamically defined, in manipulation of shared XML documents by mobile agents • restricts the application to use Java agents • XMIDDLE • suitable for document agents, and seems very suitable for mobility • possibility of defining coordination laws very limited • Workspaces • provides more uniformity • lacks an explicit support for mobility, • general-purpose applicability unclear
Goal: Design ideal XML middleware • directly handling, at the application level, the activities in XML document agents (Displets) • making coordination activities occur in terms of manipulation of shared XML documents, (MARS-X, XMIDDLE, XMLSpaces) • flexible to support user-defined XML grammars (XMLSpaces) • effectively handling mobility and associated issues (XMIDDLE) • enabling the ruling the coordination activities between application-level document agents in a dynamic way (MARS-X) • expressing not only document agents behavior but also the laws ruling their coordination activities in term of XML documents and XML rules (WorkSpaces)
Conclusions • Further consider • Mobility • Coordination models • Embedded systems • Organizational structures • Conclusion: • Taking the "coordination viewpoint" on XML based middleware is again fruitful