Service-Oriented Architecture (SOA) vs. Component Based Architecture(COM, COM+, DCOM)

by iatanasov 4. June 2007 05:12

Probably SOA is mostly linked with Web Services: They are mostly used to open existing architectures and systems on specific points and allocate them via HTTP or
HTTPS. This procedure features mainly one thing: An easy way of B2B connection. Because of the loose coupling of Web Services are optimal for reuse. This idea
results in the (older) idea, of building a “legobox” of interoperable, reusable services. All we need next is an architecture that allows to composite the existing Services.
And this architecture could be SOA.

But wait: Module, composition, reusability: Isn’t that an old hat? What’s the difference to Enterprise Application or component based architecture? Isn’t that the
same idea? It probably is. But there are a few details, which make a big difference.

Component-based architecture: 

A component is a software object, meant to interact with other components, encapsulating certain functionality or a set of functionalities. A component has a
clearly defined interface and conforms to a prescribed behaviour common to all components within an architecture.

The goal of generative and component-based software engineering is to increase productivity, quality, and time-to-market in software development thanks to the
deployment of both standard componentry and production automation. One important paradigm shift implied here is to build software systems from standard
componentry rather than "reinventing the wheel" each time. This requires thinking in terms of system families rather than single systems. Another important paradigm

shift is to replace manual search, adaptation, and assembly of components with the automatic generation of needed components on demand. Generative and
component-based software engineering seeks to integrate domain engineering approaches, component-based approaches, and perespective based  architecture.

A component model is probably used for the developing and executing of components. This model defines a framework, which defines structural requirements
for connection- and composition options as well as behaviour-oriented requirements for collaboration options to the components. Beyond that a component model
provides an infrastructure which implements frequently used mechanism like persistence, message-exchange, security and versioning. The idea is to build
exchangeable software units through clearly defined interfaces. Different manufactures offer platforms like DCOM, JavaBeans, Enterprise JavaBeans, and
CORBA.

Service-oriented architecture (SOA) 

There are a lot of definitions of Service Oriented Architecture, some of which are: A service Oriented Architecture is a set of components which can be invoked and
whose interface descriptions can be published and discovered.  (W3C) SOA is an architectural style whose goal is to achieve loose coupling among
interacting software agents. A service is a unit of work done by a service provider to achieve desired end results for a service consumer. Both provider and consumer are
roles played by software agents on behalf of their owners. Service-oriented architecture (SOA) is an architectural software concept that defines
the use of services to support business requirements. In an SOA, resources are made available to other participants in the network as independent services that are
accessed in a standardized way. Most definitions of SOA identify the use of web services (using SOAP, WSDL and UDDI) in its implementation; however it is possible
to implement SOA using any service-based technology. Unlike traditional object-oriented architectures, SOAs are comprised of loosely
joined, highly interoperable business services. As these services are interoperable via different development technologies (such as Java and .NET), the software components are very reusable. In this way, SOA shares fundamental similarities with CORBA.

The variety and inaccuracy of the definitions of the Service-oriented architecture makes it hard to say if SOA is only accessible with Web Services or if for example
interfaces for Enterprise JavaBeans can also be “invoked, published and discovered.” These possibilities will not be excluded to consider similarities and varieties of the
Service-oriented architecture and component based architecture (like the referred Enterprise JavaBeans) in more detail.

The Service provider publishes the Web Service at a discovery agency. The potential service requestor searches for a service at the discovery agency, acquires the URL of the
required service, gets the WSDL file, builds the client and uses the provided service.

 In table  below  I  explain  deference between  web  service  and  com

 

 

                Web Services

Shared Components

 

 

 

Client Application

 

Can be any client application (.Net or not .Net) like:

 

Other web services, web applications, windows application, Flex applications

 

 

must be .Net application only like:

 

web services, web applications, windows application, …

 

 

Client Environment

 

 

Local or Remote

 

local or Remote

 

References

It can have a reference to other web services or other shared components

It can have only references to the other shared components and not web services.

 

Client Update

 

Is updated automatically.

 

You must copy the new assembly to the client.

 

Reusability

 

You should just know the URL of the existing web service, and enjoy using it.

 

You must copy the assembly with all its dependency involved to the new place.

 

Performance in the same .Net environment

 

 

Lower, as it desterilize and serialize objects to XML

 

Higher, because you can access it directly in a .Net application only.

 

Security

 

Higher because IIS applies its security

 

Lower, as you should apply the security manually

 

Currently rated 4.0 by 2 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

web service

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag




Live preview

October 12. 2008 01:19

Gravatar

Powered by BlogEngine.NET 1.1.0.7
Theme by Mads Kristensen

About the author

Ivan Atanasov - web developer
E-mail me Send mail Subscribe Feed

Calendar

<<  October 2008  >>
MoTuWeThFrSaSu
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

View posts in large calendar

Pages

    Recent posts

    Recent comments

    Authors

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2008 it-coder.com

    Sign in