|
A true enterprise class software system must be built upon an architecture that
meets minimum requirements, which are often referred to as the “abilities.”
Specifically, these “abilities” are:
-
Availability. Availability refers to the ability to provide end user access
to a service a high percentage of scheduled time while attempting to reduce
unscheduled outages. A solution is highly available if it meets the
organization's scheduled uptime goals. Availability goals are achieved by
reducing unplanned downtime and then working to improve total hours of
service operation.
-
Reliability. Reliability refers to the ability to reduce the frequency of
system failure, while attempting to provide fault tolerance in case of
failure. A solution is highly reliable if it minimizes the number of single
points of failure and reduces the risk that failure of a single
component/system will result in the outage of the entire service offering.
Reliability goals are achieved using redundant, fault tolerant hardware
components, and software systems that can be deployed in a manner that fully
utilizes a hardware and network fail-over topology.
-
Scalability. Scalability refers to the ability to add resources and computers
while attempting to improve performance. A solution is highly scalable if it
can be scaled up and out. Individual systems in a service offering can be
scaled up by adding more resources (for example, CPUs, memory, disks).
The service can be scaled out by adding additional computers.
The growing utilization of the Internet has placed enormous performance demands
on information systems. Poorly architected systems may demonstrate acceptable
performance levels when only 50 or 100 people are using the system, but
performance often drops precipitously when the number of concurrent users
exceeds 150 to 200 users. To the Customer Service Representative, this means
very slow system response and an irritated customer. To the web user (often the
consumer or field representative), this means frustratingly slow screens and web
browser timeout error messages.
A well architected system will allow a business to inexpensively match hardware
resources (servers and client computers) to performance demands. The result is
a system that will scale with utilization demands, allowing you to keep the
system’s performance quick and pleasant, no matter how many people are accessing
it.
-
Flexibility. Flexibility is the ability of the architecture to accommodate
changes with minimal disruption to the system’s intrinsic stability; the
ability to easily extend the system’s functionality with third party software
applications or modules; and the ability to expose the system’s core
functionality to outside software applications.
|