Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note



Similar documents
IES - Introduction to Software Engineering

Organization. Introduction to Software Engineering

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

SOA Principles of Service Design

Information systems modelling UML and service description languages

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

The Service, The Cloud & The Method: The Connection Points

Service-Orientation and Next Generation SOA

SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together. Thomas Erl, Arcitura Education Inc. & SOA Systems Inc.

Evaluating OO-CASE tools: OO research meets practice

I219 Software Design Methodology

SOA with Java. Realizing Service-Orientation with Java Technologies UPPER SADDLE RIVER, NJ BOSTON INDIANAPOLIS SAN FRANCISCO

Quality Ensuring Development of Software Processes

Knowledge-based Approach in Information Systems Life Cycle and Information Systems Architecture

A Comparison of SOA Methodologies Analysis & Design Phases

Foundations of Model-Driven Software Engineering

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

22C:22 (CS:2820) Object-Oriented Software Development

Ontological Representations of Software Patterns

A Brief Analysis of Web Design Patterns

The WebShop E-Commerce Framework

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement

Service Oriented Architecture and Its Advantages

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2015/16

The WebShop e-commerce framework

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Basic Trends of Modern Software Development

Software Refactoring using New Architecture of Java Design Patterns

Supporting Service Design Decisions

Chap 1. Introduction to Software Architecture

Understanding Service-Orientation Part II: The Principles

SOA CERTIFIED CONSULTANT

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Methods and tools for data and software integration Enterprise Service Bus

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

ENTERPRISE ARCHITECTUE OFFICE

Structuring Product-lines: A Layered Architectural Style

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Extend the value of your core business systems.

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Mapping Service-Orientation to TOGAF 9 - Part II: Architecture Adoption, Service Inventories and Hierarchies

Introduction to Service Oriented Architectures (SOA)

Building Service-oriented User Agents using a Software Product Line Approach. Ingrid Oliveira de Nunes ionunes@inf.puc-rio.br

A Quick Introduction to SOA

Service Oriented Architecture Professional (SOACP)

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

SOA Architect Certification Self-Study Kit Bundle

Multi-agent System based Service Oriented Architecture for Supply Chain Management System (MAS-SOA-SCM)

Architectural Patterns (3)

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

The Role of the Software Architect

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

From Business World to Software World: Deriving Class Diagrams from Business Process Models

SOA Governance. Stephen G. Bennett, Clive Gee, Robert Laird, Co-authored and edited by Thomas Erl. Governing

TOGAF usage in outsourcing of software development

A process-driven methodological approach for the design of telecommunications management systems

SOA GOVERNANCE MODEL

Using MDA in Web Software Architectures

Software Development Process

Business Modeling with UML

Risk Knowledge Capture in the Riskit Method

Service Computing: Basics Monica Scannapieco

CT30A8901 Chapter 10 SOA Delivery Strategies

Research Topics in Software Engineering

Masters of Science in Software & Information Systems

SOA Governance and the Service Lifecycle

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED CONCEPTUALIZATION MODEL LANGUAGE SPECIFICATIONS

Elite: A New Component-Based Software Development Model

Service Oriented Enterprise Architecture

Knowledge Infrastructure for Project Management 1

