skip to main content
10.1145/1101908.1101931acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Clearwater: extensible, flexible, modular code generation

Published:07 November 2005Publication History

ABSTRACT

Distributed applications typically interact with a number of heterogeneous and autonomous components that evolve independently. Methodical development of such applications can benefit from approaches based on domain-specific languages (DSLs). However, the evolution and customization of heterogeneous components introduces significant challenges to accommodating the syntax and semantics of a DSL in addition to the heterogeneous platforms on which they must run. In this paper, we address the challenge of implementing code generators for two such DSLs that are flexible (resilient to changes in generators or input formats), extensible (able to support multiple output targets and multiple input variants), and modular (generated code can be re-written). Our approach, Clearwater, leverages XML and XSLT standards: XML supports extensibility and mutability for in-progress specification formats, and XSLT provides flexibility and extensibility for multiple target languages. Modularity arises from using XML meta-tags in the code generator itself, which supports controlled addition, subtraction, or replacement to the generated code via XML-weaving. We discuss the use of our approach and show its advantages in two non-trivial code generators: the Infopipe Stub Generator (ISG) to support distributed flow applications, and the Automated Composable Code Translator to support automated distributed application deployment. As an example, the ISG accepts as input an XML description and generates output for C, C++, or Java using a number of communications platforms such as sockets and publish-subscribe.

