Download Distributed Object Computing - Computer Science, Engineering Design - Lecture Slides and more Slides Computer Science in PDF only on Docsity!
Distributed Object Computing
and UML
Objective
• Explore UML Modeling Techniques/Constructs
and Identify Support to DOC
• Employ Rational ROSE to Model and Develop a
Distributed Banking Application (using RMI)
• Identify Key Distribution Issues Relating to OOM
• Explore a Select Set of UML Modeling Tools to
Identify DOC Support
Behavioral Modeling
System Use Case
Process Transactions Distributed Communication Persistent Storage Report Generation Printing Auditing Clerk
BANKING SYSTEM
The Customer Manager <> <> (^) <> <> <>
THE CLERK
THE
CUSTOMER
THE
MANAGER
TheServer
THE SERVER
Deployment Diagram
Description
- To Get an Idea of How the System Would Be
Distributed
- Concept of More Than One Type of Bank Server
- Questions:
- What Kind of Functionality is Distributed Where?
- Where is Security, Servers or Clients, Both?
- Where Should We Deploy Objects, and Which Object?
- Servers Handling Multiple Clients And/or Server
Transactions at the Same Time
- Attempt to Make Our System Generic So That We Can
Run All Possible Scenarios
Structural Modeling
Logical and Component Views
ClientServerGui U TheServer U ClientServerGui U TheServer U CLASS DIAGRAM COMPONENT DIAGRAM
Initial Logical View of Client
This is Where The Applet GUI Goes. To be Added To The Model Later. RMI Here CustomerProfileForm (from TheServer) Serializable (from io) <> CustomerAccountForm (from TheServer) Vector (from util) TransactionInterface <> TellerInterface <> BankConnection
+BankTransaction
+TellerTransaction
Initial Logical View of the Server
Simulator
FunnyMoney amount : int Serializable (from io) <> Remote (from rmi) <> This is Where The Applet GUI Goes. To be Added To The Model Later. RMI Here TransactionInterface <> (^) UnicastRemoteObject (from server) SessionInterface <> Hashtable (from util) Account Account() SessionHandler TransactionByRole $ GOOD_CONN : int = 0 accounts RemoteBankServer 1 +TheAccount 1 1 +TheSessionHandler 1 +TheTransactionHandler AtmTrans TellerTrans MgrTrans TellerInterface <> CustomerProfileForm (from TheServer) CustomerAccountForm (from TheServer)
Behavioral Modeling
Sequence Diagram of Log In
Client 1 Server Enter UName And Passwd Send UName And Passwd Verify UName And Passwd Send Connection Status Prompt User For Transaction Info Allocate Memory And Resources For Transactions Allocate Memory And Resources For Transactions
Final Application Models and
Deployment
• Each of Us to Explain his/her Own Piece in
Detail
– Hector - Client GUI and App
– Oliver - Main Server Transaction and Interface
Hierarchy
– Gowri - Main Server Banking Application
• Only a Prototype - Not a Full-Fledged
Application
• Demo is Limited to a Couple of Transactions
• Goal is to Prove Java RMI Concepts, Interfaces,Docsity.com
Final Development
Applet and ConnectionBankConnection
$ GOOD_CONN : int = 0
$ UNK_CONN_ERR : int = 1
$ REMOT_ERR : int = 2
$ NOT_BOUND_ERR : int = 3
$ COMM_FAILED : int = 4
$ ATM_CONN : int = 11
$ TELLER_CONN : int = 12
$ MGR_CONN : int = 13
$ VERIF_FAILED : int = 14
$ TRANSACTION_PASSED : int = 20
$ TRANSACTION_FAILED : int = 21
Connect_To_Bank()
Run_Query()
Login()
Logout()
SendCustomerProfile()
SendCustomerAccount()
Connect_To_ServerBank()
LoginToServer()
LogoutFromServer()
ShowAllCustomers()
BankingApp
init()
JMenuItem2_actionPerformed()
JMenuItem2_actionPerformed_Interaction1()
JMenuItem18_actionPerformed()
JMenuItem18_actionPerformed_Interaction1()
JMenuItem2_actionPerformed_Interaction2()
myBankingAppCode_Logout()
JMenuItem4_actionPerformed()
JMenuItem4_actionPerformed_Interaction1()
JMenuItem4_actionPerformed_Interaction2()
createCustProfMenu_actionPerformed()
createCustProfMenu_actionPerformed_Interaction1()
closeMenu_actionPerformed()
closeMenu_actionPerformed_Interaction1()
createNewAccountMenu_actionPerformed()
createNewAccountMenu_actionPerformed_Interaction1()
myBankingAppCode_ShowAllCustomers()
JShowCustomersMItem_actionPerformed()
JShowCustomersMItem_actionPerformed_Interaction1()
+$MyBankConnection
APPLET AND
GUI
ITS CONNECTION TO THE
CLIENT BANK ENGINE
RMI Structure
• Make Method Callable by Declaring Signature
in Interface
• Compile Class and Interface and Generate
Stub and Skeleton
Stub
Client Object
Skeleton
Server Object
RMI Flow of Events
Server - Transaction Objects
Server - Transaction Interfaces