Sei sulla pagina 1di 49

CT024-3-3-DCOMS

INDIVIDUAL ASSIGNMENT

JACON FOOD DELIVERY SYSTEM

HAND IN DATE: 2th FEB 2017

NAME: CHIN JESS NNY

TP NUMBER: TP032137

INTAKE CODE: UC3F1610SE-T1

LECTURER NAME: MR. UMAPATHY


CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Table of Contents
Abstract ..................................................................................................................................... 4

Introduction .............................................................................................................................. 5

Problem Statement................................................................................................................... 5
1.1 Aim ............................................................................................................................................... 6
1.2 Objectives .................................................................................................................................... 6

2.0 Use Case Diagram .............................................................................................................. 7


2.1 Use Case Specification ................................................................................................................ 8
2.1.1 Register account .................................................................................................................. 8
2.1.2 Login account ........................................................................................................................ 9
2.1.3 Place Order ............................................................................................................................ 9
2.1.4 Request list of food menu.................................................................................................... 10
2.1.5 Make Payment ..................................................................................................................... 11
2.1.6 Generate Order Report ........................................................................................................ 11
2.1.7 Manage Food Menu ............................................................................................................ 12
2.1.8 Edit Profile .......................................................................................................................... 13
2.1.9 View Order history .............................................................................................................. 14

3.0 Concept of Distributed Computer System ..................................................................... 15


3.1 Remote Method Invocation (RMI) .......................................................................................... 15
3.1.1 Client Side ........................................................................................................................... 16
3.1.2 Server Side .......................................................................................................................... 17
3.1.3 Remote Implementation Class............................................................................................. 18
3.1.4 RMI Constant Class ............................................................................................................ 19
3.1.5 RMI TestRMI Class ............................................................................................................ 19
3.2 Socket ......................................................................................................................................... 20
3.3 Serialization............................................................................................................................... 21
Stream .......................................................................................................................................... 22
Object Persistence ........................................................................................................................ 22

4.0 Testing ............................................................................................................................... 23


4.1 Register Testing ........................................................................................................................ 23
4.2 Login Testing............................................................................................................................. 24

5.0 Comparison between DCOMS technology .................................................................... 25


5.1 Common Object Request Broker Architecture (CORBA) ................................................... 25
5.2Component Object Model (COM) ........................................................................................... 25

2
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

5.3 Distributed Component Object Model (DCOM) ................................................................... 26


5.4 Justification on selected technology ........................................................................................ 26

6.0 Virtualization & Cloud Computing ............................................................................... 27

7.0 Program User Guide ........................................................................................................ 29


7.1 Main Page .................................................................................................................................. 29
7.2 Customer / Admin login page .................................................................................................. 30
7.3 Registration Page ...................................................................................................................... 31
7.4 Customer Main Menu Page ..................................................................................................... 32
7.5 Select food page......................................................................................................................... 33
7.6 Cart Information Page ............................................................................................................. 34
7.7 Place order and Make payment page...................................................................................... 35
7.8 E-receipt page ........................................................................................................................... 36
7.9 View order history page ........................................................................................................... 37
7.10 Profile Page ............................................................................................................................. 38
7.11 Admin Main Menu Page ........................................................................................................ 39
7.12 Admin Food Menu Page......................................................................................................... 40
7.13 Generate report Page ............................................................................................................. 41
7.14 admin view user profile .......................................................................................................... 42

8.0 Hardware and Software Specification ........................................................................... 43


8.1 Hardware Requirement ........................................................................................................... 43
8.2 Software Requirement ............................................................................................................. 43

9.0 Benefit of Internet Communication Engine (ICE) ........................................................ 44


Secure............................................................................................................................................... 44
Efficient and minimize CPU and bandwidth consumption ........................................................ 44
Flexible............................................................................................................................................. 44

10.0 Future Enhancement ..................................................................................................... 46

11.0 Conclusion ...................................................................................................................... 47

Reference ................................................................................................................................ 48

3
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Abstract
In this project, there are several distributed technologies will be discussed and adapted in the
JACON food delivery system. It also utilizes appropriate language and system facilities to
develop distributed and fault tolerant application. The project future development will also
discuss in the project in distributed system technology and standards. A complete program user
guide will be showed in the project to ensure fully understanding of the online food delivery
system.

