SOA Basics 1

| No Comments | No TrackBacks

An old colleague and friend of mine called me the other day. She had worked at IONA several years ago, moved on into a different part of the software industry and is now back working in the "middleware" sector again.

She was wondering what all the fuss was about SOA? Was there something new? Could I explain the basics to her again just in case she missed something?

You see there are a couple of issues here: 1) it's not new, some of us have been talking about services and SOA for a long time - so long we're almost burned out talking about it and 2) it's amazing how much people forget or how ignorant some others are about the basics (not my friend).

So I thought I'd go over some basics here. It may take a few entries to get to the bottom of this. I've been thinking about it for about a week and there is so much to cover.

SOA has been around for quite some time. People working with distributed applications have been using service-oriented approaches since the days of DCE, COM and CORBA (and before). It's not to be confused with moving data around, e.g. EAI. It can often be confused with Object Oriented methodologies and technologies. And I think it's important to remember that.

I developed a SOA at a large telecommunication company back in 1994. We used a proprietary messaging transport and build our own service dispatcher for CICS based transactions and programs. How is this related to "modern" day SOAs? Well it has everything to do with the idea of service contracts and service level agreements. We developed well defined message contracts that allowed different organizations to reuse services within our provisioning department applications. Users were often unaware that they were CICS Cobol programs behind these service contracts - though to be honest most people were aware of this - BUT they didn't need to know anything about how to contact the mainframe.

SOA is about providing well defined service contracts while at the same time hiding the implementation of that service. One can imagine that ordering a book on Amazon during its early years is not much different than ordering a book on Amazon today. There might be some newer features but basically the service hasn't changed much. However I imagine, in fact we've all heard, that in the early days an order on Amazon generated a print-out that someone ripped off a printer and went and processed very much by hand. Today I'm sure the implementation has changed dramatically!!

We've seen contacts expressed in such technologies as COM and CORBA IDL, Java interfaces, COBOL Copybooks, and today Web Services Description Language (WSDL). I'll cover more on the power of WSDL on a later post.

The contract doesn't just merely express the data required by the service in order for it to successfully process, but it can also express such service level agreements as security and the services ability to participate in a distributed transaction etc.

One of the problems I see from the COM and CORBA days is that though many were developing SOA with these technologies there were also many that brought a lot of OO baggage with them. I've discussed this on an earlier post. Many OO techniques didn't translate into good services. The Gang of 4's Design Patterns, though a wonderful book, was often as far as many architects got when it came to using patterns in distributed technologies. Being a consultant at the time I'd often run into people touting OO techniques or patterns from using Smalltalk or C++ that didn't translate into distributed patterns. (An example was passing objects around by value and in the craziest way or another was bad patterns of inheritance).

One interesting aspect of Service Oriented Architecture is how well it maps to procedural and functional programming. I'll be covering that in my next entry in more detail but it seems that SOA might bring about a resurrection in 3GL technologies like C (especially in the ever expanding embedded world), and broader inclusion of languages like Python and Perl in SOA based systems - as more 1st class citizens.

No TrackBacks

TrackBack URL: http://ipbabble.com/cgi-bin/mt/mt-tb.cgi/29

Leave a comment

Who is IPBabble

William Henry IP Babble is the personal blog of William Henry.

William has 20 years experience in software development and distributed computing and holds a M.Sc from Dublin City University. He is currently working in the office of CTO at Red Hat on the MRG product. This weblog is not funded by Red Hat.

Posts are intended to express independent points of view, but understand that there is probably a bias based on the influence of working with standards based middleware for over a decade. (See disclaimer below)

February 2009

Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

Disclaimer

The views expressed in this blog are solely the personal views of the author and DO NOT represent the views of his employer or any third party.

About this Entry

This page contains a single entry by William Henry published on November 6, 2005 9:49 PM.

IP Babble Banner was the previous entry in this blog.

Caution using JBI is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.