15.6 Ten Observations on the State of the Software Industry


One of the reasons that it is so difficult to build enterprise-caliber software systems today is that the software industry is out of touch with enterprise architects . Here are my top ten complaints about the current state of the software industry:

  1. The software industry has no conceptual model for building enterprise systems. It isn't just that we have no industrywide standards for building enterprise systems. Even the individual companies themselves have no vision for how to build such systems. When you read the "architectural" documents from software vendors , they are invariably advanced developer manuals. Often it isn't clear that these companies even know what a software architect is, much less how to write for one. I'm not saying that Microsoft, IBM, BEA, and Sun must necessarily adopt the software fortress model (although obviously I think they would be well advised to do so). If they think they can do better, fine. But come up with something !

  2. The software industry lacks a coherent vision for flowing transactions through the enterprise. So far, the industry can't even agree on what the word transaction means, so forget having a vision of how one would flow through the enterprise!

  3. The software industry has a confusing hodgepodge of security capabilities and no model for how they should be used. It seems as if every product has its own idea of security and no concept of how its notion of security relates to that of other products. What is the "role" of role-based security in component systems like COM+ (for Microsoft) or Enterprise JavaBeans (for Java)? How does this role relate to database security? How do both types of systems relate to firewalls? The industry has no idea because it has no coherent vision of what security means or how it should be modeled .

  4. The software industry is wasting time defining portability standards when what we need are interoperability standards. Efforts like CORBA (from OMG) and J2EE (from the Java consortium) are a monumental waste of time. We don't need standards for portability. Portability means moving a fortress from one platform to another. Nobody does this. We need standards for interoperability, the biggest problem facing enterprise systems today.

  5. The software industry does not differentiate among implementation technologies (such as objects), distri bution technologies (such as components ), and interoperability technologies (such as fortresses ). Regardless of which company's programming tools you use, objects and components are virtually indistinguishable. This lack of distinction exists despite the fact that confusing these technologies is a sure recipe for disaster. Of course, it goes without saying that none of the companies today differentiate between components and fortresses.

  6. The software industry has no concept of the difference between the communications that must occur within a system and the communications that must occur between systems. If you attend a presentation on message queues led by either IBM or Microsoft, you will learn that everything should be done asynchronously. If you attend a presentation on component technologies, you will learn that everything should be done synchronously. Neither IBM nor Microsoft presents a clear vision for differentiating communications that occur within fortresses (synchronous) from communications that occur between fortresses (asynchronous).

  7. The software industry does not have a common model for interoperability, so different vendors create products that are difficult to glue together. Progress is slowly being made on this front with some of the new work on SOAP and Web services, but the emphasis here is on slowly .

  8. The software industry uses technology-specific terminology for describing what is being done, making it difficult to understand when common approaches are being used. In Java, business logic is based on "session beans." In Microsoft technologies, business logic is based on "COM+ components." Would you ever guess that these two architectures are virtually identical?

  9. The software industry assumes that interoperability will be solved by the choice of one single technology that will integrate everything. Everybody in the software industry wants to be at the center of the doughnut, providing the core of the enterprise infrastructure. All software vendors will tell you that if you just make their technology ubiquitous, you will be able to hang everybody else off at the edges and achieve an interoperability utopia. In the real world, there is no single ubiquitous technology. There are a lot of technologies, and we need to cut, paste, and bridge as necessary to get systems to talk with one another. Once we recognize this fact, we can start to model the requirements to achieve reality-based interoperability.

  10. The software industry frequently provides capabilities that are not only not useful, but downright harmful . Some examples that come to mind are entity beans (from the Java folks), the transaction Internet protocol (from Microsoft), and "distributed objects" (from just about everybody).



Software Fortresses. Modeling Enterprise Architectures
Software Fortresses: Modeling Enterprise Architectures
ISBN: 0321166086
EAN: 2147483647
Year: 2003
Pages: 114

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net