6th JCM Sessions
From Jini.org
Application of Jini Technologies to Naval Warfare Systems: An Update
John Bagley, Raytheon
Modern naval combatants and warfare systems are placing an ever-increasing emphasis on information availability and operational flexibility. This presentation will address Raytheon's motivation for adopting Jini technology, our experiences with applying this technology to our business domain.
Applying Davis Design Principles to the Jini Technology Starter Kit
Mike Warres, John McClain and, Brian Murphy Sun Microsystems
This talk will discuss some of the design principles currently under consideration for the Davis project, which govern how the new security and configuration mechanisms previewed in the Overture releases will be applied to the services and utilities in the Jini Starter Kit. Component to be discussed will include Reggie, Outrigger and some of the helper utilities.
Boost your Startup and Stayup Power by Using the Java Activation Framework for Jini Services (and Clients)
Susan Schnatterly, Lockheed Martin
When building a large system of Jini servers and clients, keeping the system up and running is a significant challenge. In fact, just starting the system can be a handful. One way to simplify startup and add fault tolerance to the system is by using the Java Activation Framework. The Java Activation Framework traditionally provides the means to manage the execution of long-lived RMI objects, but with little work, it can be transformed into a mechanism to provide fault tolerance for Jini services as well as important clients even if they don't use RMI.
This presentation will review the components of the activation framework and how they work together to provide simplified startup and fault tolerance. The challenges of extending the use of activatable objects to a system of Jini services and clients will be discussed along with examples of solutions. The presentation will show how the activation system can be used to manage objects that use middleware other than RMI, how developers can create and test Jini clients and services outside the activation framework, and other hard-learned lessons in using the activation framework.
Chi Spaces: Authentication for Jini Services
Guiseppe Milicia, Brics/University of Aarhus
In a Jini federation, clients and services come and go with extreme simplicity, which makes the network topology very dynamic. In this environment, coordination frameworks such as JavaSpaces, provide a better communication abstraction (versus point-to-point) and simpler and more scaleable interoperability between clients and services. In such a dynamic setting, security plays an important role, and in particular 'authentication' is of paramount importance. Clients and services might need to authenticate each other in order to build a common trust to work on. Authentication protocols such as Kerberos, are used to achieve these security goals.
However, current technologies are mainly based on point-to-point communication, and therefore don't adapt well to dynamic environments such as Jini federations. Chi Spaces has been specifically designed to tackle the problem of authentication in a Jini-aware network environment. The Chi Spaces framework provides a simple, yet powerful, scripting language which can be used to program security protocols. This code can either be interpreted or compiled into a Java class implementing the protocol, the latter can be easily integrated into existing code and customized by means of inheritance. The code generated is ready to be used in a Jini environment and will use a specified Space as means of communication.
Chi Spaces is based on a 'trustless' architecture. Members of a Jini federation using Chi Spaces programs to accomplish authentication do not need to trust the Chi Spaces compiler/interpreter, a particular cryptographic provider, space implementation or anyone else. Indeed, they are free to choose the cryptographic provider or Space implementation they wish to use. This talk will explain what Chi Spaces is and how to use it to provide a quick, easy and secure solution to the authentication problem in a Jini federation. A working example will be provided. More info available at www.chispaces.com
Davis Project: JiniTM Extensible Remote Invocation
Peter Jones, Sun Microsystems
This talk describes Jini(TM) Extensible Remote Invocation technology, a customizable implementation of the Java(TM) Remote Method Invocation (RMI) programming model that is being developed as part of the Davis project. This implementation of the RMI programming model provides APIs that enable each exported remote object to customize its client-side and server-side remote invocation behavior and to support a variety of communication transport types, including nonconnection-oriented and non-IP transports. Standard implementations for TCP- and HTTP-based communication are provided. The API supports a uniform server-side export programming model that enables application developers to write distributed applications that are easily configured at deployment time. The architecture provides the basis for an implementation of a network security model that is also being developed as part of the Davis project.
Davis Project: Overture Extended RMI Example
Tim Blackman, Sun Microsystems
The Extended RMI Example included in the Overture release provides a concrete example of using the various Davis programming models to implement a remote application that may be configured at deployment time. This talk will discuss the implementation of the example, as well as the command line and configuration options needed to deploy it in secure and activatable configurations.
Davis Project: Overview of the SSL and Kerberos Security Providers
Tim Blackman,and Daniel Jiang, Sun Microsystems
The Davis release will include security providers to implement the Jini[tm] network security model using SSL and Kerberos. This talk will present a brief overview of the capabilities of the two providers, including supported security constraints and ability interact with firewalls, as well as deployment-time configuration requirements.
Davis Security Details
Bob Scheifler Sun Microsystems
This talk will present the API's and mechanisms that make up the Davis network security model: how the programming model works, how it integrates with the overall Java security architecture, and how the security details can be deferred to deployment-time decisions. Elements of the model covered are:
- An extensible collection of security constraints that can be used by both clients and servers to characterize the network security desired for a remote call.
- A standard interface that proxies implement to allow clients to impose such security constraints on remote calls.
- A provider-based mechanism for clients to verify that dynamically downloaded proxies can be trusted.
- An extension to the Java[tm] security model that supports granting permissions dynamically at runtime.
Davis Security Overview
Bob Scheifler Sun Microsystems
This talk is intended to be an introduction to the network security model and related functionality that we're developing for the Davis release. It will attempt to cover the big picture without diving into the pesky details that only developers care about. It will describe the overall security model at a high level, what problems we're trying to solve, what requirements we're trying to satisfy, what the major new components are, and how we think things will fit together.
Distributed Cluster Computing with Jini and JavaSpaces
Oliver Zeng Freddie Mac
We have built a distributed interest rates generation prototype and a distributed mortgage backed security valuation framework on a heterogeneous computer cluster with JavaSpaces and Jini. The success we've had so far has demonstrated distributed computing with Jini and JavaSpaces compelling advantages in terms of performance, scaleability, load balancing, fault tolerance, and cost effectiveness. This presentation will overview what we've done in using Jini and JavaSpaces for financial applications and will discuss some of our planned work and new ideas hoping to get lots of feedback from the community.
Distributed Genetic Algorithms with the Jini Network Technology
Brian Zorman Allegheny College
The island model for distributed genetic algorithms (GAs) is a natural match for the master-worker paradigm in distributed computation. In this presentation, we will explore the benefits and drawbacks of several distributed system architectures in developing an implementation of a distributed GA that exploits the Jini and JavaSpaces technologies. Our results, using the knapsack problem as an illustration, show that there is an unavoidable price to pay in terms of decreasing computation-to-communication ratios as a function of instance size. However, we can diminish these efforts by expanding the number of JavaSpaces beyond those required for the obvious implementation. Our results also indicate that as the number of remote machines increases the potential for a better solution also rises. Even though our distributed GAs did not always exploit this potential for a higher quality solution, we believe that the combination of Java, Jini, and JavaSpaces presents avenues for easily distributing the computation of genetic algorithms.
Experience Teaching Jini Technology to an Undergraduate Class for Senior IS Business Students
Tod Sedbrook, University N. Colorado
We will examine our successes and failures with teaching Jini in an undergraduate business school. Jini allows students to explore distributed systems within marketing, management, finance, and accounting. Students demonstrate Jini's higher-level concepts by developing and applying tools that facilitate implementation and deployment.
Extending Jini to C++
Alexander Krapf, Codemesh, Inc.
As Jim Waldo has pointed out, there is no reason that Jini should only be useful to Java programmers. Codemesh has a general purpose tool that generates C++ bindings for Java classes. Codemesh is currently working on a more Jini-specific version that allows developers to write C++ applications that can participate in Jini applications. The presentation will outline the general approach, discuss the performance implications, and end with a demonstration of a C++ application using a JavaSpace.
FADA Project Overview
Miguel Vidal, Sun Microsystems
Federated Advanced Directory Architecture (FADA) is a replacement for the traditional Jini Lookup Service, made up of small lookup servers distributed across the Internet. The design of FADA considered the special circumstances of high latencies, firewalls, impossible broadcasting, etc. that happen in the Internet. FADA is a key component of the F.E.T.I.S.H. project. This presentation will show how we have addressed these issues (latency, broadcasting, firewalls), the problems we had to achieve these goals, and steps for future releases of FADA, such as support for multiple transport protocols (such as SOAP, RMI, JXTA (right now FADA only supports XML-RPC over HTTP)), one time password, embedded administration, and more.
Fine Grain NGOSS
Michael Ogg, and James Kerr, Valaran
Fine Grain NGOSS is a Jini-powered approach enabling the cooperation of a multitude of telecommunications technologies and business functions, suitable for building Operation Support Systems for Next Generation Networks. The Fine Grain Approach provides the ability to scale quickly according to market demand; component and, more importantly, service survivability are achieved without the need for complex, fault-tolerant configurations and remote backup data centers. The Fine Grain demonstration integrates products and processes from 3 network equipment vendors, 2 systems integrators, 2 service providers, and 10 software vendors.
"Fishbowl" Open Discussion
All Attendees
The "Fishbowl" concept is meant to promote lively and dynamic discussion. The room gets arranged with everyone at the meeting pointing into a center circle where there are 8 chairs. This center circle is where a free form discussion takes place. Everyone is invited to take a turn in the fishbowl and share your thoughts and comments.
GigaSpaces Platform: An In-depth View into the Heart of a Commercial JavaSpaces Platform
Asaf Kariv, Gigaspaces
This presentation begins with a brief introduction of JavaSpaces and quickly delves into the enhanced model and extensions provided by the GigaSpaces Platform - the first commercial implementation of JavaSpaces. Strategic features like JDBC Integration, Clustering, API extensions and Web Services integration are presented. This is an opportunity for software developers to understand the internal workings of a commercial JavaSpaces implementation.
JavaSpaces Position in the Web Services World
Asaf Kariv, Gigaspaces
This presentation focuses on the benefits of JavaSpaces technologies in the emerging Web Services world. Some generic JavaSpaces qualities, like loose-coupling and ad hoc data-sharing uniquely position JavaSpaces as a valuable infrastructure in the Web Services World.
JavaSpace Supported by a Relational Database
Geoffrey Arnold, Allegheny College
The combination of Jini network technology and the JavaSpaces service provides an exceptional environment for the design and implementation of loosely-coupled distributed systems. In this presentation, we will explore the strengths and weaknesses of Outrigger, a current implementation of a persistent JavaSpaces service. Furthermore, we will present RDBSpace, a JavaSpaces service that is supported by a relational database. Our experimental results indicate that it is possible to build an efficient and scaleable JavaSpaces service that relies on a relational database back-end. Moreover, the mature relationship database technology employed by RDBSpace can easily enable the introduction of data replication and backup facilities into the JavaSpaces object repository. While the current implementation of RDBSpace does not attain the performance benchmarks that have been set by Sun's implementation of a persistent JavaSpace, we believe that RDBSpace provides an exciting, free, and open source JavaSpaces service that warrants further implementation efforts.
New Jini.org Site
Jim Hurley, Sun Microsystems
This session provides a brief overview of our Community's new jini.org website. Some of the powerful new features and functionality provided by the new SourceCast architecture will be demonstrated.
Jini and J2EE: A Case Study of Jini Usage in Jrun 4
Sean Neville, Macromedia
In designing the JRun 4 application server, Macromedia turned to Jini to satisfy the high availability, failover, and load balancing requirements inherent in crafting a quality J2EE implementation. Jini drives the object clustering of common J2EE resources such as Enterprise JavaBeans (EJBs) and the Java Naming and Directory Interface (JNDI) provider in JRun 4. This session, delivered by the architect of the JRun 4 server, presents a case study of the requirements, analysis, architecture, implementation and testing processes that led to Jini shipping as one of JRun's leading new features.
Jini and JavaSpaces, Intelligent, Distributed Knowledge and File-sharing for the Masses--P2P is so....1990's. This is Space 2 Space[tm] and it's the future...
Ian R. Nandhra, Findbase LCC
This presentation will be an entertaining mixture of technical information, marketing perspectives leading to what the customer really wants. This is not a marketing or sales pitch for our products although jukeSPACE (filesharing) and kimSPACE (knowledge discover / sharing) will be used as examples.
It is, however, a description of what we are accomplishing and how we arrived at the current position after considerable development effort. It will also describe how we use leading edge technologies (Jini) and older stuff (ONC/RPC for Java) to accomplish our goals. All of this is based on "stock" Jini and JavaSpaces technologies as delivered by Sun, that is, we haven't changed a thing!
Jini Network Technology - A Public Relations Road Trip
Melissa Zaniboni, Citigate Cunningham
Join us for an overview of Jini technology public relations activities and an introduction to writing contributed articles.
Jini Surrogate Architecture Update
Keith Thompson, Sun Microsystems
The Jini Surrogate Architecture is a way for a hardware or software component that is not capable of joining a Jini federation directly to do so with the aid of a third party. The architecture, defined by the Jini Technology Surrogate Architecture Specification and created through a jini.org community project, was released as a Draft Standard in July 2001. An IP interconnect specification, a contributed implementation of a Surrogate Host, and a conformance test suite has followed. There is also ongoing work on other interconnects, such as USB and IEEE1394. This talk will present a brief overview of the technology and an up-to-date status on the project and future plans.
Jini Technology Starter Kit v1.2 Shared Virtual Machine Implementation
Robert Resendes, Sun Microsystems
The shared virtual machine (VM) functionality allows multiple, concurrent service instances to be hosted in a single VM, thus (significantly) reducing the overall memory footprint required to run them. The JSK1.2 shared VM implementation accomplishes this while still maintaining per-service codebase annotations, security policies, and namespaces. The presentation will cover implementation details as well as usage examples.
Joining Space Environments Together - the Reality
Ian R. Nandhra, Findbase LCC
This presentation covers the data dynamics behind joing space environments together, the problems that can be expected and how you can solve them. All using standard, out-of-the-box Jini and JavaSpaces technology. This venor agnostic presentation is intended to educate the audience into the data-dynamics and maths behind it all in a fun and interesting manner.
This presentation covers the data dynamics behind joing space environments together, the problems that can be expected and how you can solve them. All using standard, out-of-the-box Jini and JavaSpaces technology. This venor agnostic presentation is intended to educate the audience into the data-dynamics and maths behind it all in a fun and interesting manner.
The resultant understanding of what can be expected and what is impossible will make it easier for the audience to get more from Jini without the need to use proprietary solutions.
While this is not a marketing or sales pitch for our products, I will be covering the problems we encountered in implementing synchronized space environments over the Internet and how we solved them.
JSWT Project Overview
Jools Enticknap, Nmemonix LTD
JSWT is a framework designed to allow developers not used to Jini to start writing services with very little fuss. However, the framework has many hooks and features which allow the more seasoned developer to gain as much control as required. To make a point, the JSWT framework makes Jini deployment as simple as:
-
DefaultService ds = new DefaultService(new String[]{"mygroup"}, new MyProxy());ds.registerService();.
Jump Project Overview
Steve Perry, Jumper Networks
A fundamental problem of emerging networking technologies is building connectivity to devices located at the edge of the network. Domain names are specific to their character delineation. Put simply if you do not know the exact email address or FQDN of the user you are trying to connect to DNS cannot resolve your request. Even in a large WAN it is impossible for a user to know the exact FQDN of every host on the network. FQDNs may also not be assigned for a particular user, but for a particular machine. Making user or service location by FQDN even more difficult. XML Schemas have emerged as a standardized data models that represent information about a host or service. While many different formats exist each format adheres to a standard agreed to by the users of that format. These XML Schemas allow for much greater flexibility in host advertisement and discovery.
Project Jump is building XML parser modules into Jini that would allow it to interact with the many emerging XML Schemas for discovery purposes. For example, using Jini as a Rendezvous peer enables a system of code mobility that is not inherent within JXTA. The Jini service ID is matched to the peer ID associated with each service allowing JXTA peers to use XML to advertise and discover the service. This would be matched to the Jini service ID to allow a serialized Java Object to be returned to the peer to encode the objects state. This allows Jini to present an interface for protocols such as JXTA or UDDI while allowing Java objects to be easily moved around the network. Now services written in Java can make use of any XML Schema for discovery.
Oahu, a Secure Jini Runtime Environment
Jeff Brownlee, Kiribi, Inc.
Oahu, a secure Jini runtime environment from Kiribi, which provides a comprehensive infrastructure for deploying and administering Jini systems will be demonstrated. Oahu currently contains the following core modules:
- Console - a full featured ServiceUI desktop environment which supports concurrent connections to multiple Jini networks, each within its own security context
- Gateway - a Gateway service which manages authentication, discovery, deployment, network class loading and routing
- Port - a Container service which manages lifecycle, group membership and attributes for Jini services. The Port also provides persistence and resource management support for those services.
A simple, robust API is also included which allows developers to quickly develop secure Jini clients and services.
Observations on the Community
Jim Waldo, Sun Microsystems
One of the advantages of being a roving Jini ambassador is being able to see how Jini is being used by members of the community. There have been a number of interesting projects and products released over the past couple of months. In this talk, I'll highlight a couple that I've found most interesting, showing uses of Jini that are either unexpected or demonstrating approaches that were said "couldn't be done."
Orange API - A 'Live' Webservices Architecture Based on Jini
Jools Enticknap, Nmemonix LTD
Orange decided around 12 months ago to build a webservices system, but decided to build it around a simple statically based architecture. However, the system became so heavily used over the next few months that 0 downtime and hot deployments became a big issue. This talk describes how we built the system and how it has helped Orange provide a better lever of service.
Out of Box Experience: Lessons Learned and Solutions Provided
Geoffrey Arnold, Allegheny College
In "The Mythical Man Month", Frederick P. Brooks Jr. followed the lead of Aristotle and divided all software technology into the realms of "essence" and "accidents." To the seasoned Jini developer, CLASSPATH environment variables, RMI codebases, Java securities policies, and Jini URLs are common facets associated with the design and implementation of distributed systems. However, the Jini novitiate is often confounded and frustrated by the "accidents" that are normally associated with the implementation of distributed systems in Jini. In this presentation we highlight some of the current limiting factors of the Jini "out of the box" experience. Moreover, we present a platform independent utility for starting a complete Jini environment, including the JavaSpaces service. Written entirely in Java, this utility contains support for benchmarking JavaSpaces service implementations and it can be used as a replacement for the Tonic tuple-space benchmarketing tool.
While this simple utility can be used from the command-line to start a Jini environment, it can be programmatically invoked with standard Java programming language constructs from a client class. We believe that our simple tools can improve the Jini development experience for beginners and experts alike.
Preferred Classes Overview
Laird Dornin, Sun Microsystems'
This presentation provides an overview of the "Preferred Classes" functionality of the Overture release of the Davis project:
- Preferred classes are designed to be a solution to the infamous "lost codebase" problem of RMI class loading. The "lost codebase" problem prevents RMI from knowing the location from where it should download classes to be used in a distributed computing application.
- The Preferred class loader provider enables classes to retain consistent location characteristics as they are passed in remote method calls between hosts in a distributed application.
Rio Project Update
Dennis Reedy, Sun Microsystems
The Rio project provides compelling capabilities for Jini technology, provisioning services through the network using QoS attributes. This session will provide a brief overview of Project Rio, what we're working on and what is on the slate moving forward.
SI Project Overview and Update
David Novice, Cisco Systems
The Scaleable Infrastructure (SI) project is a scalable communication framework for building high availability applications built on Jini and JavaSpaces technologies. This reliability is achieved through distributed Spaces and agents (Jini services) managed by the SI Community service. SI extensions and services maintain the application simplicity envisioned by the design of Jini technology. Tools, agents, and interfaces in SI enhance the ease of developing distributed Space applications by providing dynamic replication and monitoring of events and entries.
This presentation will provide an overview of the architecture and components of the SI project, as well as an update on new and planned developments.
Smart Use of Smartphones
Jacques Lemordant, gravir-inria
Smartphones based on the Symbian operating system are hitting the market this summer. By letting them join a Jini federation through their Bluetooth network adapters, we can use these Smartphones in innovative ways. But we need both a well defined Bluetooth Interconnect and a MIDP ServiceUI specification. To define them and build a Reference Implementation, our proposal is to start at the very pragmatic level using what is available. The bad point is that the actual state of J2ME configurations and profiles is rather confusing and Personal Java on Symbian Smartphones is there for the years to come. The good point is that the Symbian operating system is very Java friendly and has a good JNI support. Consequently, we don't have to wait for a hypothetical implementation of the JSR-82 (Java API for Bluetooth) on Symbian Smartphones to start defining and implementing a Bluetooth interconnect. For these smartphones to be Jini clients, we need a MIDP ServiceUI specification that will enable Bluetooth surrogates to remotely display User Interfaces provided by Jini services.
We are in favor of a RemoteMIDP-UI approach which is probably lighter and faster than an XML protocol adapter approach. Moreover RemoteMIDP-UI's can even be published by Smartphones as Jini services.
Space Template Versioning: There is No Mystery, It's Easy!
Ian R. Nandhra, Findbase LCC
This presentation describes Space Tempate Versioning, what it is, why it matters and what you can do with out-of-the-box unchanged Jini without the need for proprietary extensions. As far as I am aware, this material has not been covered anywhere else.
This is technical, this is fun and it's covered in a humorous way (to keep people awake). It's also essential to anyone using JavaSpaces.
ps. This is not a product and/or marketing pitch.
Teaching Distributed Systems to Undergraduates: An Experience Report
Gregory Kapfhammer, Allegheny College
In the book "Zen and the Art of Motorcycle Maintenance", Robert M. Pirsig writes the following: "When I think of the formal scientific method an image sometimes comes to mind of an enormous juggernaut, a huge bulldozer--slow, tedious, lumbering, laborious, but invincible. It takes twice as long, maybe a dozen times as long as informal mechanic's techniques, but you know in the end you're going to get it." In this presentation, we will highlight an undergraduate course taught at a small liberal arts college that attempted to ensure that students "got" the fundamental theories and practices associated with distributed systems. We will report on the state of current texts and examine the accessibility of topics that are traditionally associated with the study of distributed systems. Finally, we will peek into the experiences of students as they applied the "enormous juggernaut" known as the scientific method during their initial forays into the development of distributed systems with the Jini network technology.
Using Jini and JavaSpaces to Provide Healthcare Reporting Services
Anjum Majeed, Ingenix
This presentation will provide an overview of a healthcare reporting solution using Jini and JavaSpaces technology. The reporting services are based on pharmaceutical data and is built for the web with Jini and JavaSpaces being used as the middlware glue between the web and backend modules.
Viewing, Profiling and Tuning JavaSpaces Based Systems
Nigel Warren, IntaMission
Using JavaSpaces makes building and fixing large scale distributed systems much more simple than "traditional" approaches to this problem. However, as the patterns of use of the Space become more complex it becomes very hard to imagine and analyze the flow the objects around a system. The use of transactions can also complicate and obscure the visibility of Entry objects with a Space. In this presentation, Nigel will present a mixture of slides, outlining some JavaSpace use scenarios mixed with a demonstration of the tools that have been developed by IntaMission to help systems engineers develop robust Spaces-based systems. An example of using the tools to analyze an issue with the use of a Spaces and making the fix will be given . Also, Nigel will present an example of using the tool to tune the use of Space. This example will be drawn from the text of "JavaSpaces in Practice". Assumptions: The audience has some familiarity with the basics of JavaSpaces, Java, Jini, and distributed systems development. Presenter: Nigel Warren is the Director of Technology at IntaMission, who make a commercial implementation of the JavaSpaces specification, which can support multiple concurrent class versions. He is co-author of "Java in Practice"and "JavaSpaces in Practice" with Phil Bishop, published by Addison Wesley.
Welcome and Introduction
Jim Hurley, Sun Microsystems
Welcome to the Sixth Jini Community Meeting! The attendance at this Community Meeting is individuals and companies with a broad set of backgrounds and experiences. Some are new to the Jini Community (and Community Meetings), so we'll set the foundation for everyone by discussing what the Community is, resources available and past events held, and the structure for Community Meetings. An update on the latest happenings in the Jini Community will then be presented.
