19
Mpc 2009 exam my answer: Question 1 [30 marks] i). [4 marks] What is pervasive computing? computing that “pervades” into our life (Mark Weiser definition) mobile computing, ubiquitous computing Mobile devices and devices (embedded) in the environment (and surrounding users) working together Computing involving mobile devices and often wireless networking Originated from the idea of ubiquitous computing by Mark Weiser: “The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.” Related topics: invisible computing, disappearing computer, ambient intelligence Embedding computation/computers into everyday life Vision of devices or computers pervading lives (almost synonymous with “ubiquitous”) IBM Chairman Lou Gerstner once describe: “… a billion people interacting with a million e-businesses with a trillion intelligent devices interconnected.” Very much fuelled by advances in new devices (gadgets), wireless networking and the Internet Harnessing & User interacting with devices worn on, or carried by, the user AND devices embedded in the environment Interplay between devices on user and the user’s environment Embedding computers (and networking and sensing) into everyday objects and life Bringing the computer to where the action is ii). [4 marks] Give two examples of pervasive computing applications and explain the characteristics of these applications that make you classify them as pervasive computing applications? Such as billboard advertisement, user type input from her mobilephone – it will appear in the billboard Locate places of interest, user find places in which she is currently in the area. - RFID Based Maintenance at Frankfurt Airport (Slides11.1) - Total Navigation Support in Japan - SMS Games The characteristic of the applications: mobile and ubiquitous, the technology is applicable anywhere, anytime and anyway to access data, knowledge, computional support or resources. It includes

Our Discussion

Embed Size (px)

Citation preview

Page 1: Our Discussion

Mpc 2009 exam my answer:

Question 1 [30 marks]i). [4 marks] What is pervasive computing?

computing that “pervades” into our life (Mark Weiser definition) mobile computing, ubiquitous computing Mobile devices and devices (embedded) in the environment (and surrounding

users) working together Computing involving mobile devices and often wireless networking Originated from the idea of ubiquitous computing by Mark Weiser: “The most profound technologies are those that disappear. They weave

themselves into the fabric of everyday life until they are indistinguishable from it.”

Related topics: invisible computing, disappearing computer, ambient intelligence

Embedding computation/computers into everyday life Vision of devices or computers pervading lives (almost synonymous with

“ubiquitous”) IBM Chairman Lou Gerstner once describe: “… a billion people interacting with

a million e-businesses with a trillion intelligent devices interconnected.” Very much fuelled by advances in new devices (gadgets), wireless networking

and the Internet Harnessing & User interacting with

devices worn on, or carried by, the user AND devices embedded in the environment Interplay between devices on user and the user’s environment

Embedding computers (and networking and sensing) into everyday objects and life

Bringing the computer to where the action is

ii). [4 marks] Give two examples of pervasive computing applications and explain the characteristics of these applications that make you classify them as pervasive computing applications?

Such as billboard advertisement, user type input from her mobilephone – it will appear in the billboard

Locate places of interest, user find places in which she is currently in the area.- RFID Based Maintenance at Frankfurt Airport (Slides11.1)- Total Navigation Support in Japan- SMS Games The characteristic of the applications: mobile and ubiquitous, the technology is

applicable anywhere, anytime and anyway to access data, knowledge, computional support or resources. It includes everyday life activites of devices user and the user environment. Both devices are embedded in the environment.

iii). [6 marks] What are the main characteristics of the mobile computing environmentthat makes it different from the desktop computing environment? [Hint: Consider the characteristics of mobile devices, wireless communication and the typical user of mobile devices.]

Page 2: Our Discussion

characteristics of wireless communication: frequent disconnections, predictable disconnections physical support for broadcast asymmetry: data volume from server to client > client to server;

downlink and uplink difference, small number of servers for many clients monetarily expensive relatively unreliable high bandwidth variability (e.g., susceptibility to interference), low

bandwidth characteristics of mobile device

limited resources: limited memory, limited computational power, small screen

limited battery life variability of resources across device types frequent location updates

characteristics of user: on the move, less patience (expects just-in-time information), may change devices

iv). [6 marks] Compare application-aware adaptation and application-transparent adaptation – what are the advantages and disadvantages of each?

Application-awareness of adaptation: how much should an application be aware of an adaptation?

Two extremes: Laissez-faire adaptation: no system support, each application is built

