Interoperability with antiquated systems
I do a lot of work in the integration world, primarily with (often older) accounting systems like Mas90, Great Plains, and SouthWare. At face-value, these systems appear extremely antiquated, but a lot of the plumbing I have seen is very precocious indeed. It's interesting to see how many of these systems are so modular; built with extensibility in mind before extensibility became the word du jour. It's not as though modularity is a new concept, but I find it intriguing how well some of these systems were designed sans some of the facilities we current developers have in our tools/languages. We devs constantly argue about extensibility points in our software, yet these guys have been getting it right for decades. Perhaps we have too many choices?
What brought this about is a new project with fairly extensive reporting requirements. To facilitate this in the past, I've often had to export flat files from the accounting system, import them (DTS, BCP) into SQL Server, then create a report on that data instead. This is sometimes a problematic exercise, as sometimes links between the accounting systems and SQL Server break (especially since many of these accounting systems are Unix-only which necessitates a third-party SMB daemon), but it does work. I've long wanted the remove the middleman and just consume the data directly from the accounting systems, something of which is not available on these older systems.
Fast forward to two hours ago when I learned that SouthWare has the ability to define an XML data dictionary; a map between XML elements and fields in their COBOL (*gasp*) files. SouthWare also has the ability to define data dictionaries between different formats, including SQL Server; a clear extensibility point. Big deal, right? Many systems these days embrace interoperability, and XML is the lingua franca.
Considering that I can now run reports within the accounting system that output an XML file, I can publish said file to a web server running on the Unix box. I can then easily consume this XML in my favored world of .NET, apply my XSLT stylesheet to it for reports, and even employ an MVC framework like Maverick.NET to handle a lot of the plumbing for me. If I have enough coffee in any given day, I could even build a web service around it on the Unix side using Axis.
It's great to see how pervasive XML has become, and it's intriguing to see how well the new paradigm fits in with these systems that were built, in many cases, decades ago. I wonder if our current work will have that sort of staying power when the next paradigm shift hits?