I was studying implementation of web services (WCF - Windows Communication Framework) which used Simple Object Access Protocol (SOAP) and realized there are far too many concepts involved. In my research for making me better co-relate these concepts, I ended up creating basic definitions of the the concepts and finally make a pictorial representation of the components and represent how they relate with each other (which can be found in my next blog post called "Pictorial representation of Service Oriented Architecture (SOA)").
The components are:
Backend
|
Endpoint
|
Repository
|
Service
Domain
|
BPEL
|
Enterprise
service bus
|
Request-response
|
Service
Lifecycle
|
BPMN
|
Heterogeneity
|
REST
|
SOAP
|
Choreography
|
Interface
|
Reusable
|
Versioning
|
Collaboration
|
Interoperability
|
Scalability
|
WCF
|
Composable
|
Orchestration
|
Security
|
Workflow
|
Consumer
|
Performance
|
Self-Contained
|
WS-*
|
Contract
|
Provider
|
Serialization
|
WSDL
|
DCOM
|
Registry
|
Service
(Small s)
|
WWF
|
De-serialization
|
Reliability
|
Service
(Big S)
|
Backend:
It is the conceptual part of a Service
where the database should reside. All the data that is used for processing and
needs to be stored should exist in this particular location. In the perspective
of distributed systems, it can be interpreted that each system can have their unique
and independent back ends. Another aspect that services should enforce is that,
the services should not access data from each other’s service domains or
systems, but they can interact with the services which are associated with them.
Endpoint:
It is a link or a point which exposes
the service to the client for utilization. Without the exposed endpoint a
consumer / client cannot consume the service. The endpoint should expose the
metadata that is needed by the client.
Repository:
It represents a business view of a
service. It showcases the interfaces, the contracts and Service Level
Agreements (SLA) that exist. The low level details about the content that exits
in the repository can be found in the registries. Repository helps in designing
and developing services but the actual implementation of the repository is
actually done in registries, they contain the technical details.
Service Domain:
Service domains represent individual
systems that exist in a System as a whole. For example, in a passport issuing
system, there are various individual systems that exist such as, Homeland
Security system, Department of Transport System and Police Department system.
These systems work together to work for the Passport Issuing system as a whole.
These domains may have their own back ends / databases.
BPEL:
Business Process Execution Language
(BPEL) is an XML based language used to orchestrate services to composed
services or process services. The result of this language is a web service.
This language is helpful since it helps to translate business requirements to
the Information technology requirements. This language enables IT during
implementation of the business requirements.
Enterprise
Service Bus:
This is a concept of how distributed
systems should work together and how communication between them should take
place. An important feature that ESB embraces is the interoperability of
services. Its core task is to showcase a way of providing connectivity, routing
and data transformation so that systems can communicate with services. A
problem that ESB might create is that, it obscures the dependencies among
systems.
Request-response:
This is a message exchange pattern
that allows communication to take place. It is normally initiated by the client
/ consumer. It is received by the server / service and further operations take
place. The client waits for the response of the server. There can be a
synchronous or an asynchronous request / response that could take place and it
is solely depends on the client and server’s configuration.
Service
Lifecycle:
The service lifecycle can be defined
as the life of the service. The service has a lifespan, it starts when it’s
called / initiated and ends when the service is executed completely or the
session between the client and the service ends. There might be various
operations that need to take place during the lifecycle.
BPMN:
Business Process Modeling Notation
is a tool that can be used for preparing a business process that can be
visualized in the terms of services, service domains and processes. It is a
pictorial description of the business process. This helps in IT implementation
especially when segregating services among the various domains.
Heterogeneity:
It is a theory in services implementation which
states that no matter what operating system, programming languages and data
models they use they should be able to communicate and work together without
any problem. This theory is used in Windows Communication Foundation (WCF) so
that a Java application can communicate with a .NET based application.
REST:
It is an alternative to Web Services
that allows the same type of communication that WCF allows but in its unique
manner. It refers to a collection of network architecture principles that focus
on simple and stateless access to resources.
SOAP:
Simple Object Access Protocol is a
basic protocol used by web services. It uses XML based format that defines the
format of the header and the body of a web service message.
Choreography:
It is a way of aggravating services
to business processes. It does not compose services to a new service or a
central service that has total control over the whole process. It also defines
rules and policies that enable different services to collaborate to form a
business process.
Interface:
It is an input/output region in the
service, which allows the client / service to interact with each other. From a
WCF perspective, it is the region which is exposed to the client or consumer.
Reusable:
In the terms of WCF, it means that
the code does not need to replicate. It can be referred and can be reused.
Versioning:
There might be scenarios in which
the service may need to be modified. Hence versions may need to be changed.
This does not mean that the older version becomes obsolete. It still can be
referenced by the services / systems that need it; the new version can be
referenced by the systems / services that need it as well at the same time.
Collaboration:
It basically means that all existing
and being developed systems needs to work together at the end. From the
formulation of ideas to the maintenance of its realization, distributed systems
require collaboration.
Interoperability:
It is the property of the system / service
which states that different operating systems, programming languages or even
different environments should be able to interact with each other. It is
possible by the use of serialization and de-serialization in services / system
communication.
Scalability:
Its is the property of the
system/service which allows new items to be added and removed as necessary
without changing the overall working of the service / system.
WCF:
Windows Communication Foundation is windows
based service that embraces SOA. It allows communication by various clients not
depending upon what operating system/programming languages it uses to
communicate. It serializes the communication and allows interoperability.
Composable:
It is a property or technique that
allows multiple services to be related and finally compose into the making of a
hybrid service. This allows a client to refer to services that will allow it to
get its work done without creating new services or items in the service.
Orchestration:
It is a theory that has the
following characteristics:
·
There
is one central controller that coordinates all the activities of the process.
·
You
can apply the composite pattern, which means that the whole composition itself
can be used as a service.
Security:
In terms of WCF, it is the
encryption of data that makes sure that data does not get transmitted as plain
text and not captured by persons it is not intended to be sent.
Workflow:
It describes how a certain result
can be reached and it looks further into the details of all the steps that are
needed to reach the results.
Consumer:
It is the client or the
system/service that consumer a service.
Performance:
In WCF terms, performance is the
time taken by the service to respond back to a client request. Performance can
suffer due to network latency, programmatic error or data related problems that
pertain to the database.
Self-contained:
In WCF, it means that the service
should be independent and autonomous.
WS-*:
In WCF, it is a stack that adds
extra headers to every message that goes out that pertains to object
interaction.
Some of the features that WS-*
exposes are:
·
WS-Addressing
·
WS-AtomicTransaction
·
WS-Security
Contract:
It is the part of a communication
protocol between the consumer and provider that describes the semantics and
behavior of the messages exposed in the interface.
Provider:
It is the system that implements a
service so that other systems can call it.
Serialization:
It is the conversion of the data
into a byte code for transmitting over the wire. When the data is converted
into 0’s and 1’s it allows for interoperability by the use of web services.
WSDL:
Web Services Description Language is
the endpoint that exposes the service description to the client.
DCOM:
Distributed components refer to a
set of technologies designed to allow access to an object’s business logic
across process and machine boundaries.
Registry:
It showcases the technical details
of the business process. It needs the repository to refer to the business
process.
Service (Small
s):
It is the actual service
implementation of the service that is exposed to the client.
Service (Big S):
It is the name of the service that
the business process has asked for. It does not deal with the actual
implementation; it just exposes the functional elements of the service to the
client.
De-serialization:
It is the process of converting the
byte code to the code or interpretation that the client system can understand.
Reliability:
In WCF, it is the property that
allows communication to occur even if there is network latency or by any chance
a particular data packet is lost. This feature forces the client to resend the
lost packet until the whole data is collected / received.