Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
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