Abstract
A major challenge of maintaining object-oriented programs is to find a means of evolving software that already has a distributed client base. This should be easier for Java developers than for most, because dynamic linking has been designed into the runtime system.
It turns out however that things are not so straightforward as they seem, since a given modification can leave a remote client in one of a number of states, not all of which are tolerable, let alone desirable. In this paper we attempt to delineate these states, and to consider ways of avoiding the worst of them. We describe our utility, which offers library developers a transparent version control system, to protect their remote clients.
Chapter PDF
References
R. Anderson, The End of DLL Hell, Microsoft Corporation, http://msdn.microsoft.comlibrarytechartdlldanger1.htm, January 2000.
D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H. F. Nielsen, S. Thatte, D. Winer, SOAP: Simple Object Access Protocol, http://msdn.microsoft.com.
G. Cohen, J. Chase, and D. Kaminsky, Automatic Program Transformation with JOIE, USENIX Annual Technical Symposium, New Orleans, 1998.
CORBA, http://www.corba.org/.
S. Drossopoulou, An Abstract Model of Java Dynamic Linking, Loading and Verification, Types in Compilation Montreal, September 2001.
S. Drossopoulou, S. Eisenbach and D. Wragg, A Fragment Calculus — towards a model of Separate Compilation, Linking and Binary Compatibility, IEEE Symposium on Logic in Computer Science, Jul. 1999, http://www-dse.doc.ic.ac.uk/projects/slurp/.
S. Drossopoulou, D. Wragg and S. Eisenbach, What is Java Binary Compatibility?, OOPSLA’98 Proceedings, October 1998, http://www-dse.doc.ic.ac.uk/projects/slurp/.
S. Eisenbach and S. Drossopoulou, Manifestations of the Dynamic Linking Process in Java, June 2001, http://www-dse.doc.ic.ac.uk/projects/slurp/dynamic-link/linking.htm.
S. Eisenbach and C. Sadler, Ephemeral Java Source Code, IEEE Workshop on Future Trends in Distributed Systems, Cape Town, Dec. 1999.
S. Eisenbach and C. Sadler, Changing Java Programs, IEEE Conference in Software Maintenance, Florence, Nov. 2001.
J. Gosling, B. Joy, G. Steele and G. Bracha, The Java Language Specification Second Edition, Addison-Wesley, 2000.
D. Hoek, M. Heimbigner, and A.L. Wolf, A Generic, Peer-to-Peer Repository for Distributed Configuration Management, ACM 18th International Conference on Software Engineering, March 1996.
D. Hoek, M. Heimbigner, and A.L. Wolf, Versioned Software Architecture, 3rd International Software Architecture Workshop, Orlando, Florida, November 1998.
J. J. Hunt, F. Lamers, J. Reuter and W. F. Tichy. Distributed Configuration Management Via Java and the World Wide Web, In Proc 7th Intl. Workshop on Software Configuration Management”, Boston, 1997.
Java Management Extensions (JMX), http://java.sun.com/products/JavaManagement/, Jul. 2000.
R. Keller and U. Holzle. Binary Component Adaptation, Proc. of the European Conf. on Object-Oriented Programming, Springer-Verlag, July 1998.
T. Lindholm and F. Yellin, The Java(tm) Virtual Machine Specification, http://java.sun.comdocsbooksvmspec2nd-editionhtmlChangesAppendix.doc.html.
M. Mezini, Maintaining the Consistency of Class Libraries During Their Evolution, Proc. of OOPSLA, 1997.
J. Peterson and A. Silberschatz, Operating System Concepts, Addison Wesley, 1985.
Products and APIs, http://java.sun.com/products/.
J. Reuter, S. U. Hanssgen, J. J. Hunt, and W. F. Tichy. Distributed Revision Control Via the World Wide Web, In Proc. 6th Intl. Workshop on Software Configuration Management”, Berlin, Germany, March, 1996.
P. Sewell, Modules, Abstract Types, and Distributed Versioning, Proc. of Principles of Programming Languages, ACM Press, London, Jan. 2001.
S. Shaikh, Distributed Version Control for Java, June, 2001, http://www-dse.doc.ic.ac.uk/projects/slurp/.
P. Steyaert, C. Lucas, K. Mens and T. D’Hondt, Reuse Contracts: Managing the Evolution of Reusable Assets, Proc. of OOPSLA, 1996.
W. Tichy. RCS: A System for Version Control, Software-Practice and Experience, 15(7):637–654, July 1985.
R. Wahbe, S. Lucco, and S. Graham. Adaptable binary programs, Technical Report CMU-CS-94-137, Carnegie Mellon University, School of Computer Science, Pittsburgh, PA 15213, Apr. 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Eisenbach, S., Sadler, C., Shaikh, S. (2002). Evolution of Distributed Java Programs. In: Bishop, J. (eds) Component Deployment. CD 2002. Lecture Notes in Computer Science, vol 2370. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45440-3_4
Download citation
DOI: https://doi.org/10.1007/3-540-45440-3_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43847-2
Online ISBN: 978-3-540-45440-3
eBook Packages: Springer Book Archive