Dynamic Business Management Application Architecture DBA2 – Version 1.0

Moiz Ahmed

November 2007

Summary: This paper endeavors to define a dynamic framework for business management applications development. The framework is based on the concept of business components and groups with a focus on business process implementation. An important goal of the framework is to enable the architects and developers to envision the bigger picture during the application design phase. This will support development of a software architecture that will be cost-effective and easily adaptable.

Contents

Introduction
Dynamic Business Management Application Architecture
Scalability in DBA2
DBA2 Conceptual Implementation for Product Manufacturing Businesses
Conclusion
APPENDIX – A
References
About the Author

For more information and future releases on DBA2 please visit http://www.dba-2.com.

Introduction

Today’s business management applications are data–centric, involving complex back-end processing. Applications built to resolve small-scale, simple business problems may not have all the post-release maintenance and scalability problems associated with complex business issues. GUI applications are mostly event-driven—a change in data, a human interaction, or a business process generates an event that generally triggers a series of events or procedures to fulfill the request made by the initiating element. The computation of these results is again based on the data involved and the initial request. The common factors at this point that an architect looks into are (but not limited to):

  • Performance based on data transformation
  • Time required to compute results
  • Hardware required
  • Implementation

In my view, some important factors commonly left out at this stage are ROI, post-release or implementation maintenance (which directly relates to return on investment, or ROI), and scalability (alignment with business growth). Since many businesses depend on technology, this may change the strategic direction for the business to accommodate the costs associated with such factors. In other words, if implemented correctly, these will contribute to align an organization’s technology with its business, strategic, and financial goals.

More importantly, the rapid change in technologies has made it difficult for application developers to find a stable solution to manage post-implementation maintenance and scalability. Many companies struggle with the return on investment envisioned, instead of the actual investment made to manage the business problems that the technology was meant to solve. Along with that come the issues of performance, data transference over intranets and possibly the Internet, graphic user interface alignment with the underlying architecture, and the investment required to constantly update individuals’ skills to keep pace with the technological changes. It is fair to say that the solution may not always lie in the technology; it is probably more in the technical framework underlying the technology, a cross-platform, multi-dimension or multi-process independent module framework that can communicate intelligently among its components as well as externally through a core that can manage the entire application’s events, messages, and change in behaviors based on the events initiated (more on this solution in the following paragraphs). SOA and Web Services brought a major change in the way we think about developing applications, but most technology executives are still struggling with the cost and time associated with maintenance, technology integration, and the cost involved in implementing both. The technology meant to solve business problems has created another dilemma: “Should we spend more money to maintain and scale what we thought would make us money?” Granted, the costs will always be there, but the goal is keeping them to a minimum, knowing well that business leadership often has not been very cooperative in this regard.

As a solution, we can provide architects with a framework, which not only eliminates the need to evaluate many technologies present, but also helps to align the technical goals with business strategic goals and, more importantly, financial goals. In the following paragraphs, I will try to conceptualize such a framework.

Dynamic Business Management Application Architecture

In the world of object-oriented programming, each object has its own life cycle and a relationship to the rest of the application components. What makes DBA2 unique is how much code we put in an object to manage its own tasks and interact with external elements, which is called coding and inheriting intelligence for an object in DBA2. Envision each object as a living being that can be combined to form bigger components for the application, derived from and related to the core components of the application to gain maximum advantage from the two fundamental concepts of object-oriented programming: polymorphism combined with inheritance while seizing the advantages of the encapsulation. Before we get into the details, this concept is intended to achieve the following goals:

  • Provide ease in application implementation through independent intelligent modules while retaining:
    • Technical framework integrity
    • Greater performance
    • Maximum code reuse
  • Attain straightforward application scalability
  • Facilitate software architects and developers in realizing the bigger picture in the pre-development phase
  • Achieve greater ROI and customer satisfaction by minimizing post-release maintenance
  • Provide a ready-made, conceptual architecture for business management applications
  • Minimize development costs and defects while providing speedy time-to-market (TTM)

DBA2 relies on the multiple business components that combine together to create an application. A business component is defined in Appendix A. The building blocks for DBA2 are explained below.

Element

This is the framework’s lowest-level item. All others are formed by combining multiple elements. The top-level element will contain common intelligence functionality to manage internal processes as well as interactions with external items. The top-level element will also have intelligence to interact with the CCS and other system logical groups to facilitate the communication for its descendents. Note here that an element will still be able to maintain its integrity while having reasonable capability to integrate with rest of the application. Integration for each element will depend on the business or functional requirements of the element. An element may consist of one or more objects from an OOP point of view.

