CS计算机代考程序代写 database Java finance SE457 Week 1 – Introduction and Overview Part 1

SE457 Week 1 – Introduction and Overview Part 1
Steven Engelhardt
DePaul University
Spring 2021
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 1 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 2 / 90

Course Objectives
• Introduce you to the latest developments in the area of service oriented architecture (SOA).
• Expose you to a broad range of topics with SOA as their common focus.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 3 / 90

Learning Objectives
• Understand the principles of service-oriented design
• Explain how the service-oriented design paradigm differs from other
design approaches
• Design preliminary service-oriented architectures which take into consideration quality goals such as reliability, performance, and scalability
• Implement a web service using modern techniques
• Evaluate the coming attractions in service-oriented architecture
research and practice
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 4 / 90

Limitations
• This course is a survey course, which means that it does not go into great depth on any given subject.
• This is not just a web services class although we will discuss them.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 5 / 90

Primary Textbook
Thomas Erl. SOA: Principles of Service Design. Prentice-Hall, 2008. ISBN: 0-13-234482-3.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 6 / 90

Secondary References

Newman, Sam. Building Microservices: Designing Fine-Grained Systems. 1st : O’Reilly Media, 2015.
Rotem-Gal-Oz, Arnon. SOA Patterns. Shelter Island, NY: Manning Pubications Co., 2012.

Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 7 / 90

Communication Plan
• My office hours are from 16:00 – 17:30 before class, online-only via Zoom
• Email is the best way to contact me: sengelha@depaul.edu
• All notes, handouts, assignments, grades, etc. will be available
through D2L. Please do not email me your assignments.
• Course homepage: https://d2l.depaul.edu/d2l/home/811041
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 8 / 90

Prerequisites
• SE450 or CSC435
• Some Java programming will be required
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 9 / 90

Quizzes
• There will be 5 quizzes
• Quizzes are generally due alternate Tuesdays at 5:30PM (right before
class)
• Each quiz will allow up to 5 attempts
• Resubmission attempts will only include wrong answers
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 10 / 90

Homework
• There will be 5 homework assignments
• Homework will be a combination of theory and practice
• There is some Java coding in this class
• Assignments are generally due alternate Tuesdays at 5:30PM (right before class)
• Late homework will not be accepted without strong justification
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 11 / 90

Research Presentation
• Each student will submit a research presentation on some aspect of SOA.
• Topics need to be approved by the instructor by week 3 (April 13).
• Research presentations are to be submitted as 20-30 minute long
YouTube videos by week 10 (June 1)
• More details are available on D2L.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 12 / 90

Exams
• There is no midterm
• There will be an open book final exam. It will be available on D2L as
a quiz during final exam week (June 5 – June 11).
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 13 / 90

Grades
Quizzes
Quiz 1 4% Quiz 2 4% Quiz 3 4% Quiz 4 4% Quiz 5 4%
Homework 40% HW1 5% HW2 5% HW3 10% HW4 10% HW5 10%
Research Presentation 20% Final Exam 20%
Total 100%
20%
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 14 / 90

Course Outline
Unit 1: Overview and Principles Introduction to SOA
Design Principles
Unit 2: Implementation Approaches SOAP
REST
gRPC
Unit 3: SOA Patterns Unit 4: SOA in Practice
Deployment Governance Monitoring Planning Security Testing
Final Exam
Total
2 weeks 2 weeks
2 weeks 4 weeks
1 week
11 weeks
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 15 / 90

Important Due Dates
Assignment
Student Introductions
Quiz 1
Homework 1
Research Presentation Topic Approval Quiz 2
Homework 2
Quiz 3
Homework 3
Quiz 4
Homework 4
Quiz 5
Research Presentation Homework 5
Final Exam
Due Date
April 6 April 6 April 13 April 13 April 20 April 27 May 4 May 11 May 18 May 25 June 1 June 1 June 8 June 11
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 16 / 90

Related Courses
• SE456 – Architecture of Real-Time Systems (typically offered Winter quarter)
• SE480 – Software Architecture I (typically offered Fall quarter)
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 17 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 18 / 90

About Me
• Over 21 years of software engineering experience in varied roles
• Current role: Principal Engineer at Relativity responsible for the data services behind RelativityOne
• Previous roles:
• Chief Data Officer at Fi360
• 14 years at Morningstar, ending as Distinguished Engineer • Research Programmer at NCSA
• Software Development Engineer at Microsoft
• Education: M.S. Computational Finance from DePaul, B.S. Computer Engineering from UIUC
• CFA Charterholder
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 19 / 90

