Skip to main content

What is SOA?


SOA has become a de-facto standard for system development and integration of new with existing legacy solutions running and supporting complex business processes. SOA, as IT world has always a fancy term for any new technology,elaborates to Serivce Oriented Architecture, is not a new term and has been around with emergence of webservices.

In order to understand SOA, we must first understand what a webservice means, which is sometimes referred as crux of SOA,not always though.A system does not necessarily need to use web services and all related standards to be "service-oriented." For example, some service oriented systems have been implemented using Corba,DCOM,RPC, Jini and REST.A webservice is defined by a set of processes over a network which is a manifestation of some physical entities like databases,devices,programs.


It is an interface or gateway for one program/device/system to have a controlled access over a network to other program/device/system like humans need some sort of GUI to interact with one system. A webservice accepts a command as a SOAP envelope to expedite some task and sends response in a form of SOAP envelope too. 


SOAP(Simple Object Access Protocol) is protocol which uses XML based messages generally over HTTP.A webservice is loosely coupled and flexible , it means a consumer of a web service is not tied to that web service directly; the web service interface can change over time without compromising the client's ability to interact with the service.


 A tightly coupled system implies that the client and server logic are closely tied to one another, implying that if one interface changes, the other must also be updated. Adopting a loosely coupled architecture tends to make software systems more manageable and allows simpler integration between different systems.

Apart from SOAP, other key constituents of a webservice are WSDL and UDDI.

WSDL(Web Services Description Language) is an XML technology that describes the interface of a web service in a standardized way. WSDL standardizes how a web service represents the input and output parameters of an invocation externally, the functions' structure, the nature of the invocation (in only, in/out, etc.), and the service's protocol binding. WSDL allows disparate clients to automatically understand how to interact with a web service.

UDDI(Universal Description, Discovery, and Integration - An XML-based registry to publish service descriptions (WSDL) and allow their discovery.UDDI is used to discover available webservices by searching for names,identifiers,categories or specifications implemented by the web service.

SOA is an extension to EAI(Enterprise Application Integration), which is technology independent whether it is Java,.Net,CORBA or webservices.This has given rise to enormous potential of varied and vast scope of application integration in fast changing,ever evolving and getting more and more complex business requirements.Since the large organizations have lot of existing systems over different geographical locations,with different operating systems using different technologies doing different business operations, these organizations have found SOA as a big solution to their burgeoning problem of keeping their IT budgets in control vis a vis addressing their growing business requirements.



The continuous IT growth within organizations have given rise to a new level of complexity and challenge to bind existing legacy,business critical solutions with new ones and that's where SOA fits in putting all different pieces together.When all the hype associated with SOA will reside and organizations will get more close to reality then its fruits will be reaped.
SOA has some ground features which drives development and maintenance of SOA based solutions:

  • Extensibility
  • Interoperability
  • Loose Coupling
  • Reusablity
  • Granularity
  • Modularization
  • Componentization
  • Services Identification and categorization
  • Services Provisioning and delivery
  • Services Monitoring and tracking
  • Basics of Object Oriented Technology like Abstraction,Encapsulation

Comments

  1. Your view is way to technical.

    The first thing to understand about SOA is "What is a Service".

    ReplyDelete

Post a Comment

Popular posts from this blog

Asynchronous Vs. Synchronous Communications

Synchronous (One thread):   1 thread -> |<---A---->||<----B---------->||<------C----->| Synchronous (multi-threaded):   thread A -> |<---A---->| \ thread B ------------> ->|<----B---------->| \ thread C ----------------------------------> ->|<------C----->|

WebSphere MQ Interview Questions

What is MQ and what does it do? Ans. MQ stands for MESSAGE QUEUEING. WebSphere MQ allows application programs to use message queuing to participate in message-driven processing. Application programs can communicate across different platforms by using the appropriate message queuing software products. What is Message driven process? Ans . When messages arrive on a queue, they can automatically start an application using triggering. If necessary, the applications can be stopped when the message (or messages) have been processed. What are advantages of the MQ? Ans. 1. Integration. 2. Asynchrony 3. Assured Delivery 4. Scalability. How does it support the Integration? Ans. Because the MQ is independent of the Operating System you use i.e. it may be Windows, Solaris,AIX.It is independent of the protocol (i.e. TCP/IP, LU6.2, SNA, NetBIOS, UDP).It is not required that both the sender and receiver should be running on the same platform What is Asynchrony? Ans. With messag

Advantages & Disadvantages of Synchronous / Asynchronous Communications?

  Asynchronous Communication Advantages: Requests need not be targeted to specific server. Service need not be available when request is made. No blocking, so resources could be freed.  Could use connectionless protocol Disadvantages: Response times are unpredictable. Error handling usually more complex.  Usually requires connection-oriented protocol.  Harder to design apps Synchronous Communication Advantages: Easy to program Outcome is known immediately  Error recovery easier (usually)  Better real-time response (usually) Disadvantages: Service must be up and ready. Requestor blocks, held resources are “tied up”.  Usually requires connection-oriented protocol