Processes Are Data: A Programming Model for Distributed Applications

Many modern distributed applications employ protocols based on XML messages. Typical architectures for these applications follow an approach where messages are organized in queues, state is stored in DBMS, and application code is written in imperative languages. As a result, much developer productivity and system performance is wasted on handling conversions between the various data models (XML messages, objects, relations), and reliably managing persistent state for application instances. This overhead turns application servers into data management servers instead of process servers. We show how this model can be greatly improved by changing two aspects. Firstly, by using a declarative rule language to describe the processing logic. Secondly, by providing a single, unified data model based on XML messages that covers all kinds of data encountered, including process state. We discuss the resulting design choices for compile-time and run-time systems, and show and experimentally evaluate the performance improvements made possible.

[1]  Sven Helmer,et al.  Anatomy of a native XML base management system , 2002, The VLDB Journal.

[2]  Jim Gray,et al.  A critique of ANSI SQL isolation levels , 1995, SIGMOD '95.

[3]  Peter Scheuermann,et al.  Active Database Systems , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[4]  Michael Stonebraker,et al.  Load Shedding in a Data Stream Manager , 2003, VLDB.

[5]  Michael J. Carey,et al.  Programming with XQuery , 2006, XIME-P.

[6]  Scott Boag,et al.  XQuery 1.0 : An XML Query Language , 2007 .

[7]  Guido Moerkotte,et al.  Demaq: A Foundation for Declarative XML Message Processing , 2006, CIDR.

[8]  Michael Stonebraker,et al.  Linear Road: A Stream Data Management Benchmark , 2004, VLDB.

[9]  Stefano Paraboschi,et al.  Pushing reactive services to XML repositories using active rules , 2001, WWW '01.

[10]  Jim Gray,et al.  THESIS: Queues are Databases , 1995 .

[11]  Michael Stonebraker,et al.  Too much middleware , 2002, SGMD.

[12]  Jennifer Widom,et al.  STREAM: The Stanford Stream Data Manager , 2003, IEEE Data Eng. Bull..

[13]  Motomichi Toyama Parameterized view definition and recursive relations , 1986, 1986 IEEE Second International Conference on Data Engineering.

[14]  Jesse James Garrett Ajax: A New Approach to Web Applications , 2007 .

[15]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2004, Distributed and Parallel Databases.

[16]  Gustavo Alonso,et al.  Web Services: Concepts, Architectures and Applications , 2009 .

[17]  Johannes Gehrke,et al.  Cayuga: A General Purpose Event Monitoring System , 2007, CIDR.

[18]  Guido Moerkotte,et al.  Template Folding for XPath , 2006, XIME-P.

[19]  Qiang Chen,et al.  Aurora : a new model and architecture for data stream management ) , 2006 .

[20]  Ion Stoica,et al.  Declarative routing: extensible routing with declarative queries , 2005, SIGCOMM '05.

[21]  Daniela Florescu,et al.  XL: a platform for web services , 2002, SIGMOD '02.

[22]  Jennifer Widom,et al.  The CQL continuous query language: semantic foundations and query execution , 2006, The VLDB Journal.