Академический Документы
Профессиональный Документы
Культура Документы
Ans. Binding is the process whereby the client creates a local association for a given server in order to
invoke a remote procedure.
Dynamic binding allows a server to register the procedures it implements (steps 0 and 1). A
client can then ask for the address of the server implementing a given procedure (steps 2 and 3), obtain
the address from the binder (step 4), and make the call to the procedure (steps 5, 6, and 7), which then
proceeds as in the static case.
Dynamic binding creates many opportunities for improving RPC interaction. The directory
server could, for instance, keep track of which servers have been invoked and perform load balancing
so as to use resources as efficiently as possible. If the server changes location, it is enough to change
the entry in the directory server for requests to be rerouted to the new location. The result is the
decoupling of the client and the server, which adds a great deal of flexibility when deploying and
operating the system. The cost of this flexibility is additional infrastructure such as a directory server,
a protocol for interacting with the directory server, and primitives for registering procedures with the
server. These operations are, in principle, hidden from the programmer since they are performed by the
stubs. The server stub, for instance, registers the server procedures when the server is started. Similarly,
the client stub deals with the directory server when calls are made.
FUNCTIONALITIES:
All the functionality and machinery necessary to support RPC (IDLs, name and directory
servers, security and authentication, stub compilers, and so on).
Programming abstractions for dealing with TRPC. These include RPC, BOT, and EOT, and
may also include call back mechanisms and additional support for implementing complex
workflow structures (such as on commit, on abort, and so on).
A transaction manager for implementing TRPC. The transaction manager includes a wide range
of functionality: logging, recovery, locking, and so forth. In modern TP monitors, this
functionality is usually implemented in separate components so that there is no need to activate
them if they are not needed. Some systems also provide interfaces to developers to access the
functionality of these modules so that application can also take advantage of it (e.g., to log
additional information about the state of the application).
A monitor system in charge of scheduling threads, assigning priorities, load balancing,
replication, starting and stopping components, and so forth. The monitor system provides
performance and flexibility to the TP monitor.
A run-time environment that acts as the computational background for all the applications that
use the TP monitor. This run-time environment provides the resources and services applications
may need (transactional services, security services, transactional file system, and so on.)
Specialized components tailored for particular scenarios or systems. These components range
from proprietary protocols for interacting with mainframe based systems to persistent queuing
systems for asynchronous interaction.
A wide variety of tools for installing, managing, and monitoring the performance of all these
components.
4. Give the high level view of the CORBA system architecture and explain how server stubs are
created.
Ans.
CORBA's IDL supports many object-oriented concepts such as inheritance and polymorphism. As with
RPC, IDL specifications can be fed to an IDL compiler that generates a stub and a skeleton. The stub
is a proxy object that hides the distribution and makes method calls in the client look as if they were
local instead of remote. The stub code includes the declarations of the methods provided by the object
implementation and is linked with the client code to obtain the executable client application. The
skeleton, on the other hand, shields the server object from all issues concerning the distribution, so that
it can be developed as though function calls were coming from a local object. Technically, to develop
a client object that interacts with a given server, all a programmer needs to know is the server's IDL
interface. Of course, the developer must be aware of the semantics of the interface methods as well as
of other constraints (such as a specific ordering in which the methods should be invoked to achieve a
certain goal). These aspects are not formalized and are assumed to be described by other means, such
as through comments in the IDL specifications or by exchanging descriptive documents.
7. With neat figure explain the different parts of wsdl service specification.
Ans.
WSDL specifications are often characterized by an abstract part, conceptually analogous to
conventional IDL and a concrete part, that defines protocol binding and other information. The abstract
part is made of port type definitions, which are analogous to interfaces in traditional middleware IDLs.
Each port type is a logical collection of related operations. Each operation defines a simple exchange
of messages. As described in the previous section, a message is a unit of communication with a Web
service, representing the data exchanged in a single logical transmission. As in the case of other Web
services standards, these constructs are all defined in XML.
WSDL needs a type system so that the data being exchanged can be correctly interpreted at both ends
of the communication. By default, WSDL uses the same type system as XML Schemas, although the
WSDL document can specify a different type system if necessary. So, the first step in defining a WSDL
interface is to identify and define all the data structures that will be exchanged as parts of messages
between applications. The second step is to define messages that build on such data structures. In
WSDL, each message is a typed document divided into paris. Each part is characterized by a name and
by a type, referring to a type typically defined in XML schema. The third step in defining a WSDL
interface is to define operations, also called transmission primitives or interactions. There are four basic
operations: one-way, request-response, solicit-response, and notification. One-way and notification
operations involve a single message. In one-way interaction, the client invokes a service by sending a
message. In notifications, it is the service that sends the message. Request-response and solicit-response
involve the exchange of two messages. The final step in defining an abstract WSDL interface is to group
operations into port types.
InterfaceBindings. The binding specifies the message encoding and protocol bindings for all
operations and messages defined in a given port type. For instance, it could specify that an operation is
an RPC-style operation or a document-style operation. An InterfaceBinding could also specify that the
messages of an operation have to be communicated using the SOAP protocol and HTTP transport
bindings. WSDL allows communications protocols other than SOAP to be used as well, although this
is rarely the case in reality.
Ports. Also known as EndPoints, ports combine the InterfaceBinding information with a network
address (specified by a URI) at which the implementation of the port type can be accessed. Again, this
is not needed in conventional middleware due to the presence of a centralized infrastructure
that manages addresses in a transparent manner.
Services. Services are logical grouping of ports. Note that, at least in principle, this also means that a
specific WSDL service could be available at different Web addresses (for example, different URIs
corresponding to different server machines, maybe one in Europe and one in Australia). It
could also combine very different port types.
Business Entity. It describes an organization that provides Web services. It lists the company's
name, address, and other contact information.
Business Service. This element describes a group of related Web services offered by a business
Entity. Typically, a business Service will correspond actually to one kind of service (such as a
procurement or a travel reservation service), but provided at different addresses, in multiple
versions, and through different technologies (e.g., different protocol bindings). Business
services, like business entities, can also include classification information. A business Entity
entry can include multiple business Service elements, but a business Service belongs to one and
only one business Entity (Figure 6.13).
Binding Template. This element describes the technical information necessary to use a
particular Web service. Essentially, it defines the address at which the Web service is made
available along with a set of detailed information, such as references to documents (called t
Models) describing the Web service interface or other service properties. It also defines how
operation parameters should be set and the default values for such parameters .A business
Service entry can include multiple binding Template elements(one for each interface or
address), but a binding Template belongs to one and only one business Service.
tModel. The cryptic name stands for "technical model" , and it is a generic container for any
kind of specification. For example, it could represent a WSDL service interface, a classification,
or an interaction protocol, or it could describe the semantics of an operation. Unlike the previous
entities, tModels are not subject to parent-child relationships, and can be referred to by other
entities to denote conformance to an interface, or to classify businesses or services.
10. Explain the three forms of interaction between a coordinator and its participants in WS
Coordination with neat figure.
Ans. WS-Coordination defines three forms of interactions between a coordinator and its participants:
Activation. A participant requests a coordinator to create a new coordination context. New contexts
are created whenever a participant initiates an instance of coordination type (a conversation). This
happens, for example, when a Web service initiates an atomic transaction.
Registration. A participant registers as a coordination protocol participant with a coordinator. By
registering, a Web service declares that it is participating in the execution of the protocol and that it
should be notified when the corresponding steps of the coordination protocol are executed. For example,
a Web service can register as a participant in an atomic transaction, thereby providing information about
its role and its port.
Protocol-specific interactions. The coordinator and its participants exchange messages that are
specific to a coordination protocol. For example, the coordinator can send commit or abort messages to
the participants, and specifically to the ports they have indicated in the registration phase.
Interactions for activation and registration are independent of the type of coordination, i.e., they are
horizontal. In other words, they do not change from one coordination type to another. Hence, the
interfaces that should be implemented by coordinators and participants for these two types of
interactions are part of the WS-Coordination specification. On the other hand, interfaces needed for
protocol-specific interactions vary from protocol to protocol. As a result, WS-Coordination does not
specify those interfaces. Two port types are defined for the activation: ActivationCoordinatorPortType,
to be implemented by the coordinator, and ActivationRequestorPortType, to be implemented by a
participant (Figure 7.15). A Web service that initiates a new coordination sends a
CreateCoordinationContextRequest message to the ActivationCoordinatorPortType of the coordinator.
As part of this request, the Web service specifies the type of coordination it wants to initiate (e.g., atomic
transaction) as well as a reference to (the address of) its own ActivationRequestorPortType. The latter
is needed so that the coordinator knows where to send its response. The coordinator creates a new
context and sends it back to the Web service in a CreateCoordinationContextResponse message.
Registration in WS-Coordination
Although protocol-specific interfaces are not defined in WS-Coordination since they vary from protocol
to protocol, it is assumed that these too will come in pairs. For each protocol (say X), there will be a
participant port type (usually named XParticipantPortType) as well as a coordinator port type
(XCoordinatorPortType), as shown in Figure 7.17. The exact references to these ports are exchanged
between the coordinator and the participant through the registration process described above. To
simplify the discussion, we use the notation XCoordinatorPortType to denote the coordinator's protocol
specific interfaces and XParticipantPortType to denote the participant's protocol specific interfaces.
12. What is Atomic Transaction? Give the different protocols used in Atomic
Transaction.
The first coordination type defined by WS-Transaction is Atomic Transaction. This coordination type
is composed of several coordination protocols, executed in sequence or in alternative by the
participating Web services or by the coordinator, depending on what must be done during the different
phases of a distributed transaction. Five protocols make up this coordination type: Completion, 2PC,
Completion WithAck, PhaseZero, and OutcomeNotification.
When a Web service wishes to complete a transaction, it executes a Completion protocol with the
coordinator. Its purpose is to inform the coordinator that it should start a 2PC protocol to verify the
outcome of the transaction and ask the participants to either commit or abort. 2PC is the standard two-
phase commit protocol with a prepare phase and a commit or abort phase. Once 2PC is executed and
the transaction is completed, the outcome is returned to the Web service. In some cases, before actually
starting the 2PC protocol, the coordinator may execute a PhaseZero protocol with the other participants.
The intention is to let all participants know that a 2PC protocol is about to commence1 . At any point
during or after the execution of a 2PC protocol, a participant can query the coordinator about the
outcome of the transaction (whether it has been committed or not) using the OutcomeNotification
protocol. Finally, the Completion WithAck protocol can be initiated by a Web service as an alternative
to the Completion protocol. The difference is that in the Completion WithAck protocol the coordinator
has to remember the outcome of a transaction without discarding it, until the requesting Web service
sends an acknowledgment that it has received the outcome. Corresponding to these protocols, the
standard specifies the following port types to be implemented by the coordinator (in addition to those
specified in WS-Coordination):
CompletionParticipantPortType and CompletionCoordinatorPortType
Completion WithAckParticipantPortType and Completion WithAckCoordinator PortType
PhaseZeroParticipantPortType and PhaseZeroCoordinatorPortType
2PCParticipantPortType and 2PCCoordinatorPortType
OutcomeNotificationParticipantPortType and OutcomeNotificationCoordinator Port Type
A RosettaNet PIP specification describes how to implement a collaborative coordination protocol. Each
PIP specification includes a Technical Dictionary (that describes the components that are exchanged as
part of the process) and a Message Guideline document that includes a PIP-specific version of the
Business Dictionary (specifying the business properties and the PIP protocols) for
communicating properties between networked applications. RosettaNet distinguishes between two
categories of messages involved in PIP business document exchanges: "business action" messages and
"business signal" messages. Business actions are messages that contain business documents, such as a
Purchase Order or a Billing Statement. Business signals are messages
that indicate a positive or negative response to acknowledge the receipt of a business action message.
RosettaNet follows a four-step methodology to develop PIP specifications:
1. Develop an "as-is" business model that describes how partner types (supply chain business entities)
do business today.
2. Re-engineer this model to specify how partner types will use Web-based interactions to do business.
3. Create a PIP Blueprint document from the re-engineered process that describes how the partner roles
(roles that business partners play in the supply chain) will achieve a business objective. The RosettaNet
members vote to approve this blueprint.
4. Create a PIP protocol that dictates to system architects and software engineers how networked
applications will interoperate.