Jini and Distributed Computing Seminar
A Coached Programming Experience taught by Bill Venners, hosted
by Bruce Eckel
If you have a team of Java programmers who want to come up to speed on
distributed computing with Java in general, and using mobile objects in
distributed systems with RMI and Jini in particular, this seminar is for you.
This course will take you through java.io's I/O streams,
socket-based network programming with java.net, and
remote method invocation and dynamic code downloading with RMI, using
JavaSpaces, the Jini lookup service, and Jini programming model. A special
emphasis is placed on understanding the advantages and disadvantages of using
mobile objects (RMI stubs, Jini service objects, etc.) in your distributed
system designs.
The first 2.5 days of the workshop
will alternate between lectures and hands-on projects.
Each hands-on project will build on the previous one, in
the end yielding a working Jini service (with a
Swing-based graphical user interface) and client. The
service will register itself in a Jini lookup service via
the processes of discovery and join.
The client, through the processes of discovery
and lookup, will locate and download the service
item and instantiate a Swing-based user interface that
enables the user to interact with the service. The
project will exercise the Jini APIs that perform discovery,
join, and lookup, as well as the APIs
that support distributed leasing and events.
The final 2.5 days of the workshop will be an intensive code fest, in which
the attendees will build working Jini services and clients that will interact
with each other. Attendees will select a project from among a list of
possibilities, including:
- A Jini lookup service browser DynamicPlace Service
- Jython Alarm Clock Service
- Tic-Tac-Toe...Checkers...Chess Services
- Tetris Service
- JXTA Shell service
- Simple Text Editor Service
- ZoomPlace Service
- LifeStreamsPlace Service
- Place Service with smoothly resizable icons a la OS X
- A Place Service that uses IconUIs
- Audio JukeBox Service
- Video JukeBox Service
- WhiteBoard Service
- Telephone Service
- Conference Call Service
Prerequisites:
Implementation experience with Java.
Thinking in Java, Bruce Eckel ($31.96 from Amazon)
or
Bruce Eckel's Hands-On Java CD ($50 from
MindView)
In particular, you need some experience writing graphical user interfaces
with AWT or, preferably, Swing.
Recommended Reading (before the seminar):
There isn't much written on Jini yet, aside from the specifications. I'd
recommend you read as much of the specifications as you can, as well as browsing
the links to Jini resources listed at:
http://www.artima.com/jini/resources/index.html
You can get an introduction to Jini at Bill Venners' web site on his Jini
pages (and also, find out about Bill). The home Jini page is:
http://www.artima.com/jini/index.ht
ml
There's a Jini FAQ at:
http://www.artima.com/jini/faq.html
An introduction to Jini is at:
http://www.artima.com/objectsjini/introJini.html
What you should bring:
Your notebook computer running Windows95/98 or Windows NT
The JDK1.2 development environent installed and tested on your computer
A network card and a twisted pair interface ("10-Base-T": the one
that looks like a wide phone jack). (We will supply the server, the network hub
and the cables.)
Make sure you have a working web browser on your computer
Bring your Windows95/98/NT CD (your computer may already have the contents
of the CD on the hard disk). This is necessary because you'll probably need to
change your network settings in order to network to our server, and sometimes
Windows wants the CD for these reconfigurations.