Generating wrappers for command line programs: the Cal-Aggie Wrap-O-Matic project

Software developers writing new software have strong incentives to make their products compliant to standards such as CORBA, COM, and Java Beans. Standards compliance facilitates interoperability, component based software assembly, and software reuse, thus leading to improved quality and productivity. Legacy software, on the other hand, is usually monolithic and hard to maintain and adapt. Many organizations, saddled with entrenched legacy software, are confronted with the need to integrate legacy assets into more modern, distributed, componentized systems that provide critical business services. Thus, wrapping legacy systems for interoperability has been an area of considerable interest. Wrappers are usually constructed by hand which can be costly and error-prone. We specifically target command-line oriented legacy systems and describe a tool framework that automates away some of the drudgery of constructing wrappers for these systems. We describe the Cal-Aggie Wrap-O-Matic system (CAWOM), and illustrate its use to create CORBA wrappers for: a) the JDB debugger, thus supporting distributed debugging using other CORBA components; and b) the Apache Web server, thus allowing remote Web server administration, potentially mediated by CORBA-compliant security services. While CORBA has some limitations, in several relatively common settings it can produce better wrappers at lower cost.

[1]  Gregory R. Andrews,et al.  The SR programming language: concurrency in practice , 1993 .

[2]  John Hughes,et al.  The Design of a Pretty-printing Library , 1995, Advanced Functional Programming.

[3]  Timothy E. Lindquist,et al.  An architecture-based approach for synthesizing and integrating adapters for legacy software , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[4]  T. Koch,et al.  Annotations for synchronization constraints in CORBA IDL , 1996, Proceedings of Third International Workshop on Services in Distributed and Networked Environments.

[5]  Arnaud Sahuguet,et al.  WysiWyg Web Wrapper Factory (W4F) , 1999 .

[6]  James M. Purtilo,et al.  Module reuse by interface adaptation , 1991, Softw. Pract. Exp..

[7]  Raghu V. Hudli,et al.  CORBA fundamentals and programming , 1996 .

[8]  Daniel F. Sterne,et al.  Scalable Access Control for Distributed Object Systems , 1999, USENIX Security Symposium.

[9]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[10]  David E. Evans,et al.  Policy-directed code safety , 2000 .

[11]  Jon Siegel,et al.  CORBA 3 Fundamentals and Programming with Cdrom , 1999 .

[12]  Alan Bundy,et al.  Definite Clause Grammars , 1984 .

[13]  David Notkin,et al.  Evaluating The Mediator Method: Prism as a Case Study , 1996, IEEE Trans. Software Eng..

[14]  Philip Wadler,et al.  A prettier printer , 2002 .

[15]  Gerald Bose Towards an Access Control Policy Language for CORBA , 1998, ECOOP Workshops.

[16]  Eric Eide,et al.  Flick: a flexible, optimizing IDL compiler , 1997, PLDI '97.

[17]  Mutsunori Banbara,et al.  Translating a Linear Logic Programming Language into Java , 1999, Electron. Notes Theor. Comput. Sci..

[18]  David E. Evans,et al.  Flexible policy-directed code safety , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[19]  Spiros Mancoridis,et al.  A tool for securely integrating legacy systems into a distributed environment , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[20]  Jennifer Widom,et al.  The TSIMMIS Project: Integration of Heterogeneous Information Sources , 1994, IPSJ.

[21]  Timothy Fraser,et al.  Hardening COTS software with generic software wrappers , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[22]  Jon Sigel,et al.  CORBA Fundamentals and Programming , 1996 .

[23]  Robert DeLine,et al.  Avoiding packaging mismatch with flexible packaging , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  Russell W. Quong,et al.  ANTLR: A predicated‐LL(k) parser generator , 1995, Softw. Pract. Exp..

[25]  Vijay Varadharajan,et al.  Security model for distributed object framework and its applicability to CORBA , 1996, SEC.

[26]  Laura M. Haas,et al.  The Garlic project , 1996, SIGMOD '96.

[27]  Andreas Zeller,et al.  DDD—a free graphical front-end for UNIX debuggers , 1996, SIGP.

[28]  Marc Abrams,et al.  Transforming Command-Line Driven Systems to Web Applications , 1997, Comput. Networks.

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

[30]  G. L. Schaps,et al.  COMPILER CONSTRUCTION WITH ANTLR AND JAVA : TOOLS FOR BUILDING TOOLS , 1999 .

[31]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[32]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[33]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[34]  Gerald Brose Towards an Access Control Policy Specification Language for CORBA , 1998 .

[35]  Maria-Esther Vidal,et al.  Wrapper generation for Web accessible data sources , 1998, Proceedings. 3rd IFCIS International Conference on Cooperative Information Systems (Cat. No.98EX122).