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.
www.butlergroup.com<br />
<strong>Planning</strong> <strong>and</strong> <strong>Impleme</strong>nting SOA<br />
Network appliance alternatives to traditional server/software<br />
implementation can offer cost/performance benefits.<br />
As described earlier, the ESB is really a suite of functionality that provides the means of moving the right<br />
message, in the right format, to the right recipient, in the right sequence. Commercial ESB suites are themselves<br />
built on SOA principles so that functionality can be added without a major reconstruction of the environment.<br />
This is important for the ability to add governance features <strong>and</strong> other ‘optional’ properties to a live SOA<br />
environment. The architecture also means that services provided by the ESB can be removed or replaced by<br />
functionally-equivalent alternatives. This has enabled a sub-market of ESB<br />
features deployed as network appliances rather than as software on a server.<br />
This idea is a logical extension of several mainstream security features commonly<br />
implemented as appliances. In particular, firewalls were originally implemented as<br />
software on conventional servers. but have been implemented as network<br />
appliances as the mainstream deployment mechanism for many years. It is<br />
simply more cost-effective to deploy firewalls in this way.<br />
By the same logic, several services provided by an ESB might be more costeffective<br />
if removed from a general-purpose server <strong>and</strong> implemented instead as<br />
network appliances. Potential c<strong>and</strong>idates for this treatment are XML firewall, XML<br />
schema parsing, XML encryption/decryption, content-based message routing, <strong>and</strong><br />
possibly other functionality also. This approach offloads tasks from the server to<br />
free its resources for business-related work, <strong>and</strong> moves the network-centric logic<br />
down into the network itself. Several vendors provide products that are well-worth evaluating as part of an overall<br />
strategy for dealing with SOA performance. Again, because of the adaptability that SOA offers, these appliances<br />
can be retrofitted to an established SOA environment.<br />
Although the use of network appliances implies an additional expenditure, their use can defer the need for extra<br />
server capacity. The main advantage, however, is that they can make a significant difference to performance <strong>and</strong><br />
throughput without having to compromise the SOA agility.<br />
Run-time deployment of SOA-based applications does not always mean<br />
using Web services.<br />
Any discussion of SOA tends to start out with the assumption of the use of Web services throughout. Wherever<br />
services are to be integrated that are outside of the corporate environment. it is still advisable to use Web services<br />
as the underlying mechanism. This is because security concerns can be dealt with more directly through the<br />
common st<strong>and</strong>ards provided by Web services, <strong>and</strong> because any use of proprietary interfaces will leave the parties<br />
unable to change their services without impacting their partners. An exception to this would be where a particular<br />
industry has already established st<strong>and</strong>ards that pre-date Web services (<strong>and</strong><br />
preferably use a private network for communication rather than the public Internet).<br />
At the outset, it is<br />
worth pointing out<br />
that both .NET <strong>and</strong><br />
J2EE are suitable<br />
deployment<br />
infrastructures for SOA.<br />
...several services<br />
provided by an ESB<br />
might be more costeffective<br />
if removed<br />
from a generalpurpose<br />
server <strong>and</strong><br />
implemented instead<br />
as network<br />
appliances.<br />
For internal deployment, there are several alternatives to the Web services paradigm.<br />
At the outset, it is worth pointing out that both .NET <strong>and</strong> J2EE are suitable<br />
deployment infrastructures for SOA. Within a .NET only or J2EE only environment,<br />
there are few adaptability compromises to be made, in return for which significantly<br />
reduced overheads can be expected. The objects natively exposed by Java <strong>and</strong> .NET<br />
may still take part in an orchestrated sequence of events as part of composite<br />
applications or automated business processes. However, security issues must be<br />
managed in the traditional way rather than letting ESB products be guided by the Web services policy statements.<br />
Greater constraints will be experienced if it is subsequently required to replace a native .NET or J2EE service with<br />
hosted software as a service. Common Object Request Broker Architecture (CORBA)-based applications have<br />
similar properties to J2EE <strong>and</strong> .NET in terms of their use within SOA. However, there are few substantial IT<br />
environments where it would be possible to implement a wide-reaching SOA solution within a single technology. In<br />
a mixed environment, without the use of Web services, the ESB has to be made aware of the physical properties<br />
of the services. This may be of little consequence in the initial deployment, but will be a constraint of future<br />
adaptability when the time comes to replace legacy applications.<br />
December 2006 Section 1: SOA Deployment 25