What is Service Oriented Architecture
(SOA)?
SOA is an architecture pattern for developing distributed systems
where the system functionality is developed, deployed and utilised as
stand-alone software services.
Service
Three building blocks of SOA Publishe
- Service Provider r
- Service Requester Subscribe Publish
Softwa
- Service Publisher re
Service
Typical Examples s
- Weather Reporting Service Service Service
- Currency Conversion Service Requeste Provider
- Language Translation Service r
Bind
- Video Streaming Service
Service Oriented Architecture (SOA)
Service consumer expresses “intent”
Service providers define “offers”
Service
Publishe
Sometimes a mediator will: r
▪ Find the best offer matching an intent Softwa Publish
re
Service
s
Service Service
Requeste Provider
r
Bind
SOA – alternative terminologies
Rental Agency Service
registry
Apartment(size, lookup publish
immediate, cheap) Property
Details Service Service
requestor bind provider
Tenant Property Owner
Rental Agreement
Software Services
A Software Service can be defined as:
a loosely-coupled, reusable software component that encapsulates
functionality which may be distributed and programmatically
accessed.
a set of related software functionalities that can be reused for
different purposes, together with the policies that should control its usage.
A Web Service can be defined as:
as a service that is published and accessed using standard Internet and XML-based
protocols.
Mainframe Client World
Server SOA
Wide Web
Key Aspects of Software Services
Services can be discovered
Services can be composed to form larger services
Services adhere to a service contract
Services are loosely coupled
Services are stateless
Services hide their logic
Services are reusable
Services use open standards
Services facilitate interoperability
Object vs Service (Object-Orientation vs Service
Orientation)
Service User Login User Registration
Provider Interface
- ID uses
UserLogin - isRegistered
- Name
- getID()
- RegStatus()
- getName()
- LoginStatus()
Requester Interface
Object Classes
Service-Orientation in Real World
Our society has become what it is today through the
forces of
Specialisation
Standardisation
Scalability
It is now almost exclusively “service” oriented
Transportation
Telecommunication
Retail
Healthcare
Financial services
Service-Orientation: the Restaurant
Analogy
▪Restaurant provides food: a service
▪After the order is taken, food is produced, served, …: service
may consist of other services
▪The menu indicates the service provided: a service description
▪The order is written down, or yelled at, the cook: services
communicate through messages
SOA based on Web Services
SOA is a means of developing distributed systems where the
components are stand-alone services.
Services may execute on different computers from different
service providers.
Web Server
Document for Translation Translation Services
Service-Oriented Software service Engineering
Process
Service Service
candidate Service design implementation
identification and deployment
Service Service interface Validated and
requirements specification deployed service
Models in Software Engineering
▪ Model-driven engineering (MDE) is a software engineering methodology
which focuses on creating and exploiting domain models, which are
conceptual models of all the topics related to a specific problem.
[Wikipedia]
▪ Model Driven Engineering, MDE for short, aims to raise the level of
abstraction in program specification and increase automation in
program development.
What Exactly is a Model?
A model is an abstract representation of a product,
service or system that allows us to investigate, verify
and document its properties before production
Model-driven Engineering vs Model-driven Development
▪ Engineering vs Development?
Requirement Implementat
Design Evaluation
s ion
Models
▪ Model Driven Development aims to exploits the models to implement a
software system
▪ Model Driven Engineering aims to exploits the models to represents the
system requirements and design for system implementation and its
evaluation
Types of Models
Abstraction
Implementation
Tools and Technologies for MDSD
Eclipse Modeling Framework (EMF) is an
Eclipse-based modeling framework and code
generation facility for building tools and other
applications based on a structured data model.