SlideShare a Scribd company logo
1 of 130
Download to read offline
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web Technologies
Web services (I)
⫘
from SOA to SOAP, WSDL, and UDDI
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
“We treasure what we understand.”
Kevin Budelmann
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
What are the Web purposes?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Creating and interacting
with an inter-human communication space
knowledge sharing
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Creating and interacting
with an inter-human communication space
knowledge sharing
social Web (“Web 2.0”), Web of data (semantic Web),…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Making use of the computational power
the access to the Web can be achieved
by using devices with limited resources
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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,…
performanceassuring scalability
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
remark
The interaction between humans and Web
is made by using Web forms and exploring links
via Web addresses – URIs
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
How can be accessed and processed the
resources – data, information, knowledge –
available on the Web?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web developers’ needs
Multi-platform, loose-connected solutions
Internet/Web-based integration (in real-time)
of applications, services, and systems
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web developers’ needs
Multi-platform, loose-connected solutions
data should be described in order
to be “understood” by computers and
to be easily interconnected
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web developers’ needs
Pluggable & versatile services
Software as a Service – SaaS
Application Service Provider – ASP
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
Dividing applications into – independent – services
that can be composed, meant to connect and
orchestrate in a spontaneous way
in the business/technical processes
Web component-based software
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
“The Web is the computer”
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
“The Web is the computer”
using the architecture(s) that…
provide support for communication paradigms
– based on current Web technologies –
between heterogeneous applications
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
“The Web is the computer”
using the architecture(s) that…
allow a transparent manner to locate services
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
“The Web is the computer”
using the architecture(s) that…
facilitate adding, replacing, removing services
in a dynamic way
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
solution
“The Web is the computer”
using the architecture(s) that…
hide the system details
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soluțieWeb as a middleware technology
advanced
client
calls service
(at proxy level)
service
waits 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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
How about Web services?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Software providing a specific functionality
resource access – Instagram, Pinterest, Slideshare, Vimeo
news aggregation – Feedly, Reddit
mapping – Google Maps, Nokia HERE, OpenStreetMap
instant messaging – Snapchat, Telegram, Twilio
processing – IBM Watson, TensorFlow, Skyttle,…
Web statistics – e.g., Google Analytics
social networks – Facebook Open Graph, Twitter
spelling checking – Bing Spell Check, xSpell,…
data storage – Amazon S3, Dropbox, OneDrive, etc.
…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
servicii web
used – remotely –
by other applications/services
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Accessed – in a standardized way – via Web
addressing resources with URI
data transfer via HTTP
messages having various data formats: CSV, JSON, XML,…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: example
A service provided by a travel agency
offering – and, possibly, selling –
various holiday formulas
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: example
A service provided by a travel agency
uses other (software) services
available on the Web
mapping + weather services
accommodation services
financial transactions– e.g., e-banking
transport services
social recommendation services
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
How can we implement a service?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Standard implementation
using Web application servers + frameworks
ASP.NET, Django, Node.js,
PHP (CodeIgnater, Laravel,…),
Play!, Ruby on Rails,…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Traditionally, the application provides
a user-interface available on the Web
markup language – e.g., HTML
styles for content presentation – CSS
interactivity via JavaScript (+libraries/frameworks)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Traditionally, the application provides
a user-interface available on the Web
requests are captured via forms
+ hypermedia links
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
Traditionally, the application provides
a user-interface available on the Web
human users should interpret the labels
and dialog fields
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
How can we obtain the response
in order to be (re)used in our programs?
processing the data from HTML codeWeb 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>
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service
How can we obtain the response
in order to be (re)used in our programs?
processing the data from HTML codeWeb scraping
any markup modificationrewriting the program
that process the data from HTML document
???!
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: characteristics
Web services made explicit
the implicit indications
the input data and result can be (rigorously)
specified by using various validation techniques
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: characteristics
Used in the interaction between applications
dynamic
lack of a-priori knowledge about the interaction
with other Web applications/services
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: characteristics
Endpoints used for public data processing
– possibly, via open APIs
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web service: characteristics
Developed on the basis of current platforms,
architectures, technologies, and languages
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
There is an architectural model
for developing Web services?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Service Oriented Architecture
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
An architectural style for designing and developing
applications considered as services
that can be invoked by other applications
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
A software development paradigm
adopting the use of services,
that provides functionalities required by users
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Components of the system as a whole have
a high degree of independence (de-coupling)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Services can be re-composed/re-orchestrated
according to the requirements
or deployment context
composable services
reusable services
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Services will not depend on
the state of communication (statelessness)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
from traditionally developed
Web applications
to service-based architectures
Jay O’Connor (2014)
http://tinyurl.com/l62tjab
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Douwe Osinga & Jon Tirsen, “Architecture of the Triposo travel guide”,
QCon London, 2013 – www.infoq.com/presentations/triposo-architecture
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Can we specify in a standardized format
the input data and the response provided
by the Web service?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation
The need for a data communication (transport)
protocol between heterogeneous
platforms/applications
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation
The protocol should offer a mechanism of invoking and
transmitting data in a structured way
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: solution
SOAP
sophisticated, more flexible
W3C standards (2007)
commonly used in the enterprise applications
http://www.w3.org/TR/soap12/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: solution
Adopting other representations
CSV (Comma Separated Values)
POX (Plain Old XML)
JSON (JavaScript Object Notation)
the developer creates its own serialization methods
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
Goal:
a protocol of communication between
two machines (client and server)
for XML data interchange
platform/language-independent
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
A W3C standard (2003, 2007)
www.w3.org/TR/soap12-part0/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
The “dialog” between applications takes place
by using SOAP messages  XML documents
envelope
header + body
XML messaging
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
SOAP Envelope
SOAP Header
header block
header block
SOAP Body
body block
body block
body block
body block
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
Can describe a model for content processing
SOAP encoding rules
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
Can specify a route from sender to receiver,
via an optional intermediary (proxy)
SOAP routing
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
The headers could be processed by
different intermediaries
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
By using SOAP, it can be specified a call of
a method available on other computer
SOAP RPC representation
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocare: soap
SOAP message exchange
SOAP system
XML encoding
✉
data packing
SOAP system
XML decoding
✉
data unpacking
☁transport
protocol
transport
protocol Internet
(intermediaries)
SOAP message
binding
sender receiverany data type
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
(instead of) break
ChristophNiemann–https://tmblr.co/ZmltKx22m7PKs
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap – example
TCP/IP classical approach ☹
socketsa user-defined port (e.g., 7777)
+ a convention of data exchange is specified
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap – example
SOAP approach – XML messaging
exchanged data is wrapped into SOAP “envelopes”
(messages), transported via HTTP
platform- and language-independent
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Invoking a Web service – RPC style
Implemented
Web service
Client invoking
a Web service
calls method 2
of Web service
proxy class
sync.
transfer
implem.
async.
transfer
implem.
Web service class
method 1 implem.
method 2 implem.
method N implem.
SOAP
messages ✉
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
POST http://web.info/porto/
Accept: text/xml
Content-Type: text/xml
<S-ENV:Envelope
xmlns: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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
<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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
SOAP  RPC for the Web
request + response including I/O parameters
(+their data types) specified in XML
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocation: soap
SOAP  messaging (serialization) protocol
request contains a serialized request-object
response includes a serialized response-object
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
description
A language able to describe Web services
is necessary
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
description: wsdl
Web Service Description Language
a W3C recommendation (2007)
www.w3.org/TR/wsdl20/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
description: wsdl
Service interface
(abstract definition)
messages
operation
interface
Service
implementation
(actual specification)
binding
service
endpoint
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
description: wsdl
Conceptually, it uses a data model represented by
a set of components having various properties
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
How the existing Web services
could be (re)found?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
discovery: uddi
advanced
service
provider
service
requester
UDDI
registry

