Software Engineering and Middleware

Enterprise applications can be viewed as topologies of distributed processes that access business data objects stored in one or more transactional datastores. There are several well-known topology patterns that help to integrate different subsystems or to improve nonfunctional properties like scalability, fault tolerance, or response time. Combinations of multiple patterns lead to custom topologies with the shape of a directed acyclic graph (DAG). These topologies are hard to build on top of existing middleware and even harder to adapt to changing requirements. In this paper we present the principles of an enterprise application architecture that supports a wide range of custom topologies. The architecture decouples application code, process topology, and data distribution scheme and thus allows for an easy adaptation of existing topologies. We introduce Rl-trees for specifying a data distribution scheme and present rules for RJ-tree-based object routing in DAG topologies.

[1]  Microsystems Sun,et al.  Enterprise JavaBeans^ Specification Version 2.1 , 2002 .

[2]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[3]  Gordon S. Blair,et al.  THE DESIGN AND IMPLEMENTATION OF OPEN ORB V 2 , 2001 .

[4]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[5]  Thomas Gschwind Type Based Adaptation: An Adaptation Approach for Dynamic Distributed Systems , 2002, SEM.

[6]  Gustavo Alonso,et al.  Exploiting atomic broadcast in replicated databases , 1997 .

[7]  Bill Segall,et al.  Content Based Routing with Elvin4 , 2000 .

[8]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[9]  Rachid Guerraoui,et al.  Transaction Model vs. Virtual Synchrony Model: Bridging the Gap , 1994, Dagstuhl Seminar on Distributed Systems.

[10]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[11]  Sanjiva Weerawarana,et al.  Bean Markup Language: A Composition Language for JavaBeans Components , 2001, COOTS.

[12]  environmet.,et al.  JXTA : A Network Programming Environment , 2022 .

[13]  Philip A. Bernstein,et al.  Principles of Transaction Processing , 1996 .

[14]  Michael B. Jones,et al.  Herald: achieving a global event notification service , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[15]  Michael Fahrmair,et al.  CARP@ - A Reflection Based Tool for Observing Jini Services , 1999, Reflection and Software Engineering.

[16]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[17]  Guruduth Banavar,et al.  An efficient multicast protocol for content-based publish-subscribe systems , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[18]  Stefan Tai,et al.  Middleware mediated transactions , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[19]  Stanley M. Sutton,et al.  Conditional messaging: extending reliable messaging with application conditions , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[20]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[21]  Abdul Waheed,et al.  VIZIR: an integrated environment for distributed program visualization , 1995, MASCOTS '95. Proceedings of the Third International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[22]  Santosh K. Shrivastava,et al.  Integrating Group Communication with Transactions for Implementing Persistent Replicated Objects , 1999, Advances in Distributed Systems.

[23]  Marco Voss,et al.  Monitoring component interaction in Jini federations , 2001, ITCom.

[24]  Charles E. Perkins,et al.  Ad hoc On-Demand Distance Vector (AODV) Routing , 2001, RFC.

[25]  Steve Vinoski,et al.  Advanced CORBA® Programming with C++ , 1999 .

[26]  Stanley M. Sutton,et al.  Dependency-spheres: a global transaction context for distributed objects and messages , 2001, Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.

[27]  Frank Leymann,et al.  Production Workflow: Concepts and Techniques , 1999 .

[28]  Robbert van Renesse,et al.  Building adaptive systems using ensemble , 1998 .

[29]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[30]  Richard Bentley,et al.  Basic support for cooperative work on the World Wide Web , 1997, Int. J. Hum. Comput. Stud..

[31]  Jack C. Wileden,et al.  Automated support for seamless interoperability in polylingual software systems , 1996, SIGSOFT '96.

[32]  Valérie Issarny,et al.  The Role of Software Architecture in Constraining Adaptation in Component-Based Middleware Platforms , 2000, Middleware.

[33]  Diane T. Rover Performance evaluation: integrating techniques and tools into environments and frameworks , 1994, Proceedings of Supercomputing '94.

[34]  E. Carrapatoso,et al.  A reflective component-based and architecture aware framework to manage architecture composition , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[35]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[36]  Santosh K. Shrivastava,et al.  The CORBA Activity Service Framework for supporting extended transactions , 2003, Softw. Pract. Exp..

[37]  Richard H. Carver,et al.  Replay and testing for concurrent programs , 1991, IEEE Software.

[38]  Kuo-Chung Tai,et al.  Design of a toolset for dynamic analysis of concurrent Java programs , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[39]  Ian Sommerville,et al.  Software engineering, 4th Edition , 1992, International computer science series.

[40]  Frank Leymann,et al.  Building a robust workflow management system with persistent queues and stored procedures , 1998, Proceedings 14th International Conference on Data Engineering.

[41]  Rajeev Rastogi,et al.  ConTracts - A Low-Level Mechanism for Building General-Purpose Workflow Management-Systems. , 1995 .

[42]  Alejandro P. Buchmann,et al.  Integrating Notifications and Transactions: Concepts and X2TS Prototype , 2000, EDO.

[43]  Andreas Grünbacher,et al.  Dynamic Distributed Systems , 2000 .

[44]  Edward A. Fox,et al.  Digital Libraries: People, Knowledge, and Technology , 2002, Lecture Notes in Computer Science.

[45]  David Chenho Kung,et al.  State-based reproducible testing for CORBA applications , 1999, 1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[46]  Jessica Chen On Using Static Analysis in Distributed System Testing , 2000, EDO.

[47]  Charles E. Perkins,et al.  Multicast operation of the ad-hoc on-demand distance vector routing protocol , 1999, MobiCom.

[48]  Michael T. Heath,et al.  Visualizing the performance of parallel programs , 1991, IEEE Software.

[49]  David S. Rosenblum,et al.  Design and evaluation of a wide-area event notification service , 2001, TOCS.

[50]  Paul W. P. J. Grefen,et al.  Global transaction support for workflow management systems: from formal specification to practical implementation , 2001, The VLDB Journal.

[51]  Isabelle Rouvellou,et al.  Strategies for Integrating Messaging and Distributed Object Transactions , 2000, Middleware.

[52]  Peer Hasselmeyer,et al.  Managing Dynamic Service Dependencies , 2001, DSOM.

[53]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[54]  Klara Nahrstedt,et al.  Dynamic reconfiguration for complex multimedia applications , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[55]  Guy Eddon,et al.  Inside Distributed COM , 1998 .

[56]  Deborah Estrin,et al.  A hierarchical proxy architecture for Internet-scale event services , 1999, Proceedings. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WET ICE'99).

[57]  Jennifer Widom,et al.  Database System Implementation , 2000 .

[58]  Zengo Furukawa,et al.  A prototype of a concurrent behavior monitoring tool for testing of concurrent programs , 1996, Proceedings 1996 Asia-Pacific Software Engineering Conference.

[59]  Huaglory Tianfield,et al.  Agent Technologies, Infrastructures, Tools, and Applications for E-Services , 2002, Lecture Notes in Computer Science.

[60]  Richard M. Adler,et al.  The Emergence of Distributed Component Platforms , 1998, Computer.

[61]  Wolfgang Prinz,et al.  NESSIE: An awareness environment for cooperative settings , 1999, ECSCW.

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

[63]  Richard H. Carver,et al.  Use of sequencing constraints for specification-based testing of concurrent programs , 1998 .

[64]  Carl Gutwin,et al.  Domain-Specific Keyphrase Extraction , 1999, IJCAI.

[65]  David F. Redmiles,et al.  Extracting usability information from user interface events , 2000, CSUR.

[66]  S. Venkatesan,et al.  Testing and Debugging Distributed Programs Using Global Predicates , 1995, IEEE Trans. Software Eng..

[67]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[68]  J. Broach,et al.  The dynamic source routing protocol for mobile ad-hoc networks , 1998 .

[69]  Mary Kirtland Designing Component-Based Applications , 1998 .

[70]  Dan Harkey,et al.  Client/Server programming with Java and Corba , 1997 .

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

[72]  W. emmerich,et al.  Component technologies: Java beans, COM, CORBA, RMI, EJB and the CORBA component model , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[73]  Li Gong,et al.  Inside Java 2 Platform Security: Architecture, API Design, and Implementation , 1999 .

[74]  X. Cai,et al.  Control of nondeterminism in testing distributed multithreaded programs , 2000, Proceedings First Asia-Pacific Conference on Quality Software.

[75]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[76]  Francisco J. Ballesteros,et al.  TransLib: An Ada 95 Object Oriented Framework for Building Transactional Applications , 2000 .

[77]  André Schiper,et al.  From group communication to transactions in distributed systems , 1996, CACM.

[78]  Dennis Heimbigner,et al.  Adapting publish/subscribe middleware to achieve Gnutella-like functionality , 2001, SAC.

[79]  Giorgio De Michelis,et al.  Weakly augmented reality: observing and designing the work-place of creative designers , 2000, DARE '00.

[80]  Mukesh Singhal,et al.  Efficient Distributed Detection of Conjunctions of Local Predicates , 1998, IEEE Trans. Software Eng..

[81]  Peter C. Bates Debugging Heterogeneous Distributed Systems Using Event-Based Models of Behavior , 1995, ACM Trans. Comput. Syst..

[82]  Rebecca Koskela,et al.  Performance instrumentation and visualization , 1990 .

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

[84]  Dirk Balfanz,et al.  A security infrastructure for distributed Java applications , 2000, Proceeding 2000 IEEE Symposium on Security and Privacy. S&P 2000.

[85]  Marten van Sinderen,et al.  Monitoring of Distributed Component Interactions , 2000 .

[86]  Alfonso Fuggetta,et al.  The JEDI Event-Based Infrastructure and Its Application to the Development of the OPSS WFMS , 2001, IEEE Trans. Software Eng..

[87]  Fred B. Schneider,et al.  Replication management using the state-machine approach , 1993 .

[88]  Kenneth P. Birman Replication and fault-tolerance in the ISIS system , 1985, SOSP 1985.

[89]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[90]  François Pacull,et al.  Yaka: document notification and delivery across heterogeneous document repositories , 2001, Proceedings Seventh International Workshop on Groupware. CRIWG 2001.

[91]  Rachid Guerraoui,et al.  Nesting Actions through Asynchronous Message Passing: the ACS Protocol , 1992, ECOOP.

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

[93]  Gustavo Alonso,et al.  Scalable Replication in Database Clusters , 2000, DISC.

[94]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[95]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[96]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[97]  Silke Goronzy,et al.  Robust Adaptation to Non-Native Accents in Automatic Speech Recognition , 2002, Lecture Notes in Computer Science.

[98]  Edwin H. Satterthwaite Debugging tools for high level languages , 1972, Softw. Pract. Exp..

[99]  Manfred Hauswirth,et al.  A secure execution framework for Java , 2000, CCS.

[100]  A. Waheed,et al.  A Structured Approach to Instrumentation System Development and Evaluation , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[101]  A. Taleb-Bendiab,et al.  A service-based architecture for in-vehicle telematics systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[102]  Bill Councill,et al.  Definition of a software component and its elements , 2001 .