4
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Introduction
JACON is one of the most famous online food delivery system in Malaysia. This food system
provides services to the customers by supplying foods in quicker and easier with cheapest rate.
JACON has numerous branches all over the Malaysia. The speciality of JACON covers
northern, southern and western styles of food. The system has both client and server side. The
function of the system is to allow the user to place order by using the food delivery system.
Besides, the system also allows the admin to make changes of the food menu and generate
order report.

Problem Statement
By using the system for JACON, it helps in serving food to customer at any time during
business hour. There might be a problem while the shop has insufficient seat for the customer
which might not satisfy for their services. By using online delivery system, it eliminates
misunderstanding and no frustrations when ordering. While dine in restaurant, there might be
chances the waiter has taking the wrong order due to the crowded environment. An online
menu is cheaper and easier to create and maintain, in the shop itself, there are a lot of printed
menu given to customer to order, therefore while a new food item is released the whole menu
needed to be changed but an online order menu is easier to manage the information. Online
delivery system is one of the best way to promote JACON as everyone is concern on using
mobile every day. For example, Mc Donalds and Domino pizza serve both walk in customer
and online customer which help in increase their sales.

5
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

1.1 Aim
The aim of implement of this system is to analyze, design and implement on Food Delivery
System for JACON.

1.2 Objectives
In this assignment, there are several objectives can be found in this system. The purpose of set
objective is to ensure every functionality in the system can be achieved. Therefore, objectives
are listed below:

To allow user to register account with username and password


To allow the system to send acknowledgement email to registered user
To notify user while the entered username existed in system
To allow the user request a list of available food menu
To allow the system to return a list of available food menu to user
To allow user to purchase food from the available list
To ensure secure communication between user and system
To ensure the system able to generate report of ordered list
To ensure the system able to handle multiple users

6
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.0 Use Case Diagram

Figure 2.0: JACON food delivery system use case diagram

7
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.1 Use Case Specification


2.1.1 Register account
Use Case Name Register account

Description To determine how user register account to


the system

Primary Actor Customer

Pre-Condition user should connect to internet

Main scenario 1. New customer access the system


2. Select register button
3. Fill up information
4. Submit information
5. Customer will receive an
acknowledgement email

Post condition User is registered. Appropriate message is


displayed

Fail-end condition Entered a not valid username, used


username or incorrect password format

8
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.1.2 Login account


Use Case Name Login account

Description To determine how user login to the system

Primary Actor Customer and Admin

Pre-Condition User should registered an account

Main scenario User required to enter username and


password to access the system

Post condition User is login

Fail-end condition Entered an invalid username and password

2.1.3 Place Order


Use Case Name Place order

Description To determine how user place order in the


system

Primary Actor Customer

Pre-Condition User should registered an account

Main scenario 1. User select food type


2. Choose available food type from
available food menu
3. Add item into cart
4. Fill in order details such as name,
contact number and delivery address
5. Select payment method
6. Make payment
7. Receive receipt

9
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Post condition User is successfully place an order, a receipt


will show to user

Fail-end condition User failed to make payment on the order

2.1.4 Request list of food menu


Use Case Name Request food menu

Description To determine how user request for available


food menu

Primary Actor Customer

Pre-Condition User should registered an account

Main scenario 8. User search for desired food type


9. System return the available food
menu based on user preference

Post condition Available food menu will display on the


system interface

Fail-end condition User failed to login the system

10
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.1.5 Make Payment


Use Case Name Make payment

Description To determine how user make payment of


the order

Primary Actor Customer

Pre-Condition User should registered an account

Main scenario 1. User should check out the item in


cart and fill in required information
2. User select payment method
3. User fill in information such as card
holder name, card number, expired
date, security code to verify
payment
4. System will verify payment detail
5. User will received a receipt when
the payment has been successful
transferred

Post condition User should select food in cart in order to


make payment

Fail-end condition Payment has been denied

2.1.6 Generate Order Report


Use Case Name Generate order report

Description To determine how admin generate order


report

Primary Actor Admin

11
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Pre-Condition Admin required to log in to system

