Jini Technology: An Overview
Authors: Ilango Kumaran, S. Ilango Kumaran
Venue:  (2001)

From the Book:PrefaceThe growth of networks and the Internet has resulted in a new set of requirements for architecting software applications. The evolution of distributed and network-based architectures such as OSFDCE, CORBA, DCOM, RMI, and HTTP/SOAP-based Web services demonstrates the continual change in distributed architecture requirements. With processors and memory becoming cheaper, a redefinition of the "computing device" is on the horizon. Computation is set to become more pervasive, ubiquitous, and mobile. Computer networks are becoming much faster and more reliable. Future networks are going to be dynamic, self-forming, and self-managed. Are current distributed architectures ready to satisfy the upcoming ubiquitous, pervasive, and dynamic distributed computing requirements? The answer is, unfortunately, NO! The current distributed architectures such as CORBA, DCOM, RMI, and HTTP/SOAP-based Web services suffer from the following limitations: They are location specific (i.e., a client must be prewired with the location of the naming/directory service) They are protocol dependent (i.e., a client and server can communicate only through previously agreed-upon protocols such as IIOP, ORPC, JRMP, and HTTP/SOAP) They are tightly coupled (i.e., a client should be modified/upgraded whenever the service provider's interface changes) They do not support the notion of dynamic community formation and do not accept the notion of a device providing a serviceTo sum up, the limitations of the current distributed architectures are glaringly obvious. Jini, a true service-based architecture, provides a solution for theevolving ubiquitous, pervasive, and dynamic distributed computing requirements. It abstracts both the devices and software under a service notion and supports dynamic community formation and dissolution. Jini technology is Location independent (i.e., a service requester need not be prewired with the lookup service location information) Protocol independent (i.e., a service requester can interact with any type of service provider using appropriate protocols such as IIOP, ORPC, JRMP, HTTP/SOAP) Loosely coupled (i.e., a service requester can discover the service provider's interface at run-time) Dynamic and self-managed (i.e., the entire community is self-formed and self-managed at run-time)In short, Jini is a true dynamic, distributed service-based architecture. This book discusses the limitations of the current distributed architectures and the requirements of future distributed computing. It evaluates Jini's suitability for future distributed computing needs. In this process, the book delves into the complete architectural details of Jini, its components, and its interoperability with other Java technologies such as JavaBeans, EJB, J2EE, and RMI; other distributed computing technologies such as CORBA, DCOM, DNA/.NET, TSpaces Services Suite, UDDI/HTTP/SOAP-based Web services; and other competing and related technologies such as UPnP, e-Speak, JetSend, Chai, CoolTown, and Bluetooth.Who Should Read This BookThe book is intended for the following audiences: Executives, strategists, investors, technology managers, IT architects, and IT consultants who are responsible for evaluating alternate tech making technology-related decisions. Senior and junior software component designers who are involved with design, development, and integration of software components for distributed enterprise applications. Java developers who are interested in knowing the capabilities and limitations of Jini technology.How This Book Is OrganizedChapter 1 discusses the issues and limitations of the current distributed computing architectures and provides a high-level overview of Jini technology-the need for this technology, the technology components, myths about this technology, the technology's competitors and direction.Chapter 2 provides a closer look at Jini's architecture-its vision, assumptions, and components.Chapters 3, 4, and 5 delve into Jini's architectural component details-infrastructure, programming model, and service components. Chapter 3 covers lookup service, discovery protocol, join protocol, security component, and RMI environment component. Chapter 4 covers leasing, distributed event-notification, and distributed transaction. Chapter 5 discusses JavaSpaces, Jini Transaction Manager service, lookup service, lookup discovery, lease renewal, and event mailbox services. Discussion of each component begins with a conceptual introduction-highlighting the need for the component, its general working, and its similarities with and differences from other related concepts. (For example, the discussion of lookup service component starts with naming/directory services.) The conceptual introduction is then followed by a component-specific introduction (e.g., introduction about lookup service component). The discussion then moves into more detailed of the component-the structural elements that make up the component, the component interfaces, the component exceptions, and the component usage. Chapter 6 discusses the steps involved in forming a dynamic distributed community using Jini's architectural components. This chapter discusses the minimum component requirement to form a Jini community and elaborates the basic community interaction scenarios, such as dynamic discovery, dynamic self-registration, dynamic self-configuration, self-management, and partial failure management.Chapter 7 discusses the scope of service abstraction within Jini architecture. This chapter discusses the minimum requirements for a software component or a device to join a Jini community. This chapter also provides a peek into surrogate architecture and provides strategies to Jini-enable low-capacity devices (devices with no processor or memory or network capability).Chapters 8, 9, and 10 discuss the similarities and differences among Jini and other widely used technologies. In Chapter 8, Jini is positioned with respect to other Java technologies such as RMI, JavaBeans, EJB, and J2EE. In Chapter 9, Jini is positioned with respect to distributed technologies such as CORBA, DCOM/COM+, Microsoft DNA/.NET, and TSpaces Services Suite, and UDDI/HTTP/SOAP-based Web services. In Chapter 10, Jini is positioned with respect to competing and related technologies such as UPnP, JetSend, Chai, e-Speak, CoolTown, and Bluetooth. Each section of these chapters provides design strategies that can be adopted to collaborate the discussed technology with Jini technology.Chapter 11 discusses the future of distributed computing. It begins with a rationalistic prediction, its requirements, and evolving solution models. Jini is then evaluated and assessed against these identified requirements. This chapter summarizes the various challenges faced by Jini (as of this writing) and Sun's efforts to overcome them. It concludes with some stories of Jini's success.Chapter 12 provides the information that you should know before adopting Jini in your organization. It covers the Sun Community Source Licensing (SCSL), Jini community organization, and Jini community process. It provides a simple introduction to the Jini Technology Starter Kit (JTSK 1.1) and Jini Technology Core Platform Compatibility Kit (Jini TCK).Throughout the book you'll find sidebars that supplement the text: Question: answers frequently asked questions Technology Primer: provides a quick introduction to specific technologies Technology to Watch: alerts the reader to possible changes in the concepts and assumptions discussed