About You
• One-by-one, introduce yourself over Zoom and why you decided to take this course
• Please turn on your camera during the introduction if you have one
• Asynchronous students: Please post an introduction on the Introduce
Yourself Here topic in D2L (due April 6 5:30PM)
• This is also how I take DePaul-required attendance
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 20 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 21 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 22 / 90

Architecture is…
The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 23 / 90

Design Reflects Architecture
Architecture can be thought of as the earliest set of design decisions. These decisions can:
• Constrain implementation.
• Dictate organizational structure.
• Inhibit or enable systemic qualities.
• Facilitate reasoning about and managing change.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 24 / 90

An Architecture Must Answer These Questions
• What requirements are the structuring and decisions based on?
• Which are the major logical and physical system building blocks?
• How are the system building blocks related to one another?
• What responsibilities do the system building blocks have?
• What interfaces exist to the system building blocks?
• How are the system building blocks grouped or layered?
• What are the specifications and criteria used to divide the system into building blocks?
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 25 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
• Dictates the structure of an organization, or vice versa (Conway’s Law) and helps allocate work
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
• Dictates the structure of an organization, or vice versa (Conway’s Law) and helps allocate work
• Enables evolutionary prototyping
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
• Dictates the structure of an organization, or vice versa (Conway’s Law) and helps allocate work
• Enables evolutionary prototyping
• Allows architects and project managers to reason about cost and
schedule
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
• Dictates the structure of an organization, or vice versa (Conway’s Law) and helps allocate work
• Enables evolutionary prototyping
• Allows architects and project managers to reason about cost and
schedule
• Allows incorporation of independently developed components
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Why Architecture Matters
• An architecture will inhibit or enable a system’s driving quality attributes
• Performance, modifiability, security, scalability, reusability, etc.
• Allows you to reason about and manage change as the system evolves
• Local, nonlocal, architectural changes
• Defines a set of constraints on subsequent implementation
• Performance budgets, restricting design alternatives to focus on implementation
• Dictates the structure of an organization, or vice versa (Conway’s Law) and helps allocate work
• Enables evolutionary prototyping
• Allows architects and project managers to reason about cost and
schedule
• Allows incorporation of independently developed components
• Foundation for training of new team members
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 26 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 27 / 90

SOA is…
• A style of software design where services are provided to the other components by application components, typically through a communication protocol over a network.
• It integrates distributed, separately maintained and deployed software components (services).
• Arguably the most common architectural form practiced today
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 28 / 90

A service is…
• A discrete unit of functionality that can be accessed remotely and acted upon and updated independently, or…
• A collection of self-contained business functionality that exist as applications with their own design characteristics that support the strategic goals of the organization.
• A service has four properties according to one of many definitions of SOA:
1 It logically represents a business activity with a specified outcome.
2 It is self-contained.
3 It is a black box for its consumers, meaning the consumer does not
have to be aware of the service’s inner workings.
4 It may consist of other underlying services.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 29 / 90

What is a web service?
• In the general form, a web service is a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web (HTTP/HTTPS)
• The phrase “web service” is often closely identified with a particular technology suite, namely WSDL and SOAP, which have mostly fallen out of favor
• In this course, when I use the term “web service”, I almost always mean the more general usage of the term
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 30 / 90

What is a microservice?
• Microservices are small, autonomous services that work together.
• Microservice architecture is a variant of the service-oriented architecture (SOA) structural style where services are fine-grained and the protocols are lightweight.
• Some people believe “SOA” solely refers to out-of-favor SOAP and WSDL-based web services, and consider microservices a radical alternative. I, however, consider microservices merely a way in which one may practice SOA.
• We will discuss microservices more later in this course.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 31 / 90

Classifying services
A simple, and occasionally useful, way of classifying services is into three types:
1 An entity service is a service whose functional boundary is related to one or more business entities.
2 A task service is a service whose functional boundary is related to one or more business processes.
3 A utility services is a service whose functional boundary is non-business-centric.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 32 / 90

How does SOA differ from other architectural styles?
• Service-oriented architecture was largely created as a response to traditional, monolithic approaches to building applications. SOA breaks up the components required for applications into separate service modules that communicate with one another to meet specific business objectives.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 33 / 90

Another example SOA
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 34 / 90

