Enterprise Computing: An Overview

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Object Oriented System Development with VB .NET
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Unified Modeling Language 7/12/2015B.Ramamurthy1 The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and Jim Rumbaugh.
Introduction To System Analysis and design
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Common Object Request Broker Architecture (CORBA) CS-328.
BCS 2143 Introduction to Object Oriented and Software Development.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
UML Review of diagram types. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Salman Marvasti Sharif University of Technology Winter 2015.
12/24/2015B.Ramamurthy1 Analysis and Design with UML: Discovering Classes Bina Ramamurthy.
UML Review of Use case diagrams. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson,
Sadegh Aliakbary Sharif University of Technology Fall 2010.
A service Oriented Architecture & Web Service Technology.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Chapter 11: Abstract Data Types Lecture # 17. Chapter 11 Topics The Concept of Abstraction Advantages of Abstract Data Types Design Issues for Abstract.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
J2EE Platform Overview (Application Architecture)
Common Object Request Broker Architecture (CORBA)
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Mastering UML with Rational Rose 2002
Analysis and Design with UML: Discovering Classes and Relationships
CORBA Alegria Baquero.
Distribution and components
Analysis and Design with UML: Discovering Classes and Relationships
Unified Modeling Language
Inventory of Distributed Computing Concepts and Web services
Analysis and Design with UML: Discovering Classes and Relationships
Inventory of Distributed Computing Concepts
Web-Services-based Systems Architecture, Design and Implementation
CORBA Alegria Baquero.
Object-Oriented Programming
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Inventory of Distributed Computing Concepts
Component--based development
Chapter 20 Object-Oriented Analysis and Design
Advanced Programming Behnam Hatami Fall 2017.
The Design of a Dynamic Network for Enterprise Systems
Appendix A Object-Oriented Analysis and Design
Real-time (OO) Systems Design Using UML
UML profiles.
Object-Oriented Programming
Unified Modeling Language
An Introduction to Software Architecture
Chapter 17: Client/Server Computing
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Distributed Systems through Web Services
Analysis and Design with UML: Classes and Relationships
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Enterprise Computing: An Overview
Object-Oriented Programming
Introduction to SOA and Web Services
Copyright 1999 B.Ramamurthy
Inventory of Distributed Computing Concepts
From Class Diagram to Contract Diagram
Presentation transcript:

Enterprise Computing: An Overview B. Ramamurthy 1/13/2019 B. Ramamurthy

Introduction In this lecture we will trace through all the important developments leading to enterprise computing. During this process I will review many fundamental concepts such as object-oriented principles and request-reply model, distributed objects, remote method invocations, Java technology etc. Your task is to identify the concepts that you further need to study and work on them in the next two weeks. Those who are familiar with any of the concepts, share your experiences with the students in the class. 1/13/2019 B. Ramamurthy

Topics of Discussion Object-Orientation (OO) Principles Unified Modeling Language (UML) Beyond objects Enterprise systems Middleware CORBA J2EE RMI Computation grid 1/13/2019 B. Ramamurthy

Object-Oriented Principles (OOP) Encapsulation (class) -- Information Hiding -- Separation of Interface and Implementation -- Standardization -- Access Control mechanisms (private /public) Inheritance -- Hierarchy -- Reusability -- Extensibility -- Expressive power -- Reflects many real-world problems Polymorphism -- Many forms of same function -- Runtime Binding -- Abstract Classes -- Interfaces -- Uniformity 1/13/2019 B. Ramamurthy

Why OO paradigm? OO/UML Models let you structure your thoughts. Convenient for large software development Systematic approach to analyzing large problems Reuse through classes and inheritance Supports Application programmer Interface (API) concept Standardization (standard interface) Facilitates security , protection and access control 1/13/2019 B. Ramamurthy

Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and Jim Rumbaugh with contributions from other leading methodologists, software vendors, and many users. The UML provides the application modeling language for: Business process modeling/ Requirement Analysis with use cases. Static Design with Class modeling and object modeling. Dynamic Design with sequence, collaboration and activity diagrams. Component modeling. Distribution and deployment modeling. See http://www.rational.com/uml/resources/whitepapers/index.jsp http://www.cetus-links.org/oo_uml.html 1/13/2019 B. Ramamurthy

Phases of System Development Requirement Analysis Functionality users require from the system Use case model OO Analysis Discovering classes and relationships UML class diagram OO Design Result of Analysis expanded into technical solution Sequence diagram, state diagram, etc. Results in detailed specs for the coding phase Implementation (Programming/coding) Models are converted into code Testing Unit tests, integration tests, system tests and acceptance tests. 1/13/2019 B. Ramamurthy