Main scenario 1. Admin select generate order report


button in main menu
2. Admin select either monthly or
weekly report to generate
3. Order report displayed on the user
interface

Post condition admin successfully generate order report

Fail-end condition Admin unable to login to system

2.1.7 Manage Food Menu


Use Case Name Manage Food Menu

Description To determine how admin manage


information of food menu

Primary Actor Admin

Pre-Condition Admin required to log in to system

Main scenario 1. Admin select food menu button


2. Admin select either add new item,
edit item detail or delete selected
item
3. Confirm changes by clicking done
button
4. Information will be updated

Post condition admin successfully manage food menu


information

Fail-end condition Admin unable to login to system

12
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.1.8 Edit Profile


Use Case Name Edit Profile

Description To determine how customer edit profile

Primary Actor Customer

Pre-Condition Customer required to log in the system

Main scenario 1. Customer select profile in main


menu
2. Customer fill in old password, new
password and retype password
3. Customer select edit button
4. The new password will be updated
in database

Post condition Customer successfully update password

Fail-end condition Customer key in wrong old password

13
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

2.1.9 View Order history


Use Case Name View order history

Description To determine how customer able to view


order history

Primary Actor Customer

Pre-Condition Customer required to log in the system

Main scenario 1. Customer select view order history


2. A list of order information will be
showed in a table form

Post condition A list of order history will displayed

Fail-end condition Customer did not place any order

14
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.0 Concept of Distributed Computer System


3.1 Remote Method Invocation (RMI)
Remote Method Invocation is using JAVA programming languages and development
environment. Normally it is object oriented programing that able to interact with different
machine in distribute network. Therefore, it can be treat as API to allow the object to implement
a method on another object in the different address space so it can be use in remote machine or
same machine. By using RMI, java virtual machine (JVM) can run an object in the computer
which is client side can call a method on an object that present in another machine which is
server side. Besides, RMI will create a public remote server object that make the
communication between client and server side through calling the object in simple method.
There are two important object required to use for communication which are stub object and
skeleton object (javapoint, 2017).

The stub object on the client machine builds an information block and sends information to the
server and skeleton object required to pass the information from stub object to remote object.
For example, while user log in to the system a log in request will send to server to get
verification of the login details. After verified, the server will return the result to user and allow
the user to log in to the food delivery system. During the passing request from skeleton object
from stub object to remote object, it performs tasks which called the desired method on the real
object present on the server and it forwards the parameters that received from stub object to
the method (Geeksforgeek, 2017). The diagram below showed how RMI working.

Figure 3.0: Working of RMI

(Geeksforgeek, 2017)

15
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.1.1 Client Side


package com.client;

import java.rmi.NotBoundException;

import java.rmi.RemoteException;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import com.interf.test.Constant;

import com.interf.test.TestRMI;

