1. Book Author: Nicolai M. Josuttis
Chapter Twenty: Epilogue
IT-Slideshares http://it-slideshares.blogspot.com/
2. 20.1 Is SOA Something New ?
SOA does not introduce any newly invented concept.
It is a paradigm that brings together existing concepts
and practices for a specific set of requirements.
One improvement of SOA might be the fact that Web
Services (despite all its flaws) introduces a new standard
for interoperability.
Another important aspect of SOA, which represents a
revolutionary approach different from what we’ve
typically seen before, is the acceptance of heterogeneity.
3. 20.2 Does SOA Increase
Complexity?
There is no doubt that distributed processing is more
complicated than nondistributed processing.
To deal with large systems and different owners, collaboration and
loose coupling are required (any form of loose coupling increases
complexity).
Distributed debugging and testing requires a lot more effort than
debugging and testing in an environment where everything is under
central control.
SOA should never be an end in itself.
4. 20.3 What are the Key Success
Factors of SOA ?
A lot of aspects are important in making SOA a success
story.
Understanding
Collaboration
Management support
Careful introduction
Homework
5. 20.4 Where is SOA Not Appropriate
The requirements might be too tough, or the overhead SOA
introduces might lead to more problems than it solves.
Database replication, mass data processing, and local clients are not
particularly SOAs strengths.
Note that the question should never be whether or not
something is appropriate for SOA; The question is whether
or not the solution you’re considering is appropriate for
your problem(s) and requirements.
6. 20.5 Does SOA Replace OOP ?
Another common question has to do with whether SOA replaces
object-oriented programming (OOP), or which one is better.
A comparison of OOP and SOA simply makes no sense, because
they serve different purposes.
Neither SOA nor OOP is better than or replaces the other.
OOP is a programming paradigm for applications, while SOA
is an architectural paradigm for system landscapes.
OOP doesn’t scale, because you can control and manage your
object model only up to a certain size.
SOA is the approach to use to connect systems written in
object-oriented or other paradigms.
Unless you only have to manage a single program, you
need both.
Editor's Notes
An interesting answer is given in the book Enterprise SOA, by Dan Woods and Thomas Mattern (O’Reilly). The first explains OOP with the following limitation: “However, the calling application must be written in the same language as the object it is trying to access.” The second paragraph consists of only one sentence: “Web Services provide a standard way to communicate between services, which may be written in different languages.”