SlideShare une entreprise Scribd logo
1  sur  47
Software Architecture 
School of Computer Science University of Oviedo 
University of Oviedo 
Software Architecture 
Parte II. Architecture taxonomies 
Lesson 9: Integration patterns 
2014 Jose Emilio Labra Gayo
Software Architecture 
School of Computer Science University of Oviedo 
Integration 
Application Integration = 
Biggest challenge in Computer Science
Software Architecture 
School of Computer Science University of Oviedo 
Integration 
Integration styles 
File transfer 
Shared database 
Remote procedure call 
Messaging 
Topologies 
Hub & Spoke, Bus 
Service Oriented Architectures 
WS-*, REST
Software Architecture 
School of Computer Science University of Oviedo 
File transfer 
Shared database 
Remote procedure call 
Messaging
Software Architecture 
School of Computer Science University of Oviedo 
File transfer 
An application generates a data file that is 
consumed by another 
One of the most common solutions 
Advantages 
Independence between A and B 
Low coupling 
Easier debugging 
By checking intermediate files 
Application 
A 
exports 
File 
imports 
Application 
B
Software Architecture 
School of Computer Science University of Oviedo 
File transfer 
Challenges 
Both applications must agree a 
common file format 
It can increase coupling 
Coordination 
Once the file has been sent, the receiver 
could modify it  2 files! 
It may require manual adjustments 
Application 
A 
exports 
File 
imports 
Application 
B
Software Architecture 
School of Computer Science University of Oviedo 
Shared database 
Applications store their data in a shared database 
Advantage 
Data are always available 
Everyone has access to the same information 
Consistency 
Familiar format 
SQL for everything 
Application 
C 
Data 
Base 
Application 
A 
Application 
B
Software Architecture 
School of Computer Science University of Oviedo 
Shared database 
Challenges 
Database schema can evolve 
It requires an common schema for all applications 
That can cause problems/conflicts 
External packages are needed (common database) 
Performance and scalability 
Database as a bottleneck 
Synchronization 
Distributed databases can be problematic 
Scalability 
NoSQL ?
Software Architecture 
School of Computer Science University of Oviedo 
Shared database 
Variants 
Data warehousing: Database used for data analysis 
and reports 
ETL: process based on 3 stages 
Extraction: Get data from heterogeneous sources 
Transform: Process data 
Load: Store data in a shared database
Software Architecture 
School of Computer Science University of Oviedo 
Remote procedure call 
An application calls a function from another 
application that could be in another machine 
Invocation can pass parameters 
Obtains an answer 
Lots of applications 
RPC, RMI, CORBA, .Net Remoting, ... 
Web services, ... 
Application 
A 
Stub 
call 
procedure 
Skeleton 
Application 
answer B
Software Architecture 
School of Computer Science University of Oviedo 
Remote procedure call 
Advantages 
Encapsulation of implementation 
Multiple interfaces for the same information 
Different representations can be offered 
Model familiar for developers 
It is similar to invoke a method 
Application 
A 
Stub 
call 
procedure 
Skeleton 
Application 
answer B
Software Architecture 
School of Computer Science University of Oviedo 
Remote procedure call 
Challenges 
False sense of simplicity 
Remote procedure  procedure 
8 fallacies of distributed computing 
Synchronous procedure calls 
Increase application coupling 
The network is reliable 
Latency is zero 
Bandwidth is infinite 
The network is secure 
Topology doesn't change 
There is one administrator 
Transport cost is zero 
The network is homogeneous 
8 fallacies of distributed computing 
Application 
A 
Stub 
call 
procedure 
Skeleton 
Application 
answer B 
http://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Software Architecture 
School of Computer Science University of Oviedo 
Messaging 
Multiple independent applications communicate 
sending messages through a channel 
Asynchronous communication 
Applications send messages a continue their 
execution 
Application 
C 
Application 
A 
Application 
B 
Message channel
Software Architecture 
School of Computer Science University of Oviedo 
Messaging 
Advantages 
Low coupling 
Applications are independent between each other 
Asynchronous communication 
Applications continue their execution 
Implementation encapsulation 
The only thing exposed is the type of messages 
Application 
C 
Application 
A 
Application 
B 
Message channel
Software Architecture 
School of Computer Science University of Oviedo 
Messaging 
Challenges 
Implementation complexity 
Asynchronous communication 
Data transfer 
Adapt message formats 
Different topologies 
Application 
C 
Application 
A 
Application 
B 
Message channel
Software Architecture 
School of Computer Science University of Oviedo 
Hub & Spoke 
Bus
Software Architecture 
School of Computer Science University of Oviedo 
Hub & Spoke 
Related with Broker pattern 
Hub = Centralized message Broker 
It is in charge of integration 
Application 1 Application 2 
Hub or Broker 
Central integration 
engine 
Application 3 Application 4
Software Architecture 
School of Computer Science University of Oviedo 
Bus 
Each application contains its own integration 
machine 
Publish/Subscribe style 
Message Bus 
Application 1 
Application 2 
Adapter and 
Integration engine 
Adapter and 
Integration engine 
Adapter and 
Integration engine 
Adapter and 
Integration engine 
Application 3 Application 4
Software Architecture 
School of Computer Science University of Oviedo 
Bus 
ESB - Enterprise Service Bus 
Defines the messaging backbone 
Some tasks 
Protocol conversion 
Data transformation 
Routing 
Offers an API to develop services 
MOM (Message Oriented Middleware)
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
WS-* 
REST
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
SOA = Service Oriented Architecture 
Services are defined by an interface 
Internet 
Service 2 
Interface 
Interface 
Service 3 
Service 1 
Interface
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
Elements 
Provider: Provides service 
Consumer: Does requests to the service 
Messages: Exchanged information 
Contract: Description of the functionality provided 
by the service 
Endpoint: Service location 
Policy: Service level agreements 
Security, performance, etc.
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
Constraints 
Service 
Consumer 
Service 
Policy 
Endpoint 
Contracts 
Messages 
Adheres to 
Binds to 
Understands 
Sends/receives 
Governed by 
Exposes 
Implements 
Sends /receives 
Fuente: SOA Patterns, A. Rottem Gal Oz 
Serves 
Describes
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
Challenges 
Independent of language and platform 
Interoperability 
Use of standards 
Low coupling 
Decentralized 
Reusability 
Scalability 
one-to-many vs one-to-one 
Partial solution for legacy systems 
Adding a web services layer
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
Challenges 
Performance 
E.g. real time systems 
Overkill in very homogeneous environments 
Security 
Risk of public exhibition of API to external parties 
DoS attacks 
Service composition and coordination
Software Architecture 
School of Computer Science University of Oviedo 
SOA 
Variants: 
WS-* 
REST
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
WS-* model = Set of specifications 
SOAP, WSDL, UDDI, etc.... 
Proposed by W3c, OASIS, WS-I, etc. 
Goal: Reference SOA implementation
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Web Services Architecture 
Processes 
Discovery, Aggregation, Choreography 
Descriptions 
Web Services Description Language (WSDL 
Messages 
SOAP extensions 
Reliability, Correlation, Transactions 
SOAP 
Base technologies: XML, DTD, Schema 
Base technologies: XML, DTD, Schema 
Communications 
HTTP, SMTP, FTP, JMS, IIOP, ... 
S 
E 
C 
U 
R 
I 
T 
Y 
M 
A 
N 
A 
G 
E 
M 
E 
N 
T
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
UDDI 
HTTP 
SOAP request (XML) 
SOAP answer (XML) 
Web Service 
Implementation 
Web Service 
Consumer
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
SOAP 
SOAP 
SOAP 
SOAP 
Internet 
Currency 
converter 
Billing 
Users 
Management 
SOAP 
XML 
User 
Application 
Web Services ecosystems
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
SOAP 
Defines messages format and bindings with several 
protocols 
Initially Simple Object Access Protocol 
Evolution 
Developed from XML-RPC 
SOAP 1.0 (1999), 1.1 (2000), 1.2 (2007) 
Initial development by Microsoft 
Posterior adoption by IBM, Sun, etc. 
Good Industrial adoption
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Message format in SOAP 
Envelope 
Header 
Body 
Header Key 
Header Key
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Example of SOAP over HTTP 
POST /Suma/Service1.asmx HTTP/1.1 
Host: localhost 
Content-Type: text/xml; charset=utf-8 
Content-Length: longitod del mensaje 
SOAPAction: "http://tempuri.org/suma" 
<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body> 
<sum xmlns="http://tempuri.org/"> 
<a>3</a> 
<b>2</b> 
</sum> 
</soap:Body> 
</soap:Envelope> 
POST ?
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Advantages 
Specifications developed by community 
W3c, OASIS, etc. 
Industrial adoption 
Implementations 
Integral view of web services 
Numerous extensions 
Security, orchestration, choreography, etc.
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Challenges 
Not all specifications are mature 
Over-specification 
Lack of implementations 
RPC style abuse 
Uniform interface 
Sometimes, bad use of HTTP architecture 
Overload of GET/POST methods
Software Architecture 
School of Computer Science University of Oviedo 
WS-* 
Applications 
Lots of applications have been using SOAP 
Example: eBay (50mill. SOAP transactions/day) 
Other examples: thetrainline.com, Hyatt, Microsoft 
live, etc. 
Some popular web services ceased to offer SOAP 
support 
Examples: Amazon, Google, etc.
Software Architecture 
School of Computer Science University of Oviedo 
REST 
REST = REpresentational State Transfer 
Architectural style 
Source: Roy T Fielding PhD dissertation (2000) 
Inspired by Web architecture (HTTP/1.1)
Software Architecture 
School of Computer Science University of Oviedo 
REST 
REST - Representational State Transfer 
Diagram 
Internet 
HTTP 
Resource 1 
GET, PUT, 
POST, DELETE 
GET, PUT, 
POST, DELETE 
Resource 2 
Application
Software Architecture 
School of Computer Science University of Oviedo 
REST 
Set of constraints 
Resources with uniform interface 
Identified by URIs 
Fixed set of actions: GET, PUT, POST, DELETE 
Resource representations are returned 
Stateless 
REST = Architectural style 
Some levels of adoption: 
RESTful 
REST-RPC hybrid
Software Architecture 
School of Computer Science University of Oviedo 
REST as a composed style 
Layers 
Client-Server 
Stateless 
Cached 
Replicated server 
Uniform interface 
Resource identifiers (URIs) 
Auto-descriptive messages (MIME types) 
Links to other resources (HATEOAS) 
Code on demand (optional)
Software Architecture 
School of Computer Science University of Oviedo 
REST uniform interface 
Fixed set of operations 
GET, PUT, POST, DELETE 
Method In databases Function Safe? Idempotent? 
PUT Create/Update Create/update No Yes 
POST Update Create/ 
Update children 
No No 
GET Retrieve Query resource info Yes Yes 
DELETE Delete Delete resource No Yes 
Safe = Does not modify server data 
Idempotent = The effect of executing N-times is the same as executing it once
Software Architecture 
School of Computer Science University of Oviedo 
REST 
Stateless client/server protocol 
State handled by client 
HATEOAS (Hypermedia As The Engine of Application State) 
Representations return URIs to available options 
Chaining of resource requests 
Example: Student management 
1.- Get list of students 
GET http://example.org/student 
Returns list of students with each student URI 
2.- Get information about an specific student 
GET http://example.org/student/id2324 
3.- Update information of an specific student 
PUT http://example.org/student/id2324
Software Architecture 
School of Computer Science University of Oviedo 
REST 
Advantages 
Client/Server 
Separation of concerns 
Low coupling 
Uniform interface 
Facilitates comprehension 
Independent development 
Scalability 
Improves answer times 
Less network load (cached) 
Less bandwidth
Software Architecture 
School of Computer Science University of Oviedo 
REST 
Challenges 
REST partially adopted 
Just using JSON or XML 
Web services without contract or description 
RPC style REST 
Difficult to incorporate other requirements 
Security, transaction, composition, etc.
Software Architecture 
School of Computer Science University of Oviedo 
REST as a composed style 
Layers 
Client 
Server 
Stateless 
Replicated 
REST 
Uniform 
Interface 
Cache Code on 
demand 
(optional)
Software Architecture 
School of Computer Science University of Oviedo

Contenu connexe

Tendances

GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
Mohamed Tawfik
 
Upcoming Challenges in E-Learning & Online Learning Environments
Upcoming Challenges in E-Learning & Online Learning EnvironmentsUpcoming Challenges in E-Learning & Online Learning Environments
Upcoming Challenges in E-Learning & Online Learning Environments
Mohamed Tawfik
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Dan Mohl
 

Tendances (20)

Oose unit 5 ppt
Oose unit 5 pptOose unit 5 ppt
Oose unit 5 ppt
 
Arch java
Arch javaArch java
Arch java
 
L03 Software Design
L03 Software DesignL03 Software Design
L03 Software Design
 
GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
GOLC 2012 - On Standardizing the Management of LabVIEW-based Remote Laborator...
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
Oose unit 3 ppt
Oose unit 3 pptOose unit 3 ppt
Oose unit 3 ppt
 
Learning uml 2_part_1
Learning uml 2_part_1Learning uml 2_part_1
Learning uml 2_part_1
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
Upcoming Challenges in E-Learning & Online Learning Environments
Upcoming Challenges in E-Learning & Online Learning EnvironmentsUpcoming Challenges in E-Learning & Online Learning Environments
Upcoming Challenges in E-Learning & Online Learning Environments
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Software Engineering 101
Software Engineering 101Software Engineering 101
Software Engineering 101
 
Onine exam 1
Onine exam 1Onine exam 1
Onine exam 1
 
26 standards
26 standards26 standards
26 standards
 
6
66
6
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 

En vedette

Resource Oriented Architectures
Resource Oriented ArchitecturesResource Oriented Architectures
Resource Oriented Architectures
Gabriele Lana
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
Majong DevJfu
 

En vedette (18)

An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...
 
Resource Oriented Architectures
Resource Oriented ArchitecturesResource Oriented Architectures
Resource Oriented Architectures
 
Software architecture also needs agile
Software architecture also needs agileSoftware architecture also needs agile
Software architecture also needs agile
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
Shared information systems
Shared information systemsShared information systems
Shared information systems
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
Open API 발표자료 - 김연수
Open API 발표자료 - 김연수Open API 발표자료 - 김연수
Open API 발표자료 - 김연수
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
SOAP 기반/ RESTful기반 웹서비스 비교
SOAP 기반/ RESTful기반 웹서비스 비교SOAP 기반/ RESTful기반 웹서비스 비교
SOAP 기반/ RESTful기반 웹서비스 비교
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
SOAP REST 이해
SOAP REST 이해SOAP REST 이해
SOAP REST 이해
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 

Similaire à Software Architecture taxonomies - Integration patterns

JDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented DesignJDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented Design
Hossam Karim
 
Web Service Architecture for e-Learning
Web Service Architecture for e-LearningWeb Service Architecture for e-Learning
Web Service Architecture for e-Learning
Videoguy
 
Internetworking
InternetworkingInternetworking
Internetworking
Raghu nath
 
Net framework
Net frameworkNet framework
Net framework
sumit1503
 
Interoperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) OverviewInteroperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) Overview
Jorgen Thelin
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
David Freitas
 

