The described embodiments relate to methods, systems, and technology for activating a digital identity associated with a physical product.
Supply-chain integrity issues represent a problem set more acute than ever before. In fields such as drinks, consumer packaged goods, or apparel, these typically are significant challenges in terms of financial losses, but also for health and safety. For example, in the production of apparel items, there are a number of specific supply-chain integrity issues that often occur, such as the production of counterfeits, the production of backdoor goods or the parallel import of goods. These problems usually arise from opaque supply chains and the lack of real-time monitoring for Brands. Notably, Brands are largely unable to track, in real-time, the production of their purchase orders. Digital solutions could help, but the physical and digital worlds are still fairly disconnected when it comes to the manufacturing of goods.
In principle, these problems can be addressed by assigning a unique serial number to an item so that production can be tracked. However, in practice, these types of systems can be easily gamed and still disconnected. Consequently, they usually cannot efficiently prevent overproduction or offer real-time production tracking from, e.g., the web or the Internet. Furthermore, these types of systems do not allow true digital twins to be created, which could be used along the supply chain to record data about and allow interactions with products.
The disclosed activation techniques address these issues at their source by allowing a so-called “digital twin” for every physical product to be associated and activated during manufacturing. Activation may involve a context of the physical product, including, e.g., a Factory that produces the product, a zone within the Factory that produces the product, and a purchase order specifying the product. Based at least in part on unique digital identities, this digital-twin system (which is also referred to herein as an “activation system”) may prevent the production of backdoor or grey market goods, may allow monitoring of parallel imports through consumer interactions with the product, and may help prevent the production of counterfeits. So, a digital identity associated with a physical product preferably includes, at a minimum, a unique identifier. And an Active Digital Identity (“ADI”) preferably includes, at a minimum, a digital identity+information regarding an associated product in a cloud repository, including an indication as to whether the digital twin has been activated. An example of such information includes context information (e.g., manufacturing information such as Factory identifier, Factory zone or assembly line information, location information, associated purchase order, etc.), product lifecycle, activation location and dates, material source, shipping information, factory identifiers. Additional examples are provided below. We use the terms “digital twin” and “ADI” interchangeably.
In the present disclosure, the terms “activation” and “commission” and their derivatives are used interchangeably. They should be understood to be equivalent. Moreover, the terms “deactivation” and “decommission” and their derivatives are used interchangeably. They should also be understood to be equivalent.
When does a product become ‘real’? Is it when a Brand creates a purchase order (PO)? After the product is partially through the manufacturing process? Or maybe when the client purchases the product? In disclosed activation techniques, a product becomes real after it is activated. The activation operation may be both logical and physical. It may be performed by a server or a computer that is universally accessible via a network and may also be reflected in the product tag or the product itself. Thus, for purposes of the following descriptions, a product becomes ‘real’ only after activation.
Moreover, in the disclosed activation techniques, everything from the Brand to the activation server or computer (which is typically referred to as a “Digitization Server” or “digitization computer”) may be part of an activation system that handles the product from creation to retirement, e.g., from a Brand purchase order to retiring the product. One advantage of having the activation techniques is that deactivating a product does not require a physical hold on the product itself. Instead, it may be sufficient to deactivate the product (or related product digital identity) in a cloud-based server or computer.
Note that, in the activation system, “activation” may be a single point in the chain and may also be an accumulation of information throughout the manufacturing process. This can make a code unique to the product/item and may be able to represent the item. Moreover, creating a digital twin (e.g., an ADI) during the activation may be based at least in part on uniqueness derived from the manufacturing process, but also can be created by attaching one or more tags onto the product. Furthermore, it may be possible to include randomness and information regarding the product as part of the identity. It may be a ‘DNA print’ or signature of what we are looking at in the actual code or identifier, such that we can identify, from the code, what the object should be (beyond other metadata already included or associated with the product). Additionally, an activated product may include a prompt on the tag itself to mark it as activated, and a different mark when it is not. This prompt or mark may be one-time set by a scanner or by external automatic feedback from the server or computer. By performing the activation, the use of information may prevent human error and may eliminate duplication risks and misassignment of labels to products. In some embodiments, there may be a unique application programming interface (API) with specific operations that need to be taken or performed in order to activate a product and generate a digital twin.
The Brand preferably issues a purchase order (e.g., product identifier, quantities, shipment dates, Factory (ship from), supplier, and/or shipping to destination), and the Factory and the Digitization Server receive the purchase order, e.g., via computer interface(s) communicating with the Digitization Server. For example, fetching the purchase order via an API of an Enterprise Resource Planner (ERP) (e.g., SAP ERP, Salesforce, Oracle, etc.), receiving it via an API of the Digitization Server, receiving it via by email, retrieving it via a data storage system (e.g., (S)FTP, AWS S3, etc.) or via an API HTTP Callback (e.g., a Webhook). The Factory (or one or more multi-core computers associated with the Factory) may order a set of labels from the Labeler/PSP to fulfill the specific purchase order. After receiving the label order, the Labeler/PSP orders Active digital identities (ADIs) from the Digitization Server. This may be a batch order of Active Digital Identities (e.g., 100× labels ordered may translate to 100× ADIs ordered). As mentioned above, an Active Digital Identity includes: a unique identifier+information associated with a corresponding product available in a cloud memory location, including activation status. The unique identifier may be unique on a per item level (e.g., this first shirt has a unique ID relative to an identical second shirt, which has its own unique ID), per batch level (e.g., each shirt in a batch has the same ID) or per order level (e.g., each shirt in the order including the same ID). In some cases, the ADI includes both a unique identifier and an identifier associated with a purchase order.
As shown in
As shown in
On advantage of activating a product is that a Brand can monitor items as they are produced relative to its purchase order and see how many items are fulfilled in real time. Another advantage of activating a product is that a distributor and retailer and confirm that they are receiving authentic product since they are associated with an active digital twin. Furthermore, a customer can verify that they are purchasing an authentic product by scanning the label and accessing information from the ADI. The ability to access the information itself is a likely indication of authenticity.
In one example, authentication information is sent from the Factory to the Digitization Server. The authentication information may include the printed label (and possibly an image captured of the printed label), purchase order information (or comparison against originally received purchase order information) and even an image of the product (depicting the printed label and/or hang tag). The images can be provided to a trained classifier to classify or characterize the label and product. This can be stored in the ADI for future reference, e.g., at consumer purchase or resale time to determine authenticity. Instead of a trained classifier, a hash or signature can be determined based on the images. In still other examples, image fingerprinting (aka image signature technology) is used, which commonly involves deriving a set of 2D feature points from imagery, and then searching a set of reference image feature points for a closest match, to thereby identify a corresponding reference image. The SIFT, SURF, and ORB algorithms are expected to perform well in this use case.
Authentication information can be sent from the Factory to the Digitization Server as discussed above.
Product activation may also be performed for smart tags as compared to printed labels. A product 132 may include a product tag 130 where the product tag 130 includes an integrated circuit 134 as shown in
As shown in
With reference to
As shown in
The use of a product image captured during ADI activation and environmental information may allow for the user to use this information when authenticating an item/product downstream from manufacture. See, e.g., US Patent Publication No. US 2021-0256110 A1, which is hereby incorporated herein by reference in its entirety, for a related discussion.
Except where noted, these operations apply to a mobile and tablet mode of operation of the product activation application. Note that there may only be one application for all modes (e.g., mobile and tablet, which are sometimes referred to as a ‘portable electronic device’ or an ‘electronic device’).
Let's again discuss data held within the Digitization Server. In addition to the user data described previously (e.g., username, factory identifier, passwords, etc.), the following data referenced in an activation process may be held or stored in a backend service hosted or controlled by the Digitization Server: master data, purchase orders loaded by the Brand; Factory records (including a Factory identifier); product records (including a product identifier); and/or serialized product identification. Such hosted information may be organized within individual ADIs. And ADIs may include an associated purchase order identifier. That way, ADI associated with a particular purchase order can be identified, and their status checked. Note that unique identifier for a digital identity may include: a primary unique identifier, which may be the backbone for a digital identifier; the identifier of the Factory allocated to an ADI; and/or a lifecycle history of the ADI, which may be represented as supply chain or other events. The primary unique identifier may include a unique identifier that may be compatible with one or more of: a global standards 1 (GS1) digital link, a global trade item number (GTIN), a serial shipping container (SSCC), a serialized global trade item number (SGTIN), an European article number code (EAN), a universal product codes (UPC), an electronic product code (EPC), a global location number (GLN), an international standard book identifier (ISBN), a global returnable assess identifier (GRAI), a global coupon number (GCN), an Amazon standard identification number (ASIN), a global returnable asset identifier (GRAI), a global shipment identification number (GSIN), a universally unique identifier (UUID), a global document type identifier (GDTY), a globally unique identifier (GUID), an Eddystone UID or EID, an international mobile equipment identity (IMEI), an eSIM identifier, a pharmaceutical product identifier (PhPID), a serial number, a blockchain address, a blockchain transaction identifier, a hash (e.g., SHA 256), a hash table, a blockchain token, an ERC721 token, an ERC-1155 token, a SBT (soulbound token), a non-fungible token, or a public key from a private/public key pair. In some embodiments, a unique identifier may be generated randomly or pseudo-randomly.
Now further details for product activation application start-up and sign-in.
After login, the product activation application may retrieve a configuration file from the Digitization Server, or a computer associated with or licensed by the Digitization Server, and the user may be asked to give permission to access their environmental information (via device sensors such as GPS, thermometer, barometer, microphone, camera, or sensors connected via Bluetooth, wireless or internet) such as their location, temperature, expected humidity range, expected factory sounds, and/or user biometrics. The configuration file may include: a current version (if the current version of the product activation application differs from the configuration, the product activation application may prompt the user to update their version with a link to their application store), a dual serial mode (if false, only one serialized identity can be associated with the physical item; if true, one or two serialized identities can be associated with the physical item); a fulfillment limit (which may be a threshold beyond which a user will be warned for activating more than the number of ordered items for a given product class in a given purchase order); logging access and secret keys (which may be used to determine the credentials to provide to a third-party logging service; and during operation of the application, all application events and API requests may be logged); a logo (such as a logo of the brand is associated with the items, which may appear in the application menu); offline activation limit (which may be a number of activations that can be cached to the electronic device while it is offline); a primary serial identifier (such as an identifier namespace of the primary serial identifier; e.g., ‘gs1:21’ may represent a serial identifier per the GS1 general specification); secondary serial identifier (which may be an identifier namespace of the secondary serial identifier, e.g., ‘gs1:250’ may represent a secondary serial identifier per the GS1 general specification); a registration change frequency (which may be used in a mobile mode, such as how frequently in months a specific user can change the electronic device identifier that is registered to their account; the user may only operate on one electronic device at a time and, if this is set to ‘0’, the user may switch electronic devices at any time); a scanner configuration disable (which may be used in a tablet mode to override the detection of the scanner configuration; if true, the application may bypass the detection and configuration of a connected barcode scanner); and/or a product identifier pattern (which may be a regular expression defining the format of the product identifier, such as an 8-13 digit numeric only code, e.g., ‘{circumflex over ( )}(0-9) [8,13]$’; if the product identifier does not match the configuration pattern, then it may be ignored during activation).
One of the last operations in this process may be the product activation application checking if the Factory user is using a registered electronic device (e.g., in the mobile mode). If the electronic device is not registered and the user does not have a currently registered electronic device or has permission to change their electronic device registration per the change frequency configuration, then the user may be prompted to register their electronic device. If the user already has another registered electronic device and does not have permission to change their registered electronic device per the change frequency configuration, then the user may not be permitted to proceed and may have to exit the application.
There may be several checks and balances that may have to be met by Factory users and their electronic devices. This may allow the Digitization Server to have tight and detailed information about the Factory user and the physical electronic device that provides inputs into the activation process. This security information may prevent ‘gaming’ or misleading the activation system. In some embodiments, a Global Positioning System (GPS) location and/or other environmental information or location coordinates may be used to verify that a user is located within predetermined Factory location so that the Factory is, in fact, activating authorized products.
In some embodiments, a menu provided by the product activation application may include one or more of the following: ‘activation’ (which is selectable to open an activation graphical user interface); ‘deactivation’ (which is selectable to open a deactivation graphical user interface); ‘change zone’ (which is selectable to open to an account, Factory, and zone selection interface); ‘change purchase order’ (which is selectable to open to a purchase-order selection graphical user interface); ‘check QR code’ (which is selectable to open a check QR code graphical user interface); ‘logs’ (which is selectable to open a logs graphical user interface); ‘offline activity’ (which is selectable to open an offline activity graphical user interface); ‘help and support’ (which is selectable to open a help and support graphical user interface); and/or log out’ (which is selectable to log out and returns to a sign-in interface). Note that, at any time following the start-up, sign in, and 2D scanner configuration process, the user preferably can switch between graphical user interfaces from the menu using one or more of these options.
The operations shown in
In the following operation, two display panels (or two areas within a display zone) on an electronic device display screen are provided via a graphical user interface provided by the product activation application running on an electronic device. The display panels can be displayed side by side on one display page, or as sequential pages. The two display panels show at least two codes to be scanned, one on each display panel. The two codes to be scanned are located on or carried by the physical product, e.g., i) a first code on a printed label sewn or affixed to the product, and ii) a second code on a hang tag or other code area. The two codes include: a primary serial code (we also refer to this code as a “unique identifier” above when discussing a “digital identity”), and a product class identifier. The product activation application can be configured to operate such that the Factory user scans at least these two codes per activation, in any order. That is, the Factory user points the 2D scanner, imager, or other scanner (e.g., a mobile/tablet camera) at a first code carried by a sewn-on label or tag. Once the first code is decoded, the product activation application prompts (via display interface panel showing a successful scan) the Factory user to capture the second code carried by the label or hangtag. Once the second code is decoded, the product activation application generates a successful scan indicator (e.g., via a display panel state change). Note that the unique identity may be associated with the physical item (the ‘primary serial code’). This may represent or be the unique identifier of the ADI or “digital twin” of the item. Moreover, the primary serial code may be embedded in any type of printed code that supports encoding of a serial number, but it may typically be embedded in a two-dimensional code, such as a QR code, data matrix or digital watermark. In some embodiments, the primary serial code may be embedded in any type of electronic tag that supports the encoding of a serial number, such as a near-field communication (NFC) tag or an RFID tag. The product class identifier may be associated with the physical item. This may be embedded in any type of printed code or electronic tag that supports the encoding of a product class identifier. Typically, the product class identifier in a non-unique identifier, meaning that it is not unique per that specific item. Examples of a product class identifier may be a trade item identifier, such as a GTIN or an SKU code. In a dual serial mode, the code containing the product class identifier may also contain a serialized identity associated with a component of the item, such as a price ticket, packaging, hidden watermark, etc. (the ‘secondary serial’). Some examples of the secondary serial may include: an SGTIN encoded in a GS1 digital link QR code, an EPC encoded in an RFID tag, and/or digital watermarking containing a plural-bit payload, e.g., a serialized GTIN+. Examples of digital watermarking technology can be found, e.g., in U.S. Pat, Nos. 5,862,260, 6,345,104, 6,614,914, 6,993,152, 7,340,076, 7,352,878, 9,182,778, 9,380,186, 9,401,001, 9,449,357, 9,747,656, 10,453,163, and 10,652,422, and in PCT Published Application No. WO2016153911 and WO2019165364, which are each hereby incorporated herein by reference in its entirety.
When the primary serial code is scanned, the primary serial panel may change state and the primary serial code (or “unique identifier”) may be shown to the user for validation. For example, the panel may include a graphical icon that appears orange until a corresponding code is scanned, and then it turns green. Once scanned, information can be retrieved to be displayed including product size, color and tag serial (if available). When the product class identifier is scanned, the product identifier panel and product class identifier panel may change state (e.g., a graphical icon may turn from orange to green), the product identifier and product class identifier may be displayed, and the application may fetch associated product data from the backend service of the Digitization Server and may present it to the Factory user, via the product activation application, which may include information such as the product identifier, the size of the item, the color of the item, etc.
After scanning one code, but before scanning the second code, the user may have the option to reset the state of the user interface. During activation, the following data may be validated by the application: the product class identifier of the product class that is associated with the purchase order (if not, an error may be shown to the user); and/or whether the fulfilment limit has been exceeded. Notably, if the fulfillment limit is 1.03 and the number of ordered items for a given product class in a given purchase order is 100, when the user tries to activate an item above the order quantity, but up to the quantity multiplied by the fulfilment limit (in this example, 1.03×100=103), they may see a warning displayed in the user interface). Alternatively, when the user tries to activate an item that exceeds the quantity multiplied by the fulfilment limit (in this example, 104 or greater), a warning display box may appear in the user interface for each product activation, and they may have to dismiss it to continue.
During activation, the following data may be captured and sent to the Digitization Server backend service: a primary serial code; a secondary serial code (in the dual serial mode); a product class identifier associated with the physical item; an activating Factory; a zone within the Factory (such as a production line number, packing station, or read-point); a purchase order selected by the user via PO search bar; a location (if user has given permission, this may be derived from electronic-device location services, such as GPS; otherwise, this may be derived from IP address of the API request to the backend service); electronic device metadata (such as a unique electronic device identifier; an electronic device model and Brand; a connection type, e.g. Wi-Fi or cellular; a scanner model; an electronic device operating system; and/or an application version); the date and timestamp of the activation (for example, if in offline mode, the actual date and time of the activation may be captured and sent when online); and/or a time difference between a scan of the first code and a scan of the second code (which may be used for analytics to track efficiency of Factory processes).
During product activation, the Digitization Server may validate: whether an item is encoded, e.g., printed if it is a printed tag, or written to the data element if it is an electronic tag (if not, the request may be rejected and an error may be shown to the user in a user interface); whether the serialized identity associated with the physical item has been allocated to the activating Factory (if not, the request may be rejected and an error may be shown to the user in a user interface); whether the purchase order has been allocated to the activating Factory (if not, the request may be rejected and an error may be shown to the user in a user interface); and/or whether an identifier of the product class is associated with the purchase order (if not, the request may be rejected and an error may be shown to the user in a user interface).
If the activation is valid, a commissioning action (activation notification) may be created in the Digitization Server. This commissioning action may capture: some or all of the preceding data sent to the Digitization Server; and/or a unique event identifier to trace an event if shared with third parties. Note that the commissioning action may also change the state of the ADI, including: a product record specified in the request may be associated with the ADI; the purchase order specified in the request may be associated with the ADI; for the dual serial mode; the secondary serial specified in the request may be associated with the ADI; and/or the commission state of the ADI may be set to activated.
If the activation is not valid, the Factory user may see through displayed information in the production activation application information dependent on the response from the Digitization Server. If the item is already activated against a different purchase order identifier and/or a different Factory identifier, the user may be asked if they want to change the purchase order identifier and/or the Factory identifier. If the user confirms that they want to make a change to this information, the item may be deactivated and reactivated using the new purchase order identifier and/or the Factory identifier. If the item is already activated against the same purchase order identifier and Factory identifier, the user may see an ‘item already activated’ message in a user interface. If there is an issue with the data being invalid, the user may be shown an error in the user interface that describes the problem, such as: the primary serial is not recognized; the secondary serial has already been associated with a different item; the Factory allocated to the item is different from the activating Factory; and/or the item is not encoded. If the backend service detects that a product record does not exist for the product identifier sent by the application, a new product record may be created and marked as having been created during activation.
If the connection to the network fails at any point while the product activation application is in operation, it may switch to an ‘offline mode.’ In the offline mode, the following rules may apply: purchase order and product fulfilment data may not be shown on the activation screen; activations may be cached on the electronic device up to the number specified in the offline fulfilment limit configuration; and/or deactivation may be disabled to prevent data corruption and illegitimate activity. During the offline mode, on the activation graphical user interface, an additional banner may appear indicating that the electronic device is offline and showing the number of offline activations cached. When the electronic device goes back online, the banner may change to show the progress of uploading of the cached activations. If there are any errors during upload, the banner may change state to indicate that there were errors. At any time, the user can click on the more information panel to go to the offline activation screen. The offline activation cache may persist between application sessions, e.g., if the user exits the application and there are cached activations, then those activations may be processed the next time the user signs into the application. On the offline activation screen, a summary of offline activity may be presented to the user, including the number of offline activations uploaded and any upload errors. For each error, specific information on the response from the backend service may be included or listed.
As shown in
During deactivation, the following data may be captured and sent to the backend service: the primary serial; the deactivating Factory; the zone within the Factory (such as a production line number, packing station, or readpoint); the purchase order selected by the user; the location (if the user has given permission, the location may be derived from electronic-device location services, such as GPS; otherwise, the location may be derived from IP address of API request to the backend service); and/or electronic-device metadata (such as a unique electronic device identifier; an electronic device model and Brand; a connection type, e.g., Wi-Fi or cellular; a scanner model; an electronic device operating system; and/or an application version).
During deactivation, the following data may be validated by the Digitization Service: the item is activated (if the item is not activated, the request may be rejected, and an error may be returned to the user); the serial is recognized; and/or the deactivating Factory is associated with the item.
If the deactivation is valid, a decommissioning action may be created in the backend service that captures: the preceding data sent to the backend service, a unique event identifier to trace the event if shared with third parties, and decommissioning actions. This decommissioning action may also change the state of the ADI, which may include: the product record may be disassociated with the ADI; in dual serial mode, the secondary serial may be disassociated with the ADI; and/or the commission state of the ADI may be set to deactivated.
If the deactivation is not valid, the user may see information dependent on the response from the backend service. If there is an issue with the data being invalid, the user may be shown an error that describes the problem, such as: the primary serial is not recognized, the secondary serial cannot be used to deactivate, and/or the item is not activated.
On the Check QR Code graphical user interface, the user may scan a primary serial identifier to retrieve the following information, which may be displayed in a user interface: the activation status (such as activated, deactivated, or not found); the scanned identifier (the primary serial); other identifiers (e.g., the secondary serial); the purchase order associated with the item; the Factory identifier associated with the item; the ship-to destination of the item if it is associated with a purchase order; the product identifier if it is associated with a product; and/or a full history of all events relating to this item (such as commissions, decommissions, and/or errors).
Other product activation application functionality is now discussed. From a log graphical user interface, the most recent log events captured during operation of the application are displayed. From a help and support graphical user interface, access the application user guide and the Factory activation support portal for raising issues related to the activation process are provided. If the account owner chooses to, they can have some (e.g., a subset) or all of the events sent to a third party in real time via a transport protocol, such as hypertext transport protocol (HTTP), WebSockets, or MQTT. The subset may be restricted based at least in part on any metadata associated with the event, including: an event type (commission, decommission or error); activating Factory; activating user; purchase order identifier; and/or product identifier. This data feed may be used for a variety of purposes, e.g., sending electronic product code information system (EPCIS) events to a scan-pack system to prevent the packing of unactivated items by the Factory. In another example, sending EPCIS events to a product lifecycle management solution to track the product lifecycle and ensure the complete history of a serialized item is captured.
Vendor performance data captured from the product activation application may be used to provide an evaluation of the absolute and relative performance of each Factory, including: how frequently they attempt to re-activate already activated items; how often they receive process-related errors (such as product not associated with purchase order and/or item not allocated to user's selected Factory), and/or the average interval between scanning the first and second codes per item. Moreover, purchase order fulfillment data captured from the application may be presented to the dashboard user in real time, showing: per purchase order and line item; the current count of activations; and/or alerts for a purchase order that exceeds the fulfillment limit.
Electronic device 110 includes memory. For example, the memory may include a memory subsystem including dynamic random-access memory (DRAM), static random-access memory (SRAM), and/or other types of memory, including fixed storage devices such as solid-state devices and/or hard drives, etc. The memory may include, e.g., one or more program modules or sets of instructions, which may be executed by one or more multi-core processors. Note that the one or more computer programs may constitute a computer-program application, e.g., including the product activation program. Computer instructions in the memory may be implemented, e.g., in: a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. Furthermore, the programming language may be compiled or interpreted, e.g., configurable or configured (which may be used interchangeably in this discussion).
While not shown in
As described further below with reference to
As can be seen in
Note that the communication among components in
In the described embodiments processing a packet or frame in electronic device 110 and/or access point 114 includes: receiving signals (such as wireless signals 128) with the packet or frame; decoding/extracting the packet or frame from received wireless signals 128 to acquire the packet or frame; and processing the packet or frame to determine information contained in the packet or frame.
Although we describe the operating environment shown in
We now describe embodiments of a computer server(s) 1122, e.g., which may comprise or host computer servers 122 and/or 120. Computer server(s) 1122 may host or be configured as Digitization Server and related services. Computer server(s) 1122 preferably includes a cloud computing-based infrastructure and may be variously configured to provide different computing service models such as, e.g., Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS) and/or a hybrid cloud or multi-cloud computing environment. Computer server(s) 1122 may include processing subsystem 1010, memory subsystem 1012, and networking subsystem 1014. Processing subsystem 1010 includes one or more devices configured to perform computational operations. For example, processing subsystem 1010 can include one or more servers, microprocessors, multi-core processors, ASICs, microcontrollers, programmable-logic devices, accelerators, one or more graphics process units (GPUs) and/or one or more digital signal processors (DSPs).
Memory subsystem 1012 includes one or more devices for storing data and/or instructions for processing subsystem 1010 and networking subsystem 1014. For example, memory subsystem 1012 can include dynamic random-access memory (DRAM), static random-access memory (SRAM), and/or other types of memory. In some embodiments, instructions for processing subsystem 1010 in memory subsystem 1012 include: one or more program modules or sets of instructions (such as program instructions 1022 or operating system 1024), which may be executed by processing subsystem 1010. Note that the one or more computer programs may constitute a computer-program mechanism. Moreover, instructions in the various modules in memory subsystem 1012 may be implemented in: a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. Furthermore, the programming language may be compiled or interpreted, e.g., configurable or configured (which may be used interchangeably in this discussion), to be executed by processing subsystem 1010.
In addition, memory subsystem 1012 can include mechanisms for controlling access to the memory. In some embodiments, memory subsystem 1012 includes a memory hierarchy that comprises one or more caches coupled to a memory in computer server(s) 1122. In some of these embodiments, one or more of the caches can be located in processing subsystem 1010.
In some embodiments, memory subsystem 1012 is coupled to one or more high-capacity mass-storage devices (not shown). For example, memory subsystem 1012 can be coupled to a magnetic or optical drive, a solid-state drive, or another type of mass-storage device. In these embodiments, memory subsystem 1012 can be used by computer server(s) 1122 as fast-access storage for often-used data, while the mass-storage device is used to store less frequently used data.
Networking subsystem 1014 includes one or more devices configured to couple to and communicate on a wired and/or wireless network (i.e., to perform network operations), including: control logic 1016, networking switches (not shown), routers (not shown), an interface circuit 1018 and, optionally, one or more antennas 1020 (or antenna elements) and/or input/output (I/O) port 1030. While
Networking subsystem 1014 may include or communicate with processors, multi-core processors, controllers, sockets/plugs, and/or other devices used for coupling to, communicating on, and handling data and events for each supported networking system. Note that mechanisms used for coupling to, communicating on, and handling data and events on the network for each network system are sometimes collectively referred to as a ‘network interface’ for the network system.
Within computer server(s) 1122, processing subsystem 1010, memory subsystem 1012, and networking subsystem 1014 are coupled together using one or more bus structures 1028. Bus 1028 may include an electrical, optical, and/or electro-optical connection that the subsystems can use to communicate commands and data among one another. Although only one bus structure 1028 is shown for clarity, different embodiments can include a different number or configuration of electrical, optical, and/or electro-optical connections among the subsystems.
In some embodiments, computer server(s) 1122 includes a display subsystem 1026 for displaying information on a display, which may include a display driver and the display, such as a liquid-crystal display, a multi-touch touchscreen, etc.
Although specific components are used to describe computer server(s) 1122, in alternative embodiments, different components and/or subsystems may be present in computer server(s) 1122. For example, computer server(s) 1122 may include one or more additional processing subsystems, memory subsystems, networking subsystems, and/or display subsystems, and/or one or more firewalls, load balancers, cooling systems, power supplies, etc. Additionally, one or more of the subsystems may not be present in computer server(s) 1122. Moreover, in some embodiments, computer server(s) 1122 may include one or more additional subsystems that are not shown in
Moreover, the circuits and components in computer server(s) 1122 may be implemented using any combination of analog and/or digital circuitry, including: bipolar, PMOS and/or NMOS gates or transistors. Furthermore, signals in these embodiments may include digital signals that have approximately discrete values and/or analog signals that have continuous values. Additionally, components and circuits may be single-ended or differential, and power supplies may be unipolar or bipolar.
An integrated circuit (which is sometimes referred to as a ‘communication circuit’) may implement some or all of the functionality of networking subsystem 1014 (or, more generally, of computer server(s) 1122).
While some portions of the preceding discussion used Ethernet, a cellular-telephone communication protocol and a Wi-Fi communication protocol as an illustrative example, in other embodiments a wide variety of communication protocols and, more generally, wired and/or wireless communication techniques may be used. Thus, the factory activation techniques may be used with a variety of network interfaces. Furthermore, while some of the operations in the preceding embodiments were implemented in hardware or software, in general the operations in the preceding embodiments can be implemented in a wide variety of configurations and architectures. Therefore, some or all of the operations in the preceding embodiments may be performed in hardware, in software or both.
Having described and illustrated the principles of the technology with reference to specific implementations, it will be recognized that the technology can be implemented in many other, different, forms. To provide a comprehensive disclosure without unduly lengthening the specification, applicants incorporate by reference-in their entirety-the patents and patent applications referenced above, including all drawings, including color drawings, and appendices.
The methods, processes, and systems described above may be implemented in hardware, software or a combination of hardware and software. For example, the signal processing operations described above may be implemented as instructions stored in a memory and executed in a programmable computer (including both software and firmware instructions), implemented as digital logic circuitry in a special purpose digital circuit, or combination of instructions executed in one or more processors and digital logic circuit modules. The methods and processes described above may be implemented in programs executed from a system's memory (a computer readable medium, such as an electronic, optical or magnetic storage device). The methods, instructions and circuitry operate on electronic signals, or signals in other electromagnetic forms. These signals further represent physical signals like image signals captured in image sensors, audio captured in audio sensors, as well as other physical signal types captured in sensors for that type. These electromagnetic signal representations are transformed to different states as detailed above to detect signal attributes, perform pattern recognition and matching, encode and decode digital data signals, calculate relative attributes of source signals from different sources, etc.
The particular combinations of elements and features in the above-detailed embodiments are exemplary only; the interchanging and substitution of these teachings with other teachings in this and the incorporated-by-reference patents/applications are also contemplated. Any headings used in this document are for the reader's convenience and are not intended to limit the disclosure. We expressly contemplate combining the subject matter under the various headings.
This application is a US Nationalization of International Patent Application No. PCT/US2022/050767, filed Nov. 22, 2023, and published as WO 2023/096924, which claims the benefit of U.S. Provisional Patent Application No. 63/282,380, filed Nov. 23, 2021. Each of the above referenced patent documents is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63282380 | Nov 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2022/050767 | Nov 2022 | WO |
Child | 18672291 | US |