1 2 Previous Next 15 Replies Latest reply on May 31, 2017 5:23 AM by Doug Connell

    How Dynamic is Start Anywhere Modelling?

    Doug Connell
      Share This:

      How Dynamic is Start Anywhere Modelling?


      I am trying to make a recommendation to my company about how or if we use Start Anywhere.  I need some advice please.

      We are concerned that Start Anywhere is not dynamic; the documentation says it is - but does not say how.


      My Qqestions are shown at the bottom of this post.


      BMC Documentation

      The BMC documentation says this:


      The models produced with start anywhere application modeling are simple to create and work on the basis of data that has already been discovered from you network, data that is held in the BMC Discovery datastore. This does not mean that the models are static, rather, they update automatically to reflect the current data. So, if you scan the application and a new component of the application is discovered, it is automatically linked in to the existing components, and reflected when you view the model again. If the new component is one that you have excluded from the model, it is still in the datastore, but not included in the application model.


      This paragraph raises more questions than it answers.  let me give an example:



      Below is a model defintion for a simple three tier application.


      1. DB  - MSSQL Server and host.
      2. APP - Application Server and Host.
      3. IIS Server and Host.


      I created this Map in four easy steps:


      1. I seached for the DB Host (SQL0100), Visualized it, Removed all stray Software Instances, Added the remaining to Items to a new Model.
      2. I seached for APP Host (app0100). Visualized it, Removed all stray Software Instances, Added the remaining to Items to the existing Model.
      3. I seached for APP Host (iis0100). Visualized it, Removed all stray Software Instances, Added the remaining to Items to the existing Model.
      4. Published the Model.



      This is what I see as My Application Instance.




      How dynamic is the resulting Model?

      1. If another Software Instance (for an Item that is relevant to my Map) is installed on one of these three hosts, will it be automatically included? (This would be good)
        (For example;  Another App Server instance on the Application  Host).
      2. If another Software Instance (for an Item that is irrelevent to my Map) is installed on one of these three hosts, will it be automatically included?   (This would be bad)
        (for example a monitoring agent that is being rolled out globally to all hosts).
      3. A second HA Web Host (iis0101) is added.  It has Observed Communication with the App Server Host.  Will it be Automatically Added with the Correct SI?
      4. A second MSSQL Instance and Host is Added for Reporting Purposes.  The database is replicated from the first host.  It has Observed Communication with the first DB Host.  Will this New Host and DB Instance be added?
      5. Can you used a Named Value to dynamically map DEV, TEST and PROD at the same time?
      6. If The MS SQL Server changes from SP3 to SP4.  (I am not sure how ADDM works - but this may result in a new SI?). 
        Will the Map automatically include the new SI for the new Version?
      7. The database gets corrupted and has to be wiped and there is no backup.  The database is then recreated via discovery.
        The model or maps have been saved and are re-imported.  Will the Application Instances get recreated with no Issues?
        I downloaded and opened a .model file and saw a lot of node ids and keys.
      8. A host is recreated with the same name (a duplicate);
        there are multiple reasons why this occures (for example migrated a host from VMware to HyperV);
        we get about 3% duplicates per month - or about 20% per year;  after 3 years ~50% of the hosts may have been affected.
        Each map might contain 5 hosts on average - so most of the maps would be affected after 3 years.
        Will the maps autmatically update and contain the new hosts?


      Answers for Legacy CAM

      For Maps built using Legacy CAM (assuming they are built correctly) the answers to these questions are:


      1. Yes.  (if you build the Selection Criteria to look for SIs of a certain Type).
      2. No.  (which is what we want).
      3. Yes.  (If you traverse from the app server to look for IIS SIs).
      4. Unlikely.  (It is theoretically possible to build a map just in case a Report Server is added, but unlikely.)
      5. Yes
      6. Yes ( if The SI "type" attribute remain constant and the Map is built using this attribute).
      7. Yes.
      8. Yes.


      So CAM scores 7/8 for "Dynamic Capability"


      Answers for Start Anywhere Mapping


      What are the answers for start anywhere?


      The decision appears to be Dynamic Capability versus Ease of Use.   Our mappers are more Business Analysts than Developers - so I want the answer to be in favour of Start Anywhere.  Does anyone have any experience to share here?  Is there an argument to use a combination of CAM and Start Anywhere?  I certainly think Start Anywhere is conceptually easier and therefore the Map building should be faster?  I guess we could sacrifice some Dynamic Capability - if Mapping is twice as fast.   We have always wanted the Mappers to Map DEV. TEST, QA and PROD using a Named Value - but this is conceptually hard is is not getting done.  So what is the best way forward?



      The BMC documentation is very short and inexact.  Could you please expand the ducumentation to help Users make these types of decisions.

        • 1. Re: How Dynamic is Start Anywhere Modelling?
          Duncan Grisby

          You might like to look at anywhere application modelling where I explain how it is dynamic. I have added a slight variant of that text to the documentation too.


          Also, watch this webinar recording: https://communities.bmc.com/community/bmcdn/discovery/blog/2017/02/15/discovery-webinar-saam-tips-and-tricks#comment-100…


          In your example, there is no automatic connectivity between the three components of your application, which greatly limits the effectiveness of SAAM. Normally we would expect there to be automatic linkage between the components, meaning that it was easy to find them. Was there no linkage in your case, or did you actually remove it as part of the "removed stray software instances"?


          To answer your questions:


          1. Yes, as long as it has a relationship to something that is in the model.

          2. No, unless it has a relationship to an SI (or other non-Host node) that is in the model -- in which case you would want it.

          3. Yes. (I would dispute your yes for CAM here. You can achieve it with CAM, but most real-world CAM models would not do so.)

          4. Yes

          5. No. SAAM identifies instances of applications, not types of applications. This is a key philosophical difference between SAAM and CAM. A lot of the complexity of CAM is in the (rarely understood) need to define named values and identify instances.

          6. Yes. If the version changes, the existing SIs are updated, not replaced.

          7. As long as you have discovered the same data, the models will be imported with no problems. The node ids and keys you see in the saved file are for tracking purposes, but it will successfully find the replacement nodes if all the nodes and keys are different.

          8. SAAM doesn't care about host names. It only cares about connectivity between nodes. If Discovery thinks a host has been replaced with a different one, it would create new nodes, and we would expect them to be related to some of the existing nodes, and therefore added to existing models.

          6 of 6 people found this helpful
          • 2. Re: How Dynamic is Start Anywhere Modelling?
            Doug Connell

            Hi Duncan

            Thanks for your reply.   I find your answers encouraging.  The Example that I gave was perhaps quite unusual.  When I mapped the three tiers using CAM there was no observed communication between the tiers which is bizarre - so I could not map using traversal and had to find each tier individually.    Normally connections between tiers in Applications are persistent TCP/IP connection due to the performance penalty of having to shut down and reopen connections for every user request.  We are scanning on Saturday morning; not my choice.  i am wondering if maybe some apps are quiscent or down.


            Does the Start Anywhere Map remember your initial Query that you use to start the map or does it simply remember the Nodes returned.  For example:  I just searched for "TrueSight" on our NZ Consolidation Appliance.  This has not yet been mapped.  The Query Returned 20 SIs. 

            My Query is: search SoftwareInstance where * has subword 'TrueSight'


            I Clicked on Select - All.  I then selected "Visualize / Model".  If I then Click on   "Show / Hide".  This is quite a good way to get a quick count of the items.  the popup GUI says that I have: 2 Candidate SIs; 8 Hosts; 1 Software Component and 41 SIs.
            If I change my Query and traverse to the hosts and run the Query in the Explore -> Query menu:


            search SoftwareInstance where * has subword 'TrueSight' traverse RunningSoftware:HostedSoftware:Host:Host


            If I now Visualize the Map and get a count of the items using "Show / Hide", my model has entirely different counts: 9 Candidate SIs; 12 Hosts; 1 Software Component; 83 Software Instances; and 4 Virtual Machines;


            Hummm!  So the Start Anywhere must remember a starting Set of Nodes and then trace links of a certain type and to a certain depth.    When you add to an existing model, you are adding to the set of starting nodes.
            So what links does it trace for each node type? and to what depth?  Are the rules easy to describe?  Are there any dos and don'ts with regards to that first query?

            • 3. Re: How Dynamic is Start Anywhere Modelling?
              Doug Connell

              I just had a meeting with one of BMC's Professional Service Staff.  She explained her experience with CAM and SAM in Canada and several POCs. Very useful.

              She explained the following concepts:


              - Anchor Nodes in SAM.  Anchor nodes should be at the Software Layer - not Hosts.   I like the term "Anchor" nodes; it explains so much.


              - SAM maps typically take ~50% of the time to build.  With CAM you need more seed data and a longer up-front conversations with Support.  With SAM, you can start with only a little seed data - but there may be more iterations where Support visually check the Map.  [I am also thinking that we can posibly get some Support teams to build their own maps with SAM;  this would be impossible with CAM].


              - The "Review Suggested" feature and how SAM alerts you to Dynamic changes to the map.


              - The new exclusions rules in version 11.1


              I was impressed.  I have gone from being skeptical, to being an evangalist.  The only comment I would say is that BMC's documentation on SAM is ????.  The documentation does nothing to sell SAM or convince customers of the benifits or explain how it is dynamic.

              • 4. Re: How Dynamic is Start Anywhere Modelling?
                Doug Connell

                I tried mapping a very simple App with 4 tiers: one SI and one Host in each Tier.


                I tried to map my Application using both SoftwareInstance nodes and Host nodes as my "Anchor" points.


                Here are the two Queries that I used:


                Option 1) Search SoftwareInstance WHERE name in ['Software Server 1','Software Server 2','Software Server 3','Software Server 4']

                Option 2) Search Host WHERE name in ['Host1,'Host2','Host3','Host4']


                I get totally different results.  With Option 2, I have a lot of stray SIs that I need to exclude.  I suspect that the Dynamic Mapping properties of each option are totally different - so the choice between Option 1 and Option 2 above is very important.


                Can you give advice please?

                • 5. Re: How Dynamic is Start Anywhere Modelling?
                  Duncan Grisby

                  The fact that you see different things starting from Hosts that starting from SoftwareInstances is not primarily about SAAM and application modeling. It is based on how the visualizations work when you are just looking at data. As I explained earlier, SAAM is essentially a way to save a visualization and have it kept up to date with changes in the model, but everything stems from the behaviour of visualizations.


                  The visualizations (and hence SAAM) always try to show you something "useful" starting from whatever node or nodes you start from. (Note that I'm talking about the Software-Connected focus here -- the other focuses follow different relationships.)


                  To understand what is going on, view the visualization of a single node. If you start from a single SoftwareInstance, you see that SI and other software things related to it (contained SoftwareComponents, communicating SoftwareInstances, and so on). For each SI that is shown, you also see the Host it is running on, to give you context about its Host. You do not see any other software running on the same Hosts (unless they are shown already because they are communicating) because that is probably not pertinent to the SI you started from.


                  If, on the other hand, you start your visualization from a Host, it does show you all the SIs on that Host, because that is the most reasonable thing to show for a Host. For each of those SIs, it shows all the related software things and their Hosts, and so on.


                  That is why to model an application using SAAM, it is usually best to start your model from a visualization that has software nodes as its root nodes, rather than Hosts. If you start from Hosts, you have to manually trim off all the software you don't care about that's on the Hosts. By all means start looking for your application based on the hosts, but before you start your model, click through to one of the SIs to remove the irrelevant SIs that are sharing the Hosts.


                  When SAAM automatically updates a model, it does not remember the query you used to start. There may not even have been a query, because you might have clicked and navigated all over the place looking for a good starting point. All SAAM has to work on are the nodes that are currently in the model. Essentially what it does to update is take all the non-Host nodes as the starting point for a new visualization, and sees if any new nodes arrive. (It should be clear why it uses non-Host nodes -- if it used the Hosts as some of the starting points, it would bring in all the SIs on those hosts, rather than just ones that are otherwise connected up by communication etc.)

                  6 of 6 people found this helpful
                  • 6. Re: How Dynamic is Start Anywhere Modelling?
                    Doug Connell

                    Great answer. 


                    I am beginning to see the picture clearly.  This is an important decision for us.  Over the next 3 years we are planning to spend 12-15 person years on mapping.   We need to get the procedure and methodology optimized.  I am going to do some testing to simulate dynamic changes in the map.  I think I can use Model -> Software to create SIs that add to my map.

                    • 7. Re: How Dynamic is Start Anywhere Modelling?
                      Doug Connell

                      I created a spreadsheet to generate Queries to show "Anchor" nodes for SAAM.

                      Plee see Query Generator for SAAM and CAM .

                      Let me know if you think this is useful.

                      • 8. Re: How Dynamic is Start Anywhere Modelling?
                        Young So

                        Duncan Grisby or Doug Connell


                        Question on 5.

                        No. SAAM identifies instances of applications, not types of applications. This is a key philosophical difference between SAAM and CAM. A lot of the complexity of CAM is in the (rarely understood) need to define named values and identify instances.

                        In SAAM, do you identify the software instance for Dev, QA, and Prod under Model | Software?  Is Model | Application the business application instance that related to business service for production? Does software instances relate to technical service?  Could you define software instance vs type in SAAM or provide a link for review the definition?

                        • 9. Re: How Dynamic is Start Anywhere Modelling?
                          Duncan Grisby

                          In BMC Discovery (all of it, not just SAAM), SoftwareInstances represent pieces of running software. Basically a SoftwareInstance is a process running on a Host. In the CMDB world, these are BMC_SoftwareServer CIs.


                          Most of the SoftwareInstances you need to care about will be identified automatically based on the standard TKU patterns. If there is an important process in your environment for which the standard TKU patterns do not create a SofwareInstance, you can use Model > Software to define a simple new pattern that does identify it. (The system automatically identifies things that you might care about, and creates CandidateSoftwareInstances for them.)


                          An application model is a grouping of SoftwareInstances and other node kinds that are working together to provide an application that is of meaning to the business. Business Application Instances are the things that you would normally label as being Dev, QA, Prod, and so on. In the CMDB, these become BMC_Application CIs.


                          In the CMDB, you also have BMC_BusinessService, which has sub-classifications of business service or technical service. It is conceptually "above" BMC_Application. Sometimes it is useful to group one or more BMC_Application CIs into a technical service or a business service. At present, that is entirely something you do in the CMDB -- BMC Discovery is not involved in BMC_BusinessService CIs.

                          2 of 2 people found this helpful
                          • 10. Re: How Dynamic is Start Anywhere Modelling?
                            Young So

                            Thanks for that explanation

                            • 11. Re: How Dynamic is Start Anywhere Modelling?
                              Doug Connell

                              I am trying to test the Dynamic Capability of the SAAM Maps.  I thought I could use the Model-Software capability to model background processes on UNIX.  Please see example below.  I have tried about 4 scenarios - but so far I have been unable to trigger any Dynamic behaviour in SAAM.  Can you suggest a good way to test or trigger the Dynamic capability in SAAM?  Is the Model->Software feature a good way to trigger Dynamic capabliity?  I am trying to get a thorough understanding of SAAM.  Thanks.  Doug.




                              1. Create a New SI.
                                • Choose a UNIX server, login as “addmuser”
                                • execute:  sleep 18001 &
                                • Model Software based on this UNIX Process
                                  • Set type="TEST sleep 18001"
                                  • search for process with cmd=”sleep” and userid=”addmuser” and args=18001
                                • Run a discovery for the test UNIX host so that the new SI is instantiated
                              2. Create a SAAM Map.
                              3. Create a similar SI using sleep.
                              4. Check to see that the map has automatically included the new SI.
                              • 12. Re: How Dynamic is Start Anywhere Modelling?
                                Duncan Grisby

                                Why would you expect your second "sleep" SI to be added to your application model?  You certainly should get a new SI for the new process, as long as it's on a different host -- the simple SIs generated by Model > Software group all the matching processes on a host into a single SI.


                                However, application models (and the visualizations upon which they are based) follow relationships between software nodes to decide what to display and what to add to models. You won't have any relationships between your new sleep SIs, so the new one won't be added. If you want to simulate a situation in which SAAM would add nodes to a model, you need to either make your processes connect to each other in a way observed communication sees them talking, or you need to write a custom pattern that creates a Communication or Dependency relationship between the SIs.

                                • 13. Re: How Dynamic is Start Anywhere Modelling?
                                  Doug Connell

                                  Duncan is this accurate?



                                  I just did a training course in Bangaluru.  The Mapping team gave me about 8 Applications to Map - Applications that they were having trouble with.  I mapped them all and they all turned out to be three tier applications - but none of them had any observed communication.    I thought that this might be due to the fact that we were scanning on Friday night during a quiet period - but I done quite a bit of development myself and after talking and thinking a bit - I think the problem is that many banking Apps may not use permanent connections - and not that interactive although most appeared to have a Web Tier.  There was therefore no need for the developer(s) to use Database pools and permanent connections.  Many of the Vendor Apps (COTS Apps) do have observed communication - but many Banking apps do not.  I guess there is a possibility that there is some form of Discovery failure (failure to run Netstat) - but there was no other evidence of this and Netstat doees not require sudo.  Actualy most of the apps I mapped were on Windows.


                                  Dynamic Capability of CAM Maps

                                  A CAM Map has effectively two layers.  Both of these layers are Dynamic.


                                  1) Business Layer

                                  The Top Business Layer composed of the BusinessApplicationInstances (BAIs) and the FunctionalComponents (FCs).  The Business Layer is Dynamic if you code in Search Expressions that look for Key words dictating by the company naming standards embedded in Instance Names, Directory Names.


                                  2) Discovered Layer
                                  CAM Maps (and SAAM Maps) also have the Discovered Layer composed of Database Detail (DDs) and SoftwareComponents (SCs) all linked down to the Hosts and Network Devices.  This layer is also Dynamic - in the sense that ADDM will link up all the components if ADDM Detects communication links between both Hardware and Software Components. ADDM will also link in new Items if and when they are discovered.


                                  Dynamic Capability of SAAM Maps

                                  SAAM Maps also have two layers.  The Discovery layer is Dynamic as described above for CAM. However, for SAAM, the top Business Layer is completely static.   This might change depending on BMC Develop the SAAM Functionality.   In SAAM there are no FCs.  The BAI connects directly to a few chosen Anchor points which are chosen by the user.  The Anchor points are identified in SAAM using the Node key or Node id.  It is currently not possible to Select the Anchor nodes based on keyword search (as is the case with SaaM).  Currently the Business Case around using SAAM revolves around its ease of use, the fact that it is 50% faster to perform mapping.  I certainly found that the BAs who are in our Mapping Team were much more comfortable using SAAM (compared to CAM).


                                  Lastly - In terms of the Model->Software cpability. Yes, it will only crerate one SI - Except if you give change the SI Type:  "TEST - Sleep 18001" and "TEST - Sleep 18002".i.e. have two Software Models.  At least I think.

                                  • 14. Re: How Dynamic is Start Anywhere Modelling?
                                    Duncan Grisby

                                    No, that's wrong.


                                    SAAM models change over time. Automatically. They are not at all static. Every time a host finishes scanning, the system re-evaluates any SAAM application models that may have been affected, and adds and removes nodes from them as a result.


                                    In a SAAM model, the BusinessApplicationInstance node has direct containment relationships to just the "top" nodes (I think that is what you mean by "anchor points"). But these nodes are not chosen by the user. They are chosen by the system, based on the chain of relationships that show how nodes impact each other. As the system scans and nodes are added and removed from the model, the system re-evaluates the top nodes. For example, imagine you have a trivial application with two web servers and a database. SAAM automatically links the web servers to the top:


                                    Now I scan a third host that is discovered to be running another web server connected to that database. SAAM automatically updates my application to look like this:



                                    There is nothing static about a SAAM model!


                                    Or maybe by "anchor points", you mean the nodes I happened to start from when defining the application model?  Once I've defined my model, those are irrelevant. The system updates the model over time based on the current nodes in the model. It doesn't care which nodes I started from. All the nodes I started from might have gone away over time, and my model will still be fine and keeping itself up to date.


                                    On the subject of linking nodes together to represent dependencies, observed communications are not the only way nodes can be related together. The automatic linking based on observed communication does catch quite a lot of situations, but there are plenty where the dependencies are not visible in the way. The way to handle that situation is for the patterns that identify the software to also work out dependencies by understanding the software's configuration. Plenty of TKU patterns do that, and custom patterns for custom software can do it too.

                                    1 of 1 people found this helpful
                                    1 2 Previous Next