Functionally, an element would map to the smallest part of the business process. For example, in a customer management application this may be the customer’s tax management system. An element will have the following characteristics.

  • Derived from the customized core object with intelligence to manage all its tasks independently
  • Intelligent enough to manage external interactions from other elements, entities, and the Logic Central
  • Contain linkages to the core logic groups
  • Instantiated in its own thread to maintain its independence
  • Able to integrate into the module that will have some of the same characteristics as the object itself

Entity

An entity is the combination of multiple elements as derived from the core entities. A core entity has the functionality leveraged from all its contributing elements’ relationships with the core system entities and digital central nervous system. Each entity is part of a logic group found within a stage in its own business unit. The business units are formed based on the functional commonalities from a business process point of view.

Functionally, an entity will correspond to a business component. For example, in a customer management application an entity may be a combination of all elements that form a customer’s accounting operations, such as orders, taxes, payment information, and the history of all such elements. An entity’s purpose is to encapsulate one or more business processes within a business component in order to create independent components (Business Process and Business Components are Defined in Appendix A). Core entities are a part of the core logic group (CLG) of the digital logic brain (DLB). Along with other characteristics, an entity has the following characteristics:

  • Derived from one of the core entities
  • Has the intelligence to manage its element integration operations, such as:
    • Communication through CCS (digital central nervous system)
    • Events and relaying of the results for those events
    • Changes in behavior as transmitted by the elements
  • While maintaining an individual framework (as stated above), also holds the intelligence to integrate or link its internal elements with external items within an application.
  • Relates to component(s) of a business unit from the functional aspect of an application

Click here for larger image

Figure 1. Elements within an Entity and CCS with Relationships (Click on the picture for a larger image)

Logic Group (LG)

A logic group is a single entity or a combination of multiple entities combined together as they all relate to the same components of a business group. (Business components and business groups are the functional aspects of DBA2 framework and are defined in Appendix A.) Functionally, an LG or multiple LGs in a complex environment will align with a business group. The LGs, like the elements and entities, will be derived from a core LG to use maximum functionalities from the communication control system (CCS) and the Logic Central (LC). A core LG is part of the LC. For implementation purposes, a logic group may reside on one computer or on separate computers. If implemented on separate computers, the CCS can be used to manage the communication mechanism. A DBA2 based framework can have as many core LGs as the business requirements of an application need.  DBA2 in its simplest form will include (but is not limited to) the following core LGs.

  • Communication Control System. A CCS is the main LG for messaging and communication in the entire DBA2 framework. This will enable event instantiation and status changes, and will relay behavior change along with data transformation if required. It will also contain an internal authentication logic group that will manage authentication in the case of a client server application system or multiple peer applications. This will also manage the cross-platform application communication system within multiple LGs and applications through APIs, TCP/IP, UDP, or Web services. CCS is discussed in later paragraphs in detail.
  • Security Logic Group. This will hold all the elements and entities that manage the common logic for the security and user authentication system. It will be connected with the rest of the logic groups (core, business or any other), entities, and elements through CCS. Security LG will be instantiated through the system LG.
  • System Logic Group. The system LG consists of entities or, in a more complex application, LGs that handle the application’s centralized data transformation and any other common operations of the application. For example, a system LG can implement a factory design pattern to instantiate elements, entities, LGs, or even stages. System LG is part of the Logic Central.
  • Integration Logic Group. Integration LG will manage flawless integration between elements, entities, LGs, and stages. It is envisioned to be a highly complex structure that will hold the logic to manage updates that result from scalability, modification, and defect fixes, and also enable the application’s integrated operations to function with minimum effort and change in the business, GUI, or any other elements, entities, LGs, or stages.  Integration LG is envisioned to integrate heavily with the CCS and system LG and their internal components.
  • External Communication Logic Group. This LG will enable DBA2 framework-based applications to integrate with third-party applications. This will provide an authentication mechanism based on public and private keys or other appropriate authentication security techniques. In a Web-based application, this may be done via implementation of a Web services gateway, and it may be implemented as a middle tier, Web service, or as part of system LG or CCS.

Click here for larger image

Figure 2. Basic Implementation of Logic (Click on the picture for a larger image)

Stage

