|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked 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. Springer
|
| |
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.
|
| |
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.
|
 |
4
|
|
| |
5
|
|
| |
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.
|
| |
7
|
|
| |
8
|
Clark, J. ed. XSL Transformations. http://www.w3.org/TR/xslt. World Wide Web Consortium (W3C). 1999.
|
| |
9
|
Clark, J., and De Rose, S., eds. XML Path Language http://www.w3.org/TR/xpath. World Wide Web Consortium (W3C). 1999.
|
| |
10
|
DVSL. http://jakarta.apache.org/velocity/dvsl/
|
 |
11
|
Eric Eide , Kevin Frei , Bryan Ford , Jay Lepreau , Gary Lindstrom, Flick: a flexible, optimizing IDL compiler, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.44-56, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
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).
|
| |
13
|
|
| |
14
|
Karsai, G. Why XML is not suitable for semantic translation. Research note, Nashville, TN, April, 2000.
|
| |
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.)
|
| |
16
|
Le Hégaret, P., DOM Activity Lead. Document Object Model (DOM). http://www.w3.org/DOM/. World Wide Web Consortium (W3C).
|
| |
17
|
|
| |
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.
|
 |
19
|
|
| |
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.
|
| |
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.
|
| |
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.)
|
| |
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.
|
| |
24
|
Sarkar, S. Model driven programming using XSLT: an approach to rapid development of domain-specific program generators. www.XML-JOURNAL.com. August 2002.
|
| |
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).
|
| |
26
|
|
| |
27
|
Galen Swint , Calton Pu , Younggyun Koh , Ling Liu , Wenchang Yan , Charles Consel , Koichi Moriyama , Jonathan Walpole, Infopipes: The ISL/ISG Implementation Evaluation, Proceedings of the Network Computing and Applications, Third IEEE International Symposium on (NCA'04), p.293-296, August 30-September 01, 2004
|
| |
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.
|
|