Saturday 7 May 2011

Comparison of SOA with Past Architectures

SOA vs Client-Server Architecture
Application processing
The majority of the application logic is placed into the client component resulting a monolithic executable structure that controls the user experience and the back-end resources.
In case of Service-Oriented solutions, any piece of software capable of exchanging SOAP messages according to required service contracts can be classified as service requestor.
The application logic in SOA is distributed and the SOA principles dictate the partitioning of processing logic into autonomous units.

Application processing
Since the majority of the application logic is placed in the client component, the client workstation is responsible for the bulk of the processing.
Application processing in SOA is highly distributed.  Each service has an explicit functional boundary and related resource requirements.

Technology
The client-server applications paved the way for emergence of 4GL programming languages such as VisualBasic and PowerBuilder.
The technology set used by SOA actually has not changed as much as it has expanded.

Security
The client-server security is appreciated by many for is SIMPLICITY.
Security in C-S can be controlled within the client executable. Additionally, OS-level security can be incorporated to achieve a single sign-on.

In case of SOA, since the services are distributed providing security imposes significant complexities.  Multiple technology are involved comprising WS-Security Framework.

Administration
The maintenance costs associated with the distribution and maintenance of application logic across user workstation.

Maintenance challenges in SOA is easier and cheaper when compared to C-S architecture.


SOA vs Distributed Internet Architecture
Application Logic
The majority of the application logic is place into the server side components.
The distributed Internet Architecture emphasizes on the following principles-
--how application logic should be partitioned.
--where the partitioned units of processing logic should reside.
--how the units of processing logic should interact.

The differences between SOA and Distributed Internet Architecture lie in the principles used to determine the three primary design considerations.

The significant difference is in how services exchange information.  In distributed Internet architecture the components provide method that once invoked, send and receive parameter data.

Web Services communicate exchanging the SOAP messages.

Application Processing
Components are responsible for the majority of the application processing.
Distributed Internet Architecture promotes use of proprietary communication protocols like DCOM and CORBA for remote data exchange.

SOA relies on message-based communication.  This involves the serialization, transmission and deserialization of SOAP messages containing XML documents.  Processing also involves conversion of relation data into an XML-compliant structure, the validation of the XML document prior and subsequent to transmission, and the parsing of the document and extraction of the data by the recipient.

Technology
There is little difference in technology used for Distributed Internet Architecture and Service Oriented Architecture.

Distributed Internet Architecture consisted of components, server-side scripts and raw web technologies such as HTML and HTTP. 
The subsequent availability of web services allowed distributed internet architecture applications to cross proprietary platform boundaries.

Security
In order to ensure the safe transportation of information and the recognition of user credentials, while preserving the original security context, traditional distributed internet architectures incorporate security approaches such as delegation and impersonation.

SOAs heavily rely on the extensions and concepts established by the WS-Security framework.

Administration
Maintaining component-based applications involves keeping track of individual component instances, tracing local and remote communication problems, monitoring server resource demands and the standard database administration tasks.

SOAs typically require additional runtime administration involving exception handling with messaging frameworks. The other maintenance tasks include resource management.

No comments:

Post a Comment