Web services

Peter R. Egli
Peter R. EgliSoftware Engineering Consultant at Zühlke Group and Academic at ZHAW
© Peter R. Egli 2015
1/14
Rev. 1.90
Web Services indigoo.com
Peter R. Egli
INDIGOO.COM
OVERVIEW OF WEB SERVICE CONCEPTS
AND ARCHITECTURES
WEB
SERVICES
© Peter R. Egli 2015
2/14
Rev. 1.90
Web Services indigoo.com
Contents
1. What is a web service?
2. What is Service Oriented Architecture (SOA)?
3. What is a service?
4. Overview of web service technologies
5. Who makes web service standards?
6. Web service architectures
7. Web service versioning
© Peter R. Egli 2015
3/14
Rev. 1.90
Web Services indigoo.com
1. What is a web service?
Definition by W3C (see http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/):
A Web service is a software system designed to support interoperable machine-to-machine
interaction over a network. It has an interface described in a machine-processable format
(specifically WSDL). Other systems interact with the Web service in a manner prescribed by its
description using SOAP-messages, typically conveyed using HTTP with an XML serialization in
conjunction with other Web-related standards.
Key elements:
• Machine-to-machine (M2M) interaction over a network
• Machine-processable interfaces
• APIs that can be accessed over a network
• Communication over HTTP (even though SOAP-WS make little use of the HTTP protocol)
Network
Web service client
Web services
Machine processable
interfaces
HTTP or
other
message based
transport
© Peter R. Egli 2015
4/14
Rev. 1.90
Web Services indigoo.com
Network
2. What is Service Oriented Architecture (SOA)?
In contrast to „traditional“ enterprise IT architectures, SOA aims to consolidate common
functionality of different applications into services.
These services are exposed on a network so all consumers can use them when required.
 Services offer a defined interface to a component that implements the business functionality.
 Services should be designed such that they are as independent of each other as possible.
 Services (functionality) are no longer bound to a specific application.
 In addition to the partitioning of an IT-landscape into applications, there is an additional
dimension «service».
Infrastructure
Application
Infrastructure
Application
Infrastructure
Application
Traditional «stovepipe» or «silo» IT architecture
 Every application has its own infrastructure.
 Only the network is shared among the applications.
Network
Service oriented architecture
 Common functionality is consolidated into shared services.
 Applications run on a common service infrastructure.
