The Wibble Software QuickExpense ApplicationThe Wibble Software QuickExpense application is an example application which provides a web-based expenses tracking system. Examples are provided which show how you would approach modeling such an application using Tideway Foundation version 7.0 and later. Modeling involves gaining an understanding of the application, its components, and the dependencies between them. Once you have done this you can create patterns using the Tideway Pattern Language (TPL) to identify components and create nodes that represent them in the Tideway Foundation datastore. Simple IdentitiesSome processes which are seen by Discovery are not really of any interest, or may be an unimportant component of the application that we're modeling. Although they may be unimportant, they are still part of the application and should be considered. An efficient way of modeling such components is to use identify tables to create a Simple Identity. A Simple Identity enables you to label and show which processes are recognised, and provides a means for Software Instances to include these components. Without Simple Identifiers, visualizations of these Software Instances would show links to processes that had not been modeled. Tideway best practice is to also create Simple Identities for components that are modeled with Software Instances. In modeling the example application, Simple Identities are created in Identifying Minor Components Using Simple Identifiers. The following sections are written as requirements and instructions from the application owner to the modeler. BAI creationThe BAI should be created on detection of a matching Application Server and a matching Web Server. The application version should be determined from the startup banner which is written to the application server's log files. These logs files can be found in the same directory as the XML configuration file. Application ServerThe Application Server is proprietary software produced by the Wibble Software Company Ltd, and is considered the ''prime'' Software Instance which is used to recognise the Business Application. It can be identified from the process name wibbleAppServ. Full version modelling is required, and can be obtained from the application server by running the binary with the -v flag. The version should be stored in x.y format with the subsequent digits being used as the build number. Additionally, any patches applied should be recorded in a separate attribute. Marketing NamesThe Wibble Software Company's marketing department prefer to have an exciting product naming scheme than to use version numbers:
The marketing version should be used to populate the product_version attribute. If an engineering version is found that is not in the above list, a product version of Unknown should be used. Typically more than one application server instance is run, for load sharing and failover. In order to determine the instance names and operational mode, the application server configuration file must be examined. Its path is visible on the command line under the -c option. Its location is a directory named after the instance name. From this XML configuration file, the instance mode should be extracted and used to populate the edition attribute. A list of listener ports should be extracted and put (as a space-separated string) into a new custom attribute called ports. A simple identity should be added to the discovered process. Database ServerA proprietary database backend is used, again from the Wibble Software Company Ltd. One instance is run to support each of the main application server instances. The mapping of these instances can be determined by the suffix after the underscore in the process name. The database server process can be identified by the form wibbleDBxy where xy is a two digit version representing the x.y database version number. This version should be extracted along with the instance name. A simple identity should be added to the discovered processes. Web ServerIt is assumed that an instance of Apache Web Server (as long as it is V2.1 or later) running on the same host as the application server is also part of the QuickExpense application. You do not need to model Apache yourself, as you can use the matcher provided in the latest TKU. Exporter ServerThere are one or more copies of an exporter process for feeding data to external systems. No information is available to distinguish these processes. Obtain the version information from the OS package called wibble. A simple identity should be added to the discovered processes. Watchdog serviceThis process handles failover and error notification in the application server, and as such is not a major system component. No versioning capabilities are required and only a simple identity should be added to the discovered process. VisualisationThe figure below is a demonstration of the final modelled application, as viewed in the Software Structure visualization in the Tideway Foundation UI. Return to Modeling the QuickExpense application. |
