Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
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 />
Policies must be able to change, based on their usage over time. An example of this might be that a policy<br />
has been defined stating that e-mails to ‘Gold’ customers must always be checked by a manager, to ensure<br />
that they are polite, <strong>and</strong> follow guidelines for customer interactions. But how many times does the manager<br />
actually change the e-mail when it is checked? Can a customer service representative (or automated<br />
process) be regarded as sufficiently trusted to cut out this checking step altogether? The policy could be<br />
applied to untrusted or new people or services, but not once trust has been established.<br />
Policy is thus not always static. Some elements of policy are likely to be immutable (due to compliance<br />
requirements); others are more flexible, as illustrated by the e-mail checking example above. It will be<br />
necessary to report on policy usage <strong>and</strong> provide audit trails over time in order to provide the feedback into<br />
an iterative improvement process. The end result is that policy specification must be separable from policy<br />
implementation. SOA policy is an area that has seen a number of providers coming to market with products,<br />
<strong>and</strong> then establishing relationships with, or even being acquired by the bigger infrastructure players.<br />
When reviewing requirements for policy management <strong>and</strong> implementation, the following points should be<br />
considered:<br />
<br />
<br />
<br />
Policies should not be hard coded.<br />
Policies need to be enforced in a distributed manner.<br />
Actions <strong>and</strong> tasks should be checked against policies at run-time.<br />
St<strong>and</strong>ards in this area are still developing, but again there is a likely c<strong>and</strong>idate – the WS-Policy framework,<br />
which describes the rules, capabilities, <strong>and</strong> constraints of a Web service. The framework covers three<br />
A policy description<br />
can be made up of<br />
one or more policy<br />
assertions; examples<br />
include service<br />
requirements,<br />
preferences,<br />
characteristics,<br />
capabilities, <strong>and</strong> rules.<br />
specifications; WS-Policy, WS-Policy Assertions (which covers the service<br />
properties expressed by a policy description), <strong>and</strong> WS-Policy Attachments. It<br />
is a part of the WS-Security framework. A policy description can be made up<br />
of one or more policy assertions; examples include service requirements,<br />
preferences, characteristics, capabilities, <strong>and</strong> rules. Each assertion may be<br />
required or optional – for example, a preference is likely to be optional,<br />
whereas a rule will be compulsory. It is possible that a different policy should<br />
apply to a service depending on where <strong>and</strong> when that service is deployed –<br />
an example of this might be in the Financial Services sector, particularly in<br />
securities trading, where depending on where the trade request is placed,<br />
different legislation may apply to commissions <strong>and</strong> payment terms etc.<br />
When assembling services into a composite application, it is necessary to<br />
protect the whole extended ‘application’ via a policy managed solution, without altering the existing<br />
services. Policy <strong>and</strong> security therefore need to be separately managed outside the ‘application’ layer.<br />
Security issues for SOA are more complex than in older architectures.<br />
When developing any application, the issue of security is one that must be carefully considered. In an<br />
application-centric world, developers must consider security carefully, <strong>and</strong> may well need to spend a<br />
significant part of development time within each application on this. Security within a SOA world is different<br />
from the tightly coupled world in that security information needs to be shared, passed around, <strong>and</strong><br />
understood across multiple services.<br />
A service provider does not know who or what will be accessing the service – this is the essence of decoupling.<br />
Securing the perimeter of an organisation with firewalls, Virtual Private Networks (VPNs), or<br />
security appliances will not work in a service-oriented environment that needs to set up new external<br />
relationships quickly <strong>and</strong> flexibly. Even internally, a service-oriented approach still needs security issues to<br />
be extrapolated out of the service <strong>and</strong> into the infrastructure. For this to then work across a heterogeneous<br />
architecture, st<strong>and</strong>ards will be vital.<br />
Secure access to business applications <strong>and</strong> to support integration between different applications is vital.<br />
There are five common security requirements – identification, authentication, authorisation, confidentiality,<br />
<strong>and</strong> integrity. On top of this there must always be an audit trail to prove conformance.<br />
20 Section 1: SOA Deployment<br />
December 2006