In this post I am going to compare Service Oriented Architecture to the following:
- Object Oriented Programming (OOP)
- Enterprise-resource planning (ERP)
- Software Development Life Cycle (SDLC) also known as Traditional Waterfall Model
- Agile Development
1.
Object-oriented programming:
Object-oriented programming (OOP) is
a theory that revolutionized the programming world. It is a method of
programming that allows classes and objects to be created in any manner and yet
be called from any point during the execution of the main program. In a similar
manner, SOA believes that there can be distributed systems and yet they can
function together.
OOP enhances portability as well
scalability by the use of OOP technique. SOA is exactly the same in the
scalability and portability perspective. The only difference is that OOP deals
with objects and classes whereas SOA deals with services and system in a
distributed environment.
Even though both seem to be very
similar, it is to be noted that one is programming language concept and another
is a system development concept. Hence, I believe SOA is a new concept for
software / system development.
2.
Enterprise-resource planning (ERP):
SOA is different from ERP since ERP
believes in one central service / system which will act as a controller when it
comes to data communication. In SOA, it is a more open system than ERP since it
allows services to communicate with each other in the manner they want. There
is no limitation or restrictions on how services should communicate with each
other.
On an overall perspective, even
though ERP and SOA seem to be preaching the use of distributed systems. SOA
seems to be more scalable and more direct as compared to ERP. SOA supports
direct communication between services whereas ERP needs communication to take place
through a central controller. I believe SOA is a new revolutionary theory as
compared to ERP.
3. SDLC
(traditional waterfall method):
SDLC is a strict method of software
development method that is very rigid. One must follow each and every step while
using this method. When compared to SOA, SOA is not as rigid and does not have
rigid rules that one must follow. SOA is strict in the manner in which
communication should occur between services and clients but there are no rules
that demand any particular method of development.
In contrast to SDLC in which each
component is dependent upon its predecessors which limits scalability, in SOA,
the theory is that services should be individually developed and should be
scalable independently. Another feature of SOA that embraces scalability is the
versioning which allows multiple version of the service to exist and work with
individual services or systems as required.
In my opinion SOA is contrast as
compared to SDLC; SOA is a new technology as compared to SDLC.
4. Agile
development:
Agile development is a new software
development technique that is similar to SOA. It is similar to SOA because it
embraces scalability and embraces the concept of OOP. Agile Software
development allows creation of classes and functions that can be used
independently and yet can be used together if needed. This theory is very
similar to what SOA preaches, the only difference being that SOA deals with
services whereas Agile Software development deals with objects and classes.
There is a very minute limitation in SOA; it is that there might be some minor
dependencies among services.
Overall, I believe SOA is not at all a
new technology as compared to Agile Software development. It does not seem to
very different hence it feels like “Old wine in a new skin.”
No comments:
Post a Comment