Functionally, business components and groups are implemented through LGs. To facilitate the technical framework, a stage is implemented. A combination of LGs with similar technical functionalities will constitute a stage. For example, a stage may combine all the data transformation LGs for an application or implement business processing LGs. Each stage will be derived from or will be a descendent of a core stage. From an implementation point of view, there is no limit to the number of stages in an application, but it is important to note that a well-thought-out implementation for stages would facilitate future enhancements and scalability operations in the application. A stage may still have associations with the system or core LGs to achieve administrative goals for the application. CCS LGs or entities will be used to facilitate inter-stage communication. Because of the operating system’s complex memory management mechanisms, the stages may lose state, behavior, or data after they are carried from one stage to another. To maintain these, a dynamically created stage will have to be updated. One such mechanism can be implemented by saving the elements in memory and updating the subsequent stage from memory. To maintain performance, each stage may be instantiated in its own thread and updated from the communication control system’s common elements that temporarily hold data while it is transferred from one stage to another. Figure 3 shows a simple stage implementation.

Click here for larger image

Figure 3. Simple Stage Implementation (Click on the picture for a larger image)

Communication Control System (CCS)

A CCS is the main LG for messaging and communication within the DBA2 framework. This enables event instantiation and status changes, and will relay behavior change along with data transformation if required. It will also contain an internal authentication LG that will manage authentication in the case of a client server application system or multiple peer applications. This will also manage the cross-platform application communication system within multiple LGs and applications through APIs, TCP/IP, UDP, or Web services. CCS is the communication backbone of the application framework that will be managed by the Logic Central. It manages the messages sent by different components of the framework, and ensures speedy delivery with reply messages, communication, and status changes at any level of the framework. CCS will have the following main components.

  • Event
  • Status
  • Communication

Each element, entity, or LG will be able to initiate events to corresponding components and receive the same. This will trigger a response by the receiving component and a change in status to match the sender’s request. The change in status will change the component’s behavior, and the application’s overall operations will be carried out in a similar fashion. The communication component of CCS will manage event and message communication with all components contained in the stages and application(s).

Logic Central (LC)

The LC manages all the core elements, core LGs, and core stages for the entire framework. This will be where the main intelligence for the application resides. LC is a complex framework holding all the common procedures, methods, logic, and patterns as well as the core items of the CCS. Every other element, LG, stage, and communication LG will be derived from logical parts of the LC.

Scalability in DBA2

To manage scalability in the DBA2 framework, the elements within an entity are designed logically while keeping the organizational business and process frameworks in mind. If the elements are designed correctly, entities and LGs will fall into place. The greater the numbers of elements, the more complex the LC and CCS will be.

From a business point of view, application scalability or modification supports easy implementation, minimum resources and time for release or TTM, and higher product quality and customer satisfaction. A simple example of how DBA2 can accomplish these goals can be seen by implementing an integration LG. Because of the emphasis on design and understanding its complex nature before coding begins, it ensures that application updates, for scalability or for any other purpose, can be achieved with minimal coding, resources, and time. In this way, it helps to ensure that the post-release technical goals are in line with the organization’s financial and business goals.

One of the goals of DBA2 is to enable software architects and programmers to look at the bigger picture before beginning the coding or development phase of the SDLC. The framework defines (enterprise level) business management application components that will aid the business process translation to technical design for the organization even before the design phase of the application. This will also help align the technical design strategy with the business units or components (defined in Appendix A). If implemented properly, it will help the staff to design an application that can be easily modified or enhanced since the business vision has already been (conceptually) implanted into the design. In version 2.0 of the DBA2 framework, we will attempt to write a process that will enable the architects or software developers to implement the DBA2 to understand and align the functional aspects of the business process with the technical framework before a design is written.

DBA2 Conceptual Implementation for Product Manufacturing Businesses

For purposes of demonstration, a sign company will be considered for a basic DBA2 framework implementation.

Statement of Current Situation

Manufacturing companies currently run the risk of being unable to provide their customer base with a timely status or track progress during the manufacturing phase once an order has been placed. The lack of an automated system to track product manufacture progress, resource management, and task allocation is a problem for manufacturing industry.  The inability to offer timely response to a customer inquiry and a slow turnaround time from inception to finished product is likely to lose customers for the business.

The process of production from order placement to delivery phases for product manufacture in its current manual mode is inefficient in that it involves multiple departments that need to communicate interdepartmentally as well as functioning independently to meet their own deadlines. Additionally, the manual processes cause redundancy, which leads to duplicate resource allocation, additional cost, and scheduling conflicts. The organization’s internal processes do not function within a centralized information base for the product development phases.  An easy method of communication interdepartmentally should exist between departments for tracking progress and task allocation, to facilitate planning and timely delivery of the product as well as customer-driven inquiries. A general overview of the problem may read as follows:

  • Organization’s internal processes do not use an automated centralized information base for product development phases.
  • Departments need a more cohesive interaction with other related departments for tracking progress and task allocation, to facilitate planning and timely delivery of the product.
  • Most of the processes are manual and can be redundant, causing duplicate resource allocation or no allocation at all.