with the ability to adapt E.g., a multimedia application is built with features to adapt to

changing network conditions (change from colour to B&W frames as bandwidth drops)

Application-transparent adaptation: the application is not even aware of adaptations (done by another system)

E.g., the multimedia application does not know that adaptation is taking place – an external system detects the low bandwidth and notifies the server to send B&W frames, which are then forwarded to the application

Time contraints Middle-ground: collaboration between the application and a system (designed

to aid with adaptations) Transparency: transparent in the sense that certain characteristics of a system

are hidden from (i.e. transparent to) the userE.g.:

access transparency: users can access the same data from different devices

location transparency: users can access the same resources independent of location

failure transparency: users do not notice that there has been failure

Page 3: Our Discussion

Example – In Odyssey, the role of the operating system is to sense external events (such as connectivity and physical location changes), and to monitor and allocate resources (such as network bandwidth, cache space, battery power, and communication budget). In contrast, the role of individual applications is to adapt to changing conditions by using the information and resources provided by the operating system. (the application subscribes to notifications about changes via the Odyssey API)The nature of the adaptation is specific to the application. For example, in accessing video data, degrading the display from full motion color to black and white, and thence to slow-scan might be appropriate. But when accessing map data, the meaningful form of degradation might be to lower the resolution and minimum feature size represented. The overall goal is to minimize the need for active intervention by users to cope with the consequences of mobility. For example, it is inappropriate to require the user to use a different video display program when bandwidth drops.

Why does lower fidelity cause the reduced power consumption?As the fidelity of the video is reduced, the processor can operate at correspondingly lower clock frequencies since the needed computation per frame is smaller. With such a processor, the total energy used by the lowest fidelity will be significantly reduced.

v). [10 marks] Oracle Lite architecture and MySQL Server on Mobile are two examples of mobile database systems.

a). [4 marks] Draw a diagram to show the main architectural components in a typical mobile database system.

Page 4: Our Discussion

b). [4 marks] Explain how a mobile database system supports data hoarding, disconnected operation and reintegration/synchronization. [Hint: Comment on why certain components are present in the architecture and what the functions of these components are.]Mobile database system supports: (Slides 1.4, no 47)

data hoarding (Oracle Lite DBMS- client side) Hoarding: preload data onto a mobile device to allow continued operation during disconnection; need to reintegrate after reconnection.

disconnected operation (Mobile Lite SQL and DB Lite DBMS ), update a hoard (snapshot unit), updates at Client

Oracle DBMS-server –main DB which stores

and reintegration/synchronization (Mobile sync module- middleware) use two way synchronization protocol, complete and incremental. eg: SyncML (Synchronization Markup Language ) prescribes a (XML) language and protocol for representing data exchanged between mobile host (MH) and server host. This is so that different devices can agree on the format for data being exchanged, for otherwise, it is difficult to synchronize data across multiple devices without an agreed representation and protocol

thus ensure connectivity.

c). [2 marks] Do existing mobile database systems support the push (broadcast) mode of delivery or pull (query) mode of delivery in bringing data from the stationary server to the mobile device?Push

Question 2 [30 marks]i). [10 marks] In developing a J2ME application which needs to obtain a lot of datafrom the server during its operation, we would like to reduce user wait time ifpossible, or at least, to allow the user the sense of being in control over the userinterface. Give three techniques that can be used to either reduce user wait time orhelp the user maintain control over the user interface while data is being downloaded.Multi-threading“When used properly, threads let the application's user interface remain responsive while it performs lengthy operations like network communication or very complicated computationsCaching (Slide 1.4 no.49)Prefetching

- Try to use thread, runnable, so while data is being load, user can do other activities, this will not effect user

Page 5: Our Discussion

- Keep user informed of what happen (put gauge for processing an action), so with this visual feedback, user will know current situation.

- Control the program, such as put wait form, so the user will have to wait and cant do other activities, this is to control the process such as for data is in high volume.

- Chunk data to be sent, such as sent data in multiple SMS, and sent it in friendly way, such as sent it as part1, then part2, so user know the sequence of data being sent.

ii). [8 marks] The figure below illustrates the lifecycle of a MIDlet application.

MIDP applications are managed by the Application Management Software (AMS (the execution environment for MIDlets)) on devices. MIDP applications, or “MIDlets”, move from state to state in their lifecycle according to a state diagram

