jump to navigation

Notes on Enterprise Software Architecture – Part I September 26, 2007

Posted by Jeff in Business, Technology.
Tags: , ,
trackback

In this sequence of postings, I am going to review current trends in Enterprise Software Architecture.  This appears to be a very interesting time period, driven by the following underlying patterns:

  • The basic plumbing for integration of applications and their content is now in place.  While it is still being built out, this includes concepts of SaaS, SOA, web services, and Rich Internet Applications that we have discussed in prior postings.
  • Users are expecting a new level of capability and business value in the applications.  This wave is being represented by the Enterprise 2.0 concepts.  One interesting driver of this trend is that the employees coming into industry today are expecting their applications to work like the Web 2.0 applications that they use in daily life.  This shift has been discussed at length by a number of analysts.
  • Corporations have realized that the traditional model of centralized services is not going to be effective. 

Definitions

Enterprise software is software that is used within an organization for meeting the goals of the organization.  This is a broad definition, but it helps move us away from the consumer software space, such as entertainment or personal information management.  It also implies that the software deals with shared content across multiple participants, since the ability of an enterprise to compete is a function of how information is leverage across the organization.  Some organizations add to the definition a statement that the enterprise is larger than some size or dollar amount of revenue.

Further, enterprise software is also the “System of Record” for the activities of the organization.  This means that is maintains the official record of transactions, expenses, agreements, documents, etc.  The typical example of this is that enterprise software maintains the financial records of the organization, such as the General Ledger, A/R, and A/P.  Depending upon the type of organization, the software may also track other assets, such as inventory, designs, customer lists, etc.

Examples of enterprise software include:

  • Financial
  • Planning
  • Mail and communications
  • Customer Relationship Management (CRM)
  • Enterprise Resource Planning (ERP)
  • Asset management
  • Decision support
  • Specialty domains, such as HR, CAD, Shipping, etc.

Enterprise software architecture is defined as the specification of the components that make up and enterprise software solution, and in particular, the relationship between those components.  The definition of an architecture used in ANSI/IEEE Std 1471-2000 is:

“The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.”

“Architecture” has two meanings depending upon its contextual usage:

  • A formal description of a system, or a detailed plan of the system at component level to guide its implementation
  • The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.

For instance, the typical list of components in an enterprise would include:

  • Applications
  • Databases
  • Communications gateways
  • Web Servers
  • Messaging infrastructure
  • Web Browsers
  • Client-side software components
  • Security software (e.g., firewalls)
  • Hardware elements of the above, such as servers, routers, storage devices, cell phones, etc.

This list of components and their relationships have greatly changed over the last 20-30 years.  For instance, the components such as web servers and web browsers would not exist, and the end-user environment would not be a cell phone, but would be a “green-screen” terminal.

We will divide this discussion into two portions:

  • Enterprise Systems Architecture: this deals with aspects of enterprise software that are typically shared between multiple applications, such as common databases, network infrastructure, security facilities, data management, storage, messaging, and application servers.
  • Enterprise Application Architecture: this deals with the aspects of enterprise software that are present in an application (or common patterns that are present in multiple applications).

Enterprise Systems Architecture

Enterprise systems can be described in terms of an architecture framework that defines the common “plumbing” of the enterprise. 

An architecture framework describes how the goals of the organization will be met by the systems developed within the architecture.  The framework details all relevant structure within the organization including business, applications, technology and data.   The typical representation of an Architecture Framework is a set of descriptive documents that describe in varying degrees of detail exactly what and how a business operates and what resources are required. There are a variety of graphical notations that have been developed for such.

An architecture framework recognizes that not all parts of the enterprise will move at the same time, and that the transition process can be challenging.  Hence a typical framework includes a series of “current”, “intermediate” and “target” reference architectures and applying them to align change within the enterprise. Another set of terms for these are “as-is”, “to-be” and the “migration plan”.

The technical advantages that result from a good enterprise architecture bring important business benefits, which are clearly visible in the bottom line:

  • A more efficient IT operation:
  • Lower software development, support, and maintenance costs
  • Increased portability of applications
  • Improved interoperability and easier system and network management
  • Improved ability to address critical enterprise-wide issues like security
  • Easier upgrade and exchange of system components
  • Better return on existing investment, reduced risk for future investment:
  • Reduced complexity in IT infrastructure
  • Maximum return on investment in existing IT infrastructure
  • The flexibility to make, buy, or out-source IT solutions
  • Reduced risk overall in new investment, and the costs of IT ownership
  • Faster, simpler, and cheaper procurement:
  • Buying decisions are simpler, because the information governing procurement is readily available in a coherent plan.
  • The procurement process is faster – maximizing procurement speed and flexibility without sacrificing architectural coherence.

The architecture process addresses documenting and understanding the discrete enterprise structural components, typically within the following four categories:

Business:

  • Strategy maps, goals, corporate policies, Operating Model
  • Functional decompositions (e.g. IDEF0, SADT), capabilities and organizational models
  • Business processes
  • Organization cycles, periods and timing
  • Suppliers of hardware, software, and services

Applications:

  • Application software inventories and diagrams
  • Interfaces between applications – that is: events, messages and data flows
  • Intranet, Extranet, Internet, eCommerce, EDI links with parties within and outside of the organization

Information:

  • Metadata
  • Data models: conceptual, logical, and physical

Technical:

  • Hardware, platforms, and hosting: servers, and where they are kept
  • Local and wide area networks, Internet connectivity diagrams
  • Operating System
  • Infrastructure software: Application servers, DBMS, etc.

Wherever possible, all of the above should be related explicitly to the organization’s strategy, goals, and operations for planning and decision-making needs.  The enterprise architecture is most useful when documenting the current state of the technical components listed above, as well as an ideal-world desired future state (Reference Architecture) and finally a “Target” future state which is the result of tradeoffs and compromises vs. the ideal state.  Enterprise Architecture software is available and becoming increasingly mature to handle the complex task of mapping the enterprise structure.

This relationship between strategic goals, business operations, and the role of IT solutions can be shown in the diagram below:

Inventory Technology Economics

The organization must design and implement processes that ensure continual movement from the current state to the future state, keeping the details current. The future state planning will generally be a combination of one or more:

  • Closing gaps that are present between the current organization strategy and the ability of the IT organization to support it
  • Closing gaps that are present between the desired future organization strategy and the ability of the IT organization to support it

The enterprise architect deals with the necessary upgrades and replacements that must be made to the IT infrastructure using lifecycle management practices for infrastructure and technologies employed.  These may address ever changing regulatory requirements, or other initiatives not within the scope of any single team in the organization. An example of this is the immplementation of Service-Oriented-Architecture, which has an impact on several layers of systems, but produces gains in terms of flexibilty.

Trends

The largest trend is the outsourcing of IT resources, such as entire datacenters.

This in turn is creating the need for better management of distributed data management infrastructure.  Companies like Tivoli and BMC have been leading this for years, along with HP.

Observations

On-demand and virtualization are important techniques for making the Enterprise Systems Architecture more flexible.  In this model, pools of assets (equipment) are made available, and are called into use on a when-needed basis.

Advertisements

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: