Sun's distributed, federated object system based on Java technology. see http://java.sun.com/products/jini for more info. In essence, Jini provides a mechanism for locating services on the network that conform to a particular (Java) interface, or that have certain attributes associated with them. Once a service is located, the client can download an implementation of that interface, which it then uses to communicate with the service. Jini provides a discovery protocol that allows services to bootstrap themselves onto the Jini network by locating and registering with a Lookup Service. Collections of Jini services, registered with Lookup Services are said to form a "Jini Community". Since the most common form of the discovery protocol uses multicast, communities will tend to spontaneously form within network boundaries. There is a non-spontaneous facility for unicast discovery also. Jini makes use of leasing to ensure the network can route around damage. Services must actively renew leases or be discarded from the community. The Jini specification also provides facilities for remote events and distributed transactions across services. It's also related to the JavaSpaces "Object Space". ---- Anyone here using this yet? I'm browsing through the Core JINI book. The leasing idea, in particular, looks very interesting. -- MichaelFeathers ''I am prototyping a point-of-sale system using JiniTechnology to gain massive system robustness. -- MikeMorris'' I am using GigaSpaces implementation of JiniTechnology for computational chemistry. -- JackMollier ---- It is extremely interesting. And because it has two i's in the name, the idea to discuss this all on another wiki site (JiniWiki) wasn't very hard to come up with. -- CeesDeGroot ---- I'm just starting with Jini and whilst the technology seems good, the API is dreadful. I'm amazed at how many calls take null arguments to mean defaults (try using overloading instead) and how many classes have public data (all of these classes are ValueObject''''''s). -- NoelWelsh ---- Version 2 of the spec and Jini Technology Starter Kit was released in June of 2003. It still lacks a clean "out of the box" setup. ---- Ruby ships with a Jini-like technology named RubyRingServer. ---- Jini (http://www.jini.org) has been designed from the beginning to support distributed Service Oriented Architectures (SOA) by directly addressing Deutsch's ''Eight Fallacies of Distributed Computing'' (L. Peter Deutsch, Sun Labs): * The network is reliable * Latency is zero * Bandwidth is infinite * The network is secure * Topology doesn't change * There is one administrator * Transport cost is zero * The network is homogeneous Deutsch notes that "All prove to be false in the long run and all cause big trouble and painful learning experiences." Jini explicitly rejects these assumptions. As noted in WhatIsSoa, the four defining characteristics of an SOA are: * Functionality is exposed as a set of services. * Services make themselves available by registering with a lookup mechanism. * Clients find services only via the lookup mechanism. * Clients bind to services dynamically. Jini implements each of these characteristics explicitly, making it an ideal implementation technology. The key benefits of Jini are: * ''Protocol Independence'' Services can be implemented using existing communication protocols. The default protocol used by Jini is RMI. * ''Location Independence'' Components that use services do not need to be configured with explicit knowledge of the location of the service. Service implementations can be moved without impacting clients. * ''Interface / Implementation Decoupling'' Implementations of services can be modified dynamically without impact to clients. * ''Automatic Performance Tuning'' Load balancing and other performance enhancements can be made dynamically by bringing up additional instances of services or moving instances to better hardware. Clients are not impacted by, or even aware of, these operations. * ''Monitoring & Management'' All Jini services can be monitored and managed via JMX or SNMP. * ''Security'' Jini provides a "pluggable" security model that works with existing tools. Jini is lightweight compared to alternatives such as WebServices, J2EE, or proprietary products. Proficient Java developers quickly pick up the technology and spend more of their time building business functionality rather than struggling with overly complex tools. For all of its strengths as an SOA implementation technology, Jini is not the best choice for providing business functionality to external parties. A more restricted interface mechanism should be used at an organization's virtual borders. ---- I misread the title of this page as "Jimi Technology", which made me think of ripping out some fantastically intricate algorithms then setting your keyboard on fire. ---- See also JavaSpaces, GigaSpaces