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.
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Clark, J. ed. XSL Transformations. http://www.w3.org/TR/xslt. World Wide Web Consortium (W3C). 1999.Google Scholar
- Clark, J., and De Rose, S., eds. XML Path Language http://www.w3.org/TR/xpath. World Wide Web Consortium (W3C). 1999.Google Scholar
- DVSL. http://jakarta.apache.org/velocity/dvsl/Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Karsai, G. Why XML is not suitable for semantic translation. Research note, Nashville, TN, April, 2000.Google Scholar
- 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 ScholarCross Ref
- Le Hégaret, P., DOM Activity Lead. Document Object Model (DOM). http://www.w3.org/DOM/. World Wide Web Consortium (W3C).Google Scholar
- Lieberherr, K. Adaptive Object Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- Sarkar, S. Model driven programming using XSLT: an approach to rapid development of domain-specific program generators. www.XML-JOURNAL.com. August 2002.Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- Clearwater: extensible, flexible, modular code generation
Recommendations
Can infopipes facilitate reuse in a traffic application?
OOPSLA '05: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsInfopipes are building blocks for creating data streaming applications, and it is claimed that Infopipes facilitate code reuse. To evaluate this claim, we have built a significant traffic application in Smalltalk using Infopipes. In this paper and ...
Models, reflective mechanisms and family-based systems to support dynamic configuration
MODDM '06: Proceedings of the 1st workshop on MOdel Driven Development for Middleware (MODDM '06)Middleware platforms must satisfy an increasingly broad and variable set of requirements arising from the needs of both applications and underlying systems deployed in dynamically changing environments such as environment monitoring and disaster ...
Comments