Chapter 1 IntroDistributed
Chapter 1 IntroDistributed
1
Main contents
Introduction
Definitions
Goals
2
Distributed Systems Goals
By the end of the course, students will be able to:
1. Define a distributed system and give examples of several different
distributed systems paradigms.
2. Design and implement application level communication protocols using
TCP or UDP.
3. Design and implement a tool which works in a client-server architecture and uses TCP
or UDP for communication.
4. Design and implement a tool which works in a peer-to-peer architecture and uses TCP
or UDP for communication.
5. Explain fundamental problems in distributed systems relating to
synchronization, mutual exclusion, replication, and fault tolerance.
6. Design and implement applications which communicate using application level
multicast and epidemic communication mechanisms.
7. Build and test a distributed communication tool which is based on the Apache Kafka
Distributed Streaming Platform.
3
Distributed System: Definition
A distributed system is a piece of software that ensures:
a collection of autonomous computing elements that appears to its users as a
single coherent system
Two aspects in distributed system :
1) Autonomous computing elements, also referred to as nodes, be they hardware
devices or software processes and
2) Single coherent system: users or applications perceive a single system nodes
need to collaborate.
Each node is autonomous:
• Its own notion of time there is no global clock
• Leads to fundamental synchronization and coordination problems.
Collection of nodes and group:
• How to manage group membership?
• How to know you are communicating with an authorized member?
4
Why Distributed?
Because we need to…
Resource and Data Sharing
printers, databases, multimedia servers, ...
Availability, Reliability
the loss of some instances can be hidden
Scalability, Extensibility
the system grows with demand (e.g., extra servers)
Performance
huge power (CPU, memory, ...) available
Inherent distribution, communication
organizational distribution, e-mail, video
5
Problems of Distribution
Concurrency, Security
clients must not disturb each other
Privacy
unwanted communication such as spam
Partial failure
we often do not know where the error is (e.g., RPC)
Location, Migration, Replication
clients must be able to find their servers
Heterogeneity
hardware, platforms, languages, management
6
Characteristics of Distributed Systems
Differences between the computers and the way they communicate are hidden from
users.
Users and applications can interact with a distributed system in a consistent and
uniform way regardless of location.
7
Organization of distributed system
8
Coherent system
• The collection of nodes as a whole operates the same no matter where,
when, and how interaction between a user and the system takes place.
• Examples:
1. An end user cannot tell where a computation is taking place
2. Where data is exactly stored should be irrelevant to an application
3. Whether data has been replicated or not is completely hidden Key:
4. Distribution Transparency
5. Partial Failures
• It’s inevitable that at any time only a part of the distributed system fails. Hiding
partial failures and their recovery is often very difficult and in general impossible to
hide.
9
Middleware: OS of Distributed Systems
What’s inside?
• Commonly used components and functions that need not be
implemented by applications separately.
10
What do we want to achieve?
11
Sharing resources
• Canonical examples
– Cloud-based shared storage and files
– Peer-to-peer assisted multimedia streaming
– Shared mail services (think of outsourced mail systems)
– Shared Web hosting (think of content distribution networks)
Observation:
• “The network is the computer”
(quote from John Gage, then at Sun Microsystems)
12
Distribution Transparency
Transparency Description
Hide differences in data representation and how an object is accessed
Access
Location Hide where an object is located
Note: Distribution transparency is a nice goal, but aiming at full distribution transparency may be too much
13
Degree of Transparency
Observation: Aiming at full distribution transparency may be too much.
14
Exposing Distribution
• Exposing distribution may be good
– Making use of location-based services (finding your nearby
friends)
– When dealing with users in different time zones
– When it makes it easier for a user to understand what’s going on
( e.g., a server does not respond for a long time, report it as
failing).
• Conclusion:
– Distribution transparency is a nice a goal, but achieving it is a
different story, and it should often not even be aimed at.
15
Openness of Distributed Systems
Open distributed system
Be able to interact with services from other open systems, irrespective
of the underlying environment:
• Systems should conform to well-defined interfaces
• Systems should support portability of applications
• Systems should easily interoperate
Achieving openness
At least make the distributed system independent from heterogeneity of the
underlying environment:
• Hardware
• Platforms
• Languages
16
Policy versus Mechanisms
Scalability
At least three components are available:
• Number of users and/or processes (size scalability)
• Maximum distance between nodes (geographical scalability)
• Number of administrative domains (administrative scalability)
Observation
Most systems account only, to a certain extent, for size scalability. But,
today, the challenge lies in geographical and administrative
scalability.
18
Geographical scalability
19
Administrative scalability
Examples:
Exception: Several P2P networks
Computational grids:
share expensive resources • File-sharing systems (based,
between different domains. e.g., on BitTorrent)
Shared equipment: • Peer-to-peer telephony
how to control, manage, and use a (Skype)
shared radio telescope • Peer-assisted audio
constructed as large-scale shared streaming (Spotify)
sensor network?
20
Size Scalability
Root causes for scalability problems with centralized
solutions
21
Size Scaling Technique 1
Hide communication latencies
Avoid waiting for responses; do something else:
22
Offloading Work
B)
Distribution
Partition data and computations across multiple machines:
Move computations to
clients (e.g., Java applets) Decentralized naming services
(e.g., DNS)
24
Size Scaling Technique 3
Replication/caching
Make copies of data available at different machines:
25
Replication Problems
Observation
Applying scaling techniques is easy, except for one thing:
• Having multiple copies (cached or replicated), leads to
inconsistencies:
• modifying one copy makes that copy different from the rest.
• Always keeping copies consistent and in a general way requires
global synchronization (the same) on each modification.
• Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
26
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
• The network is reliable
• The network is secure
• The network is homogeneous
• The topology does not change
• Latency is zero
• Bandwidth is infinite
• Transport cost is zero
• There is one administrator
27
The End
28
CHAPTER TWO
29
Main contents
Architectural Styles
System Architectures
30
Definitions
Software Architectures:
Describe the organization and interaction of software components; focuses
on logical organization of software (component interaction, etc.)
System Architectures:
Describe the placement of software components on physical machines
The realization of an architecture may be
centralized (most components located on a single machine),
decentralized (most machines have approximately the same functionality), or
hybrid (some combination).
31
Architectural Styles
32
Architectural Styles
Figure 2-1. The (a) layered architectural style & (b) The object-based architectural style.
33
Data-Centered Architectures
34
Architectural Styles
36
Distribution Transparency
37
System Architectures for Distributed Systems
39
C/S Architectures
40
Transmission Failures
41
Idempotency
transmission
If first message was acted on, now the operation has been performed
twice
42
Layered (software) Architecture for Client-Server Systems
functionality
43
Examples
Web search engine
Interface: type in a keyword string
Processing level: processes to generate DB queries, rank replies, format
response
Data level: database of web pages
Stock broker’s decision support system
Interface: likely more complex than simple search
Processing: programs to analyze data; rely on statistics, AI perhaps, may
require large simulations
Data level: DB of financial information
Desktop “office suites”
Interface: access to various documents, data,
Processing: word processing, database queries, spreadsheets,…
Data : file systems and/or databases
44
Application Layering
Figure 2-4. The simplified organization of an Internet search engine into three different layers.
45
System Architecture
Multi-tiered architectures
Layer and tier are roughly equivalent terms, but layer typically implies software
46
Two-tiered C/S Architectures
47
Multitiered Architectures
Thin Fat
Client Client
Figure 2-5. Alternative client-server organizations (a)–(e).
48
Three-tiered Architectures
level architecture
49
Multitiered Architectures (3 Tier Architecture)
50
Centralized v Decentralized Architectures
Horizontal distribution (P2P): each node has roughly the same processing
51
The End
52
CHAPTER THREE
PROCESS
01/23/2024
53
3 Principles of Processes in Distributed Systems
Communication takes place between processes and a process is a
program in execution
From OS perspective, management and scheduling of processes is
important.
Other important issues arise in distributed systems include:
Multi threading is used to enhance performance by overlapping
communication and local processing.
How are clients and servers organized and server design issues?
Process or code migration to achieve scalability and to dynamically
configure clients and servers
01/23/2024 54
3.1 Threads and their Implementation
What a process is and how are processes and threads related?
Process tables or PCBs(Process control block) are used to keep track of
processes. There are usually many processes executing concurrently
• Processes should not interfere with each other.
• Sharing resources by processes is transparent.
• This concurrency transparency has a high price;
• Allocating resources for a new process and context switching take time.
01/23/2024
55
Threads can be used in both distributed and non distributed systems
Processes each with one thread One process with three threads
01/23/2024
56
Each thread has its own program counter, registers, stack, and state;
but all threads of a process share address space, global variables and
other resources such as open files, etc.
01/23/2024
57
Threads take turns in running
01/23/2024
58
In non distributed systems, threads can be used with shared data
instead of processes to avoid context switching overhead inter-process
communication (IPC)
Threads are usually provided in the form of a thread package. The package contains
operations to create and destroy a thread, operations on synchronization variables such as
mutexes and condition variables
Two approaches of constructing a thread package
a) Construct a thread library that is executed entirely in user mode (the OS is not aware
of threads) cheap to create and destroy threads;
Just allocate and free memory context switching can be done using few instructions;
store and reload only CPU register values
Disadvantage: invocation of a blocking system call will block the entire process to which
the thread belongs and all other threads in that process
b) Implement them in the OS' kernel
Let the kernel be aware of threads and schedule them expensive for thread operations
such as creation and deletion since each requires a system call
01/23/2024
60
Threads in Distributed Systems
Multithreaded Clients
Consider a web browser; fetching different parts of a page can be
implemented as a separate thread,
Each opening its own TCP connection to the server
Each can display the results as it gets its part of the page
Can also be achieved for replicated servers since each thread request can
be forwarded to separate replicas
Multithreaded Servers
Servers can be constructed in three ways
A. single-threaded process
It gets a request
Examines it
Carries it out to completion before getting the next request
01/23/2024 61
B. Threads
Threads are more important for implementing servers
e.g., a file server
The dispatcher thread reads incoming requests for a file operation from
clients and passes it to an idle worker thread
C. Finite-state machine
If threads are not available, it gets a request, examines it, tries to fulfill the
request from cache, else sends a request to the file system.
Model Characteristics
Single-threaded process No parallelism, blocking system calls
Threads Parallelism, blocking system calls (thread only)
Finite-state machine Parallelism, non blocking system calls
01/23/2024 62
Virtualization
The separation between having a single CPU and being able to pretend and
extended to other resources as well, leading to what is known as resource
virtualization.
The Role of Virtualization in Distributed Systems
Virtualization deals with extending or replacing an existing interface so as
to mimic the behavior of another system.
Allow legacy software (various applications, operating systems they were
developed for) to run on expensive mainframe hardware.
01/23/2024 63
Role of Virtualization
01/23/2024
64
Architectures of Virtual Machines
To understand the differences in virtualization, it is important to realize that
computer systems generally offer four different types of interfaces, at four
different levels:
1) An interface between the hardware and software, consisting of machine
instructions that can be invoked by any program.
2) An interface between the hardware and software, consisting of machine
instructions that can be invoked only by privileged programs, such as an
operating system.
3) An interface consisting of system calls as offered by an operating system.
4) An interface consisting of library calls, generally forming what is known
as an application programming interface (API). In many cases, the
aforementioned system calls are hidden by an API.
01/23/2024 65
Various interfaces offered by computer systems.
1. A process VM: we can build a runtime system that essentially provides an abstract
instruction set, that is to be used for executing applications.
Eg. Java virtual machine
2. System VM: is to provide a system that is essentially implemented as a layer completely
shielding the original hardware, but offering the complete instruction set of that same (or
other hardware) as an interface.
• Virtual Machine Monitor Eg. VMWare
01/23/2024
66
A process VM, with multiple instances of A VMM. with multiple instances of
(application, runtime) combinations (applications, OS) combinations.
01/23/2024 67
Anatomy of Clients and Servers
Two issues: user interfaces and client-side software for distribution transparency
A. Networked User Interfaces
To create a convenient environment for the interaction of a human user and a
remote server;
e.g. mobile phones with simple displays and a set of keys
GUIs are most commonly used
The X Window System (or simply X) as an example
It has the X kernel: the part of the OS that controls the terminal (monitor,
keyboard, pointing device like a mouse) and is hardware dependent
01/23/2024 68
b. Client-Side Software for Distribution Transparency
In addition to the user interface, parts of the processing and data level
in a client-server application are executed at the client side.
An example is embedded client software for ATMs, cash registers, etc.
moreover, client software can also include components to achieve
distribution transparency
e.g., replication transparency by means of client side solutions
01/23/2024 69
Servers and Design Issues
01/23/2024 70
b. Where do clients contact a server?
Using endpoints or ports at the machine where the server is running and
each server listens to a specific endpoint
How do clients know the endpoint of a service?
Globally assign endpoints for well-known services;
e.g. FTP is on TCP port 21, HTTP is on TCP port 80
To have running daemon, which keeps track of the current end points of
each service implemented by a co-located server.
01/23/2024 71
How Servers can be interrupted?
01/23/2024 72
Code Migration
01/23/2024
73
Reasons for Migrating Code
01/23/2024
74
Models for Code Migration
Code migration doesn’t only mean moving code; in some cases, it also means moving
the execution status of a program, pending signals, and other parts of the execution
environment
a process consists of three segments: code segment (set of instructions), resource
segment (references to external resources such as files, printers, ...), and execution
segment (to store the current execution state of a process such as private data, the
stack, the program counter)
alternatives for code migration
weak versus strong mobility
is it sender-or receiver-initiated
is it executed at the target process or in a separate process (for weak mobility);
migrate or clone process (for strong mobility)
01/23/2024
75
Weak Mobility
Transfer only the code segment and may be some initialization data; in
this case a program always starts from its initial stage, e.g. Java Applets
Execution can be by
The target process (in its own address space like in Java Applets) but the target
process and local resources must be protected (security) or
by a separate process; still local resources must be protected (security)
01/23/2024
76
Strong Mobility (or process migration )
01/23/2024
78
Resource-to-Machine Bindings
01/23/2024
79
Types of Process-to-Resource Bindings
01/23/2024 80
The End
01/23/2024
81
CHAPTER FOUR
Communication
01/23/2024 82
Objectives of the Chapter
Review of how processes communicate in a network (the rules or the protocols) and their
structures
Introduce most widely used communication models for distributed systems:
Network Protocols and Standards
Remote Procedure Call (RPC) -which hides the details of message passing and suitable for
client-server models
Remote Object (Method) Invocation (RMI)
Message-Oriented Middleware (MOM) -instead of the client-server model, think in terms of
messages and have a high level message queuing model similar to e-mail
Stream-Oriented Communication -for multimedia to support the continuous flow of messages
with timing constraints
Multicast Communication -information dissemination for several recipients.
Web services - offering general services to remote applications without immediate interactions
from end users.
01/23/2024 83
Network Protocols and Standards
01/23/2024 84
Two computers, possibly from different manufacturers, must be able to talk to
each other
For such a communication, there has to be a standard
The ISO OSI (Open Systems Interconnection) Reference Model is one of such
standards (7 layers )
TCP/IP protocol suite is the other; has 4 or 5 layers
OSI
Open – to connect open systems or systems that are open for communication with
other open systems using standard rules that govern the format, contents, and
meaning of the messages sent and received
These rules are called protocols
Two types of transport layer protocols: connection-oriented and connectionless
01/23/2024 85
Lower-Level Protocols
The three lowest layers of the OSI protocol suite. Together, these layers
implement the basic functions that encompass a computer network.
The physical layer
The data link layer
The Network layer
01/23/2024 86
a typical message as it appears on the network
01/23/2024 87
Transport Protocols: Client-Server TCP
01/23/2024 91
An adapted reference model for networked communication
01/23/2024 92
Remote Procedure Call
Stack pointer
parameter passing in a local procedure call: the the stack while the called procedure is active
stack before the call to read
01/23/2024 96
Parameter Passing
01/23/2024 a client and server interacting through two asynchronous RPCs 100
The above method combines two asynchronous RPCs and is
sometimes called deferred synchronous RPC
01/23/2024 101
RPC Programming Process
Dividing the program into local and remote procedures.
01/23/2024 102
RPC Dispatching (Procedure Location)
Proc A2
RPC
Dispatcher
Proc A1
Client Stub
Client Stub Proc B1 Proc B2
01/23/2024
103
RPC Interface Specification
Client Iface
Server Iface
01/23/2024
104
RPC General Build Procedure
Develop Interface
01/23/2024
105
Remote Object (Method) Invocation (RMI)
Resulted from object-based technology that has proven its value in developing non
distributed applications and it is an expansion of the RPC mechanisms
It enhances distribution transparency as a consequence of an object that hides its
internal from the outside world by means of a well-defined interface
Distributed Objects
An object encapsulates data, called the state, and the operations on those data, called
methods
Methods are made available through interfaces
The state of an object can be manipulated only by invoking methods
This allows an interface to be placed on one machine while the object itself resides
on another machine; such an organization is referred to as a distributed object
01/23/2024 106
The state of an object is not distributed, only the interfaces are; such objects
are also referred to as remote objects
The implementation of an object’s interface is called a proxy (analogous
to a client stub in RPC systems)
It is loaded into the client’s address space when a client binds to a
distributed object
Tasks: a proxy marshals method invocation into messages and
unmarshals reply messages to return the result of the method
invocation to the client
A server stub, called a skeleton, unmarshals messages and marshals
replies
01/23/2024 107
common organization of a remote object with client-side proxy
01/23/2024 108
Binding a Client to an Object
A process must first bind to an object before invoking its methods, which
results in a proxy being placed in the process’s address space
Binding can be implicit (directly invoke methods using only a reference to
an object) or explicit (by calling a special function)
An object reference could contain
Network address of the machine where the object resides
Endpoint of the server
An identification of which object
The protocol used ...
01/23/2024 109
Parameter Passing
There are two situations when invoking a method with object reference
as a parameter: the object can be local or remote to the client
Local object: a copy of the object is passed; this means the object is
passed by value
Remote object: copy and pass the reference of the object as a value
parameter; this means the object is passed by reference
01/23/2024 110
the situation when passing an object by reference or by value
two examples:
DCE Remote Objects
Java RMI
Read R1: pages 93-98
01/23/2024 111
Message Oriented Communication
RPCs and RMIs are not adequate for all distributed system applications
The provision of access transparency may be good but they have semantics
that is not adequate for all applications
example problems
They assume that the receiving side is running at the time of communication
and a client is blocked until its request has been processed
01/23/2024 112
Persistence and Synchronicity in Communication
general organization of a communication system in which hosts are connected through a network
01/23/2024 113
Communication can be
persistent or transient
asynchronous or synchronous
Persistent: a message that has been submitted for transmission is stored by
the communication system as long as it takes to deliver it to the receiver
e.g., email delivery, snail mail delivery
Persistent Transient
Asynchronous
Synchronous message-oriented; three forms
01/23/2024 115
persistent asynchronous persistent synchronous
communication communication
01/23/2024 116
transient asynchronous receipt-based transient
communication synchronous communication
The sender is blocked until the Strongest form; the sender is blocked
message is delivered to the receiver for until it receives a reply message from
further processing the receiver
01/23/2024 118
The Message-Passing Interface (MPI)
01/23/2024
Stream Oriented Communication
until now, we focused on exchanging independent and complete units of information
time has no effect on correctness; a system can be slow or fast
however, there are communications where time has a critical role
Multimedia
media
storage, transmission, interchange, presentation, representation and perception of
different data types:
text, graphics, images, voice, audio, video, animation, ...
movie: video + audio + …
multimedia: handling of a variety of representation media
end user pull
information overload and starvation
technology push
emerging technology to integrate media
01/23/2024 121
The Challenge
New applications
multimedia will be pervasive in few years (as graphics)
Storage and transmission
e.g., 2 hours uncompressed HDTV (1920×1080) movie: 1.12 TB
(1920×1080x3x25x60x60x2)
videos are extremely large, even after compressed (actually
encoded)
Continuous delivery
e.g., 30 frames/s (NTSC), 25 frames/s (PAL) for video
guaranteed Quality of Service
admission control
Search
can we look at 100… videos to find the proper one?
01/23/2024 122
Types of Media
Two types
Discrete media: text, executable code, graphics, images; temporal
relationships between data items are not fundamental to correctly
interpret the data
Continuous media: video, audio, animation; temporal relationships
between data items are fundamental to correctly interpret the data
A data stream is a sequence of data units and can be applied to discrete as
well as continuous media
Stream-oriented communication provides facilities for the exchange of
time-dependent information (continuous media) such as audio and video
streams
01/23/2024 123
Timing in transmission modes
asynchronous transmission mode: data items are transmitted one after the other,
but no timing constraints; e.g. text transfer
synchronous transmission mode: a maximum end-to-end delay defined for each
data unit; it is possible that data can be transmitted faster than the maximum
delay, but not slower
isochronous transmission mode: maximum and minimum end-to-end delay are
defined; also called bounded delay jitter; applicable for distributed multimedia
systems
a continuous data stream can be simple or complex
simple stream: consists of a single sequence of data; e.g., mono audio, video only
(only visual frames)
complex stream: consists of several related simple streams that must be
synchronized; e.g., stereo audio, video consisting of audio and video (may also
contain subtitles, translation to other languages, ...)
01/23/2024 124
Unicast, Broadcast versus Multicast
Key:
Unicast transfer
Broadcast transfer
Unicast Multicast transfer
One-to-one
Destination – unique receiver host
address
Broadcast
One-to-all
Destination – address of network
Multicast
One-to-many
Multicast group must be identified
Destination – address of group
01/23/2024 12
5
Multicast application examples
Financial services
Delivery of news, stock quotes, financial indices, etc
Remote conferencing/e-learning
Streaming audio and video to many participants (clients, students)
Interactive communication between participants
Data distribution
e.g., distribute experimental data from Large Hadron Collider
(LHC) at CERN lab to interested physicists around the world
01/23/2024 126
Introduction to Web Services
Microsoft coined the term “Web services” in June 2000, when the company
introduced Web services as a key component of its .Net initiative,
A new vision for embracing the Internet in the development, engineering and
use of software.
As others began to investigate Web services, it became clear that the
technology could revolutionise distributed computing.
Now, nearly every major vendor is marketing Web services’ tools and
applications and Web services are radically changing IT architectures and
partner relationships.
01/23/2024 127
Web services encompass a set of related standards that can allow any two
computers to communicate and exchange data via a network, such as the
Internet.
The primary standard used in Web services is the Extensible Markup
Language (XML) developed by the World Wide Web Consortium (W3C).
Developers use XML tags to describe individual pieces of data, forming XML
documents, which are text-based and can be processed on any platform.
01/23/2024 128
XML’s portability and its rapid adoption throughout the industry made it the obvious
choice for enabling cross-platform data communication in Web services.
XML provides the foundation for many core Web services standards:
1. SOAP,
2. WSDL,
3. UDDI,
Plus vocabularies of XML-based markup for a specific industry or purpose).
Almost every type of business can benefit from Web services such as:
Expediting software development,
Integrating applications and databases,
Automating transactions with suppliers, partners, and clients.
01/23/2024 129
SOAP (was originally called the Simple Object Access Protocol) is an XML
vocabulary that lets programs on separate computers to interact across a
network (via RPC).
WSDL (Web Services Description Language) is another XML vocabulary that
lets developers describe Web services and their capabilities in a standardised
format.
UDDI (Universal Description, Discovery and Integration) is a framework that
defines XML-based registries where businesses can publish information about
themselves and the services they offer.
01/23/2024 130
Web Services’ Applications
01/23/2024 131
The Advantages of Web Services
01/23/2024 132
Web Services’ challenges
01/23/2024 133
Web Services Basics
Web services:
Software programs that use XML to exchange information with other software via
common Internet protocols:
Scalable, e.g. multiplying two numbers together to an entire customer-
relationship management system,
Programmable - encapsulates a task,
Based on XML - open, text-based standard,
Self-describing - metadata for access and use,
Discoverable - search and locate in registries,.
01/23/2024 134
Architecture of Web Service
Application
Application Network Web code
Service
client
01/23/2024 135
Web Services
01/23/2024 136
Web Service Technology Stack
Description
Description Web Service
WSD
WSDL
SOAPLpkg
Packaging
Packaging Proxy request
SOAP pkg
response
Transport
Transport
Network
Network
01/23/2024 137
Step1. Write Web Service Method
Description
Description Web Service
WSD
WSDL
SOAPLpkg
Packaging
Packaging Proxy request
SOAP pkg
response
Transport
Transport
Network
Network
01/23/2024 138
Step2. Describe Web Service using WSDL
Description
Description Web Service
WSD
WSDL
SOAPLpkg
Packaging
Packaging Proxy request
SOAP pkg
response
Transport
Transport
Network
Network
01/23/2024 139
Step3. Write Proxy to Access Web Service
Description
Description Web Service
WSD
WSDL
SOAPLpkg
Packaging
Packaging Proxy request
SOAP pkg
response
Transport
Transport
Network
Network
01/23/2024 140
Step4. Write Client to Invoke Proxy
Description
Description Web Service
WSD
WSDL
SOAPLpkg
Packaging
Packaging Proxy request
SOAP pkg
response
Transport
Transport
Network
Network
01/23/2024 141
SOAP (Simple Object Access Protocol)
SOAP Messages Using SOAP as RPC (Remote Procedure Call) Messages
Request message
Response message
01/23/2024 142
The End
01/23/2024 143