The Architecture Of Atm Security System Computer Science Essay

Published:

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

Detailed design of a system gives in depth picture of most components described in the System Architecture section. Other lower-level components and sub-components are also described as well. Each subsection of this chapter will describe one or more of the following attributes of a system software component:

Classification

Introduction/definition

Responsibilities

Functionality

Input/output

Inter component relationship

Data flow chart

4.1 Class Diagram

The class diagram is the main building block in object oriented modeling. They are being used both for general conceptual modeling of the systematic of the application, and for detailed modeling translating the models into programming code. The classes in a class diagram represent both the main objects and or interactions in the application and the objects to be programmed.

Figure 4.1 shows the class diagram for the ATM security system using AOP. Statement, money transfer, money withdrawal, cash deposit are the generalized form of the class transaction. There are two machines client and server, both of them interacts with the bank and among themselves. Also, a customer owns a cash card that is issued by a bank, belongs to a particular account and performs transaction.

Figure 4.1 Class diagram of ATM security system

4.2 Architecture of ATM security system

Figure 4.2 shows the architecture of ATM system. It includes two components server and the client. The application business logic (i.e. security issues) and the database containing the information on the accounts of various banks are located on the server. Client logic on the client side contains the GUI (Graphical User Interface), connection establishment and also few security related issues. The type of protocol used for communication is TCP/TP.

Application and database server

Application logic

Database

Client

Client logic

TCP/IP

Figure 4.2 Architecture of ATM system

Now, as explained in the introduction chapter an aspect weaver reads the aspect-oriented code and generates appropriate object-oriented code with the aspects integrated. The same is explained in the figure 4.3.

Figure 4.3 Weaver in AOPf weaving, AOP diagram of the ATM security system is shown

Figure 4.3 Weaving concept

Figure 4.4 is the refinement of the application logic component shown in figure 4.2. Concerns of this package cash withdrawal, cash deposit, money transfer and statement needs security aspects like validation, encryption, decryption, data integration, activity logging, access control, feasibility. These aspects are made available to concerns by weaver. Weaver combines the aspect and concern to form one executable program. From the figure one might assume that there are different weavers for each aspect but in actual practice there is only one weaver. Following is just for understanding the concept.

Figure 4.4 Architecture refinement of application logic component

4.3 Deployment Diagram

A deployment diagram depicts a static view of the run-time configuration of processing nodes and the components that run on those nodes. In other words, deployment diagrams show the hardware for your system, the software that is installed on that hardware, and the middleware used to connect the disparate machines to one another. Deployment diagram can be create for applications that are deployed to several machines, for example a point-of-sales application running on a thin-client network computer which interacts with several internal servers behind your corporate firewall and to explore the architecture of embedded systems, showing how the hardware and software components work together.

Figure 4.5 shows the deployment diagram of the ATM security system in the next page. On the client side one console is there with which user interacts. The processor on the client side stores executable files like valid.exe and encryption.exe. The console and the processor on the client side communicates with the application logic of the server which deploys other security aspects like access.exe, feasible.exe etc. One more processor on the server side stores the database, which interacts with the application logic processor.

Figure 4.5 Deployment Diagram of ATM security system

4.4 Use Case Diagram

Figure 4.6 shows how the user interacts with the system on the client side. For any type of transaction (like cash withdrawal, statement etc) validation, data integration, encryption and user information retrieval is required. Hence, all the types of transaction concerns include these candidate aspects. Also, validation requires pattern recognition depicted as include.

Figure 4.6 Client side Use Case Diagram

Similarly, figure 4.7 shows how the user indirectly interacts with the system on the server side.

Figure 4.7 Server side Use Case Diagram

4.5 Scenarios

The scenarios describe sequences of interactions between objects, and between processes. They are used to identify architectural elements and to illustrate and validate the architecture design. They also serve as a starting point for tests of an architecture prototype. Following explains the different scenarios involved in the establishment of ATM security system using AOP.

Scenario 1 :- User information retrieval

Console requests the user to enter the account information.

User enters name, bank name, account number and pin.

Client system checks whether the provided information is valid or not.

If the provided information is valid then client encrypts the information and perform data integration in order to send the information to server over network, else it asks user to enter information again.

