Service enhancements for devices and applications thereof

By introducing an application registry into the device, the problem of low collaboration efficiency between devices and applications in a multi-device environment is solved, dynamic and automatic collaboration between devices and their applications is realized, and user experience is improved.

CN119731999APending Publication Date: 2025-03-28NOKIA TECHNOLOGIES OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280098844.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-08-10
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

In a multi-device environment, users need to manually operate each device and its application, resulting in inefficient collaboration and the prior art fails to support dynamic and automatic collaboration of devices and their applications.

Method used

By introducing an application registry, the first application on the device can send a discovery request to the application registry, the application registry determines the registered second application based on the request, and sends a discovery response to the first application, thereby enabling collaboration between the device and its application.

Benefits of technology

This solution improves the user experience, allowing dynamic state changes and service discovery between devices and applications through automatic collaboration, reducing the user's need for manual operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119731999A_ABST
    Figure CN119731999A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to service enhancement of equipment and applications thereof. A device causes a first application on the device to send a discovery request to an application registry on the device for discovering other applications. The device then causes the application registry to determine a second application registered in the application registry based on the discovery request. Further, the device causes the application registry to send a discovery response indicating the second application to the first application. As a result, it is allowed to support service discovery on the device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Various example embodiments relate to the field of telecommunications, and in particular, to methods, devices, apparatuses, and computer-readable storage media for service enhancement of devices and applications thereof. Background Art

[0002] In recent years, smart devices and ecosystem hardware have not only experienced explosive growth, but also experienced great diversification. Various smart devices (e.g., watches, headphones, smart speakers, smart TVs, smart refrigerators, and smart cars, etc.) have been productized due to customized requirements and have become increasingly popular in people's daily lives. For example, it is reported that by 2023, shipments in the global wearable market will be close to 500 million units, and shipments of smart home devices will exceed 13.9 billion units in 2023. The actual market for wearables has far exceeded expectations. For example, global wearable shipments increased by 9.9% to 138.4 million units during the third quarter of 2021. With the popularity of various smart devices, it is natural for users to use appropriate devices for different tasks in a multi-device environment. However, research and development is needed on how to manage devices owned by users to better provide the required services. Summary of the invention

[0003] In general, the exemplary embodiments of the present disclosure provide a technical solution for service enhancement of a device and its applications.

[0004] In a first aspect, a device is provided. The device includes at least one processor and at least one memory, the at least one memory storing instructions, which when executed by the at least one processor causes the device to at least: cause a first application on the device to send a discovery request to an application registry on the device for discovering other applications; cause the application registry to determine a second application registered in the application registry based on the discovery request; and cause the application registry to send a discovery response indicating the second application to the first application.

[0005] In a second aspect, a method implemented at a device is provided. The method includes causing a first application on the device to send a discovery request to an application registry on the device for discovering other applications; causing the application registry to determine a second application registered in the application registry based on the discovery request; and causing the application registry to send a discovery response indicating the second application to the first application.

[0006] In a third aspect, an apparatus is provided. The apparatus includes a component for causing a first application on the device to send a discovery request for discovering other applications to an application registry on the device; a component for causing the application registry to determine a second application registered in the application registry based on the discovery request; and a component for causing the application registry to send a discovery response indicating the second application to the first application.

[0007] In a fourth aspect, a non-transitory computer readable medium is provided, comprising program instructions for causing an apparatus to at least perform the method according to the second aspect.

[0008] In a fifth aspect, there is provided a computer program comprising instructions which, when executed by an apparatus, cause the apparatus to perform at least the method according to the second aspect.

[0009] In a sixth aspect, a device is provided. The device includes: a sending circuit configured to cause a first application on the device to send a discovery request for discovering other applications to an application registry on the device; a determining circuit configured to cause the application registry to determine a second application registered in the application registry based on the discovery request; and a sending circuit configured to cause the application registry to send a discovery response indicating the second application to the first application.

[0010] It should be understood that the present invention summary is not intended to identify the key or essential features of the embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Some example embodiments will now be described with reference to the accompanying drawings, in which:

[0012] Figure 1 An example environment is shown in which example embodiments of the present disclosure may be implemented;

[0013] Figure 2 shows a process flow of application service discovery according to some example embodiments of the present disclosure;

[0014] Figure 3 An example process of application service discovery and access exposed by an application according to some example embodiments of the present disclosure is shown;

[0015] Figure 4 An example process of application service discovery between devices according to some example embodiments of the present disclosure is shown;

[0016] Figure 5 An example process of applying service update according to some example embodiments of the present disclosure is shown;

[0017] Figure 6 A flowchart of a method implemented at a device according to some embodiments of the present disclosure is shown;

[0018] Figure 7 shows a simplified block diagram of a device suitable for implementing some example embodiments according to the present disclosure; and

[0019] Figure 8 A block diagram illustrating an example of a computer readable medium according to some example embodiments of the present disclosure.

[0020] Throughout the drawings, the same or similar reference numerals refer to the same or similar elements. DETAILED DESCRIPTION

[0021] The principles of the present disclosure will now be described with reference to some example embodiments. It should be understood that these embodiments are described only for illustrative purposes, and help those skilled in the art to understand and implement the present disclosure, without implying any limitation on the scope of the present disclosure. The disclosure described herein can be implemented in various ways except for the ways described below.

[0022] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.

[0023] References in this disclosure to "one embodiment," "an embodiment," "an example embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but not every embodiment may include the particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an embodiment, it is considered that it is within the knowledge of those skilled in the art that such feature, structure, or characteristic may be effected in conjunction with other embodiments, whether or not explicitly described.

[0024] It should be understood that although the terms "first" and "second" etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element without departing from the scope of the example embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.

[0025] The terms used herein are only used to describe specific embodiments and are not intended to limit example embodiments. As used herein, the singular forms "one", "an" and "the" are also intended to include plural forms unless the context clearly indicates otherwise. It will be further understood that the terms "include", "comprise", "have", "have", "contain" and / or "cover" specify the existence of stated features, elements and / or components when used in this article, but do not exclude the existence or addition of one or more other features, elements, components and / or their combinations. As used herein, "at least one of the following elements: <list of two or more elements>" and "at least one of <list of two or more elements>" and similar wording (wherein the list of two or more elements is connected by "and" or "or") represent at least any one of the elements, or at least any two or more of the elements, or at least all elements.

[0026] As used in this application, the term "circuitry" may refer to one, more, or all of the following:

[0027] (a) hardware circuit implementation only (e.g., implementation in analog and / or digital circuitry only) and

[0028] (b) a combination of hardware circuitry and software such as (where applicable):

[0029] (i) a combination of analog and / or digital hardware circuits and software / firmware and

[0030] (ii) any part of hardware processor(s) (including digital signal processor(s)) with software, software and memory(s) that work together to enable a device (such as a mobile phone or server) to perform various functions) and

