
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-07-2023 09:39 PM - edited 05-07-2023 11:06 PM
Broad question: What is the impact I should be considering when setting up the CMDB according to the CSDM framework and ignoring (post-poning to build on later) the cmdb_ci_appl_xx table and relationships and use the cmdb_ci_service_discovered/calculated/query_based instead?
i.e., we would have an application service [cmdb_ci_service_calculated] "ServiceNow platform PROD" but not create an "ServiceNow platform PROD" record in the application table [cmdb_ci_appl_now_app].
Even the CSDM Data Model Examples slides provided by ServiceNow skips the Application layer.
Is it more at the DevOps level where the segregation is important?
Integrations/Interfacing
Objective: to understand the data flow between systems so if one is affected, the other that receives the data will be impacted/malfunctions given that we do not have the *interfaces* relationship type at the Business Application layer because we do not have APM.
Specific Question: If I were to forcefully create an Application Service sends data to Application Service (Workday sends data to ServiceNow--not application-->app service, but app service-->app service) or an Application Service sends data to Business Service Offering, are there long-term impacts I should be aware of?
I realize is that the framework is set up so data interfaces are modeled as: Application Sends data to Business/Technical/Application Service & Offerings.
I need a case to explain why we should register apps both at the App Service AND Application level. The application service is, of course, a logical representation and encompasses just more than the running program itself (application), however, it (application service) is used as a CI for incident, problem, and change so I see no immediate downside to treating application service records as an application.
Product Model
Even bundling to track versions and product family appears to me, could be done at the Application Service layer and not necessarily at the Application but am I missing something important?
Solved! Go to Solution.
- 9,339 Views

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-07-2023 11:08 PM
Good day Marie,
in CSDM concept the Business Application is a conceptual application level. Something that is bought, or (to be) build. A strategic level.
The Application level (cmdb_ci_app and all extends) are real applications. Middleware like Databases, webservers and real applications deployments.
The layer in between is the Application Service. This represents the deployment stack if the Business Application. It is still a logical representation where the Apps table is real. The Application Service table(s) are extended from the cmdb_ci_service table and will be output of the Impact Analysis in Incident and Change mgmt. It also links to Business Service Offerings (how do we offer the Application to consumers).
In practice the applications level supports 1 or multiple Application Services.
1 Application Service is supported by 1 or multiple Applications, eg:
1 oracle database instance and 1 tomcat web service supports and 1 Risk Management application supports 1 a Risk Management - PROD Application Services.
I hope the purpose of those tables is clear this way. In general it is not difficult to add this layer in between.
BR,
Barry
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2023 12:05 PM
Would Software Instance (cmdb_software_instance) be deprecated for Application (cmdb_ci_appl) in the same path as Software Package and Software Product Model?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2023 02:01 PM - edited 09-15-2023 02:08 PM
Software Product Model is not on that path. Software Product Model represents the specific software product version that is used by Software Asset Management. Both the use of Software Instance and Software Package are (practically speaking, but not officially, at least from an asset perspective) "deprecated" if you install Software Asset Management (either Foundation which is free or Professional which is paid). Software Instances is replaced by Software Installations.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2023 05:21 PM
Doesn't Application (cmdb_ci_appl) represent a specific installation of a software product, aka instance? What differentiates Application and Software Installation (cmdb_sam_sw_install)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-16-2023 08:09 AM - edited 09-16-2023 08:10 AM
Great question! Yes and no. An application represents more than just a software installation/instance. It represents an installation that first runs as a process (or in Windows, runs as a "service"), and is accessed by other users or systems outside of that server it is running on, typically as part of an overall deployed instance of a business application. Not every software installation runs as a process. Some software is just installed and launched as needed. And not every running process is accessed as an application. Some running processes are just to handle internal jobs, tasks, functions on the hosting server, and are not directly accessed by users/systems outside of that server. You can have hundreds of software installations on a server, and maybe only a hundred of them are running processes. And maybe only a small handful (or none at all) are managed as Application CIs.
For example, say I have a Windows Server. It has hundreds of software installations. Some of them are part or extensions of the OS itself. Some of them are monitoring utilities for IT operations. Some are drivers, agents, data collectors, and a variety of other software installations needed to support the operation of the server. And let's say this server also represents the database tier component of some Business Application, say a customer order management system. Let's say we have MS SQL Server installed. It includes a component to run the database configuration itself, but also has other components liks SSRS for reporting, all of which run as processes, along with some of the OS components. But since this server has a dedicated purpose as the DB tier of the Business Application, the only thing we're really interested in managing as an Application is the Database Instance itself (an extended class of Application). So maybe only a single Application CI is needed, even though there may be dozens of running processes and hundreds of software installations. And then that Application (i.e. the Database Instance) is a single component of an Application Service (think "system") which is the deployed Production instance of the order management Business Application, and that deployed instance also consists of other Application CIs to represent the Web Application, and an API Service Layer to allow that system to talk to other systems in the enterprise. So you have a single deployed instance of the customer order management Business Application, with three Application CIs for the entire instance (i.e. Application Service), which is comprised of several servers, with hundreds of running processes and thousands of software installations in total. Make sense?
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-07-2023 11:20 PM
Hello @Barry Kant , thank you for your prompt response 🙂
I understand what you have explained. It makes a lot of sense to me, as the CSDM is broken down into domains for a purpose, so dividing the real vs. logical is I guess the answer to my question. It just seemed do-able to bypass the direct relationship building using the Application table and instead do it at the App Service level but I guess I needed someone to tell me it's not a good idea. Thank you for taking the time to read my post/advise.
Have a good day,
Marie