The Impact of Research on Middleware Technology

Various commercial trends have led to an increasing demand for distributed systems. Distributed systems can integrate legacy components, thus preserving investment, they can decrease the time to market, they can be scalable and tolerant against failures. The caveat, however, is that the construction of a truly distributed systems is considerably more difficult than building a centralized or client/server system. This is because there are multiple points of failure in a distributed system, system components need to communicate with each other through a network, which complicates communication and opens the door for security attacks. Middleware has been devised in order to conceal these difficulties from application engineers as much as possible; Middleware is commonly defined as a software layer between applications and operating systems that provides application programmers with higher level of abstractions, such as remote procedure invocation, reliable message exchange or transactions. These abstractions considerably simplify distributed system construction and as a result middleware products are rapidly being adopted in industry and middleware is generally perceived as a success technology.

[1]  Hannu Koivisto Aspect-oriented programming in common lisp , 2002 .

[2]  Andrew P. Black,et al.  The Eden System: A Technical Review , 1985, IEEE Transactions on Software Engineering.

[3]  Steven J. DeRose,et al.  XML Path Language (XPath) Version 1.0 , 1999 .

[4]  John Shirley,et al.  Microsoft RPC Programming Guide , 1995 .

[5]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[6]  Девід Бут,et al.  Web Services Description Language (WSDL) 2.0 Part 0: Primer , 2007 .

[7]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[8]  R.M. Baizer Living in the Next-Generation Operating System , 1987, IEEE Software.

[9]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[10]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[11]  Wolfgang Emmerich,et al.  Tigra- an architectural style for enterprise application integration , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[12]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[13]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[14]  Sanjay Bose,et al.  Impact of service-oriented architecture on enterprise systems, organizational structures, and individuals , 2005, IBM Syst. J..

[15]  James H. Morris,et al.  Early experience with Mesa , 1977 .

[16]  Regina Dunlea,et al.  Simple Object Access Protocol (SOAP) , 2005 .

[17]  D. Box,et al.  Simple object access protocol (SOAP) 1.1 , 2000 .

[18]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[19]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[20]  Norman C. Hutchinson,et al.  EMERALD: An object-based language for distributed programming , 1987 .

[21]  E. B. Moss,et al.  Nested Transactions: An Approach to Reliable Distributed Computing , 1985 .

[22]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[23]  Francisco Reverbel,et al.  The JBoss Extensible Server , 2003, Middleware.

[24]  Stephen Deering,et al.  Host groups: a multicast extension for datagram internetworks , 1985, SIGCOMM.

[25]  Santosh K. Shrivastava,et al.  The Treatment of Persistent Objects in Arjuna , 1989, Comput. J..

[26]  Sun Microsystems,et al.  RPC: Remote Procedure Call Protocol specification , 1988, RFC.

[27]  Greg Meredith,et al.  Contracts and types , 2003, CACM.

[28]  Arvind Malhotra,et al.  Xml schema part 2: datatypes , 1999 .

[29]  Paul J. Leach,et al.  UIDs as internal names in a distributed file system , 1982, PODC '82.

[30]  Santosh K. Shrivastava,et al.  An examination of the transition of the Arjuna distributed transaction processing software from research to products , 2002, WIESS'02.

[31]  Sheng Liang,et al.  Dynamic class loading in the Java virtual machine , 1998, OOPSLA '98.

[32]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[33]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[34]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[35]  Tony Andrews Business Process Execution Language for Web Services Version 1.1 , 2003 .

[36]  Guy T. Almes,et al.  The Impact of Language and System on Remote Procedure Call Design , 1986, ICDCS.

[37]  Roger Riggs,et al.  A Distributed Object Model for the Java System , 1996, Comput. Syst..

[38]  Henri E. Bal The shared data-object model as a paradigm for programming distributed systems , 1989 .

[39]  Frank Leymann,et al.  Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More , 2005 .

[40]  Edwin H. Satterthwaite,et al.  The Impact of Mesa on System Design , 1979, ICSE.

[41]  Akkihebbal L. Ananda,et al.  A survey of remote procedure calls , 1990, OPSR.

[42]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[43]  C. F. Goldfarb,et al.  A generalized approach to document markup , 1981, SIGPLAN SIGOA Symposium on Text Manipulation.

[44]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[45]  Richard Mark Soley,et al.  Object Management Architecture Guide , 1993 .

[46]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[47]  R. Becker,et al.  A Brief History of S , 2004 .

[48]  Marc Shapiro,et al.  SOS: An Object-Oriented Operating System - Assessment and Perspectives , 1989, Comput. Syst..

