NCR Pocket Office architecture overview
Components
Google Cloud Platform (GCP)
NCR Pocket Office is hosted on Google Cloud Platform because Google is a leader in API management, has a record of excellence in open source technologies, and provides a best of breed data platform.
Looker
Google Cloud Looker is a data exploration platform that makes data accessible in a meaningful, intuitive way. Looker takes advantage of the NCR analytics platform, and provides a comprehensive view across products within the data lake. For example, a merchandising solution that contains multiple products has all its data stored into a single data lake. The reporting layer, Looker, sits on top of the centralized data and provides in-depth rich views of cross-product data points.
Mobile client
The mobile client is the interface that provides access to NCR Pocket Office's Mobile Merchandising features. Access Mobile Merchandising as an application on your Zebra TC52 device and easily manage your store. Define and drive rule management based on user roles and types. Users must authenticate to access the application. Once logged in, users experience different components in the interface depending on their permissions.
Apigee API platform
The Apigee API Management Platform is used to manage the API lifecycle. Mobile Merchandising is a cohesive platform where all NCR APIs are driven through a single layer for a unified experience. See NCR Developer Experience for NCR APIs.
API gateway
The API gateway is the orchestration layer that sits between the user experience (in this case, the mobile client) and the resources it calls on. When the user interacts with the UI, the mobile client sends a request for a resource to the backend. It serves to streamline data representation and allows for a well-focused interface for the frontend.
Role enforcement is handled by the API gateway so the application itself does not have to handle role enforcement.
MongoDB
MongoDB is an application data platform that simplifies data infrastructure and powers transactional, search, mobile, and real-time analytics workloads on any cloud. MongoDB is a NoSQL (non-relational) database, and NCR Pocket Office leverages its ability to write to documents without having to define a schema, where the document is the representation of actions that are to be taken in the store and are in progress. NCR Pocket Office utilizes the MongoDB architecture so that changes to documents update in real-time without having to go back and change properties and/or components.
MongoDB also offers MongoDB Realm, which specializes in edge-to-cloud sync, allowing NCR Pocket Office to have bidirectional mobile sync for an online/offline scenario. Apply access controls so users can only access data relevant to their permissions. Users can manipulate data on an offline device, and save those changes to the cloud once it is back online, allowing users to aggregate data on the fly without the extra steps (like refreshing a page, manually matching changes on the master copy, etc).
Merchandising manager
By capitalizing on access controls defined via MongoDB Realm, the merchandising manager (backend) acts as a gatekeeper and provides a limited level of role-based access control (RBAC) for interacting with the datastores.
For example:
- A user updates the store count on his or her own document, but cannot modify another user's documents.
- A manager performs a privileged operation, such as updating or releasing a price or submitting a document when a store associate has completed a task.
The merchandising manager enforces these roles by checking the user against the granular roles predefined by the backend team, and making calls to the catalog via elevated credentials. As the backend, it is the orchestrator for all merchandising actions, including maintaining the MongoDB datastore, such as cleaning up after completed tasks, and maintaining audit logs for which user has performed what action.
Document Engine: Catalog & Catalog Ingest
Catalog
Catalog is the NCR BSL (Business Services Layer) service responsible for storing all data required to sell an item, from item definitions to prices to attributes, across organizations and enterprise units. The item record in the Catalog is updated whether the modifications are made from the mobile merchandising application or the ERP system, and is what is used at the point of sales (POS) when an item is sold. Thus, Catalog is the single source of truth for all NCR applications.
Catalog Ingest
Catalog Ingest is the translation layer for the upstream ERP system. Ingest receives the data, and if necessary, will translate and reformat the data (i.e., ensures existence of the attributes required at the store level to sell an item).
Since everything in Catalog should be accessible and sent to the POS, Catalog Ingest also serves as a staging environment. This includes storing prices that are on hold and waiting to be released.
For example:
- The external system sends in a weekly ad that contains a lot of data.
- Catalog ingest sifts through the data, processes each item individually, and pushes items into catalog if they are ready to be sold.
ERP messaging and third party ERP
A third party ERP, or Enterprise Resource Planner, communicates with and leverages Catalog Ingest. Data from the ERP is pushed into the BSL ecosystem and reformatted so it can be used throughout the platform.
ERP Messaging accounts for changes made at the store level and ensuring they are reported to the ERP system for accountability/audit purposes. One scenario could be a manager putting in a temporary price, such as 50% off an item. Therefore, the upstream system in a retail solution, the ERP, is the master system of record. The ERP has the final say over local store changes/overrides and maintains item data consistency.