JIT Reminders Service monitoring framework with mobile notifications CS 8803 AIAD Project - Group 21 : Gaurav Mullick : Gautam Arora What it was supposed to be? (read: initial project goals) • Alice enters a customized event in her calendar e.g. call Bob at 9:00 AM • Her events get tracked and scheduled by our software (assumption: we have access to her calendar) • At 9:00 AM, a call is setup between Alice and Bob (assumption: both have switched on their SIP-enabled phones) What it is now? • A job scheduling based architecture with.. • Service-specific trackers (using std. APIs) • Mobile notifications (using SIP) • Ability to add/remove/update trackers and notifications using web console System Architecture: Overview • Master Tracker - Job Scheduler • Tracker (a.k.a Service Monitor) - Cron Job • Notification (a.k.a Action) - Simple Job • Admin and User web console System Architecture System Architecture: Technical • Master Tracker/ Tracker - used Java EE Quartz framework for job scheduling • Notification - used SIP Servlets deployed on SIP App Server • Admin and User web console - JSPs Component: Master Tracker • Currently a server process that starts the cron jobs for the multiple service trackers • Can start/stop/update trackers Component: Tracker • Gets executed after every ‘x’ minutes... • Uses standard service APIs to track the current state (tracker ‘pulls’ info) • Sets/takes an action based on detection of event (tracker ‘pushes’ action) • Have an idea for a service monitor? Facebook, Arrival tracker using Location... Tracker Implementation: Google Calendar Tracker • Temporal Reminders • Predictable events • Uses Google Calendar and Data API • Events are stored in ‘customized’ format • Sets a timer for each event associated with notification type Tracker Implementation: WhereAmI Location Tracker • Spatial Reminders (for 1st and 3rd party) • Unpredictable events • Uses WhereAmI Location API (thanks John Etherton!) • Users need to be added as buddies to get their location for 3rd party lookups • If change in location of target is detected, check against database of events to take any action Component: Notification • Gets triggered just-in-time • Email/SMS reminders are fairly common • How about playing voice/video messages, setting up calls and conferences? :) • Targeted towards SIP-enabled phones • Have an idea for a notification? streaming lectures or cricket matches.. Notification Implementation: Call Setup • Handles user registration and call setup between Alice and Bob as B2BUA • Uses Java SIP Servlet API • Deployed on SIP AS like Sailfin(on Glassfish) or Mobicents(on Tomcat) and more... Component: Admin Web Console • Allows administrator to: • Manage users • Manage services monitors • Manage notifications Component: User Web Console • Allows user to: • Add events to service monitors • View current status of events • Update/delete events • Under dev: use maps to enter location for spatial reminders (with Arc GIS web services - thanks Matt Weber!) Demo-lition! • Creating GCal Events with User Web Console • GCal Tracker sets up Call between Alice and Bob But isn’t this similar to... • Web CQ - continual queries with crawling • GT Comet Event Tracker (Group 4 - 4/24) - crawl GT pages for events with tagging of events and reminders for users • SOA-based event monitoring framework (saw at CERCS seminar) - also uses services but targeted towards enterprise What it can become? • allow pluggable service monitors and notifications that can be enabled/disabled at runtime • its already a framework, it can become what we want it to :) Questions? Thank You!