Paused – initialized and waiting Active – has resources and is executing Destroyed – has released all resources, destroyed threads, and ended all

activity

a). Explain why the “Paused” state is useful. Initialize and waiting, release any shared resources and leave your MIDlet in a quiescent state, because the AMS or device OS will be bringing another application to the foreground.

b). Which method is called when the MIDlet first starts up? startApp()c). Which method is called when the MIDlet is paused? pauseApp()d). In programming a MIDlet, which method(s) must the programmer implement? startApp(), destroyApp(), pauseApp()

Method Description

startApp() Called by the AMS when the MIDlet starts to recover from the pause state

destroyApp() Called by the AMS when the MIDlet is terminated

pauseApp() Called by the AMS when the MIDlet is paused

notifyDestroyed() Called by the MIDlet. It asks the AMS to destroy the MIDlet itself

notifyPaused() Called by the MIDlet. It asks the AMS to pause the MIDlet itself.

resumeRequest() Called by the MIDlet. It notifies the AMS that MIDlet desires to come out of the paused state and become active again

Page 6: Our Discussion

iii). [6 marks] What is meant by a middleware for mobile applications? Give two examples of such a middleware.software that supports mediation between other software components, fostering interoperability between those components across heterogeneous platforms and varying resource levels or software layer between the operating system and the applications that provides a higher degree of abstraction in distributed programmingormiddleware for mobile computing platforms – e.g., Odyssey is an application-aware adaptation middleware

Vertical: application area specific (e.g., basic library of functionality for automotive applications)

Horizontal: provides a particular functionality (e.g., service delivery) usable by different applications

Eg 1: Oracle Fusion Middleware

iv). [6 marks] Below recall the set of commands used for controlling a MIDlet.

a). Explain why the command API is termed as “Abstract”. The set of commands is abstract because it is the phone that determines how to map each

command to a button on the phoneThe command is provided by the MIDlet, need to create codes to implement it.

b). In an application with many commands, why will certain commands be mapped to a submenu (and accessible via more than one button presses) whereas other commands are accessible directly via only one button press?Because soft button, because there are more than 2 commands, so the menu will be automatically created.

Page 7: Our Discussion

c). In a submenu containing three commands (“delete”, “update” and “execute”), how will you ensure that the command “execute” is at the top of the submenu, and the command “delete” is at the bottom of the submenu?Set the command priority

Question 3 [40 marks]

i). [4 marks] What is the general layered abstract architecture for context-aware computing applications?

ii). [8 marks] What would be the main components of a context-aware computing application, according to the Context Toolkit architecture?

(Slide 7.7)

iii). [4 marks] What does the term location model mean in context-aware computing? (Slides 6.2)

A location model determines how locations are to be represented

Page 8: Our Discussion

Basically represented using coordinates A coordinate x is an identifier which specifies the position of an object with

respect to a given coordinate system Examples:

Geographic coordinates (e.g., used in GPS) are expressed as triples:(<longitude>, <latitude>, <altitude>)Longitude: 0-180 degrees east or west of the Greenwich MeridianLatitude: 0-90 degrees north or south of the equatorAltitude: height in metres above sea level

Your own x,y,z value with respect to a local Cartesian reference system Active Badge: coordinates are the symbolic identifiers of the fixed IR

sensors

Two basic classes of coordinates: Geometric coordinates: defines position in terms of numbers meaningful

in terms of a geometrically based reference coordinate system - global/local, e.g., GPS is based on World Geodetic System 1984 (WGS84) as a standard global reference system

Symbolic coordinates: defines position in terms of abstract symbols (e.g., room name, street name, sensor identifiers of the Active Badge system)

Often what we do is map geometric coordinates to symbolic coordinates (i.e., symbolic names), thereby “interpreting” the numbers

iv). [12 marks] Consider the following two computer applications:a). a system for tracking the whereabouts of expensive movable equipment in a factory, andb). a system that issues advertisements about special sale offers (in a shopping area such as Melbourne’s Bourke Street mall) to the smartphones of subscribers.Describe the location model (give also the level of granularity you would use) and positioning technologies would you use for each of these computer applications.Explain your reasons briefly.

a) Location model: Symbolic location models:

Set-based models: represent (collective) relationships between locations by a simple set of symbols (e.g., a set of room numbers); operations on such a model are then based on set operationsGranularity: rooms (in meters)Positioning Technologies: Tag based: RFID, IR (Active Badge)

