Architecture Design
Approach
The primary reason for defining software architecture is
to understand the “big picture” of the major
functional components and their interrelationships. The
process of definition involves first, a graphical representation
of the large functional components, without any specific
reference to the underlying technology. This step serves
mainly as a clarification of functionality, and a preliminary
understanding of system complexity. The overlaying of the
software architecture with appropriate technology options
follows this process. This combined diagram serves as a
framework for the evaluation of available technology options.
The process of architecture definition also serves as a
starting point for the development of an implementation
approach. This translates to the development of a sequence
of development and testing activities. The architecture
establishes functional and technical priorities, and also
identifies areas of organizational dependence. Finally,
software architecture places in direct perspective the complexity
of development, testing, maintenance and enhancement. An
evaluation of organizational readiness is then possible,
not only in terms of system development and deployment processes,
but also in terms of specific skill gaps for technology.
Tribiosys has typically put together open, multi-tier, service
based software application architectures. Such architecture
implementations are flexible, scalable, extensible and robust
and have been proven to have the following benefits: [Please
note that this architecture approach outlines our architectural
philosophy from past engagements and does not imply that
it will be strictly applicable to every engagement.
The
openness of the architecture and the standardization of
interfaces between each individual component offer greater
independence from any particular hardware or software environment
and reduce reliance on any particular vendor.
Enhanced
Interoperability of applications and systems due to interface
standards allow for a diverse mix of systems to operate
together, sharing data and tools in a useful and transparent
fashion. This allows for a ‘best-of-breed’ approach,
for choosing the right suite of applications and systems
that best meet the individual needs and requirements of
each business problem. There will be an overall plan to
integrate them into a common environment, thus avoiding
the need to choose a single application system that does
not entirely meet all needs.
By
providing a capability to link to existing systems, the
architecture can accommodate change without losing existing
IT investments. This is a necessity in planning for the
longevity of any system.
The
integration of the data model and the existence of the data
services container reduces redundancy of work and resources,
to produce data only once on any platform, and have it available
for use by any authorized user, where and how it is needed.
The data could even be made available to external applications
and systems in a standardized format with relative ease.
The architecture,
based on open and widely accepted standards, also provides
the flexibility to change and expand the computing environment
as business and computing needs change. In addition, the
latest tools and applications can be incorporated, as they
become available, within their components and without affecting
the rest of the system.
The multi-tier
approach significantly limits ‘the ripple effect’
of enhancements and changes to the application and its environment.
This reduces the time and resource requirement for maintaining
and enhancing the system.
The multi-tier
approach also provides the capability of tuning and scaling
of individual components without affecting the rest of the
system. This provides for greater effectiveness, and cost
efficiencies in performance management.
The use
of consistent interfaces to different software platforms,
as well as componentization of services enhances the efficiency
of service and support resources.
The multi-tier
approach also provides for extreme simplicity of the client
software, which only includes the user interface services.
This translates into ease of management and rollout of the
client across multiple geographic regions, networks, and
platforms while centrally controlling the relatively complex
portions of the other services.
The encapsulation
of services, with a standardized interface structure, provides
for ease of use of those services by external applications
and systems that might, currently or in the future, need
to utilize certain business or data functions of the system.
This alleviates the need for these external systems to have
to rewrite the services they need and enhance reuse and
maintainability.
The additional benefit of defining a software architecture
framework is the clear identification of reusable services,
applications, components, any set of data and functions
that can be leveraged across internal and external interfaces.
This figure illustrates Tribiosys’s
robust and pragmatic approach to developing software architectures,
a typical n-tier services-based architecture. This approach
provides for a scalable and flexible architectural foundation
for solutions and the architectural framework enables applications
to extend easily.