[0031] (c) Hardware circuits and or processor(s), such as microprocessor(s) or portions of microprocessor(s), that require software (e.g., firmware) for operation, but where the software is not required for operation, the software may not be present.

[0032] This definition of circuitry applies to all uses of the term in this application, including in any claims. As another example, as used in this application, the term "circuitry" also covers an implementation of only a hardware circuit or processor (or multiple processors) or a portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. For example and if applicable to a particular claim element, the term circuitry also covers a baseband integrated circuit or processor integrated circuit of a mobile device or a similar integrated circuit in a server or other computing device.

[0033] The term "device" refers to any terminal device that can implement the services required by the user. As an example and not a limitation, the device may include a smart phone, a tablet computer, a wearable terminal device, a portable computer, a desktop computer, an image capture terminal device (such as a digital camera), a game terminal device, a music storage and playback device, a vehicle-mounted wireless terminal device, a laptop embedded device (LEE), a laptop mounted device (LME), a USB (universal serial bus) dongle, a smart device, a wireless customer premises equipment (CPE), an Internet of Things (loT) device, a watch, smart glasses or other wearable, a head-mounted display (HMD), a vehicle, a drone, medical equipment and applications (e.g., remote surgery), industrial equipment and applications (e.g., robots and / or other wireless devices operating in industrial and / or automated processing chain environments), consumer electronic devices, devices operating on commercial and / or industrial wireless networks, etc. In the following description, the terms "mobile device", "terminal device", "user device", "device", "terminal", "user equipment" and "UE" may be used interchangeably.

[0034] As stated above, in recent years, smart devices and ecosystem hardware have not only experienced explosive growth, but also experienced tremendous diversification. Various smart devices (e.g., watches, headphones, smart speakers, smart TVs, smart refrigerators, and smart cars, etc.) are productized due to customized requirements and are becoming more and more popular in people's daily lives. For example, it is reported that by 2023, shipments in the global wearable market will be close to 500 million units, and shipments of smart home devices will exceed 13.9 billion units in 2023. The actual market for wearables has far exceeded expectations. For example, global wearable shipments increased by 9.9% to 138.4 million units during the third quarter of 2021. With the popularity of various smart devices, it is natural for users to use appropriate devices for different tasks in a multi-device environment. However, research and development is needed on how to manage devices owned by users to better provide the required services.

[0035] Automatic collaboration of devices (e.g., mobile devices) and their applications is a hot topic for devices (e.g., mobile devices) that are booming in the Internet of Things (IoT) triggered by 5G and beyond. From the user's perspective, a typical pain point in a multi-device environment is that their devices and their applications do not collaborate. For example, it is natural for an end user to want his / her mobile phone to automatically enable voice control and hands-free mode while he / she is driving, and automatically disable working mode when he / she leaves the car. For example, if a user sets a "Do Not Disturb" state on his / her phone, his / her demand should be "Don't disturb me by any device or application on it", not just the current phone. That is, it is necessary to allow the state change of one of the devices or one of the applications on it to automatically trigger (multiple) actions of (multiple) other devices or (multiple) applications based on some policy pre-defined by the end user.

[0036] Currently, there is no support for dynamic and automatic collaboration of enabling devices (e.g., mobile devices) and their applications to replace (multiple) manual operations by users. However, without automatic collaboration of devices (e.g., mobile devices) and their applications, users must manually operate each device and its application. The more devices and applications a user has, the worse the situation. Manual collaboration by users alone is inefficient and poor. Therefore, enabling collaboration of devices (e.g., mobile devices) and their applications remains an important issue to be solved.

[0037] According to an embodiment of the present disclosure, a solution for service enhancement of a device and its application is provided. With the solution, the device causes a first application on the device to send a discovery request for discovering other applications to an application registry on the device. Then, the device causes the application registry to determine a second application registered in the application registry based on the discovery request. In addition, the device causes the application registry to send a discovery response indicating the second application to the first application.

[0038] The solution supports service discovery by introducing an application registry. On this basis, it allows collaboration between enabled devices and their applications. In this way, the user experience can be improved. The principles and embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0039] First reference Figure 1 , which illustrates an example environment 100 in which example embodiments of the present disclosure may be implemented. Figure 1As shown in , environment 100 includes user 105. User 105 owns device 110 and device 120. Device 110 includes applications 111-1 to 111-N. Device 110 also includes some functions, such as application collaborator 112, application registry 113, application exposure 114, and connection manager 115. Similarly, device 120 includes applications 121-1 to 121-N, application collaborator 122, application registry 123, application exposure 124, and connection manager 125. It should be understood that the structure of environment 100 and / or devices 110 and 120 is shown only for illustrative purposes and does not imply any limitation on the scope of the present disclosure. Embodiments of the present disclosure can also be applied to different environments with different structures and / or devices with different components.

[0040] Taking device 110 as an example, similar features are also applied to device 120. In some example embodiments, applications 111-1 to 111-N can be registered in application registry 113. Then, one of applications 111-1 to 111-N (also referred to as a first application, for example, first application 111-1) can be sent to application registry 113 for discovering other applications. A discovery request may include a discovery criterion. The application registry 113 can be made to determine an application (also referred to as a second application, for example, second application 111-2) that meets the discovery criterion and is registered in the application registry 113 based on the discovery request, and then send a discovery response indicating the second application 111-2 to the first application. The discovery response may indicate a service supported by the second application 111-2 and an address for accessing the service. As used herein, a service may be understood as an application programming interface (API).

[0041] In some example embodiments, the application exposure 114 may be made to act as an intermediary for communication between the first application 111-1 and the second application 111-2. In this case, the application registry 113 may be made to configure the address for accessing the service supported by the second application 111-2 as the address of the application exposure 114. In this way, the first application 111-1 may communicate with the second application 111-2 via the application exposure 114 based on the address of the application exposure 114.

[0042] In some example embodiments, application orchestrator 112 may be configured to provide user 105 with an API for managing multiple devices including device 110. For example, application orchestrator 112 may be enabled to discover multiple applications and services supported by the multiple applications from application registry 113. Then, application orchestrator 112 may be enabled to determine multiple applications associated with the called API based on determining that the API is called by user 105, and then perform operations on the multiple applications.

[0043] In some example embodiments, the connection manager 115 may be caused to collaborate with the connection manager 125 on the device 120 to establish a connection based on a trigger from the user 105. In this case, the application registry 113 may be caused to discover applications on the device 120 and services supported by the applications via the connection. Therefore, when a discovery request is received from the first application 111-1, the application registry 113 may be caused to forward the discovery request to the application registry 123 via the connection and obtain another discovery response indicating an application registered in the application registry 123 (also referred to as a third application, such as the third application 121-1). Then, the application registry 113 may be caused to generate a discovery response indicating the second application 111-2 and the third application 121-1, and also send the discovery response to the first application 111-1.

