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
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
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
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