We Need to Talk About SOA
June 25, 2008
It doesn’t matter what technologies we apply to get our systems to communicate more efficiently if they aren’t passing the right information to achieve our business goals. Journalist Edward R. Murrow said, “The newest computer can merely compound, at speed, the oldest problem in the relations between human beings, and in the end the communicator will be confronted with the old problem, of what to say and how to say it.” This remains true today.
In my last column, I briefly introduced Service-Oriented Architecture and its application to media to enable a Service-Oriented Media Enterprise. SOA is an architectural approach or design philosophy that helps enable greater alignment of technology to business goals. It architects systems in a “loosely coupled” manner that makes it easier to make changes.
| Fig. 1: Loose coupling with SOA and a middleware layer|
In SOA, applications are “wrapped” to present services to a common messaging bus, as shown in Fig. 1. These could be the applications you use every day. The services they present would be the common tasks, at a business level, that are done in your organization. Services are things like, “Bill the Client,” “Transcode Asset” or “Edit the Package.”
To make this approach work, you are going to need technology that is available today to enable it. One of the key technologies you will need is that common messaging bus. In SOA, this is usually called middleware. There are, of course, many definitions of middleware, and you may have experienced the term being used in other contexts, such as set-top boxes.
In the context of SOA, middleware is really a layer in your infrastructure. It is a collection of technologies like application servers, orchestration engines, rules engines and messaging technologies, as shown in Fig. 2. Together, these technologies assist you in designing a system that allows loose coupling.
The middleware layer serves the role of an integration broker and message exchange medium inside an SOA. Systems integration is all about communication and the middleware layer facilitates that communication in an SOA. It is the fabric that connects services, and because of that, the middleware layer is responsible for certain aspects of the communication infrastructure: security, routing, reliability and scalability, etc.
| Fig. 2: Middleware is actually a collection of disparate components that are integrated together.|
Middleware products provide a number of features. The first, and most critical, is to serve as the communication layer. There are a number of approaches to achieve this, but you can think of it as a kind of post office. Messages are given to the middleware and it will forward these messages appropriately to other applications. Some middleware will store messages and guarantee eventual delivery. Logging of messages is often available for auditing purposes.
Middleware can take responsibility for the security of messages between applications. This may mean applying encryption or other security technologies. It can also mean the use of identity management. Identity management can allow you to ensure only the right people, in the right roles, get access to information and services.
Middleware can also help ensure proper communication by handling transformation of the messages between applications, where the message type is changed from one message technology to another. It can also be a transformation of the data in the message itself. For example, if one service uses timecode as an input and another uses frames, middleware can convert the data while in route. This means that neither application has to conform to the other. They both communicate with the messaging bus and the middleware takes responsibility for making messages make sense to another application. This is very helpful in dealing with differing standards or with proprietary services.
Middleware products will often contain some kind of orchestration technology that allows the middleware to be more than just a passive observer of messages. Orchestration technology is where you can put in your workflow and coordinate the activity of the many services to achieve overall business goals such as “produce six o’clock news” or “build schedule” or whatever makes sense to your company. Business rules can be stored and applied automatically to enable intelligent and effective message (and therefore work) flow. The ability to orchestrate workflows is very powerful and I will be talking about it more in my next column.
Perhaps the biggest problem with the middleware technologies available today is that they are not “media aware.” These are general IT technologies not specifically geared for our space. They do not have a sense of time that a broadcaster would expect and they are not designed to pass media itself as part of a message. Even with these limitations, they can be applied to about 80 percent of the problems we see in the typical media organization. We are starting to see media-specific technologies in middleware, however. More to come on that later.
Middleware is a critical enabling technology for media systems being designed with SOA today. Mark Twain said, “The difference between the right word and the almost right word is the difference between lightning and the lightning bug.”
If you make the right choices about how to architect your systems and choose the right technology to implement, you will see dramatic improvements in how much better things start talking. You can count on IT!