SOA Principles
• Abstraction: The services act as black boxes, that is their inner logic is hidden from the consumers.
• Autonomy: Services are independent and control the functionality they encapsulate, from a Design-time and a run-time perspective.
• Composability: Services can be used to compose other services.
• Discoverability: Services are supplemented with communicative meta data by
which they can be effectively discovered and interpreted.
• Longevity: Services should be designed to be long lived. Where possible services should avoid forcing consumers to change if they do not require new features, if you call a service today you should be able to call the same service tomorrow.
• Reusability: Logic is divided into various services, to promote reuse of code.
• Standardized service contracts: Services adhere to a standard communications agreement, as defined collectively by one or more service-description documents within a given set of services.
• Statelessness: Services are stateless, that is either return the requested value or give an exception hence minimizing resource use.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 35 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 36 / 90

The goals of SOA include…
• Help businesses respond more quickly and more cost-effectively to changing market conditions
• Promotes the decoupling of services from consuming projects to encourage good design
• Simplify testing by limiting the scope which needs to be tested on a change
• Increase intrinsic operability by allowing nearly any programming language or platform to act as a service client
• Increase federation by allowing services to maintain autonomy and self-governance
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 37 / 90

SOC is challenging
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 38 / 90

Service orientation is complex…
• NFRs may become more complex and difficult to maintain due to reuse.
• Services must be designed to scale and cluster.
• The approach to service contract versioning and the support of different contracts must be defined.
• This is a topic addressed as part of governance.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 39 / 90

Standards are essential…
• Standards help provide consistency to architecture and design decisions.
• Introducing standards into siloed environments can be challenging.
• A champion is critical for the widespread adoption of standards.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 40 / 90

Service delivery speed is typically sacrificed…
• The speed of service delivery is often sacrificed to improve the speed of solution delivery.
• It takes more effort to identify, design, and build services than it does to implement equivalent non-service-oriented logic.
• This can be a hard sell.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 41 / 90

Strong governance is critical…
• We must identify who “owns” particular services.
• May require alterations to the overall organizational, departmental, and team structures to facilitate the new delivery model.
• Having a senior sponsor at the appropriate level is critical to success.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 42 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 43 / 90

Service-orientation has some myths
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 44 / 90

SOA is evolutionary…
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 45 / 90

…not revolutionary
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 46 / 90

Enterprise-wide standardization is required
• Service-orientation derives its biggest benefit when standardization occurs at the greatest scale possible.
• It’s only required at a meaningful extent for value to be derived.
• Standardization helps avoid problems and ensures the greatest benefit.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 47 / 90

Reuse is a requirement
• While reuse is a significant benefit of service-oriented computing, it isn’t the only one.
• Of equal, possibly even greater, importance is the interoperability achieved by allowing systems to interoperate in a standard way.
• Interoperability alone can result in a significant ROI.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 48 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 49 / 90

Class Exercise
• Amazon’s retail website is built using SOA.
• What do you think are some of the services behind the website?
• How do you think these services might interact?
• What might be some unique challenges they face?
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 50 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 51 / 90

What’s a service inventory?
• An independently standardized and governed collection of complementary services within the boundary of an enterprise or meaningful segment of an enterprise.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 52 / 90

Inventory analysis builds a blueprint for the service inventory
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 53 / 90

Service-oriented analysis identifies the services to be added to the inventory
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 54 / 90

Service modeling is where the real work happens
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 55 / 90

Design the service contracts and implementations
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 56 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 57 / 90

Principle
Short Version
• Services share standardized contracts.
Long Version
• Services within the same service inventory are in compliance with the same contract design standards.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 58 / 90

What’s a service contract?
• A service contract defines the terms of engagement, describing technical service descriptions and constraints.
• This is what any consumer needs to know about the service and its properties.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 59 / 90

Emphasis is on technical contracts…
• Service contracts always require at least one technical service description, but may also include other non-technical elements such as service level agreements (SLAs).
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 60 / 90

There are non-technical contracts
• Service level agreements are the classic example. They address things like:
• Availability schedule
• Response times guarantees • Charge-back costs
• This kind of information can be captured in a service profile.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 61 / 90

Contracts have evolved…
Client-Server Model
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 62 / 90
Distributed Model

…to where we now have web services
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 63 / 90
• The emphasis here is going to be on the representation of the contract itself.

Standardization has benefits
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 64 / 90

So what needs to be standardized?
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 65 / 90

Service Capability Expression
• Makes services easier to understand and to design.
• Can help reduce the chances that redundant services will be constructed through ignorance or misunderstanding.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 66 / 90

Service Data Representation
• Many services, even those spanning teams, may work with identical data.
• This means that to be most effective, the teams need to have a similar view of the service data.
• This often requires hand-crafted representations rather than automatically generating them from code.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 67 / 90

