Online Sample Chapter
JINI Architecture Overview
Table of Contents
(NOTE: Each chapter concludes with Summing Up.)
Preface.
Who Should Read This Book. How This Book Is Organized. Acknowledgments.
1. Jini: An Overview. Why Jini? Local Computing versus Distributed Computing. Distributed Computing Programming Model. Problems with Current Distributed Architectures. Jini Assumptions and Limitations. The Market for Jini. Where Jini Is Heading.
2. Architecture Overview. Vision and Goals for Jini. System Assumptions. System Architecture. System Components. System Service Architectur.
3. Architectural Infrastructure Components. Lookup Service Component. Discovery Protocol Component. Join Protocol Component. Security Component. RMI Environment Component.
4. Architectural Programming Model Components. Leasing Interface. Event Notification Interface. Transaction Interface.
5. Architectural Service Components. JavaSpaces Service. Transaction Service. Lookup Service. Lookup Discovery Service. Lease Renewal Service. Event Mailbox Service.
6. Jini at Work: Putting It Together. djinn: The Jini Community. Working Details.
7. Jini: A Service Network. Service Provider versus Service Requester. Devices as Services. Software Components as Services. Commercial Device and Software Component Implementation in the Market.
8. Jini and Other Java Technologies. Jini and Java Remote Method Invocation. Jini and JavaBeans. Jini and Enterprise JavaBeans. Jini and Java 2 Enterprise Edition.
9. Jini and Other Distributed Technologies. Jini and Common Object Request Broker Architecture. Jini and the Distributed Component Object Model. Jini and DNA/.NET. Jini and TSpaces Services Suite.
10. Jini and Other Competing Technologies. Jini and Universal Plug and Play. Jini and JetSend. Jini and Chai. Jini and e-Speak. Jini and CoolTown. Jini and Bluetooth Technology. Jini and UDDI-Based Service Webs.
11. Looking into the Future: Next-Generation Distributed Computing and Jini. Predicting the Future of Distributed Computing. Requirements for the Distributed System of the Future. Jini as the Next-Generation Dynamic Distributed Systems Architecture. What Is Next for Jini.
12. Adopting Jini in Your Organization. Sun Community Source Licensing Model. Jini Community Organization and Processes. Jini Technology Starter Kit. Jini Technology Core Platform Compatibility Kit. Time to Say Good-Bye.
Index.
Preface
Preface
The 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 service
To sum up, the limitations of the current distributed architectures are glaringly obvious.
Jini, a true service-based architecture, provides a solution for the evolving 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 Book
The book is intended for the following audiences:
- Executives, strategists, investors, technology managers, IT architects, and IT consultants who are responsible for evaluating alternate technologies and for 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 Organized
Chapter 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 aspects 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