Download presentation
Presentation is loading. Please wait.
Published byEunice Skinner Modified over 9 years ago
1
11/13/00 1 Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)
2
11/13/00 2 Home networking - Applications Computer Interconnection Control
3
11/13/00 3 Home networking technologies – Physical layer Phoneline Powerline Ethernet Wireless
4
11/13/00 4 We wanted … A Dynamic network Configuration Sharing resources Maintanence Control - from anywhere, anytime
5
11/13/00 5 Design issues System Software Hardware Integrating hardware with software
6
11/13/00 6 Connection Technology Jini UPnP
7
11/13/00 7 Choices – Operating system Linux Unix variants Windows Guiding principle - Source availability, Synopsys’ network
8
11/13/00 8 Choices - Hardware Verilog - Popular in North America VHDL - Popular in Europe Guiding principle - Time to Market
9
11/13/00 9 Verification
10
11/13/00 10 Co-verification using Eaglei Link models Instruction set simulator (ISS) Live Target
11
11/13/00 11 GenericVSPRead32() Eaglei VSP Memory /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
12
11/13/00 12 ISS model BFM ISS Actual Instructions Full visibility into the processor and can execute assembly instrs Good for debugging device drivers
13
11/13/00 13 Finally, each device Application using Jini JVM Java Native Interface Eaglei Verilog Model
14
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 WWW CLIENT 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
15
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
16
11/13/00 16 Components InfrastructureProgramming model Services JVM, RMI, Discovery/Join, Lookup service, Java security Java API, Leasing, Transactions, events Printer, Refrigerator, …
17
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
18
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.
19
11/13/00 19 Service Provider Lookup Service Lookup’s proxy Service Provider Lookup Service Lookup’s proxy
20
11/13/00 20 Service Provider Lookup Service Lookup’s proxy 1. Get Lookup’s proxy from the lookup DISCOVERY
21
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
22
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
23
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
24
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:4160 via UDP Multicast) IP Address - 224.0.1.85 port:4160 2. Response Message – Service Proxy sent (Sent via TCP unicast)
25
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
26
11/13/00 26 Multicast Announcement (Lookup initiated discovery) Discoverer Lookup Service 1. Announcements (sent via UDP Multicast) IP Address - 224.0.1.84 port:4160 3. Response Message (Sent via TCP unicast) 2. Request Message (sent via TCP unicast)
27
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.
28
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)
29
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
30
11/13/00 30 Join Protocol Client Service Object Service Attributes Service Provider Service Object Service Attributes Client Lookup Service Service Object Service Attributes
31
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.
32
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
33
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
34
11/13/00 34 Full Jini Capable Device Network Proxy Client Service client JVM Hardware Implementation Service Provider Communication via RMI protocol Private Protocol
35
11/13/00 35 Clustering of devices with a Jini capable proxy on the network Network Client Service clientNetwork Proxy Communication via RMI protocol Proxy JVM Private Protocol Dev 1Dev 2Dev 3
36
11/13/00 36 Conclusions Encouraging Easy to put together Discouraging Bad response time Jini + JVM (+ OS) is very heavy
37
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 WWW CLIENT 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 Refrigerator SmartPhone Printer
38
11/13/00 38 Finally, each device Application using Jini JVM Java Native Interface Eaglei Verilog Model
39
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
40
11/13/00 40 Security - Service Specify Policy File as command line argument java –Djava.security.policy=“filename” Sample Policy File grant { 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"; };
41
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"; };
42
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
43
11/13/00 43 Co-verification
44
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 1Dev 2Dev 3
45
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.