Web Services 3 Flashcards
simple, lightweight XML protocol for exchanging structured and typed information on the Web
SOAP
Overall design goal: KISS
- Can be implemented in a weekend
- Stick to absolutely minimum of functionality
Make it Modular and Extensible
- No application semantics and no transport semantics
- Think “XML datagram”
SOAP Contains Four Parts
- An extensible envelope expressing (mandatory)
- A set of encoding rules for data (optional)
- A Convention for representation RPC (optional)
- A protocol binding to HTTP and HTTP-EF (optional)
An extensible envelope expressing (mandatory)
- what features and services are represented in a message;
- who should deal with them,
- whether they are optional or mandatory.
A set of encoding rules for data (optional)
- Exchange instances of application-defined data types and directed graphs
- Uniform model for serializing abstract data models that can not directly be expressed in XML schema
A Convention for representation RPC (optional)
How to make calls and responses
SOAP Example in HTTP
SOAP - HTTP BINDING
HTTP REQUEST
SOAP BODY
SOAP HEADER
SOAP ENVELOPE
SOAP Example in SIP
SOAP - SIP Binding
SIP Request
SOAP Body
SOAP Envelope
Session Initiation Protocol
a signaling protocol that enables the Voice Over Internet Protocol (VoIP) by defining the messages sent between endpoints and managing the actual elements of a call.
HTTP
Used for transferring web content like HTML pages.
TCP
Ensures reliable, ordered delivery of data packets.
UDP
Provides fast but unreliable data transmission, commonly used for real-time applications like streaming and gaming.
- Connection-oriented, ensuring reliable, ordered data transmission.
- Performs error-checking and retransmission.
- Higher overhead, suitable for applications requiring reliability like web browsing and file transfer.
TCP
- Connectionless, offering faster but less reliable transmission.
- Does not guarantee packet order or error recovery.
- Lower overhead, preferred for real-time applications like streaming, gaming, and VoIP.
UDP
Note Again: SOAP is a Protocol!
a. What does this mean?
* It is not a distributed object system
* It is not an RPC system
* It is not even a Web application
b. Your application decides what your application is!
* You can build a tightly coupled system
…or…
* You can build a loosely coupled system
Evolvability
ability of a system to adapt and change easily over time to meet new needs or challenges
How are features and services deployed in the Web?
- Often by extending existing applications
- Spreading from in the small to the large over time
This means that SOAP is Designed for Evolvability:
- Applications have different capabilities at all times
- We have to support this
This requires that SOAP is Designed for Evolvability:
- Applications supporting a particular feature or service should be able to employ this with no prior agreement;
- Applications can require that the other party either understand and abide by the new feature or service or abort the operation
Why Not Roll My Own XML Protocol?
- SOAP allows you to define your particular feature or service in such a way that it can co-exist with other features and services within a SOAP message
- What is a feature or a service?
a. What is a feature or a service?
b. Authentication service
c. Payment service
d. Security service
e. Transaction management service
f. Privacy service - Not owning the message means easier deployment and better interoperability
What is a feature or a service?
- Authentication service
- Payment service
- Security service
- Transaction management service
- Privacy service
Interoperability
refers to the ability of different systems, devices, or components to seamlessly work together, exchange data, and communicate effectively, regardless of their differences in technology, platforms, or protocols.
is the intersection of features and service supported by two or more communicating peers
Interoperability
refers to the capability of a system to easily add new features, functionalities, or capabilities without significantly altering its existing structure or core functionality.
Extensibility
Extensibility
Cost per new feature/service increases over time
Evolvability
Cost per new feature/service is flat