The Role of Web Services in Enterprise Architecture
Web services make or break an enterprise architecture.
- By Peter Varhol
- February 1, 2007
As large organizations find increasing difficulty in merging many complex, mission-critical software systems into their established and evolving computing infrastructures, the role of the enterprise architect becomes more important. The growing depending on software means that everything supporting the software also has to work right, both now and in the future.
The enterprise architect ensures that these applications, and their associated data, are ready to serve the needs of the organization. This is a broad mandate. It can potentially include infrastructure such as networks and telecommunications, servers and operating systems, packaged applications, and application development and deployment strategies.
Web services and their associated services-oriented architecture (SOA) are tools use entirely as a software strategy, or more correctly, an enterprise application strategy. This strategy assumes that common and repeatable logic elements exist across enterprise applications, and they can be compartmentalized, coded, and packaged as services. Creating services makes it possible to more easily update and enhance applications, and mix and match services for rapid production of new applications, built in response to new business requirements.
The Role of the Enterprise Architect
What ties enterprise architecture (EA) and Web services together? Web services are a set of building blocks for the enterprise architect. These blocks can be assembled in response to business needs. The enterprise architect doesn't typically build but determines what kind of blocks are produced and maintained. If the enterprise architect can design a set of blocks that meet future application needs, then the business can respond more quickly and completely to opportunities and changes in business conditions.
The enterprise architect also has to make sure that the overall IT infrastructure matches the future needs of the enterprise. The IT infrastructure encompasses Web services, along with communications, systems, and an operating platform. Completing this task requires a rare combination of common sense, foresight, planning, research, and sometimes a bit of luck.
Take, for example, a government construction project at Oak Ridge National Laboratory many years ago. A contractor designed and constructed a building to house a new wind tunnel, which was being built simultaneously by another contractor. While the completed building was large enough in surface area to house the machinery, it became clear when the wind tunnel arrived that the contractor had not allowed a way for workers to move the bulky tunnel into the new building. Because of this oversight on the part of the contractor, the building had to be demolished, and a new one was built in its place.
This example illustrates the obstacles and opportunities faced by the enterprise architect. The enterprise architect is first and foremost responsible for keeping applications and databases running efficiently on a day-to-day basis. Certainly much of the actual effort falls to the IT support staff, but the enterprise architect is continually involved in decisions and actions to maintain working software and systems.
The enterprise architect's least visible, but perhaps most important, responsibility is to ensure that applications needed several years down the road can run efficiently and help the business keep up with the changing market. The enterprise architect is most likely to take the blame if an opportunity today is precluded by decisions made years ago.
The enterprise architect has a difficult, and sometimes thankless, job. If the right decisions are made and implemented properly today, then in three years time every new application and server will work at an optimum level, and the business will be able to easily adapt to changing opportunities.
On the other hand, if the wrong decisions are made today, then they can manifest themselves in expensive projects, difficult to change systems, and a high-failure rate on implementations in the future. It may not be clear that past decisions surrounding the EA are to blame, but it is clear that moving forward will be increasingly difficult. An organization in this position must rip out large parts of its computing infrastructure and replace networks, systems, and platforms in order to implement a specific application set or workflow.
Implementing Web Services
The enterprise architect plays the role of a matchmaker, choosing among many different infrastructure designs, and many different kinds of applications that can use these infrastructures. Most of these infrastructures and applications have been proven in practice. But not all combinations of infrastructures and applications are a match. To use an extreme example, you don't want a videoconferencing application running on 10 mbps of enterprise Ethernet backbone. If that videoconferencing application is mission-critical, then the business will not be able to respond effectively when the application is required.
Web services make the job of the enterprise architect easier. Instead of designing an EA for one grand, single application, the enterprise architect can design the EA in moderation by building interchangeable parts. This EA is similar to the model first used by manufacturers before 2000, in that Web services are intended to be "plugged in" to one another using standard interfaces and protocols.
An enterprise architect using this method doesn't have to construct and maintain large software monoliths that serve only one business purpose. The enterprise architect builds components that can be assembled in different ways for different business purposes. If these components are defined and built correctly, then the next new business opportunity does not come at a great expense in information systems. The enterprise architect can reassemble the components, with a small percentage of new code, to respond rapidly to new opportunities.
To execute on this strategy the enterprise architect has to be intimately involved with defining and implementing services, as well as understanding the business drivers that require IT support. This means that in addition to being technically astute, the enterprise architect has to be involved in business planning and strategy, and able to grasp and communicate the information requirements of different strategies. By mapping business strategies to existing and planned Web services, the enterprise architect can understand almost immediately when and how to implement business strategy.
The Services-Enabled Enterprise
The best way to meet critical business information processing needs for the present and future is by building a services-enabled enterprise. The enterprise architect plays the most important role in this process. The definition of services that a business needs in order to move forward strategically is undefined and often unknown. What constitutes a useful set of services varies from industry to industry, and even from organization to organization.
The discussion surrounding Web services architecture usually focuses on the granularity of the services. So is it better to have fewer large services or many small ones? Larger services are more manageable maintainable but less flexible. Alternatively, smaller services present a maintainability headache, but they are likely to be used in different applications more readily.
The enterprise architect must also decide what functions make up a good service in this type of EA. A particular operation is important from the standpoint of the business, but it's only used in a single application. Other functions, perhaps more mundane but less common, are potentially more useful as part of a services collection.
To make these types of decisions the enterprise architect must have a broad base of knowledge, access to information across the enterprise, and a flair for looking into the future and executing on a strategy that makes it happen. This role is not for everyone with a computer science degree and a lot of development experience. The enterprise architect must be able to communicate ideas and make decisions with minimal information.
Adopting a Web services strategy can make the job of the enterprise architect easier, or at least make the consequences of incorrect decisions less severe. And if foresight about the evolution of services, business, and technology are also part of the skill set, then the enterprise architect can look forward to a long and effective career.
Peter Varhol is a principal at Technology Strategy Research LLC, an industry analysis and consulting firm.