[0044] It should be understood that two devices are shown in environment 100 for illustration purposes only and does not imply any limitation on the scope of the present disclosure. In some example embodiments, environment 100 may include another device to communicate with devices 110 and 120.

[0045] Communications between devices in environment 100 may follow any suitable communication standards or protocols that already exist or are to be developed in the future, such as Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), LTE-Advanced (LTE-A), Fifth Generation (5G) New Radio (NR), Wireless Fidelity (Wi-Fi), and Worldwide Interoperability for Microwave Access (WiMAX) standards, and employ any suitable communication technology, including, for example, Multiple Input Multiple Output (MIMO), Orthogonal Frequency Division Multiplexing (OFDM), Time Division Multiplexing (TDM), Frequency Division Multiplexing (FDM), Code Division Multiplexing (CDM), Bluetooth, ZigBee, and Machine Type Communication (MTC), Enhanced Mobile Broadband (eMBB), Massive Machine Type Communication (mMTC), Ultra-Reliable Low Latency Communication (URLLC), Carrier Aggregation (CA), Dual Connectivity (DC), and New Radio Unlicensed (NR-U) technologies.

[0046] Figure 2 FIG. 2 shows a process flow 200 for application service discovery according to some example embodiments of the present disclosure. For discussion purposes, reference will be made to Figure 1 Describing process flow 200. It will be appreciated that although reference has been made to Figure 1 The process flow 200 is described with reference to the network environment 100 of FIG. 1 , but the process flow 200 can also be applied to other similar communication scenarios.

[0047] like Figure 2As shown in , the device 110 causes the first application 111-1 to send (230) a discovery request 231 for discovering other applications to the application registry 113. On the receiving side, the application registry 113 receives (235) the discovery request 231. In this case, the application registry 113 can be used as a facility to support service discovery of applications running on the device 110. For example, the discovery request can include a discovery criterion. In this case, the device 110 can cause the application registry 113 to determine the discovery criterion based on the discovery request 231. As an example, the discovery criterion can be based on at least one of the following: an application identifier, an application name, an application type, a service, or a service type. For example, the discovery criterion can include a list of supported APIs.

[0048] Then, device 110 causes the application registry to determine (240) a second application 111-2 registered in application registry 113 based on the discovery request. For example, device 110 may cause application registry 113 to determine second application 111-2 based on second application 111-2 satisfying the discovery criteria. Alternatively or in addition, device 110 may cause application registry 113 to determine a plurality of devices including second application 111-2 based on the discovery request. For example, device 110 may cause application registry 113 to determine a plurality of devices satisfying the discovery criteria.

[0049] like Figure 2 As shown in , the device 110 causes the application registry 113 to send (245) a discovery response 246 indicating the second application 111-1 to the first application 111-1. On the other side of the transmission, the first application 111-1 receives (250) the discovery response 246 from the application registry 113. For example, the discovery response 246 may indicate a service supported by the second application 111-2 and an address for accessing the service. For example, the address for accessing the service may include an address of the service. The device 110 may then cause the first application 111-1 to communicate (255) with the second application 111-2 based on the address of the service. For example, if multiple applications on the device 110 are determined by the application registry 113, the application registry 113 may provide the first application 111-1 with a list of multiple applications and application service instances associated with the discovery criteria.

[0050] In some example embodiments, device 110 may cause application exposure 114 to act as an intermediary for communication between first application 111-1 and second application 111-2. For example, device 110 may cause application registry 113 to determine the address of application exposure 114 as the address for accessing services supported by second application 111-2, and include the address of application exposure 114 in discovery response 246. In this case, device 110 may cause first application 111-1 to communicate with second application 111-2 via application exposure 114 based on the address of application exposure 114. Figure 3 Describe more relevant details.

[0051] In an embodiment where the device 110 causes the application registry 113 to determine multiple devices, the discovery response 246 may indicate multiple devices. The device 110 may cause the application exposure 114 to act as an intermediary for communication between the first application 111-1 and multiple applications on multiple devices. In this case, the application registry 113 may be caused to determine a list of mappings between multiple addresses of the application registry 113 and multiple addresses for accessing multiple services supported by multiple applications. Then, the device 110 may cause the application registry 113 to determine a corresponding one of the multiple addresses of the application exposure 114 as an address for accessing a corresponding service in the multiple services when generating the discovery response 246. In this case, the device 110 may cause the first application 111-1 to communicate with multiple applications on multiple devices via the application exposure 114 based on the multiple addresses of the application exposure 114.

[0052] Since application exposure 114 implements application service exposure, secure communication between applications is guaranteed by introducing service access control logic and log or audit logic, thereby avoiding privacy and security issues of direct communication between applications.

[0053] In some example embodiments, when application registry 113 is installed, device 110 may cause application registry 113 to enable applications on device 110 to register in application registry 113. In this case, there is no need for device 110 to cause applications on device 110 to send requests to register in application registry 113. In another embodiment, an application running on device 110 may trigger a “registration request” to application registry 113 based on its own logic.

[0054] In some example embodiments, device 110 may enable an application on device 110, such as second application 111-2, to register in application registry 113 by sending a request for registering in application registry 113. The following registration operation is described only by taking second application 111-2 as an example, and it should be understood that these registration operations are applicable to other applications on device 110.

[0055] As an example, device 110 may determine that the second application becomes operational for the first time. Then, device 110 may cause second application 111-2 to register in application registration table 113. In some example embodiments, as Figure 2 As shown in , the device 110 may cause the second application 111-2 to send (205) a registry message (also referred to as a registry request) 206 including a profile of the second application 111-2 to the application registry 113. Therefore, the application registry 113 may receive (210) the registry request 206. As an example, the profile of the second application 111-2 may include at least one of the following: an identifier of the second application 111-2, a name of the second application 111-2, application type information of the second application 111-2, a service supported by the second application 111-2, an address of the service, or service type information of the service. For example, the application or service type information may include a social network application or service, an entertainment application or service, a smart car application or service, etc. The application or service type information may not be necessary because the application registry 113 may be caused to generate the application or service type information based on other information (e.g., supported services) included in the profile.

[0056] For example, the term "service instance" can be used to define a service provided by the first application 110, which is associated with the service and the address of the service. In this case, the profile of the second application 111-2 may include information related to the application instance, such as an application instance identifier, an application name, and a list of supported application service instances. Alternatively or in addition, the information related to the application instance may include the address of the service instance that enables access to the service instance (e.g., an Internet Protocol (IP) / port address or a uniform resource identifier (URI)) and an API supported by the service instance. For example, there may be at least two APIs supported by a service instance, namely a status query API and an operation request API. Taking a social network application as an example, the status query API may be made to return the current status of the second application 111-2 or the user 105 (e.g., "free", "busy", "do not disturb", "leave", "offline", etc.). The operation request API may be made to change the status to the requested status. For example, if the user 105 does not want to be disturbed, the status may be changed to "do not disturb", "busy" or "offline". For example, for smart car applications, the state query API can be used to return the current state of the car, such as "driving, parking", "locked", "unlocked", etc. The operation request API can be used to support controlling devices on the car.