Information is sent to server.

Server receives the information and decrypts it.

Server authenticates the information using the database stored at server.

If provided information by user is correct then server sends 1 else it sends 0.

Client on receipt of 1 from server will provide further access to services. If it receives 0 then client display error message and displays the home page.

Scenario 2 :- cash withdrawal

Information is retrieved from the user.

Client requests the user to enter the amount to withdraw.

User enters the amount.

Client encrypts the amount; account details and type of service requested and send it to server.

Server decrypts the information and checks for the feasibility.

If it's feasible then system asks whether the receipt is needed. Based on the user selection cash and the receipt is given to the user. If not feasible then error message is displayed and system asks the user to re-enter the amount and continue the process from step 2.

Concurrently activity logging takes place on the serve machine.

Once the cash is received by the user, client asks for continue or exit.

If continue then the menu page is displayed else user is logged out and the homepage is displayed.

Scenario 3 :- cash deposit

Information is retrieved from the user.

Client requests the user to enter the amount to deposit.

User enters the amount.

Client asks the user to keep the cash in the cash collector as soon as the light above the collector blinks.

Cash collector light blinks.

User puts the cash in the collector.

If user fails to put the cash in next 2 min, error message will be sent and again the process starts from 2nd step.

Client collects the cash, counts it, and if proper displays the appropriate message to user and puts the cash in cash dispenser. If not proper, cash is returned to the user and process starts from 3rd step.

Concurrently activity logging and changes to account of the user is done by server machine.

Client asks for continue or exit.

If continue then the menu page is displayed else user is logged out and the homepage is displayed.

.

Scenario 4:- Money transfer

Information is retrieved from the user.

Client requests the user to enter the details of the other account.

Provided information is validated.

If valid further encryption n data integration takes place in order to send the information to the server. If not valid error message is displayed and client request to re-enter the information and carry on the process from 3rd step.

Server receives the data, decrypts it and consults the database whether the account exists or not. Is yes, server sends '1' else' 0'.

On reception of '1 'client asks the user to enter the amount to transfer.

User enters the amount.

Client checks the feasibility.

If feasible client asks the server to deduct the amount from the user account and add the amount to other account.

Server performs the action and if successful, informs the client which in turn informs the user and asks if the user wants to continue or exit.

Concurrently, activity logging takes place.

If continue then the menu page is displayed else user is logged out and the homepage is displayed.

Scenario 5:- Statement

Information is retrieved from the user.

Client requests the user to enter to and from date for which statement is required.

Client validates the provided information.

If valid further encryption and data integration takes place to send it to server. If not valid error message is displayed and client request to re-enter the information and carry on the process from 3rd step.

Server Decrypts the data and gathers the information from the database.

The gathered information is encrypted by the server following by data integration.

Server sends the encrypted information.

Client receives the data.

Client decrypts the data and displays it on screen.

Client asks the user whether to print the statement or not.

If yes the print-out is handed over to user. If no move onto next step.

Client asks if the user wants to continue or exit.

If continue then the menu page is displayed else user is logged out and the homepage is displayed.

4.6 Activity diagram

Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. They can be used to describe the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control.

Figure 4.8 shows the activity diagram of ATM security system. To clearly show the client and server side activities we have divided the diagram into two halves.

Request for input pin

If valid

Validate the input pin

Client side

Encryption and data integration

Authentication

Decryption and data integration

Yes

No

If not matching

If matching

Access control

Display choice menu

Server side

Client side

Server side

If cash withdrawal

Enter the amount to withdraw

Enter the amount to deposit

Enter the account no.

Enter the from date for statement

If cash deposit

If acc

Transfer

Yes

No

Yes

No

Yes

No

If valid

If valid

Transaction

Transaction

Display statement

Activity logging

A

A

Yes

No

Yes

No

Activity logging

Figure 4.8 Activity diagram of ATM security system

4.7 Description of Aspects

Following describes the various aspects in the ATM security system. The explanation includes the functionality, input/output, join points, type of advice related to the Aspect.

Aspect 1 :

Responsibility : validation

Functionality :

Step 1: Start

