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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

www.butlergroup.com<br />

From a functional perspective, where a service has a user interface, then usability testing may also be<br />

appropriate. Testing may also involve using the same types of communication infrastructure (for example an<br />

ESB) as would then be used in production, <strong>and</strong> here there may be issues with licensing, where development<br />

<strong>and</strong> testing can be carried out within the terms of a licence, but it may require additional payment for<br />

production.<br />

Performance testing will be another area that should have careful attention paid to it – especially where<br />

significant use is made of XML messaging. Although performance is improving over time, <strong>and</strong> various<br />

technologies exist to speed up XML parsing, XML is still highly verbose. One method might be to enable the<br />

message to be parsed in phases, so that the first part of the message can be acted upon whilst the rest of<br />

it is still being processed. However, recent benchmarks indicate that performance may be less of a major<br />

issue than it used to be.<br />

A number of test tools are starting to emerge, <strong>and</strong> the well-known testing vendors are all starting to work<br />

on testing for SOA, including Parasoft <strong>and</strong> Mercury. Another aspect for testing within a SOA will be<br />

simulation, which will be especially relevant for services that have not yet been created or are not currently<br />

available. The automatic generation of tests will also be valuable within a SOA project.<br />

SOA <strong>and</strong> Agile can be complementary.<br />

Agile software development first started to take off during the late 1990s, when Kent Beck promoted<br />

Extreme Programming (XP); a set of values, principles, <strong>and</strong> practices for planning, coding, designing, <strong>and</strong><br />

testing software. Agile software development approaches tend to have a number of common values, such<br />

as frequent inspection <strong>and</strong> adaptation, frequent delivery (with some proponents advocating nightly build<br />

programs), collaboration <strong>and</strong> close communication with business users, <strong>and</strong> the emergence of requirements<br />

(incremental), technology, <strong>and</strong> team capabilities rather than defining these up-front.<br />

Developing SOA applications might appear to be an area where design all needs to be conducted up-front,<br />

<strong>and</strong> therefore more compatible with a traditional ‘waterfall’ methodology rather than a more agile, iterative<br />

approach.<br />

However, in practice the two approaches are quite complementary. In a SOA the interfaces of a service will<br />

need to be carefully planned <strong>and</strong> designed – <strong>and</strong> should then remain relatively stable. However, Agile<br />

methodologies <strong>and</strong> software engineering practices can still be applied to the development of applications<br />

that expose external service interfaces. It will be necessary to think very carefully about interfaces that are<br />

being exposed at the end of any particular iteration. If, after a few iterations, a client needs one of these<br />

interfaces to be changed, then it may well have to be changed, ensuring that the change has minimal<br />

impact through techniques such as mediation <strong>and</strong> versioning.<br />

IBM’s Developerworks Web site has some valuable articles illustrating how Agile can complement Web<br />

services development in particular, <strong>and</strong> SOA on the whole.<br />

A guiding principle of SOA is that services should ideally follow the same design philosophy, <strong>and</strong> once<br />

created, assembling them should require less skill than other development models – assembly is often seen<br />

as within the capabilities of a business analyst. Hence, service-oriented development will facilitate a much<br />

more agile business in the future.<br />

30 Section 1: SOA Deployment<br />

December 2006

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

Saved successfully!

Ooh no, something went wrong!