promond – email & event scheduler with automated triggered...

63
PROMOND – Email & Event Scheduler with Automated Triggered Messaging Prashanth Addepalli Problem Report Submitted to the College of Engineering and Mineral Resources at West Virginia University in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering Dr. Y.V. Reddy, Ph.D., Chair Dr. James D. Mooney, Ph.D. Dr. Sumitra Reddy, Ph.D. Lane Department of Computer Science & Electrical Engineering Morgantown, West Virginia 2007

Upload: dokhanh

Post on 14-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

PROMOND – Email & Event Scheduler with Automated Triggered Messaging

Prashanth Addepalli

Problem Report Submitted to the

College of Engineering and Mineral Resources

at West Virginia University

in partial fulfillment of the requirements

for the degree of

Master of Science in

Electrical Engineering

Dr. Y.V. Reddy, Ph.D., Chair

Dr. James D. Mooney, Ph.D.

Dr. Sumitra Reddy, Ph.D.

Lane Department of Computer Science & Electrical Engineering

Morgantown, West Virginia

2007

ABSTRACT

PROMOND – Email & Event Scheduler with Automated Triggered Messaging

By

Prashanth Addepalli

In this present world, the users are bound to so many things that they forget doing their

prime tasks. Earlier users had to record their events in the form of a Personal Calendar

Diary and that is now totally obsolete. With the advance in technology, the users now

have the access to different kinds of Event Schedulers (for e.g.: Microsoft Outlook,

PDA’s and so on) which would automatically alert the user when the events are about to

happen. Such communication before hand would really help him coordinate all his

activities.

Considering the Professor’s world, a professor might be associated with so many

different things simultaneously, and to co-ordinate everything in parallel we need an

interface/Messaging mechanism which would send Messages/Alerts to the concerned

professor when the events occur. This Project implements many other features for a

professor, mainly consisting of Private and Public workspace, FileSharing, Event

Scheduling & Email students group. But for my part, I have chosen to work on

organizing the Events through an Event Scheduler & E-Mail feature. This part of the

project focuses on sending automated trigger messages in a timely fashion, alerting the

User to notify of events. This project is aimed to meet many scenarios in a Professor’s

world helping him/her organize events & meet them in a timely fashion.

ACKNOWLEDGEMENTS

I would like to thank my advisor Dr. Yenumula V. Reddy for his constant support

and guidance for my work. This project originated from his sole idea after which it was

put into implementation. I would like to extend my thanks to Dr. James D. Mooney and

Dr. Sumitra Reddy and for serving on my committee and also for their encouragement

and support.

I am thankful to my project mates for their cooperation in this project and would

like to wish them good luck in their future.

Finally, it will not be out of place to mention thanks and regards to my beloved

Parents as well as my Friends for their encouragement and constant support rendered to

me at various stages of my professional career.

iii

TABLE OF CONTENTS

CHAPTER 1…………………………………………………………INTRODUCTION

1.1 Statement of the Problem…………………………………………….............1

1.2 Need for Remote Access……………………………………………………...1

1.3 Advantages of Remote Access………………………………………….........2

1.4 Implementation of Remote Access…………………………………………..2

1.5 Network Collaboration………………………………………….....................3

1.6 Promond………………………………………….............................................4

CHAPTER 2………………………………………………………CONCEPTS USED

2.1 Protocols Used

2.1.1 TCP/IP………………………………………………………………7

2.1.2 FTP…………………………………………………………………..9

2.1.3 SMTP………………………………………………………………..11

2.2 Socket Programming

2.2.1 Datagram Communication………………………………………..14

2.2.2 Stream Communication…………………………………………...15

2.3 Programming Languages Used

2.3.1 Java…………………………………………………………………17

2.3.2 MySQL Database………………………………………………….17

2.3.3 JDBC Connection………………………………………………….18

iv

CHAPTER 3…………………………………………………… IMPLEMENTATION

3.1 Promond………………………………………………………………………..20

3.2 Client-Server Request handling………………………………………………22

3.3 Events and Triggers…………………………………………………………...22

3.4 Features supported by Promond

3.4.1 Workspaces

3.4.1 Public Workspace…………………………………………....23

3.4.2 Private Workspace…………………………………………..23

3.4.2 Upload and Download………………………………………………24

3.4.3 E-mail………………………………………………………………...24

3.4.4 Event Organizer/Scheduler………………………………………....26

3.5 Client GUI……………………………………………………………………...27

3.6 Calendar User Guide………………………………………………………….30

CHAPTER 4……………………………………CONCLUSION & FUTURE WORK

Conclusion………………………………………………………………………....44

Future Work……………………………………………………………………….45

REFERENCES

APPENDIX

v

List of Figures

Figure 1: Remote Accessing feature ..................................Error! Bookmark not defined. Figure 2: Client-Server Architecture .................................................................................. 5 Figure 3: TCP/IP Architecture ...........................................Error! Bookmark not defined. Figure 4: SMTP Mail System. ...........................................Error! Bookmark not defined. Figure 5: Example of an SMTP Session. ...........................Error! Bookmark not defined. Figure 6: Datagram Communication b/w Client-Server....Error! Bookmark not defined. Figure 7: Stream Communication b/w Client-Server ........Error! Bookmark not defined. Figure 8: Client-Server Interaction in a Promond System.Error! Bookmark not defined. Figure 9: GUI of a Promond System. ................................Error! Bookmark not defined. Figure 10: GUI of a Event Calendar ..................................Error! Bookmark not defined. Figure 11: GUI of Promond Email ....................................Error! Bookmark not defined. Figure 12: Courses Add/Delete window............................Error! Bookmark not defined.

vi

CHAPTER 1 1.1 Statement of Problem

To develop a “Promond” client that can be ported across different machines (computers),

which is entirely a part of Client-Server architecture, where a Professor can organize his

events or schedules and get reminders prior to the occurrence of these events. These

events are triggered automatically without any user intervention. The client also

facilitates a professor to communicate to his respective group of students via Email.

1.2 Need for Remote Access

In the Present Competitive world, “Remote access” is one of the features that can

significantly contribute to the productivity and profitability of any organization. A

client/server environment facilitates the use of a Remote Access. Typically, the

individual users with PCs (clients) are attached to a central computer (server) to allow

applications, files and peripherals to be shared among the users. The figure below

illustrates the “Remote Accessing” feature for any organization.

FIGURE 1: Remote Accessing Feature

1

The Electronic Mail (e-mail) has undoubtedly become the chosen method of

communication, displacing the telephone and hand written memoranda. With the aid of

Remote access over the network, the users now have the access to e-mail accounts on a

twenty-four hour basis. All this adds up to a lot of remote access connections to the

organization's network and will play a significant role.

1.3 Advantages of Remote Access:

This feature provides numerous advantages, some of them include

Timesaving, avoiding the task of carrying data all through, avoiding the loss of

continuation in work etc.

Facilitates users with file transfer, file sharing, uploading and downloading files etc.,

through internet, between systems located anywhere in the world.

1.4 Implementation of Remote Accessing feature:

Client – Server architecture has been used to implement this “Remote Access” feature.

The server is located at a particular location and the data in the server can be accessed

from anywhere using an internet connection.

In Client-server architecture, Client is defined as requestor of services and Server as

provider of services. The Client/Server architecture is a versatile, message-based and

modular infrastructure that is intended to improve usability, flexibility, interoperability

and scalability. It is an important model in the area of network computing. Different

clients can be connected to the server from different locations. Client/server architecture

can be a two-tier, three-tier or N-tier architecture.

2

In a two-tier architecture system, the user’s system interface is located in the user's

desktop environment and the database management services are located in the server

which is a more powerful machine that services many clients. Processing management is

split between the user system interface environment and the database management server

environment. The database management server provides stored procedures and triggers.

In a three-tier architecture (also referred to as the multi-tier architecture), a middle tier

was added between the user system interface client environment and the database

management server environment. The middle tier can perform queuing, application

execution, and database staging. In addition the middle layer adds scheduling and

prioritization for work in progress & improves flexibility when compared to the two tier

approach.

In N-tier architecture, the first tier is client, the second tier is a server and the third tier is

the database which contains the database management system.

1.5 Network Collaboration:

Collaboration can be termed as e-mail, WWW, Internet chat etc. Different

definitions arise because there are so many technologies and its definition today is broad.

Collaboration—at least in part—is the integration of many different technologies into a

single application or environment to facilitate information sharing and information

management. Collaboration can occur in two ways, one being real time collaboration

where you work with others at the same moment, taking turns to communicate the ideas.

The other approach is asynchronous collaboration, in which you need not be present to

3

participate. E-mail, public databases, the Internet, and intranets are all forms of this kind

of communication.

Considering the scenario where a group of people working on the same project to achieve

a common goal, it is very important to coordinate and share the work done by different

people. This sharing of information among the group will further mobilize the flow of the

project until the desired result is obtained.

1.6 Promond:

PROMOND is a system that provides an interface for the Users, who will have

access to the remote data and can simultaneously share the data among other users in his

group when ever needed. This will certainly help users in many instances, e.g. when one

is away from his personal system & working remotely but needs data from his personal

system. It supports work collaboration also in a way, when a group of people are working

on a project. Considering the scenario of a ‘Professor’s World’, a professor has to

organize his work and material in an orderly and easily accessible manner. He will have

to work on different computers to accomplish his daily work. As a daily routine, he has to

save his work, copy his work to a storage device (USB drive or a CD) or send it across e-

mail and when he is working on a new system he has to copy back all those files and start

working again. So, it will be a tedious task for him to transfer his work whenever he

switches from one system to another & there is always a chance for some files to be

missing. All these issues can be resolved with a system that can provide Remote access to

retrieve the data across different systems. The Promond Client is designed to meet all

these requirements.

4

The figure below illustrates the flow of requests and responses between a server

and a client.

FIGURE 2: CLIENT-SERVER Architecture

5

CHAPTER 2 2.1 Protocols Used:

2.1.1 TCP/IP:

A Protocol is basically a language used to make two computers to talk to one

another. Transmission Control Protocol (TCP) or Internet Protocol (IP) is the most used

Network Protocol over internet. When a connection is established over the internet, a

TCP/IP program is provided to the system which can be used to send or receive data from

any other system.

TCP/IP is not really a protocol, but is a set of protocols – also known as

“Protocol Stack”. From its name it can be said that it refers to two different protocols,

TCP (Transmission Control Protocol) and IP (Internet Protocol).

TCP/IP architecture can be seen on Figure shown below:

FIGURE 3: TCP/IP Architecture

TCP/IP has four layers. The functionality of each layer is described below.

6

• Programs talk to the Application Layer. On the Application layer you will find

Application protocols such as SMTP (for e-mail), FTP (for file transfer) and

HTTP (for web browsing). Each kind of program talks to a different Application

protocol, depending on the program purpose.

• Once the program request is processed, the protocol on Application layer talks to

the one from the Transport Layer (TCP). It receives the data from upper layer,

divides them into packets and transfers them to the layer below. While receiving

the packets from the upper layer, it formats the packet and also checks if the

contents of the received packet are intact and sends an acknowledge signal to the

transmitter. If no acknowledgement is seen, it retransmits the packet.

• The Internet Protocol receives the packet from Transport layer and adds virtual

address (the address of computer that is sending data and address of the one

receiving data). The virtual addresses are called IP Addresses. Packets on this

layer are called Datagrams. Theses datagrams are then sent to the lower layer.

• The Network Interface will receive the packets from IP and send them over the

network. This layer is defined by what type of physical network your computer is

connected to. Most of the computers will be connected to an Ethernet network.

Ethernet in-turn has three layers: Logic Link Control (LLC), Media Access

Control (MAC) and Physical. LLC adds information of which protocol on the

Internet layer delivered data to be transmitted, so when receiving a frame from the

network this layer on the receiving computer has to know to which protocol from

the Internet layer it should deliver data. MAC assembles the frame that will be

sent over the network. This layer is in charge of adding the source MAC address

7

and the target MAC address (the physical address of a network card). The

Physical layer is in charge of converting the frame generated by the MAC layer

into electricity (if a cabled network is being used) or into electromagnetic waves.

The advantages of TCP service are:

It provides a reliable and in-order byte stream data transfer.

There is control in flow of data. It does not overwhelm the receiver by

sending continuous data. This is achieved with the use of

acknowledgments for the data that is being sent.

There is congestion control where the sender slows down the rate of

sending data when the network is congested and receiver is not as fast in

receiving the data.

Many higher level application protocols like Hyper Text Transfer Protocol (HTTP),

Telnet (remote login), File Transfer Protocol (FTP) and Simple Mail Transfer Protocol

(SMTP) use TCP/IP to establish a connection with the internet.

2.1.2 FTP:

File Transfer Protocol (FTP), a standard Internet Protocol, is the simplest way to

exchange files between computers on the Internet. FTP is an application protocol that

uses the Internet's TCP/IP protocols, like HTTP and SMTP. FTP is generally used to

transfer Web page files from the creator to the computer that acts as their Server for

everyone on the Internet (Clients). It is also used to download programs and other files to

your computer from other servers. Using FTP you can also update (delete, rename, move,

and copy) files at a server. You need to logon to an FTP server. Each file is identified by

8

a server-defined username and a server-defined pathname. Publicly available files are

easily accessed using anonymous username. Most of the servers demand passwords.

FTP uses two TCP connections, one for control information and one for the actual

data. When a client needs a file, it opens a connection and the server sends the file and

then the data connection is closed. The client initiates the FTP connection. It opens a TCP

connection which is used as a control connection. This connection is used to send

commands and receive replies from the server. This connection is maintained between

the client and the server through out the entire session of data transfer. This connection is

not used to for the file transfer. The file transfer is done using a data connection. The

client sends a command to retrieve the file, and the server receives the command and

sends the file across the data connection and closes this connection when the transfer is

complete, but still maintains the control connection. The server closes the connection

depending upon the commands sent by the client.

There are two types of data connections – Active and Passive. Passive mode is

said to be ‘server-managed’ and active mode is said to be ‘client-managed’. In Passive

mode, the client sends a PASV command to the server indicating that it is trying to

connect to the client and the server waits for the connection and sends an

acknowledgment with host and port address. And when required the client uses this

address to establish a data connection. In the active mode, the server connects to the

client. Here the client sends the address and the port number and when the data

connection is required, the server initiates the connection.

9

2.1.3 SMTP:

Simple Mail Transfer Protocol is used to manage the transfer of electronic mail

from one computer mail system to another. It makes use of TCP/IP to transfer email

messages from client to server machine. It does not accept mail from local users, nor does

it distribute mail to the intended recipients. This task is generally handled by the local

mail system.

FIGURE 4: SMTP Mail System

There is usually an I/O queue at the interface between the Local Mail System and

the Client/Server ports. The Client is concerned with the sending of mail to another

system, whilst the server is concerned with receiving mail. The local system maintains a

mailbox for each user on the system. The name of this mailbox is unique and consists of

two parts:

“Local Port” Name of the user and must be unique to the local host.

“Global Port” Name of the host and must be unique to the Internet

10

After the mail has been created the local mail system determines, based on the recipient

name, whether or not to place the message in the SMTP output queue. If the mail is kept

local it is delivered by the local mail system without SMTP getting involved. To send the

mail to another machine the client SMTP first gets the destination IP address from the

directory service (known as the Domain Name Server). Using this and the SMTP server

well known port, address 25, a transport connection is established between the server

SMTP and the destination host. Once the connection has been established the client starts

the transfer of the waiting mail to the server.

The mail transfer involves the exchange of SMTP PDUs, known as commands.

Each command is an ASCII character string and it can consist of a three digit number,

text or both. Commands are transferred over the established transport connection using

the standard TCP send/Receive user primitives.

An example session:

The session starts with the client establishing a TCP connection with the server well

known port, 25. Once this is done, the server responds with a PDU 220 (ready for mail).

The client and server then exchange names with a HELO Client name from the client and

a corresponding Server name response.

11

FIGURE 5: Example of an SMTP session

The mail message starts with a MAIL FROM: message from the client. After a

250 (Ok) response from the server the client then sends a RCPT TO: indicating the name

of the intended recipient of the email. The server then has two options: It can either send

250 indicating that the recipient exists on its system or it can send 550 (recipient not here)

which will result in the message not being sent by the client.

Once the Ok message has been received by the client it sends DATA which is

actually the header of the mail message. Following this the server sends a 345 (Ready for

mail) indicating that it is now ready for the body of the mail. The client then sends the

12

body which is terminated by a line containing a single full stop. The end of the mail is

acknowledged by the server with another 250 message.

Finally the connection is broken gracefully. The client sends a QUIT which is

answered by the server using a 221(Destination closing) message. The connection is then

terminated using the normal TCP termination method. This is the basic functionality

which is provided by SMTP.

2.2 Socket Programming:

Sockets are interfaces that can "plug into" each other over a network. Once so

"plugged in", the programs so connected communicate. In a client-server mechanism,

client and server can communicate through sockets. There are two communication

protocols that can be used for socket programming.

2.2.1 Datagram communication:

The datagram communication protocol, known as UDP (user datagram protocol),

is a connectionless protocol i.e.., each time you send datagrams, you also need to send the

local socket descriptor and the receiving socket's address. Additional data must be sent

each time a communication is made. The server program designates a name that identifies

where to reach it (much like a post office box). By sending a letter to a post office box,

you cannot be absolutely sure the letter is received. You may have to send another letter

to reestablish communication.

13

FIGURE 6: Datagram Communication b/w Client-Server

2.2.2 Stream communication:

The stream communication protocol is known as TCP (transfer control protocol).

TCP is a connection-oriented protocol. Connection is established, and a dialog between

the programs will follow. The program that provides the service (the server program)

establishes the connection. It assigns itself a name that identifies where to obtain that

service. The client of the service (the client program) must request the service of the

server program. The client does this by connecting to the distinct name that the server

program has designated. It is similar to dialing a telephone number (an identifier) and

making a connection with another party that is offering a service (for example, a

plumber). When the receiver of the call (the server) answers the telephone, the

connection is established. The plumber verifies that you have reached the correct party,

and the connection remains active as long as both parties require it. A server can handle

14

multiple clients by assigning different port numbers to each client that requests for a

connection.

FIGURE 7: Stream Communication b/w Client-Server

A stream is a sequence of characters that flow into and out of a process. An input

stream is an input stream is a connected to an input source like a keyboard which gives

input to the system through sockets. Any input data that has to be sent to the server or

another process is put on an input stream and sent. An output stream is a connected to an

output source like a monitor, which gives the output or response to the clients through the

sockets. Hence, any type of data transfer between a client and the server takes place

through sockets in TCP/IP.

Socket Communication is preferred over other IPC methods because of the advantages:

The processes that use a socket can reside on the same system or on different

systems on different networks.

15

Typical system configuration places the server on one machine, with the clients

on other machines. The clients connect to the server, exchange information, and then

disconnect.

2.3 Programming Language used

2.3.1 Java

Java is a high-level, third generation programming language. Applets, a special

program written in java, can be run on any web browser. The Java compiler does not

produce native executable code for a particular machine like a C compiler would. Instead

it produces a special format called byte code. It solves the problem of platform-

independency by using byte code, which makes a java program portable across Multi-

platforms. Only the interpreter and a few native libraries need to be ported to get Java to

run on a new computer or operating system.

2.3.2 MySql Database

MySql is a Database Management system which supports both Multi-user & Multi-

threaded features. It is an open source database distributed by MySql AB. The query

language used in this software is SQL, which stands for Structured Query Language. The

database is divided into many individual segments called Tables which hold the actual

data. For our Project we have installed the MySql on the Server end, so the database sits

on the server and responds to Client requests with the help of a server. For implementing

the Event Calendar, I have used the Query browser 5.0, one of the latest GUI tools

provided by MySql AB.

16

2.3.3 JDBC Connectivity

JDBC is an API developed by Sun Microsystems that provides an interface to access data

from the Database using the Java programming language. Using JDBC, an application

can access a variety of databases and run on any platform with a Java Virtual Machine

installed. JDBC also allows writing an application that can send SQL statements to

different database systems. SQL is the standard language for accessing relational

databases. The JDBC API defines a set of Java interfaces that encapsulate major database

functionality, such as running queries, processing results, and determining configuration

Information. Because JDBC applications are written in Java, applications work on any

platform.

17

CHAPTER 3 3.1 PROMOND:

PROMOND is a tool that provides an interface for the Users, who will have

access to the remote data and can simultaneously share the data among other users in his

group when ever needed. This will certainly help users in many instances, e.g. when one

is away from his personal system & working remotely but needs data from his personal

system. It supports work collaboration also in a way, when a group of people are working

on a project through the file sharing feature. Considering the scenario of a ‘Professor’s

World’, a professor has to organize his work and material in an orderly and easily

accessible manner. He will have to work on different computers to accomplish his daily

work. As a daily routine, he has to save his work, copy his work to a storage device (USB

drive or a CD) or send it across e-mail and when he is working on a new system he has to

copy back all those files and start working again. So, it will be a tedious task for him to

transfer his work whenever he switches from one system to another & there is always a

chance for some files to be missing. All these issues can be resolved with a system that

can provide Remote access to retrieve the data across different systems. The Promond

system is designed to meet all these requirements.

This Promond system is built in such a way that it can handle multiple clients in

parallel, by implementing Multi-threading at the Server end which will process different

client requests on different ports. The users of the Promond system are provided with a

username and a password to login into the tool. The Database used for this system is

MySql and tables are created to store the user related data like their first name, last name,

designation, email etc. The client sends requests to the server and server in turn hits the

18

database to process the client requests. The server maintains separate folder for each user

and their username is displayed on the GUI as Private workspace. The GUI also has a

“Public Workspace” which is common to all the users and is visible to all users of

Promond Client.

The figure below illustrates the Client-Server interaction of the Promond

system.

FIGURE 8: Client-Server interaction in a Promond System

19

3.2 Client –Server Requests Handling

The Client sends requests to the server for every occurrence of an event. The

requests may be a single one or a series of requests which are handled by the server via

parallel execution and it is always the client which initiates a request. The client always

sends requests in the form of Byte Packets to the server. The server in turn responds to

the requests in the form of byte packets. The server sits idle until it encounters a request

back from the client. However, after the end of that conversation, the server keeps

checking for any messages sent from the client every 100 milliseconds and goes through

a continuous loop checking infinitely until the client sends Exit/Logout message, in

which case, it disposes the Thread for that client.

3.3 Events and Triggers

Events are generated based on the action performed by the user. Each event

generated triggers or invokes a method or a class that performs some action. The Client

may send requests to the server either directly or indirectly. Generally, there are two

kinds of events that a client generates.

i. The mouse-listeners heard some click, double-click or click and drag by the users

on the client user-interface.

ii. The monitoring threads could have checked for some changes made to files,

invoking the client to update the file back in the server.

20

3.4 Features Supported by Promond

3.4.1 WORKSPACES

3.4.1.1 Public Workspace:

As the name implies,”public workspace” is a shared workspace among the

Promond users. A user can organize the shared files and folders relating to project are

managed effectively by using public workspace. The server maintains a folder for all the

public files i.e., the files which are accessible by all the users of Promond. These files are

accessible to the user in the form of a tree. By having such shared space, users now can

share common files if they are working on a common task or working towards a common

goal. So, this feature of shared environment builds work collaboration among group of

people.

With the drag and drop feature, the files can be uploaded from the local machine

(Local File system) to the public workspace. This drag and drop feature works even

between both private & public workspaces. One can share files with the other users by

just dragging and placing these files in to the folders in the public workspace.

3.1.1.2 Private Workspace:

As the name implies, “private workspace” is a private area specific to each user to

store ones private folders and files. After a user logs in he can see Files & Folders

personal to him in this workspace which is not sharable to any other users. The data is

represented in the form of a Tree structure, with the root folder named against the user

who logs in. The user also has the facility to navigate through the folders by expanding

the tree structure. This avoids the need to browse through the folders and search for a file

21

by going back and forth. The user can open and view the files by double clicking the

required file. Every file that is opened will be monitored. The user has also an option to

ADD, DELETE and RENAME the folders. The client and server communicate by means

of sockets & by using the TCP/IP protocol for all kinds of requests and responses.

3.4.2 File Transfers: UPLOAD and DOWNLOAD

The Promond system has a drag and drop feature to upload and download files

between the server and the client. The Uploading process is very simple. The user just

needs to drag a file from the Local file system to a particular folder on the server. Once

this is done, a copy of the file is shown in the file tree of the server. When the file is

dropped on to a particular folder in the client, it is directly sent to the server where the

file is saved into the destination folder on which the file was dropped. The path of the

destination folder is taken by the drop action being performed. The server handles the

‘send’ and ‘receive’ commands sent by the client and performs the operations.

Users can simply download the files from the server on to the local machine just

by clicking the “download” button. The user has to select the desired file and then on

clicking the download button, a dialog box opens up and the user can browse to the

destination folder where the file has to be saved. The server then sends a copy of this

selected file on to the local machine.

3.4.3 E-mail:

This is a synchronous communication feature. On the promond client there is an

“Email” feature which is used to send Emails to the group of students registered for a

course. This GUI also facilitates in sending individual emails to anyone as long as the

22

email address provided is a valid one. The SMTP server used for this project is

“mail.wvu.edu”. In Promond system email addresses are stored in the database at the

sever side. User can send email by clicking on the drop down Button and select one of the

group lists. It will then populate all the individual addresses into the “TO” field of the

Email window. The “From” field is masked and by default it has the User’s email address

who has logged into this Promond Client. The users can also specify individual email

addresses in the “To” field. When the user selects a group list the client sends a request to

the server which in turn contacts the Database to retrieve the Email ID’s and sends them

back to the Client. All this is done in the background automatically. After specifying the

“TO” addresses the user can type a message and hit the “Send” button, It then contacts

the SMTP sever which is provided by the Promond System (uses its own SMTP server).

This will breaks the “TO” field email addresses into two parts recipient name and the

domain name (mail.wvu.edu). Since recipient is in another domain, SMTP server needs

to communicate with that domain. SMTP server sets up a conversation with Domain

Name Server (DNS) asking for the IP address of the SMTP Server for the recipient

domain (mail.wvu.edu). The DNS replies with the one or more IP addresses for SMTP

sever(s) that recipient domain (mail.wvu.edu) operates. SMTP server at Promond

connects with the SMTP server at the recipient domain (mail.wvu.edu) and passes the

message to the SMTP server. The recipient domain (mail.wvu.edu) server recognizes the

domain name for recipient is at recipient domain (mail.wvu.edu), and it hands the

message to recipient domain (mail.wvu.edu)’s POP3 server, which puts the message in

recipient’s mailbox. This email includes all the information such as from, to, subject,

body.

23

3.4.4 Event Organizer/Scheduler:

Event Organizer is one of the important features of this promond system. It is

similar to a Calendar where the users can record their events, appointments & tasks in a

Calendar, which are stored in the Database. The user can also specify the time when he

should be reminded about occurrence of event, and once specified the user is alerted with

appropriate messages when the events happen are about to happen. It provides the user

with schedule maintenance, which helps in scheduling the events, appointments or

remainders. When the user clicks on the Calendar button on the promond client a separate

window is opened just like a standalone application. The user can now choose the desired

Group and switch to his own account by selecting his account from the Accounts panel.

He can further create Tasks, Appointments by providing appropriate details and these

details are stored in the Database. Say for example, the user has created an appointment

with name as “Promond meeting” and specified the start date as 18-Oct-07 and end date

as 18-Oct-07, And the duration of the meeting to be between 20:30 pm – 21:00 pm. He

also has the privilege to select the Reminder Time by clicking on the Reminder drop

down list and select the time when he has to be reminded. Once he has provided all these

details he can click the SAVE button which will store all his data in the Database. Once

this appointment is saved, this appointment appears on the Calendar view as a bar graph.

And when the cursor is placed over the bar-graph he can see the details of the meeting.

The users also have the ability to modify their tasks (appointments) which were saved in

the Database. The users can also switch between Daily, Weekly & monthly views which

24

is similar to the views provided by Microsoft Outlook. The interface for this Event

Organizer is designed to be friendly to the user.

3.5 Client GUI:

Users can login into the Promond client by typing their username and password given by

the administrator. After the user enters his credentials and hit the “OK” button, the values

of both the fields are retrieved and sent to server over the network. The server validates

these fields against the values stored in the Database. If both the fields match, the user is

shown a Client User window and if it fails a dialog box appears on user screen with text

as “Wrong Username/Password”. He can then hit the “Cancel” button which

eventually closes the connection with the server and exits out of the system. Figure below

represents the Login window for Promond Client

The GUI of the client window is shown below:

25

FIGURE 9: GUI of a Promond System

The client has a Graphical User Interface (GUI) for the user. All the components in the

user interface were built using Java’s Swing components and Abstract Window Toolkit.

The components use mouse-listeners to identify the user actions and generate the

appropriate triggers.

The above client window has the following:

i. An “Option” Panel

26

ii. A “File Access” Panel

iii. A “Recent Files” Panel and

iv. A “Details” Panel

Panels:

(i)Option Panel:

This Panel has a group of buttons that deal with the File access & Email. The buttons

“Add”, “Rename”, “Delete” are used for the files and folders and “Email” for sending

Email to group of students who have taken respective courses.

(ii)Files Panel:

The Files Panel consists of two Jtree’s, one representing private workspace & one for

Public workspace for a user where he can store & retrieve Files.

(iii)Recent Files Panel:

The Recent Files Panel has a JList, which shows the recent files accessed by the user and

the currently open files. It also has a “Clear from List” button to clear the selected file

from the JList.

(iv)Details Panel:

The Details panel will display the username, first name, last name and the designation of

the current user in the Project or status of the user. It could be Developer, Administrator,

Professor, etc. There is also a hyperlink provided to reach “www.wvu.edu” in the Details

panel.

27

3.6 Calendar User Guide:

When the User clicks on the “Calendar” button on the promond client a new window

opens up separately from the Client window.

FIGURE 10: GUI of a Event Calendar

28

The details of how this calendar works is shown below.

Groups:

To Add A Group:

Press “Group” button, then you will have to enter the name of the group.

The program loads the new group automatically.

To Delete A Group:

Press “Del Group” button, then you will have to choose from a popped window the group

name to be deleted.

29

To change group:

Press “Change” button, then you will have to choose from a popped window the group

name which the program will load.

Accounts:

30

To Add An Account:

You need first to have a valid group, else the “Account” button which you will use to

create a new account will be disabled.

To Change the Account:

To change to another account within the same group, you just click on the account name

in the accounts viewer. But if you need to change to an account within another group you

will have to change the group first.

31

To Delete an Account

You need to click on “Del Account” button and it goes the same like deleting a group.

Note: The next features first need to have a selected account:

Tasks:

To add a task:

You will have to click on “Task” button, and then you will have the panel on your right

hand cleared to enter the new task data. Then you click on the add button

To Edit a task:

Choose the task from its viewer, then the add button will be changed to save. So you edit

the data then click on save.

32

To Delete a task:

You are only allowed to delete a selected task by clicking on “del Task button”. If there is

no task selected, the “del task” button will be disabled.

Notes:

33

To add a new note you will have to enter the note name in the text area in the bottom.

To view a note, just click on it. Note that viewing the first note may take time to create

the notes viewer object.

After you edit the note you can close the frame then you will be asked whether you want

to save it or not, else you can click on “Ctrl+S” to save the changes in the note.

Appointments

To add an appointment, form the bar of the program click the menu add, then new

appointment item.

You can enter the data on the panel on your right, then click add.

34

To edit an appointment you just need to click on it, then edit the data, then click save.

To view the appointment data just stop over it by the mouse

35

To change the start date or the due date click one > button

Notes:

Use the view item in the upper bar to change the view to

• Daily view

• Weekly view

• Monthly view

The user can use the “print item” to decide which date data to print.

36

Some .wav files are included under the Alert Item and user can select one of those files

and the alert will be played.

EMAIL:

After a user logs onto the Promond Client with his proper credentials, the client GUI will

be shown which has plenty of buttons set-up on different panels, and when he clicks on

the “EMAIL” button, the below window pops up. The user can now click on the “TO”

dropdown list and select one of the course groups. This will then automatically pull all

the email addresses stored in the Database for this class group. The “From” field is

masked by default and will hold the user’s Email address. The “SMTP” server used for

this project is “mail.wvu.edu” and this field is also masked by default.

37

38

FIGURE 11: GUI of Promond Email

The user can now add a subject & detailed message and click on the “Send” button.

Clicking on the “Cancel” button just ignores the email and the window exits. After

sending a mail successfully, the server output is shown in the text box located right-side

of the Email window.

The user can add new Courses & Email addresses of the students by clicking on the

“AddCourses” Button. This will open a new separate window, where the user can enter

the CourseName & Email addresses of students (separated by Comma), and click the

“Submit” button. This will add a new Course name & Email Id’s of the students onto the

Database. The window has an auto-refresh on it which updates the CourseList if any new

course is inserted into the Database.

39

FIGURE 12: COURSES ADD/DELETE Option

The new CourseName appears in the Existing CourseList once added to the Database.

The user can also delete one of the existing courses by selecting a CourseName from the

“Existing Courses” drop-down and press the Delete Button. This will remove the course

and associated Email-id’s from the Database.

40

CHAPTER 4

Conclusion:

• The Promond Client was developed to help a professor organize his work in

an efficient manner across multiple systems that are connected over a

network. Client-server architecture has been used to implement the

Promond system.

• The promond system is designed to handle multiple clients using the

Multi-threaded client-server architecture.

• This project can eliminate the need for saving the work and carrying the

data using removable devices.

• File Transfer mechanism is implemented where the Users can upload &

download the files between local machine & the Server.

• Workspaces are created, both Public & Private, for the users which will

enable them to share files between other users.

• Auto saving of files is implemented which overcomes the issue of dataloss

in the event of a power failure.

• Events can be organized by means of a Calendar which automatically sends

alerts to the user when the events are about to happen.

• Email feature is implemented in this project, which would be used by a

professor to send periodic mails to group of his students in respective

courses.

41

• All the code for this project has been developed in Java, which helps to

easily port this promond client across multiple platforms.

Future Work:

• The Event organizer used in this Promond system sends alerts to the user

whenever events occur and display them in a Dialog box. Considering a case

where the user is away from the promond client, he would not be able to

receive any alerts. So, to evade this problem the user can be sent a text

message to his Cell phone reminding him about the occurrence of an event.

• The Promond system is built currently on the windows environment. This

client can be made portable across multiple platforms making it platform

independent.

• The services embedded into this client are the basic services. It can further be

enhanced by incorporating some sophisticated features & adding security

measures making it a viable software.

• The File transferring feature is handled by a simple FTP, but can be better

handled by means of SFTP (Secure File transfer protocol), thus enhancing the

security levels.

42

REFERENCES:

• TCP RFCs:

http://www.ietf.org/rfc/rfc793.txt

http://www.ietf.org/rfc/rfc2018.txt

http://www.ietf.org/rfc/rfc2581.txt

• Computer Networking: A Top down Approach Featuring the Internet, 3rd edition.

Jim Kurose, Keith Ross, Addison-Wesley, July 2004.

• Mysql Database & query browser from http://dev.mysql.com/downloads/gui-

tools/5.0.html.

• "Eksarva: A Framework for Enabling Agent-Based Collaboration", by

Selliah, S., Reddy, R., Yu, J., Bharadwaj, V. and Reddy, S., in Proceedings of the

13th IEEE International Workshops on Enabling Technologies: Infrastructures

for Collaborative Enterprises (WETICE-2004) Agent-based Computing for

Enterprise Collaboration (ACEC) Workshop, Modena, Italy, June14-16, 2004.

http://siplab.csee.wvu.edu/research/pubs/ACEC-bharadwaj-eksarva-Revised.pdf

• Promond References:

1. PROMOND – Network File Access and Standby for the Files over the Network

Vinoth Pugazenthi, Nov 2007

2. PROMOND – Network File Access and File Sharing by Prasanna Danda,

Nov 2007

43

APPENDIX

Slide 1

PROMOND Email & Event Scheduler with Automated Triggered Messaging

PRASHANTH ADDEPALLI

[email protected]

LANE DEPARTMENT OF COMPUTER SCIENCE

AND ELECTRICAL ENGINEERINGWEST VIRGINIA UNIVERSITY

NOV 5TH,2007

Slide 2

44

Acknowledgements

Dr. Y.V. Reddy

Dr. James D. Mooney

Dr. Sumitra Reddy

Slide 3

Overview

• Scenario• Objective• Promond• Conclusions• Future work

Slide 4

45

Scenario : Professor’s World• A professor is involved in:▫ Courses▫ Research▫ Co-ordinate research work among his group.

• Need to work on different Machines (computers):▫ Office Computer▫ Research Computer▫ Home Computer▫ Personal Laptop

Slide 5

Objective

• To develop a “Promond” client where a Professor can organize his events or schedules and have the provision to get reminders prior to the occurrence of these events.

• The client should facilitate a professor to communicate to his respective group of students via Email.

Slide 6

46

Promond

• “PROMOND” is a tool that provides an interface for the Users, who will have access to the remote data and can simultaneously share the data among other users in his group when ever needed.

• It supports work collaboration in a way, when a group of people are working on a project through the file sharing feature.

Slide 7

Promond: Features Implemented

• Event Scheduler & Signaling mechanism.• Email• Private and Public workspaces• Uploading and downloading files through drag

and drop• File Sharing• File Monitoring & Restoration• Adding, deleting and renaming the folders

Slide 8

47

Promond Architecture

Slide 9

Protocols Used

• TCP/IPConnection-oriented service used to exchange data between the systems

• FTP▫ Control Connection▫ Data Connection▫ File Transfer between two systems

• SMTP• Java Data Base Connectivity

Slide 10

48

Promond: Login window

• Login:▫ Enter Username/Password▫ Client checks with server DB for authentication

Slide 11

Promond: Client GUI

Slide 12

49

E-Mail

Slide 13

Add/Delete Courses

Slide 14

50

Promond: Calendar

Slide 15

Promond: Appointment Alert Box

Slide 16

51

Promond: Weekly View

Slide 17

Promond: Monthly View

52

Slide 18

Promond: Change Alerts “.wav” files

Slide 19

Promond: Task Viewer, Adding Tasks

53

Slide 20

Promond: Change Alerts “.wav” files

Slide 21

Promond: Notes Viewer

54

Slide 22

Advantages of Promond: Email and Calendar

• The use of Promond Event scheduler replaces the need for carrying personal diary all the time.

• The user need not keep track of individual Student Email-id’s registered in his courses, instead he has the provision to look-up email id’s from the course list, and this can happen from any of the computer he uses.

• User is notified about the registered events on the current computer he is logged in.

Slide 23

Technical Issues

• Installation of MySql connect Drivers & configuring them talk to the Server.

• Creation of Dynamic Database objects from the Client system.

• Context switching between users.

• Security Issues & configurations.

• Usage of some of the Java Timer classes to display different Views (Daily, Weekly & Monthly views).

Slide 24

55

Conclusion

• Client-server architecture has been used to implement the Promond system.

• The promond system is designed to handle multiple clients using the Multi-threaded client-server architecture.

• This project can eliminate the need for saving the work and carrying the data using removable devices.

contd…

Slide 25

Conclusion

• File Transfer mechanism is implemented.

• Public & Private workspaces to enable users share files between other potential users.

• Auto saving of files is implemented which overcomes the issue of data-loss in the event of a power failure.

• Events can be organized by means of a Calendar which automatically sends alerts to the user when the events are about to happen.

56

Slide 26

Future work…• Interface the Promond System with the Cellular &

Mobile devices.

• The Promond system is built currently on the windows environment. The portability issue is not addressed yet.

• Incorporating some sophisticated features & enhanced security measures to make it a viable software.

• Clustered Servers for better performance.

57