Infrastructure
(services)
Application Application Application
© Peter R. Egli 2015
5/14
Rev. 1.90
Web Services indigoo.com
3. What is a service?
A service groups and encapsulates related functionality.
Example: Account service that allows tranferring / deducting money to / from a bank account.
How big should a service be?
Not too big, not too small...
Too big  Too many dependees, so overall coupling between clients and server is
high; it becomes difficult to make changes to the service without affecting
the clients.
Too small  Too many different services; service architecture may become brittle
(«spaghetti service architecture», «service fragmentation»).
Web
Service
Client
Web
Service
Web
Service
Web
Service
Web
Service
Tiny web services  service fragmentation
Web
Service
Service
Client
Big web service  tight coupling between
service and clients
Service
Client
Service
Client
Service
Client
© Peter R. Egli 2015
6/14
Rev. 1.90
Web Services indigoo.com
4. Overview of web service technologies (1/2)
Web service technologies can be classified according to the following 2 criteria:
1. Method information:
The method information expresses the action to be performed in the web service.
With regard to data, there are 3 possibilities:
a. Method = Action to be performed in web service, applied to data that is contained in
request. Example: Store logging data on server.
b. Method = Action to be performed in web service, parametrized with data contained in
request. Example: Get price quote for a specific product article.
c. Method = Action to be performed in web service, no data.
Example: Get current time and date.
2. Scope information:
The scope information defines the data context to which the request method is applied.
© Peter R. Egli 2015
7/14
Rev. 1.90
Web Services indigoo.com
4. Overview of web service technologies (2/2)
1. RPC-style web services („big web services“, „classic web services“):
• HTTP is only used as envelope. The method information is contained in a SOAP- / XML-body.
• The scope information is contained in the SOAP- / XML-body only.
<w:getWeatherUpdate xmlns:m=http://examples.indigoo.com/weatherService
env:encodingStyle=http://www.w3.org/2003/05/soap-encoding
xmlns:w="http://weatherService.indigoo.com/">
<w:location>
<w:latitude>47.359169</w:latitude>
<w:longitude>8.563843</w.longitude>
</w:location>
</s:getWeatherUpdate>
2. REST-style web services:
• Method information in HTTP method only.
• Scope information in URL only.
GET HTTP://www.indigoo.com/weatherInfo?location=Zurich
3. Hybrid RPC-style / REST-style combined:
• Method information mapped to URL.
• Scope information contained in URL.
GET HTTP://www.indigoo.com/weatherInfo?operation=get&location=Zurich
© Peter R. Egli 2015
8/14
Rev. 1.90
Web Services indigoo.com
5. Who makes web service standards?
1. W3C (www.w3.org)
W3C develops web technology standards for the Internet (like IETF for protocols).
List of W3C web service standards see http://www.w3.org/TR/.
2. OASIS (www.oasis-open.org)
Besides W3C, OASIS is the main WS standards body.
OASIS integrated the activities of WS-I (www.ws-i.org).
WS-I defines profiles for interoperability between web services (sets of OASIS standards to
be supported).
WS-I does not itself define standards but promotes interoperability between WS by defining
profiles (set of WS-* standards) to be supported by WS stacks / frameworks.
List of OASIS web service standards see https://www.oasis-open.org/standards.
4. Companies
Companies like BEA, IBM and Microsoft develop standards that are sometimes later endorsed
by OASIS.
© Peter R. Egli 2015
9/14
Rev. 1.90
Web Services indigoo.com
6. Web service architectures (1/4)
Web intermediaries:
Web intermediaries are placed between web service client and web service provider.
They intercept messages (requests and responses), perform some function and forward the
request to the destination.
Intermediaries perform typical functions that are shared in different web service architectures.
A. Authentication services:
The service client authenticates with the authentication service on an intermediary and
receives a security token for use in the subsequent secured session with the service provider.
Service
consumer
Service
provider
Intermediary Intermediary
Service
consumer
Service
provider
Intermediary
AA(A)
Security tokens
(see WS-Security / WS-Trust)
Authentication
AAA Authentication, Authorization, Accounting
Authenticated communication
© Peter R. Egli 2015
10/14
Rev. 1.90
Web Services indigoo.com
6. Web service architectures (2/4)
B. Auditing services:
An auditing intermediary logs the entire activity between a service client and provider (e.g. for
debugging purposes or to satisfy regulatory requirements).
C. Management services:
A management intermediary is used to collect statistical information about the service usage
and service health, maybe based on data from an auditing service.
The management intermediary may be connected to and integrated into an IT management
network for service monitoring and management purposes (e.g. for guaranteeing the required
web service quality of service).
Service
consumer
Service
provider
Intermediary
Log
Service
consumer
Service
provider
Intermediary
Log IT management
system
© Peter R. Egli 2015
11/14
Rev. 1.90
Web Services indigoo.com
6. Web service architectures (3/4)
D. Performance improvement services (1/2):
Web intermediaries are placed between service client and provider to improve the overall
performance.
Caches: Resources are retrieved from a cache storage to offload the service provider.
Store-and-forward intermediaries:
Message queueing service for offloading the service provider, i.e. to control the
load or also do load balancing. Such intermediaries may also be used to forward a
request to a version-compatible service (see below, versioning of web services).
Service
consumer
Service
provider
Intermediary
Cache
Service
consumer
Service
provider
Intermediary
Service
provider
© Peter R. Egli 2015
12/14
Rev. 1.90
Web Services indigoo.com
6. Web service architectures (4/4)
D. Performance improvement services (2/2):
Aggregation intermediaries:
Aggregate several web services provided by different web service providers into a
composite web service as a facade or interface towards the client.
Service
consumer
Service
provider
1
Intermediary
Service
provider
3
Aggregated
interface Service
provider
2
© Peter R. Egli 2015
13/14
Rev. 1.90
Web Services indigoo.com
7. Web service versioning (1/2)
Problem:
SOA is an open architecture (services exposed to the „outside“).
 Services cannot be easily modified or deleted because some other service or client depends
on it.
Solution 1:
Update all clients and other web services each time the service changes («D-Day» approach).
 Will probably not work well because it does not scale (a small change required by 1 service
consumer leads to updates on all dependees).
Solution 2 (1/2):
Introduction of a versioning scheme with compatible and incompatible changes.
Version numbering scheme <major>.<minor>
Major (=incompatible) change  <major> is counted up.
Minor (=compatible) change  <minor> is counted up.
Compatible changes to a web service:
- Addition of an additional operation without changing the semantics of the existing operations
- Addition of an optional attribute to a data type
- Addition of new data type (probably along with a new operation)
Incompatible changes:
- Removal / renaming of a service, operation, data type or attribute
- Addition of a mandatory attribute
- Change of order of attributes (if ordering is applicable)
© Peter R. Egli 2015
14/14
Rev. 1.90
Web Services indigoo.com
7. Web service versioning (2/2)
Solution 2 (2/2):
The version must be present in the SOAP message, either as:
a. XML-namespace in the SOAP-envelope:
Example: <xsd:schema targetNamespace=„http://www.mycompany.com/MyService/2009-05-20>
b. Service name or data element extension in SOAP body:
Example: <xs:complexType name=„CustomerV1“>
c. HTTP-request parameter for version:
Example:
HTTP GET HTTP/1.1
..
version: V1.2
In order to reduce or avoid any client changes when doing major changes to a web service, the following scheme may be
employed (the web intermediary serves as a service router based on the version):
Service
consumer
V1.1
Intermediary
Service
consumer
V2.0
Service
consumer
V1.0
Service
provider
V1.1
Service
provider
V2.0
Service
provider
V1.0
1 of 14

Recommended

Web services by
Web servicesWeb services
Web servicesAkshay Ballarpure
8.6K views23 slides
Web Services by
Web ServicesWeb Services
Web ServicesAntonio Villegas
3.3K views68 slides
Web Services - Architecture and SOAP (part 1) by
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
9.9K views40 slides
Introduction to webservices by
Introduction to webservicesIntroduction to webservices
Introduction to webservicesGagandeep Singh
2K views24 slides
Understanding Web services by
Understanding Web servicesUnderstanding Web services
Understanding Web servicesFabricio Epaminondas
1.8K views28 slides
Introduction to Web Services by
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web ServicesThanachart Numnonda
7.3K views72 slides

More Related Content

What's hot

Overview of web services by
Overview of web servicesOverview of web services
Overview of web servicesPeople Strategists
3.5K views62 slides
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE... by
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...ecosio GmbH
6K views84 slides
Web service introduction 2 by
Web service introduction 2Web service introduction 2
Web service introduction 2Sagara Gunathunga
1.2K views33 slides
SOA - From Webservices to APIs by
SOA - From Webservices to APIsSOA - From Webservices to APIs
SOA - From Webservices to APIsHolger Reinhardt
602 views18 slides
Webservices by
WebservicesWebservices
WebservicesGerard Sylvester
25.1K views24 slides

What's hot(20)

Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE... by ecosio GmbH
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
ecosio GmbH6K views
Introduction to web services and how to in php by Amit Kumar Singh
Introduction to web services and how to in phpIntroduction to web services and how to in php
Introduction to web services and how to in php
Amit Kumar Singh752 views
Web API or WCF - An Architectural Comparison by Adnan Masood
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
Adnan Masood56.8K views
Web service assignment by ancymary1996
Web service assignmentWeb service assignment
Web service assignment
ancymary1996857 views
Windows Communication Foundation (WCF) by Peter R. Egli
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
Peter R. Egli10.3K views
WCF tutorial by Abhi Arya
WCF tutorialWCF tutorial
WCF tutorial
Abhi Arya7.8K views
Service Oriented Architecture & Beyond by Imesh Gunaratne
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
Imesh Gunaratne5K views
web service technologies by Yash Darak
web service technologiesweb service technologies
web service technologies
Yash Darak470 views
Develop ASP.Net Web Service by Safaa Farouk
Develop ASP.Net Web Service Develop ASP.Net Web Service
Develop ASP.Net Web Service
Safaa Farouk909 views