Use-Case Modeling In use-case modeling, the system is looked upon as a black box whose boundaries are defined by its functionality to external stimulus. The actual description of the use-case is usually given in plain text. A popular notation promoted by UML is the stick figure notation. We will look into the details of text representation later. Both visual and text representation are needed for a complete view. A use-case model represents the use-case view of the system. A use-case view of a system may consist of many use case diagrams. An use-case diagram shows (the system), the actors, the use-cases and the relationship among them. 1/13/2019 B. Ramamurthy

Components of Use Case Model The components of a use case model are: Use cases Actors System Modeled Stimulus Use-case System Name name 1/13/2019 B. Ramamurthy

System As a part of the use-case modeling, the boundaries of the system are developed. System in the use-case diagram is a box with the name appearing on the top. Defining a system is an attempt to define the catalog of terms and definitions at an early stage of the development of a business model. 1/13/2019 B. Ramamurthy

Actors An actor is something or someone that interacts with the system. Actor communicates with the system by sending and receiving messages. An actor provides the stimulus to activate an use case. Message sent by an actor may result in more messages to actors and to use cases. Actors can be ranked: primary and secondary; passive and active. Actor is a role not an individual instance. 1/13/2019 B. Ramamurthy

Finding Actors The actors of a system can be identified by answering a number of questions: Who will use the functionality of the system? Who will maintain the system? What devices does the system need to handle? What other system does this system need to interact? Who or what has interest in the results of this system? 1/13/2019 B. Ramamurthy

Use Cases A use case in UML is defined as a set of sequences of actions a system performs that yield an observable result of value to a particular actor. Actions can involve communicating with number of actors as well as performing calculations and work inside the system. A use case is always initiated by an actor. provides a value to an actor. must always be connected to at least one actor. must be a complete description. Example? 1/13/2019 B. Ramamurthy

Finding Use Cases For each actor ask these questions: Which functions does the actor require from the system? What does the actor need to do? Could the actor’s work be simplified or made efficient by new functions in the system? What events are needed in the system? What are the problems with the existing systems? What are the inputs and outputs of the system? 1/13/2019 B. Ramamurthy

Classes OO paradigm supports the view that a system is made up of objects interacting by message passing. Classes represent collection of objects of the same type. An object is an instance of a class. A class is defined by its properties and its behaviors. A class diagram describes the static view of a system in terms of classes and relationships among the classes. 1/13/2019 B. Ramamurthy

Discovering Classes Underline the nouns in a problem statement. Using the problem context and general knowledge about the problem domain decide on the important nouns. Design and implement classes to represent the nouns. Underline the verbs. Verbs related to a class may represent the behavior of the class. You can also discover the classes from the use case diagram. 1/13/2019 B. Ramamurthy

Examples Drawing package: Design a user interface for drawing various shapes: circle, square, rectangle. Football scores: Keep track of football score. General purpose counter: To keep of track of count for various applications. Library: Books, different categories of books, details of student borrower, library personnel. 1/13/2019 B. Ramamurthy

Designing Classes A class represents a class of objects. A class contains the data declarations (“parts”) and methods (“behaviors” or “capabilities” ). OO Design: Class properties or characteristics are answers to “What is it made of?” (It has a ____, ____, etc.) Behaviors, capabilities or operations are answers to “What can it do?” (verbs in the problem) 1/13/2019 B. Ramamurthy

Classes are Blueprints A class defines the general nature of a collection of objects of the same type. The process creating an object from a class is called instantiation. Every object is an instance of a particular class. There can be many instances of objects from the same class possible with different values for data. A class structure implements encapsulation as well as access control: private, public, protected. 1/13/2019 B. Ramamurthy

Example objects Object References redRose class Rose blueRose class 1/13/2019 B. Ramamurthy

Class Diagram : Automobile public: seat seatBelt accelerator private: sparkPlugs gear protected: gloveCompartment public: startEngine brake protected: transmission private: fuelInjection 1/13/2019 B. Ramamurthy

Automobile Class Using Rational Rose Tool 1/13/2019 B. Ramamurthy

On to implementation You may define the methods of the class using sequence diagram and state diagram. Using these diagrams you can code the application. 1/13/2019 B. Ramamurthy

Beyond Objects Issues: Basic object-technology could not fulfill the promises such as reusability and interoperability fully in the context internet and enterprise level applications. Deployment was still a major problem and as a result portability and mobility are impaired. Solution: Middleware Common Object Request Broker Architecture (CORBA), Java 2 Enterprise Edition, .NET, computation grid 1/13/2019 B. Ramamurthy

Enterprise Systems An enterprise is a very large organization. An enterprise system is a distributed system involving many large organizations. An example: AT&T, inktomi, amazon.com, UPS, and users operating in a supply chain model, make up an enterprise system. Inter .com …. 1/13/2019 B. Ramamurthy

Evolution of Computing Systems BR Enterprise Systems Distributed Systems Client Centralized Systems /Server Systems 1/13/2019 B. Ramamurthy