Similaire à Software Architecture taxonomies - Integration patterns (20)

Itmg360 chapter one_v05
Itmg360 chapter one_v05Itmg360 chapter one_v05
Itmg360 chapter one_v05
 
MUSIC.pptx
MUSIC.pptxMUSIC.pptx
MUSIC.pptx
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
 
Ncsweek2 osi model
Ncsweek2 osi modelNcsweek2 osi model
Ncsweek2 osi model
 
JDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented DesignJDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented Design
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access Protocol
 
API Façade Pattern
API Façade PatternAPI Façade Pattern
API Façade Pattern
 
Web Service Architecture for e-Learning
Web Service Architecture for e-LearningWeb Service Architecture for e-Learning
Web Service Architecture for e-Learning
 
Internetworking
InternetworkingInternetworking
Internetworking
 
Middleware Technologies ppt
Middleware Technologies pptMiddleware Technologies ppt
Middleware Technologies ppt
 
OSI Model of Networking
OSI Model of NetworkingOSI Model of Networking
OSI Model of Networking
 
Net framework
Net frameworkNet framework
Net framework
 
Ccna notes
Ccna notesCcna notes
Ccna notes
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)
 
20CS2008 Computer Networks
20CS2008 Computer Networks 20CS2008 Computer Networks
20CS2008 Computer Networks
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.ppt
 
Interoperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) OverviewInteroperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) Overview
 
Azure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev PartnersAzure Serrvices Platform Pro Dev Partners
Azure Serrvices Platform Pro Dev Partners
 
OSI Model VS TCP/IP Model|| Difference Between them
OSI Model VS TCP/IP Model|| Difference Between themOSI Model VS TCP/IP Model|| Difference Between them
OSI Model VS TCP/IP Model|| Difference Between them
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
 

Plus de Jose Emilio Labra Gayo

Plus de Jose Emilio Labra Gayo (20)

Publicaciones de investigación
Publicaciones de investigaciónPublicaciones de investigación
Publicaciones de investigación
 
Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctorado
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapes
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data quality
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
Wikidata
WikidataWikidata
Wikidata
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologies
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
RDF Data Model
RDF Data ModelRDF Data Model
RDF Data Model
 
2017 Tendencias en informática
2017 Tendencias en informática2017 Tendencias en informática
2017 Tendencias en informática
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazados
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
XPath
XPathXPath
XPath
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 

Dernier

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 

Software Architecture taxonomies - Integration patterns

  • 1. Software Architecture School of Computer Science University of Oviedo University of Oviedo Software Architecture Parte II. Architecture taxonomies Lesson 9: Integration patterns 2014 Jose Emilio Labra Gayo
  • 2. Software Architecture School of Computer Science University of Oviedo Integration Application Integration = Biggest challenge in Computer Science
  • 3. Software Architecture School of Computer Science University of Oviedo Integration Integration styles File transfer Shared database Remote procedure call Messaging Topologies Hub & Spoke, Bus Service Oriented Architectures WS-*, REST
  • 4. Software Architecture School of Computer Science University of Oviedo File transfer Shared database Remote procedure call Messaging
  • 5. Software Architecture School of Computer Science University of Oviedo File transfer An application generates a data file that is consumed by another One of the most common solutions Advantages Independence between A and B Low coupling Easier debugging By checking intermediate files Application A exports File imports Application B
  • 6. Software Architecture School of Computer Science University of Oviedo File transfer Challenges Both applications must agree a common file format It can increase coupling Coordination Once the file has been sent, the receiver could modify it  2 files! It may require manual adjustments Application A exports File imports Application B
  • 7. Software Architecture School of Computer Science University of Oviedo Shared database Applications store their data in a shared database Advantage Data are always available Everyone has access to the same information Consistency Familiar format SQL for everything Application C Data Base Application A Application B
  • 8. Software Architecture School of Computer Science University of Oviedo Shared database Challenges Database schema can evolve It requires an common schema for all applications That can cause problems/conflicts External packages are needed (common database) Performance and scalability Database as a bottleneck Synchronization Distributed databases can be problematic Scalability NoSQL ?
  • 9. Software Architecture School of Computer Science University of Oviedo Shared database Variants Data warehousing: Database used for data analysis and reports ETL: process based on 3 stages Extraction: Get data from heterogeneous sources Transform: Process data Load: Store data in a shared database
  • 10. Software Architecture School of Computer Science University of Oviedo Remote procedure call An application calls a function from another application that could be in another machine Invocation can pass parameters Obtains an answer Lots of applications RPC, RMI, CORBA, .Net Remoting, ... Web services, ... Application A Stub call procedure Skeleton Application answer B
  • 11. Software Architecture School of Computer Science University of Oviedo Remote procedure call Advantages Encapsulation of implementation Multiple interfaces for the same information Different representations can be offered Model familiar for developers It is similar to invoke a method Application A Stub call procedure Skeleton Application answer B
  • 12. Software Architecture School of Computer Science University of Oviedo Remote procedure call Challenges False sense of simplicity Remote procedure  procedure 8 fallacies of distributed computing Synchronous procedure calls Increase application coupling The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn't change There is one administrator Transport cost is zero The network is homogeneous 8 fallacies of distributed computing Application A Stub call procedure Skeleton Application answer B http://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  • 13. Software Architecture School of Computer Science University of Oviedo Messaging Multiple independent applications communicate sending messages through a channel Asynchronous communication Applications send messages a continue their execution Application C Application A Application B Message channel
  • 14. Software Architecture School of Computer Science University of Oviedo Messaging Advantages Low coupling Applications are independent between each other Asynchronous communication Applications continue their execution Implementation encapsulation The only thing exposed is the type of messages Application C Application A Application B Message channel
  • 15. Software Architecture School of Computer Science University of Oviedo Messaging Challenges Implementation complexity Asynchronous communication Data transfer Adapt message formats Different topologies Application C Application A Application B Message channel
  • 16. Software Architecture School of Computer Science University of Oviedo Hub & Spoke Bus
  • 17. Software Architecture School of Computer Science University of Oviedo Hub & Spoke Related with Broker pattern Hub = Centralized message Broker It is in charge of integration Application 1 Application 2 Hub or Broker Central integration engine Application 3 Application 4
  • 18. Software Architecture School of Computer Science University of Oviedo Bus Each application contains its own integration machine Publish/Subscribe style Message Bus Application 1 Application 2 Adapter and Integration engine Adapter and Integration engine Adapter and Integration engine Adapter and Integration engine Application 3 Application 4
  • 19. Software Architecture School of Computer Science University of Oviedo Bus ESB - Enterprise Service Bus Defines the messaging backbone Some tasks Protocol conversion Data transformation Routing Offers an API to develop services MOM (Message Oriented Middleware)
  • 20. Software Architecture School of Computer Science University of Oviedo SOA WS-* REST
  • 21. Software Architecture School of Computer Science University of Oviedo SOA SOA = Service Oriented Architecture Services are defined by an interface Internet Service 2 Interface Interface Service 3 Service 1 Interface
  • 22. Software Architecture School of Computer Science University of Oviedo SOA Elements Provider: Provides service Consumer: Does requests to the service Messages: Exchanged information Contract: Description of the functionality provided by the service Endpoint: Service location Policy: Service level agreements Security, performance, etc.
  • 23. Software Architecture School of Computer Science University of Oviedo SOA Constraints Service Consumer Service Policy Endpoint Contracts Messages Adheres to Binds to Understands Sends/receives Governed by Exposes Implements Sends /receives Fuente: SOA Patterns, A. Rottem Gal Oz Serves Describes
  • 24. Software Architecture School of Computer Science University of Oviedo SOA Challenges Independent of language and platform Interoperability Use of standards Low coupling Decentralized Reusability Scalability one-to-many vs one-to-one Partial solution for legacy systems Adding a web services layer
  • 25. Software Architecture School of Computer Science University of Oviedo SOA Challenges Performance E.g. real time systems Overkill in very homogeneous environments Security Risk of public exhibition of API to external parties DoS attacks Service composition and coordination
  • 26. Software Architecture School of Computer Science University of Oviedo SOA Variants: WS-* REST
  • 27. Software Architecture School of Computer Science University of Oviedo WS-* WS-* model = Set of specifications SOAP, WSDL, UDDI, etc.... Proposed by W3c, OASIS, WS-I, etc. Goal: Reference SOA implementation
  • 28. Software Architecture School of Computer Science University of Oviedo WS-* Web Services Architecture Processes Discovery, Aggregation, Choreography Descriptions Web Services Description Language (WSDL Messages SOAP extensions Reliability, Correlation, Transactions SOAP Base technologies: XML, DTD, Schema Base technologies: XML, DTD, Schema Communications HTTP, SMTP, FTP, JMS, IIOP, ... S E C U R I T Y M A N A G E M E N T
  • 29. Software Architecture School of Computer Science University of Oviedo
  • 30. Software Architecture School of Computer Science University of Oviedo WS-* UDDI HTTP SOAP request (XML) SOAP answer (XML) Web Service Implementation Web Service Consumer
  • 31. Software Architecture School of Computer Science University of Oviedo WS-* SOAP SOAP SOAP SOAP Internet Currency converter Billing Users Management SOAP XML User Application Web Services ecosystems
  • 32. Software Architecture School of Computer Science University of Oviedo WS-* SOAP Defines messages format and bindings with several protocols Initially Simple Object Access Protocol Evolution Developed from XML-RPC SOAP 1.0 (1999), 1.1 (2000), 1.2 (2007) Initial development by Microsoft Posterior adoption by IBM, Sun, etc. Good Industrial adoption
  • 33. Software Architecture School of Computer Science University of Oviedo WS-* Message format in SOAP Envelope Header Body Header Key Header Key
  • 34. Software Architecture School of Computer Science University of Oviedo WS-* Example of SOAP over HTTP POST /Suma/Service1.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: longitod del mensaje SOAPAction: "http://tempuri.org/suma" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <sum xmlns="http://tempuri.org/"> <a>3</a> <b>2</b> </sum> </soap:Body> </soap:Envelope> POST ?
  • 35. Software Architecture School of Computer Science University of Oviedo WS-* Advantages Specifications developed by community W3c, OASIS, etc. Industrial adoption Implementations Integral view of web services Numerous extensions Security, orchestration, choreography, etc.
  • 36. Software Architecture School of Computer Science University of Oviedo WS-* Challenges Not all specifications are mature Over-specification Lack of implementations RPC style abuse Uniform interface Sometimes, bad use of HTTP architecture Overload of GET/POST methods
  • 37. Software Architecture School of Computer Science University of Oviedo WS-* Applications Lots of applications have been using SOAP Example: eBay (50mill. SOAP transactions/day) Other examples: thetrainline.com, Hyatt, Microsoft live, etc. Some popular web services ceased to offer SOAP support Examples: Amazon, Google, etc.
  • 38. Software Architecture School of Computer Science University of Oviedo REST REST = REpresentational State Transfer Architectural style Source: Roy T Fielding PhD dissertation (2000) Inspired by Web architecture (HTTP/1.1)
  • 39. Software Architecture School of Computer Science University of Oviedo REST REST - Representational State Transfer Diagram Internet HTTP Resource 1 GET, PUT, POST, DELETE GET, PUT, POST, DELETE Resource 2 Application
  • 40. Software Architecture School of Computer Science University of Oviedo REST Set of constraints Resources with uniform interface Identified by URIs Fixed set of actions: GET, PUT, POST, DELETE Resource representations are returned Stateless REST = Architectural style Some levels of adoption: RESTful REST-RPC hybrid
  • 41. Software Architecture School of Computer Science University of Oviedo REST as a composed style Layers Client-Server Stateless Cached Replicated server Uniform interface Resource identifiers (URIs) Auto-descriptive messages (MIME types) Links to other resources (HATEOAS) Code on demand (optional)
  • 42. Software Architecture School of Computer Science University of Oviedo REST uniform interface Fixed set of operations GET, PUT, POST, DELETE Method In databases Function Safe? Idempotent? PUT Create/Update Create/update No Yes POST Update Create/ Update children No No GET Retrieve Query resource info Yes Yes DELETE Delete Delete resource No Yes Safe = Does not modify server data Idempotent = The effect of executing N-times is the same as executing it once
  • 43. Software Architecture School of Computer Science University of Oviedo REST Stateless client/server protocol State handled by client HATEOAS (Hypermedia As The Engine of Application State) Representations return URIs to available options Chaining of resource requests Example: Student management 1.- Get list of students GET http://example.org/student Returns list of students with each student URI 2.- Get information about an specific student GET http://example.org/student/id2324 3.- Update information of an specific student PUT http://example.org/student/id2324
  • 44. Software Architecture School of Computer Science University of Oviedo REST Advantages Client/Server Separation of concerns Low coupling Uniform interface Facilitates comprehension Independent development Scalability Improves answer times Less network load (cached) Less bandwidth
  • 45. Software Architecture School of Computer Science University of Oviedo REST Challenges REST partially adopted Just using JSON or XML Web services without contract or description RPC style REST Difficult to incorporate other requirements Security, transaction, composition, etc.
  • 46. Software Architecture School of Computer Science University of Oviedo REST as a composed style Layers Client Server Stateless Replicated REST Uniform Interface Cache Code on demand (optional)
  • 47. Software Architecture School of Computer Science University of Oviedo