Step 2: Check whether the PIN entered is in the format [0-9][0-9][0-9].

Step 3: Check if the bank name exists.

Step 4: Check whether the account number entered is a 4 digit number.

Step 5: Check if the amount entered for the cash withdrawal is in multiples of 100. (For point cut corresponding to cash withdrawal).

Step 6: Stop.

Input: User information, destination account details, amount request for cash withdrawal and from-date for statement request.

Output: valid or not in yes or no form.

Point cuts

Type of advice

Client/server side

User_registration

Before

Client

Dest_accnt_details

Before

Client

Amt_request

Before

Client

Balance_Enquiry

Before

Client

Aspect 2 and 3:

Responsibility: Encryption and data integration.

Functionality : Algorithm used for encryption

ALGORITHM 1:

Step 1: Start.

Step 2: Appends the user information into a string.

Step 3: Reverses this string.

Step 4: Calculate the hash code for the string from step 3.

Step 5: Append the hash code as a header to the string from step 3.

Step 6: Stop.

ALGORITHM 2:

Step 1: Start.

Step 2: Appends the user information into a string.

Step 3: Selects an appropriate delimiter.

Step 4: Place the delimiter in alternative positions of the string from step 2.

Step 5: Calculate the hash code for the string from step 4.

Step 6: Append the hash code as a header to the string from step 4.

Step 7: Stop.

Input: Account information entered by user.

Output: A packet which contains encrypted account information plus checksum as header.

Point cuts

Type of advice

Client/server side

Send_user_data

Before

Client

Send_acnt_detail

Before

Client

Aspect 4 and 5:

Responsibility: Decryption and data integration.

Functionality: Algorithm used for decryption.

ALGORITHM 1:

Step 1: Start.

Step 2: Remove the header from the received string.

Step 3: Calculate the hash code for the remaining string.

Step 4: If the calculated hash code matches with the received hash code, then proceed.

Step 5: Reverse the string left after removing the header.

Step 6: Stop.

ALGORITHM 2:

Step 1: Start.

Step 2: Remove the header from the received string.

Step 3: Calculate the hash code for the remaining string.

Step 4: If the calculated hash code matches with the received hash code, then proceed.

Step 5: Remove the delimiters from alternative positions in the string by traversing the received string from beginning.

Step 6: Stop.

Input: Encrypted and integrated packet.

Output: Decrypted message.

Point cuts

Type of advice

Client/server side

Authenticate

Before

Server

Feasible

Before

Server

Get_Balance

Before

server

Aspect 6:

Responsibility: Access control.

Functionality: Allow customer to use ATM services.

Step 1: Start.

Step 2: Use the lookup table to check if the name and PIN matches. Hashing can be used for this purpose. But since we are implementing just a prototype ATM system, we settle down to sequential search.

Step 3: If there is matching entry then send YES.

Step 4: In case of no matching entry in look up table send NO.

Step 5: Stop.

Input: Decrypted message.

Output: Control given or not.

Point cuts

Type of advice

Client/server side

Withdrawal

Before

Server

Transfer

Before

Server

Deposit

Before

Server

Get_Balance

Before

Server

Aspect 7:

Responsibility: Feasibility

Functionality: Determine whether the requested service is viable or not.

Step 1: Start.

Step 2: check if the amount entered is less than the balance (For cash withdrawal pointcut).

If (amount requested < (currentbalance - minimumbalancereq)

Step 3: Check if the amount entered for fund transfer less than the current balance.

Step 4: If yes then allow the transaction to process else abort the process.

Step 5: Stop.

Input: Entered amount for cash withdrawal.

Output: Feasible or not in terms of 'yes' or 'no'.

Point cuts

Type of advice

Client/server side

Withdrawal

Before

Server

Transfer

Before

Server

Deposit

Before

Server

Aspect 8:

Responsibility: Activity logging.

Functionality: This aspect keeps track of every transaction done by logging it into a file for every account. This process is necessary for generating statements also.

Input: Information regarding transaction performed.

Output: Storage of input in log file.

Point cuts

Type of advice

Client/server side

Withdraw_req

Before

Server

Transfer_req

Before

Server

Deposit_req

Before

Server

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.