Apply today for a FREE subscription to CIO Magazine!
Tue, Apr 8, 2008 14:27 EDT
|
Posted by: Robert Frank in Best Practices Topic: Applications
Current Rating: |
It is has been said that “imitation is the greatest form of flattery” but to borrow an idea is still plagerism. OK, SOA is probably not plagerism but is it really something new?
In the first day’s of programming built into the Assembler language was the BALR instruction which allowed a program to branch and return to a different part of a paragraph or to a completely different program. The sub-routine was invented which set off in motion what seems to be a new fad every 10 years. In the 1960’s Simula 1 was invented followed by Simula 67 that introduced the term object-oriented programming. When I was a COBOL programmer the rage was all about structured programming. The concept was to have a controlling paragraph perform one or more working routines until the work was done. This made following the program as simple as reading the master paragraph which helped eliminate the GOTO verb.
Later the concept of object oriented programming fully hit the market. Everybody needed to get on the bandwagon. Languages were invented, Smalltalk, ADA, Modula-3 and even Java. The C language was extended to form C++. New vocabularies were formed. We now needed to become familiar with the concepts of Classes, Objects, Methods, Inheritance, Encapsulation and let’s not forget Polymorphism. Every new system and marketing campaign needed to have OOP’s in its title. Object oriented databases were created, software packages claimed to be object oriented and even my new coffee maker claimed to be OOP’s capable.
Systems were built that were excruciating slow where the programmer tried to combine objects that did not reside in memory. Operations that should have taken nano seconds if built conventionally now took physical seconds while programs attempted to execute objects that may not resided outside of the program space. Programmers would die in vain trying to debug code that inherited their functionality from a plethora of sub-classes. Clearly, all of this could be avoided and object orientation is not to blame. There is no replacement for sound practical architecture.
Over time the excitement over object orientation began to fade. Programmers used the new languages mainly C++ and Java and object orientation began to transform into a normal tool of the technologist. However, the software manufacturers needed a new fad to stimulate business. A new concept was born and Service Oriented Architecture (SOA) was born. At first I thought this was just another name for Object Oriented programming. I soon found that SOA came with its own set of verbs. The concept of a service needed to be grasped. A new paradigm shift was in the making, it seemed like I would need to go out and buy a new coffee maker, and my object oriented machine was obsolete.
It is said that SOA is not just Architecture but rather a set of policies, practices and framework by which we operate.
I am not sure what is new here. We learned this back in the days of Assembler, Structured Programming reinforced the concept and Object Orientation cemented the theory to all but the truly hard headed.
It's "plagiarism"
Verbs
SOA
------
Belief: SOA is the now right way to do things
Real-world: At least until something new comes along and, if it really is the right way, why didn’t we do it this way in the first place?
REUSE
-------
Belief: lets build something we can use over and over and save money and life will be great
Real-world: “You can reuse it, but take a copy first and then change your own copy because I can’t risk you changing my copy and breaking what I already built using it (and I can’t remember where I my copy it or have the time to retest everything).
STANDARDS
-----------
Belief: SOA Standards make life easier
Real-world: SOA Standards would make life easier if there wasn’t 20,000 standards that need a sub set of standards to describe the standards and my standard for the same thing isn’t the same as your standard.
To me, the problem with anything “new” ends up really being a wolf in sheep’s clothing. It looks warm and fuzzy on the outside but in truth, it will come back and bite you. And the main reason is people. Great IT people only work on todays new for 12-18 months before they are onto the next new. This is why projects fail, rarely is anything ever finished and legacy applications will never disappear. Been the same for the last 30 years in tech and will be the same for the next 30. As sure as I’m typing on a QUERTY keyboard like we were 30 years ago also!!!!
I am a bit discouraged that in 2008 people still write post like yours, in CIO magazine. Do you really think that concepts such as "Semantically accessible and extensible data structures", "bidirectional message-oriented interfaces", "Orchestration", or "Assembly" really existed any time before SOA?
When you add up technologies such as XML/XSD/XPath, SDO, WSDL, BPEL, SCA you have a very innovative programming model that has never been surfaced before.
SOA is about replacing the "CRUD-oriented Synchronous Client/Server" programming model that has caused so much damage in IT in the last 15 years by an "Inter-Action oriented, Asynchronous, Peer-to-Peer" programming model.
In case you are interested, I have created this webcast to talk about it.