b) Location model: Geocodingc) Positioning Technologies: Wireless networking based: Bluetooth, cellular

networks (Cell ID identified using the Base Stations), Wireless LAN (e.g., www.ekahau.com). On a mobile phone, location provider depends on the location information - might be cell ID, GPS coordinates or symbolic (using IR or Bluetooth based beacons). Hardware of the phone determines what location method the API

Page 9: Our Discussion

calls map to, varies depending on the actual device the API has been implemented onSymbolic location models: hierarchical model, Granularity: shops

Uses of location models: Position queries: where is <this object>? Nearest neighbour queries: what is within a distance d of <this object>? Navigation: how do I get from A to B? Range queries: what are all the objects within this area? Visualization: can I see what is around me?

Depending on the type of queries to support, the location model needs to represent object positions, distance functions, topological relations (e.g., containment and connectedness), and orientation (with respect to some frame of reference)

v). [12 marks] Consider the case study of an ambient services application as below.The user can receive updates of different services when in different shops and zones/areas.

For example, the user sees a different list of services when in different areas/zones.

a). [6 marks] Given the floor plan above with shop areas, each at least of size 8m by 9m, describe a solution to provide zone-based positioning to determine which zones

Page 10: Our Discussion

(i.e., shop areas) users would be located in - describe the technologies you would use, e.g., hardware and software required, and your reasons, and state any assumptions you make.

Technologies used: mobile devices (client-side UI)+ positioning server (Ekahau Positioning Engine – keep track of mobile users in a WLAN)+ server module to coordinate server-side operations, consisted of :

1) Service Calculation Engine – calculate logical areas of users currently in2) service database - calculate service domain, mapping areas to services

Assumption:Web services assume present in remote servers,There is constant connection between EPE an SCEon change of location: used push based, symbolic location

OR other technology: Bluetooth – push messages to friends nearbyZone based positioning user would be located in using?Technologies? Sensors?Or user mobile device will receive signals from IR, BT connection, RFID reader in the device

b). [6 marks] You have been asked if a positioning technology that can only provide an update of the user’s location once every 15 seconds (and this is the fastest it can do so) will be useful for building this application. Would the time of location update of 15 seconds be good enough for the above application?Explain your answer.

Performance matters: user wait time vs time-spent by user in the area; also consider size of areas

Performance estimation (Time in second):T(service updated) = T(tracking user’s location) (2)+ T(accessing the database) + T(calculating services) (5)+ T(transmission of data between service engine and mobile device)

(1.2)Total= 8.2

This is standard of EPE system characteristics Other form is using RFID tag worn on a person is faster to detect change of location.So, 15 seconds for location update for that particular application is not good enough as tracking user’s location using standard EPE system (approximately 2 seconds) or by RFID because the system is slower compared to user change of location. The system is lag behind the user. Therefore the services available may not be detected in that range of time.

Question 4 [25 marks]i). [7 marks] Explain (using diagrams and examples) the concept of Radio Frequency (RF) fingerprinting, as a technique for positioning.Use Access points to measure the signal strength

1) calibration get the signal strength for reference point

Page 11: Our Discussion

2) get the signal points strength for the device3) compare with reference

Handout cisco pg 7, 25

ii). [3 marks] Propose a method to improve the accuracy of RF fingerprinting. Explain why your method would improve the accuracy.Instead of 3, add more access points because more signals reading is better for circle. Refer CISCO handout 11

iii) [7 marks] Explain why at least three WiFi access points are required for ReceivedSignal Strength (RSS) triangulation for WiFi. Draw diagrams and provide examples in explaining your answers.If there is only two APs there will be another point which have the same distance, that’s why need three AP at least.Because all the access points is spread out, different angle distinguish each APs, the similar strength look same. Greater chance for different APs.This method will compare signal strength measurements from access points at different distances away. (Slide 7.5)

iv). [8 marks] Given the floor plan below, the three small shaded circles represent the positions of (the only) three WiFi access points on the floor. Are these three positions for access points the best for positioning using Received Signal Strength (RSS) triangulation? If not, provide better positions for the three access points for positioning, and justify your answer.[HINT: Explain why the position of the WiFi access points are important for Received Signal Strength (RSS) triangulation for WiFi. Draw diagrams and provide examples in explaining your answers.]Cisco page 9, 1. The most important…..Calibration, each signal strength is unique where (a, b, c) is compared with all point. (a –s1)2 + (s2-b)2 +(s3-c)2

