Sie sind auf Seite 1von 9

ATM

(AUTOMATED TELLER MACHINES)

CONTENTS:

1. ABSTRACT 2. INTRODUCTION 3. SDLC: i. REQUIREMENTS ii. ANALYSIS iii. DESIGN iv. TESTING v. DEPLOYMENT

ABSTRACT

A bank can have several automated teller machines (ATMs), which are geographically distributed and connected via a wide area network to a central server. By using the ATM machine, a customer can withdraw cash from either a checking or a saving account; query the balance of an account, or transfer funds from one account to another. The product of this project is a software system the simulates the functionality of an ATM machine using distributed computing paradigms. I have chosen to use J2EE Enterprise Java Bean which is based on and advanced form of the java RMI technology.

An automated teller machine (ATM) or automatic banking machine (ABM) is a computerised telecommunications device that provides theclients of a financial institution with access to financial transactions in a public space without the need for a cashier, human clerk or bank teller. On most modern ATMs, the customer is identified by inserting a plastic ATM card with a magnetic stripe or a plastic smart card with a chip, that contains a unique card number and some security information such as an expiration date or CVVC (CVV). Authentication is provided by the customer entering a personal identification number (PIN). Using an ATM, customers can access their bank accounts in order to make cash withdrawals (or credit card cash advances) and check their account balances as well as purchase cellphone prepaid credit. If the currency being withdrawn from the ATM is different from that which the bank account is denominated in (eg: Withdrawing Japanese Yen from a bank account containing US Dollars), the money will be converted at a wholesale exchange rate. Thus, ATMs often provide the best possible exchange rate for foreign travelers and are heavily used for this purpose as well. ATMs are known by various other names including Automated Transaction Machine, automated banking machine, cashpoint (in Britain),money machine, bank machine, cash machine, hole-in-the-wall, Bancomat (in various countries in Europe and Russia), Multibanco (after a registered trade mark, in Portugal), and Any Time Money (in India)

Introduction
The rationale behind this software project is to show how the distributed computing works in real world. An ATM machine significantly enhances the banks services by providing a virtual bank office with no restriction in time and place. The machine itself provides the equipment for user to operate and the software makes it possible to remotely access the banks database, determine a transactions eligibility and execute the

transaction. Providing this capability (distributed computing) is the most important aspect of the project.

Solutions/ Analyses
To build a system with the capability mentioned above I have developed a software system with the following characteristics: Technical Architecture:

I have implemented a 3-tier client server architecture with the client program running on the web front end (browser), and the server, and the database interface programs at the back-end. The communication between the tiers, takes place through Web-based Distributed Computing and HTTP protocol. Technology used J2EE Enterprise Java Bean (EJB) has been used for distributed computing along with other J2EE web technologies (servlet, html ). A statefull session bean maintain the customer session. Requirement Specifications To perform any transactions, user needs to successfully log in by providing the following information: Card number (16 digit e.g., 1234567890123456). It must be a valid card number, maintain by the system. (I use customer id in this project) 4-digit PIN number (e.g., 4675). The PIN should be validated. It should match the PIN maintained by the system. Expiration date (mm/yy e.g., 0906) The expiration date should not have been passed. I havent applied any expiration date in this project. Also the following conditions must be met for the requested transactions: Before a withdrawal transaction can be approved, the system determines that sufficient funds exist in the requested account. The maximum daily limit will not be exceeded (e.g., $500) :

The Client Program:

To simulate customer card insertion and customer authentication, in this project user just logs in with customer id number, and PIN number. Upon successful, authentication, the client program presents a GUI interface to the customer prompting for the following transaction options: Check balance of an account(s) Deposit to an account Withdrawal from one account at a time Transfer fund from one account to another The server Program: The server program will be running on another process, waiting for the clients connections and providing requested services. The server program handles all the back end works as well. For approved query and transfer requests, the server program, print a receipt. The Interface: In addition to the database, I have used Data Access Object (DAO) for all database manipulations. The DAO interfaces between the customer session EJB and the database. Database: I have chosen to use Oracle database to interface with the server through DAOs. The database has been normalized to provide an optimization for maintenance and use. The

ATM system maintain the following database tables: 1- Customer table to contain customer authentication information. Name Null? Type ----------------------------------------- -------- -------------CUSTOMER_ID NUMBER NAME VARCHAR2(30) PASSWORD VARCHAR2(10) 2- Account table to hold account information. Name Null? Type ----------------------------------------- -------- -------------ACC_NO NOT NULL NUMBER ACC_HOLDER_NAME NOT NULL VARCHAR2(30) CUSTOMER_ID NOT NULL NUMBER ACC_TYPE NOT NULL VARCHAR2(10) BALANCE NOT NULL FLOAT(126) DATE_OPENED NOT NULL DATE 3- Transaction table to keep records of all transactions. Name Null? Type ----------------------------------------- -------- -------------------------TRANS_ID NOT NULL NUMBER TRANS_TYPE NOT NULL VARCHAR2(10) TRANS_DATE NOT NULL DATE ACC_NO_FROM NUMBER ACC_NO_TO NUMBER AMOUNT NOT NULL NUMBER

Das könnte Ihnen auch gefallen