public class TestClient {

public static void main(String[] args) throws RemoteException, NotBoundException{

Registry registry =
LocateRegistry.getRegistry("localhost",Constant.RMI_PORT);

TestRMI remote = (TestRMI)registry.lookup(Constant.RMI_ID);

System.out.println(remote.isLoginValid("ok"));

System.out.println(remote.isLoginValid("test"));

16
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.1.2 Server Side


package com.test;

import java.io.IOException;

import java.rmi.AlreadyBoundException;

import java.rmi.RemoteException;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import com.interf.test.Constant;

public class RMIServer {

public static void main(String[] args) throws RemoteException,


AlreadyBoundException, IOException{

Runtime.getRuntime().exec("rmiregistry 1099");

RemoteImplementation impl = new RemoteImplementation();

Registry registry = LocateRegistry.createRegistry(Constant.RMI_PORT);

registry.bind(Constant.RMI_ID,impl);

System.out.println("Server has started");

17
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.1.3 Remote Implementation Class


package com.test;

import java.rmi.*;

import java.rmi.server.UnicastRemoteObject;

import com.interf.test.TestRMI;

public class RemoteImplementation extends UnicastRemoteObject implements TestRMI{

private static final long serialVersionUID = 1L;

protected RemoteImplementation() throws RemoteException {

super();

// TODO Auto-generated constructor stub

@Override

public boolean isLoginValid(String username) throws RemoteException {

if(username.equals("test")){

return true;

else{return false;}

18
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.1.4 RMI Constant Class


package com.interf.test;

public class Constant {

public static final String RMI_ID ="TestRMI";

public static final int RMI_PORT=1099;

3.1.5 RMI TestRMI Class


package com.interf.test;

import java.rmi.*;

public interface TestRMI extends Remote{

public boolean isLoginValid(String username) throws RemoteException;

19
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.2 Socket
Socket is one endpoint of two ways communication link between programs. Socket is a
programming abstraction which used to implement low level IPC. Socket is used to exchange
information to other process with a specific condition where both processes must have socket
to perform the transference of information. Socket is divided into two different type which is
client side socket and server side socket. Client side act as the end point of the conversation
which it performs send request and receive response. After the process has completed, the
socket will be destroyed and not activated unless the sending request process are created again
(Badgerati, 2009).

In order to setting up the socket in client side, TCPIP must be set for a socket to connect server
on the port and corresponding to the appropriate protocol. If the connection has been successful
connected with no error, the whole process of setting up in client side is completed and ready
to send request to a specific webpage though socket. In the system, one of the example is new
customer able to register by sending request to system and wait for response, when response is
being processed the socket will receive from system and display the registration page. After
completed, the socket will be discard. On the other side, server side socket will listen the
instruction from host to perform task given by the client side which only wait for command to
perform actions. The food delivery act as server side to wait any command from user to execute
specific process. Usually, the new socket works to exchange information with the client side.
After complete a process, the socket from server will simply goes back to listen for more
connections. To set up a server socket, TCPIP is required and bind the server socket to the host
address and a port. When setting has completed, the server socket will ready to listen
connection and set the maximum number that could be waiting. While the connection is
connected by the server side, two block of information can be gather and ready to process.
Lastly, when the process is finished, client connected socket must be shut down and close and
when the handler has completed and return to the parents (Badgerati, 2009).

20
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

3.3 Serialization
Serialization is a process of converting the state form of information into binary or textual form
in order to transport over network. It able to transform a single or group of object into array of
bytes or stream of bits for storing and sending over the network whereas array of bytes and
stream of bits can transform back to the original state of information (docs.oracle.com, 2017).
The process will perform automatically when ObjectInputStream and ObjectOutputStream
classes is used in the system (stackoverflow, 2017). Therefore, the programmer able to decide
to choose implement in the function by implementing the serializable interface. The process of
serialization consists of marshalling and deflating of the object whereas the process of de-
serialization is inflating and un-marshalling. There are several benefits of using serialization
which is it is easy to use and it is customizable. Besides, the serialized stream can be encrypted,
authenticated and compressed, supporting the needs of secure Java computing. (Seshadri,
2012). By using serialization, it helps to improve secureness of the file to prevent information
leaked. Lastly, serialization can be used to exchange object between different programming
language such as C++ and java library with third part vendor library (Seshadri, 2012).

21
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

Stream
Stream is one of the channel to allow every program to store data and ensure every program
read data from the channel. Every stream has the ability to write data with different method
and read from the source which is read method. When the channel is created, all methods need
to be called to execute the process (MrBool, 2017). The diagram below showed how the stream
work on a program.

Figure3.1: Stream representation

(MrBool, 2017)

Object Persistence
Object Persistence is the ability to determine how the object are surviving when the application
runs. The collected object will be collected by the JVM garbage collection during runtime when
the object is no longer active. If the object did not collect and the API of persistence is used, it
allowed to access to the application for the following time during the running process. Another
benefit of implement persistence is able to store object in database which able to retrieve data
at any time.

22
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

4.0 Testing
4.1 Register Testing
No. Test ID Test Description Expected Actual Result Status
Function Result

1 Register Register01 Enter registration Registration Registration Pass


TP01 detail such as successful successful
username,
password, confirm
password, name,
BOD, contact
number correctly

Register02 Password and Registration Registration failed


confirm password failed failed
not match

Register03 Enter username Registration Registration failed


which existed failed failed

Register04 enter blank Registration Registration failed


information failed failed

23
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

4.2 Login Testing


No. Test ID Test Description Expected Actual Result Status
Function Result

1 Login TP02 Login01 Enter username and Login Login Pass


password correctly successful successful

Login02 Enter wrong user Login failed Login failed failed


name and correct
password

Login03 Enter wrong Login failed Login failed failed


password and
correct username

Login04 Enter wrong Login failed Login failed failed


username and
password

24
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

5.0 Comparison between DCOMS technology


5.1 Common Object Request Broker Architecture (CORBA)
COBRA is an open distributed object computing infrastructure standardized by Object
Management Group (OMG) and specification based on technologies proposed by software
industry. CORBA provide independence platform as it using internal naming service for
services client requests by providing middle layer between both client and server to determine
server object. After that, it exposes method to client via its object adapter (POA). CORBA
consist of potential maintainability as the server object able to make changes. The benefit of
using CORBA is because it related to Object Request Broker (ORB) which support client and
server network on separate machine to execute process whereas request service also need to be
done from server program. Basically, it did not request to define where is the server and what
interface used. During the execution of both request and return service required General Inter-
ORB protocol (GIOP) and Internet Inter-ORB protocol (IIOP). Both protocols must use
together which enable to get request and replies to the Internets Transmission Control Protocol
(TCP).

5.2Component Object Model (COM)


COM is a binary-interface standard for software components which introduced by Microsoft
in year 1993. COM is used to create re-usable software component and link components to
build applications and take advantages of window service. The programming language used to
create COM object is C++ to provide mechanism that help in simplify the implementation of
COM object (Rouse, 2017). Microsoft Object Linking and Embedding provide service for user
to display compound document, interface negotiation and life cycle management. The object
is made up of set of data and its functionality is to manipulate data to perform task therefore
COM object required to be accessed to the object data in order to execute more than one
function. Hence, COM able to define how objects work together in distributed system and
improving the security of the system (Microsoft, 2017).

25
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

5.3 Distributed Component Object Model (DCOM)


DCOM supports remote object by running on protocol name object Remote Procedure Call
(ORPC). DCOM is the concept of Microsoft and the program interface in client side to request
the service from the server side with another machine which connect network. DCOM is based
on COM which provide set of interface to help client and server to communicate in one
machine. By using DCOM interface, the client object able to forward Remote Procedure Call
(RPC) to request service from server object. At the same time server object required to process
and return result to client object. In other way, DCOM can work through network by using
TCP/IP and HTTP method to execute the process. DCOM is similar with CORBA as it also
provides distributed services. While the differences of DCOM and COBRA is DCOM is
approach with network environment for program and data object whereas COBRA is sponsored
by information technology industry which under Object Management Group (OMG)
(TechTarget, 2017).

5.4 Justification on selected technology


Based on several technologies, CORBA is selected as it able to implement in several
programming languages such as C++, JAVA, C and others. In this system, Java programming
language is more suitable for the food delivery system. CORBA is implement in the system as
it is more efficiency technology compare to DCOM and COM. CORBA offer better
performance and it is easier to link object and system together. CORBA protocol infrastructure
ensure the transmission of message between client and server program in a compact
representation therefore client and server able to receive information faster instead of wasting
time while performing execution.

26
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

6.0 Virtualization & Cloud Computing


Virtualization is the software to control the hardware to create various dedicated resources
which is the fundamental technology to power cloud computing. It enables the computer to run
multiple operating system and application at the same time. It helps to increase the computer
hardware efficiency and flexibility. While the virtualization has several advantages, the
purpose of using it is to avoid wasting costly processing power in the system. There are several
virtualization areas in information technology area which are network, server and storage. First,
network virtualization is to enable combination of available resource in network and separate
the available bandwidth into channel which explain how the complexity of network is separated
into manageable parts to handle which has the similar concept with manage files into different
hard drive. Second, server virtualization is to enable hidden server resource from server users.
The server resources including processor, operating system and identity of physical servers.
The important of using server virtualization is to allow user have more resource sharing and
utilization and maintain the capacity of the server. Lastly, storage virtualization is collecting
physical storage from different network storage device to one network storage device.
Basically storage virtualization will use in storage area networks (SANs) (Rouse, 2017). In
general, virtualization is used to centralize task and help in improving the scalability of work
at the same time (Angeles, 2017). In the food delivery system, virtualization concept can be
implement in the system in order to improve the efficiency of the system as well as to help
system admin to manage the order. Virtualization consist of several benefits which should be
implement to improve the system.

There are differences between both virtualization and cloud computing. Virtualization is
different with cloud computing as virtualization is software that manipulate hardware whereas
cloud computing refers to a service that result from manipulation (Angeles, 2014). Besides,
Virtualization can exist without the cloud, but cloud computing cannot exist without
virtualization. The cloud computing is defined as able to share computing resources and deliver
data as a service through internet. In this situation, cloud computing can be implement in the
food delivery system in order to allow user to check the available food menu. System admin
only required to select available food menu to the cloud and cloud are storing the data to display
out to the user. Cloud computing consist of several benefits to for users such as capital
expenditure free, able to work from anywhere without restriction and document control. While
cloud computing able to save cost of hardware, user can just pay and enjoy subscription based

27
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

model without setup the computer hardware. Setting up a server could be a difficult task for
user if user did not have any knowledge about it. Therefore, using cloud computing admin able
to work anywhere with internet connection which convenience to work and able to store data.
Cloud computing helps in manage document and store it centrally to avoid document messed
up cause of conflict of file content and format. Besides, it helps to show the document more
visible and user able to work better in the industry environment.

28
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.0 Program User Guide


7.1 Main Page

Figure 7.1 Main Page


User need to choose either login with a customer account or admin account by selecting the
button below the logo. After that, it will navigate to the login page.

29
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.2 Customer / Admin login page

Figure 7.2: Customer & Admin Login Page


User need to login to the system by entering username and password. Customer and admin are
sharing the same user interface to login to the system. Every user required an account only has
the permission to log in to the system. If the user do not have an account, user should click the
register button which placed below the login panel.

30
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.3 Registration Page

figure 7.3 registration page


User can make registration in this page by entering username and password. If the entered
username already existed in the system, it will prompt the error messages to user and alert user
enter the new username that doesnt exist in the system. After user are done the entering the
information, user can click the register button. After registration successful, user will receive
an acknowledgement email as a confirmation of the registration.

31
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.4 Customer Main Menu Page

Figure 7.4 Customer Main Menu


In this page, the user able to choose which action to perform such as select food for purchase,
checking cart, view order history and also profile page. This is the main menu of the system
which after performed an action will redirect to this page. User also able to logout the system
by clicking the button locate top right of the page.

32
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.5 Select food page

Figure 7.5 Select food Page


User will select their preference food in this page and add into cart waiting for placing order.
User able to filter the selection by selecting the food type and the selection food menu will be
listed at this page. In this case, a user has selected burger choice and the beef, chicken and fish
burger will be showing on this page. The information of the item such as ingredient and price
will be showing at this page as well. By selecting add button beside the food choice is to ensure
the item is added into cart waiting for purchasing. While user able to check the cart information
by clicking the cart button placed on the top right.

33
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.6 Cart Information Page

Figure 7.6: Cart Information


In this page, the selected items has been list down and the information such as quantity and
price also will showed on this page. The cart information page allows the user to have the
second confirmation chance to select which items is being purchase by checked the check box
beside the item. After confirmed the order, user will need to click the checkout button to
proceed to next page.

34
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.7 Place order and Make payment page

Figure 7.7: Place order and make payment page


After checkout the selected items, the system will navigate to this page which is place order
and make payment page. In this page which is the final step of placing order, where the order
detail will show and user required to fill in personal detail and delivery address in order to
allow JACON worker to deliver the food to their doorstep. Besides, the user must select either
1 payment method. User has to fill in credit card details to proceed payment.

35
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.8 E-receipt page

Figure 7.8: receipt page


Lastly, while the order has been successfully placed, a e-receipt will show and customer able
to keep it when they need to use it to show the JACON staff as a confirmation of the order
during delivery.

36
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.9 View order history page

Figure 7.9: View Order History Page


User also able to check the order history by clicking the order history button in the main menu
and it will navigate to this page. Customer able to review order placed in this system. The
details include when the user placed the order, what items has been purchased, and the prices
of the order.

37
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.10 Profile Page

Figure 7.10: Profile Page


User also able to check their profile information in the profile page which navigate from the
main menu. In this page, users photo will be show and other information such as name, last
login, and last order placed time and date will be showing. User also able to edit profile
information such as password. By editing the password required to enter the old password and
twice for the new password. After filling all the information, clicking the edit profile will
update the system about the new password.

38
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.11 Admin Main Menu Page

Figure 7.11: Admin Main Menu Page


For the admin main menu, it is slightly different with the customer main menu page. Admin
main menu did not have the cart information as admin will be managing information but not
placing order. Admin main menu only has 4 option to perform action.

39
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.12 Admin Food Menu Page

Figure 7.12: Admin Food Menu Page


By selecting the food menu button in admin main menu, system will navigate to this page
where admin able to add new item, edit item and delete item. Admin able to filter the food type
before perform managing the information. Admin able to checked the selected item to perform
the action. After done, a confirm button must be clicked to ensure the process is ended.

40
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.13 Generate report Page

Figure 7.13 Generate report page


The order report generate page only able to access by admin. In this page admin will click
either monthly or weekly button to generate order report based on admin preference. The order
report will show below the button and the date range and report generate date also will be
showing. The information of the order report include food type, quantity and price.

41
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

7.14 admin view user profile

Figure 7.14: Admin view user profile


In order to navigate this page is to click the view user profile button in the main menu. In this
page, admin able to check the users information by searching customer name and able to help
them retrieve their password as well as update their information such as contact number and
address.

42
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

8.0 Hardware and Software Specification


8.1 Hardware Requirement
Computer Processor: Core i5
Internet Connection: Wireless Connection, Router
Storage: minimum of 2GB hard-disk space
Processor: Intel
Processor speed: 4GB RAM

8.2 Software Requirement


Operating System: Mac OS Sierra
Netbean IDE 8.0 or above
MySQL database

43
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

9.0 Benefit of Internet Communication Engine (ICE)


ICE is a modern object oriented toolkit which enables to build distributed application with
minimal effort. By using ICE, it allows to focus efforts on application logic as well as take care
of interactions with low level network programming interfaces. ICE able to provide a better
network infrastructure for demand technical applications which able to use in many ways such
as C++, Java, highly efficient protocol, TCP/IP, SSL- based security, firewall solution and
others. ICE is a comprehensive of Remote Procedure Call (RPC) which support multiple
programming languages (Zeroc, 2017). Besides, it also supports several operating systems such
as Window, android, Linux and others. ICE also provide several complementary service for
network application such as Ice Grid, Ice Storm and IcePatch2 which consist of different
functionality to enhance system such as monitoring, file distribution and event publish. There
are several benefits of using ICE which are secure, efficient and minimize CPU and bandwidth
consumption and flexible.

Secure
Ice has good security and suitable to use over insecure public networks because it offers a
powerful and easy manipulation in security feature. It can work with existing firewalls which
a single port is enough to provide secure access for unlimited clients to unlimited servers. The
IceSSL plug in use the operating system to encrypt data and authenticate connection which is
an easy way to use as it just required few line of code to execute (Zeroc, 2017).

Efficient and minimize CPU and bandwidth consumption


ICE use an efficient protocol to minimize the consumption of CPU and bandwidth. It used
small amount of CPU with a highly efficient protocol which allows the application to scale up
to ten thousand of client (Zeroc, 2017). The compression allows to disable and enable during
runtime and without code to modify. The ICE also can receive and forward request to new
destination as it not required to unmarshal and remarshal payload when forwarding.

Flexible
ICE has a great flexibility as it supports both synchronous and asynchronous invocations.
While using Synchronous invocation, caller thread able to blocks until the RPS has completed
whereas asynchronous invocations allow caller to continue using the thread while RPC is

44
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

undergoing process and waiting to be notify. ICE can support both synchronous and
asynchronous on the service side which server side able to read the request and locate it to
execute with synchronous dispatch whereas asynchronous dispatch need callback for
implementation and additional request. ICE is flexible to accommodate even though the most
demanding and mission- critical application (Zeroc, 2017).

There are several alternatives for ICE include Delphi, Java and Python. While Python mapping
is intuitive and client-side Slice-to-Python mapping will define how Slice data type will be
translated to Python type and how clients pass parameter and handle errors

45
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

10.0 Future Enhancement


Based on the scenario, I had analyzed several suggestions to improve the system. Based on my
opinion, the system should allow guest login by linking social media account such as Facebook,
google+ or Twitter instead of blindly register account through the system. System admin should
have more authority to view the system instead of just handing generating report. Besides, both
customer and admin are using different sign in page which might need more memory. It should
be combined into 1 page for both login and the system itself decide the authority of both users.
A notification should be given to the customer while the food order has been placed and during
the delivery stage system should send notification to customer to inform them the order has
been delivering to their footstep. The food delivery system should extend to mobile application
which people nowadays are more preferred to use mobile application to perform action such
as Foodpanda, Mcdonalds, and Domino.

46
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

11.0 Conclusion
After implement the Food delivery system, JACON able to provide online supplying food to
customer in a quicker and easier way with a cheapest rate. The implementation with efficiency
technologies, the system process will become more convenient and efficiency to use for the
user and admin which enhance the performance of the system.
Besides, there are several obstacles I met while researching on the technologies concept. The
technology concept was confusing therefore I need to spend more time on understanding the
knowledge of implemented technologies. There are several journal and ebooks helps me to
have better understanding on the theories and also understand how it applied into the food
delivery system.

47
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

References
Angeles, S (2014). Virtualization vs. Cloud Computing: What's the Difference?.[online]
Business News Daily. Available at: http://www.businessnewsdaily.com/5791-virtualization-
vs-cloud-computing.html [Accessed 6 Feb. 2017].

Badgerati, (2009). Distributed Systems Socket Level Servers. [Online] Available at:
https://computersciencesource.wordpress.com/2009/09/10/year1-distributed- systems-socket-
level-servers/ [Accessed 3 Feb 2017].

Docs.oracle.com. (2017). Serializable Objects (The Java Tutorials > Java Naming and
Directory Interface > Java Objects in the Directory). [online] Available at:
https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html [Accessed 5 Feb. 2017].

GeeksforGeeks, (2017). Remote Method Invocation in Java. [Online] Available at:


http://www.geeksforgeeks.org/remote-method-invocation-in-java/ [Accessed 3 Feb 2017].

javapoint, (2017). RMI (Remote Method Invocation). [Online] Available at:


http://www.javatpoint.com/RMI [Accessed 2 Feb 2017].

Microsoft, (2017). The Component Object Model. [Online] Available at:


https://msdn.microsoft.com/en-
us/en-%20us/library/windows/desktop/ms694363(v=vs.85).aspx [Accessed 2 Feb 2017].

MrBool, (2017). How serialization works in Java. [Online] Available at:


http://mrbool.com/how-serialization-works-in-java/28129 [Accessed 3 Feb 2017].

Rouse, M., (2017). Component Object Model (COM). [Online] Available at:
http://searchwindowsserver.techtarget.com/definition/Component-Object-Model-COM

[Accessed 3 Feb 2017].

rouse, m., (2017). virtualization. [Online] Available at:


http://searchservervirtualization.techtarget.com/definition/virtualization [Accessed 3 Feb
2017].

Seshadri, G., (2012). What are the advantages and disadvantags of serialization?. [Online]
Available at: http://www.jguru.com/faq/view.jsp?EID=5068 [Accessed 2 Feb 2017].

48
CT024-3-3-DCOMS Individual Assignment (TP032137- Chin Jess Nny)

stackoverflow, (2017). Java serialization over network. [Online] Available at:


http://stackoverflow.com/questions/707987/java-serialization-over-network [Accessed 3 Feb
2017].

TechTarget, (2017). DCOM (Distributed Component Object Model). [Online] Available at:
http://whatis.techtarget.com/definition/DCOM-Distributed-Component-Object-Model
[Accessed 1 Feb 2017].

Zeroc, (2017). What is Ice?. [Online] Available at: https://zeroc.com/products/ice [Accessed 6


Feb 2017].

49