service
description
service
publish
client
application
search a
provider
providers
& services
listing
service invocation
obtained result
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
advanced
client
UDDI
registry 
query API
Web server
Web
service
1. searches
for a service
2. obtains
service URL
3. gets
service
description

WSDL
4. sends SOAP request ✉
7. gets data via SOAP ✉
5.
invokes
service
6.
returns
result
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
discovery: uddi – implementation
Software tools – examples:
jUDDI (Apache): http://juddi.apache.org/
able to manage a private UDDI catalogue
SOA Client – a Firefox extension
performs queries against a UDDI catalogue
https://addons.mozilla.org/firefox/addon/soa-client/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
regasire: uddi – implementare
advanced
inquiries on a jUDDI registry via the SOA Client extension
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
other specifications & initiatives (WS-*)
Addressing: WS-Addressing
Discovery: 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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web services’ presence is enough?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Data and services should be available
on each device and from anywhere
consider the Web ubiquity
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
The need for a service oriented infrastructure
a communication “bus” for services/components
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
New services could be composed by already
existing Web services and transparently accessed
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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 Services
native support provided by .NET (C# et al.)
osa, Zeep (Python implementations)
features provided by Play! framework (Java, Scala)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development: case study
Invoking a public Web service
by using its WSDL description
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Aonaware
Dictionary API
offers the
description of
functionalities
via WSDL
access without
authentication
no developer key
is required
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Aonaware Dictionary API
using 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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
advanced
a SOAP request performed with Boomerang extension
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
<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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Aonaware Dictionary API
using 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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
<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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
advanced
a SOAP response visualized
with Boomerang extension
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development: php
SoapServer class serves SOAP requests
useful methods:
addFunction () – adds a function processing a request
setClass () – specifies a class implementing a service
handle () – “listens to” SOAP request from clients
fault () – emits an error message (SOAP fault)
setPersistance () – sets the connection persistence
details at http://php.net/manual/en/book.soap.php
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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 sort
function 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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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>";
}
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
example
archive
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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
example
archive
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
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 .NET
WCF (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
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
“conclusion”
Web services
⫘“definitions”, characteristics, architecture,
SOAP, technologies and applications
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
next episode: Web services with REST

More Related Content

What's hot

Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...
Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...
Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...Sabin Buraga
 
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model Web Technologies (7/12): XML & HTML Data Processing. Document Object Model
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model Sabin Buraga
 
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...Sabin Buraga
 
Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?Sabin Buraga
 

What's hot (7)

Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...
Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...
Web Technologies (11/12): Web Microservices. Asynchronous Web Interaction. We...
 
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model Web Technologies (7/12): XML & HTML Data Processing. Document Object Model
Web Technologies (7/12): XML & HTML Data Processing. Document Object Model
 
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...
Web Technologies (3/12): Web Programming – Web Application Architecture. Web ...
 
Why 5-Star Data?
Why 5-Star Data?Why 5-Star Data?
Why 5-Star Data?
 
Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?
 
Jarrar: RDFa
Jarrar: RDFaJarrar: RDFa
Jarrar: RDFa
 
Januaria
JanuariaJanuaria
Januaria
 

Similar to Web Technologies (9/12): Web Services. From Service-Oriented Architectures to SOAP, WSDL, and UDDI

Web05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb phpWeb05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb phpn0n0semeni
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)PCG Solution
 