Viewers also liked

Web Services Tutorial by
Web Services TutorialWeb Services Tutorial
Web Services TutorialLorna Mitchell
13.2K views74 slides
Web service introduction by
Web service introductionWeb service introduction
Web service introductionSagara Gunathunga
9.9K views40 slides
RESTful Web Services by
RESTful Web ServicesRESTful Web Services
RESTful Web ServicesChristopher Bartling
34.7K views38 slides
SOAP-based Web Services by
SOAP-based Web ServicesSOAP-based Web Services
SOAP-based Web ServicesKatrien Verbert
9.3K views50 slides
Web Services by
Web ServicesWeb Services
Web ServicesKatrien Verbert
9.3K views63 slides
Web Services (SOAP, WSDL, UDDI) by
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
64.6K views31 slides

Viewers also liked(20)

Web Services (SOAP, WSDL, UDDI) by Peter R. Egli
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
Peter R. Egli64.6K views
Using Java to implement RESTful Web Services: JAX-RS by Katrien Verbert
Using Java to implement RESTful Web Services: JAX-RSUsing Java to implement RESTful Web Services: JAX-RS
Using Java to implement RESTful Web Services: JAX-RS
Katrien Verbert7.2K views
JAX-RS 2.0: RESTful Web Services by Arun Gupta
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web Services
Arun Gupta5.5K views
Introduction to SOAP/WSDL Web Services and RESTful Web Services by ecosio GmbH
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
ecosio GmbH5.5K views
Artificial Intelligence and Expert Systems by Siddhant Agarwal
Artificial Intelligence and Expert SystemsArtificial Intelligence and Expert Systems
Artificial Intelligence and Expert Systems
Siddhant Agarwal12K views
Service Oriented Architectures and Web Services by Cesare Pautasso
Service Oriented Architectures and Web ServicesService Oriented Architectures and Web Services
Service Oriented Architectures and Web Services
Cesare Pautasso4.5K views
Introduction To Mycin Expert System by Nipun Jaswal
Introduction To Mycin Expert SystemIntroduction To Mycin Expert System
Introduction To Mycin Expert System
Nipun Jaswal17.8K views
Introduction to RESTful Webservices in JAVA by psrpatnaik
Introduction to RESTful Webservices  in JAVA Introduction to RESTful Webservices  in JAVA
Introduction to RESTful Webservices in JAVA
psrpatnaik5.5K views
Java web services using JAX-WS by IndicThreads
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WS
IndicThreads7.1K views
Introduction to SOFTWARE ARCHITECTURE by Ivano Malavolta
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta5.5K views
Artificial Intelligence: Knowledge Acquisition by The Integral Worm
Artificial Intelligence: Knowledge AcquisitionArtificial Intelligence: Knowledge Acquisition
Artificial Intelligence: Knowledge Acquisition
The Integral Worm31.5K views
Making Java REST with JAX-RS 2.0 by Dmytro Chyzhykov
Making Java REST with JAX-RS 2.0Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0
Dmytro Chyzhykov22.1K views

Similar to Web services

Enhancement in Web Service Architecture by
Enhancement in Web Service ArchitectureEnhancement in Web Service Architecture
Enhancement in Web Service ArchitectureIJERA Editor
38 views6 slides
A Deep Dive into REST API Framework Survey by
A Deep Dive into REST API Framework SurveyA Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework SurveyIRJET Journal
2 views5 slides
Chapter 1 introduction by
Chapter 1 introductionChapter 1 introduction
Chapter 1 introductionjam c
353 views26 slides
Service-Finder presentation at ESTC2008 by
Service-Finder presentation at ESTC2008Service-Finder presentation at ESTC2008
Service-Finder presentation at ESTC2008servicefinder
556 views25 slides
Realizing Service Finder at ESTC 2008 by
Realizing Service Finder at ESTC 2008Realizing Service Finder at ESTC 2008
Realizing Service Finder at ESTC 2008Emanuele Della Valle
942 views25 slides
Meetup6 microservices for the IoT by
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoTFrancesco Rago
638 views28 slides

