11/13/00 1 design of a home network rajesh rajamani ([email protected])
TRANSCRIPT
![Page 2: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/2.jpg)
11/13/00 2
Home networking - Applications
Computer Interconnection
Control
![Page 3: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/3.jpg)
11/13/00 3
Home networking technologies – Physical layer
Phoneline Powerline Ethernet Wireless
![Page 4: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/4.jpg)
11/13/00 4
We wanted …
A Dynamic network Configuration Sharing resources Maintanence Control - from anywhere, anytime
![Page 5: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/5.jpg)
11/13/00 5
Design issues
System Software
Hardware
Integrating hardware with software
![Page 6: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/6.jpg)
11/13/00 6
Connection Technology
Jini
UPnP
![Page 7: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/7.jpg)
11/13/00 7
Choices – Operating system
Linux
Unix variants
Windows
Guiding principle - Source availability, Synopsys’ network
![Page 8: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/8.jpg)
11/13/00 8
Choices - Hardware
Verilog - Popular in North America
VHDL - Popular in Europe
Guiding principle - Time to Market
![Page 9: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/9.jpg)
11/13/00 9
Verification
![Page 10: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/10.jpg)
11/13/00 10
Co-verification using Eaglei
Link models
Instruction set simulator (ISS)
Live Target
![Page 11: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/11.jpg)
11/13/00 11
GenericVSPRead32()
Eaglei
VSPMemory
/registers
1. Function call
2. Reaches VSP core thru eaglei
3. I/O bound instructions are
executed
Link model
Full visibility into the s/w execution process
Can test functionality of the design
![Page 12: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/12.jpg)
11/13/00 12
ISS model
BFMISS
Actual Instructions
Full visibility into the processor and can execute assembly instrs
Good for debugging device drivers
![Page 13: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/13.jpg)
11/13/00 13
Finally, each device
Application using Jini
JVM
Java Native Interface
Eaglei
Verilog Model
![Page 14: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/14.jpg)
11/13/00 14
The Network
The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client.
DEVICES
WWWCLIENT SERVLET
The Client clicks on the link leading to his URL requesting a service
Jini Lookup
1. Ask for the service
2. Get the service proxy
3. Interact with device
![Page 15: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/15.jpg)
11/13/00 15
Jini Connection Technology
Java centric, distributed system designed for simplicity, flexibility and federation
Members of the federation agree on basic notions of trust, administration, identification and policy
Components - Services, Infrastructure and programming model
![Page 16: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/16.jpg)
11/13/00 16
Components
Infrastructure Programming model
Services
JVM, RMI, Discovery/Join, Lookup service,
Java security
Java API,
Leasing, Transactions,
events
Printer, Refrigerator,
…
![Page 17: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/17.jpg)
11/13/00 17
Key concepts
Lookup Service - Central bootstrapping mechanism for the system; helps find and resolve available services; service added to a lookup service by a pair of protocols - Discovery and Join
Leasing - Grant of guaranteed services over a time period
Security – JDK 1.2 Security model
![Page 18: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/18.jpg)
11/13/00 18
Key concepts
Service object contains the Java programming language interface for the service, including the methods that users and applications will invoke to execute the service along with any other descriptive attributes.
![Page 19: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/19.jpg)
11/13/00 19
Service Provider
Lookup Service
Lookup’s proxy
Service Provider
Lookup Service
Lookup’s proxy
![Page 20: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/20.jpg)
11/13/00 20
Service Provider
Lookup Service
Lookup’s proxy
Lookup’s proxy
1. Get Lookup’s proxy from the lookup
DISCOVERY
![Page 21: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/21.jpg)
11/13/00 21
Service Provider
Service Attributes
Lookup Service
Service Object
Service Attributes
Service Object
Lookup’s proxy
1. Get Lookup’s proxy from the lookup
2. Register service object with lookup
Lookup’s proxy
JOIN
![Page 22: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/22.jpg)
11/13/00 22
Service Provider
Service Object
Service Attributes
Client
Lookup Service
Service Object
Service Attributes
3b. Interact with service
2b. Gets Service Proxy
1b. Query the Lookup service
![Page 23: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/23.jpg)
11/13/00 23
Discovery and Join
Discovery - Process by which Jini applications find the lookup services that serve their communities.
Two forms - Serendipitous and hard wired.
Service initiated discovery, Lookup initiated discovery and direct discovery
![Page 24: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/24.jpg)
11/13/00 24
Multicast Request (Service Initiated Discovery
Discoverer Lookup Service
1. Request Message (sent via UDP Multicast) IP Address - 224.0.1.85 port:4160via UDP Multicast) IP Address - 224.0.1.85 port:4160
2. Response Message – Service Proxy sent (Sent via TCP unicast)
![Page 25: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/25.jpg)
11/13/00 25
Protocol Characteristics
Multicast UDP to IP - 224.0.1.85, port 4160
Interval - 5 secs. Seven rounds of multicast requests is recommended
Switch over to listening for announcements
Multicast Packet length never to exceed 512 bytes
![Page 26: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/26.jpg)
11/13/00 26
Multicast Announcement (Lookup initiated discovery)
Discoverer Lookup Service
1. Announcements (sent via UDP
Multicast) IP Address - 224.0.1.84port:4160
3. Response Message(Sent via TCP unicast)
2. Request Message (sent via TCP unicast)
![Page 27: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/27.jpg)
11/13/00 27
Protocol Characteristics
Multicast UDP to IP - 224.0.1.84, port 4160
Interval - 120 secs.
Multicast Packet length never to exceed 512 bytes.
![Page 28: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/28.jpg)
11/13/00 28
Unicast Discovery (Direct Discovery)
Discoverer Lookup Service
1. Request Message (sent via TCP Unicast)
2. Response Message(Sent via TCP unicast,connects to 4160)
![Page 29: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/29.jpg)
11/13/00 29
Join Protocol
Registering with the lookup service
The service object for the service is loaded into the lookup service
Get a lease - a period of time during which the lease grantor ensures that the holder of the lease will have access to some resource
![Page 30: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/30.jpg)
11/13/00 30
Join Protocol
Client
Service Object
Service Attributes
Service Provider
Service Object
Service Attributes
Client
Lookup Service
Service Object
Service Attributes
![Page 31: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/31.jpg)
11/13/00 31
Lookup Service Specification`
Programs that need a particular type of service can use the lookup service to find an instance.
Lookup service may provide a set of methods to enable incremental exploration of the collection.
Users are allowed to explore a collection of items down each of the major axes: attribute value and service type.
![Page 32: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/32.jpg)
11/13/00 32
Lookup Service
Service Provider
Service Object
Service Attributes
Client
Lookup Service
Service Object
Service Attributes
3. Interact with service
2. Gets Service Proxy
1. Query the Lookup service
![Page 33: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/33.jpg)
11/13/00 33
Device Architecture Alternatives
Device with computing power, memory, full JVM
Devices with specialized JVMs - need not include security manager, code verifier, or a number of other components
Clustering of devices with a Shared Virtual Machine
![Page 34: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/34.jpg)
11/13/00 34
Full Jini Capable Device
Network
Proxy
Client
Service client
JVM
Hardware Implementation
Service Provider
Communication via RMI protocol
Private Protocol
![Page 35: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/35.jpg)
11/13/00 35
Clustering of devices with a Jini capable proxy on the network
Network
Client
Service client Network Proxy
Communication via RMI protocol
ProxyJVM
Private Protocol
Dev 1
Dev 2
Dev 3
![Page 36: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/36.jpg)
11/13/00 36
Conclusions
Encouraging Easy to put together
Discouraging Bad response time Jini + JVM (+ OS) is very heavy
![Page 37: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/37.jpg)
11/13/00 37
The Network
The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client.
DEVICES
WWWCLIENT SERVLET
The Client clicks on the link leading to his URL requesting a service
Jini Lookup
1. Ask for the service
2. Get the service proxy
3. Interact with deviceRefrigerator SmartPhone Printer
![Page 38: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/38.jpg)
11/13/00 38
Finally, each device
Application using Jini
JVM
Java Native Interface
Eaglei
Verilog Model
![Page 39: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/39.jpg)
11/13/00 39
Danger – if proxy overrides deserialization method
public class HostileFileClassifier2 implements FileClassifier, java.io.Externalizable {
public void readExternal(java.io.ObjectInput in) { if (java.io.File.pathSeparator.equals("/")) { // Unix - don't uncomment the next line! // Runtime.getRuntime().exec("/bin/rm -rf /"); } else { // DOS - don't uncomment the next line! // Runtime.getRuntime().exec("format c: /u"); } } public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException{ out.writeObject(this); } } // HostileFileClassifier2
![Page 40: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/40.jpg)
11/13/00 40
Security - Service
Specify Policy File as command line argument java –Djava.security.policy=“filename”
Sample Policy Filegrant { permission net.jini.discovery.DiscoveryPermission “printers"; // 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 "*.cs.wisc.edu: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";};
![Page 41: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/41.jpg)
11/13/00 41
Security - Client
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 - DANGER // HTTP connections - this is where external code may come in - careful!!! permission java.net.SocketPermission "127.0.0.1:1024-", "connect,accept"; permission java.net.SocketPermission "*.cs.wisc.edu:1024-", "connect,accept"; permission java.net.SocketPermission "130.102.176.249:1024-", "connect,accept";
// 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 "*.cs.wisc.edu:80", "connect,accept";
};
![Page 42: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/42.jpg)
11/13/00 42
Bluetooth v/s Jini
Bluetooth - transport layer, allowing devices to find each other, to form a local network. It does not say what they do then
Jini - application layer, allowing services and clients to use each other
Complementary
![Page 43: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/43.jpg)
11/13/00 43
Co-verification
![Page 44: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/44.jpg)
11/13/00 44
Clustering of multiple devices (physical option)
Network
Service client
Communication via RMI protocol
Proxy
Client
Service Provider
JVM
Private Protocol
Dev 1
Dev 2
Dev 3
![Page 45: 11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649ee05503460f94bf1098/html5/thumbnails/45.jpg)
11/13/00 45
Leasing Characteristics
A lease is a period of time during which the lease grantor ensures that the holder of the lease will have access to some resource
A lease holder can request that a lease be renewed. If not renewed, the lease simply expires