I am sitting in a PDC Pre-Conference session titled ".NET - The XML and Web Services Perspective" being given by Don Box, Tim Ewald and Martin Gudgin. Overall a pretty good summary of what the state of the technology is today. While I already have heard and written about much of this content already, it has been good at getting mind back into Web Services and Service Oriented Architectures (SOA); since I have been out of this world for a while. Kind of like going back to visit Hanibal Lector - only without the negative context.
The thing I have been trying to resolve in my mind is - what role do Web Services and SOA's have in the Enterprise, since this is the space I primarily play in. At the company I work for we run our business on three large third party applications. We spend allot of our resources extending and exchanging information around these products. Not to mention that each of these three products sits on a different platform. Which when I think of what Web Services are good at - seems like a perfect application of this technology. Only one problem, none of these products has anything resembling a Service Oriented Architecture. Rather they tend to do things like explain the database schema and expect you to update the database directly. This is about as tightly coupled as you can get! So why aren't we using Web Services?
I think that a major reason that we are not building more Service Oriented Architectures is simply that the skill set does not exist. I think you need several types of skills, all of which are missing at many of the Enterprises I have worked with - not just the one I am with now.
Architecture – Much of the design work is done by implementers who don't understand why XML/Schema or SOAP/WSDL) are better then CSV/FTP. There is a role on the project team called a Design Architect (DA) but they only tell you that you should use a technology in your implementation, but they don’t stay around long enough to actually help you with the implementation. In my world there is a role missing here – someone which actually delivers an implementation based upon a high level design.
Technology – There is a great deal of technology already embedded in the Enterprise which already accomplished much of what Web Services does for me; for instance FTP or MQSeries. We have a couple of applications where we use MQSeries; which is heading down the right road. But MQSeries (or queuing in general) is considered too complex by most programmers. IBM is partially to blame to for this, but so is my company. That is we both should be doing things to make using this technology easier by layering more application oriented services on the low level services.
Cross Platform – Does the expertise, technology or will exist on the other platforms? In my organization, it seems like much of the innovation around this stuff is happening only around Windows. Let me clarify, its not that all other platforms don’t have innovative technology around them; rather it seems that organizations tend to be able to only innovate on a single platform at any given time. They just don’t have individuals on multiple platforms with the motivation and/or skills to build these types of applications.
I think that over the next week Microsoft is going to try and address the Technology aspect of this problem. While I have some thoughts on how to address the other two issues (something for a future post); I hope to talk to people on whether they are experiencing similar issues.
5:42:31 PM
|