Creating the prototype application map
application mapper searches in the datastore and investigates the results, he strives to build a picture of the application out of the IT components he finds. This picture is called the prototype application map, and is the goal of the Prototype stage in the Collaborative Application Mapping (CAM) process.While the
A successful prototype is crucial to CAM, and fulfills two purposes:
- It provides a logical framework for the application mapper to capture what he finds about the application, and is a vital part of his toolset.
- It becomes something that can be shared with the application owner and to solicit feedback, thereby creating a very effective communication tool. See Sharing the prototype application map for more details.
Before you begin
Before you can build the prototype map, ensure that you have started searching and investigating the items in the datastore that should be added to the prototype, using the techniques described in Searching and investigating the datastore.
To create the application prototype
The prototype is built using the Manual grouping functionality in BMC Atrium Discovery. The application mapper creates a manual group for the application he is mapping. The group is the workspace for the application map.
The prototype is built in the group by creating subgroups to correspond to the application tiers, also known as functional components. A functional component is a part of an application that you want to map as a separate section. Generally, an application has one functional component for each tier ("web", "business logic", and "database"), but there are some more complicated applications that might need multiple functional components per tier. For example, if an application consists of a web layer, some message-driven EJBs in one set of J2EE containers, a message broker, and a spring-based POJO service in a different set of J2EE containers, you would consider creating four functional components to represent the application.
As the mapper finds items in the datastore that he wants to add to the prototype, he adds them to the appropriate subgroup that corresponds to the functional component that he wants the item to be modeled in.
Notes are a key component in the CAM process, even at this early prototyping stage. Writing down observations and questions in this stage helps you maintain your understanding of the application as the prototype potentially becomes increasingly complicated. The questions are useful for soliciting feedback from the application owner when the time comes.
To create a manual group
- Enter the name of the new group in the Create group for mapping field. The period (.) and double quote (") symbols cannot be used in a group name.
- Click Create.
The Home Page for the new empty group is displayed.
To add a subgroup to a group
- Select the nodes to add to the new subgroup. You can use the select tools to help with this: (Select: All | None | Invert).
- Click the Actions button to display the Actions menu, and select the Manual Groups item.
- If the required parent group already exists, click the entry in the displayed list to enter its name in the Group field (or enter the name of the group manually). Once the name is entered, the non-matching groups are removed from the displayed list and the Subgroup entry field is enabled. If the parent group does not already exist, create it by entering a name in the Group field.
- Enter the name of the subgroup into the Subgroup entry field.
- Click Create.
You can add an empty subgroup from the home page for the group.
To view a Group page
To view a Group page, click the name of the group in the group list.
The Home Page for the group displays the Application Mapping tab.
For more information, see Viewing created groups.
In the following example, Mike continues where he left off in the previous stage, having gathered enough information from his searching the Discovery datastore for seed data given to him by George.
After locating hosts, SIs, and DBs, Mike gathers all this information into subgroups to group application components into more refined blocks that represent the tiers in the application (one for the web tier, and one for the DB tier).
- Create a workgroup for the application Friends, the application name that George provided as seed data.
- Perform an index search of the BMC Atrium Discovery datastore for Friends.
The results of the search indicate that two software instances (SIs) and two software components were located. Mike clicks through to the SI details, and notices two Tomcat application servers, likely representing the Web component of the Friends application that George mentioned previously.
Drilling into each of the servers shows:
- Software components, which are modules that run inside middleware (for example, J2EE EARs and WARs, .Net applications, IIS virtual directories, and so forth).
- Client to server communications to a MySQL database
- A dependency to that database (SQL Database Schema mellon for one server, one appended with _dev for the other)
- Choose Manual Groups=>Friends from the Actions menu, type web in the Subgroup field, and click Create.
- Perform an index search of the BMC Atrium Discovery datastore for Mellon (the name associated with the database).
- Click on the Database Detail link.
- From the Database Detail list, select all instances of the database and create a manual subgroup in the Friends group named db.
- View the manual group to assess the details of the current prototype.
- If necessary, add notes at the group, subgroup, or top level, or drag and drop items to rearrange them in the map to provide better context in the hierarchy.
Video 2 that follows illustrates the first three stages in the CAM process and shows how, by starting with seed data, the application mapper can begin searching the discovery datastore and building the prototype map.
Where to go from here
After you have created your prototype, you should have enough context in your applications to begin sharing information with the application owner in a PDF report. Creating a preview with context-driven notes enables the application mapper to communicate with the application owner efficiently on the map building process. Then mapper can apply the owner's feedback to refine the map before building it our further.