Jini
Encyclopedia
Jini also called Apache River, is a network architecture
Network architecture
Network architecture is the design of a communications network. It is a framework for the specification of a network's physical components and their functional organization and configuration, its operational principles and procedures, as well as data formats used in its operation.In...

 for the construction of distributed systems in the form of modular co-operating services.

Originally developed by Sun
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

, Jini was released under an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 license (Apache license
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

). Responsibility for Jini is being transferred to Apache
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

 under the project name "River".

Overview

Jini technology is a service oriented architecture that defines a programming model which both exploits and extends Java technology to enable the construction of secure, distributed systems consisting of federations of well-behaved network services and clients. Jini technology can be used to build adaptive network systems that are scalable, evolvable and flexible as typically required in dynamic computing environments. Jini offers a number of powerful capabilities such as service discovery and mobile code.

The term Jini refers to both a set of specifications and an implementation; the latter is referred to as the Jini Starter Kit. Both the specifications and the Starter Kit have been released under the Apache 2.0 license and have been offered to the Apache Software Foundation's Incubator.

Jini provides facilities for dealing with some of the fallacies of distributed computing
Fallacies of Distributed Computing
The Fallacies of Distributed Computing are a set of assumptions that Peter Deutsch and others at Sun Microsystems originally asserted programmers new to distributed applications invariably make...

, problems of system evolution, resilience
Resilience (network)
In computer networking: “Resilience is the ability to provide and maintain an acceptable level of service in the face of faults and challenges to normal operation.”These services include:* supporting distributed processing* supporting networked storage...

, security and the dynamic assembly of service components. Code mobility
Code Mobility
In distributed computing, code mobility is the ability for running programs, codes or objects to be migrated from one machine to another. This is the process of moving code across the nodes of a network as opposed to distributed computation where the data is moved...

 is a core concept of the platform and provides many benefits including non-protocol dependence.

One of the goals of Jini is to shift the emphasis of computing away from the traditional disk-drive oriented approach, to a more network oriented approach. Thus resources can be used across a network as if they were available locally. Jini is based on Java, and is similar to Java Remote Method Invocation
Java remote method invocation
The Java Remote Method Invocation Application Programming Interface , or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls ....

 but more advanced. Jini allows more advanced searching for services, through a process of discovery of published services (making Jini akin to the service-oriented architecture
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...

 concept).

There are three main parts to a Jini scenario. These are the client, the server, and the lookup service.

The service is the resource which is to be made available in the distributed environment. This can include physical devices (such as printers or disk drives) and software services (for example a database query or message service). The client is the entity which uses the service.

History

Sun introduced Jini in July 1998. In November of the same year, Sun announced that there were some firms already supporting Jini.

The Jini team at Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 has always stated that Jini is not an acronym. Some have joked that it meant Jini Is Not Initials, but it's always been just Jini. The word "Jini" means "the devil" in Swahili
Swahili language
Swahili or Kiswahili is a Bantu language spoken by various ethnic groups that inhabit several large stretches of the Mozambique Channel coastline from northern Kenya to northern Mozambique, including the Comoro Islands. It is also spoken by ethnic minority groups in Somalia...

; this is a loan from an Arabic word for a mythological spirit, which is also the origin of the English word 'genie
Genie
Jinn or genies are supernatural creatures in Arab folklore and Islamic teachings that occupy a parallel world to that of mankind. Together, jinn, humans and angels make up the three sentient creations of Allah. Religious sources say barely anything about them; however, the Qur'an mentions that...

'. However many Java technologies begin with a capital J, and therefore such language comparisons may be better applied to only the last three letters ("ini") instead of the entire name.

Using a service

The first step in creating a Jini service is for the service to find the lookup service (LUS) - a process called discovery. Once the LUS is found, it returns a Service Registrar object to the service, which is used to register the service in the lookup (the join process). This involves providing information about the service to be provided, such as the ID of the service, the object which actually implements it and other attributes of the service.