[2006] IEEE. Reprinted, with permission, from [M. Ye and K. Sandrasegaran, Teaching about Firewall Concepts using the inetwork Simulator, Information

Experiences with ALM tools in Software Engineering course

Verification and Validation of Software Components and Component Based Software Systems

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

An Introduction to Software Engineering

Change Management: Modeling Software Product Lines Evolution

SOA Success is Not a Matter of Luck

SERVICE ORIENTED ANALYSIS AND DESIGN OF PROJECT MANAGEMENT SOFTWARE

Service Oriented Architectures Using DoDAF1

DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering. Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO

Transcription:

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN 0-13-234482-3, Prentice Hall Pearson Education, Inc., 2008. 1. Design Fundamentals What is Analysis and Design The Meaning of Design Design Related Terms o Design Characteristics o Design Principle o Design Paradigm o Design Pattern o Design Pattern Language o Design Standard o Best Practice A Fundamental Design Framework What is Analysis and Design? [1] Analysis emphasizes an investigation of problem and requirements, rather than a solution. During object-oriented analysis, there is an emphasis on findings and describing the objects or concepts in the problem domain... Design emphasizes a conceptual solution that fulfills the requirements, rather than its implementation... During object-oriented design, there is an emphasis on defining software objects and how they collaborate to fulfills the requirements How about Service-Oriented Analysis and Design? The Meaning of Design [2] In every engineering discipline, design encompasses the disciplined approach we use to invent a solution for some problem, thus providing a path from requirements to implementation. In the context of software engineering, Mostow suggests that the purpose of design is to construct a system that: Satisfies a given (perhaps informal) functional specification Conforms to limitations of the target medium Meets implicit or explicit requirements on performance and resource usage Satisfies implicit or explicit design criteria on the form of the artifact Satisfies restrictions on the design process itself, such as its length or cost, or the tools available for doing the design [3] How about the meaning of Service-Oriented Design? 1

Design Related Terms [4] Design Characteristics Design Principle Design Paradigm Design Pattern Design Pattern Language Design Standard Best Practice Design Characteristics [4] A characteristic of something is simply an attribute or quality. The desired design characteristic: a specific attribute or quality of a body of solution logic that we document in a design specification and plan to realize in development Example: Figure 3.1 o Design A: o Design B o Design C 2

Figure 3.1 In this simple example, three distinct application designs (A, B, C) are established, each with its own list of design characteristics. We will continue to reference these applications in the upcoming sections. (Note that the small squares represent units of solution logic, solid arrows represent reuse or shared access, and dashed arrows represent state data transfer.) Design Characteristics of Service-Orientation o Common design characteristic => Spread consistency => Increase commonality increased degree of consistency, making different kind of solution logic more alike o Predictable design => Predictable behavior o Reliability Design Principle [4] A principle is a generalized, accepted industry practice Design Principle o Represents a highly recommended guideline for shaping solution logic in a certain way and with certain goals in mind Eight Design Principles Example Figure 3.2 o Design Principle Increases the amount of common design characteristics Increases the level of decoupling or loose coupling 3

Figure 3.2 The repeated application of design principles increases the amount of common design characteristics. In this case, the coupling between solution logic units A and B has been loosened (as indicated by a reduction of connection points). Design Paradigm A design paradigm within the context of business automation is generally considered a governing approach to designing solution logic. It consists of a set of complementary rules or principles that collectively define the overarching approach represented by the paradigm. The service-oriented design paradigm o Apply a right balance of loose coupling and reuse to distributed solution logic Example Figure 3-3 4

Figure 3.3 Because a design paradigm represents a collection of design principles, it further increases the degree of commonality across different bodies of solution logic. In the example, the amount of reuse in A and B has increased. 5

Design Pattern A design pattern systematically names, explains, and evaluates an important and recurring design. Design patterns make it easier to reuse successful designs and architecture. [5] A design pattern describes a common problem and provides a corresponding solution (Figure 3.4) [4] Figure 3.4 Patterns provide recommended solutions for common design problems. In this simplified example, a pattern suggests we reduce external access to a database to increase application autonomy. Design pattern (Computer Science), http://en.wikipedia.org/wiki/design_pattern_(computer_science) : In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve problems that can be used in many different situations. A design pattern has four essential elements [3]: o The pattern name is a handle we can use to describe a design problem, its solution, and consequences in a word or two. 6

o The problem describes when to apply the pattern. o The solution describes the elements that make up the design, their relationships, responsibilities, and collaborations. o The consequences are the results and trade-offs of applying the pattern. Model-View-Controller, MVC Design Pattern, http://java.sun.com/blueprints/patterns/mvc.html SOA Patterns, by Thomas Erl, http://www.soapatterns.org/ SOA Design Patterns, http://zimmermann-software.de/soa-templatesproject/patterns.html Design Pattern Language Comprises of a chain of related design patterns that establish a configurable sequence in which the patterns can be applied Example - Figure 3.5 Figure 3.5 A sequence of related design patterns formalize the primary decision points of a design paradigm. In this example, the logic in application design B is decomposed as a result of one pattern, and then further decomposed as a result of another. Subsequent fundamental patterns continue to shape the logic. 7

Design Standards [4] Design standards are (usually mandatory) design conventions customized to consistently pre-determine solution design characteristics in support of organizational goals and optimized for specific enterprise environments. Example Figure 3.6 Figure 3.6 In this case, a design standard requires that C s original design be altered to remove access to a shared, external state database. 8

Best Practice A best practice is generally considered a technique or approach to solving or preventing certain problems Example Figure 3.7 Figure 3.7 Best practices provide guidance in the form of general lessons learned. In the example, it is suggested that the on-going maintenance of reusable solution logic units from all applications fall under a single custodian. 9

A Fundamental Design Framework Figure 3.8 Fundamental design terms establish a basic taxonomy used throughout the upcoming chapters. This diagram hints at how some parts of a basic design framework can relate to each other. 10

Figure 3.9 Design patterns provide additional intelligence that can enrich a design framework with a collection of proven solutions to common problems. 11

Figure 3.10 The purpose of applying a design paradigm is the achievement of certain goals. It is important to emphasize how design standards, design patterns, and best practices can all support the successful application of a design paradigm and, as a result, the attainment of its goals. 12

References [ 1] Appling UML and Patterns, 2 nd edition, by Craig Larman, Prentice Hall, 2002. [ 2] Object-Oriented Analysis and Design with Applications, 3 rd edition, by Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston, from Addison Wesley, 2007. [ 3] Toward Better Models of the Design Process, by J. Mostow, AI Magazine, Spring 1985, Vol. 6(1), p. 44 [ 4] SOA Principles of Service Design, by Thomas Erl, ISBN 0-13-234482-3, Prentice Hall Pearson Education, Inc., 2008. [ 5] Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, from Addison-Wesley, 1995. 13