Coordination Middleware for document-centric applications
April 2002
Paolo CiancariniRobert TolksdorfFranco ZambonelliUniversity of
BolognaTechnische Universitt BerlinUniversity of Modena and Reggio
[email protected]@[email protected]
[*]
MotivationsThe Internet is "Document Centric"Document-centric
computing models are neededA document is a communicable data
structure
Focus on two key issues:coordination models and middleware for
the engineering of complex content management applicationsXML as
"The Standard" for passive and active documents
[*]
DocumentsPassive 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
[*]
DocumentsDocuments 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 time200019951990
[*]
Active documentsActive document = content + structure +
behaviorThe document itself "knows" how to be handled
Possible perspectives:Reactive documents: external applications
are forced to use the internal behavior to handle
documentsProactive documents: the document/agent can handle itself
in autonomy (Agents = data + behavior + autonomy)Documents virtuels
personnalisables (DVP2002) http://iasc.enst-bretagne.fr/DVP2002
[*]
Middleware for XML Document AgentsMiddleware that offers
services for agents that are specified using XML and "run'' in an
XML environmentAgents live in a completely XML oriented
worldMiddleware is implemented outside the XML world
Examples: Displets, JXML, Adlets
[*]
Displets [Dept. Computer Science, Univ. of
Bologna]General-purpose framework for active documents and for
multi-document-agents applicationsXML 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, etccoordinate 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 DispletsDisplets can have associatedtheir own
private behaviorwhen on a group the coordination behavior enacting
coordination lawsStatic approachcompiler-basedthe document agent
and coordination laws generated at compile timeno dynamic entering
or leaving of groups
XML
Agent
XML
Agent
Virtual Coordination
Medium
(communication channels)
Coordination Laws in XSL
Coordination Laws in XSL
Coordination Laws in XSL
App. Specific
XSL behavior
App. Specific
XSL behavior
XML
Agent
XML
Agent
Coordination Laws in XSL
[*]
XML Middleware for document AgentsCoordination middleware that
exploits XML at the middleware level in itselfCoordination
activities of application agents occur and are ruled via accesses
to shared XML information spaces, in which the laws ruling
coordination reside and are enactedInformation space in itself
becomes sort of an active document agent
Examples: XMLSpaces, MARS-X, XMIDDLE, XML Protocol/SOAP
[*]
XMLSpaces [TU Berlin]: XML documents as field-data FACOLT DI
ECONOMIA
[*]
How to match?A formal is an object describing an XML documentCan
be:Another document: in(2001, ?__)
Something else in(2001, DOCTYPE="address.dtd")
There is a variety of relations that identify XML documents
FACOLT DI ECONOMIA
[*]
Multiple matching relations in XMLSpacesRelationMeaning Tool
usedExact equality Exact textual equality DOM interfacesRestricted
Textual equality ignoringequality comments, PIs, etc. DOM
interfaces DTD Valid towards a DTD XML4JDOCTYPE Uses specific
Doctype name DOM XPath Fulfills an XPath expression Xalan-JavaXQL
Fulfills an XQL expression GMD-IPSI XQL AND Fulfills two matching
relations NOT Does not fulfill matching relation OR Fulfills one or
two matching relationsXOR Fulfills one matching relation
[*]
MARS-X [University of Modena and Reggio Emilia]A coordination
infrastructure for mobile agentsvirtual mobility actual agent
mobilityphysical (i.e., device) mobilityLocal XML dataspaces for
mobile agent accessshared by a node (or domain of nodes)Linda-like
(JavaSpaces) interface to XML dataProgrammable tuple space model:
coordination laws can be programmed in Java
[*]
MARS-X: Tuple-based Access to the XML DocumentsXML entries as
JavaSpaces tuples
on match, the effect of the access on a documents can be ruled
via properly programmed reactions...
3 foo blah17
...
...
...
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);...
[*]
XMIDDLE [University College, London]A Middleware (i.e., a
coordination infrastructure) for mobile and ad-hoc networksThe
nodes/processes in the network share a global XML data structureThe
global data structure is an active documentit includes protocols
for handling data reconciliation and data mergingalso application
specific protocols can be defined
[*]
XMIDDLE: The ArchitectureCoordinables are active processesmobile
AND/OR executing on a mobile deviceCoordination media as XML
treepossibly replicated (even partially) and shared among processes
in the reachCoordination laws rules modifications to the XML
tree
[*]
XMIDDLE: Coordination over the XML TreeProcesses operate and
coordinate with each other by manipulating a shared tree A
disconnected process can continue operating on a replica of the
treeWhen reconnecting, the global document tree must be
re-constructed in a consistent wayDisconnection of Process
AReconnection ofProcess A with re-conciliation
[*]
Self-contained XML MiddlewareAgents are represented as some XML
documents as well as the data they operate on and the laws ruling
their coordination activities
Examples: WorkSpaces, XSL, XML Script, ADF
[*]
Workspaces [TU Berlin]: XML and XSL onlyDocuments and worksteps
as XML documents
Workspaces engine is an extended XSL engine Workspacesengine
Store Ratingexec("Excel")
[*]
Higher and guarded coordination in workflow graph
AND-SPLIT, OR-SPLIT, AND-JOIN, OR-JOIN as generative (and
destructive) coordination operationTransitions may also have
conditions
[*]
WorkspacesAn XML/XSL based workflow systemWorkflow graph is
split into single steps that are represented as XSL documents
[*]
DiscussionDispletssuitable for the definition and implementation
of document agent appsToo staticMARS-Xsuited for complex
coordination patterns to be dynamically defined, in manipulation of
shared XML documents by mobile agentsrestricts the application to
use Java agentsXMIDDLEsuitable for document agents, and seems very
suitable for mobilitypossibility of defining coordination laws very
limitedWorkspacesprovides more uniformitylacks an explicit support
for mobility, general-purpose applicability unclear
[*]
Goal: Design ideal XML middlewaredirectly 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)
[*]
ConclusionsFurther considerMobilityCoordination modelsEmbedded
systemsOrganizational structures
Conclusion:Taking the "coordination viewpoint" on XML based
middleware is again fruitful