Component-Based Software Engineering Introducing the Bank Example Paul Krause.

Slides:



Advertisements
Similar presentations
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 9 Prof. Crista Lopes.
Remote Method Invocation
The road to reliable, autonomous distributed systems
Company LOGO Remote Method Invocation Georgi Cholakov, Emil Doychev, University of Plovdiv “Paisii.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
FONG CHAN SING (143334) WONG YEW JOON (143388). JAVA RMI is a distributive system programming interface introduced in JDK 1.1. A library that allows an.
Technical Architectures
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Distributed Systems Architectures
Advanced Java Class Network Programming. Network Protocols Overview Levels of Abstraction –HTTP protocol: spoken by Web Servers and Web Clients –TCP/IP:
1 HANDOUT 14 Remote Method Invocation (RMI) BY GEORGE KOUTSOGIANNAKIS THIS DOCUMENT CAN NOT BE REPRODUCED OR DISTRIBUTED WITHOUT TH E WRITTEN PERMISSION.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Introduction to Remote Method Invocation (RMI)
Integration case study Week 8 – Lecture 1. Enrolment request (Workstation) Application server Database server Database New University Student Record System.
J2EE Kenneth M. Anderson CSCI Web Technologies October 3, 2001.
Lesson 3 Remote Method Invocation (RMI) Mixing RMI and sockets Rethinking out tic-tac-toe game.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Database Design – Lecture 16
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
+ A Short Java RMI Tutorial Usman Saleem
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
LAB 1CSIS04021 Briefing on Assignment One & RMI Programming February 13, 2007.
1 Some initial Design suggestions… Getting started… where to begin? Find out whether your design architecture will work… as soon as possible. If you need.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Airline Reservation System Dr.Paul Schragger Distributed Systems Presented By Archana Annamaneni.
Java Remote Method Invocation RMI. Idea If objects communicate with each other on one JVM why not do the same on several JVM’s? If objects communicate.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
MAKANI ANDROID APPLICATION Prepared by: Asma’ Hamayel Alaa Shaheen.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Introduction to Enterprise JavaBeans Topics In Systems Architecture Barry Herbold
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Remote Method Invocation by James Hunt, Joel Dominic, and Adam Mcculloch.
Institute for Visualization and Perception Research 1 © Copyright 1999 Haim Levkowitz Java-based mobile agents.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
The overview How the open market works. Players and Bodies  The main players are –The component supplier  Document  Binary –The authorized supplier.
UMBC Distributed Computing with Objects RMI/Corba CMSC 432 Shon Vick.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 6 - Essentials of Design an the Design Activities.
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
CSC 480 Software Engineering Lab 6 – RMI Nov 8, 2002.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Java Distributed Computing
Java Distributed Object System
Remote Method Invocation
Java RMI CS-328 Internet Programming.
What is RMI? Remote Method Invocation
The Client/Server Database Environment
CSC 480 Software Engineering
#01 Client/Server Computing
Chapter 40 Remote Method Invocation
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
#01 Client/Server Computing
Presentation transcript:

Component-Based Software Engineering Introducing the Bank Example Paul Krause

Lecture 4 - Contents  Basic Structure of RMI  Introducing the Bank Example  Core architecture of the Bank Example

Basic Structure of RMI  The useful stuff - “Business Logic”  UI code for the client  Some code to exchange information between client and server  Code to launch and configure the application  Some code to make the application more robust and scalable

Basic Structure of RMI  The useful stuff - “Business Logic”  UI code for the client  Some code to exchange information between client and server  Code to launch and configure the application  Some code to make the application more robust and scalable

“Marshalling” Data  Marshalling: A client takes a service request and puts it into a format (including arguments and data) suitable for sending over a socket connection A client takes a service request and puts it into a format (including arguments and data) suitable for sending over a socket connection  Demarshalling: The process by which the server reconstructs the service request The process by which the server reconstructs the service request  See also “serialization”

Basic RMI Process  Client obtains a stub class  Client calls a method in the stub  Stub creates a socket connection to the (skeleton on the) server Marshalls method name and arguments and sends to the skeleton Marshalls method name and arguments and sends to the skeleton  Skeleton demarshalls data and makes the method call on the server

Returning an RMI call  Skeleton gets return value from the server  Skeleton marshalls the return data and sends it to the stub  Stub demarshalls the return value and returns it (“as if” it was a local method call) to the client

Overview of RMI Client Server Network Stub: Marshalls invocation and sends data over to the skeleton Skeleton: Demarshalls data and invokes method on server

Introducing the Bank Example When travelling, take advantage of more than 13,000 Bank of America ATMs coast to coast. We’re in 30 states and the District of Columbia. As a Bank of America Check Card (sic) or ATM cardholder, there’s no ATM fee when you use an ATM displaying a Bank of America sign … - Bank of America advert (of some vintage)

Basic Distributed Architecture  Server Centralised on a small set of machines. Centralised on a small set of machines. Long running with important data Long running with important data All the business logic resides in the server All the business logic resides in the server  Client Short lived program Short lived program Persistent state resides in server Persistent state resides in server Makes few demands on client machine Makes few demands on client machine

Sketching the Architecture  What are you going to build?  Find a basic use case sometimes more than one sometimes more than one  What can you ignore Priorities, risks Priorities, risks  Physical constraints Deployment environment Deployment environment  Narrow down servers to core choices

Basic Use Case  User enters ID card  User enters password  If password correct, user can perform a transaction  User has a menu of choices for actions  User may choose account(s) for a specific action  After performing the transaction, the user leaves (taking the card with them)

Key Assumptions  There will be a server (or servers - we will discuss this!) written in Java  The server will be registered with a naming service (we’re going to have to discuss this too!)  The client (also written in Java) will connect to the naming service, retrieve a stub for the service, and use the stub to connect with the server

Design Postponements  Security We won’t talk about this much We won’t talk about this much  Scalability This is interesting! This is interesting!

Basic Architecture Database System Client Server Registry

Inventory of Components  Client  Stub  Registry  Skeleton and launch code  Servers  Database system

Client  Responsible for handling the interaction with a user  Obtains stub to the server from the registry and then invokes methods on the server

Stub  Implicitly, and without client knowledge, handles details of the Secure socket layer Secure socket layer  Connection

Registry  Maintains a mapping of human-readable names to server stubs  Responds to queries by returning serialized copies of stubs

Skeleton and launch code  To be discussed later!

Servers  These handle the “business logic”  They must: Respond to client requests Respond to client requests Manipulate data Manipulate data Store the data out to a database Store the data out to a database

Database system  Responsible for Long term persistence Long term persistence Integrity of data Integrity of data

Key questions?  How many servers?  What are they?

Key Problems  Partial Failures  Network Latency