objectives

54

Upload: rupali

Post on 11-Feb-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Objectives . Describe the differences between requirements activities and design activities Explain the purpose of design and the difference between architectural and detailed design activities Describe each design discipline activity. Objectives (continued). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Objectives
Page 2: Objectives

2Object-Oriented Analysis and Design with the Unified Process

Objectives

Describe the differences between requirements activities and design activities

Explain the purpose of design and the difference between architectural and detailed design activities

Describe each design discipline activity

Page 3: Objectives

3Object-Oriented Analysis and Design with the Unified Process

Objectives (continued)

Discuss the issues related to managing and coordinating design activities within the UP

Describe common deployment environments and matching application architectures

Develop a simple network diagram and estimate communication capacity requirements

Page 4: Objectives

4Object-Oriented Analysis and Design with the Unified Process

Moving From Business Modeling Requirements to Design Systems Design is the Discipline of organizing and structuring the

“Components of a System” to enable Construction and Deployment. The Design Discipline consists of many detailed activities which can

be grouped into “High-level Design” Activities. Such as:- Designing the Support Services Architecture and Deployment Environment Design Software Architecture Design Use Case Realizations Design User Interfaces Design Systems Interfaces Design Network design Systems Control and Security

 

Page 5: Objectives

5Object-Oriented Analysis and Design with the Unified Process

Moving From Business Modeling Requirements to DesignInput to the Design Activities are Business Models and Requirement Models.The Output from Design are also a set of Models that describe the Architecture of the new System and the Detailed Structure of and interaction among its various components.

The purpose of Business Modeling is to understand Business needs, Key Processes and Business Environment.

Analyst designs and review Business Models such as Organization Charts, Location Diagrams, Activity Diagrams and Use Case Diagrams in order to understand the Business Processes and develop a vision for the new System.

Page 6: Objectives

6Object-Oriented Analysis and Design with the Unified Process

Moving From Business Modeling Requirements to Design

Analyst builds Requirements Models to understand “Key Business Processes” and “Data” in greater detail. Such as:

Domain Model Class Diagrams, Use Case Diagrams and Interaction Diagrams (System Sequence Diagrams, or Collaboration Diagrams)

The Design Discipline continues the Modeling Process by creating new Models and expanding or refining Business and Requirements.

Page 7: Objectives

7Object-Oriented Analysis and Design with the Unified Process

Moving From Business Modeling Requirements to DesignThe nature of changes from Business and Requirements Modeling to Design Models are primarily concern with “What” and “How” Questions.

Business and Requirements Models are primarily concern with “WHAT” Questions: - What are the Business Objectives? - What information must be collected and Processed? - What are the Key Processes for collecting and Using the Information? Design Models are primarily concern with “HOW” Questions, which specify the structure of a System. - How will the Key Processes be performed? - How will key Data be collected and organized? - How will the new System achieves Business Objectives?

Design Models tend to be highly detailed and specific to Implantation and Deployment Technology. Thus, Design Models move project closer to Implementation.

Page 8: Objectives

8Object-Oriented Analysis and Design with the Unified Process

Moving From Business Modeling Requirements to Design

Design Models tend to be highly detailed and specific to Implantation and Deployment Technology. Thus, Design Models move project closer to Implementation

Models of Design discipline are “Blueprints”, for a specific system that uses specific technologies within a specific Deployment Environment.

Analyst may expand Business Models such as Domain Class Diagram to include Design details such as specific Methods of Data Access or “Low-level interactions with External Systems and Services.

Analyst may also develop many new Models that are specific to Design. Such new Design Models are:

- Database Models, - Network Models, - Package Diagrams - Interaction Diagrams (Sequence Diagrams, Collaboration Diagram

Page 9: Objectives

9Object-Oriented Analysis and Design with the Unified Process

Comparison of Modeling During the Business Modeling, Requirements, and Design Disciplines

Page 10: Objectives

10Object-Oriented Analysis and Design with the Unified Process

The Elements of Design Systems Design Discipline describes, organizes, and structures System Components at both the “Architectural Level Design” and “Detailed Level Design” for the Purpose of Constructing and Deploying the Proposed System.

Architectural Level Design (High Level Design)

Broad Design of the overall System Structure , also called “General Design” or “Conceptual Design” Such as Designing: - Hardware, - Network, - System Software Infrastructure

Detailed Design (Low Level Design)Includes the Design of specific Program details such as Software Design for a single Use Case or design of related group of User Interfaces.

High-Level Information System Design tasks affect the entire System whereas Lower-Level Design discipline tasks encompass a relatively small part of the System with minimal impact on other parts of the System.

During Architectural Design, the Overall Structured is determined first and then solution is formed before trying to design details

Page 11: Objectives

11Object-Oriented Analysis and Design with the Unified Process

Design Activities in the UP Life CycleThe Design Discipline Activities are Segmented into six major activities Architectural Design (Higher-level Design) activities contains and interacts with many Detailed (Lower-level) Design activities

Page 12: Objectives

12Object-Oriented Analysis and Design with the Unified Process

Design the Support Services Architecture / Deployment EnvironmentModern IS Systems operate in a complex collection of Computer Hardware, Networks and System Software, which is collectively called “Support Services Architecture and Deployment Environment.

Hardware includes:- Servers, Client Workstations, related Peripherals such as Storage Arrays, Printers etc.Network includes: Local Area wiring, Long Distance Communication links, Switches, Routers and Firewalls.System Software includes: Operating Systems, Networking Service Software:- such as Domain Naming Services (DNS), Directory and Security Service Software, Component Management Software and DBMS..

Most organization already have existing Support Services Architecture for multiple Information Systems. If there is an Existing Support Services Architecture , Analyst must determine whether the Existing Architecture can support the New System and what changes (if any) are required. If Organization have no Existing Architecture or may want to scrap its Existing Architecture, Analyst must design an Architecture to support the proposed System and anticipated future Systems.

Page 13: Objectives

13Object-Oriented Analysis and Design with the Unified Process

Design the Support Services Architecture/ Deployment Environment Analyst must consider the following Technical Design issues when

designing and Deploying a New System for Existing Support Architecture.

◘ Reliability◘ Security◘ Throughput◘ Synchronization

Because of these highly specialized Design issues, Analyst works with Specialists such as Network Engineers, Data Base Administrators System security Consultants etc.. to design New Support Architecture or Modify the Existing Architectures.

Page 14: Objectives

14Object-Oriented Analysis and Design with the Unified Process

Design the Software Architecture Software Architecture refers to the “Big Picture” , Structural Aspect of an

Information System.

Two important Structural Aspects of Software Design are:-◘ Division of Software into Classes ◘ Distribution of Classes across Processing Locations and specific Computers.

Architectural Design extends the Domain Class Diagram to produce Design Class Diagram that adds design details such as “Visibility of Data Attributes” and the required “Methods”.

Design Classes are Blueprints of “Executable Application Software units” can reside in many different Locations and interact in various ways.

Example: Classes can be executed on an Application Server in response to messages

transmitted over a Network using Protocol such as Simple Object Access Protocol (SOAP)

Classes can also be installed on individual Workstations with traditional GUI Interfaces and interact with Data Management System via various Database Protocols.

Page 15: Objectives

15Object-Oriented Analysis and Design with the Unified Process

Design the Software Architecture During Architectural Software Design Analyst must decide:

Where Classes and Objects will execute, Whether they will be distributed across Multiple Locations, How objects will communicate What Programming Language (s) will be used to write Objects

Software Architecture is heavily constrained by the Support

Services Architecture and Deployment Environment . e.g. A Web Based Application operating within UNIX, CORBA

(Common Object Request Broker Architecture) and Oracle DBMS environment will be different from application deployed on within

a Microsoft Windows, (. NET) and SQL Server. The capacity and capabilities of the Organization’s LAN and

WAN Networks will also affect how Application Software is distributed across Locations and types of interaction are possible.

Page 16: Objectives

16Object-Oriented Analysis and Design with the Unified Process

Design Use Case Realizations The Design of Use Case Realization differs from Architectural

Design in several ways including level of details, Number of Iterations, and focus on User Interface and Object Interaction.

While Application Architecture is a High Level View of Application Software, Use Case Realizations are a Lower-level View. Architectural Design defines a Framework within which Use Cases are realized.

Such as: - Distribution of Software Layers across Locations and Computers

- Which Software Class will support which Use Case.

When designing Use Case Realization, Analyst focuses on the Interactions among the Classes required to support a particular Use Case and Interaction among Software, Users and External Systems. Design focus shifts from “Big Picture Structural Issues” to the “Dynamic

Interactions” required to perform Specific Processing tasks. Design of Use Case Realization is typically spread over many UP Iterations each

Iteration combining Design and Constructing activities for one or more Use Cases. Design Class Diagrams and Interaction Diagrams are used to document the Design.

Page 17: Objectives

17Object-Oriented Analysis and Design with the Unified Process

Design the Database Designing Database is another key Design activity The Class Diagram created during the earlier Design Activity

iteration is used to create Physical Model of Database. Physical Model describes a Relational Database with several tables

or Object-Oriented Databases instead of Relational Databases

Analyst must consider several important technical issues When designing the Database Such as:- Performance, (i.e Response times) since much of Design

work may involve Performance tuning to make system work fast enough

Integration with Existing Databases (Legacy databases) to make sure that new Databases are properly integrated with existing Databases

Page 18: Objectives

18Object-Oriented Analysis and Design with the Unified Process

Design the System Interfaces and User InterfacesSystems Interfaces A new System affects many other Existing Systems and Analyst must ensure that they all work together.

- Some System Interfaces link Internal organizational Systems, so the Analyst may have information about those other.

- Some Systems Interfaces link new System with a System Outside the organization.(B2B).User Interfaces Systems must interact with the Internal Users and External Users. - The User Interfaces is more than just the Screens. It is everything the user comes into contact with while using the System, conceptually, perceptually and physically.

- To most Users the interface is a Graphical User Interface (GUI) with windows and mouse interaction. It can also include Sound, Video and Voice command

Analyst needs to consider many User interface issues such as:-

- User capabilities and needs differ widely - Each User interacts with the System in different ways - Different approaches to the Interface may be needed to different parts of the

System

Page 19: Objectives

19Object-Oriented Analysis and Design with the Unified Process

Design the System Security and Controls Design System Security and Controls activity involves ensuring that the System has adequate safeguards to protect organizational assets.

Design Systems and Security Control Activities include:

User Interface Controls limit access to the System to authorized users System Interface Controls protect system from other systems Application Controls ensure correct recording of transactions and validate

work Database Controls ensure that data area protected from unauthorized access

and accidental loss due to Software and Hardware failure. Network Controls ensure that communication through Networks is protected.

Since the Design Systems and Security Control Activities are crucial, specialists are often brought in to work on some Controls, and all System Controls need to be thoroughly tested.

Page 20: Objectives

20Object-Oriented Analysis and Design with the Unified Process

Design Activities and the UP Although Unified Process (UP) Design Activities can occur in any Project Phase or Iteration the Architectural and Detail Design Activities tend to be distributed differently.

Since the Design activities concerned with Software Architecture and Databases provide a foundation for Detailed Design and Construction they must be concentrated in early Iterations during the Elaboration Phase. (UP Life Cycles:- Inception, Elaboration, Construction, Transition)

Detail Design Activities are typically spread more evenly throughout the Project . e.g User Interfaces are usually designed while their corresponding Software components are being Designed and constructed. One of the more challenging aspect of UP System Design is determining which parts of the System need to be designed in which iteration.

Criteria Analyst uses to Schedule Design activities Experience Forecasting capabilities

The best practice is to complete Architectural Design Activities in early Iterations.

Page 21: Objectives

21Object-Oriented Analysis and Design with the Unified Process

Project Management - Coordinating The Project Project Management is critical when Design Activities are initiated.

Design activities require substantial Coordination due to:-

Frequentation of System into subsystems each has unique Design requirements. Project Team may divide into smaller teams to focus on the Subsystems and other

design issues (such as Network configuration, Database Design, Distributed processing needs and communications capability are common to all subsystems), with multiple iterations proceeding in parallel.

Complicating Factors of Project Coordination

Tracking multiple Iterations in parallel Initiation of two other mini Projects during the Design Activities i.e:

◘ Data Conversion Project ◘ Test Case Development Project

Initiation of Construction activities such as Programming also begin (Design and Programming for an iteration are usually conducted concurrently. Programming

can begin as soon as Design decisions are made) Addition (or departure) of team members Distribution of Project team members over different locations complicates project

communications management

Page 22: Objectives

22Object-Oriented Analysis and Design with the Unified Process

Coordinating Project Teams The fundamental tool used to Coordinate various Project Teams’ Activities is the Project Schedule.

When Design Activities begin Project Manager must Update the Schedule by:-

Estimate Durations for Design and Construction Tasks Estimate Duration of Tasks associated with Outstanding Tasks associated with ongoing Requirements Definition.

- In the early Iteration The Project Manager often does all Project Management Tasks. - When the Project expands and several Teams are formed, Management of the Project becomes more complicated..

- Frequently a committee composed of the Leaders the Design and Construction Teams assumes more responsibility for Coordinating and Controlling aspects of Project Management. ( e.g. Weekly, sometimes Daily “Status Meetings” are held including teleconferencing support.

Page 23: Objectives

23Object-Oriented Analysis and Design with the Unified Process

Coordinating Information Development Teams begin to generate tremendous amount of

detailed information about the System as Design moves forward. Classes, Data fields, Forms, Reports, Methods, Tables are all being

defined in substantial detail. Tremendous amount of Coordination is needed to keep track of

these pieces of information The most common and widespread technique to Record and Track

Project information is to use a CASE Tool with Repository to store Project information.

Other Tools and techniques called “Computer Support for Collaborative Work” (such as Lotus Notes) are also available to help with Team Communication and Information Coordination. One especially difficult part of Development Project is tracking

Open Items an Unresolved Issues. One simple method to solve this is to have an Open-Items Log.

Page 24: Objectives

24Object-Oriented Analysis and Design with the Unified Process

System Development Information Stored in the CASE Repository

Page 25: Objectives

25Object-Oriented Analysis and Design with the Unified Process

Deployment Environment Deployment Environment consists of the Hardware, System Software and Networking Environment, in which the System will Operate.

Modern Application Software is usually Deployed in in a Distributed Multicomputer Environment and is organized according to Client/Server Architecture or a variant Such as:-

- Three-Layer Architecture, - Distributed Software across Hardware platforms; - Specifying required Protocols, Middleware, and Networks.

Page 26: Objectives

26Object-Oriented Analysis and Design with the Unified Process

COMMON DEPLOYMENT ENVIRONMENTSSINGLE-COMPUTER ARCHITECTURE

Architecture that employs a single Computer System executing all Application-related Software and directly attached Peripheral devices, such as large Mainframe Architecture..

Single-Computer Architecture often requires all System Users to be located near the computer.

Advantages

- The primary Advantage is simplicity. Information Systems Deployed on a Single Computer System are relatively easy to Design, Build, Operate and Maintain.

Disadvantages:

The ‘Capacity Limits’ may make Single-Computer Architecture impractical or unusable for large Information Systems. Since many Systems are so large that even the largest Mainframe Computers (Supercomputers) cannot perform all the required Processing , Data storage and Data Retrieval tasks.

Page 27: Objectives

27Object-Oriented Analysis and Design with the Unified Process

COMMON DEPLOYMENT ENVIRONMENTSMultitier Architecture (Multiple Computer Systems) Multitier Architecture distributes Application-related Software or Processing load across multiple Computer Systems. The two types of Multitier Architecture are:-

Clustered Architecture - A Group of Computers of the same type that shares Processing load and act as a Single Large Computer System. - Programs are allocated to the least utilized computer when they executed so that the processing load can be balanced across all machines.

- Computers are normally located near one another so they can be connected with short high-capacity Communication links.

Multicomputer ArchitectureA group of dissimilar Computers that share Processing load through specialization of function. . Each computer System is optimized to the role that it will play in the combined System (Eg. Database Server, Application Server) Both Hardware and Operating Systems may be dissimilar

Page 28: Objectives

28Object-Oriented Analysis and Design with the Unified Process

Single-Computer, Clustered, and Multicomputer Architectures

Page 29: Objectives

29Object-Oriented Analysis and Design with the Unified Process

CENTRALIZED AND DISTRIBUTED ARCHITECTURE CENTRALIZED ARCHITECTURE

Architecture that Deploys (locates) all Computing resources in a central location.Generally Used for Large-scale Online and Batch Processing Applications in Banking , Insurance, and Catalog Sales industries

Information Systems Characteristic of Centralized Architecture:Any Application that has two or three of these characterizes a viable candidate Some Input transactions do not need to be processed in Real time mode Online Data Entry personnel can be located centrally The system produces a large amount of periodic outputs (eg. Statements etc) A High volume of transacts occurs between high-speed computers (Such as B2B processing for Supply Chain Management)

Centralized Computer Systems are typically used to implement one or more subsystems within a large Information Systems that include Online, Batch and geographically dispersed components.

Page 30: Objectives

30Object-Oriented Analysis and Design with the Unified Process

CENTRALIZED AND DISTRIBUTED ARCHITECTURE Distributed Architecture

Architecture that deploy Computer resources in multiple locations connected by a Computer network.Architecture relies on Communicating Networks to connect geographically dispersed Computer Hardware components. Computer Networks A set of transmission lines, specialized equipment, and Communication Protocols that permits sharing of information and resources. Depending on the distance the Computer Networks are divided into two classes:-

Local Area Network (LAN) Wider Area Network (WAN)

Page 31: Objectives

31Object-Oriented Analysis and Design with the Unified Process

COMPUTER NETWORKSLAN connects Computers at each geographic location

where the distance is local. (i.e. less that 1 kilometer long usually within a single building).

LANs are members of WANs.

ROUTER connects each LAN to the WAN. Router scans messages on the LAN and copies them to WAN or vice versa.

Technologies such as Ethernet are used to implement LAN.

LAN provides low to moderate amounts of message-carrying capacity at a relatively low cost.

Page 32: Objectives

32Object-Oriented Analysis and Design with the Unified Process

Computer NetworksWAN connects computers spread across large distances such as cities, geographical regions, countries, continents or entire globe.WAN technologies such as Asynchronous Transfer Mode are more complex and expensive, although they typically provide higher message-carrying capacity and greater reliability.WAN’s may be constructed using purchased equipment and leased long-distance transmission lines or subcontracted from a Service provider. (Eg. AT$T)

Computer Networks provide generic Communication capabilities such as:-

Direct communications, (e.g Telephone service and Video Conferencing) Message-based communications: (e.g. e-mail ) Resource sharing (e.g .Electronic Documents, Application Programs, and Databases)

There are many ways to distribute Information System resources across a Computer Network.: - Users, Application Programs and Databases can be placed on the same Computer System, On different Computer Systems on the same LAN, or Different Computer Systems on different LAN’s.- Application Programs and Databases can also be subdivided and each distributed separately.

Page 33: Objectives

33Object-Oriented Analysis and Design with the Unified Process

A Possible Network Configuration for RMO

Page 34: Objectives

34Object-Oriented Analysis and Design with the Unified Process

THE INTERNET, INTRANETS AND EXTRANETS Internet: A global collection of networks that use the same Networking Protocol

TCP/IP. WWW (The World Wide Web) or the Web is the collection of Resources

(i,.e. Programs, Files, Services) that can be accessed over Internet by a number of Standard Protocols including:-

– Formatted and Linked Document Protocols (eg. HTML, XML, HTTP)

– Executable Program Standard (eg. Java, Java script, VB Script)– Distributed Software and Web-Service Standards (Distributed

Computing Environment (DCE) , SOAP and CORBA. Intranet: Is a Private network that is accessible to a limited number of

Users, but which uses the same TCP/IP Protocol as the Internet.

Extranet: An Intranet that has been extended outside the organization to directly related organizations, to facilitate the flow of information.

» One Widely used method of Implementing an Extranet is through a Virtual Private Network. (VPN).

VPN (Virtual Private Network) is a Network with Security and Controlled access for Private Group, but built on top of a Public Network such as Internet.

Page 35: Objectives

35Object-Oriented Analysis and Design with the Unified Process

CLIENT/SERVER ARCHITECTUREComplex Distributed and Multitier Hardware and Network Architectures require more complex Software Architecture like Client/Server Architecture.

CLIENT/SERVER ARCHITECTURE Client/Server Architecture divides Software into two types, “Client” and “Server”.

- CLIENT: Communicates with a Server to ‘Request’ Resources or Services and the Server ‘Responds’ to those requests.

- SERVER: Manages one or more Information System Resources or provides a well defined Services over a Network.

Client/Server Architecture is a general Model of Software Organization and behavior that can be implemented in many different ways. A typical example for a Client/Server Architecture is the interaction between a Client Application Program on a Workstation and a Database Management System on a Server.

Page 36: Objectives

36Object-Oriented Analysis and Design with the Unified ProcessClient/Server Architecture with a Shared Database

Page 37: Objectives

37Object-Oriented Analysis and Design with the Unified Process

CLIENT/SERVER ARCHITECTUREThe Architectural Issues to be addressed when Designing Client/Server Software:-

Decomposing Software into Client and Server Programs or Objects Determining which Clients and Servers will execute on which

Computer Systems Describing Communication Protocols and Networks that connect

Clients and Servers.

The Key to Decomposing Software into Clients and Servers is to identify the Resources or Services that can be centrally managed by independent Software units.

A Centrally Managed Services include: - Security Authentication and Authorization, - Credit verification and Scheduling. In each cases a well defined process is based on a Data Storage that is hidden from the Client.

Page 38: Objectives

38Object-Oriented Analysis and Design with the Unified Process

CLIENT/SERVER ARCHITECTUREClient and Server can be execute on any Computer System.

The most popular arrangement is to place Server Software on a Server Computer System and distribute Client Software to computer Systems (Workstations) close to “End- Users”.

Client and Server communicates via well defined Communication Protocols such as TCP/IP ( a low-level Protocol) over a LAN Network.

Designer must also specify higher-level Protocols or Languages by which Client and Server exchange Service Requests, Responses and Data.

- In some cases Communication with a DBMS can be by a standard Protocol Such as SQL to communication with a DBMS via an ODBC (Open Database Connectivity).

- In other cases the designer must define the exact format and content of valid “Messages” and “Responses”.

If the service is provided by an External organization such as Credit Verification service by VERISIGN, then the Designer must ensure that Clients adhere to the Protocol.

Page 39: Objectives

39Object-Oriented Analysis and Design with the Unified Process

CLIENT/SERVER ARCHITECTURE ADVANTAGES of Client/Server Architecture

Location flexibility - The ability to move System components without disturbing other Systems components, in response to changing organizational parameters such as size and physical location.

Scalability – The ability to increase System capacity by upgrading or changing the Hardware on which the Software components execute.

Maintainability – The ability to update the Internal implementation of one part of a System without needing to change other parts.

DISADVANTAGES of Client/Server Architecture Additional Complexity introduce by the Client/Server Protocols Potential Poor Performance, Security and Reliability issues that arise from communication over Networks

For most organizations the Advantages of Client/Server architecture far outweigh the Disadvantages. As a result Client/Server Architecture and its new variants have become the dominant Architecture.

Page 40: Objectives

40Object-Oriented Analysis and Design with the Unified Process

Interaction Among Multiple Clients and a Single Server

Page 41: Objectives

41Object-Oriented Analysis and Design with the Unified Process

THREE-LAYER CLIENT/SERVER ARCHITECTURE A Variant of Client/Server Architecture, called “Three Layer Architecture” divides Application Software into a set of Client and Server Processes independent of Hardware or Locations. All Layers might reside on one Processor or three or more Layers might be distributed across many Processors (i.e Many Tiers)The most common Set of Software Layers include:-

The Data Layer (Manages stored data in Databases) The Business Logic Layer (Rules and procedures for processing)

The View Layer (Accepts User Input, formats and displays Output.)

The Layers are relatively independent of one another. It does not matter where other Layers are implemented or what type of Computer or Operating Systems they execute. The only interlayer dependencies are a “Common Language for Requests and Responds (Middleware) and a reliable Network with sufficient Communication capacity.

Page 42: Objectives

42Object-Oriented Analysis and Design with the Unified Process

Three-Layer Architecture

Page 43: Objectives

43Object-Oriented Analysis and Design with the Unified Process

THREE-LAYER CLIENT/SERVER ARCHITECTURE Multiple Layers can execute on the same Computer or each Layer can operate on a separate Computer. Complex Layers can be split across two or more Computer System. System Capacity can be increased by splitting Layer functions across Computers or by load sharing across redundant computers. Three Layer Architecture provides the flexibility needed by modern organizations to deploy and redeploy information processing Resources in response to rapidly changing conditions. Three Layer Architecture is a widely applied Architectural Design Patterns for Object-Oriented Software.

Key Design tasks of Client/Server Architecture are Decomposing: - The Application Software into Layers.

- Clients and Servers, - Distributing the “Pieces” across Hardware Platforms - Defining the Physical Network and Protocols.

The Business Logic Layer is the Core of the Application Software and is a Server of the View Layer and is a Client of the Data Access Layer.

The Business Logic Layer may itself be decomposed into multiple Clients and Servers.

Page 44: Objectives

44Object-Oriented Analysis and Design with the Unified Process

MIDDLEWARE Middleware is the Computer Software implements communication Protocols on Network and helps different System Communicate. Middleware Connects parts of an Application and enables Requests and Data to pass among them

Common Types of Middleware Teleprocessing Monitors Transaction Processing Monitors Object Request Brokers (ORBs)

Designer usually relies on Standard Frameworks and Protocols incorporated into Middleware for Client/Server Protocols. (e.g. Open Database Connectivity (ODBC) and SQL for Database interactions, HTTP or XML for Web Protocols. Object-Oriented Software distributed across Multiple Layers and Multiple Hardware platforms relies on ORB based on Distributed Object interface standards such as CORBA. Distributed non Object- Oriented Software relies on different Middleware products based on standards such as DCE or Microsoft COM+. Web- based Applications rely on Web- Oriented Protocols such as Microsoft ( .NET) and Sun J2EE and specific Middleware products that implement and support those protocols.

Page 45: Objectives

45Object-Oriented Analysis and Design with the Unified Process

INTERNET AND WEB-BASED SOFTWARE ARCHITECTURE The Web is a complex example of Client/Server Architecture

Web Resources are managed by Server processes that can execute on dedicated Server Computers or on Multipurpose Computers

Clients are Programs that send Requests to Servers using standard Web Resource Request Protocols.

Web Protocols define valid Resource Formats and a standard means of requesting Resources and Services.

Any Programs (not Just Web Browser) can use Web Protocols. Thus, Web-like capabilities can be embedded in ordinary Application Programs.

Web Service Standards such as (.NET) and (J2EE) enable a Web-Oriented Client/Server Architecture commonly called a Service-Oriented Architecture (SOA)  

Service Oriented Architecture (SOA) Packages:- - Application Software into Server Software, which can be managed by

and accessed via a Web Server. - Service Request and Responses in XML Documents and transmits

them over the Internet.

SOE simplifies Client and Server interaction, particularly for B2B Applications.

Page 46: Objectives

46Object-Oriented Analysis and Design with the Unified Process

INTERNET AND WEB-BASED SOFTWARE ARCHITECTURE Internet and Web Technologies present an attractive alternative for implementing

Information Systems. Flexibility is the key to the Internet alternatives. Implementing the Application via Internet greatly expands Application’s accessibility

and also eliminates the need to install Client Software on Laptop computers. With Internet Technology, Client Software can be updated by simply updating the

Version stored on the Web Server. The Application is relatively cheap to develop and deploy

because existing Web Standards and Networking resources are employed.The key Application Design for Web-based Applications are the same similar to other Client/Server Architectures: - Defining Client and Server Processes or Objects; - Distributing them across Hardware Platform- Connecting them appropriate Networks, Middleware and Protocols.)

However, the Choice for Middleware and Protocols for Web-based Applications are much more limited.

Page 47: Objectives

47Object-Oriented Analysis and Design with the Unified Process

INTERNET AND WEB-BASED SOFTWARE ARCHITECTURE

ADVANTAGES OF INTERNET OVER TRADITIONAL CLIENT/SERVER APPLICATIONS

Accessibility : Internet, Intranet and Extranet applications to large number of Users because of ubiquitous availability of Internet Browsers and Connections

Low cost Communication: Traffic on network backbone (High capacity WAN ) travels free of charge to the User. Companies can use Internet as a low-cost WAN. Widely Implemented Standards:- Web Standards are well known and many IT

Professionals are trained in their uses.

DISADVANTAGES OF WEB TECHNOLOGIES

Security: Web servers are target for Security breaches since Web standards are open and widely known by IT professionals.

Reliability:- Internet Protocol do not guarantee a minimum level of Network throughput even neither that the message will be received by its intended recipient.

Throughput:- Home Users are subject to a Data Transfer Capacity of less than 56Kps (Analog Modem) as well as slow response time and long delays for all users due to overloading on backbone WANs.

Volatile Standards: Web standards change rapidly, thus client software is updated every few months causing dilemma to widely used Application Developers

Page 48: Objectives

48Object-Oriented Analysis and Design with the Unified Process

NETWORK DESIGN Network Planning and Design are critical issues for any Multitiered System.

The Key Network Design issues Integrating Network needs of the new System with Existing

Network infrastructure. Describing Local Processing activity and Network connectivity

at each System location. Describing the Communication Protocols and Middleware that

connect Layers Ensuring that sufficient Network Capacity is available

Page 49: Objectives

49Object-Oriented Analysis and Design with the Unified Process

NETWORK INTEGRATION Modern organizations rely on Networks to support many different Applications, thus the majority of New Systems must be integrated into Existing Networks without disrupting Existing Applications.

Factors impacting Network Integration Connections for new Servers Modifying Routing and Firewall Configuration Expansion of Network Capacity New Communication Protocols Modified Security Protocols

Analyst begins Network design by consulting with Network Administrator and may share or delegate tasks to the Network Administrator or Consultants to handle Network Administration due to its complexity.

Page 50: Objectives

50Object-Oriented Analysis and Design with the Unified Process

NETWORK DESCRIPTION The Analyst expands the information content on the Location

Diagrams including; Processing Locations, Communication protocols, Middleware and Communication Capacity when creating a Network Diagram.

Network Diagram describes how Application Layers are distributed across locations and Computer Systems.

Network Diagram embodies specific assumptions about Server Locations, which would be decided in consultation with Network Administration.

Decisions like Server Locations, Communication Routers and Network Security options are determined both by Application requirements and Organization-wide Policies.

Page 51: Objectives

51Object-Oriented Analysis and Design with the Unified Process

A Network Diagram for the RMO Customer Support System

Page 52: Objectives

52Object-Oriented Analysis and Design with the Unified Process

COMMUNICATION PROTOCOLS AND MIDDLEWARE The Network Diagram is a starting point for specifying Protocol and Middleware requirements.

E.g. Private WAN Connections must support Protocols required to process Microsoft Active Directory Logins and Queries.

If the WAN fails messages are routed through encrypted (VPN) connections over the Internet. So these connections must support the same Protocols as Private WAN

All clients must be able to send HTTP requests and receive active content such as HTML forms and embedded scripts.

Application Server must be able to communicate with Credit Verification and Shipping Service via the Internet.

Firewalls and Routers must be configured to support all interactions among the Workstations, Customer PCs Web Application Servers and Active Directory Server and Eternal Credit and Shipping Services.

A Protocol on a LAN for transmitting Database queries and responses among the Mainframe and Web/Application Server is required.

Page 53: Objectives

53Object-Oriented Analysis and Design with the Unified Process

NETWORK CAPACITY Information from the Use Case - Location and Use Case-Problem Domain Class

Matrices is the starting point for estimating Communication Capacity Requirements for LAN, WAN and Internet Connections.

Data Size per Access Type and “Average” and “Peak Number of Access” per Minute or Per Hour is also considered

Data Size per Access Type is an educated guess at this point in the System Design since none of the Software Layer, Interlayer Communication Dialogs or Databases has yet been designed.

Analyst has to refine estimates or actual samples once the components have been designed in more detail or implemented.

Actual data transmission capacity will include Communication Protocol; overhead in addition to raw data.

Page 54: Objectives

54Object-Oriented Analysis and Design with the Unified Process

A Partial Use Case–problem Domain Class Matrix for RMO Customer Support System, Updated With Data Access Size and Volume Network Diagram for the RMO Customer Support System