Janos Links

NOTE: This page is my personal collection of Janos-related links.
Visit the Janos Home Page for information about Janos itself.


Local Stuff

Flux Project Documentation and Notes (Internal)
Flest Logs (Viewlog, Internal)
Also available via a file URL.
Janos Documentation, Notes, and Related Information (Internal)
Flux Project WikiWikiWeb Server (Internal)
Dave Andersen's Active Network Resources
Kristin Wright's Janos Project Notes
Flux Project Mailing List Archives (Internal)


People

Bob Braden <braden@isi.edu>, University of Southern California Information Sciences Institute (USC/ISI)
Ken Calvert <calvert@dcs.uky.edu>, University of Kentucky
Sally Floyd <floyd@aciri.org>, ACIRI.
James Gosling <jag@eng.sun.com>, JavaSoft.
Carl Gunter <gunter@cis.upenn.edu>, University of Pennsylvania
Doug Maughan <dmaughan@darpa.mil>, DARPA/ITO
Sandy Murphy <sandy@tislabs.com>, TIS Labs at Network Associates
Larry Peterson <llp@cs.princeton.edu>, Priceton University
Steve Schwab <schwab@tislabs.com>, TIS Labs at Network Associates
David Wetherall <djw@cs.washington.edu>, University of Washington


Papers

Martin Abadi. Protection in Programming-Language Translations. DEC SRC Research Report 154, April 1998.
(Abstract @ DEC; gzip'ed PS @ DEC; PDF @ DEC; gzip'ed PS @ local access only)