DBA2 Implementation

A finished product goes through different phases of a life cycle before it is delivered. From the DBA2 perspective, the product manufacture phase progress and task/resource allocation generally consists of two separate business processes. The product manufacturing process consists of five major parts:

  • Order entry
  • Design
  • Development or manufacture
  • QA
  • Shipping

To implement DBA2 for such a business management application, each phase of the product development life cycle can be mapped to an LG as follows:

  • Order Entry LG, which will contain the following entities with related elements:
    • Customer entity
    • Customer accounting entity
    • Order entity linked with customer accounting entity and customer entity
    • Order history entity
  • Design LG
  • Development and Manufacture LG
  • QA LG
  • Shipping LG
  • Task Allocation LG
  • Progress Tracking

The default stages defined in DBA2 will hold well for the purposes of this application, with CCS as the communication back bone. With dynamically written LGs, it will be easy for each department to function independently and CCS can implement inter-department communication in the form of inter-LG communication.

CCS can also provide manufacture status based on the LG that the product is held in at a specific time, which will enable progress tracking. A centralized resource pool held in a task allocation LG and an explicit communication of task allocation LG with progress tracking and manufacturing phase LGs will help manage the resource allocation. Again, CCS will facilitate a thorough communication between all of the above mentioned LGs. An intelligent design of core and system LGs will enable easy maintenance and application scalability as the business grows.

Conclusion

This paper endeavors to define a dynamic framework for business management applications development. The framework is based on the concept of business components and groups with a focus on business process implementation. An important goal of the framework is to enable the architects and developers to envision the bigger picture during the application design phase. This will support development of a software architecture that will be cost-effective and easily adaptable. The framework relies upon independent intelligent units integrated together through a common logic system, each with the ability to manage its internal functions as well as react to and take appropriate actions based on interaction with external units. The concept gives great room for technical growth as the business grows with minimum cost, better quality, and on-time delivery. It also recognizes and tries to solve common business problems in the software development world, such as on-time delivery and management of TTM, QA, development costs, and post-release maintenance. This is the first version of the concept and may contain errors; however, appropriate modification and broader research will help produce a more refined concept. More information on DBA2 and future releases can be found at http://www.dba-2.com.

APPENDIX – A

Definitions

  • Data transformation
    Data transformation consists of any process that manipulates the data, collecting, combining, splitting or formatting. Data dispersion is the opposite of data collection, during which data is written to a database, a GUI object is updated, or a hardware register is written.
  • Business component
    A business component is defined as the lowest-level sub-business process of a business process that can function independently with data transmission managed by a supervising entity. A business component may need input from other business processes to produce results. This input is mapped to an event in DBA2 framework.
  • Business group
    A business group is the combination of business components. It relates to a business process in an organization with data flow being managed by multiple entities throughout the business process. A business group can independently manage its internal operations.

References

About the Author

Moiz Ahmed is a Technical Project Manager for Entessa with 15 years of experience in Software Engineering, Architecture/Design, and Executive Management. Prior to working at Entessa, he managed the development and QA departments as Senior Software Manager/Chief Software Architect, with projects ranging from $50K to $2 million. Moiz’s experience includes Enterprise Application Integration, BizTalk, SOA, strategic business development and alignment between technology and business. His skills focus on developing operationally critical business-management applications to realize ROI with scheduled delivery while maintaining quality and technical product integrity. He has written papers on software maintenance, automated software test planning, and SDLC, A C-Level Perspective. Moiz is also skilled in CMMI, SCM, and Change Management.

Moiz Ahmed is the founder and Founding Chairman for Magic City Technology Council (http://www.bhm-tc.org), a Birmingham, Alabama engineering organization promoting Software Engineering, QA and Technical Project Management. There he managed all aspects including the start-up initiatives, executive committee, board of advisors, strategic and business development, vision, financial, sales, legal, marketing and HR. He is also a member board of advisors for ITT Technical Colleges and Magic City Technology Council. Moiz can be contacted at ahmedmoiz@hotmail.com or (205) 602-1200. For more information and future releases on DBA2 please visit http://www.dba-2.com.

Show: