skip to main content
10.1145/1028976.1028991acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Decentralizing execution of composite web services

Published:01 October 2004Publication History

ABSTRACT

Distributed enterprise applications today are increasingly being built from services available over the web. A unit of functionality in this framework is a web service, a software application that exposes a set of "typed'' connections that can be accessed over the web using standard protocols. These units can then be composed into a <i>composite</i> web service. BPEL (Business Process Execution Language) is a high-level distributed programming language for creating composite web services.

Although a BPEL program invokes services distributed over several servers, the <i>orchestration</i> of these services is typically under centralized control. Because performance and throughput are major concerns in enterprise applications, it is important to remove the inefficiencies introduced by the centralized control. In a distributed, or decentralized orchestration, the BPEL program is partitioned into independent sub-programs that interact with each other without any centralized control. Decentralization can increase parallelism and reduce the amount of network traffic required for an application.

This paper presents a technique to partition a composite web service written as a single BPEL program into an equivalent set of decentralized processes. It gives a new code partitioning algorithm to partition a BPEL program represented as a program dependence graph, with the goal of minimizing communication costs and maximizing the <i>throughput</i> of multiple concurrent instances of the input program. In contrast, much of the past work on dependence-based partitioning and scheduling seeks to minimize the <i>completion time</i> of a single instance of a program running in isolation. The paper also gives a cost model to estimate the throughput of a given code partition.

References

  1. WebSphere Application Server. http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=products/appserv.Google ScholarGoogle Scholar
  2. WBaxter and IHR. Bauer. The program dependence graph and vectorization. In Proceedings of the ACM Symposium on Principles of Programming Languages, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. H. Bokhari. Partitioning Problems in Parallel, Pipelined, and Distributed Computing. IEEE Transactions on Computers, C-37:48--57, January 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Business Process Execution Language for Web Services Version 1.1. http://www.ibm.com/developerworks/library/ws-bpel/.Google ScholarGoogle Scholar
  5. BPWS4J: Java Run Time for BPEL4WS. http://www.alphaworks.ibm.com/tech/bpws4j.Google ScholarGoogle Scholar
  6. J. Ferrante, K. Ottenstein, and J. Warren. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9:319--349, July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Gerasoulis, S. Venugopal, and T. Yang. Clustering Task Graphs for Message Passing Architectures. Proceedings of the ACM 1990 International Conference on Supercomputing, pages 447--456, June 1990. Amsterdam, the Netherlands. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. L. Graham. Bounds on Multiprocessing Timing Anomalies. SIAM Journal on Applied Mathematics, 17(2):416--429, March 1969.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Graham, S. Simeonov, T. Boubez, G. Daniels, D. Davis, Y. Nakamura, and R. Neyama. Building Web Services with Java: Making sense of XML, SOAP, WSDL and UDDI. Sams; ISBN:0672321815, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Horwitz, J. Prins, and T. Reps. Integrating Non-Interfering Versions of Programs. Conf. Rec. Fifteenth ACM Symposium on Principles of Programming Languages, pages 133--145, January 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Khalaf, N. Mukhi, and S. Weerawarana. Service-Oriented Composition in BPEL4WS. In Proceedings of the Twelfth International World Wide Web Conference, 2003.Google ScholarGoogle Scholar
  12. J. Krinke. Static slicing of threaded programs. In Program analysis for software tools and engineering (PASTE 98), pages 35--42. ACMSOFT, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Muth, D. Wodtke, J. Weissenfels, D. A. Kotz, and G. Weikum. From centralized workflow specification to distributed workflow execution. Journal of Intelligent Information Systems (JIIS), 10(2), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Reiter. Scheduling Parallel Computations. Journal of the ACM, 4(15):590--599, 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. V. Sarkar. Partitioning and Scheduling Parallel Programs on Multiprocessors. Research Monographs in Parallel and Distributed Computing. MIT Press, Cambridge, MA, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. V. Sarkar. Automatic Partitioning of a Program Dependence Graph into Parallel Tasks. IBM Journal of Research and Development, 35(5/6), 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. V. Sarkar. A Concurrent Execution Semantics for Parallel Program Graphs and Program Dependence Graphs. Springer-Verlag Lecture Notes in Computer Science, 757:16--30, 1992. Proceedings of the Fifth Workshop on Languages and Compilers for Parallel Computing, Yale University, August 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Singh and S. Pande. Compiler optimizations for Java aglets in distributed data intensive applications. In Proceedings of the ACM Symposium on Applied Computing, pages 87--92, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Singhai and K. McKinley. Loop fusion for data locality and parallelism. In Proceedings of the Mid-Atlantic Student Workshop on Programming Languages and Systems, 1996.Google ScholarGoogle Scholar
  20. J. Subhlok, D. O'Hallaron, T. Gross, P. Dinda, and J. Webb. Communication and memory requirements as the basis for mapping task and data parallel programs. In Proceedings of Supercomputing, pages 330--339, Washington, DC, November 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Subhlok and G. Vondran. Optimal latency-throughput tradeoffs for data parallel pipelines. In Proceedings of the Eighth Annual ACM Symposium on Parallel Algorithms and Architecture (SPAA), Padua, Italy, June 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. E. Tilevich and Y. Smaragdakis. J-Orchestra: Automatic Java application partitioning. In Proceedings of European Conference on Object Oriented Programming (ECOOP'02), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. Yang and A. Gerasoulis. DSC: Scheduling Parallel Tasks on an Unbounded Number of Processors. IEEE Transactions on Parallel and Distributed Systems, 5(9):951--967, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Zhou, S. Pande, and K. Schwan. Method partitioning - runtime customization of pervasive programs without design-time application knowledge. In Proceedings of the 23rd International Conference on Distributed Computing Systems (ICDCS'03), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Decentralizing execution of composite web services

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
      October 2004
      462 pages
      ISBN:1581138318
      DOI:10.1145/1028976
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 39, Issue 10
        OOPSLA '04
        October 2004
        448 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1035292
        Issue’s Table of Contents

      Copyright © 2004 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 October 2004

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate268of1,244submissions,22%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader