member login

WebServices dot org

Todays Featured Content:

Web App Development for the SOA Age

Are you fed up with brittle, expensive, and support intensive Rich Internet Applications? This paper demonstrates the solution and the future.

12 UK Council Deployments of Front and Back Office Integration Adapters Using Lagan and Hyfinity Technology Within Weeks

Hyfinity is pleased to announce that 6 UK Local Authorities have deployed Lagan web-based Integration Adaptors linking their Lagan CRM and Case Management system to Northgate’s Sx3 Revenues and Benefits back office applications.

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Modern Rich Internet Applications for SOA have to cope with very complex, multi-layered peer-to-peer architectures and ever-increasing technologies, ranging from XHTML, AJAX, Java, XML, HTTP SOAP and all the transformations in-between different layers of the architecture

ZapThink on Hyfinity: Enabling Rich, Composite Web Applications

Web application development is becoming increasingly complex, time consuming, and brittle. For many organizations, the addition of Rich Internet Application (RIA) technologies like Ajax look promising, but...

Featured Content provided by Hyfinity

High Performance SOA – a Contradiction in Terms?

30th Nov 06:

While SOA offers several benefits, many SOA implementations are designed in a way that can impede performance. By designing a SOA with performance in mind, you can combine the flexibility and reuse that you want from SOA with the performance characteristics that your business requires.

Goals of Service Oriented Architectures (SOA)

SOA is largely designed around principles of flexibility, extensibility and reuse. The tightly-coupled systems of the past, while generally fairly efficient, are often brittle and difficult to change. They tend not to be modular, which makes it difficult to extend the system when inevitable changes to business needs arise. In addition, tightly-coupled systems do not promote reuse of program code, resulting in additional work and expensive maintenance.

High Performance – Why is it Difficult in a SOA?

Flexibility and reuse are important goals that lead to quantifiable business benefits. System flexibility leads to business agility, which can be the difference between success and failure. Extensibility enables faster addition of new functionality to support changing business requirements. Reuse (if managed properly) can help increase productivity and reduce maintenance later on.

While SOA offers these benefits, many SOA implementations are designed in a way that can impede performance. XML, the foundation of modern Web services, has greatly increased the size of messages sent between services and systems.

Performance defined

Performance is a term that is often used as shorthand for a few different concepts:

  • Scale up - Throughput is one important concept which can be defined as the number of messages of a given size that can be processed within a given time period. Latency, a related concept, describes how long a given message takes to travel through the same system. These terms can also be used to describe the ability of a system to “scale up.”

  • Scale out - Distributed systems and parallel computing have been around for decades in one form or another. There are significant gains when workloads are divided into components that are executed in multiple places at the same time. However, there are also challenges to satisfying the required business rules when parallel processing is used.

 

How do I Achieve High Performance in a SOA? Three Simple Steps

It is possible to achieve high performance while still receiving the benefits of a service oriented architecture. To be sure, however, there are several important principles to consider when designing a high performance SOA.

  • Step 1 - Use the right tool for the job – tightly coupled vs. loosely coupled options

"

Web services are great for a lot of things, but SOA doesn’t always mean Web services. Marshaling and unmarshaling XML, processing SOAP envelopes, etc. are expensive operations. There are many places where a native service call fits the bill, and it’s almost always more efficient. In addition, native service calls can be treated much like Web services; they can be discoverable and have dynamically changeable bindings.

"
  • Step 2 - Keep it lightweight

"

XML parsing can carry significant overhead, creating bottlenecks when used to pass very large messages (VLMs) between service components. If you must use VLMs, keep them as lightweight as possible and utilize development tools that offer good performance with large XML messages. In many cases, XML parsing speed can be made 2x to 4x faster. Even greater performance can often be achieved through distributed data sources that eliminate the need for VLMs by making the data available through the standardized Service Data Object (SDO) API.

"
  • Step 3 - Do more than one thing at a time

"

Sounds simple, right? Distributed computing has wrestled with the distributed-yet-ordered paradox since its inception (how to do many things at the same time while ensuring that everything happens in the proper order?). There are many ways to ensure ordered processing, but most of them have significant performance tradeoffs. A new parallel processing methodology called Software Pipelines offers a simple way for business applications to implement parallel computing while maintaining order of execution priorities and simplicity of application development. The Software Pipelines approach can yield an order of magnitude throughput increase, enabling you to solve business problems that were once too impractical to consider.

"

By designing a SOA with performance in mind, you can combine the flexibility and reuse that you want from SOA with the performance characteristics that your business requires.


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