• No results found

DCOMSSSS

N/A
N/A
Protected

Academic year: 2021

Share "DCOMSSSS"

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(1)

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

(2)

2

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

(3)

3

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

(4)

4

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.

(5)

5

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 Donald’s and Domino pizza serve both walk in customer and online customer which help in increase their sales.

(6)

6 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

(7)

7

2.0 Use Case Diagram

(8)

8 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

(9)

9

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

(10)

10

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

(11)

11

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

(12)

12

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

(13)

13

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

(14)

14

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

(15)

15

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)

(16)

16 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"));

} }

(17)

17 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"); }

(18)

18

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

(19)

19

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

(20)

20 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).

(21)

21 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 de-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).

(22)

22

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.

(23)

23

4.0 Testing

4.1 Register Testing No. Test ID Test

Function

Description Expected Result

Actual Result Status

1 Register TP01

Register01 Enter registration detail such as username, password, confirm password, name, BOD, contact number correctly Registration successful Registration successful Pass

Register02 Password and confirm password not match Registration failed Registration failed failed

Register03 Enter username which existed Registration failed Registration failed failed

Register04 enter blank information Registration failed Registration failed failed

(24)

24 4.2 Login Testing

No. Test ID Test Function

Description Expected Result

Actual Result Status

1 Login TP02 Login01 Enter username and password correctly Login successful Login successful Pass

Login02 Enter wrong user name and correct password

Login failed Login failed failed

Login03 Enter wrong

password and correct username

Login failed Login failed failed

Login04 Enter wrong

username and password

(25)

25

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 it’s 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-Inter-ORB protocol (IIOP). Both protocols must use together which enable to get request and replies to the Internet’s 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).

(26)

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

(27)

27

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

(28)

28

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.

(29)

29

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.

(30)

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

(31)

31 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 doesn’t 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.

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

38 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, user’s 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.

(39)

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

(40)

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

(41)

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

(42)

42 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 user’s 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.

(43)

43

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

(44)

44

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

(45)

45

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

(46)

46

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, Mcdonald’s, and Domino.

(47)

47

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.

(48)

48

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

(49)

49

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

References

Related documents

Specifically, analysis showed that Indonesians preferred the avoiding and neglect styles significantly more than Americans, whereas Americans preferred the integrating,

Cleveland County Public Library in Rison, Izard County Public Library, Grant County Public Library in Sheridan, Argenta Public Library in North Little Rock, Lonoke County

• Investigating complaints and giving advice on a wide range of pollution issues, including:.. o Smoke

● This section of the plan should include the latest contact information for anyone (internal or external) who has a defined responsibility in restoring power due to an emergency.

Data Protection in Transition to the Cloud Approved SNIA Tutorial © 2015 Storage Networking Industry Association. All

4 Harvest timing effect on biomass yield of intermediate wheatgrass, big bluestem, and switchgrass on two landscape positions in 2003 and 2004 in eastern South Dakota, USA.. Values

Formalnije rečeno, kod izdvajanja opisnih značajki boli iz slika sivog intenziteta, kakve prikazuju izraze lica, uglavnom se rabe značajke koje dolaze iz kontinuiranog skupa, a

Thetmistor sensor inside soldering iron element.. Voltage on TP1 is directly proportional to iron