Download presentation
Presentation is loading. Please wait.
1
Project Discussion CSCI 599 – Software Engineering for Embedded Systems September 17, 2002
2
Project Structure 8 teams of 3 students All teams working on the same project 1 PocketPC per student with wireless network card Prism-MW –Java –EVC++ (if desired) Prism-DE (if desired)
3
Project Details Service discovery during disconnection –Goal: graceful degradation Each device provides and requires different sets of services Each service is provided and required by multiple devices When a device goes down, the services it provides must be discovered and accessed from “live” devices
4
Application “Look and Feel” (1) Number 1: Number 2: Result: Add Sub Mult Div Exp Root Max Min Inv Avg Log Ln Sin Cos Tan Cot Operations with two operands (x and y) Add sums x and y Sub subtracts y from x Mult multiplies x and y Div divides x by y Exp raises x to power of y Root takes y th root of x Max returns greater of x and y Min returns smaller of x and y Avg returns average of x and y Operations with one operand (x) Inv returns inverse of x (1/x) Log returns base 10 logarithm of x Ln returns natural logarithm of x Sin returns sine of x Cos returns cosine of x Tan returns tangent of x Cot returns cotangent of x
5
Application “Look and Feel” (2) Service = Available Locally Service = Available Remotely Service = Unavailable = Not Needed by Device Number 1: Number 2: Result: Add Sub Div Exp Root Max Min 1/x Avg Log Ln Sin Cos
6
Application Architecture – Single Device UI Regular Connector Bottom Border Connector Top Border Connector Math Request Notification Result (Float num); Oper(Float num1); Oper(Float num1, Float num2);
7
Application Architecture – Two-Device UI Regular Connector Bottom Border Connector Top Border Connector Math UI Regular Connector Bottom Border Connector Top Border Connector Math
8
Application Architecture – Multi-Device UI Regular Connector Bottom Border Connector Top Border Connector Math UI Regular Connector Bottom Border Connector Top Border Connector Math UI Regular Connector Bottom Border Connector Top Border Connector Math UI Regular Connector Bottom Border Connector Top Border Connector Math
9
Device and Service Discovery Protocol Device discovery –Requests DiscoverDevices(); // may not stay connected to discovered device(s) ConnectDevice(String deviceID); DisconnectDevice(String deviceID); –Notifications Device(String deviceID); DeviceDown(String deviceID); Service discovery –Requests DiscoverAllDeviceServices(String deviceID); DiscoverDeviceService(String deviceID, String name); DiscoverService(String name); –Notifications AllDeviceServices(String deviceID, Vector names); Service(String deviceID, String name);
10
Resource Awareness CPU speed –Requests SetCPUSpeed(String deviceID; Integer speed); GetCPUSpeed(String deviceID); –Notifications CPUSpeed(String deviceID; Integer speed); Network Throughput –Requests SetNetworkThroughput(String deviceID; Integer throughput); GetNetworkThroughput(String deviceID); –Notifications NetworkThroughput(String deviceID; Integer throughput);
11
Device Load CPU load –Requests GetCPULoad(String deviceID); –Notifications CPULoad(String deviceID; Integer load); –Load = # services executed locally / second –Updated continuously during the application’s execution Network Load (per socket) –Requests GetNetworkLoad(String deviceID); –Notifications NetworkLoad(String deviceID; Integer load); –NetworkLoad = # messages through socket / second –Updated continuously during the application’s execution
12
Allowed Dynamic Changes Sets of provided and required services may change during runtime –Components may be added/removed on a device add, remove, weld, unweld methods in Prism-MW –Devices may be added/removed –UI component may be instructed to modify list of required services Requests –AddRequiredService(String service); –RemoveRequiredService(String service); –ReplaceRequiredServices(Vector services);
13
Testing Criteria 1.Access required services locally (5 pts) 2.Access required services from a known remote host (10 pts) 3.Discover and access services in a decentralized setting (15 pts) Single requiring device Origin of service is unimportant 4.#3, but most efficiently (15 pts) Find devices that have the service Select optimal service provision devices based on CPUSpeed, CPULoad, NetworkThroughput, and NetworkLoad of the provision device 5.#4, but for multiple devices simultaneously (25 pts) 6.#5, but with trusted devices being added (20 pts) 7.Documentation (10 pts) 8.#5, but with potentially untrusted (your opponents’) devices being added (up to 30 pts extra credit) Denying access to own services and accessing services denied by opponents Security “tricks” allowed, but no IP address known a priori and team id information assigned “on the spot”
14
What Will Be Provided at Demo Time Test application PDAs to load up the code –IP addresses, etc. Team ID Updated Prism-MW to “fairly” simulate speed of execution based on CPUSpeed, CPULoad, NetworkThroughput, and NetworkLoad Distribution of application components across the devices –Both provided and required services
15
Winning the Game Four pairs of teams take part in the “quarterfinals” Winners are determined based on two criteria – in order of importance 1.Smallest number of unserviced requests due to disconnection 2.Fastest execution time Winners move on until one team is left –In case of a tie, both teams move on –10 pts per win
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.