Approach: Technology Philosophy


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.

© 2004-2006 - All rights reserved