NowSDK architecture
Summarize
Summary of NowSDK architecture
The NowSDK is the primary framework of the ServiceNow Mobile SDK, designed to integrate mobile applications with your ServiceNow instance. It offers a comprehensive set of classes, interfaces, and functions to facilitate seamless interaction, including authorization, session management, logging, and configuration. To utilize the SDK’s capabilities, you must integrate and initialize the NowSDK library in your application code.
Show less
Key Features
- SDK Initialization and Configuration: Enables setup and retrieval of SDK settings, including control over logging behavior.
- Authorization and Session Handling: Provides seamless user login management to maintain secure and continuous sessions.
- Logging Interface: Supports default system log integration with customizable log levels, or allows use of your own logging solution.
- Build and Release Infrastructure: Supports streamlined development and deployment within mobile apps.
Feature Services and APIs
- NowDataSDK: Grants access to ServiceNow’s public REST APIs with built-in authentication and session management.
- NowAPIService: Interacts with REST APIs on your ServiceNow instance.
- NowAttachmentService: Manages file uploads and queries attachments within Android apps.
- NowGraphQLService: Executes GraphQL queries using ServiceNow’s REST GraphQL API.
- NowTableService: Performs CRUD operations on ServiceNow tables via REST Table API.
- NowAnalytics: Collects and stores user analytics data within ServiceNow for analysis and tracking.
- NowChat: Embeds native Virtual Agent and Live Agent chat windows in applications, enhancing user support experiences.
- NowPush: Enables sending unsolicited push notifications, integrating with Virtual Agent chat capabilities.
- NowWeb: Loads ServiceNow-hosted web pages inside native web views with automatic user authentication and session management, handling OAuth tokens and cookies to maintain sessions and refresh access tokens as needed.
Practical Benefits for ServiceNow Customers
By leveraging the NowSDK, ServiceNow customers can efficiently embed powerful ServiceNow services into mobile applications, ensuring secure, seamless user experiences with robust session handling and integrated analytics. The modular feature services allow tailored integration depending on your application’s needs, from data access and file management to chat support and push notifications, all while simplifying authentication and session lifecycle management within native mobile environments.
The NowSDK is the top-level entity of the Mobile SDK class framework.
It contains numerous classes, interfaces, and functions that enable you to leverage the significant capabilities provided by the Mobile SDK and your ServiceNow instance. This document focuses on describing the primary feature services exposed in the Mobile SDK that enable you to interact with your ServiceNow instance.
In order to use any of the feature services provided by the Mobile SDK, you need to integrate the NowSDK library into your code. You must call the core library to configure and initialize the SDK before using any SDK functionality.
NowSDK provides the following capabilities:
- SDK initialization and settings retrieval and configuration.
- Seamless authorization and user session handling.
- Logging interface. The NowSDK provides logging services to all feature services. By default, log messages are written to system logs using platform-specific functionality. You can control the logging threshold through a
parameter that is part of the call to configure the SDK. There is also an option to suppress all log messages generated by the SDK and its feature services (
log level = none). If you already have your own logging solution in place, the Mobile SDK allows you to use it. - Build and release infrastructure.
- NowDataSDK
Enables third party applications to access the public REST APIs exposed by your ServiceNow instance. Development is streamlined because the NowDataSDK utilizes the authentication and session handling features provided by the NowSDK.
- Primary APIs:
- NowAPIService: This API provides functionality that enables you to interact with the publicly exposed REST APIs on your ServiceNow instance.
- NowAttachmentService: This API provides functionality to upload and query file attachments on your ServiceNow instance within your Android application.
- NowGraphQLService: This API provides functionality that enables you to use GraphQL queries to obtain data from tables within your ServiceNow instance using the ServiceNow REST GraphQL API.
- NowTableService: This API provides functionality that enables you to perform create, read, update, and delete (CRUD) operations on existing tables in your ServiceNow instance that get serviced through the ServiceNow REST Table API.
- Primary APIs:
- NowAnalytics
Enables you to gather and track usage analytics within your mobile applications.
- Primary APIs:
- NowAnalytics: This API provides functionality to gather user analytics data and store it within the ServiceNow platform for later analysis and tracking.
- Primary APIs:
- NowChat
Enables you to embed a native Virtual Agent chat window in your applications. This service includes UI/UX features.
- Primary APIs:
- NowChatService: This API provides Virtual Agent and Live Agent chat capabilities to your Android applications. Leverage the full service chat capabilities provided by the ServiceNow platform by simply implementing NowChatService within your application.
- Primary APIs:
- NowPush
Enables you to send unsolicited messages to your applications that leverage the NowChat/Virtual Agent functionality.
- Primary APIs:
- NowPushSDK: This API provides the function necessary to create a
NowPushServicethat enables the sending of unsolicited (push) notifications to Android devices. - NowPushService: This API provides functions that enable interaction with the Push Service.
- NowPushSDK: This API provides the function necessary to create a
- Primary APIs:
- NowWeb
Enables you to load web pages hosted on your ServiceNow instance in a native web view or Cabrillo. It automatically handles user authentication and session management instead of forcing users to log into the instance via a login web page.
When the webview is requested to load a web page hosted on a ServiceNow instance, it creates an HTTP request with the appropriate bearer header containing the OAuth access token provided by the NowSDK. When the instance receives this request, it starts a new user session and returns cookies related to that session. As the user interacts with the web pages in the webview, the instance uses the cookies to validate that the session is still valid. At this point, the bearer header is no longer relevant, only the cookies are used for session validation. The web session expires if the user stops interacting with the website for longer than the timeout period. After the session expires, if the user tries to interact with the web page, they are automatically redirected to the login page. The NowWebViewController detects the redirection and attempts to start a new web session by requesting a refreshed access token from the NowSDK and using the token to create a HTTP request (with bearer header) for the last known loaded page.
- Primary APIs:
NowWebSDK: This API provides functionality to create a NowWeb service object that enables web pages from your ServiceNow instance to be displayed in your Android application.
- Primary APIs: