In this article, we've given you a peek at Jini's transaction model and explained specifically its use in the context of JavaSpaces. Jini transactions provide a general and powerful model for building robust distributed applications, particularly apps that need to operate safely and correctly in the presence of partial failure. While our examples used multiple transaction participants that all happened to be JavaSpace services, since Jini transactions are general you could just as easily perform operations on other Jini services under the same transactions. In addition, if you are creating Jini services, your service can implement the TransactionParticipant API to be a willing participant in distributed transactions. For further study, we refer you to the resources below.
About the Authors
Dr. Eric Freeman is currently a director of engineering at Disney's Go.com and a fellow at Yale's Center for Internet Studies. Eric recently coauthored JavaSpaces Principles, Patterns, and Practice, the official Sun Microsystems Jini Series book on JavaSpaces, along with Susanne Hupfer and Ken Arnold. Previously, Eric was CTO at Mirror Worlds Technologies, which builds products based on his work with David Gelernter at Yale University.
Dr. Susanne Hupfer is director of product development for Mirror Worlds Technologies, a Java- and Jini-based software applications company, and a research affiliate in the Department of Computer Science at Yale University, where she completed her PhD in space-based systems and distributed computing. Previously, she taught Java network programming as an assistant professor of computer science at Trinity College. Susanne coauthored the Sun Microsystems book JavaSpaces Principles, Patterns, and Practice.
For a more in-depth exploration of space-based programming concepts and code examples, as well as a detailed look at the JavaSpaces technology APIs, refer to Sun's official Jini Technology Series book, JavaSpaces Principles, Patterns, and Practice, Eric Freeman, Susanne Hupfer, and Ken Arnold (Addison-Wesley, 1999): http://www.amazon.com/exec/obidos/ASIN/0201309556
You may wish to experiment with the code from JavaSpaces Principles, Patterns, and Practice, which is downloadable from the book's Website: http://java.sun.com/docs/books/jini
For specifics on Jini Transactions, see The Jini Specification, another Jini Technology Series book, by Ken Arnold, Bryan O'Sullivan, Robert W. Scheifler, Jim Waldo, and Ann Wollrath (Addison-Wesley, 1999): http://www.amazon.com/exec/obidos/ASIN/0201616343
You'll also find more information on Jini transactions in Core Jini, W. Keith Edwards (Prentice-Hall, 1999). It provides in-depth treatment of Jini, including information about lookup and discovery: http://www.amazon.com/exec/obidos/ASIN/013014469X
Whether you wish to share information with other developers (including the Sun engineers that developed the Jini and JavaSpaces technologies) or you seek troubleshooting advice, the official JavaSpaces-users mailing list is the place to go: http://archives.java.sun.com/archives/javaspaces-users.html
TechDispatch sends out a weekly Jini Advisor newsletter, written by Eric Freeman, that covers many of the nuances of Jini and JavaSpaces technology (past topics have included codebase, leasing, and transactions). To subscribe, visit: http://www.techdispatch.com