[49]  Brian Keith Reid,et al.  Scribe: a document specification language and its compiler , 1981 .

[50]  S. Krishnan,et al.  2 XLANG : Web Services for Business Process Design , 2002 .

[51]  Matthew L. Hess,et al.  Multiprotocol Networking - A Blueprint , 1995, IBM Syst. J..

[52]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[53]  Steven P. Miller,et al.  UNIX and Remote Procedure Calls: A Peaceful Coexistence? , 1986, ICDCS.

[54]  Paul J. Leach,et al.  The network computing architecture and system: an environment for developing distributed applications , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.

[55]  Jonathan Harris,et al.  Compiling High Performance Fortran for Distributed-memory Systems , 1995, Digit. Tech. J..

[56]  C. Mohan,et al.  ARIES/NT: A Recovery Method Based on Write-Ahead Logging for Nested Transactions , 1989, VLDB.

[57]  Philip A. Bernstein,et al.  Middleware: a model for distributed system services , 1996, CACM.

[58]  Daniel Le Métayer,et al.  Security and dynamic class loading in Java: a formalisation , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[59]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[60]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[61]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[62]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[63]  Alan Snyder,et al.  Exception Handling in CLU , 1979, IEEE Transactions on Software Engineering.

[64]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[65]  Kenneth P. Birman,et al.  Exploiting replication in distributed systems , 1990 .

[66]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[67]  C. Peltz,et al.  Web Services Orchestration and Choreography , 2003, Computer.

[68]  Frank Leymann,et al.  Web services and business process management , 2002, IBM Syst. J..

[69]  Cliff B. Jones,et al.  Software development - a rigorous approach , 1980, Prentice Hall international series in computer science.

[70]  Frank Leymann,et al.  Business process management with FlowMark , 1994, Proceedings of COMPCON '94.

[71]  Edward E. Cobb The impact of object technology on commercial transaction processing , 1997, The VLDB Journal.

[72]  John A. Stankovic,et al.  Distributed Processing , 1978, Computer.

[73]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[74]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[75]  Glenn Lupton,et al.  DEC FUSE: Building a Graphical Software Development Environment from UNIX Tools , 1995, Digit. Tech. J..

[76]  Tracy Seneca,et al.  Out of the box: strategies for achieving profits today and growth tomorrow through web services , 2003 .

[77]  Naser S. Barghouti,et al.  Supporting cooperation in the Marvel process-centered SDE , 1992, SDE 5.

[78]  Jim Waldo Remote procedure calls and Java Remote Method Invocation , 1998, IEEE Concurr..

[79]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[80]  Philip A. Bernstein Transaction processing monitors , 1990, CACM.

[81]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[82]  Graeme N. Dixon,et al.  Object Management for Persistence and Recoverability , 1988 .

[83]  Wolfgang Emmerich,et al.  Engineering Distributed Objects , 2000, Lecture Notes in Computer Science.

[84]  John Crupi,et al.  Core J2EE Patterns: Best Practices and Design Strategies , 2001 .

[85]  Santosh K. Shrivastava,et al.  An overview of the Arjuna distributed programming system , 1991, IEEE Software.

[86]  John Charles Middleware Moves to the Forefront , 1999, Computer.

[87]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[88]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[89]  Gustavo Alonso,et al.  Advanced transaction models in workflow contexts , 1996, Proceedings of the Twelfth International Conference on Data Engineering.

[90]  Santosh K. Shrivastava,et al.  Rajdoot: A Remote Procedure Call Mechanism Supporting Orphan Detection and Killing , 1988, IEEE Trans. Software Eng..

[91]  Frank Leymann,et al.  Managing Business Processes an an Information Resource , 1994, IBM Syst. J..

[92]  Jean Bacon,et al.  Distributed computing with RPC: the Cambridge approach , 1987 .

[93]  S. E. Keene,et al.  A programmer's guide to object-oriented programming in Common LISP , 1988 .

[94]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[95]  Margaret M. Burnett,et al.  The impact of software engineering research on modern programming languages , 2005, ACM Trans. Softw. Eng. Methodol..

[96]  Richard Mark Soley,et al.  Object management architecture guide (3rd ed.) , 1995 .

[97]  William E. Riddle,et al.  Software technology maturation , 1985, ICSE '85.

[98]  Chandrasekaran Mohan,et al.  Recent Work on Distributed Commit Protocolls, and Recoverable Messaging and Queuing , 1994, IEEE Data Eng. Bull..