References

  1. Arasu, A., Babcock, B., Babu, S., Cieslewicz, J., Datar, M., Ito, K., Motwani, R., Srivastava, U., and Widom, J., STREAM: The Stanford data stream management system. In Data Stream Management: Processing High-Speed Data Streams. Garofalakis, M., Gehrke, J., and Rastogi, R., eds. To appear 2006. SpringerGoogle ScholarGoogle Scholar
  2. Arasu, A., Cherniack, M., Galvez, E., Maier, D., Maskey, A., Ryvkina, E., Stonebraker, M., and Tibbetts, R., Linear Road: A Stream Data Management Benchmark. In Proceedings of the 30th International Conference on Very Large Data Bases (VLDB), August, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barreto, L., Douence, R., Muller, G., and Südholt, M., Programming OS schedulers with domain-specific languages and aspects: new approaches for OS kernel engineering. International Workshop on Aspects, Components, and Patterns for Infrastructure Software at AOSD, April 2002.Google ScholarGoogle Scholar
  4. Birrell, A., and Nelson, B. Implementing Remote Procedure Calls. ACM Trans. on Computer Systems, 2, 1 (Feb. 1984), 39--59. Also appeared in Proceedings of SOSP'83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Black, P., Huang, J., Koster, R., Walpole, J., and Pu, C. Infopipes: an abstraction for multimedia streaming. ACM Multimedia Systems Journal, 8(5): 406--419, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., Yergeau, F., and Cohan, J., eds. Extensible Markup Language. http://www.w3.org/TR/xml11. World Wide Web Consortium (W3C). 2004.Google ScholarGoogle Scholar
  7. Cai, Y., Grundy, J., and Hosking, J. Experiences Integrating and Scaling a Performance Test Bed Generator with an Open Source CASE Tool. ASE 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Clark, J. ed. XSL Transformations. http://www.w3.org/TR/xslt. World Wide Web Consortium (W3C). 1999.Google ScholarGoogle Scholar
  9. Clark, J., and De Rose, S., eds. XML Path Language http://www.w3.org/TR/xpath. World Wide Web Consortium (W3C). 1999.Google ScholarGoogle Scholar
  10. DVSL. http://jakarta.apache.org/velocity/dvsl/Google ScholarGoogle Scholar
  11. Eide, E., Frei, K., Ford, B., Lepreau, J., and Lindstrom, G. Flick: a flexible, optimizing IDL compiler. In Proceedings of the 1997 SIGPLAN Conference on Programming Language Design and Implementation (PLDI '97) (Las Vegas, NV, Jun 15-18, 1997). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Eisenhauer, G., Bustamente, F., and Schwan, K. A middleware toolkit for client-initiated service specialization. Proceedings of the PODC Middleware Symposium - (Portland Oregon, July 18-20, 2000).Google ScholarGoogle Scholar
  13. Grundy, J., Cai, Y., and Liu, A. SoftArch/MTE: generating distributed system test-beds from high-level software architecture descriptions. In the Proceedings of ASE 2001: The 16th IEEE Conference on Automated Software Engineering. (Coronado, CA, November 26-29, 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Karsai, G. Why XML is not suitable for semantic translation. Research note, Nashville, TN, April, 2000.Google ScholarGoogle Scholar
  15. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., and Irwin, J. Aspect-oriented programming. In the Proceedings of European Conference on Object-Oriented Programming, Aspect-Oriented Programming Workshop (ECOOP '97). (Jyvä skylä, Finland, June 10, 1997.)Google ScholarGoogle ScholarCross RefCross Ref
  16. Le Hégaret, P., DOM Activity Lead. Document Object Model (DOM). http://www.w3.org/DOM/. World Wide Web Consortium (W3C).Google ScholarGoogle Scholar
  17. Lieberherr, K. Adaptive Object Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Nystrom, N., Clarkson, M. R., and Myers, A. C. Polyglot: an extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction (Warsaw, Poland, April 2003). Springer-Verlag LNCS 2622, 138--152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Pu, C., Schwan, K., and Walpole, J. Infosphere project: system support for information flow applications. ACM SIGMOD Record, 30, 1 (Mar. 2001), 25-34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Pu, C., and Swint, G. DSL weaving for distributed information flow systems (Invited Keynote). Proceedings of the 2005 Asia Pacific Web Conference. (APWeb05). (Shanghai, China. March 29 - April 1, 2005.) Springer-Verlag LNCS. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sahai, A., Pu, C., Jung, G., Wu, Q., Yan, W., and Swint, G. Towards automated deployment of built-to-Order systems. In Proceedings of the 16th IFIP/IEEE Distributed Systems: Operations and Management (DSOM '05) (Barcelona, Spain. October 24-26, 2005). To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sahai, A., Joshi, R., Singhal, S., and Machiraju, V. Automated policy based resource construction in utility computing environments. In the Proceedings of the 2004 IEEE/IFIP Network Operations & Management Symposium (NOMS 2004). (Seoul, Korea. April 19-24, 2004.)Google ScholarGoogle ScholarCross RefCross Ref
  23. Salle, M., Sahai, A., Bartolini, C., and Singhal, S. A business-driven approach to closed-loop management. HP Labs Technical Report HPL-2004-205, November 2004.Google ScholarGoogle Scholar
  24. Sarkar, S. Model driven programming using XSLT: an approach to rapid development of domain-specific program generators. www.XML-JOURNAL.com. August 2002.Google ScholarGoogle Scholar
  25. Swint, G., Jung, G., and Pu, C. Event-based QoS for a distributed continual query system. The 2005 IEEE International Conference on Information Reuse and Integration (IRI 2005) (Las Vegas, Nevada. August 14-17, 2005).Google ScholarGoogle ScholarCross RefCross Ref
  26. Swint, G., and Pu, C. Code generation for WSLAs using AXpect. Proceedings of 2004 IEEE International Conference on Web Services (ICWS 2004) (San Diego, California. July 6-9, 2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Swint, G., Pu, C., Koh, Y., Liu, L., Yan, W., Consel, C., Moriyama, K., and Walpole, J. Infopipes: The ISL/ISG Implementation Evaluation. Proceedings of the 3rd IEEE Network Computing and Application Symposium 2004 (IEEE NCA04). (Cambridge, Massachusetts. August 30 - September 2, 2004.) Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Swint, G., Pu, C., and Moriyama, K., Infopipes: Concepts and ISG Implementation. The 2nd IEEE Workshop on Software Technologies for Embedded and Ubiquitous Computing Systems, Vienna, Austria, 2004.Google ScholarGoogle Scholar

Index Terms

  1. Clearwater: extensible, flexible, modular code generation

        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
          ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering
          November 2005
          482 pages
          ISBN:1581139934
          DOI:10.1145/1101908

          Copyright © 2005 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: 7 November 2005

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate82of337submissions,24%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader