Micro Project On Mailbox Manager Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The primary goal of micro project named Mailbox Manger is gain the knowledge of the some concept in java entity beans, architecture and software design patterns. It is used for two ways; firstly user to user mail correspondence and other via news group. The first one is classical method of messaging and second one is called group messaging.

In this project, there are two main components "Directory Manager" and "Mailbox Manager". These are programmed with the JEE EJB BEANS.

The main goal of the directory manager is handle the user related right like add user, create newsgroup and assign rights to user and so on. On other hand the mailbox manager is purely responsible for the message delivery process.

we have designed the persistent mailbox for that we used the Mysql database. Here, we have two client one is administrative client who is super user in the system who has the power to add, remove and update user rights and users. And other is the mailbox client who is responsible for the sending and receiving mail only.

The mail users are may be distributed along the network so that they should access; an application server namely we used Glassfish server.

The architecture of the system is as follows:

Fig. general architecture for the project(courtesy: Ender Alvarez Telecom Sudparis)

2.0Design Pattern

Here, in this project we used different pattern namely:

Multi-Tier architecture

In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a client-server architecture in which presentation, application processing, and data management functions are logically separated. In our project the user interaction and logic and processing are different as shown in figure below.


Directory Manager

MailBox Manager

User Interface

Directory Manager Remote

Mailbox manager remote

Session Beans

Data Management

Rights, mailbox newsgroup mail box

Entity Beans

Fig. the multi-tier Architecture of the MailBox

Here, we separate the interaction of user with the application and application is also separated with the data management. But yet they are seem to be different but they are logically connected.

Synchronous call

When someone calling to other if gives the response immediately then it is an synchronous call. Here in this project, we have some similar kind of communication between clients and managers. When the mail client request the sent that can be handle by the manager and sent her positive or negative depending upon the rights assign to him.

Diagrammatically we can demonstrate as:

Add user




Directory Manger

Fig. Synchronous call of the example

Similar kind of architecture we can see in the client and mailbox manager. When we are going to send a message then we just go to the mailbox manger and after that he is solely responsible for delivering the message.

Client A

Receive a message

Mailbox Manager

Client B

Sent a message

Ask for message


Fig. Push-Pull Operation of messages.

3.0 Procedure and Thinking

As it was presented before, the Mailbox Project is composed of three main tiers, the technologies used to develop those tiers and the clients applications that access the system are the followings:


• Administration Client: This is the client who is responsible for doing all administrative task. He is the one can only access the directory manager. His main contribution is on creating and removing user. Assign and update the rights of user and create the news group and assign the rights in it.

• Mailbox Client: this client will communicate with the Mailbox Manager in order to perform message delivery tasks such as, send a message to other user, read messages of mailbox, delete messages of mailbox, read/publish newsgroup messages, among others.

Application Business Logic

• DirectoryManager: It is the box where we are define the every aspect of the mailbox. As the point of view of administrator it is the main administrative place where he can play.it handles the administrative tasks of the system such as, add/remove users, remove/modify users rights, check user rights; it triggers as well the Mailbox Manager methods related to add/remove users mailbox, add a

newsgroup, add/remove a user of newsgroup.

• MailboxManager it is responsible for management of the message delivery logic procedures like receive/send/remove/list mailbox and newsgroup messages, check whether a user can read/publish messages in the newsgroup.

Database Management

As was said at description of the proposed solution, one of the requirements of the project was to provide data persistence inside the system, for that reason a database management tier was implemented. Inside the project all the persistent data that should be maintained by a database was represented using EJB Entity Beans. The handling of all the database operations and the entity beans was done by Java Persistence API. The database management system in which all the data will be saved is MySQL.

4.0 persistence

Database management of our project is based on the following ER diagram.

5. How to run

This is very simple task because all are made with ANT. But first of all, the setting has been completed then we can just use the ant command for run the project.

DirectoryManager and MailboxManager

For these we can do following steps

ant clean

ant build

ant deploy


For this we can use

ant clean

ant build

java client.AdministrationClient ipaddress of running server


ant clean

ant build

java -cp class/client ipaddressof running server

6.0 Outcomes

After this project, I learned a lot of about the Java Programming. But yet I found, it is very difficult to

debug in java once problem. This may due to the large infrastructure of Java family from Micro to macro.

I always spend a lot of time with simple error in Java. Some of them yet I don't understand yet. I got

problem from starting the Activemq and Glassfish to the end of Project. The configuration, missing file

placement and incompatibility are found major issues this project.

Yet I can successfully, run the program but I failed to implement various option and function that has been given us to complete.