Scalability - The forgotten dimension
Robust data modeling
The system must provide data modeling capabilities that allow the enterprise to be described without
compromise. Forced fits lead to complex application code, extra traffic, and risky maintenance of system
integrity. If flexibility to try different approaches is built in, database access can be optimized. The following
examples highlight this requirement:
-
Management of long transactions used in utility and telecommunications business processes. If the only
tools are extract-modify-mergeback and long-term exclusive locking, conflict resolution becomes
difficult and database transactions increase-all of which affects scalability. Capabilities must include
versatile conditional data handling through versioning and various forms of optimistic and pessimistic
concurrency management.
-
Dynamic coordinate projection system handling. Large enterprises often have spatial information that
covers vast geographic areas, resulting in the need to work in multiple coordinate systems
simultaneously. If a system cannot present data in multiple projections to concurrent users, data
translation and duplication are required, which limit scalability.
-
Multiple graphic representations. Utility and telecommunication organizations use plans for substations,
towers, and other complex assets. These plans typically provide structural details and alternate views of
plant items. A system that supports this concept of plans within the single database reduces system
maintenance, thereby improving robustness and scalability.
System architecture
An essential component of scalable systems is flexible system architecture. As users are added, the sensitive
points in the system change. It must be possible to analyze this dynamic information and perform suitable load
balancing. For example, multiple servers provide an effective means of scaling systems. Coupled with three-tier
application partitioning, large organizations can adapt to support growing user communities.
The workflow of an organization follows very specific patterns. For example, at the beginning of the work day,
hundreds of employees may need to start the same application. This burst of activity may saturate the network
beyond its capability. Should one size the network to handle this peak? It is possible for software to simulate
system loading; as a starting point, it is reasonable for assessing orders of magnitude. However, the work habits
of staff make this difficult.
In practice, systems are usually expanded in stages. Not all of the projected user community will be online from
day one. The reality, therefore, is that as users are added, system activity rises through a series of plateaus.
The key flexibility provided by an open, partitionable environment can resolve many capacity problems and
respond to changing conditions. A commercial database, open communication standards, and distributed
processing are all key in tuning and adapting to an ever- changing environment.
Conclusion
Because information systems have become essential to the work processes of many organizations, they must
live by the rules of efficiency in both financial and operational terms. As we have discussed, systems must be
scalable to meet these criteria. We have identified the key strategies for achieving scalability as follows:
-
Fully leverage the flexibility and reliability of commercial databases
-
Develop a suitable display caching strategy
-
Design a flexible, multi-tiered, and partitionable architecture to efficiently distribute processing load
-
Use a robust data model that includes strategies for conflict management, dynamic handling of
coordinate projection systems, and multiple graphic representations
Not all these strategies are required in every instance. A further challenge in designing a scalable system is to
select the mix of strategies that best addresses the particular data type, network structure, and business processes
of the organization in question.