Core JINI

  • Authors:
  • W. Keith Edwards;Bill Joy;Brian Murphy

  • Affiliations:
  • -;-;-

  • Venue:
  • Core JINI
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

From the Book:Much of the early history of the Jini technology has been documented and, at least anecdotally, is well known. Most people who have followed the evolution of this technology over the past six to twelve months know that Bill Joy provided the inspiration and initial direction, and that Jim Waldo - as lead architect - is the creator; without whom this truly revolutionary technology would not exist. Most people also know that the work on which the Jini technology is based began within Sun Microsystems Laboratories at Sun's east coast facility just outside Boston. While with "the labs," Jim Waldo ran the Large Scale Distribution research project and, along with Ann Wollrath, Peter Jones and Ken Arnold, investigated and developed some of the key Jini concepts. The concepts developed in those early days, concepts such as leasing, distributed events and lightweight transactions, addressed issues in the field of distributed computing in a way that was contrary to the standard approach of attempting to hide distinctions between local and remote systems (sadly for some, this is still the standard approach). The team of Waldo, Wollrath, Jones and Arnold made up the kernel of the Jini engineering team. The team eventually moved from the labs into the JavaSoft product group where they began to investigate how a language-centric approach could be applied to the distributed computing concepts developed in the labs. As a result of this collaboration, Ann Wollrath created Java RMI which has become one of the most interesting and useful components in the Java language; and Ken Arnold created JavaSpaces technology as well as having begun work on what would become the Jinilightweight transaction model. What people probably don't know about the early history of the Jini technology is that when Bill Joy asked the team to expand their prior work to design a new platform for distributed computing, the team as moved out of JavaSoft in order to provide insulation from the kind of large company politics that can kill a new and radical idea. As a matter of fact, the Jini project actually began life in Sun Microsystems' Human Resources division! It was at about this time that Bob Scheifler (of X Consortium fame), Bryan O'Sullivan and Mark Hodapp joined the Jini team as architects and manager respectively. These individuals provided the missing pieces necessary for the project to continue to grow and thrive. The team eventually grew to include about fifteen development engineers. To this day, the development team here on the east coast remains small, focused and highly productive. The Jini team is made up of some of the finest people and brightest minds I have ever had the pleasure of knowing. Until the summer of 1998, very few people - both internal and external to Sun - were aware of the existence of the Jini project. Just as with the Java language, there were moments where the future of the project was tentative at best, the project owes a debt of gratitude to Bill Joy and Mike Clary, both of whom put their professional reputations on the line to fight for the project's survival. Ultimately, the project survived because of these individuals, and because of the dedication of the team and the vision of Sun's CEO, Scott McNealy. The Jini project once again demonstrates Sun's ability to think and act in revolutionary ways. Where other companies could never allow themselves to move beyond the safety of the status quo, Sun continues to shatter it. Just as the now legendary story tells how the Java language (known as Oak at that time) was one demo away from cancellation. The project was only able to do so because the culture established within Sun allows - even encourages - such things. You should note that the Jini technology is radical not only in its technical design, but also in its business model. The concept of the Sun Community Source License (SCSL - pronounced "scuzzle") originated within the Jini project. Although some might say this move was not bold enough, placing a key technology under community source requires great vision and courage, especially when such an action represents a move away from the safety of traditional models. The SCSL represents a move away from the safety of traditional models. The SCSL represents a "call to arms" within the developer community. Through the SCSL, anyone can participate in the growth and evolution of the Jini technology. I joined the Jini project in 1997. At that time, I was designing and implementing middleware for a fairly large telco-based distributed system at another company. The project was exciting and the work environment was one of the best I had ever experienced. When I was contacted about the possibility of joining the Jini development team, the Jini project was in its infancy and its future was still in doubt. Although the project's status might have made some people question the prudence of joining a project with such an uncertain future, five minutes into the description of the Jini vision, I knew this is where I wanted to be. I remember thinking to myself (with apologies to Jon Landau and Bruce Springsteen), "I've seen the future of software, and it's name is Jini." The concepts being described to me, even at that early stage (and even though they were being presented by a manager!), were so elegant and so compelling that I knew this was the opportunity to be a part of something that could change the world. When I was approached about reviewing this book, my first reaction was reluctance. A book review is certainly a lot of work. But more importantly, when a new technology gains notoriety, it is not uncommon for many poor quality texts attempting to "cash in" on the popularity of the latest "hot" technology to begin to appear. I thought this text might possibly be in that category. When I learned that not only was this book to be part of Prentice Hall's respected "Core" series, but also that the author was Keith Edwards of Xerox's Palo Alto Research Center (PARC), I began to understand that this book had potential to be something special. To my delight, I was not disappointed! Keith Edwards clearly understands the concepts behind the Jini technology. He has thoroughly analyzed the Jini specifications and presents the designs reflected in those specifications in a way that will be accessible to the beginner as well as the hardened veteran. Keith also presents an accurate description of the Jini philosophy on distributed computing, emphasizing the difference between local and remote systems; a description that remains true to the intent of the Jini architects. Keith's explanations of key concepts such as discovery, lookup, leasing, distributed events and transactions are excellent, and even the experienced reader will benefit from them. The text covers everything you need to know to build clients and services that run in a Jini environment and which must behave as good "Jini citizens." The explanations are thorough and easy to follow, and are supplemented with example code that accurately demonstrates all the important concepts. Although much of the publicity surrounding the Jini technology emphasizes the role of devices in a Jini environment, Keith stresses through his well-written explanations and examples that the power of this technology can be applied to the enterprise as well as to devices. Thus, whether you are a beginner or an experienced Java programmer, whether your world involves devices or software services for the enterprise, this book will help you gain a thorough understanding of this new and exciting technology. Jump in and have fun as Keith introduces you to a radically new way to build distributed systems. Brian Murphy Sun Microsystems Burlington, Massachusetts June 1999 Twenty years ago I was a student at U.C. Berkeley, working on what would become a popular version of the UNIX operating system. At the time computers were most frequently used by professionals, and had software that was relevant to this use. In the last twenty years we have seen the emergence of the personal computer, with much wider use, but the complexity of the systems today exceeded the professional systems of twenty years ago, creating untold frustration. A better way of constructing new systems is needed, to reduce this frustration and better match the computing devices to human uses. Almost a decade ago I came across a book by Jacques Attali called Lignes d'Horizon. A colleague, John Gage, and I were traveling a lot together, and John was translating this book from French to English for his personal use. In this book we found great speculations about the computing world of the future, the idea of "nomadic computing," and we saw a linkage between these concepts and our desire for simpler, more reliable, and more human-centered computing. This set us off toward the design of a new computing substrate for the imagined future world of nomadic devices and pervasive embedded computing. Hence Jini. Jini leverages the Java programming language to provide a simple substrate for distributed computing. Distributed computing is different, mostly because partial failures occur. If we don't handle failure, distributed systems paradoxically become less reliable as they get larger, rather than more reliable as the existence of redundant parts would suggest. Jini provides the tools for dealing with this and for dealing with the limited bandwidth and latency inherent in distributed computation. The computing world of the future is a connected world, where "The Network is the Computer®." Java brings reliable object-oriented programming to the network. Its rapid rise reflects the power of objects to structure software, and the additional reliability and productivity that results from its modern design. Jini extends Java's benefits to distributed applications, which are structured as a set of communicating Java applications without requiring complicated underlying operating systems to be understood to understand the meaning of a distributed program. Because Jini is simple, we can teach it, and the principles of distributed programming, to Java programmers in just a few days. By learning about the Jini philosophy, the uses of remote objects, leasing, distributed events and transactions you will be learning about both the essential elements of Jini and some basic principles of distributed programming. Core Jini will aid both the student, the professional programmer writing a production application, and those curious about this new approach and new basic platform for distributed computing. Bill Joy Aspen, Colorado June 1999