Implementation Status Report



The Buddies

CS551 – System Prototype-I

Project Group

Sushil Puradkar

Uday Joshi

Swapnil Deshmukh

Preeti Naik

Madhura Maideo

Neeta Prasad

Saurabh Pathak

Date of Submission: November 14, 2003

Implementation Status Report

Introduction

There was much apprehension about our project when we had to start the coding since it was more of a research oriented project. So we first had a clear picture in mind as to what had to be done for the prototype and what could be actually demonstrated. We decided that the 2 basic devices which we would be handling (on which buddy alerts would be sent) would be printer and cell phone. We have finished almost 60% of the coding work. First we will explain what has been done till now and then later look at what has to be done yet.

Working system

We have done a basic integration of all the modules and done testing with existing skeleton. Expansion and exhaustive testing is yet to be done. The system which we have implemented till now works as explained later in the work completed section.

Test Cases

Since the prototype is not yet 100% complete we are unable to provide detailed test cases for testing the complete system as of now. Testing that has been carried out till now is module level testing and testing of interaction between 3 modules, namely Script Parser, Device IO Handler and Device Ontology, Web handler and Event Handler. But the functionalities are yet to be tested after complete integration of all modules.

• Task ID: DB1

Description: Store the information about a user in database.

Input: User URI

Output: Return value 1 (success

Return value -3( failure

• Task ID: DB2

Description: Create table with column names and types as provided by caller.

Input: tablename, column1name, column1type, column2name, column2type,

……………..column n name, column n type.

Output: Return value 1 (success

• Task ID: DB3

Description: Retrieve Device URI of a particular user identified by User URI.

Input: User URI

Output: Return value is a vector (1, followed by device URI) (success

Return value -3( failure

• Task ID: DB4

Description: Retrieve functions and script ids to be invoked on the occurrence of a particular event.

Input: User URI

Output: Return value is a vector (1s, followed by matching records) (success

Return value -3( failure

• Task ID: DB5

Description: Update device status.

Input: Device URI

Output: Return value 1 (success

In following text success is 0 and failure is -1

• Task ID: DH1

Description: Only user URI and message is provided to output on device then search user’s preferred devices, get user’s location and check whether preferred device is available at that location. If the device is available then output the message on that device.

Input: User URI, Message

Output: If users preferred device is available in AS system then show message on that device else return error.

• Task ID: DH2

Description: If user URI, message and device type is provided then get user location, whether such device is present near user. If the device is available then use that device to out put message.

Input: User URI, message, device type

Output: If the device is present near user then output message on that device else return error.

• Task ID: DH3

Description: If user URI, message and device URI is provided then check the status of device. If the device is available then use that device to output message.

Input: User URI, Message, Device URI

Output: if device available then output message on that device else return error.

• Task ID: DH4

Description: When set of parameters is given for particular device then search device matching these parameters.

Input: Device parameters

Output: Success if device with machining parameter is found else failure.

• Task ID: SP1

Description: Check whether script is available at given location.

Input: Script path

Output: If script is available then parse script and return success else return failure.

• Task ID: SP2

Description: Check whether devices required by service are available in AS.

Input: Details of devices required by services

Output: If devices are available then return success else return error.

• Task ID: SP3

Description: Create tables required for service. Call database functions to create these tables.

Input: Table description

Output: If new table is created then return success else return failure.

• Task ID: SP3

Description: Check whether each statement of script can be executed. Check whether corresponding function set is available in function set to execute this script.

Input: script

Output: If there are functions in function set for each statement then return success else return false.

• Task ID: SE1

Description: For given event search the services that can be executed. If such services are available then execute those services in thread.

Input: Event Name

Output: If services are available then execute services in thread and return success else return failure.

Implementation status report:

I] Work Completed:

The code for the Framework (Java interfaces) has been developed. This is the interface, which will translate the words from the script.

Script is a generic document written in built–in parser enabled language XML. It has all the commands for buddy script like ‘read’, ‘print’ etc. This script will vary from service to service. Anyone can write a new script for his/her particular job and post it to the website. However, we have just developed the script for Buddy service and executed that. Our parser will parse the script, validate whether required devices are available and creates required database tables.

We also developed Event Handler class which will handle particular event. For given event it searches database to get dependent services and then execute scripts of those services. Each statement in script is mapped to one function of function set, which is basically a set of atomic functions. Functions in function set implements arithmetic functions like add, subtract and common functions like sort array or merge array. To handle database activities it needs to call functions implemented in Database Handler class and to execute any operation related to devices it needs to call functions implemented by Device IO Handler.

Currently we are using the MS Access database to create tables that keep device, user and service related information for AS system. We are using the SQL query within MS Access to get some data from the tables on demand. The application will keep a record of the user information like User URI. It also keeps a record of all available devices and their information like location, status, last accessed time etc.

The decision about which devices should be used to execute particular operation is taken by looking at all the device specification from ontologies. We have used Jena ontology. This can be said to be the collection of all the concepts along with the specifications. The ontology contains information about all possible devices, which are indexed on their URI. The system makes a query to the Device ontology to see if the desired operation is possible with the given device. If yes then it goes ahead and calls the corresponding web service and performs the actual operation. The Ontology is always be updated with all the new devices, which register themselves with the system. Thus, here device ontology will act like information envelops which will match device with its operation and its parameters and its abilities.

We use Web services component as external interface to this system. This component is implemented using java web service developer package. This acts as wrapper, which envelopes the entire framework. Web services manage various event handlers. The event handlers always run in the background on the user system. Whenever a buddy enters the system, or a new user registers, these event handlers will be triggered which in turn handles event and executes appropriate services.

Responsibilities:

✓ Tasks:

▪ Team Management.

▪ Worked on XML script parser and event handler.

Description: Allocating tasks to group members and coordinating their work. Taking part in discussion regarding database design, function set ontology inference logic and web services. Implementing script parser and script executer class. Current code can handle if condition, for each loop and creating array etc.

Buddy: Sushil Puradkar

Time: 20 hrs

✓ Task:

▪ Web Service Implementation and singleton architecture.

Description: Working on web services module to extract information from user profile. Implementing singleton architecture to implement AS server.

Buddy: Uday Joshi

Time: 20 hrs

✓ Task

▪ Web Service Implementation, Developed server side code for web services

Description: Implemented class for Web Service Handling: This class handles the various device related tasks which includes methods to register device, de-register device from the system.

When a new device is to be added to the system, then its URI, its type, and its other properties are passed as parameter to this registerDevice() method in this Class, which in turn will register this device into database. For de-registering any device, it’s URI is passed as a argument to the removeDevice() method which will remove the entry of device from the database.

Implemented device web service for printer which gets printer URI and file path to be printed as a parameter and then it sends the signal to printer and file gets printed.

Buddy: Swapnil Deshmukh

Time: 20 hrs

✓ Task:

▪ Device ontology and implementing device handler

Description: The device ontology has been developed. It contains device name, device URI, device type and its characteristics. It also contains all the possible parameters that can come along with it. These parameters will be useful while selecting one type device over other .If the program finds a match between the parameters requested and the parameters found in the device ontology file, then it will choose that device.

The parsing logic for the series of steps, which depend on what types of parameters the program, gets as input.

o Device URI or user URI, device Type etc.

□ Depending on what parameters we get, like device uri or user uri, device type, parameters etc, we call some sub functions in order to look up the missing parameters.

o This involves calls to the database

o The database also provides all the device information which is retrieved on need basis

□ If specific device is provided, we perform the action on that device by invoking corresponding web-service.

□ Then, we get the preferred list of devices from the user profile

o Then we try to match if the current requested operation is possible on the device mentioned in the preferred device list.

o If yes then we match the parameters, if we find a match, then we perform the operation.

o If not, then we say that the corresponding operation cannot be performed on the given device.

Buddy: Madhura Maideo

Time: 20 hrs

✓ Task:

▪ Database implementation

Description: Wrote the handling of JDBC connectivity. Due initial problems faced in mysql server set up for 551 projects it was decided to go ahead with local database connectivity with DSN. The basic functions to handle interactions with the buddy database have been implemented. We have implemented code to create new tables for any services at runtime but we are yet to write code to extract data from these tables.

Buddy: Preeti Naik

Time: 20 hrs

✓ Task:

▪ Atomic Functions

Description: The function set which has been implemented has many functions and these functions are not restricted to Buddy service only. Hence the work was divided between 2 people. The various functions implemented are add, subtract, divide, multiply, copy, concatenate, create array, fetch from web (which fetches user information from web. Implementation yet to be completed), show(This is to show some message to user), resolve conditions (this will be called to resolve conditions given in script)

Persons: Saurabh Pathak, Neeta Prasad

Time: 20 hrs

II] Work to be done:

Device Handling and Ontology

□ We have yet to implement the functionality wherein we are making smart choices between multiple devices. This operation involves-

o Scanning the device ontology for available / preferred device.

o Checking the device parameters.

▪ For the printer, the device parameters can be defined as

• Size of the paper

• Single or double sided

• Type of Paper (A4 / Letter etc)

o Checking one or all parameters and making a choice between which device to use

o Using more detailed ontology with lots of device specifications.

Buddy: Madhura Maideo

Atomic functions and Mapping to function sets

□ The script may contain various conditions.

o Logical / mathematical

o Comparisons etc

□ We plan to resolve these conditions inside the function set and send the Boolean value of the result back to the function mapper procedure.

□ We will categorize the variables into local, database and function specific and then copy them into corresponding arrays.

□ We have to add few more functions into the function set to take care of the added functionality and processing requirements of entire system.

Buddy: Saurabh Pathak and Neeta Prasad.

Web-Services

□ We need to enhance the current functions for the web-services.

□ Implement interaction between web service component and database component.

□ Implement client to call SMS web service to send message on mobile phone.

□ Implement web service to extract information from user profile.

□ Also, we need to take care of the event-handler

o We need to identify all the events.

o Invoke the trigger and start the event-handler

o Record and verify the output of the event handler in the form of an action.

Buddy: Swapnil Deshmukh, and Uday Joshi

Databases

□ The database connectivity with MySql Server has to be done yet. The functions to interact with service level tables in the database are yet to be coded.

Buddy: Preeti Naik.

Script Parser

□ Implement code to validate instructions given in script

□ Integrate all modules.

□ System Testing.

Buddy: Sushil Puradkar.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download