ACM Home Page
Please provide us with feedback. Feedback
MJ: a rational module system for Java and its applications
Full text PdfPdf (209 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications table of contents
Anaheim, California, USA
SESSION: Language design table of contents
Pages: 241 - 254  
Year of Publication: 2003
ISBN:1-58113-712-5
Also published in ...
Authors
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 40,   Citation Count: 7
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/949305.949326
What is a DOI?

ABSTRACT

While Java provides many software engineering benefits, it lacks a coherent module system and instead provides only packages (which are primarily a name space mechanism) and classloaders (which are very low-level). As a result, large Java applications suffer from unexpected interactions between independent components, require complex CLASSPATH definitions, and are often extremely complex to install and maintain. We have implemented a module system for Java called MJ that is implemented with class loaders, but provides a much higher-level interface. High-level properties can be specified in a module definition and are enforced by the module system as new modules are loaded. To experimentally validate the ability of MJ to properly handle the complex module inter-relationships found in large Java server systems, we replaced the classloader mechanisms of Apache Tomcat 4.1.18 [27] with 30 MJ modules. The modified Tomcat is functionally identical to the original, but requires no CLASSPATH definitions, and will operate correctly even if user code loads a different version of a module used by Tomcat, such as the Xerces XML parser [31]. Furthermore, by making a small change to the Java core libraries enabled by MJ, we obtained a 30% performance improvement in a servlet microbenchmark.


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
 
2
 
3
Bauer, L., Appel, A. W., and Felten, E. W. Mechanisms for secure modular programming in Java. Tech. Rep. Tech Report TR-603-99, Princeton University, Department of Computer Science, July 1999.
4
 
5
Corba. http://www.omg.org/gettingstarted/corbafaq.htm.
 
6
Debian. http://www.debian.org/.
 
7
 
8
Eclipse. http://www.eclipse.org.
9
 
10
Advanced classloading in J2EE. http://www.theserverside.com/resources/articles/AdvancedClassLoading/article.html.
11
 
12
 
13
Harrison, S. Modula-3. Prentice Hall, 1991.
 
14
Hudak, P., and Wadler, P. Report on the programming language Haskell. Tech. Rep. Yale/DCS/RR777, Yale University, Department of Computer Science, Aug. 1991.
 
15
IONA Orbix. http://www.iona.com.
16
 
17
Jdbc drivers: How do you know what you need? http://archive.devx.com/dbzone/articles/dd_jdbc/sosinsky-2.asp.
18
 
19
20
21
 
22
Microsoft COM: Component object model. http://www.microsoft.com/com.
 
23
Millstein, T., and Chambers, C. Modular statically typed multimethods. Information and Computation 175, 1 (May 2002), 76--118.
 
24
 
25
Robinson, R. Developing and deploying modular J2EE applications with WebSphere Studio Application Developer and WebSphere Application Server. http://www7b.software.ibm.com/wsdd/library/techarticles/-0206\_robinson/robinson.html.
 
26
 
27
Tomcat. http://jakarta.apache.org/tomcat/.
 
28
Visigenic. http://www.borland.com/corba/index.html.
 
29
WebSphere application server. http://www.ibm.com/software/websphere.
 
30
 
31
Xerces. http://xml.apache.org/.


Collaborative Colleagues:
John Corwin: colleagues
David F. Bacon: colleagues
David Grove: colleagues
Chet Murthy: colleagues