Publish subscribe framework for location based services - Prashant, Raghavendra, Praveen & Swagath Motivation Our motivation lies in building an application which can be used in the real-world. With increasing developments in the field of mobile networks and applications, it has become necessary for the use of IMS architecture to build location aware applications which people can use in day-to-day life. The use of the Publish/Subscribe architecture also helps us build the server component such that the functionalities are offered via a service based architecture. The clients can therefore subscribe to particular services based on their interests. With a simple architectural model and through several potential use-cases, our motivation lies in leveraging the uses of IMS to build applications which have immediate end-user uses. Problem There has been a sudden explosion with regard to the use of location to offer appropriate services to the clients. With numerous services being introduced, it has become necessary for building a common framework for offering these services. Therefore, in order to offer a service, one would be able to configure the framework for offering the service instead of building the server component from scratch. All our services in this regard would be using the location information to provide appropriate information to the clients. Our framework will be able to provide these services based on the common location information of the clients. In the current project, we plan to build such a framework using Publish/Subscribe mechanisms. Related Work There have been several efforts in this direction. [1] introduced Siena, a ubiquitous service accessible from every site on a wide-area network. It is implemented as a distributed network of servers that provide clients with access points offering an extended publish/subscribe interface. [2] proposes the use of Pub/Sub engine including Spatial Event Model, Spatial Subscription Model and Notification Model. These provide publish/subscribe models for offering services, Our system aims at leveraging the IMS technology along with the publish/subscribe model in order to extend the services to the mobile handsets that have a ubiquitous presence. Proposed work High Level Description A publish subscribe framework provides an infrastructure using which a large number of services can be provided. The real world is basically divided into two main categories – publisher and subscriber. The publisher publishes a service with the service provider. The subscriber registers his profile with the service provider listing his preferences like the malls he likes to visit, the activities he likes to do during spare time and so on. The actual profile might contain a lot of other details. When the subscriber comes in the vicinity of a publisher, contents of the matching publisher will be delivered to the subscriber via a message/advertisement. There are quite a few location based services that solve problems relating a particular domain like giving the timings of a particular bus route that cannot be used in other scenarios. Our framework can be extended such that it can solve problems in various domains. Use Cases Case 1: Shopping Assistant 1. The stores publish their special offers/deals for the day with the service provider. Theaters publish special events for the day with the service provider. 2. Users create a profile listing the items they like to buy or activities they want to do. 3. When the user travels/walks in the vicinity of the mall (identified by the location monitoring module), the users profile is queried against the various publishers in the region. 4. Depending on the match, the user is sent promotional messages regarding the offers/deals of the day. 5. The user might visit the store and buys the product as a result of advertisement that was sent using the promotion code. 6. The publisher of the code can check the effectiveness of this form of advertising based on the number of users using the promotion code. Business Model The service provider can charge both the publisher and the subscriber of the service. The provider can be charged either on the number of offers/deals they publish per day, or they can charge them a flat rate per month per Megabyte of Information published. The people who subscribe to the service pay a small fee every month based on the size of their subscription and the type of the subscription. Some of it can be free as well, as discussed below. The advertisements/profile can be classified under categories like financial, domestic shopping, planning family activities. The cost varies for each category. Financial services should be charged the most followed by the family activities. The domestic shopping service can be given as a free service to the customers, encouraging more and more people to use the technology. The vendors can be made to pay for the customers that use this service and shop in their outlet. To attract Store owners, a promotional offer of free service for one month of publication of size 1MB can be given. Once the trial period ends, they will have to pay for the service. The store owners would continue to pay for the service as it works out to be the cheapest mode of advertising wherein the advertisements are directed at the right kind of audience. For customers who want to use it to manage family activities, they need to pay for both the subscription and profile. So these two can be clubbed into a single bill component, charging them for the service as a whole. As an introductory offer, this can be given free of cost for one month and then they can be made to pay for it. Architecture Description The system consists of three main components – publisher, subscriber and the service provider. The generic framework of these three components along with a set of functionality provided by the service provider can take care of the various use cases explained earlier. Technical Description The system can be divided into the following components. 1. The service provider composed of a. A policy database containing policies set by individual users. b. A storeDatabase database containing the published information. c. An "intelligent system" component which can use the client's location to send the appropriate information to the client. d. The component that actually identifies the location of the user and reports to the system. 2. Our clients will use a lightweight UI for setting the profile information and sending it to the service provider. The client must also be configured to receive alerts. This can be implemented as a message sent by the service provider. In our simulation, the message can be simulated easily. 3. The publishers will also be required to send their updates in a pre-defined format. This information will also be stored in another database - "storeDatabase". We plan to provider a simple UI which allows publishers to publish/update their information to the service provider. However, since the data format is pre-defined, the publishers may also use custom software to send it. 4. When a client enters a specific location, the "intelligent system" component at the service provider will be responsible for sending the appropriate information which the client has subscribed to based on his/her current location. The components of the system will be implemented such that they are capable of distinguishing the two use-case scenarios mentioned above. High Level Project Plan The project is planned to be carried out in five phases. 1. Implement the modules required to simulate the three main components, namely the publisher, subscriber and the service provider (2 weeks). 2. Implement the query model that allows publishers and subscribers to register their data at the service provider (2 weeks). 3. Implement the Location Identification service, that identifies the location of the end user (2 weeks). 4. Implement the profile matching service that matches the user's profile with the subscriptions stored in the server service and sends alerts to the users (1 week). 5. Tweak the application to support the use cases (1 week). Resources and Technologies being used The technologies which will be used for the project comprises of technologies used in building IMS applications. We are contemplating the use of the .NET framework to build the application rather than the J2ME framework. The servers will be run on traditional machines containing 2 GB RAM and Pentium Core 2 Duo processors while the clients will be initially tested on the emulators before the application is ported on a real phone. Project Plan The IMS competition deadlines are due in the first week of April; our work is distributed over eight weeks. Week 1: Understand the IMS technologies Week 2: Design the Framework Week 3 and Week 4: Implement the framework Week 5: Identifying Location information Week 6: Developing use-cased based data information. (like shopping discount based information mentioned in use-cases). Week 7: Testing the use-case on the framework Week 8: Documentation and Release Evaluation and Testing methods The evaluation of the system would be based on the ability of the service provider to supply appropriate information to the clients as soon as the client enters the location where the service is being offered. Based on the speed at which the server would be able to send the information to the client, the efficiency of the framework can be tested. In a similar manner, the server will be also be stress tested to find the optimal number of client that a server can handle. Bibliography 1. Antonio Carzaniga, David S. Rosenblum and Alexander L. Wolf, Achieving Scalability and Expressiveness in an Internet Scale Event Notification Service. 2. Xiaoyan Chen, Ying Chen and Fangyan Rao, An Efficient Spatial Publish/Subscribe System for Intelligent Location Based Services. 3. Costin Raiciu, David S. Rosenblum and Mark Handley, Revisiting Content-Based Publish / Subscribe. 4. http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem 5. http://www.tech-invite.com/ 6. https://www.ims-developer-program.com/