Invented by Vivek Bagade, Dhananjay Sathe, Rapyuta Robotics Co Ltd
A cloud device app, also known as a cloud-based application, is a software program that runs on remote servers and is accessed through the internet. This eliminates the need for users to install and run applications on their own devices, as all the processing power and storage are provided by the cloud service provider.
One of the key advantages of using a Software Service Store to generate a cloud device app is the ease of development and deployment. These stores provide a platform where developers can create, test, and distribute their applications without the need for complex infrastructure setup. This significantly reduces the time and effort required to bring an app to market, allowing developers to focus on creating innovative and user-friendly solutions.
Furthermore, the Software Service Store model offers a wide range of tools and resources to support app development. These stores often provide software development kits (SDKs), libraries, and APIs that enable developers to integrate various functionalities into their apps, such as data storage, authentication, and real-time communication. This not only speeds up the development process but also enhances the functionality and user experience of the app.
In addition to the development benefits, the market for generating cloud device apps using a Software Service Store is also driven by the increasing demand for cloud-based solutions. Businesses of all sizes are recognizing the advantages of moving their applications and data to the cloud, including cost savings, scalability, and improved accessibility. By leveraging a Software Service Store, businesses can easily create and deploy cloud device apps that meet their specific needs, without the need for significant upfront investments in infrastructure and resources.
Moreover, the market for cloud device apps is not limited to businesses alone. Individuals are also increasingly relying on cloud-based applications for personal use, such as file storage, document editing, and media streaming. The convenience and flexibility offered by cloud device apps make them an attractive option for individuals who want to access their data and applications from any device, anywhere, and at any time.
As the market for generating cloud device apps using a Software Service Store continues to grow, it is important for developers and businesses to stay updated with the latest trends and technologies. This includes keeping up with advancements in cloud computing, such as serverless architectures, artificial intelligence, and machine learning, which can further enhance the capabilities and performance of cloud device apps.
In conclusion, the market for generating a cloud device app using a Software Service Store is expanding rapidly, driven by the increasing demand for cloud-based solutions and the ease of development and deployment offered by these stores. Businesses and individuals alike are recognizing the benefits of cloud computing, including cost savings, scalability, and improved accessibility. As the market continues to evolve, developers and businesses must stay ahead of the curve to leverage the full potential of cloud device apps and meet the ever-growing demands of the market.
The Rapyuta Robotics Co Ltd invention works as follows
A system and method for generating and deploying a cloud device app has been described. To generate the cloud application, a selected software service from a store of software services is first chosen. Then, a composition pattern for creating a cloud-based device application that includes the software service is selected. A composition pattern is used to generate an instance of a software service and deploy it at the cloud and on one or more devices. Then, an instance of application is created and bound to this deployed instance of software service. The instance of the app bound to the deployed software service instance is then deployed to the cloud, and to one or more devices.
Background for Generate a cloud device app using a Software Service Store
Cloud computing and robots are two fields that have grown rapidly in the past decade. Cloud computing is the delivery of computing over a cloud. Cloud computing enables a business to scale easily by using the elastic computing resources that are available on the cloud. Robotics is the study of robot design, construction, use, and operation. It also includes the interaction of robots with computers for feedback, control, and information processing.
Both technologies offer different benefits. Cloud robotics is a new field that tries to apply cloud technologies to the field of robots. Cloud robotics solution providers would need both robotics and cloud services to generate cloud robotics applications for end users and a platform to allow them to deploy the application on the cloud or robot/device. There is therefore a requirement to create a collaborative environment which allows cloud robotics solutions providers to generate complex robotics applications using re-usable device or cloud services from cloud developers and device manufacturers, and to deploy and provision cloud device applications at the cloud.
This document describes “embodiments” of techniques for generating cloud device applications using software service stores. The term ‘one embodiment’, ‘this embodiment? and similar phrases are used throughout this specification. Similar phrases mean that the feature, structure or characteristic described with respect to the embodiment is present in at least one embodiment. The appearance of these phrases at different places in this specification does not necessarily refer to the same embodiment. The particular features, characteristics, or structures may also be combined in any way suitable in one or several embodiments.
Connecting robots and devices to cloud computing allows robots and devices to offload heavy computations to the cloud. It is helpful for reducing weight and improving computation performance. As discussed above, despite the many advantages of cloud-connected robots, connecting devices or robots through the cloud can be extremely complicated.
The cloud device system proposed provides on-demand access a pool of shared software (platforms and applications) that can quickly provisioned and released without requiring much management effort. Cloud device system allows robotics and cloud developers to add reusable software to the pool of shared software services.
A cloud-device app is an application which executes on the cloud, and/or at one or more devices in order to perform a specific action. A cloud device application could be, for example, an orthomap-generation application that runs on the cloud as well as an unmanned aerial vehicles (UAVs) (device). The orthomap application is executed on the UAV to capture images and video using the UAV’s camera. The application sends captured videos and images to the cloud. The orthomap app then executes in the cloud, generating an orthomap using the captured images.
A device” is a physical object or entity with a unique identification and the ability to transmit data. In one embodiment, the device can be referred to as a “thing”. In the Internet of Things, a thing is a physical object that has identifiers and embedded systems. In the IoT context a thing is an entity or physical item that has an embedded system and can transfer data across a network. These devices may include physical devices, home appliances, vehicles, edge devices, fog devices, etc. Robots can also be included in the device to perform sensing and actuation along with other functionalities. Clouds are a collection configurable resources and services which can be quickly provisioned over a network (Internet, for instance) with minimal management. Cloud computing provides computing power, storage and other IT resources.
FIG. According to one embodiment, FIG. 1 is an exemplary block diagram showing a process 100 for generating and provisioning a cloud device app. The cloud device system provides a store of software services 104, which is a collection of software services that are categorized, tagged and rated by users. For example, there are software services 106 to 110. Software services are reusable services that provide one or more device and/or cloud related functionalities. Software services 106-110, for example, may include navigation (device-specific service), mapping (device-specific service), datastore (cloud service), messaging (cloud service), caching (cloud service), etc. In one embodiment, a software service may be a web-based service that exposes endpoints using web protocols (i.e. name, protocol and port). A software service can have any or all of the following characteristics:
a. “Code reuse: Software that can be reused;
b. Usage Policy for using the Service; and
c. Address to discover the service.
In one embodiment, software services 106 to 110 at the store of software services 104 can be reused, i.e. the services can be used for different cloud device apps and they can be provisioned and deployed on any device, cloud or third-party solution provider. Cloud device system 102 allows user 112 add 114 software service 106-110 into the software store 104. The user 114 can be a developer of cloud or device software who is able to write reusable services. The user 112 can also specify a set exposed parameters as well as exposed network endpoints when adding 114 software services 106 to software service store. The software services 106 – 110 expose parameters to other software services or applications to enable them to access the application service. Exposed parameters for a software service that provides a database may include username, database store, and password. When an application or service chooses the database service, the variables username, password and database store of the cloud database where the database service is deployed are retrieved.
The exposed networks endpoints of a software services are web service endpoints to access a service and retrieve exposed parameters, as well as data values that correspond to the parameters exposed when the software service has been deployed. In one embodiment, exposed network endpoints are protocol, port and service name. The supported protocols may include, for example, Secure TCP (TLS/SNI), HTTP/Websocket, and HTTPS/Websocket-Secure and UDP.
In one embodiment of the cloud device system, the cloud service provider 116 can also generate 118 an application for a cloud-based device 120 by selecting one or more reusable software services added to the store of software services 104. These services are dependent on the application. As shown in FIG. “1. The software service 106 has been selected and is included in the application.
In one embodiment, software services 106 to 110 at the store of software services 104 can be reused, i.e. the services can be used for different cloud device apps and they can be provisioned and deployed on any device, cloud or third-party solution provider. Cloud device system 102 permits a user to add 114 different software services to the software store 104. The user 112 could be a developer of cloud or device software who can create reusable software services. The user 112 can also specify a set exposed parameters for the software 106-110 when adding them 114 to the software service store 104. The software services 106 – 110 expose parameters to other software services or applications to enable them to access the application service. Exposed parameters for a software service that provides a database may include username, database store, and password. When an application or service chooses the database service, the variables username, password and database store of the cloud database where the database service is deployed are retrieved.
Binding is the process of retrieving values for the parameters and network endpoints exposed by the software service instance deployed 106, and injecting these values and parameters into an instance of application 120. The binding operation allows an application to use and access data values associated with the selected software services. Binding completes provisioning for the cloud device app 120. “Provisioning is the act of supplying parameters to an application, such as credentials, licenses, permissions, etc. that are needed for the application to be executed.
For instance, consider a robot_management service that selects the temperature sensor service in order to measure room temperature. The temperature sensor service exposes a network endpoint (which includes the port as well) and a parameter, ROOM_TEMPERATURE. In this scenario, the cloud device system creates and deploys a temperature sensor service instance to a sensor. The sensor is used to retrieve the ROOM_TEMPERATURE value and parameter. The binding operation is carried out by inserting the exposed endpoint of the network, the exposed parameter of ROOM_TEMPERATURE, and the value of the temperature service instance into the robot_management application instance. The robot_management application can access the ROOM_TEMPERATURE and measure room temperature values based on the binding operation. This is done by using the exposed endpoint network HOST_AND_PORT. The robot_management service bound to the temperature sensors can be deployed in the cloud. In this scenario, the robot_management app can access and share room temperature values determined by the temperature service dependent required to determine whether the robot is able to work outside at the determined temperatures.
The cloud device systems 102 allow the cloud solution provider 116 also to deploy 124 a cloud device application 120 on a device 126 or cloud 128. FIG. shows only one device for simplicity. The cloud device application 120 is deployable on any number devices. A software service instance 106 must be deployed on the device 126 or cloud 128 before the cloud device 120 can be deployed. Binding the exposed parameters, parameter value, and exposed service point from the deployed instance is done to an application instance 120. “The application 120 that is bound to the software service instance 106 deployed in the cloud 128 or device 126 is then deployed.
The current disclosure provides a solution for cloud robotics, cloud device systems and cloud robotics by allowing cloud device solution providers to build cloud device applications using reusable software services. The device service store allows for the control of deployment and provisioning the cloud device applications and managing instantiation cycles of different services.
FIG. According to one embodiment, FIG. 2 is a screenshot of an example cloud device system user-interface (UI) 200 for defining an application or software services. In one embodiment, the developer selects a?add new services? In one embodiment, the developer selects an “add new service” tab (not shown), which opens a “add new service” Form 202 to add a new software application or service. The user enters the name 204, the version 206 and the description 208 for the software service or application at the form. The user can also define the runtime of the software or application. The runtime of an application or software services determines whether it is executed on the cloud or the device. If the runtime parameter has not been selected, the software service may be deployed to the cloud and/or the device depending on whether the runtime (cloud/device) is selected at the deployment time.
The form 202 includes a section 212 for selecting a service in the software store that will be added to the application. The software service to be chosen for the application is identified by a name 214, and a service ID 216. The form 202 allows the user to also identify parameters 218 for the software service selected. The form allows the user to identify exposed parameters 220 by using the parameter name (222) and the name (224) by which it is exposed.
Click here to view the patent on Google Patents.
Leave a Reply