Role of Legacy Technology
What role does legacy technology play in SOAs? It plays a lot. I mean its not going away. In the sense that whats legacy now will be legacy three to five years from now. It seems to be a characteristic of enterprise systems that when you install something you are looking for five to 15 years at least worth of work there. So that means that if youre going to start talking about new technologies, as we did seven years ago with Java and more recently with XML, you must absolutely answer the question of how it plays. It is possible using things like Java and Java Connector Architecture to essentially just leave those systems in place. And to provide more modern interfaces for interacting with them. But what youre providing is this standardized view of how you talk to it and how it talks to you. What that means is to the degree that you have processes that are running legacy systems that are using legacy communications and they need to keep running, they keep running. But you need to extend or augment the use of those through new channels. And such a new channel could be via Web service, it could be via Java Connector Architecture or by other things.You do not take the legacy system and every possible thing it does and simply make into a service. What you can do is, as youre thinking in SOA terms, say, "What do I really want to do with that thing and what information do I want from it?" With a lot of the more recent specs IBM has been involved in, some folks are saying it looks like youre trying to reinvent CORBA [Common Object Request Broker Architecture]. Is that true? They said that when we put out SOAP. Well, you kind of touched on it in the beginning when you said were doing stuff now that we did in the 80s. Were refactoring what were doing. I think the difference is that Web services is a componentized architecture. Use what you want. If you dont need that big piece, dont use it. So we will have failed with Web services if I want to do a very simple invocation of a service with no security and no reliability if I have to bring in a lot of other pieces of machinery. Fundamentally what we do know from IT is that there are certain types of requirements that come out. Just because we evolve technology does not mean certain things go away. When SOAP came out we didnt have anything about security in that. There were hooks in it to do security, but there was not security there on Day One. And people yelled at us about that. And we said, yeah we know. Security will come. But the IT requirement for security was still out there. And to this day we are building the standards to implement security. In the larger picture we are building the standards for message reliability, because knowing whether a message gets there or not is just critical. So all these things are standard parts of computer science. Theyre basic requirements in the abstract of how you build enterprise systems that communicate with each other.
As with everything there is design associated with these things. If you had installed an SAP ERP system, odds are youre not going to expose absolutely every capability it has in there. Youre interested in doing certain things. You may be interested in getting customer data out of it or inventory data out of it. So therefore what you will do is let the system keep running, but you will define services that allow you to interact with that bigger older system in very well-described ways. So SOA gives you a lot of reuse of the legacy systems themselves. But you must think of how those systems play in the bigger picture and how you model the interactions with them.