Cse rover-technology-report
Cse rover-technology-reportCse rover-technology-report
Cse rover-technology-reportnagxenapp
 
Orizonturi Web (Web Horizons)
Orizonturi Web (Web Horizons)Orizonturi Web (Web Horizons)
Orizonturi Web (Web Horizons)Sabin Buraga
 
Sears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligencehrpiza
 
Sears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligencehrpiza
 
Graphical User Interface Testing
Graphical User Interface TestingGraphical User Interface Testing
Graphical User Interface Testingtechgajanan
 
Linked Data Workshop at I-Semantics 2010
Linked Data Workshop at I-Semantics 2010Linked Data Workshop at I-Semantics 2010
Linked Data Workshop at I-Semantics 2010Andreas Blumauer
 
Web 2.0 Instructional Tools
Web 2.0 Instructional ToolsWeb 2.0 Instructional Tools
Web 2.0 Instructional ToolsAntwuan Stinson
 
The Web, The User and the Library (and why to get in between)
The Web, The User and the Library (and why to get in between)The Web, The User and the Library (and why to get in between)
The Web, The User and the Library (and why to get in between)Guus van den Brekel
 
G0373049057
G0373049057G0373049057
G0373049057theijes
 
Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Michael O'Sullivan
 

Similar to Web Technologies (9/12): Web Services. From Service-Oriented Architectures to SOAP, WSDL, and UDDI (20)

World Wide Web
World Wide WebWorld Wide Web
World Wide Web
 
Web05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb phpWeb05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb php
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
 
Cse rover-technology-report
Cse rover-technology-reportCse rover-technology-report
Cse rover-technology-report
 
Widget SOA
Widget SOAWidget SOA
Widget SOA
 
Webware Webinar
Webware WebinarWebware Webinar
Webware Webinar
 
webiOS
webiOSwebiOS
webiOS
 
Silicon Valley Semantic Web Meet Up
Silicon Valley Semantic Web Meet UpSilicon Valley Semantic Web Meet Up
Silicon Valley Semantic Web Meet Up
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Orizonturi Web (Web Horizons)
Orizonturi Web (Web Horizons)Orizonturi Web (Web Horizons)
Orizonturi Web (Web Horizons)
 
Sears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligence
 
Sears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligence
 
Graphical User Interface Testing
Graphical User Interface TestingGraphical User Interface Testing
Graphical User Interface Testing
 
Linked Data Workshop at I-Semantics 2010
Linked Data Workshop at I-Semantics 2010Linked Data Workshop at I-Semantics 2010
Linked Data Workshop at I-Semantics 2010
 
A Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdogA Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdog
 
Web 2.0 Instructional Tools
Web 2.0 Instructional ToolsWeb 2.0 Instructional Tools
Web 2.0 Instructional Tools
 
The Web, The User and the Library (and why to get in between)
The Web, The User and the Library (and why to get in between)The Web, The User and the Library (and why to get in between)
The Web, The User and the Library (and why to get in between)
 
G0373049057
G0373049057G0373049057
G0373049057
 
Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...
 
bratt-W3C-MWIp[1]
bratt-W3C-MWIp[1]bratt-W3C-MWIp[1]
bratt-W3C-MWIp[1]
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Web Technologies (9/12): Web Services. From Service-Oriented Architectures to SOAP, WSDL, and UDDI