member login

WebServices dot org

Todays Featured Content:

Service Oriented Virtualization

SOA and Virtualization are currently considered to be two separate disciplines, but they no longer need to be. SOA offers the enterprise the benefits of increased agility and cost efficiency in terms of application development, reuse, and making connections across heterogeneous applications and business partners

iTKO LISA Combines SOA Monitoring with Advanced Test Execution Capabilities

Native test interaction with leading system metrics dashboards and reporting environments provides improved control over performance and reliability.

For SOA, The Future of Quality is Federated

This paper will refer to government organizations as a case study on SOA Governance. However, architects and developers in the business computing arena can draw valuable lessons from the complex integration and quality challenges faced by federal agencies.

iTKO LISA 4 Release Revolutionizes SOA Quality with Virtualized Services and Business Process Testing Features

LISA's Evolution Mitigates IT Risk through SOA Testing, Integration Support and Policy Validation

iTKO, Inc., the leading provider of testing solutions for SOA (Service-Oriented Architecture) software, announced the availability of the new version of its flagship product suite, iTKO LISA 4 SOA Testing and Validation. LISA expands upon iTKO's delivery of the Three C's of testing - complete, collaborative and continuous - by adding key functionalities that mitigate the business risk of ever-increasing change and complexity in enterprise IT.

Featured Content provided by iTKO

Why Services Are Not Components, and Vice Versa

25th Nov 05:

While no clear boundaries exist, service-oriented architecture and component-based architectures are two different animals that address very different problems.

There has been some debate in the industry on the differences between Service-Oriented Architecture (SOA) and Component-Based Architecture (CBA). Differences between SOA and CBA such fine grained vs. coarse grained, business vs. IT, or high-level vs. low-level are probably good observations, but I think the main point lies elsewhere.

At the end of the day, a component can be as high-level, 'business level', and of the same 'granularity' as any service. Or a service can be easily as fine-grained as a component.
CBA and SOA are indeed different as they address very different issues. If you work with components you work with code; while if you work with services you use some remote functionality over network under some contract. Composing services into higher-level processes is totally different story than linking some components together into an application. A service contract is totally different from a component interface.

Component-based architectures may be very relevant to service providers, as they might be the way in which a particular service is implemented.

The following functions are part of CBAs:

  • Contracts: don't exist.

  • Governance: project planning, internal architecture, compatibility of interfaces, proper usage of open source libraries, testing, etc.

  • Impact analysis works with code dependencies, versions - of interface, language, runtime, etc.

  • Policies: Few security and transaction settings within deployment descriptors.

  • Checkout from repository.

  • Deployment descriptors parade.

  • Compilation.

  • Packaging linking into apps.

  • Deployment.

SOA is an architecture of an environment of running services. These services might be implemented as set of (even distributed) components, or objects, or shell scripts. But who cares? Designing, building, running, and governing an architecture of services is a different task than doing the same for components. From an SOA point of view, components are irrelevant.

SOA involves the following functions:

  • Contracts: SLAs for bandwidth, operation hours, price per transaction, responsibilities for proper operation.

  • Governance: keeping contracts, auditing of metadata, message inspections, and policy compliance.

  • URL, HTTP GET, RSS, REST, WS-*, WSDL

  • Bind and call.

  • No compilation, no linking, no interest in code.

Of course, there is no clear boundary between SOA and CBA. A component can also offer its functionality over a network. But if you don't use some entity EJB as a service, then it's likely to be a component within your J2EE application - like a library for XML parsing. And, you can theoretically check out a service code from your repository (if you own it) and link it directly into your application.


Trackback URL for this post: http://www.webservices.org/trackback/id/70859