Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I)...
Transcript of Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I)...
![Page 1: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/1.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/Web Technologies
Web services (I)
⫘from SOA to SOAP, WSDL, and UDDI
![Page 2: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/2.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
“We treasure what we understand.”
Kevin Budelmann
![Page 3: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/3.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
What are the Web purposes?
![Page 4: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/4.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Creating and interacting with an inter-human communication space
knowledge sharing
![Page 5: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/5.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Creating and interacting with an inter-human communication space
knowledge sharing
social Web (“Web 2.0”), Web of data (semantic Web),…
![Page 6: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/6.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Making use of the computational power
the access to the Web can be achieved by using devices with limited resources
![Page 7: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/7.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Making use of the computational power
the access to the Web can be achieved by using devices with limited resources
ubiquituous Web: mobile Web, 3D Web,…performanceassuring scalability
![Page 8: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/8.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
remark
The interaction between humans and Web is made by using Web forms and exploring links
via Web addresses – URIs
![Page 9: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/9.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
How can be accessed and processed the resources – data, information, knowledge –
available on the Web?
![Page 10: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/10.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web developers’ needs
Multi-platform, loose-connected solutions
Internet/Web-based integration (in real-time) of applications, services, and systems
![Page 11: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/11.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web developers’ needs
Multi-platform, loose-connected solutions
Internet/Web-based integration (in real-time) of applications, services, and systems
example: finding the service offerings, based on user’s geographic location, in the context of mobile devices
![Page 12: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/12.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web developers’ needs
Multi-platform, loose-connected solutions
data should be described in order to be “understood” by computers and
to be easily interconnected
![Page 13: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/13.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web developers’ needs
Multi-platform, loose-connected solutions
data should be described in order to be “understood” by computers and
to be easily interconnected
Web “puzzles”interconnected multiple services providing data of
interest, according to the user preferences
![Page 14: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/14.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web developers’ needs
Pluggable & versatile services
Software as a Service – SaaS
Application Service Provider – ASP
![Page 15: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/15.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
Dividing applications into – independent – servicesthat can be composed, meant to connect and
orchestrate in a spontaneous way in the business/technical processes
Web component-based software
![Page 16: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/16.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
![Page 17: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/17.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
using the architecture(s) that…
provide support for communication paradigms – based on current Web technologies –between heterogeneous applications
![Page 18: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/18.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
using the architecture(s) that…
allow a transparent manner to locate services
![Page 19: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/19.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
using the architecture(s) that…
facilitate adding, replacing, removing services in a dynamic way
![Page 20: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/20.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
using the architecture(s) that…
hide the system details
![Page 21: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/21.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
solution
“The Web is the computer”
using the architecture(s) that…
assure the quality of distributed and/or parallel application development & deployment:standardization, security, availability,
reusability, maintainability, etc.
advanced
![Page 22: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/22.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soluțieWeb as a middleware technology
advanced
clientcalls service
(at proxy level)
servicewaits for requests
executes operations
client proxy
data (de)serialization
data receiving
service invocation
server proxy
data (de)serialization
service invocation
result retrieval
Web broker
service registration
server localization
establishing communic.
data data
![Page 23: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/23.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
How about Web services?
![Page 24: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/24.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
“A service is an abstract resource that represents a capability of performing tasks that form
a coherent functionality from the point of view of providers entities and requesters entities.”
www.w3.org/TR/ws-gloss/
![Page 25: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/25.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
“A Web service is a software system designed to support interoperable machine-to-machine
interaction over a network.”
www.w3.org/TR/ws-gloss/
![Page 26: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/26.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Software providing a specific functionality
resource access – Instagram, Pinterest, Slideshare, Vimeonews aggregation – Feedly, Reddit
mapping – Google Maps, Nokia HERE, OpenStreetMapinstant messaging – Snapchat, Telegram, Twilio
processing – IBM Watson, TensorFlow, Skyttle,…Web statistics – e.g., Google Analytics
social networks – Facebook Open Graph, Twitterspelling checking – Bing Spell Check, xSpell,…
data storage – Amazon S3, Dropbox, OneDrive, etc.…
![Page 27: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/27.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
servicii web
used – remotely –by other applications/services
![Page 28: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/28.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Accessed – in a standardized way – via Web
addressing resources with URIdata transfer via HTTP
messages having various data formats: CSV, JSON, XML,…
![Page 29: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/29.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: example
A service provided by a travel agency
offering – and, possibly, selling –various holiday formulas
![Page 30: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/30.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: example
A service provided by a travel agency
uses other (software) services available on the Web
mapping + weather servicesaccommodation services
financial transactions– e.g., e-bankingtransport services
social recommendation services
![Page 31: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/31.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
How can we implement a service?
![Page 32: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/32.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Standard implementation
using Web application servers + frameworks
ASP.NET, Django, Node.js, PHP (CodeIgnater, Laravel,…),
Play!, Ruby on Rails,…
![Page 33: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/33.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Traditionally, the application provides a user-interface available on the Web
markup language – e.g., HTMLstyles for content presentation – CSS
interactivity via JavaScript (+libraries/frameworks)
![Page 34: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/34.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Traditionally, the application provides a user-interface available on the Web
requests are captured via forms+ hypermedia links
![Page 35: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/35.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Traditionally, the application provides a user-interface available on the Web
human users should interpret the labels and dialog fields
![Page 36: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/36.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
Traditionally, the application provides a user-interface available on the Web
implemented service provides a response (a Web resource representation)
usually, an HTML document whose content is transferred to the client according to a protocol: HTTP(S)
![Page 37: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/37.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
How can we obtain the response in order to be (re)used in our programs?
processing the data from HTML codeWeb scraping
<div class="ct-cs"><input id="exchange_rate" value="4.4155770975" type="hidden">
<input id="fob.log_input_ct" value="" type="hidden">…<table>…</table></div>
![Page 38: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/38.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service
How can we obtain the response in order to be (re)used in our programs?
processing the data from HTML codeWeb scraping
any markup modificationrewriting the program that process the data from HTML document
???!
![Page 39: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/39.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: characteristics
Web services made explicit the implicit indications
the input data and result can be (rigorously) specified by using various validation techniques
![Page 40: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/40.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: characteristics
Used in the interaction between applications
dynamic
lack of a-priori knowledge about the interaction with other Web applications/services
![Page 41: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/41.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: characteristics
Endpoints used for public data processing – possibly, via open APIs
![Page 42: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/42.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
web service: characteristics
Developed on the basis of current platforms, architectures, technologies, and languages
![Page 43: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/43.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
There is an architectural model for developing Web services?
![Page 44: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/44.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Service Oriented Architecture
![Page 45: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/45.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
An architectural style for designing and developingapplications considered as services
that can be invoked by other applications
![Page 46: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/46.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
A software development paradigm adopting the use of services,
that provides functionalities required by users
![Page 47: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/47.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
A software development paradigm adopting the use of services,
that provides functionalities required by users
resources are available through a suite of independent services those implementations
do not need to be known (black box)
![Page 48: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/48.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Components of the system as a whole have a high degree of independence (de-coupling)
advanced
![Page 49: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/49.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Components of the system as a whole have a high degree of independence (de-coupling)
services must be designed to interact without dependences between them
advanced
![Page 50: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/50.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Services share a formal contract
necessity for a formal description of a service:provided operations (service interface)
data interchange manner (request + response)service discoverability
service quality (SLA – service-level agreement)
advanced
![Page 51: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/51.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Services can be re-composed/re-orchestrated according to the requirements
or deployment context
composable servicesreusable services
advanced
![Page 52: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/52.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Services will not depend on the state of communication (statelessness)
advanced
![Page 53: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/53.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Services will not depend on the state of communication (statelessness)
in order to perform an operation, the amount of information that can be kept should be minimal
advanced
![Page 54: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/54.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soafrom traditionally developed
Web applicationsto service-based architectures
Jay O’Connor (2014)http://tinyurl.com/l62tjab
![Page 55: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/55.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
ubiGuide project(Ionuț Dănilă & Mihaela Ghimiciu, 2013—2014)public services: ABBYY Cloud OCR, AlchemyAPI,
Google Places API, YouTube API,…libraries: Flickr.NET, GART (Geo Augmented Reality Toolkit),
Hammock, TweetSharp, etc.https://www.youtube.com/watch?v=wygXE6hQ07c
http://www.slideshare.net/ionutdanila/ubi-guide
![Page 56: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/56.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
soa
Douwe Osinga & Jon Tirsen, “Architecture of the Triposo travel guide”, QCon London, 2013 – www.infoq.com/presentations/triposo-architecture
advanced
![Page 57: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/57.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Can we specify in a standardized formatthe input data and the response provided
by the Web service?
![Page 58: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/58.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation
The need for a data communication (transport) protocol between heterogeneous
platforms/applications
![Page 59: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/59.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation
The protocol should offer a mechanism of invoking and transmitting data in a structured way
![Page 60: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/60.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation
The protocol should offer a mechanism of invoking and transmitting data in a structured way
facilitating complex interactions between applications
assuring extensibility + security, reliability, caching
![Page 61: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/61.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: solution
XML-RPC (1999)
easy to be used, but modest
based on RPC (Remote Procedure Call)
messages are modeled in XML
http://xmlrpc.scripting.com/spec
![Page 62: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/62.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: solution
SOAP
sophisticated, more flexible
W3C standards (2007)
commonly used in the enterprise applications
http://www.w3.org/TR/soap12/
![Page 63: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/63.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: solution
Adopting other representations
CSV (Comma Separated Values)POX (Plain Old XML)
JSON (JavaScript Object Notation)
the developer creates its own serialization methods
![Page 64: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/64.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
Goal: a protocol of communication between
two machines (client and server) for XML data interchange
platform/language-independent
![Page 65: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/65.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
A W3C standard (2003, 2007)
www.w3.org/TR/soap12-part0/
![Page 66: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/66.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
The “dialog” between applications takes place by using SOAP messages XML documents
envelopeheader + body
XML messaging
![Page 67: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/67.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
SOAP Envelope
SOAP Headerheader block
header block
SOAP Body
body block
body block
body block
body block
![Page 68: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/68.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
Can describe a model for content processing
SOAP encoding rules
![Page 69: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/69.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
Can specify a route from sender to receiver,via an optional intermediary (proxy)
SOAP routing
![Page 70: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/70.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
The headers could be processed by different intermediaries
![Page 71: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/71.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
XML data stored by a body block can be transported regardless the protocol
HTTP, usually
other protocols can be adopted – e.g., SMTP, XMPP
![Page 72: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/72.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
By using SOAP, it can be specified a call of a method available on other computer
SOAP RPC representation
![Page 73: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/73.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocare: soapSOAP message exchange
SOAP system
XML encoding
✉
data packing
SOAP system
XML decoding
✉
data unpacking
☁transportprotocol
transportprotocol Internet
(intermediaries)
SOAP message
binding
sender receiverany data type
![Page 74: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/74.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
(instead of) break
Ch
rist
op
h N
iem
ann
–h
ttp
s://t
mb
lr.c
o/Z
mlt
Kx2
2m7P
Ks
![Page 75: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/75.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap – example
Scenario:a client sends to a service a name of orange
(as input argument)in order to obtain the available quantity – i.e. the response
![Page 76: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/76.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap – example
TCP/IP classical approach☹
socketsa user-defined port (e.g., 7777)+ a convention of data exchange is specified
![Page 77: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/77.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap – example
RPC approach☹
a remote procedure call, executed by the server (using a port of RPC dispatcher),
adopting XDR – External Data Representation –as a binary protocol of data (de)serialization
typical implementations in C, C++ or Java (with RMI)
![Page 78: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/78.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap – example
SOAP approach – XML messaging
exchanged data is wrapped into SOAP “envelopes” (messages), transported via HTTP
platform- and language-independent
![Page 79: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/79.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Invoking a Web service – RPC style
Implemented Web service
Client invokinga Web service
calls method 2of Web service
proxy class
sync. transfer implem.
async. transfer implem.
Web service class
method 1 implem.
method 2 implem.
method N implem.
SOAPmessages ✉
![Page 80: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/80.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/POST http://web.info/porto/
Accept: text/xmlContent-Type: text/xml
<S-ENV:Envelopexmlns:S-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<S-ENV:Body><!-- calling the method to get the available quantity --><v:getQuantity xmlns:v="http://web.info/porto/">
<!-- input data: the orange name --><v:arg0>blue</v:arg0>
</v:getQuantity></S-ENV:Body>
</S-ENV:Envelope>
invocation: a SOAP message – HTTP request
SOAP specific XML namespace
input parameter
![Page 81: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/81.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/HTTP/1.1 200 OK
Content-Type: text/xml;charset="utf-8"
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<tns:getQuantityResponse
xmlns:tns="http://web.info/porto/">
<!-- the transmitted result -->
<return>74</return>
</tns:getQuantityResponse>
</soap:Body>
</soap:Envelope>
invocation: a SOAP message – HTTP response
XML namespace defined by our service
![Page 82: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/82.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body>
<s:Fault><faultcode>flickr.error.0</faultcode><faultstring>Invalid SOAP envelope.</faultstring><faultactor>
http://www.flickr.com/services/soap/</faultactor><details>
Please see http://www.flickr.com/services/api/ for more details
</details></s:Fault>
</s:Body></s:Envelope>
error reporting – a SOAP fault message
here, wrong invocation of Flickr SOAP Web service
![Page 83: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/83.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
SOAP RPC for the Web
request + response including I/O parameters (+their data types) specified in XML
![Page 84: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/84.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
invocation: soap
SOAP messaging (serialization) protocol
request contains a serialized request-object
response includes a serialized response-object
![Page 85: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/85.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description
A language able to describe Web services is necessary
![Page 86: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/86.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description
A language able to describe Web services is necessary
How a Web service could be found?
What is the syntax of transported messages?
How data transfer is performed?
![Page 87: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/87.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description: wsdl
Web Service Description Language
a W3C recommendation (2007)
www.w3.org/TR/wsdl20/
![Page 88: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/88.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description: wsdl
A Web service is described in an XML format by a .wsdl document
data types (input arguments + received response)are defined by using XML Schema
specifies the syntax, not the semantics of a service
![Page 89: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/89.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description: wsdl
Service interface(abstract definition)
messages
operation
interface
Service implementation
(actual specification)
binding
service
endpoint
advanced
![Page 90: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/90.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
description: wsdl
Conceptually, it uses a data model represented by a set of components having various properties
advanced
![Page 91: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/91.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
How the existing Web services could be (re)found?
![Page 92: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/92.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
discovery: uddi
Universal Description, Discovery, and Integration
a common distributed catalogue of available (registered) Web services
current version: UDDI 3.0.2 – a OASIS standard (2004)
www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm
![Page 93: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/93.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
discovery: uddi
Universal Description, Discovery, and Integration
UDDI is in fact a Web service – invoked via SOAP
records are replicated
in the present, privately available (enterprise level)
![Page 94: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/94.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
discovery: uddi
advanced
service provider
service requester
UDDIregistry
service description
servicepublish
client application
search aprovider
providers & services
listing
service invocation
obtained result
![Page 95: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/95.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
advanced
client
UDDIregistry
query API
Web server
Webservice
1. searchesfor a service
2. obtains service URL
3. gets service
description
WSDL
4. sends SOAP request✉
7. gets data via SOAP ✉5.
invokes service
6. returnsresult
![Page 96: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/96.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
discovery: uddi – implementation
Software tools – examples:
jUDDI (Apache): http://juddi.apache.org/
able to manage a private UDDI catalogue
SOA Client – a Firefox extensionperforms queries against a UDDI catalogue
https://addons.mozilla.org/firefox/addon/soa-client/
advanced
![Page 97: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/97.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
regasire: uddi – implementare
advanced
inquiries on a jUDDI registry via the SOA Client extension
![Page 98: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/98.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
other specifications & initiatives (WS-*)
Addressing: WS-AddressingDiscovery: WS-Inspection, WS-Discovery
Messaging: Reliable HTTP (HTTPR), WS Attachments, WS-Routing,...
Security & authorization:WS-Security, WS-Trust, WS-Policy,...
Transaction support: WS-Coordination, WS-Transaction
advanced
![Page 99: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/99.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
other specifications & initiatives (WS-*)
Interaction between Web services and users:WS for Remote Portlets (WSRP),
WS for Interactive Applications (WSIA)
Workflows: Business Process Execution Language (BPEL),WS-Choreography, WS Flow Language (WSFL),…
Interoperability – WS-I initiative: www.oasis-ws-i.org
…and many others
advanced
![Page 100: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/100.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Web services’ presence is enough?
![Page 101: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/101.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
Data and services should be available on each device and from anywhere
consider the Web ubiquity
![Page 102: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/102.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
The need for a service oriented infrastructure
a communication “bus” for services/components
![Page 103: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/103.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
New services could be composed by already existing Web services and transparently accessed
![Page 104: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/104.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
New services could be composed by already existing Web services and transparently accessed
the need for a device-independent platform able to execute services
middleware providing functionalities + inter-operability
![Page 105: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/105.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
Supporting the Web content in “old” way(e.g., CGI, Web application servers) + Web services
Web servers “gateways” to Web pages and/or services
![Page 106: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/106.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
conceptual layered structure of a Web service-based platform
advanced
protocols (HTTP, SMTP,…)
discovery services: UDDI
service description: WSDL
service context (who, why,…)
core services (calendar, transactions,…)
legacy systems
backend server(s)
API
workflow engine
virtual machine
micro-/macro-serv.
Web service provider/user
![Page 107: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/107.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
Technologies, products, applications – examples:
Apache Axis2 (C and Java), Synapse, Tuscany (C++, Java)EasyWSDL – Java, Objective-C, Swift class generator
Eclipse SOA Tools – www.eclipse.org/soa/
goat (a SOAP client written in Go language)gSOAP (C and C++)
JAX-WS – Java Architecture for XML: Web Servicesnative support provided by .NET (C# et al.)
osa, Zeep (Python implementations)features provided by Play! framework (Java, Scala)
![Page 108: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/108.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development
Technologies, products, applications – examples:
built-in support in PHP5+Red Hat JBoss Enterprise SOA Platform (Java)
Savon (Ruby)soap, soap-server (Node.js) – nodejsmodules.org/tags/soap
SOAP::Lite (a Perl module)SOAPEngine (a SOAP client for iOS apps)
WSDL2ObjC (Objective-C)Boomerang, Wizdler (Chrome extensions)
…and others
![Page 109: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/109.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: soap public services
Various examples:
Continental Clothing, Culture24, FedEx, FitnessWizard, Who’s Hurt, InsideSales, LyricWiki, Magento, OnTime, PDFReactor, Salesforce, ScrumWorks Pro, SugarCRM,
TrackRoad Routing, ViaMichelin, Wikispaces, XML Soccer
![Page 110: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/110.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: case study
Invoking a public Web service by using its WSDL description
advanced
![Page 111: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/111.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: case study
Invoking a public Web service by using its WSDL description
we visit Programmable Web – http://www.programmableweb.com/ –
in order to obtain the list of SOAP invocable services
advanced
![Page 112: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/112.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
AonawareDictionary API
offers the description of functionalities
via WSDL
access without authentication
no developer key is required
advanced
![Page 113: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/113.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
we run Boomerang – a Chrome extension
by using the URL of WSDL Web service description,a list of implemented operations is provided:Define DictionaryInfo DictionaryList Match etc.
advanced
![Page 114: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/114.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Aonaware Dictionary APIusing the WSDL specification, we can learn the structure of
input parameters for Define operation
<s:element name="Define">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="word" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
XML Schema definition
advanced
Define operation has only one optional input argument of string type
![Page 115: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/115.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
advanced
a SOAP request performed with Boomerang extension
![Page 116: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/116.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:s="http://services.aonaware.com/webservices/">
<SOAP-ENV:Body>
<!-- specifies the operation (method) to be invoked -->
<s:Define>
<!-- input parameter; here, a term (a character string) -->
<s:word>
programming
</s:word>
</s:Define>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Dictionary API – invoking the operation (SOAP request)
advanced
![Page 117: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/117.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Aonaware Dictionary APIusing WSDL, we can know the data type of the response
provided by the Define operation (remotely executed)
<s:element name="DefineResponse"><s:complexType>
<s:sequence><s:element minOccurs="0" maxOccurs="1"
name="DefineResult" type="WordDefinition"/>
</s:sequence></s:complexType>
</s:element><s:complexType name="WordDefinition">
<s:sequence>…</s:sequence></s:complexType>
advanced
![Page 118: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/118.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body>
<DefineResponse xmlns="http://services.aonaware.com/webservices/"><DefineResult>
<Word>programming</Word><Definitions>
<Definition><Word>programming</Word><Dictionary><Id>wn</Id><Name>WordNet</Name></Dictionary><WordDefinition>program: a system…</WordDefinition>
</Definition><Definition> <!-- other definitions --> </Definition>
</Definitions> </DefineResult>
</DefineResponse> </soap:Body>
</soap:Envelope>
Dictionary API – obtained data (SOAP response)
advanced
![Page 119: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/119.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
advanced
a SOAP response visualized with Boomerang extension
![Page 120: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/120.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: php
SoapServer class serves SOAP requests
useful methods:addFunction () – adds a function processing a requestsetClass () – specifies a class implementing a service
handle () – “listens to” SOAP request from clientsfault () – emits an error message (SOAP fault)
setPersistance () – sets the connection persistence
details at http://php.net/manual/en/book.soap.php
![Page 121: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/121.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
dezvoltare: php
try { $server = new SoapServer (null, // no WSDL description is provided
array ('uri' => 'http://web.info/porto')); // service namespace
// adding implemented methods (i.e. functionalities, operations) $server->addFunction ('getQuantity'); $server->handle (); // waiting for SOAP requests
} catch (SOAPFault $exception) { // an exception occurred :(die ('Oh, a problem… ' . $exception);
}// function providing the quantity of an orange sortfunction getQuantity ($product) {
// usually, we’ll performed a SQL query, a (CSV, JSON, XML,…)// data processing, a call of other Web service, etc.switch ($product) {case 'gray' : return 33;case 'blue' : return 74;default : return 'n/a';
}}
see code example archive
![Page 122: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/122.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: php
SoapClient class performs SOAP requests to a service
methods of interest: __soapCall () – sends a SOAP request (an operation call) __getLastRequest () – offers info about the last request
__getLastResponse () – gets info about the response__setSoapHeaders () – sets various headers (see SoapHeader)
__setCookie () – sets a cookie
details at http://php.net/manual/en/book.soap.php
![Page 123: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/123.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: php
$client = new SoapClient (null, // we’ll not use WSDL
array ('location' => 'http://web.info/porto.php', // Web service address
'uri' => 'http://web.info/porto')); // namespace
// performing several calls of the desired method (operation)
foreach (array ('blue', 'gray', 'celestial') as $product) {
$res = $client->__soapCall ('getQuantity', array ($product));
echo "<p>The quantity of $product oranges
is <strong>$res</strong>.</p>";
}
![Page 124: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/124.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
dezvoltare: php
![Page 125: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/125.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Using annotations to specify the service
package ro.infoiasi.oranges;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class Oranges { // a class implementing the Web service
@WebMethod // a public method providing the quantity
public Integer getQuantity (String product) { … }
@WebMethod // another public method offering the price
public Double getPrice () {… }
}
advanced
development: java
see code examplearchive
![Page 126: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/126.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Publishing the Web service
package ro.infoiasi.oranges.service;
import javax.xml.ws.Endpoint;
import ro.infoiasi.oranges.*;
public class ExposedService {
public static void main (String[] args) {
try { // publishing the Web service to a specified URL
Endpoint.publish ("http://localhost:8888/porto", new Oranges ());
} catch (Exception e) { /* an exception occurred... */ }
}
}
advanced
development: java
![Page 127: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/127.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Accessing (consuming) the Web service by a client
public class ClientCravingForOranges {
public static void main (String[] args) {
try { // instantiating the service by using
// the proxy class already generated with 'wsimport' utility
OrangesService serv = new OrangesService ();
Oranges oranges = serv.getOrangesPort ();
// calling the methods exposed by service
System.out.println ("The stock of blue oranges has the value " +
oranges.getQuantity ("blue") * oranges.getPrice ());
} catch (Exception e) { /* an exception occurred... */ }
}
}
advanced
development: java
see code examplearchive
![Page 128: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/128.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
development: directions
Web services based on Java according to the ESB (Enterprise Service Bus) model
experiment GlassFish project – glassfish.java.net
Web services based on .NETWCF (Windows Communication Foundation)
http://msdn.microsoft.com/en-us/library/dd456779.aspx
also, study L. Alboaie, S. Buraga, Web Services, Polirom, 2006 [RO] www.slideshare.net/busaco/l-alboaie-s-buraga-servicii-web-concepte-de-baz-i-implementri-2006
advanced
![Page 129: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/129.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/“conclusion”
Web services
⫘“definitions”, characteristics, architecture,
SOAP, technologies and applications
![Page 130: Web Technologies - Alexandru Ioan Cuza University · PDF fileWeb Technologies Web services (I) ... invocation: soap –example RPC approach ☹ a remote procedure call, executed by](https://reader031.fdocuments.net/reader031/viewer/2022030501/5aad6c0a7f8b9a2e088e2bc3/html5/thumbnails/130.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
next episode: Web services with REST