Answer To: Module Learning Outcomes assessed in this piece of coursework Apply technical proficiency in...
Ankit answered on Jan 18 2021
51
Student_ID
Student_Name
Analyzing and Building a Banking System Software for ABC Banking group using Component and Service Oriented Cloud Architecture
Table of contents
Abstract
3
Introduction
4 to 5
Review of technologies
5 to 8
Design Goals for Banking software for ABC banking Group
8 to 13
Implementation of cloud banking using component and SOA technologies
14 to 16
Conclusion
17 to 19
References
20
Abstract
The main purpose of this document is to analyze and devlop a Banking System Software for ABC banking group using component and service oriented cloud architecture. Currently, ABC banking group is based on LAN but now group wants to migrate their services or software’s to cloud.
Globalization consistent to weight the banking domain for expanded joint effort inside their significance series. The banking organizations are a virtual spine for every other organization, detects the push both inside and outside their firm. Coordinated effort requests innovation mix, and methodologies as long have brought about redundancy and inefficiency wired together with fruitless frameworks. Software services oriented architecture provided on cloud on pay-per-use basic.
The proposed banking design framework for ABC banking group using component and SOA could aid in diminishing redundancy, inflexibility and inefficiency in banking firms, for example, customer account creating, payments, multichannel joining etc. The banking firm ought to highlight client requirements and assumption, rising ruthless warning and an obscure and changing administrative scene.
Introduction
The component and service oriented architecture provides greater reuse of software and also provide great efficency of sytem. SoA(service oriented architecture) are highly populated due to use of cloud. Today all banking organizations have moved their data to cloud. The use of cloud computing in banking field is measured by service level policies needs and by requirment to safe or secure client information. The banking sector ought to build virtually infinite account of integration of different sizes. This modular theory is at the core of SOA.
“In an SOA service providers and service consumers must be loosely coupled. Service registries and service discovery mechanisms are alternatives for providing service location and service binding, which are preconditions to enable provider-consumer interactions.” [Ruiz]
For banking sector, a SOA framework is great solution for all problems. Currently, these are energizing new improvements, for example, “web services and utility figuring” that
give a lift to the SOA executes activity structure.
Choosing valid architectural design and deployment model for ABC banking group from the various choices could be little complex as we require to take into account part explaining how the banking end system functions and if it meets stakeholder needs.
In this document, we will focus on component and Service oriented Archtitecure, Service Oriented Cloud based Architecture do their comparison and their roles and also states why we select component and service oriented architecture. We will also focus on cloud computing, Service Oriented Cloud based Architecture types of cloud computing, deployment models and choose the best to utilize for ABC banking system focusing all their needs. The design of ABC Banking group and logical diagram, use case and UML diagram also be visually display the desired design. The documents also focus on implementation of cloud banking using component and SOA technologies.
1. Review of technologies
1.1 Component and Service Oriented Archtitecure: Component and SOA(Service Oriented Archtitecure) is as style of software architecture in which service is given to the other parts via program components or via a communication protocol over a system. The fundamental standards of service-oriented design or structure are free of providers, items and strategies.
According to Techspirited, “Service-oriented architecture is a style of architecture based on service. A service is a well-defined and self-contained functionality. In this architecture, different services communicate with each other to perform some activity. These services are loosely-coupled i.e.; a service need not know the technical details of another service that it is interacting with. Basically, SOA consists of a service consumer and a service provider. The former requests for some service while the latter executes the service and returns the result for the request. While communicating, the service provider and the consumer both adhere to a pre-defined protocol.” [Techspirited 2018]
Component and SOA architecture for Banking system as shown in figure:
Strengths of service oriented and component technologies
· There is greater reusability of services in SOA at multiple locations.
· Due to SOA, large software can be easily manageable as service is independent in SOA which can updated or edited independent with no headache.
· There is good reliability of SOA based applications or software’s as there are small independent services in SOA that can be tested and deployed easily as compared to manage big code.
· There is good quality of software in SOA due to reusable of services as there is no possibility of duplicity which aids in generating error free data and thus provide quality of code.
· The services are independent of locations as they are deployed to directory where consumers can see the services easily. This way helps a service to edit their location any time.
· SOA applications or software’s are platform independent.
· There is higher productivity in SOA as there is reuse of code by developers and they add additional functionality without developing the things from start. So the work productivity of experts gets increased and cost of developing the application is minimized.
Weakness of service oriented and component technologies
· There is large investment cost in SOA as installment or initial setup of SOA need high upfront cost which requires technology, design and man power.
· The management of services are complex in SOA due to timely delivery of services message. Experts need to manage millions of messages for one application which is big challenge for them.
· For certain type of applications, SOA in not suitable such as homogenous applications, Graphical user interface based apps, real time apps and stand alone apps.
1.2 Cloud Computing: Cloud computing is distinct kind of computing which aids customers to record and deploy information virtually on remote server via web based. Cloud computing is utilized in all public and private fields. This is kind of computing to provide on demand services of Information technology in cool and faster way. The different types of cloud computing as listed below:
IaaS (Infrastructure as service): It provides business access to crucial web framework, for example, servers, storage room, and web points, without the business requirement of obtaining and dealing with this web framework themselves.
“Both PaaS and SaaS clouds are grounded in IaaS clouds, as the company providing the software as service is also providing the infrastructure to run the software. Choosing to use an IaaS cloud demands a willingness to put up with complexity, but with that complexity comes flexibility. Amazon EC2 and Rackspace Cloud are examples of IaaS.” [Avoyan 2017]
PaaS (Platform as a Service): PaaS clouds are built, numerous times inside IaaS Clouds by their experts to supply the adaptability and installment of various program trivial and to help build user costs versatile and expected. “Some examples of a PaaS system include: Mosso, Google App Engine, and Force.com.” [Avoyan 2017]
SaaS (Software as a Service): “SaaS is relatively mature, and the phrase’s use predates that of cloud computing. Cloud applications allow the cloud to be leveraged for software architecture, reducing the burdens of maintenance, support, and operations by having the application run on computers belonging to the vendor. GMail and Salesforce are among examples of SaaS run as clouds, but not all SaaS has to be based in cloud computing.” [Avoyan 2017]
1.3 Service Oriented Cloud based Architecture for ABC banking Group
In this we present 2 architecture i.e design information of prototype executed for SaaS and banking app cloud based Software as a Service in order to mark framework stakeholder needs such as customer payments, account creation and multiple channels.
2. Design Goals for Banking software for ABC banking Group
The main goal of developing banking software for ABC banking group is for code reusability, adaptability and maintainability. The design of banking software would leverage distributed, virtualized similar and valid computing techniques. The design of software would be built for configurability, personalized at organization process, organization policies, UI, and data protection layers. There are various logical components in design of banking software such as “Online Payment, Account Opening, Multichannel” as shown in below figure:
2.1 Services of SOA for coordinating Payment software’s: Banks endeavored to coordinate payment software’s by introducing a focal payment center point or entryway to manage a particular keeping money installment channel. These arrangements in the long run advanced to entryways supporting various, yet at the same time explicit, payment channels, and included information change, message organizing, logging thus on. SOA gives an approach to utilize reusable data to direct the diverse installment exchange types. These data services can be autonomous of the center managing banking software frameworks and the payment channels they bolster. Present arrangements frequently ruin the bank by providing the present state resolute and impervious to any asked for changes. With SOA, the bank could without much of a stretch include new payment channels and software’s or programs to existing payment capacities without irritating organizations as usual.
2.2 Service of SOA for combining multiple channels: Software’s of Banking are detached over the association, presenting it hard to upgrade existing client likely. SOA can give a reconciliation layer to big business programs, and a widely inclusive perspective of the client links. These collaborations accepting, they exist by any means – are exorbitant to keep up, unyielding, and inclined to mistake.
The layer of SOA builds it less demanding to incorporate software’s, the bank could provide its clients progressively custom fitted items and programs, at the top notch costs the market would handle. As data is partaken continuously, control of the essential item stays with the application most appropriate to oversee it. This enhances adaptability, bring down work time and expenses, lessen chance, and upgrade the estimation of every client.
2.3 Creating new account opening software using component and SOA service
Opening of bank new account is the main banking which would turned into a noteworthy cost, and, unexpectedly, a conceivably critical hindrance to firm development. Banks should likewise endeavor to diminish its expense– taking a stab at that tricky objective: great banking programs at a lesser expense.
The new banking account opening software is conceivable just on the off chance that it can get to the frameworks required, for example, digital structures and consistence. This moves afar the read-just access needed before definite survey. In a perfect world, the new banking account opening software would utilize SOA programs to really make the record in the item framework. The bank could fabricate a layer of programs and utilize the services to get to the record management task in the center firm applications. A program to discover a record may really have an alternate capacity in each center organization software. For instance, the internet banking software could utilize the SOA benefits specifically. This sort of usage defines the reason for later reuse, and increasingly imperative, Information technology adaptability as shown in figure below:
2.4 Use case diagram for ABC banking group
(
Operator
) (
23
) (
Validate PIN
Withdraw funds
) (
Val.PIN
) (
Withdraw
Funds
) (
Transfer
Funds
) (
Query
Account
) (
ATM
Customer
) (
Restart
) (
<>
<>
<>
)
2.5 UML diagram for ABC banking group
(
Customer
Name
)
(
Has
)
(
address
)
(
Mortgage
Account
Withdraw
()
) (
*
) (
Account
Amount
Deposit()
Withdraw()
GetBalance()
Add Cash
CustomerId
AccountId
Shutdown
) (
Bank
Name
) (
*
) (
Savings
Account
Withdraw()
) (
Checking
Account
Withdraw()
)
3. Implementation of cloud banking using component and SOA technologies
All the programming or service layers during implementation framework such as private, network, and public, a banking field ought to deploy a predictable framework to control, provide and run tasks over every layers as shown in below figure. It includes condition not just the framework as well as all parts and programs needed to implement the benefit of bank such as equipment, network programs, working framework, database, center system, software, and outsider vendor service supply.
“Infrastructure services”: It consist of equipment such as server, data record, and connectivity, both internally and externally a banking programs for data center. The various banks are presently
creating inside cloud IT framework which is also called as IaaS.
“Platform services”: A wide innovation array, consisting of software hosting situations and instruments, data centric innovation, technology structures and instruments, and benchmarks connected to explicit firm services. The center banking item incorporates a technology platform, for example, structures, contents, dialects, instruments and installment platform, for example, installment contents, checking, and control condition.
“Business Services”: It consists of center services of bank i.e. large group and retail banking, management of money, treasury, hazard and consistence, trading. Banks made this programs in-house; the market is supplanting all frameworks with business off-the-rack bundles that grasp a SOA. Many business programs like loan management and their payments would have devoured through an outside specialist co-op.
“Channel Services”: It handle multiple channels like handling of ATM, management of branches, their BPO, messages, phone calls, internet transactions, audio, video etc. All these programs are custom-made per channel, based on a channel-explicit innovation store with different distribution crosswise over channels through spanning innovation. If the quantity of channels, gadgets, and clients detonate, banks develop toward one design which bolsters whole channels, conveying a steady client incident, programs/services and data over all channels.
“Versatility”: The cloud program which provide real time view into asset usage, activity execution, designs for CPU usage and system traffic.
“Security (Authentication, Authorization and Access Control)”: the basic requirement for privacy, protection, and control in a cloud domain. Security program for software’s which require bring down dimensions of protection and control, an open cloud might do the trick. As there are increasingly stringent dimensions of privacy and control are required, a private cloud is the intelligent decision. As for highly private banking domain services software's, that invoke for more elevated amounts of protection and control, hold them on their current condition, or think about a utility programs arrangement, or customary overseen facilitating programs methodology.
3.1 Code for Implementation of cloud banking using component and SOA technologies
/*******************Bank class ********************************/
import java.awt.*;
import java.awt.event.*;
import java.awt.FlowLayout;
import java.sql.*;
import javax.swing.*;
public class Bank extends JFrame implements ActionListener
{
static JLabel label1,label2,label3,sep;
static JButton sign,create,deposit,withdraw,trans,balance,close,clear;
static JTextField txtA1;
static JTextField txtA2;
static Connection con;
static Statement st1,st2,st3;
static ResultSet rs1;
int numd;
int numf;
int nume;
public Bank()
{
super(" Mukunth's Bank");
setLayout(new FlowLayout());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection ("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=bank.mdb;DriverID=22}","","");
st1=con.createStatement();
rs1=st1.executeQuery("select * from tab1");
}
catch(Exception e)
{
System.out.println("there was some error in establishing connection : "+e);
}
sep = new JLabel("Existing User Signin : ");
add(sep);
label1 = new JLabel(" Account Number : ");
add(label1);
txtA1 = new JTextField(15);
add(txtA1);
label2 = new JLabel(" Name : ");
add(label2);
txtA2 = new JTextField(15);
add(txtA2);
sign=new JButton("SIGN IN");
add(sign);
sep = new JLabel(" ");
add(sep);
sep = new JLabel(" ");
add(sep);
sep = new JLabel("New User Signin : ");
add(sep);
create=new JButton("CREATE ACCOUNT");
add(create);
sep = new JLabel(" ");
add(sep);
sep = new JLabel(" ");
add(sep);
deposit=new JButton("DEPOSIT");
add(deposit);
withdraw=new JButton("WITHDRAW");
add(withdraw);
trans=new JButton("TRANSACTION");
add(trans);
balance=new JButton("BALANCE");
add(balance);
clear=new JButton("CLEAR");
add(clear);
sep = new JLabel(" ");
add(sep);
close=new JButton("CLOSE");
add(close);
create.addActionListener(this);
deposit.addActionListener(this);
withdraw.addActionListener(this);
trans.addActionListener(this);
balance.addActionListener(this);
clear.addActionListener(this);
close.addActionListener(this);
sign.addActionListener(this);
deposit.setEnabled(false);
withdraw.setEnabled(false);
trans.setEnabled(false);
balance.setEnabled(false);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==create)
{
String stra = JOptionPane.showInputDialog(null,"Please enter the NAME to open a CURRENT ACCOUNT");
String strb = JOptionPane.showInputDialog(null,"Please enter the ACCOUNT NUMBER");
if(stra==null || strb==null)
{
JOptionPane.showMessageDialog(null," Either any one or both the values were left blank");
deposit.setEnabled(false);
withdraw.setEnabled(false);
trans.setEnabled(false);
balance.setEnabled(false);
create.setEnabled(true);
sign.setEnabled(true);
}
else
{
try
{
st2=con.createStatement();
String rr="insert into tab1 values('"+stra+"','"+strb+"',0,0,0)";
st2.executeUpdate(rr);
st2.close();
JOptionPane.showMessageDialog(null,"ACCOUNT Created Successfully");
txtA1.setText(strb);
txtA2.setText(stra);
}
catch(Exception e2)
{
JOptionPane.showMessageDialog(null," There is already a user with same ACCOUNT NUMBER ,Give another ACCOUNT NUMBER ");
}
deposit.setEnabled(true);
withdraw.setEnabled(true);
trans.setEnabled(true);
balance.setEnabled(true);
create.setEnabled(true);
sign.setEnabled(true);
}
}
else if(e.getSource()==sign)
{
String num=txtA1.getText();
try
{
st1.close();
st1=con.createStatement();
rs1=st1.executeQuery("Select * from tab1 where AccNum Like '"+num+"'");
rs1.next();
txtA1.setText(rs1.getString("AccNum"));
txtA2.setText(rs1.getString("UserName"));
}
catch(Exception e2)
{
JOptionPane.showMessageDialog(null,"Invalid Account Number");
}
deposit.setEnabled(true);
withdraw.setEnabled(true);
trans.setEnabled(true);
balance.setEnabled(true);
create.setEnabled(false);
}
else if(e.getSource()==deposit)
{
String strc = JOptionPane.showInputDialog(null,"Please enter the amount to be DEPOSITED");
numd=Integer.parseInt(strc);
int numb=Integer.parseInt(txtA1.getText());
if (numd<=0)
{
JOptionPane.showMessageDialog(null," NO Amount Deposited");
}
else
{
try
{
int num,num1;
st3=con.createStatement();
rs1=st3.executeQuery("select * from tab1 where Accnum like '"+txtA1.getText()+"'");
rs1.next();
num1=Integer.parseInt(rs1.getString("Deposit"));
num=Integer.parseInt(rs1.getString("Balance"));
JOptionPane.showMessageDialog(null,"Amount Deposited Successfully , Amount is "+numd);
numf=num+numd;
num1=num1+numd;
st2=con.createStatement();
String ss="update tab1 set Deposit="+num1+" where AccNum="+numb+"";
String aa="update tab1 set Balance="+numf+" where AccNum="+numb+"";
st2.executeUpdate(ss);
st2.executeUpdate(aa);
st2.close();
st3.close();
}
catch(Exception e2)
{
JOptionPane.showMessageDialog(null,"Amount can not be DEPOSITED");
}
}
}
else if(e.getSource()==withdraw)
{
String strd = JOptionPane.showInputDialog(null,"Please enter the amount to be WITHDRAWN");
nume=Integer.parseInt(strd);
int numc=Integer.parseInt(txtA1.getText());
if(numf<=nume)
{
JOptionPane.showMessageDialog(null,"Sorry can not Withdraw, no sufficient Balance");
}
else
{
try
{
int num1;
st3=con.createStatement();
rs1=st3.executeQuery("select * from tab1 where Accnum like '"+txtA1.getText()+"'");
rs1.next();
num1=Integer.parseInt(rs1.getString("Withdraw"));
numf=Integer.parseInt(rs1.getString("Balance"));
JOptionPane.showMessageDialog(null,"Amount Withdrawn is "+nume);
numf=numf-nume;
num1=num1+nume;
st2=con.createStatement();
String pp="update tab1 set Withdraw="+num1+" where AccNum="+numc+"";
String pp1="update tab1 set Balance="+numf+" where AccNum="+numc+"";
st2.executeUpdate(pp);
st2.executeUpdate(pp1);
st2.close();
}
catch(Exception e2)
{
JOptionPane.showMessageDialog(null," Can't WITHDRAW ");
}
}
}
else if(e.getSource()==balance)
{
String num=txtA1.getText();
try
{
st3=con.createStatement();
rs1=st3.executeQuery("select * from tab1 where Accnum like '"+num+"'");
rs1.next();
numf=Integer.parseInt(rs1.getString("Balance"));
JOptionPane.showMessageDialog(null,"Balance is "+numf);
}
catch(Exception e2)
{
JOptionPane.showMessageDialog(null," Balance null ");
}
}
else if(e.getSource()==trans)
{
String strq = JOptionPane.showInputDialog(null,"Enter the ACCOUNT NUMBER to view the TRANSACTION DONE");
int numk=Integer.parseInt(strq);
int numa=Integer.parseInt(txtA1.getText());
if(numk==numa)
{
JOptionPane.showMessageDialog(null,"Amount Deposited is "+numd);
JOptionPane.showMessageDialog(null,"Amount Withdrawn is "+nume);
}
else
{
JOptionPane.showMessageDialog(null,"The Account Number is not the same as in the TEXTFIELD");
}
}
else if(e.getSource()==clear)
{
txtA1.setText("");
txtA2.setText("");
deposit.setEnabled(false);
withdraw.setEnabled(false);
trans.setEnabled(false);
balance.setEnabled(false);
create.setEnabled(true);
sign.setEnabled(true);
}
else if(e.getSource()==close)
{
System.exit(0);
}
}
public static void main(String args[])
{
Bank obj = new Bank();
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.setSize(250,320);
obj.setVisible(true);
}
}
/********************Client Main menu********************/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
class ClientMainMenu extends JFrame implements ActionListener
{
/* Instance Variables */
JPanel mainPanel = new JPanel(),
centerPanel = new JPanel();
JButton btnViewAcc ;
JButton btnViewLogs;
JButton btnTransfer ;
JButton btnDeposit ;
JButton btnWithdraw;
JButton btnAcctOp;
//JButton btnAvLoan;
JButton btnExit;
JLabel lblLeft;
JLabel lblRight;
ClientLog clientLg;
/**
* Name :
* @param :
* @return : void
* Description : constructor with Argument
*/
public ClientMainMenu(ClientLog temp)//Server temp
{
super ("Network Bank ");
/* Instantiate an object of this class to use as ActionListener of the GUI*/
clientLg = temp;
Initialize();
}
/**
* Name : Initialize
* @param : none
* @return : void
* Description : develops the GUI
*/
public void Initialize()
{
//frame = new JFrame();
// look & feel setup:
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName() );
} catch (Exception e) {
System.err.println("Couldn't use the system "
+ "look and feel: " + e);
}
/* The default value is: HIDE_ON_CLOSE,
*/
//frame.
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
// processing window events:
WindowListener L= new WindowAdapter () {
public void windowClosing(WindowEvent e) {
//clientLg.sendToServer("LOGGED_OUT." + clientLg.txtAcctNo.getText().trim() );
//closeApplication();
...