Bowen Alpern, C. R. Attanasio, John J. Barton, Anthony Cocchi, Susan Flynn Hummel, Derek Lieber, Ton Ngo, Mark Mergen, Janice C. Shepherd, and Stephen Smith. Implementing Jalapeño in Java. In Proceedings of the Fourteenth ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '99), Denver, Colorado, November 1999.
(PS @ IBM; gzip'ed PS @ local access only)

Dirk Balfanz and Li Gong. Experience with Secure Multi-Processing in Java. In Proceedings of the Eighteenth Annual International Conference on Distributed Computing Systems (ICDCS '98), Amsterdam, The Netherlands, May 1998.
(Abstract @ Princeton; gzip'ed PS @ Princeton; PDF @ Princeton; gzip'ed PS @ local access only)

Don Batory, Bernie Lofaso, and Yannis Smaragdakis. JTS: Tools for Implementing Domain-Specific Languages. In Proceedings of the Fifth International Conference on Software Reuse (ICSR '98), Victoria, BC, June 1998.
(PS @ U. Texas; gzip'ed PS @ local access only)

Stephen Blott, José Brustoloni, and Cliff Martin. NetTap: An Efficient and Reliable PC-Based Platform for Network Programming. In Proceedings of the Third IEEE Conference on Open Architectures and Network Programming (OPENARCH 2000), Tel-Aviv, Isreal, March 2000.
(PS @ OPENARCH; gzip'ed PS @ local access only)

Chi-Chao Chang, Grzegorz Czajkowski, Chris Hawblitzel, Deyu Hu, and Thorsten von Eicken. Security versus Performance Tradeoffs in RPC Implementations for Safe Language Systems. In Proceedings of the Eighth ACM SIGOPS European Workshop, Sintra, Portugal, September 1998. Extended abstract.
(PS @ Cornell; PDF @ Cornell; gzip'ed PS @ local access only)

Geoff A. Cohen, Jeffrey S. Chase, and David L. Kaminsky. Automatic Program Transformation with JOIE. In Proceedings of the USENIX 1998 Annual Technical Conference, New Orleans, Louisiana, June 1998.
(Abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PS @ Duke; PDF @ Duke; HTML @ Duke; gzip'ed PS @ local access only)

Karl Crary, Michael Hicks, and Stephanie Weirich. Safe and Flexible Dynamic Linking of Native Code. Technical report MS-CIS-00-13, University of Pennsylvania.
(gzip'ed PS @ UPenn; PDF @ UPenn; gzip'ed PS @ local access only)

Grzegorz Czajkowski, Chi-Chao Chang, Chris Hawblitzel, Deyu Hu, and Thorsten von Eicken. Resource Management for Extensible Internet Servers. In Proceedings of the Eighth ACM SIGOPS European Workshop, Sintra, Portugal, September 1998. Extended abstract.
(PS @ Cornell; PDF @ Cornell; gzip'ed PS @ local access only)

Eran Gabber, Christopher Small, John Bruno, José Brustoloni, and Avi Silberschatz. The Pebble Component-Based Operating System. In Proceedings of the USENIX 1999 Annual Technical Conference (USENIX '99), Monterey, California, June 1999.
(HTML @ USENIX; PDF @ USENIX; PS @ USENIX; gzip'ed PS @ local access only)

Li Gong, Marianne Mueller, Hemma Prafullchandra, and Roland Schemers. Going Beyond the Sandbox: An Overview of the New Security Architecture in the Java Development Kit 1.2. In Proceedings of the USENIX Symposium on Internet Technologies and Systems, Monterey, California, December 1997.
(Abstract @ USENIX; PDF @ USENIX; PDF @ local access only)

Steven D. Gribble, Matt Welsh, Eric A. Brewer, and David Culler. The MultiSpace: An Evolutionary Platform for Infrastructural Services. In Proceedings of the USENIX 1999 Annual Technical Conference (USENIX '99), Monterey, California, June 1999.
(HTML @ USENIX; PDF @ USENIX; PS @ USENIX; gzip'ed PS @ local access only)

Chris Hawblitzel, Chi-Chao Chang, Grzegorz Czajkowski, Deyu Hu, and Thorsten von Eicken. Implementing Multiple Protection Domains in Java. In Proceedings of the USENIX 1998 Annual Technical Conference, New Orleans, Louisiana, June 1998.
(Abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PDF @ local access only)

Submission version appears as Cornell CS Technical Report 97-1660, December 1997.
(PS @ Cornell; PDF @ Cornell; gzip'ed PS @ local access only)

Chris Hawblitzel and Thorsten von Eicken. A Case for Language-Based Protection. Cornell CS Technical Report 98-1670, March 1998.
(PS @ Cornell; PDF @ Cornell; gzip'ed PS @ local access only)

Chris Hawblitzel and Thorsten von Eicken. Type System Support for Dynamic Revocation. Presented at the ACM SIGPLAN 1999 Workshop on Compiler Support for System Software (WCSSS '99), Atlanta, Georgia, May 1999.
(PS @ Cornell; gzip'ed PS @ local access only)

Gísli Hjálmtýsson. The Pronto Platform: A Flexible Toolkit for Programming Networks Using a Commodity Operating System. In Proceedings of the Third IEEE Conference on Open Architectures and Network Programming (OPENARCH 2000), Tel-Aviv, Isreal, March 2000.
(PS @ AT&T; gzip'ed PS @ local access only)

Trent Jaeger, Jochen Liedtke, and Nayeem Islam. Operating System Protection for Fine-Grained Programs. In Proceedings of the Seventh USENIX Security Symposium, San Antonio, Texas, January 1998.
(Abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PDF @ local access only)

T. Jensen, D. Le Métayer, and T. Thorn. Security and Dynamic Class Loading in Java: A Formalisation. Technical Report PI-1137, IRISA, October 1997. A later version of this paper was published in Proceedings of the IEEE Computer Society International Conference on Computer Languages (ICCL '98), Chicago, Illinois, pages 4--15, May 1998.
(Abstract @ IRISA; gzip'ed PS @ IRISA; gzip'ed PS @ local access only)

Scott Karlin and Larry Peterson. VERA: An Extensible Router Architecture. In Proceedings of the Fourth International Conference on Open Architectures and Network Programming (OPENARCH '01), Anchorage, Alaska, April 2001.
(Abstract @ Princeton; PDF @ Princeton; PS @ Princeton; BibTeX @ Princeton; PDF @ local access only)

Han Bok Lee and Banjamin G. Zorn. BIT: A Tool for Instrumenting Java Bytecodes. In Proceedings of the USENIX Symposium on Internet Technologies and Systems, Monterey, California, December 1997.
(Abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PS @ Colorado; HTML @ Colorado; PDF @ local access only)

Sheng Liang and Gilad Bracha. Dynamic Class Loading in the Java Virtual Machine. In Proceedings of the Thirteenth ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '98), Vancouver, BC, October 1998.
(PS @ Javasoft; gzip'ed PS @ local access only)

Sheng Liang and Deepa Viswanathan. Comprehensive Profiling Support in the Java Virtual Machine. In Proceedings of the Fifth USENIX Conference on Object-Oriented Technologies and Systems (COOTS '99), San Diego, CA, May 1999.
(PDF @ USENIX; HTML @ USENIX; PDF @ local access only)

Xiaoming Liu, Christoph Kreitz, Robbert van Renesse, Jason Hickey, Mark Hayden, Kenneth Birman, Robert Constable. Building Reliable, High-Performance Communication Systems from Components. In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles (SOSP '99), Kiawah Island, South Carolina, December 1999.
(Abstract @ Cornell; PS @ Cornell; gzip'ed PS @ Cornell; PDF @ Cornell; gzip'ed PS @ local access only)

Management of Active Networks. Draft, May 2000.
(various formats @ Columbia; PDF @ local access only)

Management of Active Networks. Draft, July 1999. This document is outdated.
(PDF @ local access only)

Nimisha V. Mehta and Karen R. Sollins. Expanding and Extending the Security Features of Java. In Proceedings of the Seventh USENIX Security Symposium, San Antonio, Texas, January 1998.
(Abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PDF @ local access only)

Paul Menage. RCANE: A Resource Controlled Framework for Active Network Services. In Stefan Covaci, editor, Active Networks: First International Working Conference, IWAN '99, volume 1653 of Lecture Notes in Computer Science. Springer, June-July 1999.
(PS @ Cambridge; PS slides @ Cambridge; gzip'ed PS @ local access only)

S. Merugu, S. Bhattacharjee, E. Zegura, and K. Calvert. Bowman: A Node OS for Active Networks. In Proceedings of IEEE Infocom 2000 (Infocom 2000), Tel-Aviv, Israel, March 2000.
(PS @ IEEE; gzip'ed PS @ Gatech; PDF @ Gatech; talk gzip'ed PS @ Gatech; talk PDF @ Gatech; gzip'ed PS @ local access only)

Robert Morris, Eddie Kohler, John Jannotti, and M. Frans Kaashoek. The Click Modular Router. In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles (SOSP '99), Kiawah Island, South Carolina, December 1999.
(Abstract @ MIT; PDF @ MIT; gzip'ed PS @ MIT; PDF @ local access only; gzip'ed PS @ local access only)

Erik L. Nygren, Stephen J. Garland, and M. Frans Kaashoek. PAN: A High-Performance Active Network Node Supporting Multiple Mobile Code Systems. In Proceedings of the Second IEEE Conference on Open Architectures and Network Programming (OPENARCH '99), New York, New York, March 1999.
(Abstract @ MIT; PS @ MIT; gzip'ed PS @ MIT; PDF @ MIT; gzip'ed PS @ local access only)

Robert O'Callahan. A Simple, Comprehensive Type System for Java Bytecode Subroutines. In Proceedings of the Twenty-Sixth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '99), San Antonio, Texas, January 1999.
(gzip'ed PS @ CMU; gzip'ed PS @ local access only)

Robert O'Callahan. Scalable Program Analysis and Understanding Based on Type Inference. Thesis proposal, March 1998.
(gzip'ed PS @ CMU; HTML @ CMU; gzip'ed PS slides @ CMU; HTML slides @ CMU; gzip'ed PS @ local access only)

Livio Ricciuli. Active Networks Daemon Protocol. Unpublished, December 15, 1999.
(ASCII @ ISI; gzip'ed ASCII @ local access only)

Jonathan G. Rossie Jr. Logical Observable Entities. In Proceedings of the Thirteenth ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '98), Vancouver, British Columbia, October 1998.
(gzip'ed PS @ North Carolina State; gzip'ed PS @ local access only)

Algis Rudys, John Clements, and Dan S. Wallach. Termination in Language-Based Systems. In Proceedings of the Network and Distributed Systems Security Symposium (NDSS '01), San Diego, California, February 2001. To appear.
(Abstract @ Rice; PDF @ Rice; PS @ Rice; PDF @ local access only)

Amr Sabry and Stephen Fickas. Java Access Modifiers in Parallel Universes. Technical Report CIS-TR-98-03, Department of Computer and Information Science, University of Oregon, July 1998.
(PS @ Oregon; gzip'ed PS @ local access only)

Emin Gün Sirer, Robert Grimm, Arthur J. Gregory, and Brian N. Bershad. Design and Implementation of a Distributed Virtual Machine for Networked Computers. In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles (SOSP '99), Kiawah Island, South Carolina, December 1999.
(PDF @ ACM; PS @ Washington; PDF @ Washington; gzip'ed PS @ local access only)

Tammo Spalink, Scott Karlin, and Larry Peterson. Evaluating Network Processors in IP Forwarding. Technical Report TR-626-00, Department of Computer Science, Princeton University, November 15, 2000.
(Abstract @ Princeton; PDF @ Princeton; PS @ Princeton; BibTeX @ Princeton; PDF @ local access only)

Scott Thibault, Charles Consel, and Gilles Muller. Safe and Efficient Active Network Programming. In Proceedings of the Seventeenth IEEE Symposium on Reliable Distributed Systems (SRDS '98), West Lafayette, Indiana, October 1998.
(gzip'ed PS @ IRISA; gzip'ed PS @ local access only)

Scott Thibault, Jerome Marant, and Gilles Muller. Adapting Distributed Applications Using Extensible Networks. IRISA Research Report 1200, August 1998.
(gzip'ed PS @ IRISA; gzip'ed PS @ local access only)

Amin Vahdat, Michael Dahlin, Thomas Anderson, and Amit Aggarwal. Active Names: Flexible Location and Transport of Wide-Area Resources. In Proceedings of the Second USENIX Symposium on Internet Technologies and Systems (USITS '99), Boulder, Colorado, October 1999.
(abstract @ USENIX; PDF @ USENIX; HTML @ USENIX; PS @ Duke; PDF @ Duke; PDF @ local access only)

Dan S. Wallach, Dirk Balfanz, Drew Dean, and Edward W. Felten. Extensible Security Architectures for Java. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP '97), Saint-Malo, France, October 1997.
(Abstract @ Princeton; gzip'ed PS @ Princeton; PDF @ Princeton; HTML @ Princeton; gzip'ed PS @ local access only)

Dan S. Wallach and Edward W. Felten. Understanding Java Stack Inspection. In Proceedings of the 1998 IEEE Symposium on Security and Privacy, Oakland, California, May 1998.
(Abstract @ Princeton; gzip'ed PS @ Princeton; PDF @ Princeton; gzip'ed PS @ local access only)

David Wetherall. Active Network Vision and Reality: Lessons From a Capsule-Based System. In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles (SOSP '99), Kiawah Island, South Carolina, December 1999.
(PS @ Washington; PDF @ Washington; gzip'ed PS @ local access only)

David J. Wetherall, John V. Guttag, and David L. Tennenhouse. ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols. In Proceedings of the First IEEE Conference on Open Architectures and Network Programming (OPENARCH '98), San Francisco, California, April 1998.
(Abstract @ MIT; gzip'ed PS @ MIT; gzip'ed PS @ local access only)


Conferences

Open to Submissions

Title Location Dates Submit

Closed to Submissions (Deadline Has Passed)

Title Location Dates Submit
USENIX '03: 2003 USENIX Annual Technical Conference San Antonio, TX Jun 9-14, 2003 Nov 25, 2002
12th USENIX Security Symposium San Francisco, CA Aug 4-8, 2003 Jan 27, 2003
SOSP '03: 19th ACM Symposium on Operating Systems Principles Bolton Landing, NY Oct 19-22, 2003 Mar 24, 2003

Past Conferences

Title Location Dates Submit
ICDCS 2003: 23rd International Conference on Distributed Computing Systems Providence, RI May 19-22, 2003 Sep 13, 2002
HotOS-IX: 9th Workshop on Hot Topics in Operating Systems Lihue, HI May 18-21, 2003 Jan 10, 2003
OPENARCH 2003: 6th International Conference on Open Architectures and Network Programming (co-located with INFOCOM 2003) San Francisco, CA Apr 4-5, 2003 Nov 18, 2002
INFOCOM 2003: 22nd Annual Joint Conference of the IEEE Computer and Communications Societies San Francisco, CA Mar 30-Apr 3, 2003 Jul 10, 2002
USITS '03: 4th USENIX Symposium on Internet Technologies and Systems Seattle, WA Mar 26-28, 2003 Sep 16, 2002
IM 2003: 8th IFIP/IEEE International Symposium on Integrated Network Management Colorado Springs, CO Mar 24-28, 2003 Aug 1, 2002
NP2: 2nd Workshop on Network Processors (at HPCA 9) Anaheim, CA Feb 9, 2003 Nov 15, 2002
POPL '03: 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages New Orleans, LA Jan 15-17, 2003 Jul 19, 2002
OSDI '02: 5th Symposium on Operating Systems Design and Implementation Boston, MA Dec 9-11, 2002 May 17, 2002
IWAN 2002: 4th International Working Conference on Active Networks Zürich, Switzerland Dec 4-6, 2002 May 31, 2002
ICNP 2002: 10th IEEE International Conference on Network Protocols Paris, France Nov 13-15, 2002 May 15, 2002
FORTE 2002: 22nd IFIP WG 6.1 International Conference on Formal Techniques for Networked and Distributed Systems Houston, TX Nov 11-14, 2002 Apr 29, 2002
IMW 2002: Internet Measurement Workshop Marseille, France Nov 6-8, 2002 May 3, 2002
OOPSLA 2002: 17th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Seattle, WA Nov 4-8, 2002 Mar 22, 2002
JGI 2002: Joint ACM Java Grande - ISCOPE 2002 Conference (colocated with OOPSLA 2002) Seattle, WA Nov 3-5, 2002 Jun 1, 2002
IPOM 2002: IEEE Workshop on IP Operations and Management Dallas, TX Oct 29-31, 2002 May 10, 2002
HotNets-I: 1st Workshop on Hot Topics in Networks Princeton, NJ Oct 28-29, 2002 Jul 1, 2002
CASES 2002: International Conference on Compilers, Architectures and Synthesis for Embedded Systems (co-located with EMSOFT '02) Grenoble, France Oct 8-11, 2002 Jun 22, 2002
ASPLOS X: 10th International Conference on Architectural Support for Programming Languages and Operating Systems San Jose, CA Oct 6-9, 2002 Mar 8, 2002
P2P 2002: 2nd IEEE International Conference on Peer-to-Peer Computing Linköping, Sweden Sep 5-7, 2002 Jun 10, 2002
ACM SIGCOMM 2002 Pittsburgh, PA Aug 19-23, 2002 Mar 1, 2002
11th USENIX Security Symposium San Francisco, CA Aug 5-9, 2002 Jan 28, 2002
JVM '02: 2nd Java Virtual Machine Research and Technology Symposium San Fransisco, CA Aug 1-2, 2002 Feb 4, 2002
AMS 2002: 4th Annual International Workshop on Active Middleware Services (at HPDC-11) Edinburgh, UK Jul 23, 2002 Mar 22, 2002
ICDCS 2002: 22nd International Conference on Distributed Computing Systems Vienna, Austria Jul 2-5, 2002 Nov 4, 2001
OPENARCH '02: 5th IEEE Conference on Open Architectures and Network Programming (colocated with INFOCOM 2002) New York, NY Jun 28-29, 2002 Nov 12, 2001
INFOCOM 2002: 21st Annual Joint Conference of the IEEE Computer and Communications Societies New York, NY Jun 23-27, 2002 Jul 31, 2001
ISMM 2002: The 2002 International Symposium on Memory Management (collocated with PLDI '02) Berlin, Germany Jun 20-21, 2002 Feb 8, 2002
PLDI '02: ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation Berlin, Germany Jun 17-19, 2002 Nov 16, 2001
ECOOP-OOOSWS 2002: 5th ECOOP Workshop on Object-Orientation and Operating Systems (at ECOOP 2002) Málaga, Spain Jun 11, 2002 Apr 8, 2002
ECOOP 2002 Workshop: Workshop on Resource Management for Safe Languages Málaga, Spain Jun 11, 2002 Apr 8, 2002
USENIX '02: 2002 USENIX Annual Technical Conference Monterey, CA Jun 10-15, 2002 Nov 19, 2001
ECOOP 2002: 16th European Conference on Object-Oriented Programming Málaga, Spain Jun 10-14, 2002 Nov 26, 2001
FTfJP 2002: Workshop on Formal Techniques for Java-Like Programs (at ECOOP 2002) Málaga, Spain Jun 10, 2002 Apr 8, 2002
DANCE 2002: DARPA Active Networks Conference and Exposition San Francisco, CA May 29-30, 2002 ?
International Workshop on Peer-to-Peer Computing (co-located with Networking 2002) Pisa, Italy May 24, 2002 Mar 29, 2002
SEM 2002: 3rd International Workshop on Software Engineering and Middleware (co-located with ICSE 2002) Orlando, FL May 20-21, 2002 Feb 22, 2002
Networking 2002: 2nd IFIP-TC6 Networking Conference Pisa, Italy May 19-24, 2002 Oct 31, 2001
LCR '02: 6th Workshop on Languages, Compilers, and Run-time Systems for Scalable Computers Washington, DC Mar 22-23, 2002 Feb 8, 2002
NP1: Workshop on Network Processors (at HPCA 8) Cambridge, MA Feb 3, 2002 Nov 1, 2001
POPL '02: 29th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Portland, OR Jan 16-18, 2002 Jul 23, 2001
CASES 2001: International Conference on Compilers, Architectures and Synthesis for Embedded Systems Atlanta, GA Nov 16-17, 2001 Aug 10, 2001
IMW 2001: ACM SIGCOMM Internet Measurement Workshop San Francisco, CA Nov 1-2, 2001 Jun 29, 2001
SOSP '01: 18th ACM Symposium on Operating Systems Principles Lake Louise, Alberta Oct 21-24, 2001 Mar 26, 2001
OOPSLA 2001: 16th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Tampa Bay, FL Oct 14-18, 2001 Mar 23, 2001
IWAN '01: 3rd International Working Conference on Active Networks Philadelphia, PA Sep 30-Oct 2, 2001 May 1, 2001
OPENSIG 2001: Next Generation Network Programming London, UK Sep 24-25, 2001 Jun 30, 2001
Babel '01: 1st Workshop on Multi-Language Infrastructure and Interoperability (at PLI 2001) Firenze, Italy Sep 8, 2001 Jun 1, 2001
ACM SIGCOMM 2001: Applications, Technologies, Architectures and Protocols for Computer Communications San Diego, CA Aug 27-31, 2001 Jan 26, 2001
PODC 2001: 20th ACM Symposium on Principles of Distributed Computing Newport, RI Aug 26-29, 2001 Jan 26, 2001
10th USENIX Security Symposium Washington, DC Aug 13-17, 2001 Feb 1, 2001
AMS '01: 3rd Annual Workshop on Active Middleware Services (at HPDC-10) San Francisco, CA Aug 6, 2001 Apr 16, 2001
WIAPP '01: 2nd IEEE Workshop on Internet Applications San Jose, CA Jul 23-24, 2001 Feb 1, 2001
USENIX '01: 2001 USENIX Annual Technical Conference Boston, MA Jun 25-30, 2001 Dec 1, 2000
PLDI '01: ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation Snowbird, UT Jun 20-22, 2001 Nov 16, 2000
ECOOP-OOOSWS '01: 4th ECOOP Workshop on Object-Orientation and Operating Systems Budapest, Hungary Jun 19, 2001 Apr 17, 2001
ECOOP 2001: 15th European Conference on Object-Oriented Programming Budapest, Hungary Jun 18-22, 2001 Nov 27, 2000
OM '01: ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (at PLDI '01) Snowbird, UT Jun 18, 2001 Feb 18, 2001
JGI 2001: Joint ACM Java Grande - ISCOPE 2001 Conference Stanford, CA Jun 2-4, 2001 Jan 12, 2001
HotOS-VIII: 8th Workshop on Hot Topics in Operating Systems Schloss Elmau, Germany May 20-22, 2001 Jan 15, 2001
IM 2001: 7th IFIP/IEEE International Symposium on Integrated Network Management Seattle, WA May 14-18, 2001 Sep 15, 2000
IN 2001: IEEE Intelligent Network Workshop 2001 Boston, MA May 6-9, 2001 Nov 15, 2000
OPENARCH '01: 4th IEEE Conference on Open Architectures and Network Programming Anchorage, AK Apr 27-28, 2001 Oct 6, 2000
JVM '01: Java Virtual Machine Research and Technology Symposium Monterey, CA Apr 23-24, 2001 Nov 1, 2000
ICDCS 2001: 21st International Conference on Distributed Computing Systems Phoenix, AZ Apr 16-19, 2001 Sep 10, 2000
USITS '01: 3rd USENIX Symposium on Internet Technologies and Systems San Francisco, CA Mar 26-28, 2001 Sep 25, 2000
Symposium on Software Mobility and Adaptive Behavior (at AISB '01) York, UK Mar 21-24, 2001 Dec 21, 2000
POPL '01: 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages London, UK Jan 17-19, 2001 Jul 17, 2000
CASES 2000: International Conference on Compilers, Architectures and Synthesis for Embedded Systems San Jose, CA Nov 17-19, 2000 Aug 14, 2000
ASPLOS IX: Ninth International Conference on Architectural Support for Programming Languages and Operating Systems Cambridge, MA Nov 13-15, 2000 Apr 17, 2000
OSDI 2000: 4th Symposium on Operating Systems Design and Implementation San Diego, CA Oct 23-25, 2000 Apr 25, 2000
IWAN 2000: Second International Working Conference on Active Networks Tokyo, Japan Oct 16-18, 2000 Apr 14, 2000
OOPSLA 2000: 15th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Minneapolis, MN Oct 15-19, 2000 Apr 3, 2000
ISMM 2000: The 2000 International Symposium on Memory Management (collocated with OOPSLA 2000) Minneapolis, MN Oct 15-16, 2000 May 1, 2000
OPENSIG 2000: Programming the Internet Napa Valley, CA Oct 11-12, 2000 N/A
EW 2000: 9th ACM SIGOPS European Workshop Kolding, Denmark Sep 17-20, 2000 Mar 27, 2000
SAN-day: Stockholm Active Networks Day (at SIGCOMM 2000) Stockholm, Sweden Aug 28, 2000 ?
ACM SIGCOMM 2000: Applications, Technologies, Architectures and Protocols for Computer Communications Stockholm, Sweden Aug 28-Sep 1, 2000 Jan 28, 2000
9th USENIX Security Symposium Denver, CO Aug 14-17, 2000 Feb 10, 2000
AMS '00: Workshop on Active Middleware Services (at HPDC-9) Pittsburgh, PA Aug 1, 2000 May 26, 2000
PCC 2000: Workshop on Proof-Carrying Code Santa Barbara, CA Jun 28-29, 2000 N/A
USENIX 2000: 2000 USENIX Annual Technical Conference San Diego, CA Jun 18-23, 2000 Nov 29, 1999
PLDI 2000: ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation Vancouver, BC Jun 18-21, 2000 Nov 12, 1999
ECOOP 2000: 14th European Conference on Object-Oriented Programming Sophia Antipolis, France Jun 12-16, 2000 Nov 12, 1999
FTfJP 2000: Workshop on Formal Techniques for Java Programs (at ECOOP 2000) Sophia Antipolis, France Jun 12-13, 2000 Mar 24, 2000
ECOOP-OOOSWS 2000: 3rd ECOOP Workshop on Object-Orientation and Operating Systems Sophia Antipolis, France Jun 12-13, 2000 Mar 31, 2000
Java '00: ACM 2000 Java Grande Conference San Francisco, CA Jun 3-4, 2000 Jan 17, 2000
Programmable and Active Networks Seminar at Networking 2000 Paris, France May 17, 2000 ?
Networking 2000 Paris, France May 14-19, 2000 Sep 30, 1999
IEEE Infocom 2000: The Conference on Computer Communications Tel-Aviv, Israel Mar 26-30, 2000 Jul 5, 1999
OPENARCH 2000: 3rd IEEE Conference on Open Architectures and Network Programming Tel-Aviv, Israel Mar 26-27, 2000 Sep 10, 1999
INE 2000: Special Workshop on Intelligence at the Network Edge San Francisco, CA Mar 20, 2000 Nov 15, 1999
POPL '00: 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Boston, MA Jan 19-21, 2000 Jul 19, 1999
SOSP '99: 17th ACM Symposium on Operating Systems Principles Kiawah Island, SC Dec 12-15, 1999 May 17, 1999
OOPSLA '99: 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications Denver, CO Nov 1-5, 1999 Apr 1, 1999
CASES '99: Second International Workshop on Compiler and Architecture Support for Embedded Systems Washington, DC Oct 1-3, 1999 Jul 15, 1999
ACM SIGCOMM '99: Applications, Technologies, Architectures, and Protocols for Computer Communication Cambridge, MA Aug 30-Sep 3, 1999 Jan 29, 1999
8th USENIX Security Symposium Washington, DC Aug 23-26, 1999 Mar 9, 1999
IMLA '99: Intuitionistic Modal Logic and Applications (at LICS '99) Trento, Italy Jul 6, 1999 Apr 2, 1999
IWAN '99: First International Working Conference on Active Networks Berlin, Germany Jun 30-Jul 2, 1999 Feb 15, 1999
MOS '99: 5th Mobile Object Systems Workshop: Programming Languages for Wide Area Networks (at ECOOP '99) Lisbon, Portugal Jun 14, 1999 Apr 11, 1999
ECOOP '99: 13th European Conference on Object-Oriented Programming Lisbon, Portugal Jun 14-18, 1999 Nov 28, 1999
Java '99: ACM 1999 Java Grande Conference Palo Alto, CA Jun 12-14, 1999 Jan 15, 1999
USENIX '99: 1999 USENIX Annual Technical Conference Monterey, CA Jun 7-11, 1999 Dec 2, 1998
SP '99: 1999 IEEE Symposium on Security and Privacy Oakland, CA May 9-12, 1999 Oct 23, 1998
LCTES '99: ACM SIGPLAN 1999 Workshop on Languages, Compilers, and Tools for Embedded Systems (at PLDI '99) Altanta, GA May 5, 1999 Feb 26, 1999
WCSSS '99: ACM SIGPLAN 1999 Workshop on Compiler Support for System Software (at PLDI '99) Altanta, GA May 1, 1999 Mar 1, 1999
PLDI '99: 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation Atlanta, GA May 1-4, 1999 Oct 9, 1998
HotOS-VII: 7th Workshop on Hot Topics in Operating Systems Rio Rico, AZ Mar 29-30, 1999 Dec 1, 1998
OPENARCH '99: 2nd IEEE Conference on Open Architectures and Network Programming New York, NY Mar 26-27, 1999 Sep 14, 1998
OSDI '99: 3rd Symposium on Operating Systems Design and Implementation New Orleans, LA Feb 22-25, 1999 Jul 28, 1998
POPL '99: 26th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages San Antonio, TX Jan 20-22, 1999 Jul 24, 1998
OOPSLA '98: 1998 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications Vancouver, BC Oct 18-22, 1998 Apr 13, 1998
ISMM '98: 1998 International Symposium on Memory Management Vancouver, BC Oct 17-19, 1998 May 15, 1998
EW '98: 8th ACM SIGOPS European Workshop on Support for Composing Distributed Applications Sintra, Portugul Sep 7-10, 1998 Feb 27, 1998
LCTES '98: Workshop on Languages, Compilers, and Tools for Embedded Systems (at PLDI '98) Montreal, Quebec Jun 19-20, 1998 Feb 20, 1998
PLDI '98: 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation Montreal, Quebec Jun 16-19, 1998 Nov 7, 1997
USENIX '98: 1998 USENIX Annual Technical Conference New Orleans, LA Jun 15-19, 1998 Dec 2, 1997
SP '98: 1998 IEEE Symposium on Security and Privacy Oakland, CA May 3-6, 1998 ?
OPENARCH '98: 1st IEEE Conference on Open Architectures and Network Programming San Francisco, CA Apr 3-4, 1998 Jun 30, 1997
Java '98: ACM 1998 Workshop on Java for High-Performance Network Computing Palo Alto, CA Feb 28-Mar 1, 1998 Dec 7, 1997
SOSP '97: 16th ACM Symposium on Operating Systems Principles St. Malo, France Oct 5-8, 1997 Mar 12, 1997

Conference-Related Materials

ACM SIGPLAN List of Upcoming Events
ACM SIGOPS: List of Upcoming Events in Operating Systems Research
Programming Language and Compiler Conferences
Upcoming Compiler and Parallel Computing Conferences
Resources for Organizers of Conferences and Workshops
The ACM Interim Copyright Policy
The ACM guidelines for electronically submitting accepted articles to ACM journals.
Also see the ACM LaTeX files for electronic submissions and the Author's Guide for Electronic Submittal of ACM Journal Articles Accepted for Publication.
ACM SIG Proceedings Templates
This is the home of the official ACM Proceedings Format, including the new and official acmproc.cls LaTeX document class.
Yet Another acmconf.cls LaTeX document class
This version of the ACM conference class format is perhaps the most complete, flexible, and CTAN-iest, but it's not the new, official acmproc.cls.
(Old) The acmconf.sty LaTeX Document Style File
(Old) The acmconf.cls LaTeX Document Class File
ACM TOPLAS: Preparing LaTeX documents for the World-Wide Web
Includes links to LaTeX style files for ACM Transactions journals: acmtrans.sty, acmtrans2e.cls, and acmtrans.bst.
IEEE information for authors
Includes links to the LaTeX style files for IEEE Transactions journals: e.g., IEEEtran.cls, IEEEsample2e.tex, and IEEEbib.bst.
The Springer-Verlag LLNCS LaTeX Document Class
Advice to Authors of Extended Abstracts by William Pugh
Advice for effective scientific electronic publishing with TeX and PDF by Markus G. Kuhn
Collected Advice on Research and Writing
A collection of advice about research writing, publishing, speaking, and academic success.
MLA Style
From the Web page: The style recommended by the Modern Language Association for preparing scholarly manuscripts and student research papers concerns itself with the mechanics of writing, such as punctuation, quotation, and documentation of sources. Includes advice for documenting sources from the World Wide Web.


Journals: Special Issues

Open to Submissions

Title Publication Date Submit Date

Closed to Submissions (Deadline Has Passed)

Title Publication Date Submit Date
Journal of Automated Reasoning: Special Issue on Proof-Carrying Code ? Apr 12, 2002
IEEE Journal on Selected Areas in Communications: Special Issue on Internet Proxy Services 2Q2002 May 1, 2001
Computer Networks Journal: Special Issue on Active Networks and Services Apr 2001 Jun 30, 2000
IEEE Journal on Selected Areas in Communications: Special Issue on Active and Programmable Networks (also see this CFP) 1Q2001 Apr 22, 2000
Computer Communications Journal: Special Issue on QoS-Sensitive Network Applications and Systems 4Q2000 Mar 15, 2000


Research Projects

Active Names
From the Web page: The shift in the use of the Internet from a distribution mechanism for static documents to a medium supporting nearly arbitrary services makes it increasingly important to provide mechanisms for locating and retrieving wide-area resources in an efficient and fault tolerant manner.... [W]e are designing, building, and experimenting with Active Names, a naming infrastructure that combines the process of locating and retrieving a named resource through the use of location-independent and application-specific programs.
The DARPA/ITO Active Networks Program
The Active Networks program has the goal of producing a new networking platform, flexible and extensible at runtime to accommodate the rapid evolution and deployment of networking technologies and also to provide the increasingly sophisticated services demanded by defense applications.
Active Network Backbone (ABone)
From the Web page: The ABone is a DARPA ITO-supported project to build an Active Networks Backbone, a (virtual) network of computers to support the active networks research program. The ABone objective is to eventually include up to several hundred network nodes that are available for dynamically loading and testing active code.
Active Networks at MIT
Active Networks research in the Software Devices and Systems group at the MIT Laboratory for Computer Science. This is the home of ANTS, an Active Network Toolkit.
The Active Reservation Protocol (ARP) Project
From the Web page: The ARP (Active Reservation Protocol) project is exploring the use of portable and dyamically-extensible protocol code for network control protocols, especially for signaling protocols.... The ARP project is using byte code for a Java Virtual Machine (JVM).... The Execution Environment is called the ASP EE, where ASP stands for Active Signaling Protocol.
Ambit: Mobile Computational Ambients
From the Web page: There are two distinct areas of work in mobility: mobile computing, concerning computation that is carried out in mobile devices (laptops, personal digital assistants, etc.), and mobile computation, concerning mobile code that moves between devices (applets, agents, etc.). We aim to describe all these aspects of mobility within a single framework that encompasses mobile agents, the ambients where agents interact and the mobility of the ambients themselves.
AMP: High-Performance Active Networking
From the Web page: This project is developing a new software base for Active Network nodes. Referred to as AMP, it will be a platform that allows active code to be executed securely, safely, and with high performance.... The research approach is to build AMP using techniques and software developed by the DARPA-funded exokernel project. The exokernel basis is the result of recent experience that demonstrates physical resources may be managed by user-level applications in ways that allow both efficiency and potential for protection.
CANES: Composable Active Network Elements
Active network research at Georgia Tech.
The Click Modular Router Project
From the Click SOSP '99 paper: Click is a new software architecture for building flexible and configurable routers. A Click router is assembled from packet processing modules called elements. Individual elements implement simple router functions like packet classification, queueing, scheduling, and interfacing with network devices. Complete configurations are built by connecting elements into a graph; packets flow along the graph's edges.
Compiler Research at WRL (Compaq)
From the Web page: The goal of the Swift compiler project is to develop a traditional (i.e., not just-in-time) compiler for Java that takes Java bytecodes as input and generates the most efficient code possible.... The code generated by our compiler runs within the srcjava Java run-time system, a Java Virtual Machine for Alpha processors that includes just-in-time compiler that already generates very efficient code.
Defensive Java Virtual Machine
From the Web page: Computational Logic, Inc., in collaboration with Schlumberger Electronic Transactions and JavaSoft, has been building a formal model of a subset of the Java Virtual Machine (JVM). The model has been built using ACL2, a mathematical logic based on Common Lisp. The result can serve as the basis for rigorous, formal analysis of the JVM and JVM (bytecode) programs. Because models written in ACL2 can be executed, the formal JVM model can run programs within the subset of the JVM supported. The model is called the ``defensive'' JVM (or dJVM) because it includes sufficient run-time checks to assure type-safe execution (or at least to detect and prevent any unsafe execution).
Eclipse: an Operating System with Quality of Service Support
Based on FreeBSD 3.4. From the Web page: Eclipse provides flexible and fine-grained Quality of Service (QoS) support for applications. Currently, Eclipse is being used to guarantee QoS to server applications, in particular, to differentiate the performance of different Web sites hosted on the same platform.
Ensemble
From the Web page: For a distributed systems researcher, Ensemble is a highly modular and reconfigurable toolkit. The high-level protocols provided to applications are really stacks of tiny protocol ``layers.'' These protocol layers each implement several simple properties: they are composed to provide sets of high-level properties, such as total ordering, security, virtual synchrony, and so on. Individual layers can be modified or rebuilt to experiment with new properties or change the performance characteristics of the system. This makes Ensemble a very flexible platform on which to do research.
The Fox Project
The Fox Project at CMU applies principles of programming languages to advance the art of systems building. The work of the project includes theoretical studies of programming languages and their properties, development of new compiler and run-time technology, and empirical studies of the application of advanced language techniques to real-world programming problems, especially in the areas of high-performance networks and operating systems.
Jaguar: Java Access to Generic Underlying Architectural Resources
From the Web page: Jaguar is an extension of the Java runtime environment which enables direct Java access to operating system and hardware resources, such as fast network interfaces, memory-mapped and programmed I/O, and specialized machine instruction sets. Jaguar can be thought of as a replacement for the Java Native Interface. Unlike the JNI, however, Jaguar does not require copying of data between the JVM and C code, nor expensive traversals between the Java and native code contexts.... Jaguar is being used by the UC Berkeley Ninja and Telegraph projects to build high-performance, scalable systems in Java.
The Jalapeño Project
From the Web page: Jalapeño is a virtual machine for Java servers written in Java. To be able to address the requirements of servers, performance and scalability in particular, Jalapeño was designed from scratch to be as self-sufficient as possible.
The JML Project
From the Web page: The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the approaches of Eiffel and Larch, with some elements of the refinement calculus.
Joust
From the Web page: Joust is a small, fast JavaOS implemented in Scout. It includes an efficient Java virtual machine and a Java JIT compiler developed by the Sumatra project.
Kanban
The Kanban group is (mostly) concerned with the technology and applications of ``just in time'' or ``dynamic'' compiler technology. For instance, they apply Self-style dynamic optimization techniques to the execution of Java programs.
NetScript
From the Web page: NetScript is a programming language and environment for building networked systems. Its programs are organized as mobile agents that are dispatched to remote systems and executed under local or remote control. The goal of NetScript is to simplify the development of networked systems and to enable their remote programming.
Network Systems Group
The Network Systems Group at Princeton University, who work on Scout, Joust, and other projects. From the Web page: We are interested in all aspects of networks and systems built around networks. Our research focuses on operating system support for network communication, end-to-end protocol design, and the construction of novel network services. Our approach is primarily experimental: we design, implement, measure, and evaluate network software and hardware. Originally a research group at the University of Arizona, we have now moved to Princeton University.
The PAN Project
From the Web page: Active networks face the serious challenge of needing to simultaneously address safety, security, and interoperability issues while still providing the high performance that today's networks demand. The PAN project aims at developing a prototype ``Practical Active Network'' that will eventually address all of these issues simultaneously. The current implementation of PAN focuses on providing a high performance testbed for experimenting with active networks. Safety, security, and interoperability issues are not yet fully addressed. However, they were kept in mind during the design and will addressed in a future version.
Pronto: Programmable Networks of Tomorrow
From the Web page: The Pronto project is motivated to offer differentiated network services using programmable commodity components. The research covers service paradigms for programmable networks, architecture for programmable network elements, examples of active network services and rapid service creation, and specific mechanisms needed to realize programmability. This project is driven by two major parts, Universal Messaging --- exploring rapid service creation and programmability of servers and clients, and the Pronto Router --- exploring router architectures and the programmable interface of programmable routers/switches.
The Safetynet Project
The Safe Language Kernel (SLK) Project
The Safe Language Kernel (SLK) project is exploring the use of safe language technology to provide protection within a single address space. The J-Kernel is an implementation in the context of Java of the ideas developed in the SLK project. The J-Kernel is a portable, Java-based system that extends the underlying Java Virtual Machine (JVM) to provide multiple protection domains as well as well-defined communication channels between the domains.
Secure Internet Programming
The Secure Internet Programming group is studying the security of widely-used Internet software, especially mobile code systems like Java, ActiveX, and JavaScript. They try to understand how security breaks down, and to develop technology to address the underlying causes of security problems.
Secure Internet Programming: Proof-Carrying Code
From the Web page: Proof-carrying code (PCC) is a promising new technology, developed in a proof-of-concept prototype by Necula and Lee. We propose to fully realize the ultimate impact of this technology by scaling it up to real programming languages, production compilers, and sophisticated security policies. We will pay particular attention to scalability, interoperability, efficiency, and the principled interaction of security policies with containment mechanisms.
SENCOMM: Smart Environment for Network Control, Monitoring, and Management
From the 1999 Project Summary Report to DARPA: The objective of the proposed research is to design and prototype a Smart Environment for Network Control, Monitoring, and Management (SENCOMM) that: responds to user, application and system operator specialized requests for custom network monitoring information; provides the capability to investigate dynamic and unplanned events by enabling flexible probes which can execute throughout the network and make local decisions; facilitates the automation of routine and repetitive tasks, moving people outside the network control loop; and dynamically installs specialized monitoring and control mechanisms in targeted network elements.
Smart Packets
From the Web page: BBN is developing a capability for packets to carry programs which are executed at each node the packet visits in the network. The programs implement extended diagnostic fuctionality in the network. To do this, BBN is developing a special language for programming Smart Packets called Sprocket. A complete Sprocket program will be encoded in either a single IPv4 or IPv6 datagram. Our goal is to fit an interesting program in an Ethernet-sized packet, which requires a very compact representation. Furthermore, the program will be authenticated before intrepretation and run-time limited during execution.
The Software Systems Generator Research Group (SSGRG)
The Software Systems Generator Research Group (SSGRG) is exploring ways in which software development can be automated, productivity increased, and software quality improved. Their work addresses the topics of: product-line architectures; software plug-and-play components; refactorings (automated applications of OO design patterns); and software generators.
The SwitchWare Project
Active Networks research underway at the University of Pennsylvania and Bellcore.
The Systems Software Research Group (SRG) at the University of Illinois at Urbana-Champaign
Among other things, this group has done work in security. Their Security Policy Representation Framework is a Java package that can be used to describe security policies to interpreter-based security policy decision functions in operating system kernels or in policy-enforcing applications.
The DARPA/ITO Tolerant Networking Program
The Tolerant Networking program develops ``focused technologies that support continued operation in the presence of successful attacks, particularly addressing vulnerabilities and issues expected to arise in DoD's emerging network-centric warfare vision. These include technologies for strengthening networks by introducing fault tolerance capabilities against possible attacks at the network level, emphasizing integrity and availability; and technologies for mitigating potential vulnerabilities associated with the dynamic creation and management of mission-driven coalitions.''


Free Software

Java 2 SDK
From the Web page: The Java 2 Platform... comprises the Java 2 SDK (formerly JDK 1.2) and Java 2 Runtime Environment.... Sun is making the Java 2 SDK source code available to the developer community as part of Sun's Community Source Licensing Program.
Kaffe: a free JVM
From the Kaffe Web page: Kaffe is a complete Java environment, written from scratch and free from all third party royalties and license restrictions. It comes with its own standard class libraries, native libraries, and a highly configurable virtual machine with a just-in-time (JIT) compiler for enhanced performance. Kaffe is available under the Open Source Initiative and comes with complete source code, distributed under the GNU Public License (GPL).
ElectricalFire: a JVM from The Mozilla Organization
From the Web page: ElectricalFire is a Java Virtual Machine that uses JIT compilation techniques to accelerate Java code execution. ElectricalFire was designed from the start to generate high-performance machine code and to be portable to many different processor architectures.
LaTTe: another free JVM
From the Web page: LaTTe is a virtual machine that executes Java bytecode. It includes a novel JIT compiler targeted to RISC machines (specifically the UltraSPARC). The JIT compiler generates RISC code of good quality through a clever mapping of Java stack operands to registers with a negligible overhead. Additionally, the runtime components of LaTTe, including thread synchronization, exception handling, and garbage collection, have been optimized. As a result, the performance of LaTTe is competitive to that of Sun's HotSpot and Sun's JDK 1.2 production release.
Open Runtime Platform (an open source JVM from Intel)
(See also the ORP mailing list.) From the Web page: To date, an open source research platform that allows interchangeable modules implementing Just-In-Time compilers (JIT's) and Garbage Collection (GC) has not been available to the academic research community. ORP, Open Runtime Platform, is an open source research infrastructure project that provides these features thus enabling the rapid evolution of systems research of dynamic compilation and memory management.
Jikes: a free Java-to-byceode compiler
The KOPI Project
From the Web page: KOPI contains a set of tools to edit and generate classfiles: dis (a Java disassembler), ksm (a Java assembler), and finally kjc. This is a compiler from Java source code to bytecode, which is robust and fully-functional, with all the the same plus even more features as commercial ones. kjc is available for free under the GNU Public License.
Jaguar: Java Access to Generic Underlying Architectural Resources
From the Web page: Jaguar is an extension of the Java runtime environment which enables direct Java access to operating system and hardware resources, such as fast network interfaces, memory-mapped and programmed I/O, and specialized machine instruction sets.
AspectJ
From the Web page: AspectJ is a simple aspect-oriented extension to the Java programming language. AspectJ enables the clean modularization of crosscutting concerns such as: design patterns, error checking and handling, synchronization constraints and performance optimizations.
JML: the Java Modeling Language
From the Web page: The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the approaches of Eiffel and Larch, with some elements of the refinement calculus.
Vortex
From the Web page: Vortex is a language-independent optimizing compiler infrastructure for object-oriented and other high-level languages, written entirely in Cecil. It primarily operates as a whole-program optimizer, performing aggressive analyses and optimizations given the whole program. It has front-ends for Cecil, Smalltalk, Java, C++, and Modula-3. These front-ends translate into the Vortex RTL intermediate language. Vortex produces either portable C++ code or SPARC assembly code.
GNU Classpath
From the Web page: The GNU Classpath project is a free software replacement for Sun's proprietary Java standard class libraries. Our goal is to provide a 100% compatible version of the class libraries so that free operating systems can run Java programs.
Cygnus' Tools for Java
Includes gcj, a Java source and bytecode front end for gcc.
The J-Kernel
The J-Kernel is a portable, Java-based system that extends the underlying Java Virtual Machine (JVM) to provide multiple protection domains as well as well-defined communication channels between the domains.
Echidna: a free multiprocess system in Java
From the Echinda Web page: Echidna is a class library which, with a reasonable degree of transparency, allows multiple ``processes'' to run inside a single Virtual Machine. Implemented entirely in Java, it lets you let all your objects live inside a single virtual machine, rather than spawning off a separate VM for each ``application.''
The Mozilla Open JVM Integration (OJI) Project
From the OJI Web page: The Open JVM Integration project (OJI) is working to extend the browser to allow Java virtual machines to be plugged into Mozilla.
Jakarta Tool Suite (JTS) 3.0beta1
From the Web page: JTS is a collection of Java-based compiler tools for: extending Java with new language constructs; building extensible domain-specific languages; and implementing GenVoca product-line architectures.
Mozart
Includes various ``little tools'' for dinking with Java source code: e.g., to implement assertions. From the Web page: For now, Mozart is an environment in which multiple development tools, including small and ``custom'' ones, can start exchanging program-related information in a unified format, either through persistent storage (files) or directly in memory. It currently supports Java, but the internal representation is largely language-neutral...
EPP: an extensible preprocessor for Java
SableCC: a compiler framework that generates compilers in Java
The Sable Research Group also offers Coffi, a bytecode parser, and Jimple, a bytecode manipulator.
BIT: a Bytecode Instrumenting Tool
A paper describing BIT was presented at USIT '97. Unfortunately, one must sign a nondisclosure agreement in order to get the BIT code.
JOIE: The Java Object Instrumentation Environment
JOIE is a toolkit and environment for Java for the load-time transformation of Java classes. A paper descibing JOIE was presented at USENIX '98.
Jopt, a Java Class File Optimizer
From the Web page: Jopt takes your Java Class Files (either single or packed in zip or jar archive) and optimizes them by: removing debug info; removing attributes that are unnecessary for execution; removing unused methods & fields; removing unused entries from the constant pool; optimizing the bytecode in different ways; optimizing the order of local variable slots; obfuscating private method and field names (usually shorter); compressing local variable slots; performing local variable live analysis; and performing constant expression analysis.
Wasp
Lint for Java, basically. From the Web page: Static error checker Wasp employs powerful data flow analysis to detect non-trivial run-time errors and weak points in your programs.
Ajax: an analyzer for Java code
(See links to Robert O'Callahan's thesis proposal, above.)
From the Web page: Ajax is an analyzer for Java code ``inspired by'' type inference with semiunification. One of its novel features is that it exposes an analysis-independent API for providing tools with semantic information about programs. This should help tool designers and program analysis gurus by letting them focus on what they're really interested in. The API even encompasses dynamic analysis (e.g., trace gathering).
BLOAT: the Bytecode-Level Optimizer and Analysis Tool
(From the Web page: BLOAT is Java bytecode optimizer written entirely in Java.... BLOAT performs many traditional program optimizations such as constant/copy propagation, constant folding and algebraic simplification, dead code elemination, and peephole optimizations. Additionally, it performs partial redundency elimination of arithmetic and field access paths.
Soot: a Java Optimization Framework
(From the Web page: Soot is a Java optimization framework. It provides three intermediate representations for analyzing and transforming Java bytecode: .... Soot can be used as a standalone tool to optimize or inspect class files, as well as a framework to develop optimizations or transformations on Java bytecode. Soot is free software and is licensed under the GNU Library General Public License.
Generic Java (GJ)
GJ is an extension of the Java programming language that supports generic types. Also available for download from http://www.cs.bell-labs.com/who/wadler/pizza/gj/, http://www.math.luc.edu/pizza/gj/, and http://wwwipd.ira.uka.de/~pizza/gj/.
The Spotless System: a JVM for the Palm connected Organizer
From the Web page: The Spotless system is an experimental Java system for the Palm Connected Organizer. It includes a JVM that supports the complete bytecode set and dynamic class loading, and class libraries and demo applications. Distributed under a special license.
Japhar: the Hungry Programmer's Java VM
JavaNCSS: a source measurement suite for Java
JavaNCSS is a simple command line utility that measures two standard source code metrics for the Java programming language: non-commented source statements (NCSS) and Cyclomatic Complexity (McCabe). The metrics are collected globally, for each class, and/or for each function.
Artistic Style: a source code formatter
(Was previously published at this location.) From the Web page: Artistic Style is a reindenter and reformatter of C++, C and Java source code.
DOC++: a documentation system for C, C++, and Java
From the announcement: DOC++ is a documentation system for C/C++ and Java, generating both LaTeX output for high quality hardcopies and HTML output for sophisticated online browsing of your documentation. The documentation is extracted directly from the C++ header or Java class files.
VCG: Visualization of Compiler Graphs
From the Web page: The VCG tool reads a textual and readable specification of a graph and visualizes the graph. If not all positions of nodes are fixed, the tool layouts the graph using several heuristics as reducing the number of crossings, minimizing the size of edges, centering of nodes.
Anetd: Active Networks Daemon
From the Web page: Anetd is an experimental daemon specifically designed to support the deployment, operation and control of active networks.
ANEP Socket
From the Web page: We provide here an implemenation of ANEP on top of IPv6 (and IPv4), for the Linux kernel. This work has been done in part of the Amarrage project, by the Resedas team of LORIA.
ANTS, an Active Node Transfer System
This is the original ANTS code from MIT. From the Web page: ANTS is a Java-based toolkit for experimenting with active networks. It provides a node runtime that can participate in an active network, and a protocol programming model that allows users to customize the forwarding of their packets.
ANTS
David Wetherall also keeps an ANTS page.
ASP EE
From the Web page: The ASP EE is essentially a user-mode operating system, providing services and resources to the AAs executing within it. These services are defined by the Protocol Programming Interface (PPI) that the EE presents to its AAs. Like the AAs, the ASP EE is written in Java. It does not use the capsule model, but instead fetches AA code out of band from the flow of active packets.
PAN, a prototype ``Practical Active Network''
From the Web page: The current implementation of PAN focuses on providing a high performance testbed for experimenting with active networks. Safety, security, and interoperability issues are not yet fully addressed. However, they were kept in mind during the design and will addressed in a future version.
Enhydra: a Java application server
The Click Modular Router
A ``router toolkit'' implemented in C++.
Netfilter: Packet Mangling for Linux 2.3+
From the Linux netfilter Hacking HOWTO: netfilter is a framework for packet mangling, outside the normal Berkeley socket interface. [E]ach protocol defines "hooks" (IPv4 defines 5) which are well-defined points in a packet's traversal of that protocol stack. At each of these points, the protocol will call the netfilter framework with the packet and the hook number. [P]arts of the kernel can register to listen to the different hooks for each protocol.... In addition to this raw framework, various modules have been written which provide functionality similar to previous (pre-netfilter) kernels, in particular, an extensible NAT system, and an extensible packet filtering system (iptables).
tcpdump
ALTQ: Alternate Queueing for FreeBSD
Supports CBQ, HFSC, RED, RIO, Blue, and WFQ, among other things. From the Web page: ALTQ provides queueing schemes required to realize resource-sharing and quality of service. The ALTQ release is intended to be a flexible platform to promote network research and gain field experience.
UCD-SNMP: Various Tools relating to SNMP
From the Web page: [UCD-SNMP includes] an extensible agent; an SNMP library; tools to request or set information from SNMP agents; tools to generate and handle SNMP traps; a version of the UNIX netstat command using SNMP; and a Tk/Perl MIB browser. This package was originally based on the Carnegie Mellon University SNMP implementation, but has been greatly enhanced, ported, fixed, made easier to use and barely resembles the original package anymore.
snmp-mode.el: SNMP Major Mode for GNU Emacs
(As of this writing, the version of snmp-mode.el referenced above is out of date with respect to the version of the package that is part of GNU Emacs 20.4.) This is a major mode for editing SNMP MIBs, both SNMPv1 and SNMPv2 (although at the moment there's not much extra for v2 available). See the author's Emacs page for more information.
libsmi: a library to access SMI MIB information
This is a library for writing SNMP managment applications (i.e., clients). The package includes a few sample clients: smilint, smidump, smiquery, and smistrip.
GxSNMP, the GNOME Network Management Application
OpenNMS: Free and Open Network Management Software
Various GUI tools for network management. From the Web pages: Using Java, C, C++, XML, XSL and ODBC, we are building a fully distributed network management platform allowing enterprise and element management capabilities in an open source structure.
Cheops: Network User Interface
A very pretty (GNOME-based) GUI tool for network management. From the Web pages: Cheops is an open source Network User Interface. It is designed to be the network equivalent of a Swiss-army knife, unifying your network utilities. Cheops does for the network what a file manager does for your filesystem.
SNMP Module for Apache 1.3.x
An example of an SNMP-aware application, with application-specific MIBs. See, for example, the APACHE-CONFIG-MIB.
DocWiz, ``The easiest way to add JavaDoc to your Java code''
From the Web page: DocWiz allows you to add JavaDoc comments to your source code easily. With DocWiz, there's no need to tediously hand-format JavaDoc comments, adding tags and comment structures for each method.
JDE: Java Development Environment for Emacs
From the Web page: The JDE is an Emacs Lisp package that interfaces Emacs to command-line Java development tools (for example, JavaSoft's JDK). JDE features include: JDE menu with compile, run, debug, build, browse, project, and help commands; syntax coloring; auto indentation; compile error to source links; source-level debugging; source code browsing; Makefile support; automatic code generation; and a Java source interpreter (Pat Neimeyer's BeanShell). The JDE supports both Emacs (Unix and Windows versions) and XEmacs.


Commercial Software

Inferno
From the Web page: Inferno is a new network operating system and programming environment to deliver content in a rich environment of heterogenous networks, clients and servers. The Inferno system includes the Inferno kernel, the Limbo programming language, reference APIs that include interfaces for networking and graphics, network protocols, security and authentication, and various toolkits.... Inferno customer support has been taken up by Vita Nuova and by Nippon Techno Lab.
AdventNet SNMP Release 3.0
From the Web page: AdventNet SNMP Release 3.0 is a set of Java tools for creating SNMP network management applets and applications. It includes class libraries and Java beans for Java SNMP development, as well as a complete MIB browser for interacting with SNMP enabled devices. The JavaBeans simplify SNMP programming, with SNMP-aware user interface components like tables, and RMI and CORBA support.


References and Documentation

Active Networks Architecture Documents
Links to copies of the DARPA Active Networks Program's archtecture documents, including:

Ken Calvert keeps a possibly more up-to-date set of AN documents.

The Composable Services for Active Networks document is available at the CANES project Web site.

I keep an (out-of-date) archive of some of the AN documents. (Local access only.)

Note that the Management of Active Networks document is not currently available from the DARPA AN Program Web pages, for some reason.

ANANA: Active Networks Assigned Number Authority
Assigned IP numbers, UDP ports, ANEP identifiers, and so on.
Introduction to the ABone
Steve Berson, Bob Braden, and Livio Riculli. A general introduction to the Abone for prospective users and node administrators. Also available in PDF.
ABone Registry
From the Web page: As part of its administrative responsibilities, ABOCC maintains a central registry of ABone users and nodes. The ABone registry serves two main purposes: to maintain contact information for ABone users (EE developers) and node administrators, and to maintain ABone access control information that is distributed to all ABone core nodes and governs who may use the ABone and what operations are permissible for each user.
Troubleshooting the ABone
From the Web page: This document is intended to assist when troubleshooting the the ABone, both ABone-specific hardware and software (Anetd), and EEs running on the ABone.
The Network I/O Daemon --- netiod
On Oct 1 2000, Bob Braden announced: ``In preparation for next week's meeting at SRI, we are making available a (probably premature!) draft specification document on netiod, the network I/O daemon we have talked about. You can think of this is a Unix translation of the NodeOS channel abstraction.''
Running ANTS on the ABone
From the Web page: This document contains information for installing ANTS on the ABone active networks testbed.
Anetd Protocol Specification
From the Web page: This document specifies both the protocol flows and the data formats and the commands used to control the Active Networks Daemon (Anetd).
ANEP: Active Network Encapsulation Protocol
From the Web page: ANEP specifies a mechanism for encapsulating Active Network frames for transmission over different media. The suggested format allows use of an existing network infrastructure (such as IP [RFC791] or IPv6 [RFC1883]) or transmission over the link layer. In order to support ongoing research, the proposed mechanism is as generic and extensible as possible. This mechanism allows co-existence of different execution environments and proper demultiplexing of received packets.
Internet Draft <draft-sdalu-anep-ipv6-00.txt> (ANEP for IPv6)
From the document: This document specifies some extensions to the Active Network Encapsulation Protocol (ANEP) when it is used over IPv6 [RFC1883].
IEEE P1520: Proposed IEEE Standard for Application Programming Interfaces for Networks
Pointers to work on packet queuing research:
Internet Engineering Standards Repository (searchable)
SNMP-Related RFCs
Simpler and More Secure Architectures for SNMPv3
Published as an Internet Draft.
SMIng: A New Structure of Management Information
Published as an Internet Draft, in text and HTML forms.
Internet Assigned Numbers
ASN.1: Communication Between Heterogeneous Systems by Olivier Dubuisson
The text of this book is online. From the Web page: ASN.1 was in great need of a reference textbook, didactic as well as precise and Olivier Dubuisson's texbook meet these demands. The language is comprehensively described from its basic constructions to the latest additions to the notation.
Securing Java
The Web edition of the book Securing Java by Gary McGraw and Ed Felten, published by John Wiley and Sons, Inc.
Java(tm) IDL
Java Beans - Component APIs for Java
Java Remote Method Invocation (RMI) and Object Serialization
The Evolution of Numerical Computing in Java
A preliminary proposal by James Gosling for improvements to Java for dealing with high performance numerical computing. Includes a proposal for immutable classes.
Various links about Real-Time Java
The Memory Management Reference
From the Web page: ...a resource for everyone interested in memory management and garbage collection.
Bibliographies about gabage collection


Lists

DARPA Active Nets Mailing List Archives, including:
Messages since August 1999: Messages prior to August 1999:
Operating Systems Project Information
A meta-index of Internet Compiler Resources
The comp.compilers newsgroup archives
Java Analysis, Optimization and Implementation References