">Slide show

Jini: A Java SOA that rocks

Jan Newmarch
jan@newmarch.name
Monash University

Demo: Flashing clocks


Eight fallacies of distributed systems

Some middleware systems

Common to (most) middleware systems

Jini is...

Jini as paradigm

Mantra: the network cannot be ignored

Jini as specification

Jini as programming model

Jini defines a Java API for...

Jini as reference implementation

The end of protocols

This has been in Jini since the beginning - but its importance is only slowly being realised


Jini in action


Jini in action details

Lookup discovery and join

Service discovery

Client and service interaction


Support Services

Non-distributed Application


Distributed Version


Client Structure

Internally a client will look like

prepare for discovery
discover a lookup service
prepare a template for lookup search
lookup a service
call the service

Server Structure

prepare for discovery
discover a lookup service
create information about a service
export a service
renew leasing periodically

SIMPLE SYSTEM

Jini Converter Service


Jini Service Specification

Jini Service Implementation

Jini Server

Jini Client


Jini Environment


SECURITY


JDK 1.2 Security


Service requirements


grant {
    permission net.jini.discovery.DiscoveryPermission "*";
    // multicast request address
    permission java.net.SocketPermission "224.0.1.85", "connect,accept";
    // multicast announcement address
    permission java.net.SocketPermission "224.0.1.84", "connect,accept";

    // RMI connections
    permission java.net.SocketPermission "*.dstc.edu.au:1024-", "connect,accept";
    permission java.net.SocketPermission "130.102.176.249:1024-", "connect,accept";
    permission java.net.SocketPermission "127.0.0.1:1024-", "connect,accept";

    // reading parameters
    // like net.jini.discovery.debug!
    permission java.util.PropertyPermission "net.jini.discovery.*", "read";
};

Client requirements

The client is most at risk as it imports remote objects into its address space

Client policy


grant {
    permission net.jini.discovery.DiscoveryPermission "*";

    // multicast request address
    permission java.net.SocketPermission "224.0.1.85", "connect,accept";
    // multicast announcement address
    permission java.net.SocketPermission "224.0.1.84", "connect,accept";

    // RMI connections
    permission java.net.SocketPermission "127.0.0.1:1024-", "connect,accept";
    permission java.net.SocketPermission "*.dstc.edu.au:1024-", "connect,accept";
    permission java.net.SocketPermission "130.102.176.249:1024-", "connect,accept";

    // DANGER
    // HTTP connections - this is where external code may come in - careful!!!
    permission java.net.SocketPermission "127.0.0.1:80", "connect,accept";
    permission java.net.SocketPermission "*.dstc.edu.au:80", "connect,accept";

    // reading parameters
    // like net.jini.discovery.debug!
    permission java.util.PropertyPermission "net.jini.discovery.*", "read";

};

Variations

URLs


Jan Newmarch (http://jan.newmarch.name)
jan@newmarch.name
Last modified: Sat Dec 2 23:28:45 EST 2006
Copyright ©Jan Newmarch