[0057] like Figure 2As shown in , device 110 may cause application registry 113 to store (215) the profile of second application 111-2 for further use. Then, device 110 may cause application registry 113 to send (220) a registry response 221 indicating the success of the registration to second application 111-2. Thus, second application 111-2 may receive (225) the registry response 221 from application registry 113.

[0058] In some example embodiments, device 110 may cause first application 111-1 to obtain the latest information about the discovered application. For example, if device 110 determines that the service supported by second application 111-2 is changed, device 110 may cause second application 111-2 to send a registry update message including an updated profile of second application 111-2 to application registry 113. Then, device 110 may cause application registry 113 to store the updated profile of second application 111-2. Since device 110 may cause application registry 113 to determine that first application 111-1 has discovered second application 111-2, device 110 may also cause application registry 113 to send a notification about the changed service of second application 111-2 to first application 111-1. In another embodiment, the application running on the device 110 may trigger a “registration update request” to the application registry 113 based on its own logic. For example, after a software update, the application running on the device 110 detects that its own service has also been updated / enhanced, and then it will trigger a “registration update request” to the application registry 113.

[0059] For example, the second application 111-2 may change its service (API), for example, it may now support yet another new service / API. The application registry 113 may notify the first application 111-1 that the service supported by the second application 111-2 has been changed. To achieve this, the application registry 113 may remember all application service discoveries performed previously. Once a discovered application service is changed, the application registry 113 may notify the relevant application that discovered the service. In this case, once a service supported by a service provider application is discovered, the application that discovered the service may use the discovered service API to obtain the service from the service provider application.

[0060] Alternatively or in addition, the device 110 may cause the first application 111-1 to subscribe to the second application 111-2 for notifications of service changes. Then, based on determining that the service is changed, the device 110 may cause the second application 111-2 to send a notification of the service change to the first application 111-1. For example, the second application 111-2 may support the API status_subscribe (application ID, expected status). In this case, the first application 111-1 may obtain any status change report by calling the API directly to the second application 111-2 or through the application exposure 114.

[0061] In some example embodiments, device 110 may cause second application 111-2 to be deregistered in various ways. For example, device 110 may cause second application 111-2 to determine that second application 111-2 is to be closed. Then, device 110 may cause second application 111-2 to be deregistered in application registry 113. Alternatively or in addition, device 110 may cause application registry 113 to periodically determine whether second application 111-2 is available. For example, device 110 may cause application registry 113 to deregister second application 111-2 based on determining that second application 111-2 is not available. In another embodiment, an application running on device 110 may trigger a "deregistration update" to application registry 113 based on its own logic. For example, when an application exits runtime.

[0062] In some example embodiments, device 110 may cause a connection manager (also referred to as a first connection manager) 115 on device 110 to establish a connection with another connection manager (also referred to as a second connection manager) 125 on device 120. For example, device 110 may cause first connection manager 115 to receive a trigger from user 105 for establishing a connection. Then, device 110 may cause first connection manager 115 to collaborate with second connection manager 125 to establish a connection based on receiving the trigger. For example, device 110 may cause first connection manager 115 to send a request to second connection manager 125. The request may be used to establish a connection and include authentication information. Then, device 110 may cause first connection manager 115 to receive a response including an acknowledgment (ACK) of the request from second connection manager 125. In addition, device 110 may cause first connection manager 115 to store information about the connection including an address of device 120.

[0063] As an example, based on the destination device address of device 120 provided by user 105, first connection manager 115 may be caused to contact second connection manager 125 to establish an authorized connection by sending an authorized connection request message with necessary authentication information. Then, at destination device 120, a user interface may pop up to request confirmation from user 105. Based on the confirmation, an authorized connection ACK may be sent back to device 110. In addition, information associated with the connection, such as an identifier of device 110, may be stored in device 120. In addition, based on the authorized connection ACK received at device 110, information associated with the connection, such as an identifier of device 120, may be saved in device 110.

[0064] In this case, based on the discovery request 231 from the first application 110-1, the device 110 may cause the application registry 113 to send the discovery request 231 to the application registry 123 on the device 120 via the connection. The device 120 may cause the application registry 123 to determine the application (also referred to as the third application) 121-1 registered in the application registry 123 based on the discovery request 231. Then, the device 120 may cause the application registry 123 to send another discovery response indicating the third application 121-1 to the application registry 113 via the connection. Then, the device 110 may cause the application registry 113 to generate a discovery response 246 indicating the second application and the third application.

[0065] The connection manager can be used as a facility to establish and maintain authorized connections between devices owned by the user 105 for the cooperation of application registries and application exposure on these devices. In this way, the application registries and application exposure between different devices can work together to support service discovery and exposure of applications running on the devices.

[0066] In some example embodiments, device 110 may cause application coordinator 112 on device 110 to provide user 105 with an API for managing multiple devices including device 110 and multiple applications on multiple devices. For example, the API may include an API for setting multiple applications to a certain state. In this case, the API may be called in the following scenario: when user 105 is busy in the virtual world of the metaverse, for example, when talking with others in an application of the metaverse, or in a virtual meeting, user 105 wants to avoid interruptions in the real world, that is, user 105 wants to automatically set his mobile phone or other social network application to "Do Not Disturb". As another example, the API may include an API for turning multiple devices on or off. The API may be called in the following scenario: when user 105 leaves home to go to work, user 105 wants to turn off all the lights in the house. As another example, the API may include an API for determining the status of multiple devices. The API may be called in the following scenario: when user 105 wants to understand the overall status of the devices he owns.

[0067] The device 110 may cause the application coordinator 112 to send a trigger for discovering multiple applications and services supported by the multiple applications to the application registry 113, and then cause the application coordinator 113 to maintain information about the multiple applications and services supported by the multiple applications. In addition, the device 110 may cause the application coordinator 112 to determine that an API is called by the user 105. Then, the device 110 may cause the application coordinator 112 to determine multiple applications associated with the called API. On this basis, the device 110 may cause the application coordinator 112 to perform operations on the multiple applications.

[0068] For example, the application coordinator 112 may be caused to trigger service discovery on the application registry 113 to detect all available applications / services owned by the user 105. The application coordinator 112 may maintain a list of available applications / services owned by the user 105. As an example, when the API sets all social network applications to "busy", the application coordinator 112 may be caused to retrieve all applications in the social network application list it maintains, and call the status update API of each application to set the status to "busy".

[0069] In some example embodiments, device 110 may cause application orchestrator 112 to provide user 105 with an interface for configuring an application collaboration policy indicating action criteria and at least one action to be performed if the action criteria are met. For example, application orchestrator 112 may be caused to provide user 105 with an interface to directly configure application collaboration policies based on user needs. The following is an example of an application collaboration policy:

[0070] -Action standard: The status of the social application is in a call.

[0071] - Action(s): Update the status of the mobile phone to "busy", which means that all incoming calls during the time when it is "busy" will be rejected with a busy tone.

[0072] In this way, it is allowed to enable service discovery and exposure. In addition, on this basis, simple, efficient and fast collaboration between applications in devices can be achieved. In addition, based on the connection managers on multiple devices, the application coordinator can provide an API to enable efficient collaboration of multiple devices and their applications.

[0073] Figure 3 An example process 300 of discovering and accessing application services exposed by an application according to some example embodiments of the present disclosure is shown. Specifically, Figure 3 The process of discovering and accessing application services exposed by an application is shown in Figure 1. For the purpose of this discussion, reference will be made to Figure 1 Describing process 300. It will be appreciated that although Figure 1 The process 300 is described in the network environment 100 of FIG. 1 , but the process flow can also be applied to other communication scenarios.

[0074] like Figure 3 As shown in , the device 110 causes the second application 111-2 to send (305) an Application_Register request 306 to the application registry 113. Therefore, the device 110 causes the application registry 113 to receive (310) the Application_Register request 306 from the second application 111-2. For example, the Application_Register request 306 includes the application profile of the second application 111-2. Then, the device 110 causes the application registry 113 to store (315) the application profile of the second application 111-2. The device 110 causes the application registry 113 to send (320) an Application_Register response 321 to the second application 111-2. On the receiving side, the device 110 causes the second application 111-2 to receive (325) the Application_Register response 321.

[0075] The device 110 causes the first application 111-1 to send (330) an Application_Discovery request 331 to the application registry 113. Therefore, the device 110 causes the application registry 113 to receive (335) the Application_Discovery request 331 from the first application 111-1. For example, the Application_Discovery request 331 includes a discovery criterion, and then the device 110 causes the application registry 113 to retrieve (340) a second application 111-2 that meets the discovery criterion. In order to improve communication security, the device 110 causes the application registry 113 to update (345) the access address of the second application 111-2 to the address of the application exposure 114, and then on this basis, the device 110 causes the application registry 113 to generate an Application_Discovery response 346. Then, the device 110 causes the application registry 113 to send (350) the Application_Discovery response 346 to the first application 111-1. The device 110 also causes the first application 111 - 1 to receive ( 355 ) the Application_Discovery response 346 from the application registry 113 . Then, at 360 , application indirect communication between the first application 111 - 1 and the second application 111 - 2 is enabled via the application exposure 114 .

[0076] In this way, it is allowed to support service discovery of applications running on the device based on the new APIs Application_Register and Application_Discovery. In addition, application exposure can improve communication security and privacy protection.

[0077] As mentioned above Figure 2 All operations and features described are equally applicable to process 300 and have similar effects. For the sake of simplicity, details will be omitted.

[0078] Figure 4 An example process 400 of application service discovery between devices according to some example embodiments of the present disclosure is shown. Specifically, Figure 4 The application service discovery process between multiple devices is shown. For the purpose of discussion, reference will be made to Figure 1 Describe process 400. It will be appreciated that although Figure 1 The process 400 is described in the network environment 100 of FIG. 1 , but the process flow can also be applied to other communication scenarios.

[0079] like Figure 4As shown in , the device 110 causes the first application 111-1 to send (405) an Application_Register request 406 to the first application registry 113 on the device 110. Therefore, the device 110 causes the first application registry 113 to receive (410) the Application_Register request 406 from the first application 111-1. For example, the Application_Register request 306 includes the application profile of the first application 111-1. Then, the device 110 causes the first application registry 113 to store (415) the application profile of the first application 111-1. The device 110 causes the first application registry 113 to send (420) an Application_Register response 421 to the first application 111-1. On the receiving side, the device 110 causes the first application 111-1 to receive (425) the Application_Register response 421.

[0080] Device 120 causes second application 121-1 to send (430) Application_Discovery request 431 to second application registry 123. Thus, device 120 causes application registry 123 to receive (435) Application_Discovery request 431 from second application 121-1. For example, Application_Discovery request 331 includes discovery criteria. Then, device 120 causes second application registry 123 to retrieve (440) a first application discovery result associated with a third application on device 120 that satisfies the discovery criteria.

[0081] In this case, a connection has been established between the first application registry 113 and the second application registry 123. The device 120 causes the second application registry 123 to send (445) an Application_Discovery request 431 to the first application registry 113 via the connection. Accordingly, the device 110 causes the first application registry 113 to receive (450) an Application_Discovery request 431 from the second application registry 123 via the connection. The device 120 causes the first application registry 113 to retrieve (455) a second application discovery result associated with the first application 111-1 on the device 110 that meets the discovery criteria, and based on this, the device 120 causes the first application registry 113 to generate an Application_Discovery response 456. The device 110 causes the first application registry 113 to send (460) an Application_Discovery response 456 to the application registry 123 via the connection. On the receiving side, the device 120 causes the second application 121-1 to receive (465) an Application_Discovery response 456 from the first application registry 113 via the connection.

[0082] The device 120 causes the application registry 123 to combine the first application discovery result and the second application discovery result (470), and generate an Application_Discovery response 476 based on this. Then, the device 120 causes the application registry 123 to send (475) the Application_Discovery response 476 to the second application 121-1. Accordingly, the device 120 causes the second application 121-1 to receive (480) the Application_Discovery response 476 from the application registry 123. Then, at 485, application direct communication between the first application 111-1 and the second application 111-2 is enabled. In some example embodiments, an application exposure function may also be added to ensure security and privacy protection in the above communication.

[0083] As mentioned above Figure 2 All operations and features described are equally applicable to process 400 and have similar effects. For the sake of simplicity, details will be omitted.

[0084] Figure 5 An example process of applying service updates according to some example embodiments of the present disclosure is shown. For the purpose of discussion, reference will be made to Figure 1 Describe process 500. It will be appreciated that although Figure 1 The process 500 is described in the network environment 100 of FIG. 1 , but the process flow can also be applied to other communication scenarios.

[0085] At 505, the following has been performed: Figure 2 , and thus the second application 111-2 has been registered in the application registry 113. For example, if the service supported by the second application 111-2 has been changed, the device 110 causes the second application 111-2 to send (510) an Application_Register_Update request 511 to the application registry 113 to update its profile. Therefore, the device 110 causes the application registry 113 to receive (515) the Application_Register_Update request 511.

[0086] Then, the device 110 causes the application registry 113 to store (520) the updated application profile of the second application 111-2. The device 110 causes the application registry 113 to send (525) an Application_Register_Update response 526 to the second application 111-2. On the receiving side, the device 110 causes the second application 111-2 to receive (530) the Application_Register_Update response 526. Since the first application 111-1 discovered the second application 11-2, the device 110 causes the application registry 113 to send (535) a notification 536 of a service change of the second application 111-2 to the first application 110-1. Therefore, the device 110 causes the first application 110-1 to receive (540) a notification 536 of a service change of the second application 111-2.