Similar to Web services(20)

Enhancement in Web Service Architecture by IJERA Editor
Enhancement in Web Service ArchitectureEnhancement in Web Service Architecture
Enhancement in Web Service Architecture
IJERA Editor38 views
A Deep Dive into REST API Framework Survey by IRJET Journal
A Deep Dive into REST API Framework SurveyA Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework Survey
IRJET Journal2 views
Chapter 1 introduction by jam c
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
jam c353 views
Service-Finder presentation at ESTC2008 by servicefinder
Service-Finder presentation at ESTC2008Service-Finder presentation at ESTC2008
Service-Finder presentation at ESTC2008
servicefinder556 views
Meetup6 microservices for the IoT by Francesco Rago
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoT
Francesco Rago638 views
Jeffrey Richter by CodeFest
Jeffrey RichterJeffrey Richter
Jeffrey Richter
CodeFest1.6K views
A Novel Framework for Reliable and Fault Tolerant Web Services by Abhishek Kumar
A Novel Framework for Reliable and Fault Tolerant Web ServicesA Novel Framework for Reliable and Fault Tolerant Web Services
A Novel Framework for Reliable and Fault Tolerant Web Services
Abhishek Kumar49 views
Web services by ishmecse13
Web servicesWeb services
Web services
ishmecse13509 views
Impact of web life cycle activities &amp; web services in modern era a review by Jyoti Parashar
Impact of web life cycle activities &amp; web services in modern era  a reviewImpact of web life cycle activities &amp; web services in modern era  a review
Impact of web life cycle activities &amp; web services in modern era a review
Jyoti Parashar23 views
Impact of web life cycle activities &amp; web services in modern era a review by Jyoti Parashar
Impact of web life cycle activities &amp; web services in modern era  a reviewImpact of web life cycle activities &amp; web services in modern era  a review
Impact of web life cycle activities &amp; web services in modern era a review
Jyoti Parashar30 views
Concepts and Derivatives of Web Services by IOSR Journals
Concepts and Derivatives of Web ServicesConcepts and Derivatives of Web Services
Concepts and Derivatives of Web Services
IOSR Journals380 views
SOA Fundamentals by abhi1112
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
abhi11126.1K views
Build Message-Based Web Services for SOA by Jeffrey Hasan
Build Message-Based Web Services for SOABuild Message-Based Web Services for SOA
Build Message-Based Web Services for SOA
Jeffrey Hasan1.4K views
WebService-Java by halwal
WebService-JavaWebService-Java
WebService-Java
halwal3.4K views
Web services and SOA [Modified] by Subin Sugunan
Web services and SOA [Modified]Web services and SOA [Modified]
Web services and SOA [Modified]
Subin Sugunan1.4K views
Enterprise Application Integration Technologies by Peter R. Egli
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
Peter R. Egli21.2K views
xConf-2022-api-gateway-service-mesh.pdf by Wesley Reisz
xConf-2022-api-gateway-service-mesh.pdfxConf-2022-api-gateway-service-mesh.pdf
xConf-2022-api-gateway-service-mesh.pdf
Wesley Reisz24 views
Unit 3-SOA Technologies by ssuser3a47cb
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologies
ssuser3a47cb69 views
IBM Innovate 2013: Making Rational HATS a Strategic Investment by Strongback Consulting
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentIBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic Investment

More from Peter R. Egli

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios by
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosPeter R. Egli
47.3K views11 slides
Data Networking Concepts by
Data Networking ConceptsData Networking Concepts
Data Networking ConceptsPeter R. Egli
4.3K views54 slides
Communication middleware by
Communication middlewareCommunication middleware
Communication middlewarePeter R. Egli
5.4K views17 slides
Transaction Processing Monitors (TPM) by
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Peter R. Egli
3.9K views9 slides
Business Process Model and Notation (BPMN) by
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Peter R. Egli
21.1K views24 slides
Microsoft .NET Platform by
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET PlatformPeter R. Egli
9.4K views33 slides