Question 5 [25 marks]i). [20 marks] Consider an orchid (a type of flower) plant industry.Based on:http://www.discoverrfid.org/what-is-possible/get-what-you-want/fresh-flowers.htmlOrchids are grown at a farm and then put into pots. The pots of orchids are placed in durable boxes, and then moved from the farms to warehouses, and then subsequently from the warehouses to retail stores. However, since each pot of orchid can be quite expensive (up to $70-$100 each), along the way, some of these orchids may simply be lost, stolen, or even wilted (i.e., go bad), leading to financial losses for the industry. Also, it is important that the relevant parties (including orchid growers at the plantation, retail stores and distributors who own the warehouses) be informed of such lost or wilted orchids as soon as possible. Sometimes, if counting of orchid pots or boxes is done manually, miscounting of pots or boxes of orchids can happen and this could lead to false alarms or undetected losses. Explain how you would design a system to track the flowers as they are moved from place to place in order to reduce such incidents of thefts or losses, and to monitor over-length storage or poor storage (the flowers could wilt if stored at a place for too long or stored under wrong conditions of lighting and moisture). In your description, give:

Page 12: Our Discussion

• the technology you would use and how you would use that technology, and• the reasons (or rationale) behind the technologies you propose.You can draw diagrams to illustrate your answer. State any assumptions you make for your solution.[Hint: Be as specific as possible within the given time constraints. For example, if you use RFID technology and various types of other sensors, then specify what type(s) of RFID tags (and/or sensors) will be used, how many readers (and/or sensor nodes of each type) and where the readers (and/or sensors) will be placed, how many bits for RFID tag IDs used, what items are actually tagged (and/or what sensor information is to be obtained using the sensors) what databases are required to store information about the tagged items and roughly sketch what would be in these databases, etc]

Technology used: RFID semi (no battery), put tag at flower pot. Choice of tag semi passive, so don’t have to change battery because life time to track flower pot not too long.Plantation to retails store is approximately 2-3 days. Readers can be put to all location involved:- Plantation- Warehouse- Vehicles- Retail storesExample diagram refer slide MPC topic 3-RFID

ii). [5 marks] What are the advantages of standards for Radio Frequency Identification (RFID) technologies (such as the EPCglobal standards)?It standardized the format of ID, make international business compatible to any country. An easy and fast way to track the goods whereabouts.

Question 6 [15 marks]i). [2 marks] Do Bluetooth devices require “line-of-sight” in order to connect to each other, that is, if there are obstacles between two Bluetooth devices, would the obstacles obstruct their Bluetooth connectivity? No need for “line-of-sight”

ii). [5 marks] From http://www.intomobile.com/2009/04/13/bluetooth-pen-helpsexam-cheating.html. (brackets are text I added): “It’s not exactly the most honourable of accessories, but definitely one of the more ingenious I’ve seen in awhile. This (‘spy’) pen takes calls through your cell phone via Bluetooth, and allows you to speak into the rear of the pen while listening to answers from a small headset (i.e., the ‘spy’ earpiece). Don’t worry about proctors (or lecturers) spotting the earpiece – it’s about half the size of a paper clip, and an even smaller `nano` earpiece is also available.” In other words, the cell phone connects to the spy pen via Bluetooth and to the spy earpiece via Bluetooth as well.

Page 13: Our Discussion

Assuming that these devices (the spy pen and spy earpiece) always have the same standard Bluetooth device name “spy” (though each has a different MAC address), Device a method to detect persons (within an exam hall) that may be using such a method to cheat. State any other assumptions you make.Put a Bluetooth sensor so any Bluetooth signal used in the exam hall will be detected.

BT in Action• Phase 1: device discovery• Phase 2: service discovery (there must be compatible services on both devices)• Phase 3: application-to-application connection (application-level connection establishment &communication)

Service Discovery• Each device has a database of service records, standardized serviceclassID embedded in UUID to identify a class of (common) services• A device can interrogate another device to retrieve a list of services on the device• A service record contains information about a service available on the device, accessible via BT• There is an API to register a service, i.e. to add service records to the service DB(Slide 8.3)

