Description
TOWARDS SUPPORTABLE TECHNOLOGIES AND ARCHITECTURES
Leszek A. Maciaszek
The modern IT landscape of the Internet era is characterized by an increased use of distributed service-oriented architectures and the rapid adoption of object-oriented technology. This translates to various Business-to-Business (B2B), Business-to-Customers (B2C) and Business-to-Employee (B2E) web-based systems. The buzzwords are plenty among the reality of robust technologies and standards such as UML, MDA, CWM, XMI, MOF, DCOM, CORBA, .NET, EJB, J2EE, XML, UDDI, WSDL, RDF, SOAP….
Lost in the cyberspace of acronyms? Let us try to separate the wheat from the chaff. Frankly, many of these acronyms are just new names for established technologies and standards. Almost all of them are about multi-tier client/server reincarnations. They are about the middleware in a new disguise. They are about “applications and technologies come and go, data stays for ever” (Bob Epstein, Sybase, quoted from memory). They are much about hype, technology reconciliations, power struggles, inertia; about politics and business; about two steps forward and one step back. Remember how relational databases came about at the time when navigational object databases were just behind the door? Remember what happened to object databases? Why do we still program applications (as opposed to system software) in the assembly language of the new millenium – C (well, how many programmers actually program in C++, C#)?
So, I am learning from Internet era technologies and architectures and then… I design in UML, forward-engineer to Java and relational databases (but cannot quite reverse-engineer from either), generate business components for Java and XML (but cannot quite plug into it my existing Java/Oracle applications), give clear architectural designs to programmers (but get a mess of intercommunicating objects that do not resemble my design), I write regression tests that only work once in initial tests, I establish traceability links from use cases to programs that are invalidated by the beginning of the second project iteration, etc. New technologies and architectures are important, but they do not ship products. People and processes ship products. Technologies and architectures are just facilitators. They can contribute to product shipment only as much as the tools, based on these technologies and architectures, are available and used.