Memo
To:	Java Grande Forum
From:	George K. Thiruvathukal
Date:	02/05/99
Re:	Burlington Meeting
The Java Grande Forum Working Group on Concurrency and Applications (JGFWGCA) met on February 4-5, 1999, at Sun Microsystems in Burlington, Massachusetts to meet with key Sun personnel who could address the issues presented in our report. Key JGF members were in attendance, including Denis Caromel, Geoffrey Fox, Dennis Gannon, Gregor von Laszewski, Siamak Hassanzadeh, Piyush Mehrotra, Michael Phillippsen, Roldan Pozo, George Thiruvathukal, and Martin Westhead.
During the first day of the meeting, Guy Steele met with the working group to discuss language issues and Anne Wolrath to discuss Remote Method Invocation. On the second day, Ken Arnold discussed the key principles and business model of Jini technology.
The following is a summary of feedback we have received from Sun:
·	Generic classes and operator overloading likely to happen soon.
·	Lightweight classes are still being studied but are generally viewed positively and as useful.
·	Floating point issues (first part of report) such as fused multiply/add are not being viewed postively at this time.
The above feedback is discussed in the meeting notes below, along with other issues that were discussed during the two-day meeting.
 Guy Steele
·	We opened with a discussion of the issues surrounding Java language evolution and not wanting to become another HPF
·	Instead of building everything into language you want to build facilities for library implementation. The idea is to provide ``meta-facilities'' for language implementation.
·	We briefly discussed Guy Steele's "Growing Your Language" talk at OOPSLA. 
·	There was a discussion of the community open source licensing, where the community can submit ideas for consideration by experimenting with the source code. If an idea is good, Sun can use it. Unlike the GNU Public License, Sun would be able to claim rights to any contribution and profit from it.
·	We discussed the basic language proposals that were proposed in part one of the JGF Report: operator overloading, lightweight classes, and floating point. Guy Steele was only able to comment on the issues of operator overloading and lightweight classes. Regarding operator overloading, Guy offered great insight into many of the problems that arise from supporting the principle in an object language, in particular, in the presence of primitive types that appear on the left hand side. GKT commented on how the Python language (another popular object language) supports operator overloading via syntactic hooks and special forms for reverse binary operations as described by Guy Steele. The discussion of lightweight classes was basically in agreement with our proposal, where we forbid interface references to lightweight objects. We had a brief discussion of Complex. IBM and Karlsruhe are doing work to build Complex into their Java compilers.
·	We discussed the process of submitting proposals to the Technical Review Committee. Sun has an internal committee consisting of some 10-12 key people. The committee considers proposals and, if they approve a particular proposal, the proposal is circulated among licencees for review. If the licensees approve, a public review of the proposal is solicited.
·	The process, admittedly, was discussed as not being a truly open process. The committee may choose to cut off an idea quickly and without explanation. The argument for much of this is that a large user base exists for Java and changes may have pervasive impact. Java still ascribes to the "write once, run anywhere" principle, and for various business and possible legal reasons, it is important to preserve this.
·	The discussion of the TRC process bounced back and forth with the discussion of the new community open source licensing. There seem to be a couple of operating principles: people can use, play, research, and experiment freely with Java source; however, if they want to make money off of their efforts, Sun should get a cut. 
·	An open issue remained how to actually make a formal proposal to the TRC. Greg Lindahl (?) was to be contacted, possibly, by Sia.
·	Geoffrey Fox raised a key issue of timeframe. There appears to be a credibility gap when it comes to Java. The powers that be in the scientific community are not yet convinced about Java. They might remain skeptical for years to come. There needs to be confidence compilation issues will allow performance to be achieved that is comparable to other natively compiled codes in languages such as F77, C, and their dialects.
·	We talked about some of the issues from the numerics part of the proposal. We spent some time on the strictfp vs. widefp issue. Lindholm and Steele supposedly spent three months working on this proposal. There was some internal decision at some level that supposedly explains the rationale for the floating point of JDK 1.2 but was not discussed in any kind of detail and thus cannot be discussed here.
·	Guy Steele has arranged for copies of the proposal to be given to the TRC.
·	We discussed other issues such as higher-dimensional array processing and triplet notation.
Afternoon Session
·	We spent time talking about the "experience" of providing feedback to Sun. A general perception among JGF members is that there really hasn't been feedback per se, since we have not received any commentary on our report directly or indirectly. 
·	We spent some time talking about things people at SC 98 wanted for next year. Not surprisingly, they want more Java. People want to see more panels and tutorials, according to Sia, who has an advisory role on this years SC edition.
Anne Wolrath and RMI
·	We began by discussing the present development effort of RMI. It is mostly in the hands of a small group of just a few people. For some time, as many of us knew already, Serialization was in the hands of a different group. Now it has been reunited with the RMI effort.
·	Anne began by informing us that the RMI team has work in progress to address many of our concerns. They are addressing many issues:
1. providing hooks for the exchange of descriptor information
2. as for allowing a buffer to exposed during externalization (for Externalizables), this presents security problems and causes objects to "lose their invariance" when encoding a stream. 
3. a new RMI is in the works (which is, of course, proprietary information) that has a three-layer model, which apparently gives objects more control of marashalling and may allow us to get rid of 'rmic'. (Interestingly, these ideas have been introduced in the three Java '98 papers by GKT, MP, and DG.) The three layers are (not exactly bearing titles, since it is not designed nor implemented yet) remote reference, protocol, and transport. 
·	There was an unusual discussion of Futures. A case was presented that futures present problems with "fault tolerance". It is not clear RMI addresses fault tolerance in any way now, especially considering the registry design.
Anne had to scamper off to a meeting. We ended here.
Benchmarking
·	Martin Westhead presented a paper he submitted on benchmarking for our review. He is wanting feedback. We will link his resources to the web site shortly.
Some Future (and now Past) Plans
2/15-2/16, Datorr
2/24-2/26, Sun ERC Symposium
3/8, Numerics Meeting
4/12, IPPS Workshop on Java, Puerto Rico
4/12, HPCN Workshop on Java, Amsterdam
4/27-4/29, Java European Symposium, Paris
4/30, Some Education Thing I missed (?)
6/14-18, Java One
6/12-13, Java Grande 1999
Some Miscellaneous To-Dos/Issues
JavaOne Booth
Tutorials at SC 99. We talked about a Grande Tutorial. GKT has a tutorial on Java concurrency already developed.
Ken Arnold, Jini Technology Overview
Ken gave an excellent overview of Jini technology. This talk was not really aimed at addressing our report directly but rather to present the technology.
This talk was organized as a collection of slides:
Slide 1: Key Ideas of Jini
Slide 2: Enabling ideas of Java
Slide 3: Spontaneous Networking
Slide 4: Registration. This part went into details about the lookup service, multicast and downloading of "driver" code.
Slide 5: Using the Lookup Service. This slide clarified the role of RMI in all of this. As it turns out, RMI is primarily used to propagate exceptions using the "RemoteException" framework. We had some discussioon about JNDI. It's not part of the directory service as defined in Jini. It could be, but JNDI has a different scope, being more of an access layer, not an implementation layer. We discussed the scalability of the lookup service. From the overall discussion, it seems to be aimed at workgroups. There are forwarding features to enable larger-scale possibilities, though this was not fully explained.
Jini is distributed under the Sun community open source licensing model. There are details about this model on the Sun site; I have verified it.
Slide 6: Finding Services
Slide 7: Federated vs. Central Control
Slide 8: Service Architectures
Slide 9: Legacy Services
Slide 10: The Future of Jini
There was a discussion of work going on in our community that might be of interest to the Jini people. We talked briefly about Information Power Grid, Datorr, Globus, etc. Jini seems to be aimed at a different community. Everyone might want to take a look at the article I forwarded on spontaneous networking vs. Universal Plug-n-Play. Nonetheless, many people expressed interest in exploring Jini for our various projects.