iii). [8 marks] Consider the following code fragments from a Bluetooth application called BTApp.…import javax.bluetooth.DiscoveryListener;…public class BTApp implements Runnable, DiscoveryListener {…private Vector devices = new Vector();…/* in some method, a Bluetooth inquiry is started */discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);//put the mobile in query mode…public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {// same device may found several times during single search

Page 14: Our Discussion

if (devices.indexOf(btDevice) == -1) {devices.addElement(btDevice); //it will add the device to the list ‘devices’

}}…}a). [4 marks] Based on only the code fragments above, explain, in your own words, what BTApp would likely be doing when it executes and starts to discover other Bluetooth devices.BTApp firstly try to detect device with DiscoveryListener, then, once discovered, establish BT link: pairing

• Phase 2: service discovery (there must be compatible services on both devices)• Phase 3: application-to-application connection (application-level connection establishment & communication); it is a parameter of a connection whether authentication, encryption, or authorization is required

b). [4 marks] Mr. Jack Chan owns a restaurant though is seldom there himself. He wants to know• how crowded his restaurant can get at different times of the day, and• if the same people goes to his restaurant, and how often they go, that is, are there regular customers?Explain briefly (you do not have to give any code) how you can use BTApp to help Mr. Chan with the above, and what shortcomings (if any) of this approach might be.Detect if same person entered his restaurant.Set a DB / recordstore – detect (using BT) – add the customer to the list with the timestamp (for how crowded – count the customer), ID, user profiles for each occurrence.Shortcomings = customer disable their BT application

Question 7 [15 marks]i). [5 marks] Explain “geocoding” and “reverse geocoding”.Geocoding: process of converting geographic coordinates or codes into map features and symbolic names, such as street addresses. Eg: -37.1899 and lon 144.76765 for Melbourne CityReverse geocoding: convert the symbolic names to geographic coordinates, this is

harder. Example Google and Yahoo both have their own geocoding APIs . Eg: La Trobe University(Slide 6.2)

ii). [10 marks] J2ME specifies a library to support GPS based location information, that is, JSR 179.a). [5 marks] Consider the J2ME code fragment below.Criteria cr = new Criteria();cr.setHorizontalAccuracy(10);LocationProvider lp =LocationProvider.getInstance(cr);Location l = lp.getLocation(60);Coordinates c = l.getQualifiedCoordinates();

Page 15: Our Discussion

if (c != null ) {double lat = c.getLatitude();double lon = c.getLongitude();} ...

With GPS coordinates, the latitude N 25° means 25 degrees north of the Equator. The latitude S 22° means 22 degrees south of the Equator, which can also be written as the negative number -22°. And similarly with longitudes, east or west of a reference line Greenwich Meridian (which is defined to have longitude 0°).Given that the user is at location (latitude) N 10° and (longitude) W 75° (minus), when the above code fragment is executed on the user’s phone (which has an integrated GPS receiver), explain what the above code does as detailed as you can, and give the values of lat and lon.The code will find the location specified from the criteria with accuracy of 10(is it meter?) and in 60 seconds timeout. Then it get the coordinates in longitude and latitude form. lat is 10.0000lon is -75.0000

b). [5 marks] Linda Smith would like to build a social network application called “Surprise!” using JavaME. In her JavaME application, whenever a Facebook friend (www.facebook.com is a social network web site where a person can list his/her friends) comes within 20m of her, then (assuming that the Surprise! application has been installed on her phone and on her friends’ phones), an SMS application will be automatically sent from her phone to her friend’s phone. She needs your advice….Provide pseudo-code for the main logic for this JavaME application, mentioning the JavaME APIs for messaging and positioning she might use in her application (including the classes and methods of the API she should use, where applicable) and features of

the JavaME Application Management System (AMS) that she shou .

1.create a connection

2. setMessageListener(ml) [ml is any instance of a class that implements MessageListener interface and provides a definition for the method notifyIncomingMessage(..)]3. wait for messages4. be notified of message & handle the message in the method notifyIncomingMessage(..) ld employ. State any assumptions you make.

1. Connect to a location information provider (e.g., GPS) 2. setLocationListener(ll) [ll is any instance of a class that implements LocationProvider interface and provides a definition for the method locationUpdate(..)]3. wait for location information4. be notified of location & handle the new location in the method locationUpdate(..)

Page 16: Our Discussion