More from Peter R. Egli(20)

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios by Peter R. Egli
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
Peter R. Egli47.3K views
Data Networking Concepts by Peter R. Egli
Data Networking ConceptsData Networking Concepts
Data Networking Concepts
Peter R. Egli4.3K views
Communication middleware by Peter R. Egli
Communication middlewareCommunication middleware
Communication middleware
Peter R. Egli5.4K views
Transaction Processing Monitors (TPM) by Peter R. Egli
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)
Peter R. Egli3.9K views
Business Process Model and Notation (BPMN) by Peter R. Egli
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)
Peter R. Egli21.1K views
Microsoft .NET Platform by Peter R. Egli
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET Platform
Peter R. Egli9.4K views
Overview of Cloud Computing by Peter R. Egli
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud Computing
Peter R. Egli8.8K views
MQTT - MQ Telemetry Transport for Message Queueing by Peter R. Egli
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message Queueing
Peter R. Egli58.5K views
Overview of Microsoft .Net Remoting technology by Peter R. Egli
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
Peter R. Egli3.4K views
Android Native Development Kit by Peter R. Egli
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
Peter R. Egli2.8K views
Overview of SCTP (Stream Control Transmission Protocol) by Peter R. Egli
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
Peter R. Egli13.9K views
Overview of SCTP (Stream Control Transmission Protocol) by Peter R. Egli
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
Peter R. Egli64.2K views
Overview of Spanning Tree Protocol (STP & RSTP) by Peter R. Egli
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)
Peter R. Egli13.6K views
MSMQ - Microsoft Message Queueing by Peter R. Egli
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
Peter R. Egli17.8K views
Common Object Request Broker Architecture - CORBA by Peter R. Egli
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
Peter R. Egli9K views
Component Object Model (COM, DCOM, COM+) by Peter R. Egli
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
Peter R. Egli18.7K views
JMS - Java Messaging Service by Peter R. Egli
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli9.5K views
REST - Representational State Transfer by Peter R. Egli
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
Peter R. Egli10.8K views
MOM - Message Oriented Middleware by Peter R. Egli
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented Middleware
Peter R. Egli29.4K views
Java API for XML Web Services (JAX-WS) by Peter R. Egli
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)
Peter R. Egli9.5K views

Recently uploaded

MVP and prioritization.pdf by
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
38 views8 slides
HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
28 views151 slides
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
48 views17 slides
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
28 views49 slides
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlueShapeBlue
50 views23 slides
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...ShapeBlue
63 views13 slides

Recently uploaded(20)

HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn28 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue48 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue50 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue63 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson133 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue54 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue56 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue96 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1080 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman40 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue111 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc77 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue65 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue102 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue119 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue46 views

