Current MS Students/Sarang Nazari

From CSWiki

Jump to: navigation, search

Email: Sarang Nazari

Visit my page.

My CS 590 page.


Project: Mobile Email Alert System

Contents

[edit] What I am planning to accomplish

[edit] Brief Project specification

Mobile Email Alert (MEA) System is a web service that can alerts its users through the cell phone whenever they receive a new email. It has a web site that will be available to every body to use. Users need to register into the web site, create a portfolio and enter their email accounts information. MEA periodically check their email serves for new emails and whenever there is a new email in the mail box it sends a text message to the user’s cell phone. Total text message length is 160 characters and the message contains sender’s email address, subject and first 160 characters of email message.

[edit] High level architecture

Image: High_level_architecture.jpg

  • Web Server: provides HTML base user interface for MEA users.All end user interaction to the system go throw this module. It provides registration, screens, add/modify email account, create/modify filters, create/ modify schedule templates.
  • Database: It’s the main storage of the system. Database stores all user information like email account information, user defined filters and users’ schedule templates. Database also stores the email content, sender, subject and date for each alert that system send to users cell phone. It helps to keep track of sent alert to avoid missing or duplicate sending of an alert.
  • Database module: It provides an application level Data Base interface to other modules in the program. Database module contains an entity bean for each database table. It encapsulates all low level database connection. Other modules in the program use these entity beans to access the database. It makes the program more readable and it will be very easy to change the program to user other DBMS then MySQL.
  • Scheduler module: It reads the user defined templates from database, calculates time shifting add the tasks that need to be done at the moment to execution queue.
  • Email accessor module: This module encapsulates all low level communication to email servers. It hides the communication detail for POP3 and IMAP email protocol. This module also have required element to make SSL connection to the email servers that support secure connections.
  • SMS Engine: This module provides communication methods to SMS modules in cell phone carries companies. All SMS alerts to the users’ cell phones go through this module.
  • Control module: This module is the brain of the system. It manages all communications among the different modules in the system.

[edit] Why this is academically interesting

MEA is corporation of knowledge I gained from courses that I have taken in masters program and my experiences as a computer programmer. The challenges in implementing this project help me to improve my knowledge and lead me to implement some complicated algorithms that have never done before. Each MEA user can setup of different schedule to receive emails with different intervals to check for new email and it needs a complicated scheduler module. There are some algorithms available for task scheduling, but none of them feet in this project, but a deep research in available algorithms helps me to design a scheduler for this project. Optimum usage of bandwidth and time is another challenge. There in now program that talk to many mail server for many users. Also there is very limited information available about the different mail server performances. Developing the mail aggregator module needs some researches in this area.

[edit] Intended audience

Almost every person or entity can be an audience for this project. Email and cell phones became a part of people’s life and this project can make the life easier and more efficient for people. The final result will be a web application that runs on the internet and people can register in it, create a portfolio and receive alerts as SMSs on their cell phones for each new emails that they get.

[edit] Why this is MS-level work

It’s a MS-level project because it requires knowledge of different courses that we took in MS program. The web interface need knowledge of web programing class, there are some Data Base communications parts of the program needs information that we got in advanced database class. The knowledge of computer system security help to consider security issues in the project. Due to number of the transactions in execution time of project, the algorithms in business logic of the project should be optimized to performance good, thanks to design an analysis of algorithm class.

[edit] Previous work

There is no previous work like this. Some internet web sites provide email alerts service to their users, but their services are dedicated to their users and email accounts that belong to their system. Their alert system notifies users whenever email server receives a new email. It’s embedded in the mail server and works just for a single email account. It does not grab emails from different account. There are also some limitations in their alert system. In the available systems users can not define the time and date’s schedule that they want to receive email notification. Another limitation for most of available email notification systems is that users can not define a filter for emails; they simply alert the user whenever he/she receives a new email, regardless of sender, subject and content of email. EMA is a system that is available for every body, it’s independent of the email servers and each user can setup alert for many different email account he/she may have. MEA users have option to define the schedule that they want to get alert on their cell phone. MEA user also can define filters in order to receive alert for the emails from a specific sender or emails with a keyword in the subject or content of the email.

[edit] Platforms to be used and what I will add to each

The whole project is implemented in Java programming language, the web application is written in Servlet/Jsp and can be run on any web server that is java enabled (almost all web servers). Business logic of the program also is a pure java application and can be on the same machine as the web server or on different machine to get a better performance. I am going to use MYSQL database which is available on most of the operating system. But program can be easily changed in order to use order DBMS like Oracle or SqlServer. For the developing this project I will use available java packages like javax.mail and com.sun.net.ssl. javax.mail will be the core part of the email accessor module, It will do all the low level communications with mail servers. com.sun.net.ssl help me to mace a secure connection to the email servers that support SSL encryption. Using that makes me free of think of complicated implementation of SSL communication.

[edit] Anticipated challenge(s)

[edit] Challenge(s)

One of the biggest challenges in this project will be design and implementation of scheduler module. Since each user can setup of different schedule to receive emails with different intervals to check for new email, designing of a scheduler program to perform the task at the right time and still have good performance is going to be a big challenge.

The other challenge is the time and bandwidth optimization. A single connection to a mail server is slow and does not use much bandwidth. Since we have too many mail communications, the program should not do the communication with mail servers sequentially; instead it’s better to do a group of communication in parallel for optimum usage of the bandwidth and time. As the different mail servers response to our request in different speed, it’s hard to find the number of the tasks that we can run in parallel.

[edit] Anticipated approach to each challenge

I need to do some research on existing algorithms in task scheduling. I need to find out witch one is closest to my project. This will help me to designs a good algorithm for my scheduler module.

I also need to do some research in the performance and bandwidth usage of different email servers. Since there is no previous work or any published information in this area, I need to do some try and errors to come up with an optimized parallel communication algorithm.

[edit] What I bring to this work

[edit] My relevant background and experience (CS 590)

Web programming, Database, Design and analysis of algorithms are courses that I have taken in master program in computer science and I am using them directly in my project, I also have some years of experience in programmer that gives me the ability to solve problems that are close to real life.

[edit] What I find interesting about this work

I find this project interesting because it’s a knowledge base project that hires the knowledge I gained from years of experience as a programmer and software engineer plus the knowledge and information from courses that I took in master program. it’s still challenging and to overcome those challenges I need to do some research in different areas. It helps me to improve my knowledge in computer science. On the other side, I believe that the final work will be very useful and has potentials to be used by millions of people.

[edit] How this work goes beyond my experience and course work

This project needs a lot of of research. Some parts of this project have complex algorithms. This project is corporation of knowledge and courses I got in the masters program plus years of experience in programming. Still three are some challenges that help me to learn something new.

Personal tools