Service Policies
• Policies about the service can be declared separately from the service itself.
• Some of these policies are defined by other standards.
• Policies can be customized on a per-service basis while allowing for common aspects to be centralized.
• The integration of policy with contract can also be standardized.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 68 / 90

Data representation and transformation avoidance
• Contracts may not be standardized because:
• Auto-generation.
• 3rd party providers.
• Existing standards were
lacking.
• Existing standards were
ignored.
• Data transformation results in:
• Increased development effort. • Increased runtime overhead. • Increased complexity.
• Increased governance.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 69 / 90

Standardized service contracts can…
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 70 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 71 / 90

Principle
Short Version
• Services are loosely coupled.
Long Version
• Service contracts impose low consumer coupling requirements and are themselves decoupled from their surrounding environment.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 72 / 90

What’s service coupling?
• Coupling is concerned with dependencies. Services with a high degree of coupling are more dependent on other, external resources, which can make them harder to change.
• High degrees of coupling can also force change when it isn’t wanted. For example, when an external resource changes.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 73 / 90

Coupling requires a careful balance
• Services need to be accessible to any consumer that wishes to use it, but…
• That same service must remain insulated so that the consumer knows only what they absolutely must know.
• This balance allows a service to evolve without breaking the consumers each time something changes.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 74 / 90

Emphasis is on the contract’s design
Steven Engelhardt (DePaul University)
SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 75 / 90
• In this case it isn’t how the contract is represented, but what the contract represents.
• Avoid exposing too much information about either the service logic or the runtime environment.

What kinds of coupling are possible?
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 76 / 90

Service coupling is concerned with service design
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 77 / 90

Logic-to-Contract coupling
• Logic-to-contract coupling reflects a “contract first” design approach.
• This is the preferred approach to designing service contracts since it helps ensure as much standardization as possible.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 78 / 90

Contract-to-Logic coupling
• Contract-to-logic coupling reflects an “implementation first” design approach.
• This typically happens when contracts are derived from or wrap an existing implementation.
• This is an SOA anti-pattern. It reflects the trade-off between rapid service implementation and slower solution implementation.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 79 / 90

Contract-to-Technology coupling
• Contract-to-technology coupling typically happens when there are proprietary communication transports involved.
• Examples include .NET remoting or Java RMI.
• These technologies may necessitate contracts changes to support the transport protocol.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 80 / 90

Contract-to-Implementation coupling
• Contract-to-implementation coupling typically happens when contracts are derived from implementations.
• For example, generating a contract from a database schema will often embed data model details into the contract.
• Minimizing this form of coupling improves autonomy.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 81 / 90

Contract-to-Functional coupling
• Contract-to-functional coupling
occurs when service logic is
designed to support functionality Examples include: that exists outside of the service.
• This isn’t always bad. For example, task services are intended to represent business processes and thus control the entire process.
• Parent Processes
• External Consumers
• Point-to-point integrations
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 82 / 90

Consumer coupling is concerned with service access
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 83 / 90

Consumer-to-Implementation coupling
• Consumer-to-implementation coupling occurs when a consumer does not use the service’s contract in favor of some other mechanism.
• This is an SOA anti-pattern. It reflects perceived trade-offs between using the contract with increased performance or simplicity.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 84 / 90

Consumer-to-Contract coupling
• Consumer-to-contract coupling occurs when a consumer uses only the published contract to access the service.
• This is the preferred approach to accessing services since it maintains the greatest autonomy of both.
• Multiple contracts can be provided if needed.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 85 / 90

Contract Centralization
• Contract centralization is an SOA design pattern that limits the choice of how to access a service to exactly one option: the contract.
• Remember that whatever coupling is exposed through the contract will apply to the consumer.
• Good contract design is critical in reducing coupling.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 86 / 90

Loose service coupling can…
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 87 / 90

Table of Contents
1 Course Introduction
2 Personal Introductions
3 Introduction to Service-Oriented Architecture What is Software Architecture?
What is Service-Oriented Architecture? Goals and Challenges of SOA
Myths of SOA
4 Class Exercise
5 Service-Oriented Analysis and Design
6 Service Contracts
7 Service Coupling
8 Wrap-Up
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 88 / 90

Assignments
• Quiz 1 is available on D2L. It is due Tuesday, April 6 at 5:30 PM.
• Homework 1 is available on D2L. It is due Tuesday, April 13 at 5:30
PM.
• Research presentation topic proposals are available on D2L. They are due Tuesday, April 13 at 5:30PM.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 89 / 90

Next Steps
• Read chapters 1-7 in the text.
Steven Engelhardt (DePaul University) SE457 Week 1 – Introduction and Overview Part 1 Spring 2021 90 / 90