2.5. Technology and Application Architecture

Software architecture involves the management of both application functionality and commercial technology change. The kinds of benefits we just mentioned are not the direct result of adoption of a particular technology but involve exploiting the technology in ways that are most effective to realize the business purpose of the system. The simple decision to adopt CORBA or COM+ is not sufficient to guarantee positive business outcomes. One of the key challenges is managing the change in commercial technologies in a manner that supports long-term system life cycles and the ability to extend the system without substantial maintenance as the commercial technology evolves.

Figure 2.12 is an example of the class of technology challenges which must be managed by object-oriented architects. Figure 2.12 concerns the evolution of middleware technologies, starting with the socket technologies and evolving into remote procedure calls and distributed computing environment to the current Java 2 Enterprise Edition (J2EE) and ActiveX technologies. No one can reliably predict the future, but given what is known about proprietary technology evolution as well as open systems evolution, it is likely that many of the technologies that are becoming popular will eventually have their own life cycle, which has a distinct ending point based on when the software vendors discontinue their product support and move their attention to new product lines. This particular technology evolution in middleware has some dramatic effects on application software because the middleware is closely integrated with many of the emerging application capabilities. When a technology like ActiveX becomes obsolete has it then become necessary to upgrade application systems to the new technologies in order to maintain vendor support and integration of new capabilities. We can already see the demise of ActiveX on the horizon as COM+, a succeeding technology, will replace core elements of its technology. The software interfaces are likely to be quite different, especially because COM and COM+ are based upon an interface definition language, not the same one as CORBA, and COM+ doesn't have an interface definition language, at least in terms of current marketing information. It is important for the software architect to anticipate these kinds of inevitable changes and to plan the migration of application systems to the new technologies in a manner which doesn't mitigate the business purpose of current system development.

Figure 2.12. Managing Technology Change


There are many challenges to the architect in the application space. Some of the most strenuous challenges involve the changing business processes which current businesses are undergoing. There is increasing competition from all sectors and a merger of capabilities through technologies like the Internet, newspapers, computer companies, cable television vendors, and telecommunications operators are starting to work in the same competitive spaces and are experiencing significant competitive pressure that is the direct result of information technology innovations and innovative concepts implemented in application systems. Even with previous generations of technologies it is fairly well known that requirements change a great deal. In fact, the majority of applications costs for software development can be traced directly to requirements changes [Horowitz 93]. For the first time in history, information technology budgets are exceeding payrolls in many organizations in industries such as financial services. Information technology is becoming synonymous with competitive advantage in many of these domains. However, the basic capabilities of system development are still falling far short of what is needed to fully realize competitive capabilities. For example, in corporate development, one out of three systems that are started end up in a project cancellation [Johnson 95]. These types of statistics represent inordinate risk for small and medium-size businesses, given the increasing cost and dependence upon information systems.

One of the fundamental rules of thumb of computing is that no technology ever truly goes away. One can imagine some early IBM minicomputers that are still faithfully performing their job in various businesses around the world. As information technology evolves, the need to integrate an increasing array of heterogeneous systems and software starts to become a significant challenge. As we integrate across enterprises and between enterprises using intranets and extranets, the architecture challenges become substantial. One problem is the current inadequacy of information technology infrastructure, including technologies like COM+ and CORBA which differ from the real application needs in some significant ways. As the challenges of information technology continue to escalate, there is another problem with the software skill base. In many industries, there are substantial shortages of software engineers. It is estimated that there is at least a 10% negative unemployment level in the United States in the software engineering profession. Some industries are much harder hit than others, including public sector systems integration contractors. In order to build systems with that challenge in mind, the object-oriented architect needs to plan the system development and control the key software boundaries in a more effective manner than has ever been done before.

Many critical challenges lie ahead for application systems developers and software architects. There is an escalating complexity of application system development. This is driven by the increasing heterogeneity of information systems and the need to integrate increasing scopes of systems both within and outside the company. In addition, the user requirements are increasing the user expectations, due to exposure to Internet technologies and other marvels of modern life and are driving software developers to take increasing risks with more complicated and ambitious systems concepts. The key role of the object-oriented architect is the management of change. Managing commercial technology innovation with its many asynchronous product life cycles is one area. Another area is managing the changing business processes which the information technology supports and implements. One area of potential solutions lies in the users influencing the evolution of open systems technologies, influencing software vendors to provide whole technology capabilities, and influencing legislators to put in place the appropriate guarantees of merchantability and fitness for purpose that underlie the assumptions in system architecture and development.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.19.142.126