When a client wishes to make use of a service, it too uses discovery to find the LUS - either by unicast
Unicast
right|200pxIn computer networking, unicast transmission is the sending of messages to a single network destination identified by a unique address.-Addressing methodologies:...

 interaction, when it knows the actual location of the LUS, or by dynamic multicast
Multicast
In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source creating copies automatically in other network elements, such as routers, only when the topology of the network requires...

 discovery. After contacting the LUS, the client is returned a Service Registrar object, which it uses to look up a particular service. It does this by consulting the lookup catalog on the LUS and searching based on the type, name or description of a service. The LUS will return a Java proxy, specifying how to connect directly to the service. This is one of the ways in which Jini is more powerful than RMI, which requires the service to know the location of the remote service in advance.

Using the Proxy, the client may connect directly to the service implementation (without further interaction with the LUS), and use it as if it were a local service. However, there are some differences to the event model, in that the order of events occurring across a network cannot be guaranteed.

Services in Jini will not necessarily be permanently available, which leads to the concept of leasing. When a service registers with a LUS, a lease is granted, with a certain duration. This can be manually decided, or set to a default (such as 'forever'). Leases will need to be periodically renewed, to check a service is still 'alive', which means if a service fails or becomes unreachable, it can be timed out.

Jini uses serialization to send Java objects across the network. This means an entire Java object can be saved and sent, and used remotely as if it were local, as opposed to creating a specific format for sending data in each new implementation.

Jini services can be grouped together, to allow a client to search for specific groups. A group of services in Jini is called a federation.

Limitations

Jini uses a lookup service to broker communication between the client and service. This appears to be a centralized model (though the communication between client and service can be seen as decentralized) that does not scale well to very large systems. However, the lookup service can be scaled by running multiple instances that listen to the same multicast group.

Because Jini is implemented in Java, many applications require a Java virtual machine to be present.

See also

  • Java RMI
    Java remote method invocation
    The Java Remote Method Invocation Application Programming Interface , or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls ....

  • Ken Arnold
    Ken Arnold
    Kenneth Cutts Richard Cabot Arnold is an American computer programmer well known as one of the developers of the 1980s dungeon-crawling computer game Rogue, for his contributions to the original Berkeley distribution of Unix, for his books and articles about C and C++ Kenneth Cutts Richard Cabot ...

    , one of the original Jini architects
  • Juxtapose (JXTA
    JXTA
    JXTA is an open source peer-to-peer protocol specification begun by Sun Microsystems in 2001. The JXTA protocols are defined as a set of XML messages which allow any device connected to a network to exchange messages and collaborate independently of the underlying network topology.As JXTA is based...

    )
  • Java Management Extensions
    Java Management Extensions
    Java Management Extensions is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service oriented networks. Those resources are represented by objects called MBeans...

     (JMX)
  • JavaSpaces
  • Simple Network Management Protocol
    Simple Network Management Protocol
    Simple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks, and more." It is used mostly in network management systems to monitor...

     (SNMP)
  • Zero Configuration Networking
    Zeroconf
    Zero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....

  • OSGi
    OSGi
    The Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...

     Alliance
  • Service Location Protocol
    Service Location Protocol
    The Service Location Protocol is a service discovery protocol that allows computers and other devices to find services in a local area network without prior configuration. SLP has been designed to scale from small, unmanaged networks to large enterprise networks...

  • Salutation
    Salutation (computing)
    Salutation in computing is a technique for service discovery and service management.-See also:* Service Location Protocol* Zero Configuration Networking * OSGi Alliance* Jini* Universal Plug and Play * Bluetooth-References:*Golden G...

  • Universal Plug and Play
    Universal Plug and Play
    Universal Plug and Play is a set of networking protocols for primarily residential networks without enterprise class devices that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence...

     (UPnP)
  • Device Profile for Web Services (DPWS)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK