7th JCM Sessions
From Jini.org
Opening Keynote: 5 years of discovering the Jini Community
Ken Arnold, EventMonitor, Inc.
The Jini Community is an experiment in its fifth year of existence. This opening keynote will explore the original motivations, ongoing discoveries, and current state of our Community.
Jini Service Container Specification/Implementation and Usage
Mark Brouwer and Igor Fisl, Virgil
The cry for an out-of-the-box experience for Jini has been a recurring cry in the Jini community. Together with our experience that the development of (complying) Jini services requires considerable skills the action was taken to specify/implement a programming model for Jini services as part of the Cheiron Open Source Project. This Jini Service Container (JSC) programming model provides facilities for the Jini core specifications, considerably eases the development/deployment of Jini services and doesn't exercise limitations on the Jini programming model itself. Our statement is that the JSC programming model will significantly lower the barrier for writing network-centric services that are compliant to the Jini specifications.
This presentation will give insight in the JSC Specification by providing a brief walk-through of the programming model and some of the facilities offered, such as: leasing, transaction participation, remote events and persistence. A demonstration of the reference implementation called Seven (based on the new Jini specifications developed under the Davis project) will show some of the features and justify the validity of the model by running demo services and JSC enabled versions of Reggie, Outrigger and Mahalo. The demo will be followed by a presentation about the use of the JSC programming model within the financial trading platform of Virgil, this includes the use of smart proxies for two layer caching, JSC Events for distributed streaming data and distributed configuration. The roundup will give a road map for the Cheiron project and will talk about some issues we find are important to have resolved by the Jini community.
Jini and .NET
Alex Krapf, Codemesh, Inc.
While Jini is not our main business, we have always been interested in it and have constantly tried to extend the reach of Jini into new domains. Our latest project involves extending Jini into the .NET realm, thereby bringing the power of Jini to native Windows applications.
This presentation discusses some of the technical challenges in integrating Java in general and Jini in particular into the .NET world. I will also show a demo of a VB and a C# application communicating via Jini/JavaSpaces.
Experiences and Sucesses in moving Jini Lookup Services to Embedded Devices
Cameron Roe, Psinaptic Inc.
In a world where Moore's Law is king, there is still a real need to produce small footprint software that delivers distributed computing services to and from the ever increasing numbers of mobile devices. PsiNaptic contributed significantly in 2002 to Sun's initial vision for Jini technology on all devices by reducing the Jini Lookup Service footprint to less than 100 kilobytes. We're incredibly excited and proud to be able to extend the power of Jini capabilities to levels that no one thought possible. Exciting opportunities exist for this micro-version of Jini technology in applications involving resource constrained devices making Jini's promise a reality. Since then, PsiNaptic has been working hard at reducing this foot print further as well as producing a Jini compliant Lookup Service that runs on even smaller, non-JVM capable embedded devices. This presentation explores the experiences and success stories of these innovations.
Driving Jini Adoption - A Developer's Perspective
Dan Creswell, Blitz project/Lone Crusader Ltd
The adoption of Jini has been somewhat slower than the community might have wished. The Blitz Project was established specifically to address all aspects of the adoption problem (we're not just about providing a JavaSpaces implementation!). This presentation will summarize our experience thus far and cover some of the project's future plans.
The presentation will start with an examination of some of the common myths encountered when talking to developers or analysts about Jini. The presentation will suggest some ways in which the community might evolve to more actively encourage use of Jini.
Following on from these suggestions, the presentation will identify a number of technical and non-technical issues which The Blitz Project is attempting to address, together with some interesting research topics.
The presentation will finish with the handing-out of a limited number of CD's containing the project's current software releases and a copy of the v2getsmart.jini.org project pages.
Jini Inside: The Canadian Virtual Observatory
Patrick Dowler, National Research Council Canada
The Canadian Virtual Observatory (CVO) is an ambitious project to deliver advanced scientific analysis and data-mining capabilities to astronomers around the world. The VO movement (in general) is an international cooperative project with ~20 participant countries trying to deliver content and tools to astronomers. It is well-funded, but not very ambitious; it is technically challenging but certainly not very technically interesting.
For the CVO, we have designed and developed a suite of Jini services that encompass the full range of scientific computing: archival data, scientific data warehousing, distributed computing, and storage services. Individually, these services are relatively simple and general purpose. Together, they enable some very exciting science projects that would otherwise be impossible.
Jini and Web Services: Judy Project Overview
R. Dale Asberry, The Judy Project
Web services hold a great deal of promise for facilitating automatic, Internet-wide distributed application execution. Jini is a Java-based distributed application solution but does not carry the baggage of over-specification. The Judy Project on Jini.org attempts to combine the best of these two technologies for an excellent distributed computing solution.
Monitoring Enterprise Jini Applications
Steve Hoffman, Warren Nisley and, Chhaya Dave Orbitz, Inc.
At the heart of Orbitz lies a highly scalable service oriented architecture developed using Jini technology. Currently this architecture is the backbone for every transaction going through Orbitz.com, AA.com, and NWA.com. We will do a high level overview of the architecture with focus on our use of Jini and how the monitoring of our systems has evolved.
Agent -based Workflow for Delivery of Distributed Medical Services
Keith Campbell, Inoveon
Inoveon¹s workflow system is based on a protocol-agnostic software architecture that allows hardware devices and software services to automatically and adaptively interoperate while delivering high quality of service. The architectural foundation is provided by Sun Microsystem¹s Jini technology, which enables the spontaneous assembly and interaction of services and devices on a network, and is also both wire-protocol and transport-protocol neutral.
This architectural foundation addresses challenges of scale, component integration, and ad-hoc networking that are encountered in distributed computing environments. It can work consistently and reliably across unstable networks, it can adapt to changing network conditions for better resiliency, it simplifies network maintenance and administration for lower cost operations, and it enables components of a service to change at any time without interrupting the service.
This talk will describe the business drivers behind the selection of Jini as the architectural foundation, and will focus on components of the architecture including: software agents, how workers and priority queues provide services to agents, and use of distributed transactions and round-trip business processes to deliver fail-safe business process automation.
Using Jini and JavaSpaces as an Enterprise Backbone
Calum Shaw-MacKay, Countrywide Group
A talk focused on Jini and JavaSpaces within Countrywide as an enterprise backbone. Featuring developing Jini services for distributed transactions across data sources, distributed error-processing services and change propogation services as well as using JavaSpaces for integration purposes with commercial workflow products. Focus will also be given to three new Jini.org projects, Athena, Thor, and Eros describing the typical usage scenarios of Jini in an enterprise environment and the issues they address.
Also, we'll cover how Countrywide came across Jini and JavaSpaces, our experiences with these technologies, the resolution of issues with J2EE and other approaches, and patterns and idioms that occur when using Jini.
On the futures side, I will cover our next big project, codenamed Neon, which provides a synchronous application framework using mobile agents, and an asynchronous message bus for collaboration - this will also feature details on the use of JavaSpaces for mobility, checkpoints and restores, as well as remote events for external connections - in essence this is similar to Rio, but provisions logic across grid infrastructure that is transparent to developers.
Using JavaSpaces To Drive The Next Generation Financial Applications, A GigaSpaces and Merrill Lynch Success Story
Nati Shalom, GigaSpaces
The lack of a standard means for middleware communication has lead to the over-provisioning of computer resources and increased complexity. "Middleware Virtualization" can significantly reduce this complexity while supporting the dynamic-allocation of computer resources, increase reliability and provide significant cost reduction opportunities. We have recently proven that this approach can perform impressively in the context of real-time Market Data Distribution. This was done through the leverage of open-standards- JavaSpaces and low-cost technologies: Linux, Java, Blades and XML with MDDL as the internal data format. In this session we will discuss how JavaSpaces was used to drive this new concept.
Development and Deployment Using the JiniTM Technology Starter Kit -- Tips, Tools, and Idioms
Brian Murphy, Sun Microsystems
The JiniTM Technology Starter Kit (starter kit) emphasizes what is referred to as a "utility model" for development of services and clients. As such, the starter kit currently provides un-integrated tools and utility classes that encapsulate common, useful functionality which, when employed appropriately, can help simplify the process of developing and deploying well-behaved services and clients.
The Jini technology team at Sun Microsystems believes that this utility model provides users with a level of flexibility that allows them to maintain a large degree of freedom in their design decisions, while still addressing many of their important development and deployment needs. This is consistent with the team's general design philosophy, which is characterized by an emphasis on choice and flexibility.
Although freedom of design choice is a hallmark of the utility model, one can still benefit from acknowledging certain patterns and idioms that emerge from that model. Unfortunately, those patterns and idioms can sometimes be difficult to recognize; especially for developers who are new to Jini technology. Thus, this session will explore some of these patterns and idioms, and attempt to explain how one might apply them in their own designs. Additionally, this session will also discuss some of the tools that are available, and provide tips and make recommendations regarding good development and deployment practices.
A number of the concepts discussed in this session are presented within the context of an example service and client. An emphasis is placed on the distinction between development and deployment activities and the role each plays in understanding the process of building a Jini technology-based system. The hypothesis put forth is that understanding the patterns, utilities, and tools that are available, and understanding the role each plays in the development and/or deployment process, can help reduce the steepness of the learning curve.
Simplifying Systems Integration with J2EE, JMX, and Jini
Andrew Boyd and Geoffrey Arnold, Digital Reasoning Systems
As distributed systems increase in scale, being able to adapt to dynamic network environments becomes a challenge which cannot be addressed by naming alone. This presentation will discuss Digital Reasoning System's KAFE (Knowledge Agent Framework Environment) project and how we have leveraged J2EE, JMX, and Jini to facilitate a truly dynamic, pluggable MBean environment.
The Arrival of Dynamic Networking
Jennifer Kotzen, Sun Microsystems
The industry buzz around grid computing, utility computing, on-demand computing, and the like is the latest, loudest, and possibly most encouraging sign that the need for dynamic networking of the sort that Jini technology enables is real. What opportunities are presented for Jini technology by the rising prominence of this new thinking in both corporate IT and among the leading technology system providers of our age? This business-oriented session will examine these trends and the likely implications of them on the growth and acceptance of Jini technology use in mainstream markets.
Challenges in Building an Infrastructure for Medical Sensing Networks
Jim Waldo, Sun Microsystems
The demographics of the United States (and much of the rest of the world) indicate a considerable increase in the percentage of the population over the age of 65 within the next 10 years. This, coupled with the statistics showing that people over 65 use medical services between 4 and 10 times as often as those under 65 indicate that we must find new ways of delivering medical care to our populations or risk overwhelming the health care infrastructure.
One possible component of this new way of delivering care is to allow people to wear medical sensing devices while outside of the usual contexts of such sensing such as doctor's offices or hospitals. Indeed, wireless sensor networks over the body have already been tested, and show great promise. However, the infrastructure to handle the amount of data generated by such sensor networks has not been developed; doing so in a way that allows both patient care and scientific study but also insures security and privacy is an open question.
This talk will discuss a number of the issues having to do with such sensor network infrastructures, and talk about some of the Jini-based approaches that we are thinking about to solve these problems. The talk will also discuss a number of areas where the Jini approach needs to be extended to deal with new problems of scale, reliability, and availability required by such networks.
Customizing the Jini ERI Transport and Invocation Layers
Daniel Jiang and Mike Warres, Sun Microsystems
In this presentation we discuss the API and implementation of Jini ERI transport layer providers. Both non-secure providers, such as TCP and UDP providers, and secure providers, such as SSL and Kerberos providers are described. The emphasis of this talk is to demonstrate the flexibility of the API, which enables supporting multiple transport protocols via different providers, and composing existing providers into more sophisticated providers to support more features, or constraints in Jini ERI term.
Project Rio Overview
Dennis Reedy, Sun Microsystems
Project Rio, on Jini.org, provides a dynamic architecture which assists developers and organizations with the creation of services which can be allocated through the network to available compute resources. Intrinsic to Rio are a set of dynamic capabilities and reliance on policy -based and Quality of Service mechanisms that extend capabilities currently found in distributed systems. This session will provide an overview of Project Rio architecture, the status of the effort, and what is being worked on for the future.
JERI and pluggable authentication
Gregg Wonderly, Cyte Technologies
The Jini2.0 supplied Authentication support provides a great way to use Certificate based authentication to control authorizations in access between JVMs. But, if you don't have a Certificate Authority on the network where your services will run, this support can be problematic to administer. We have had username and password based authentication in our tools since JDK1.1. We have waited with baited breath for the WHO part of the Java security model to materialize with JAAS support. Unfortunately, JAAS logins with usernames and passwords using the default LoginModules and which return the com.sun.* Principals are not secure for remote uses. On Windows platforms and UNIXen, a user is handed credentials based on their login to that machine. These credentials can't truely be trusted when sent across the network because the user can create them without logging in.
I needed a password based authentication in order to have a simply administered system. SSL sockets can eliminate plain text passwords on the network. Another issue is the client side of Jini services with RMI proxies and downloaded code. The AWT event queue model, by default, does not enforce Subject and ContextClassLoader relations between theads that construct objects and threads that execute event processing. Our solutions consider all of these issues to help manage the development effort as well as the total administration overhead of service deployment. JERI provides the places to do all the right things for many models of authentication and then authorization. It has helped us to move from an ACL based mechanism to one utilizing the Policy based model, including JAAS subjects and dynamic policies. I can include coverage of the following areas and others if needed.
1. Managing dynamic exports associated with factory models 2. Server side authentication and authorization 3. Client side Smart proxy verification.
Rendezvous and Jini
Daniel Steinberg, java.net
Apple's Rendezvous technology for service discovery has been adopted quickly and integrated in interesting ways. In this session, I will quickly outline the three pieces of Rendezvous: obtaining an IP address without DHCP, obtaining a locally unique name without DNS, and browsing for services in a manner that is both computer- and human-friendly. This last piece clearly conflicts with Jini's design principles of using a type system to locate and use services. The remainder of this session will be a conversation with the audience about whether it makes sense to integrate Rendezvous and Jini and how this could best be accomplished.
Service Oriented Architectures - Separating Hype from Reality
Michael Ogg, Valaran
Although Service Oriented Architectures (SOA) are not new, the popularization of Web Services has brought the concept to a much wider audience. The fundamental idea of a service is simply that the interface and implementation are separate: the interface describes what the service does, and the implementation is, well an implementation detail. It is then more than a little ironic that Web Services have gained such traction in the Java community, because if the only thing we care about a service is its interface, and since a Web Service's interface is defined in XML not Java, why should we care whether the service is implemented in Java or not?
Jini Technology Services, on the other hand, are the reverse. The only thing we care about is the service's Java interface, and the implementation really is a detail, and could be in a language other than Java, and we'd never know.
Is this distinction merely a small detail that only language bigots really care about? We argue that it is a crucial distinction deeply embedded in the design of the Java language. That Java is a strongly-typed language, that supports dynamic class loading, that has an intrinsic security model, and that has well-established software patterns including callbacks, listeners, collections, concurrency, and serialization among others, is of enormous importance.
In this presentation, apart from unashamedly engaging in such polemics, we take a specific use case, namely building a computational Grid, and examine details of the architecture and services in both Web Services and Jini Technology architectures.
Wall St., Grid Computing and Jini - Large scale deployment of computational resources in a hosted environment
R. Van Simmons, INVESCO
Modern financial instruments can no longer be valued or analyzed on spreadsheets and calculators, they require the use of Monte Carlo simulation and enormous computational resources instead. Simulation of this kind is a well addressed by the use of tuple-space systems using the master/worker design pattern and advertising themselves as grid services. Since the available mechanisms for deploying simulation systems have become much more rigorous for security and cost reasons, the ideal environment for Wall Street's computational tasks is now a hosted one, whether the hosting is done by an outside party or in a corporate data center. The biggest problem facing those who would deploy massive hosted computational systems is management and the issues arising from the need to administer a large and diverse set of machines. Specific questions about hosted grids which arise include:
How do you bring new worker machines into and out of the grid dynamically? How do you deploy new versions of computational software? How do you seamlessly deal with machine failure? How do you secure the system against unauthorized access? How do you determine and capture information on system activity? What sort of system API can writers of computational tasks rely upon? This presentation will discuss the design, development and deployment of a production grid which addresses many of these questions. The grid was built as a federation of Jini services whose configurations are maintained in a central web server. In addition to the standard contributed services (reggie, outrigger, and mahalo) several new ones were created to deal with the management issues raised above. These new services include: a worker container service, a resource allocation service, a logging service, and a front end service to provide accessibilty via servlets or as a web service. Additionally the services deal with three new concepts which emerged from the design and are important management features in their own right. The first new design concept was the notion of a computational request/response cycle and its accompanying API (worklets). Another new concept was that of a deployable collection of worklets in the form of a GridApp. Both of these concepts rely heavily on the Jini mechanisms for code movement and on the presence of Outrigger for tuple communication. The third new concept was the notion of a GridSession which enables master processes to obtain grid resource allocations from the resource management service and to deal with resource contention. The final aspect of the design to be presented will focus on the lightweight service bootstrapper we developed and on issues of deployment security.
The Maji Nomadic Interoperability Technology Platform
Andy Gelme and Phil Blythe, Majitek International
This session introduces the Majitek Nomadic Interoperability Technology Platform. Built around Jini 2 technology, the platform offers a simple GUI driven development environment for the construction, deployment and maintenance of large scale, secure distributed component environments.
The architecture arose from a vision to accommodate applications built upon the interconnectivity of thousands, if not millions of disparate devices, users and services. It accomplishes this by reducing the visible complexity of component interactions through nested symbolic abstractions called Meems. By graphically presenting the end user with basic building blocks of system sensors, logic processes and device controllers, components can be linked through dependencies to represent higher level decision systems and failover modes.
During this session, we will cover explanations of the core concepts behind the Maji(TM) framework, and a short demonstration of the InterMajik(TM) Development Kit, including the distributed application environment and graphical IDE. We will also show how InterMajik can be used with Jini enabled devices using the PsiNaptic JMatos embedded software, as well as application case studies in building automation, and remote monitoring and control over J2ME devices.
Distributed Caching with JavaSpaces in a J2EE environment
Nati Shalom, GigaSpaces
This session provides a technical overview on the integration of JavaSpaces in a J2EE environment, using a JCA adaptor for Distributed Caching scenarios.
We'll include a real life case study that describes how this concept has been used for distributed session sharing in a large telecom operator application.
A Blueprint for Constructing Resilient Stateful Jini Services
Dan Creswell, Blitz project/Lone Crusader Ltd
A typical approach to constructing resilient systems uses a cluster built on top of expensive hardware or complex software solutions. This doesn't fit well with recent trends in modular computing such as network services, blades/racks and virtualization. Whilst Jini provides the basic building blocks for a solution there are still some blanks that need filling in, especially in the case of persistent services. This talk will present a simple blueprint for making persistent services resilient covering network issues, hardware choices, software design and configuration. An example of its application will then be provided based on Blitz JavaSpaces. Following on from the example, guidelines for service implementation will be provided. The talk will finish with suggested improvements to the basic approach and a list of useful resources.
The FireSpace - A Space-based Application Firewall Concept
Derk Norton, Sun Microsystems
The rapid expansion of enterprise scale applications into the extranet has accelerated the need for more secure, scaleable, and firewall friendly application architectures. With Sun's IT group, we are investigating ways to combine the scaleability and elegance of Jini JavaSpaces with traditional application firewalls. This presentation provides a technical overview of our current thoughts and experimentation around one such approach we are working on code-named the "FireSpace". It briefly outlines the need for such an approach; then provides an overview of the structure and APIs that make up the FireSpace architecture; and finally provides insights into some of the benefits and open issues that have been identified thus far.
A Jini Licensing Open Discussion
All, led by Mark Hodapp, Jim Hurley, and Bob Scheifler Sun Microsystems
The Jini licensing model of the Sun Community Source License (SCSL) has been a hot topic on the users list and Community in recent months. This session provides an opportunity for an open, informal discussion to clarify open questions, as well as enable everyone to voice further questions, comments, concerns, or alternatives.
Jini & RFID
Kevin MacDonald, Sun Microsystems
Sun is moving forward developing product that addresses the unique needs of RFID tagging. Because of the nature of warehouse environments, Jini & Rio are helping Sun meet their availability requirements. This presentation will discuss the high level architecture of what Sun is doing with Jini in the RFID space as well as talking about the unique needs of the RFID space in general.
Application of Jini technology to a Swarm of Autonomous Vehicles
Chad Hawthorne, The Johns Hopkins University Applied Physics Lab
The Johns Hopkins University Applied Physics Laboratory (JHU/APL) is involved in developing emergent group behavior based on innovative, scalable architectures in heterogeneous, distributed vehicle systems. Our autonomous vehicles coordinate behavior by sharing knowledge with peers over an 802.11b network. This presentation will discuss how we used Jini to share knowledge across disparate hardware platforms over an often unreliable network. We will discuss our high-level software architecture and share experiences in deploying to a swarm of autonomous vehicles.
Building a generic monitoring Framework using JavaSpaces
Ilango Kumaran, Perot Systems
With the recent adoption of distributed technologies such as CORBA, J2EE and Web services, the monitoring functionality has become much more complex owing to its distributed nature. However, it is imperative for every enterprise to monitor these systems for its performance, failure and business transactions in production.
This paper explains how JavaSpaces' inherent ability to provide a asynchronous, decoupled, shared, transactionally secure, community message board characteristic can be used to collect the monitoring parameters from the various distributed components of an enterprise systems. These components could be servlets, EJBs or Java components within the enterprise environment. The parameters can be performance/time related, business transaction related or failure related. Such collected information can later be used to feed a support/application specialist's dashboard for monitoring and analysis.
Jini Gaming
R. Dale Asberry, GizmoWerkz
Overview about why and how Jini technologies can provide long- and short-term advantages for developing a massively multiplayer online gaming (MMPOG) platform.
Secure ServiceUI Design Discussion
Bill Venners, Artima Software, Inc.
In this discussion, we will take up the issues discussed on the ServiceUI mailing list about making a new release of ServiceUI that deals with security issues.
JavaSpaces Birds-of-a-Feather (BoF)
John McClain, Sun Microsystems
This session focuses on writing distributed applications using the API as specified by the JavaSpacesTM specification (JavaSpaces API), including experiences, patterns, and approaches. JavaSpaces technology is a JiniTM network technology service that facilitates the design and implementation of flexible distributed systems that are resilient to failure and change.
JavaSpaces technology provides a place on the network that entities on the network can use to share and exchange objects based on the JavaTM technology programming language. Having a common point on the network through which information can be exchanged allows the set of participating entities to change over time. Allowing the entities to use Java technology-based objects to exchange information gives the entities unprecedented freedom to change to meet new requirements and conditions. In this session, you interact with members of the Jini technology/JavaSpaces technology team as they share their experiences and practices.
Topics open to discussion include: - Design patterns, data structures, and algorithms - Process architecture - Service command line, configuration, and bootstrap - Service-side persistent state - Activatable and transient services - Jini network technology: transactions, distributed events, and leasing support - Tunable parameters and debugging considerations - Administration interface considerations
Jini Technology Starter Kit "Porter" Release
Jim Hurley, and Brian Murphy, Sun Microsystems
This session provides an overview of the next Jini Technology Starter Kit release from Sun, codenamed "Porter".
"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