Web services

  • 1. © Peter R. Egli 2015 1/14 Rev. 1.90 Web Services indigoo.com Peter R. Egli INDIGOO.COM OVERVIEW OF WEB SERVICE CONCEPTS AND ARCHITECTURES WEB SERVICES
  • 2. © Peter R. Egli 2015 2/14 Rev. 1.90 Web Services indigoo.com Contents 1. What is a web service? 2. What is Service Oriented Architecture (SOA)? 3. What is a service? 4. Overview of web service technologies 5. Who makes web service standards? 6. Web service architectures 7. Web service versioning
  • 3. © Peter R. Egli 2015 3/14 Rev. 1.90 Web Services indigoo.com 1. What is a web service? Definition by W3C (see http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/): A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Key elements: • Machine-to-machine (M2M) interaction over a network • Machine-processable interfaces • APIs that can be accessed over a network • Communication over HTTP (even though SOAP-WS make little use of the HTTP protocol) Network Web service client Web services Machine processable interfaces HTTP or other message based transport
  • 4. © Peter R. Egli 2015 4/14 Rev. 1.90 Web Services indigoo.com Network 2. What is Service Oriented Architecture (SOA)? In contrast to „traditional“ enterprise IT architectures, SOA aims to consolidate common functionality of different applications into services. These services are exposed on a network so all consumers can use them when required.  Services offer a defined interface to a component that implements the business functionality.  Services should be designed such that they are as independent of each other as possible.  Services (functionality) are no longer bound to a specific application.  In addition to the partitioning of an IT-landscape into applications, there is an additional dimension «service». Infrastructure Application Infrastructure Application Infrastructure Application Traditional «stovepipe» or «silo» IT architecture  Every application has its own infrastructure.  Only the network is shared among the applications. Network Service oriented architecture  Common functionality is consolidated into shared services.  Applications run on a common service infrastructure. Infrastructure (services) Application Application Application
  • 5. © Peter R. Egli 2015 5/14 Rev. 1.90 Web Services indigoo.com 3. What is a service? A service groups and encapsulates related functionality. Example: Account service that allows tranferring / deducting money to / from a bank account. How big should a service be? Not too big, not too small... Too big  Too many dependees, so overall coupling between clients and server is high; it becomes difficult to make changes to the service without affecting the clients. Too small  Too many different services; service architecture may become brittle («spaghetti service architecture», «service fragmentation»). Web Service Client Web Service Web Service Web Service Web Service Tiny web services  service fragmentation Web Service Service Client Big web service  tight coupling between service and clients Service Client Service Client Service Client
  • 6. © Peter R. Egli 2015 6/14 Rev. 1.90 Web Services indigoo.com 4. Overview of web service technologies (1/2) Web service technologies can be classified according to the following 2 criteria: 1. Method information: The method information expresses the action to be performed in the web service. With regard to data, there are 3 possibilities: a. Method = Action to be performed in web service, applied to data that is contained in request. Example: Store logging data on server. b. Method = Action to be performed in web service, parametrized with data contained in request. Example: Get price quote for a specific product article. c. Method = Action to be performed in web service, no data. Example: Get current time and date. 2. Scope information: The scope information defines the data context to which the request method is applied.
  • 7. © Peter R. Egli 2015 7/14 Rev. 1.90 Web Services indigoo.com 4. Overview of web service technologies (2/2) 1. RPC-style web services („big web services“, „classic web services“): • HTTP is only used as envelope. The method information is contained in a SOAP- / XML-body. • The scope information is contained in the SOAP- / XML-body only. <w:getWeatherUpdate xmlns:m=http://examples.indigoo.com/weatherService env:encodingStyle=http://www.w3.org/2003/05/soap-encoding xmlns:w="http://weatherService.indigoo.com/"> <w:location> <w:latitude>47.359169</w:latitude> <w:longitude>8.563843</w.longitude> </w:location> </s:getWeatherUpdate> 2. REST-style web services: • Method information in HTTP method only. • Scope information in URL only. GET HTTP://www.indigoo.com/weatherInfo?location=Zurich 3. Hybrid RPC-style / REST-style combined: • Method information mapped to URL. • Scope information contained in URL. GET HTTP://www.indigoo.com/weatherInfo?operation=get&location=Zurich
  • 8. © Peter R. Egli 2015 8/14 Rev. 1.90 Web Services indigoo.com 5. Who makes web service standards? 1. W3C (www.w3.org) W3C develops web technology standards for the Internet (like IETF for protocols). List of W3C web service standards see http://www.w3.org/TR/. 2. OASIS (www.oasis-open.org) Besides W3C, OASIS is the main WS standards body. OASIS integrated the activities of WS-I (www.ws-i.org). WS-I defines profiles for interoperability between web services (sets of OASIS standards to be supported). WS-I does not itself define standards but promotes interoperability between WS by defining profiles (set of WS-* standards) to be supported by WS stacks / frameworks. List of OASIS web service standards see https://www.oasis-open.org/standards. 4. Companies Companies like BEA, IBM and Microsoft develop standards that are sometimes later endorsed by OASIS.
  • 9. © Peter R. Egli 2015 9/14 Rev. 1.90 Web Services indigoo.com 6. Web service architectures (1/4) Web intermediaries: Web intermediaries are placed between web service client and web service provider. They intercept messages (requests and responses), perform some function and forward the request to the destination. Intermediaries perform typical functions that are shared in different web service architectures. A. Authentication services: The service client authenticates with the authentication service on an intermediary and receives a security token for use in the subsequent secured session with the service provider. Service consumer Service provider Intermediary Intermediary Service consumer Service provider Intermediary AA(A) Security tokens (see WS-Security / WS-Trust) Authentication AAA Authentication, Authorization, Accounting Authenticated communication
  • 10. © Peter R. Egli 2015 10/14 Rev. 1.90 Web Services indigoo.com 6. Web service architectures (2/4) B. Auditing services: An auditing intermediary logs the entire activity between a service client and provider (e.g. for debugging purposes or to satisfy regulatory requirements). C. Management services: A management intermediary is used to collect statistical information about the service usage and service health, maybe based on data from an auditing service. The management intermediary may be connected to and integrated into an IT management network for service monitoring and management purposes (e.g. for guaranteeing the required web service quality of service). Service consumer Service provider Intermediary Log Service consumer Service provider Intermediary Log IT management system
  • 11. © Peter R. Egli 2015 11/14 Rev. 1.90 Web Services indigoo.com 6. Web service architectures (3/4) D. Performance improvement services (1/2): Web intermediaries are placed between service client and provider to improve the overall performance. Caches: Resources are retrieved from a cache storage to offload the service provider. Store-and-forward intermediaries: Message queueing service for offloading the service provider, i.e. to control the load or also do load balancing. Such intermediaries may also be used to forward a request to a version-compatible service (see below, versioning of web services). Service consumer Service provider Intermediary Cache Service consumer Service provider Intermediary Service provider
  • 12. © Peter R. Egli 2015 12/14 Rev. 1.90 Web Services indigoo.com 6. Web service architectures (4/4) D. Performance improvement services (2/2): Aggregation intermediaries: Aggregate several web services provided by different web service providers into a composite web service as a facade or interface towards the client. Service consumer Service provider 1 Intermediary Service provider 3 Aggregated interface Service provider 2
  • 13. © Peter R. Egli 2015 13/14 Rev. 1.90 Web Services indigoo.com 7. Web service versioning (1/2) Problem: SOA is an open architecture (services exposed to the „outside“).  Services cannot be easily modified or deleted because some other service or client depends on it. Solution 1: Update all clients and other web services each time the service changes («D-Day» approach).  Will probably not work well because it does not scale (a small change required by 1 service consumer leads to updates on all dependees). Solution 2 (1/2): Introduction of a versioning scheme with compatible and incompatible changes. Version numbering scheme <major>.<minor> Major (=incompatible) change  <major> is counted up. Minor (=compatible) change  <minor> is counted up. Compatible changes to a web service: - Addition of an additional operation without changing the semantics of the existing operations - Addition of an optional attribute to a data type - Addition of new data type (probably along with a new operation) Incompatible changes: - Removal / renaming of a service, operation, data type or attribute - Addition of a mandatory attribute - Change of order of attributes (if ordering is applicable)
  • 14. © Peter R. Egli 2015 14/14 Rev. 1.90 Web Services indigoo.com 7. Web service versioning (2/2) Solution 2 (2/2): The version must be present in the SOAP message, either as: a. XML-namespace in the SOAP-envelope: Example: <xsd:schema targetNamespace=„http://www.mycompany.com/MyService/2009-05-20> b. Service name or data element extension in SOAP body: Example: <xs:complexType name=„CustomerV1“> c. HTTP-request parameter for version: Example: HTTP GET HTTP/1.1 .. version: V1.2 In order to reduce or avoid any client changes when doing major changes to a web service, the following scheme may be employed (the web intermediary serves as a service router based on the version): Service consumer V1.1 Intermediary Service consumer V2.0 Service consumer V1.0 Service provider V1.1 Service provider V2.0 Service provider V1.0