ServiceNow Application and Application components

Andy Rosenberge
ServiceNow Employee
ServiceNow Employee

A customer of mine asked this question, and I have a general idea of what direction to go but thought it better to pose this out to the community. Would love to hear some thoughts on this ask:

Our CMDB admins would like to record applications and application modules in a distinct way.  For example, they would view Office 365 as an application because that’s how it’s licensed from a software management perspective but they also want to have Word, Excel, Outlook, etc as application modules so that we can continue to record incidents and problems for those specific Cis. 

Given that use case, is there a recommended approach to do that out of box?  Today, all of those items listed above (Office, word, excel, and outlook) would be CI’s in the cmdb_ci_appl table.  Is there perhaps a module table that relates to the application out of box and would hold application modules? 

I wasn’t aware of a best practice approach and our first thought was that we would just add a field to the application form that could be used to track is an application CI is really a module of something else and then create a relationship between applications that would be something “contains modules::module part of” to so that relationship.  None if this is tied to discovery so I think we’re safe there.

2 REPLIES 2

Jiri Skala
Giga Guru

Yes, there exists an out-of-the-box approach. However, it is part of SAM: this kind of relationship is managed on the Software model level, and it is called Software suite, look at the documentation Create and manage software suites.

Without this plugin, I recommend to use the approach following CSDM 3.0:

  • The table [cmdb_ci_appl] you mentioned is intended to capture “installed bites & bytes,” see Figure 10 CSDM 3.0 Which Application? Therefore it should contain each particular installation of MS Word, MS Excel, and other individual MS Office apps on the specific laptop or PC.
  • The logical representation of these deployed MS Office applications should be captured as Application services in [cmdb_ci_service_auto] table. These CIs can be then referenced in Incidents, Change requests, etc., see Figure 3 What is a Service?
  • Concerning "Office 365", I recommend capturing it as a Business application because it underpins many Business capabilities and represents the "products" that the business uses to generate revenue or perform missions. See page 9, paragraph Business applications.
  • For the relationship types between the above CIs, see Figure 15 CSDM 3.0 Relationships.

Florian Spisla
Kilo Guru

Hey Andy

I am having the same problem here... I am starting at the Business Application Level. Microsoft 365 is a Business Application with the Architecure Type "Platform Host". Therefore I am treating the other Business Applications (MS Teams, MS OneDrive, MS Sharepoint, etc.) as "Platform Applications".

Most Business Applications will consume an Application Service with the same name. For most of those Application Services I will have no technical CIs (Servers, Applications, etc.) as it is SaaS, which is hosted by Microsoft in the cloud.

As for the locally installed Software Packages, I treat them as that, so they are put in the table "cmdb_ci_spkg". Currently they have no relations to the client they are installed on and also no relation to anything else. Our basic idea here is, that if MS Outlook on a client does not work, it is a very isolated problem and the Application Service is not impacted by a not functioning client application. You could start your browser and connect to Outlook on the web, or get a replacement client, where MS Outlook is working.

So if you cannot use your locally installed MS Outlook and the local installation is fine, then the Problem is more likely with some Application Service. For example, we decided to create an Application Service called "M365 Licensing".

So currently we treat locally installed software mostly as completely detached.

Software = bits and bytes that run on a single client.

Application = bits and bytes that run on a host in the backoffice and is used by a Service, that serves more than one client