10.11.2014 Views

Planning_and_Impleme.. - didier beck weblog

Planning_and_Impleme.. - didier beck weblog

Planning_and_Impleme.. - didier beck weblog

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Planning</strong> <strong>and</strong> <strong>Impleme</strong>nting SOA<br />

www.butlergroup.com<br />

ANALYSIS<br />

There is a trade-off possible between performance <strong>and</strong> long-term<br />

agility, <strong>and</strong> this needs consideration before committing to a course<br />

of action.<br />

We need to be quite clear about the purpose of SOA: it is to provide improved utilisation of business<br />

functionality as delivered by application programs. This improved utilisation may take the form of better<br />

integration, creation of composite applications, automation of business processes, <strong>and</strong> the ability to allow<br />

The purpose of SOA is<br />

not to improve<br />

performance, <strong>and</strong><br />

adding extra layers of<br />

software will<br />

inevitably have a<br />

performance impact.<br />

each of these to evolve over time as the business model changes. Because<br />

SOA is layered on top of application resources, it is never going to increase<br />

performance above the capabilities of the underlying systems. (Note, though,<br />

that end-to-end times could be reduced through the ability to execute multiple<br />

tasks in parallel instead of sequentially.)<br />

The purpose of SOA is not to improve performance, <strong>and</strong> adding extra layers of<br />

software will inevitably have a performance impact. However, everything has<br />

its price, <strong>and</strong> IT must continue to meet the processing workload <strong>and</strong><br />

performance expectations of the organisation, SOA or not.<br />

Much of the performance overhead of SOA stems from the use of Web services. The role that Web services<br />

plays is to isolate the SOA control <strong>and</strong> run-time environment from the physical properties of the underlying<br />

services. With Web services, the ESB neither knows nor cares what physical platform a service executes<br />

on, what operating platform is used, or which language has been used to create the application. This<br />

virtualisation is the source of the overhead with which we must contend.<br />

Web services itself is built on top of XML, this being the commonly-accepted st<strong>and</strong>ard for technology-neutral<br />

messages. The message body itself may become quite large, since a common way of exploiting SOA is for<br />

the same basic message to be passed to each service in turn, with each enriching the message with the<br />

results of its own activity. (In this way the message itself retains the context<br />

required for subsequent operations.) Hence, in a complex multi-step process<br />

the body gets larger <strong>and</strong> larger. Additionally, the SOAP envelope contains<br />

information necessary for the routing of the message plus optional extensions<br />

such as the style of messaging needed (e.g. guaranteed once-only delivery),<br />

privacy requirements, public <strong>and</strong> private key tokens for encryption, <strong>and</strong><br />

potentially many more.<br />

Thus the Web services message load can add significantly to the network<br />

traffic, <strong>and</strong> particularly where encryption is needed, to the server overhead for<br />

processing the message. For any but trivial use of SOA, encryption is likely to<br />

be m<strong>and</strong>atory, even inside the firewall. Web services st<strong>and</strong>ards provide for<br />

encryption of just sensitive parts of the message, <strong>and</strong> this option should<br />

always be used to reduce the processing overhead.<br />

We need to consider whether to compromise the logical design to accommodate the performance needed by<br />

the business – but first there is a general rule in IT (which is re-learned in every new generation of technology):<br />

The golden rule: Do not optimise unless you have to!<br />

Thus the Web services<br />

message load can add<br />

significantly to the<br />

network traffic, <strong>and</strong><br />

particularly where<br />

encryption is needed,<br />

to the server<br />

overhead for<br />

processing the<br />

message.<br />

In this case, Web services plays a major role in delivering the adaptability we seek from SOA. By abstracting<br />

away the physical details of an application we gain great freedom to replace applications piecemeal,<br />

outsource to a hosted service provider, provide hot-st<strong>and</strong>by facilities for critical services, <strong>and</strong> many other<br />

important capabilities. If we discard Web services in favour of more compact technology-specific messaging,<br />

we lose these capabilities. Therefore, the best advice is to carry out performance modelling for the projected<br />

system capacity <strong>and</strong> decide if it is truly necessary to optimise.<br />

24 Section 1: SOA Deployment<br />

December 2006

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!