[0087] As mentioned above Figure 2 All operations and features described are equally applicable to process 500 and have similar effects. For the sake of simplicity, details will be omitted.

[0088] Figure 6 Flowchart 600 of a method implemented at device 110 according to some embodiments of the present disclosure is shown. For discussion purposes, reference will be made to Figure 1 The method 600 is described from the perspective of the device 110 .

[0089] At block 610, the device 110 causes a first application on the device to send a discovery request to an application registry on the device for discovering other applications. At block 620, the device 110 causes the application registry to determine a second application registered in the application registry based on the discovery request. At block 630, the device 110 causes the application registry to send a discovery response indicating the second application to the first application.

[0090] In some example embodiments, device 110 further causes the second application to register in an application registry. In some example embodiments, device 110 causes the second application to register in the application registry by causing the second application to send a registry message including a profile of the second application to the application registry, and causing the application registry to store the profile of the second application. In some example embodiments, the profile of second application 111-2 includes at least one of the following: an identifier of the second application; a name of the second application; application type information of the second application; a service supported by the second application; an address of a service; or service type information of a service.

[0091] In some example embodiments, device 110 further causes the second application to send a registry update message including an updated profile of the second application to an application registry based on determining that a service supported by the second application is changed; and causes the application registry to store the updated profile of the second application. In some example embodiments, device 110 further causes the application registry to send a notification about the changed service to the first application.

[0092] In some example embodiments, device 110 further causes the first application to subscribe the second application to notifications of service changes; and based on determining that the service is changed, causes the second application to send the notification of service changes to the first application.

[0093] In some example embodiments, device 110 causes the second application to be registered in the application registry by: determining that the second application is to become operational for the first time; and causing the second application to be registered in the application registry based on determining that the second application is to become operational for the first time.

[0094] In some example embodiments, device 110 further causes the second application to determine that the second application is to be closed; and based on determining that the second application is to be closed, causes the second application to be unregistered in the application registry.

[0095] In some example embodiments, the device 110 further causes the application registry to periodically determine whether the second application is available; and based on determining that the second application is not available, causes the application registry to unregister the second application.

[0096] In some example embodiments, device 110 also causes a first connection manager on device 110 to receive a trigger from a user of device 110 for establishing a connection between device 110 and another device; causes the first connection manager to collaborate with a second connection manager on the other device to establish a connection based on receiving the trigger; and causes the first connection manager to store information about the connection including an address of the other device.

[0097] In some example embodiments, device 110 causes the first connection manager to collaborate with the second connection manager to establish a connection in the following manner: causing the first connection manager to send a request to the second connection manager, the request being used to establish a connection and including authentication information; and causing the first connection manager to receive a response from the second connection manager including a confirmation of the request.

[0098] In some example embodiments, device 110 further causes the application registry to send a discovery request to another application registry on another device via a connection; causes the application registry to receive another discovery response from the other application registry via the connection indicating a third application registered in the other application registry; and causes the application registry to generate a discovery response indicating the second application and the third application.

[0099] In some example embodiments, the discovery response indicates a service supported by the second application and an address for accessing the service. In some example embodiments, the address for accessing the service includes an address of the service, and device 110 further enables the first application to communicate with the second application based on the address of the service.

[0100] In some example embodiments, the address for accessing the service comprises an address exposed by an application on device 110, and wherein device 110 further enables the first application to communicate with the second application via the application exposure based on the address exposed by the application. In some example embodiments, device 110 further enables an application orchestrator on device 110 to provide an application programming interface API to a user of device 110, the application programming interface API being used to manage multiple devices including device 110 and multiple applications on the multiple devices.

[0101] In some example embodiments, the API includes one of: an API for setting the plurality of applications to a specific state; an API for turning the plurality of devices on or off; or an API for determining the state of the plurality of devices. In some example embodiments, the device 110 further causes the application coordinator to send a trigger for discovering the plurality of applications and services supported by the plurality of applications to the application registry; and causes the application coordinator to maintain information about the plurality of applications and services supported by the plurality of applications.

[0102] In some example embodiments, device 110 further causes the application collaborator to determine that an API is called by a user; causes the application collaborator to determine a plurality of applications associated with the called API; and causes the application collaborator to perform operations on the plurality of applications. In some example embodiments, device 110 further causes the application collaborator to provide an interface of an application collaboration policy to a user, the application collaboration policy being used to configure an indication of an action criterion and at least one action to be performed if the action criterion is met.

[0103] In some example embodiments, device 110 causes the application registry to determine the second application by: causing the application registry to determine a discovery criterion based on the discovery request; and causing the application registry to determine that the second application satisfies the discovery criterion. In some example embodiments, the discovery criterion is based on at least one of: an application identifier; an application name; an application type; a service; or a service type.

[0104] In some example embodiments, an apparatus capable of performing method 600 (e.g., device 110) may include a component for performing the corresponding steps of method 600. The component may be implemented in any suitable form. For example, the component may be implemented in a circuit or a software module.

[0105] In some example embodiments, the apparatus includes a component for causing a first application on a device to send a discovery request to an application registry on the device for discovering other applications; a component for causing the application registry to determine a second application registered in the application registry based on the discovery request; and a component for causing the application registry to send a discovery response indicating the second application to the first application.

[0106] In some example embodiments, the apparatus further comprises means for causing the second application to register in an application registry. In some example embodiments, the means for causing the second application to register in the application registry comprises means for causing the second application to send a registry message including a profile of the second application to the application registry; and means for causing the application registry to store the profile of the second application.

[0107] In some example embodiments, the profile of the second application includes at least one of: an identifier of the second application; a name of the second application; application type information of the second application; services supported by the second application; an address of the service; or service type information of the service. In some example embodiments, the apparatus further includes a component for causing the second application to send a registry update message including an updated profile of the second application to an application registry based on a determination that the services supported by the second application have changed; and a component for causing the application registry to store the updated profile of the second application.

[0108] In some example embodiments, the apparatus further comprises a component for causing the application registry to send a notification about the changed service to the first application. In some example embodiments, the apparatus further comprises a component for causing the first application to subscribe to notifications of service changes from the second application; and a component for causing the second application to send a notification of service changes to the first application based on determining the service change.

[0109] In some example embodiments, the means for causing the second application to be registered in the application registry includes means for determining that the second application becomes operational for the first time; and means for causing the second application to be registered in the application registry based on determining that the second application becomes operational for the first time.

[0110] In some example embodiments, the apparatus further comprises a component for causing the second application to determine that the second application is to be closed; and a component for causing the second application to be deregistered from the application registry based on the determination that the second application is to be closed. In some example embodiments, the apparatus further comprises a component for causing the application registry to periodically determine whether the second application is available; and a component for causing the application registry to deregister the second application based on the determination that the second application is unavailable.

[0111] In some example embodiments, the apparatus further includes a component for causing a first connection manager on a device to receive a trigger from a user of the device for establishing a connection between the device and another device; a component for causing the first connection manager to collaborate with a second connection manager on the other device to establish a connection based on receiving the trigger; and a component for causing the first connection manager to store information about the connection including an address of the other device.

[0112] In some example embodiments, a component for causing a first connection manager to collaborate with a second connection manager to establish a connection includes: a component for causing the first connection manager to send a request to the second connection manager, the request being used to establish a connection and including authentication information; and a component for causing the first connection manager to receive a response from the second connection manager including a confirmation of the request.

[0113] In some example embodiments, the apparatus further includes a component for causing the application registry to send a discovery request to another application registry on another device via a connection; a component for causing the application registry to receive another discovery response from the other application registry via the connection indicating a third application registered in the other application registry; and a component for causing the application registry to generate a discovery response indicating the second application and the third application.

[0114] In some example embodiments, the discovery response indicates a service supported by the second application and an address for accessing the service. In some example embodiments, the address for accessing the service includes an address of the service, and the apparatus further includes a component for causing the first application to communicate with the second application based on the address of the service. In some example embodiments, the address for accessing the service includes an application-exposed address on the device, and the apparatus further includes a component for causing the first application to communicate with the second application via the application exposure based on the application-exposed address.

[0115] In some example embodiments, the apparatus further includes a device for causing an application coordinator on the device to provide an application programming interface API to a user of the device, the application programming interface API being used to manage multiple devices including the device and multiple applications on the multiple devices. In some example embodiments, the API includes one of the following: an API for setting multiple applications to a specific state; an API for turning multiple devices on or off; or an API for determining the state of multiple devices.

[0116] In some example embodiments, the apparatus further comprises means for causing the application orchestrator to send a trigger to an application registry for discovering multiple applications and services supported by the multiple applications; and means for causing the application orchestrator to maintain information about the multiple applications and services supported by the multiple applications.

[0117] In some example embodiments, the apparatus further comprises a component for causing the application collaborator to determine that an API is called by a user; a component for causing the application collaborator to determine multiple applications associated with the called API; and a component for causing the application collaborator to perform operations on multiple applications.

[0118] In some example embodiments, the apparatus further comprises means for causing the application orchestrator to provide an interface of an application collaboration policy to a user, the application collaboration policy being configured to indicate an action criterion and at least one action to be performed if the action criterion is met.

[0119] In some example embodiments, the means for causing the application registry to determine the second application includes means for causing the application registry to determine a discovery criterion based on the discovery request; and means for causing the application registry to determine that the second application satisfies the discovery criterion. In some example embodiments, the discovery criterion is based on at least one of: an application identifier; an application name; an application type; a service; or a service type.

[0120] In some embodiments, the apparatus further comprises means for performing other steps in some embodiments of method 600. In some embodiments, the apparatus comprises at least one processor and at least one memory, the at least one memory comprising computer program code. The at least one memory and the computer program code are configured to cause the performance of the apparatus together with the at least one processor.

[0121] Figure 7 700 is a simplified block diagram of a device suitable for implementing some example embodiments of the present disclosure. The device 700 may be provided to implement a communication device, such as Figure 1 As shown in the figure, the device 700 includes one or more processors 710, one or more memories 720 coupled to the processor 710, and one or more communication modules 740 coupled to the processor 710.

[0122] The communication module 740 is used for two-way communication. The communication module 740 has at least one antenna to facilitate communication. The communication interface may represent any interface required to communicate with other network elements.

[0123] Processor 710 may be of any type suitable for the local technology network, and may include, as non-limiting examples, one or more of: a general purpose computer, a special purpose computer, a microprocessor, a digital signal processor (DSP), and a processor based on a multi-core processor architecture. Device 700 may have multiple processors, such as application specific integrated circuit chips, which are time-slaved to a clock synchronized with a main processor.

[0124] The memory 720 may include one or more non-volatile memories and one or more volatile memories. Examples of non-volatile memories include, but are not limited to, read-only memory (ROM) 724, electrically programmable read-only memory (EPROM), flash memory, hard disk, compact disk (CD), digital video disk (DVD), and other magnetic and / or optical memories. Examples of volatile memories include, but are not limited to, random access memory (RAM) 722 and other volatile memories that do not persist during power outages.

[0125] The computer program 730 includes computer executable instructions that are executed by the associated processor 710. The program 730 may be stored in the ROM 724. The processor 710 may perform any suitable actions and processes by loading the program 730 into the RAM 722.

[0126] The embodiments of the present disclosure may be implemented by a program 730, so that the device 700 may execute the Figures 2 to 6 Any process of the present disclosure discussed. The embodiments of the present disclosure may also be implemented by hardware or by a combination of software and hardware.

[0127] In some example embodiments, the program 730 may be tangibly embodied in a computer-readable medium that may be included in the device 700 (such as in the memory 720) or in other storage devices accessible to the device 700. The device 700 may load the program 730 from the computer-readable medium into the RAM 722 for execution. The computer-readable medium may include any type of tangible non-volatile memory, such as ROM, EPROM, flash memory, hard disk, CD, DVD, etc.

[0128] Figure 8 800 according to some example embodiments of the present disclosure. The computer readable medium 800 has the program 730 stored thereon. It should be noted that although the computer readable medium 800 is stored in Figure 8 Although depicted in the form of a CD or DVD, computer readable medium 800 may take any other form suitable for carrying or storing program 730.

[0129] Generally, various embodiments of the present disclosure may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software, which may be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of the present disclosure are shown and described as block diagrams, flow charts, or using some other graphical representations, it should be understood that, as non-limiting examples, the blocks, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, dedicated circuits or logic, general hardware or controllers or other computing devices, or some combination thereof.

[0130] The present disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer executable instructions, such as computer executable instructions included in a program module, which are executed in a device on a target real or virtual processor to perform the above-referenced Figure 6 The method described. Typically, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The functions of program modules can be combined or split between program modules as needed in various embodiments. The machine executable instructions of program modules can be executed in local or distributed devices. In distributed devices, program modules can be located in local and remote storage media.

[0131] The program code for executing the disclosed method can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer or other programmable data processing device so that the program code, when executed by the processor or controller, enables the function / operation specified in the flow chart and / or block diagram to be realized. The program code can be executed completely on the machine, partially on the machine, executed as an independent software package, partially on the machine and partially on a remote machine, or completely on a remote machine or server.

[0132] In the context of the present disclosure, computer program codes or related data may be carried by any suitable carrier to enable a device, apparatus or processor to perform various processes and operations as described above. Examples of carriers include signals, computer readable media, etc.

[0133] Computer readable medium can be a computer readable signal medium or a computer readable storage medium. Computer readable medium can include but is not limited to electronic, magnetic, optical, electromagnetic, infrared or semiconductor systems, devices or equipment, or any suitable combination of the foregoing. More specific examples of computer readable storage medium will include electrical connections with one or more wires, portable computer disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), optical fibers, portable compact disk read-only memories (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing. As used herein, the term "non-transient" is a limitation of the medium itself (i.e., tangible, not signal), rather than a limitation on data storage persistence (e.g., RAM and ROM).

[0134] In addition, although operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in chronological order, or that all of the operations shown be performed to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be interpreted as limitations on the scope of the present disclosure, but rather should be interpreted as descriptions of the features of specific embodiments. Certain features described in the context of separate embodiments may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable sub-combination.

[0135] Although the disclosure has been described in language specific to structural features and / or methodological acts, it should be understood that the disclosure defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims

1. A device comprising: at least one processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus to at least: enabling a first application on the device to send a discovery request for discovering other applications to an application registry on the device; causing the application registry to determine a second application registered in the application registry based on the discovery request; as well as The application registry sends a discovery response indicating the second application to the first application.

2. The apparatus according to claim 1, wherein the apparatus is further configured to: The second application is registered in the application registration table.

3. The device according to claim 2, wherein the device is caused to register the second application in the application registration table by: causing the second application to send a registry message including a profile of the second application to the application registry; and The application registry is caused to store the profile of the second application.

4. The apparatus of claim 3, wherein the profile of the second application comprises at least one of the following: an identifier of the second application; the name of the second application; application type information of the second application; services supported by the second application; the address of the service; or Service type information of the service.

5. The device according to claim 3 or 4, wherein the device is further configured to: causing the second application to send a registry update message including an updated profile of the second application to the application registry based on determining that a service supported by the second application is changed; and Cause the application registry to store the updated profile of the second application.

6. The apparatus of claim 5, wherein the apparatus is further configured to: The application registry is caused to send a notification to the first application regarding the changed service.

7. The device according to claim 3 or 4, wherein the device is further configured to: causing the first application to subscribe to the second application for notification of a service change; and Based on determining that the service is changed, causing the second application to send the notification of the service change to the first application.

8. The device according to claim 2, wherein the device is caused to register the second application in the application registration table by: determining that the second application becomes operable for the first time; and Based on determining that the second application becomes operational for the first time, the second application is registered in the application registration table.

9. The device according to any one of claims 1 to 8, wherein the device is further configured to: causing the second application to determine that the second application is to be closed; and Based on determining that the second application is to be closed, the second application is deregistered from the application registration table.

10. The device according to any one of claims 1 to 9, wherein the device is further caused to: causing the application registry to periodically determine whether the second application is available; and Based on determining that the second application is unavailable, the application registry deregisters the second application.

11. The device according to any one of claims 1 to 10, wherein the device is further configured to: causing a first connection manager on the device to receive a trigger from a user of the device to establish a connection between the device and another device; Based on receiving the trigger, the first connection manager cooperates with the second connection manager on the other device to establish the connection; and The first connection manager is caused to store information about the connection including an address of the other device.

12. The device of claim 11, wherein the device is caused to cause the first connection manager to cooperate with the second connection manager to establish the connection in the following manner: causing the first connection manager to send a request to the second connection manager, the request being used to establish the connection and including authentication information; and The first connection manager is caused to receive a response from the second connection manager including an acknowledgment of the request.

13. The apparatus according to claim 11 or 12, wherein the apparatus is further configured to: causing the application registry to send the discovery request to another application registry on the other device via the connection; causing the application registry to receive, via the connection, from the other application registry, another discovery response indicating a third application registered in the other application registry; and The application registry is caused to generate the discovery response indicating the second application and the third application.

14. The apparatus of any one of claims 1 to 13, wherein the discovery response indicates services supported by the second application and addresses for accessing the services.

15. The apparatus of claim 14, wherein the address for accessing the service comprises an address of the service, and wherein the apparatus is further caused to: The first application is caused to communicate with the second application based on the address of the service.

16. The device of claim 14, wherein the address for accessing the service comprises an address exposed by an application on the device, and wherein the device is further caused to: The first application is caused to communicate with the second application via the application exposure based on the address exposed by the application.

17. The apparatus according to any one of claims 1 to 16, wherein the apparatus is further caused to: The application orchestrator on the device provides an application programming interface (API) to a user of the device, where the application programming interface (API) is used to manage a plurality of devices including the device and a plurality of applications on the plurality of devices.

18. The apparatus of claim 17, wherein the API comprises one of: An API for setting the plurality of applications to a specific state; An API for turning the plurality of devices on or off; or An API for determining a status of the plurality of devices.

19. The apparatus according to claim 17 or 18, wherein the apparatus is further configured to: causing the application orchestrator to send a trigger to the application registry for discovering the plurality of applications and services supported by the plurality of applications; and The application orchestrator is caused to maintain information about the plurality of applications and the services supported by the plurality of applications.

20. The apparatus according to any one of claims 17 to 19, wherein the apparatus is further caused to: enabling the application collaborator to determine that the API is called by the user; causing the application orchestrator to determine the plurality of applications associated with the called API; and The application orchestrator is enabled to perform operations on the plurality of applications.

21. The apparatus according to any one of claims 17 to 20, wherein the apparatus is further caused to: The application orchestrator is caused to provide the user with an interface for configuring an application collaboration policy, the application collaboration policy indicating action criteria and at least one action to be performed if the action criteria are met.

22. The device according to any one of claims 1 to 21, wherein the device is caused to cause the application registry to determine the second application in the following manner: causing the application registry to determine discovery criteria based on the discovery request; and The application registry is caused to determine that the second application satisfies the discovery criteria.

23. The apparatus of claim 22, wherein the discovery criteria is based on at least one of: Application identifier; Application name; Application type; services; or Service type.

24. A method comprising: causing, at a device, a first application on the device to send a discovery request to an application registry on the device for discovering other applications; causing the application registry to determine a second application registered in the application registry based on the discovery request; and The application registry sends a discovery response indicating the second application to the first application.

25. An apparatus comprising: means for causing, at a device, a first application on the device to send a discovery request to an application registry on the device for discovering other applications; means for causing the application registry to determine a second application registered in the application registry based on the discovery request; as well as Means for causing the application registry to send a discovery response indicating the second application to the first application.

26. A computer program comprising instructions which, when executed by an apparatus, cause the apparatus to at least: causing, at a device, a first application on the device to send a discovery request to an application registry on the device for discovering other applications; causing the application registry to determine a second application registered in the application registry based on the discovery request; and The application registry sends a discovery response indicating the second application to the first application.

27. A non-transitory computer readable medium comprising program instructions for causing an apparatus to at least perform the method according to claim 24.