Distributed System as an Enterprise System There are many problems in using traditional distributed system model for enterprise computing. Look at “A Note on Distributing Computing” by Jim Waldo, Geoff Wyant, Ann Wollarth and Sam Kendall of Sun labs. -- current distributed system paradigm works well for small systems dealing with single address space but fails very badly for dynamically changing global address spaces. We have seen advances in code mobility, data mobility,etc. But the distributed system architecture/principles are yet to evolve in any significant way. Focus on distribution. 1/13/2019 B. Ramamurthy

Issues in Enterprise Systems BR APPLICATION Ease of use Uniform interface Design and development effort Flexibility Rapid Application Development (RAD) Definition of a Model Distribution Scalability Availability Load Balancing Security Interoperability Server Power Response time end-to-end QoS User Interface Return of Investment Total Cost of Ownership Design to Production Time SYSTEM USER BUSINESS

Requirements for Enterprise Computing Accommodate changes gracefully - scalability, dynamic reconfiguration Maintain high availability at all times Offer good performance in terms of response time and end-to-end “QOS” Dependability and fault tolerance Simplicity …. 1/13/2019 B. Ramamurthy

Enabling Technology “desktop” server server client client middleware BR server server client client “desktop” middleware middleware “network”

What is CORBA? Common Object Request Broker Architecture (CORBA) specification (/standard) defines a framework for object-oriented distributed applications. It is defined by a consortium of vendors under the direction of Object Management Group (OMG). 1/13/2019 B. Ramamurthy

What is CORBA? (contd.) Allows distributed programs in different languages and different platforms to interact as though they were in a single programming language on one computer. Brings advantages of OO to distributed systems. Allows you design a distributed application as a set of cooperating objects and to reuse existing objects. 1/13/2019 B. Ramamurthy

Object Request Broker (ORB) A software component that mediates transfer of messages from a program to an object located on a remote host. Hides underlying network communications from a programmer. ORB allows you to create software objects whose member functions can be invoked by client programs located anywhere. A server program contains instances of CORBA objects. 1/13/2019 B. Ramamurthy

Clients, severs and objects Server0 Client CORBA Object invocation Server1 1/13/2019 B. Ramamurthy

CORBA Objects and IDL These are standard software objects implemented in any supported language including Java, C++ and Smalltalk. Each CORBA object has a clearly defined interface specified in CORBA interface definition language (IDL). The interface definition specifies the member functions available to the client without any assumption about the implementation of the object. 1/13/2019 B. Ramamurthy

Client and IDL To call a member function on a CORBA object the client needs only the object’s IDL. Client need not know the object’s implementation, location or operating system on which the object runs. 1/13/2019 B. Ramamurthy

IDL facilitates internetworking Specify in IDL Use IDL-language compiler Client sees only IDL interface C++ Java target object smalltalk OLE (VB, PB,Delphi) Ada, Cobol etc. 1/13/2019 B. Ramamurthy

Separation of Interface and Implementation Interface and implementation can be in two different languages. Interface abstracts and protects details (trade secrets) from client Interface offers a means of expressing design without worrying about implementation. 1/13/2019 B. Ramamurthy

ORB : Conceptual View When a client invokes a member function on a CORBA object, the ORB intercepts the function call. ORB directs the function call across the network to the target object. The ORB then collects the results from the function call returns these to the function call. 1/13/2019 B. Ramamurthy

Implementation Details Client ORB Object Stub Access to the services provided by an Object ORB : (Object-oriented middleware) Object Request Broker ORB mediates transfer between client program and server object. 1/13/2019 B. Ramamurthy

Component Technology We need an application architecture that works well in the new E-commerce age. Programmer productivity, cost-effective deployment, rapid time to market, seamless integration, application portability, scalability, security are some of the challenges that component technology tries to address head on. Enterprise Java Beans is Sun’s server component model that provides portability across application servers, and supports complex systems features such as transactions, security, etc. on behalf of the application components. EJB is a specification provided by Sun and many third party vendors have products compliant with this specification: BEA systems, IONA, IBM, Oracle, Sybase, Gemstone. 1/13/2019 B. Ramamurthy

Two-tier applications Presentation Logic Business Database Server 1/13/2019 B. Ramamurthy

Three-tier Applications Presentation Logic Business Database Server 1/13/2019 B. Ramamurthy

J2EE Application Programming Model for Web-based applications Web Service Business Logic Web Application Database Server Enterprise Java Beans EJB container Web Container Web client 1/13/2019 B. Ramamurthy

J2EE Application Programming Model for Three-tier Applications Presentation Components Database Server Enterprise Java Beans EJB container Application Container Business Logic 1/13/2019 B. Ramamurthy

J2EE Application Programming Model for Web-based Applets Web Service Business Logic Web Application Container Enterprise Java Beans EJB container Browser Database Server Applet internet 1/13/2019 B. Ramamurthy