WO2021244644A1 - 动态整合应用程序的方法及其软件系统与机器 - Google Patents

动态整合应用程序的方法及其软件系统与机器 Download PDF

Info

Publication number
WO2021244644A1
WO2021244644A1 PCT/CN2021/098402 CN2021098402W WO2021244644A1 WO 2021244644 A1 WO2021244644 A1 WO 2021244644A1 CN 2021098402 W CN2021098402 W CN 2021098402W WO 2021244644 A1 WO2021244644 A1 WO 2021244644A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
executable
volatile
software
content
Prior art date
Application number
PCT/CN2021/098402
Other languages
English (en)
French (fr)
Inventor
林俊孝
Original Assignee
林俊孝
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 林俊孝 filed Critical 林俊孝
Priority to US18/008,322 priority Critical patent/US20230205503A1/en
Priority to CN202180040163.0A priority patent/CN115867891A/zh
Publication of WO2021244644A1 publication Critical patent/WO2021244644A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • This application relates to the technical field of application programs, in particular to a method for dynamically integrating applications and software systems and machines that use the method, and more specifically, a software system that enables a software system to be installed or introduced without first installing or introducing a software system.
  • a volatile application program you can dynamically install the volatile application program, dynamically load and run the volatile application program, and dynamically import the volatile application program in the software system. And it can dynamically generate a super application (super app) and/or an effective method of the operating environment of an Internet of Things control center, as well as software systems and machines using the method.
  • the development of the information technology industry is differentiated in terms of product types.
  • the application ecology is mainly promoted by two different types of software companies. One is to provide an operating system and/or software platform.
  • the main business system supplier and the other is the service provider providing application programs (App) as the main business.
  • App application programs
  • the operating system and/or software platform provided by the "system supplier” is like a portal, allowing users to manage and operate different data and tools through the portal.
  • the Android operating system Take the Android operating system as an example. After the mobile phone supplier pre-installs the Android operating system on the mobile phone, it is sold to users. After the phone is turned on, an operating environment provided by the Android operating system will be projected on the screen, allowing users to manage and operate files stored in the memory or memory card through the interface of the operating environment, as well as manage and Operate the applications installed in the operating environment; WeChat is another typical example.
  • App real-time communication services
  • the application programs provided by the "service provider" are used as a tool, and each application program is used to assist users in accessing and operating computing services in a specific field. For users, each application program will also be displayed on the screen during the execution period, providing a corresponding operating environment.
  • the difference between the operating system and the software platform is that the operating system and the software platform provide
  • the operating environment of is a universal environment; and the operating environment provided by the application is a limited environment.
  • the main design goal is to assist users in managing, accessing, driving, and operating a variety of different resources in the same operating environment, and the resources include a variety of different data and Many different applications (tools).
  • the application its main design goal is to provide a specific purpose computing service and/or operation process to meet the specific needs of the user.
  • System suppliers provide a variety of application programming interfaces and software development kits on operating systems and software platforms, so that service providers can quickly develop and complete a variety of applications for specific purposes.
  • Service providers in the industry have developed a large number of applications for various fields and purposes, which also allows the functions of the operating system and software platform to be greatly expanded through the installation of applications, and users can also use the operating system and/or In the same operating environment provided by the software platform, a large number of different data and tools are managed and operated to provide work efficiency, thereby forming an application ecological development cycle.
  • the system provider can install the application programs provided by the service provider only after the user's consent and the user's authorization.
  • the main reason is that malicious applications can exist in the operating system and/or software platform for a long time after installation, and become resident programs that leak user data. Therefore, this limitation is mainly due to information security considerations. Restrictions make it impossible for service providers to realize the ability to provide users with automated provisioning (auto-provision) applications. In real life, in many different situations, when a service provider releases an application, information security considerations can be ignored. For example, a service provider develops a job management system for its global employees.
  • the service provider will hope that upon completion of the deployment, it will be able to dynamically install and automate the work management system on the desktop computers, mobile phones, or laptops of its employees around the world.
  • the required application state (application state) is actively configured in the executable object, so that each employee can directly open the executable object on the operating interface to execute the work management system, not only Using the traditional method, the information department sends an easily overlooked email to each employee’s email mailbox; among them, the email is used to notify employees that the work management system is online and ask employees to passively install it Notification mail.
  • An executable object refers to an executable entity that can be installed in an operating system and/or software platform; where the executable object is generated according to a data model of an application unit , When the executable object is installed on the operating system and/or the software platform, it will become an executable entity compatible with the operating system and/or the software platform, and the operating system and/or the software platform can be effective Recognize that the executable entity is an application (App), and provide it with process management (process management), memory management (memory management), storage management (storage management), and any resource for the application (App) The designed authority management mechanism.
  • applications can be divided into two different types.
  • One can be regarded as a non-volatile application program, and the other is a volatile application program. program).
  • the operating mode of a non-volatile application program is that the executable program block of the application program is completely stored in the storage space corresponding to the operating system and/or the software platform.
  • the executable program block that is, the startup program of the non-volatile application
  • OS process system process
  • the executable program block of the application will continue to be stored in the storage space; among them, the non-volatile application is represented by the native application, and the startup program is For its related executable program block.
  • the operation mode of a volatile application program is to store the executable program block of the application program in an external machine.
  • the external machine and the machine running the operating system and/or the software platform are different machines.
  • the system and/or the software platform needs to execute the application, it dynamically loads the executable program block of the application (that is, the startup program of the volatile application) from the external machine to a system process (OS process)
  • OS process system process
  • part of the executable program block content of the application program may be It is cached in a cache to improve the efficiency of dynamic loading during the next execution; among them, volatile applications are web front-end applications and progressive web applications (Progressive Web Applications), And real-time application (Instant App) as a representative, and its startup program is its related executable program block.
  • volatile applications are far more secure than non-volatile applications.
  • the main reason is that the volatile application program does not need to store a complete executable program block in the storage space of the operating system and/or the software platform, so it is not easy to run secretly in the background of the system.
  • volatile applications essentially reduce information security concerns, the executable program blocks of volatile applications are mainly deployed in external machines and cannot be installed in the operating environment of every employee. Therefore, This makes the automatic configuration of volatile applications difficult to achieve effectively.
  • web front-end applications are all implementations of the "volatile applications" mentioned in this application.
  • progressive web applications Progressive Web Applications
  • real-time applications Instant App
  • any operating environment of any operating system and/or software platform can dynamically load and run a web front-end application through a browser or WebView.
  • the service provider cannot perform this operation.
  • an executable object is dynamically installed for the Web front-end application for user operation.
  • a real-time application is a volatile application developed with a technical architecture of a native application.
  • an Android real-time application is an implementation method of a real-time application.
  • Each Android real-time application corresponds to a network address.
  • the service provider shares the network address to a user’s Android operating environment
  • the Android real-time application can be dynamically loaded and run on the Android
  • the service provider cannot dynamically install an executable object for the Android real-time application in the Android operating environment for the user to operate; among them, the relevant implementation methods of the Android real-time application can be referred to "Https://heartbeat.fritz.ai/create-an-instant-app-using-android-app-bundle-e36d321dcd56".
  • a progressive web application is another implementation of a volatile application, which itself is also a web front-end application.
  • a progressive web application can be installed into an operating environment of the operating system via the browser or online application store with the user’s consent, and in the operating environment Provide an executable object for users to operate.
  • its dynamic installation can only passively rely on third-party software to execute.
  • One way is to use a browser (third-party software) in the operating environment of the user in an operating system. After dynamically loading and running a progressive web application, the browser provides an executable object for the progressive web application and installs it in the operating environment of the operating system.
  • Another way is for the user to use an online application Program store, after searching for the progressive web application, an executable object of the progressive web application is downloaded from the online application store and installed in the operating environment of the operating system.
  • the service provider cannot actively install the progressive web application to the operating system through any method, which is the progressive web application Provide an executable object to the operating environment of the operating system, and furthermore, it is impossible to actively configure the customized application state in the executable object; among them, the relevant implementation of the progressive web application can be referred to "Https://vaadin.com/learn/tutorials/learn-pwa/turn-website-into-a-pwa".
  • the operating environment of the system supplier and the application program of the service provider can only develop independently in the system integration of most operating procedures.
  • the work flow of the application program cannot be dynamically imported into the operating environment of the operating system and/or software platform, and the operating environment of the operating system and/or software platform cannot be effectively implemented as a driving environment for the application state engine, resulting in every A service provider must repeatedly develop many identical or equal management tools for the same or similar operating procedures in the applications it provides; at the same time, this also makes each user have to be forced to use different applications Here, operate the same or equal work flow; further, this also makes it difficult to effectively implement the data collection work. Among them, the most important reason is that even if the user operates the same or equal work flow, the resulting The data is scattered in different applications and cannot be concentrated in a unified operating environment.
  • the management tool In the operating environment of modern smart phone operating systems, there is a built-in management tool for storing, managing, and operating call records, and in the operating interface of the management tool, there is also an operating interface for each call record. , Provides a callback design.
  • the management tool can only manage the call records generated by the telecommunications network or the SIP network, and cannot allow various third parties
  • the operation process of the call service is directly imported into the management tool, especially when the third-party call service itself is a volatile application, or the third-party call service has not performed the callback function and the operating environment.
  • any form of integration even when the third-party call service is basically completed by a customized communication protocol, without any form of integration, the communication protocol is incompatible, and/or the third-party communication service is a volatile In the case of a sex application, the operation process of the third-party call service cannot be dynamically imported into the operating environment of the mobile phone.
  • Some software controllers are native The technical architecture of the application is developed, and some software controllers are provided to users in the form of Web front-end applications, so that users can manage and monitor the corresponding connected devices.
  • the standards are not unified, Different connected devices, different equipment providers, and different application technology architectures have led to many different types of software controllers, which have brought challenges to the system integration work, so that the development of the Internet of Things has never been able to allow
  • the user completes the configuration of the software controller for IoT devices with different technical architectures provided by different manufacturers in the surrounding complex environment.
  • the user can use the management platform of the equipment provider to quickly
  • the connected devices in the surrounding environment are configured.
  • the management platforms provided by different equipment providers can be used to complete all the configuration work. Even the connected equipment of the same nature will be managed and monitored due to the different equipment providers. And/or the drive of the work process is scattered among different management platforms.
  • the purpose of this application is to provide a method for dynamically integrating application programs and a software system and machine using the method. Allow a software system and/or machine to dynamically install the volatile application program and dynamically load and run the volatile application program in the software system and/or machine without first installing or introducing a volatile application program It can dynamically generate a super app and/or an operating environment of an Internet of Things control center.
  • this application provides a method for dynamically installing a volatile application in a software system, including: providing an installation module in a software system, where the installation module is received by an auto-provisioning engine (auto-provisioning engine) When a dynamic installation request is made, an import process is initiated.
  • auto-provisioning engine auto-provisioning engine
  • an executable object for a user to execute is installed in the software system; wherein, the executable object and a volatile application program There is a binding relationship between them, and the binding relationship is completed by binding a metadata of the volatile application and/or an access link of the metadata to the executable object; and in the software
  • the system dynamically loads and runs the volatile application; wherein, the location of the startup program of the volatile application is determined by at least one content of the metadata ( position).
  • the volatile application is a Web system, a native application, or any software service that can be dynamically loaded and run; wherein, the dynamic loading and running of the volatile application is This is done by dynamically loading and executing the startup procedure of the volatile application program.
  • At least one content of the metadata includes a network address, and the content of the network address includes the location of the startup program of the volatile application; and/or the metadata of the volatile application
  • the at least one content of contains at least one code, and the at least one code is used to determine (locate) the location of the startup program of the volatile application program.
  • the content of the dynamic installation request includes the executable object, the access link of the executable object, the metadata, and/or the access link of the metadata; wherein, the executable The access link of the object and the access link of the metadata are instances of a uniform resource identifier (Uniform Resource Identifier) or an application programming interface (Application Programming Interface).
  • a uniform resource identifier Uniform Resource Identifier
  • an application programming interface Application Programming Interface
  • the executable object is a pre-generated executable object, or the executable object is an executable object dynamically generated during the runtime of the software system and the installation module .
  • the dynamic installation request is issued by the auto-provisioning engine to drive the installation module to install the executable object to the software system, which is the volatile application Complete the work of auto-provision;
  • the auto-provision engine is a network service, a detection program, an application program, or a projected workspace;
  • the network service is the software system External network services running on different machines, the detection program is a software module executed in the software system, the application program is a volatile application program that is dynamically loaded and running in the software system, and the projected workspace It is a projectable workspace that is dynamically loaded and runs in the software system.
  • a bound content associated with the executable object is the original content of the metadata, part of the content of the metadata, or the content obtained after reorganizing the original content of the metadata ;
  • the binding relationship is completed by binding the binding content and/or the access link of the binding content to the executable object.
  • the binding content is used to represent The data reference of this metadata.
  • the executable object is generated according to a data model of an application program unit.
  • the executable object When the executable object is installed in the software system, it will become an executable entity compatible with the software system. (executable entity); wherein the executable entity is displayed on the operating interface for the user to open during the execution period of the software system.
  • the execution request is triggered to dynamically load and run the executable entity.
  • the volatile application corresponding to the execution entity.
  • the content of the execution request includes the bound content and/or the access link of the bound content
  • the volatile application is dynamically loaded by an activation module according to the content of the execution request Run; wherein, the startup module is an independently running application or a software component that can dynamically load and run a heterogeneous system.
  • the volatile application when the volatile application is not compatible with the operating environment of the software system, the volatile application is driven by an adapter (Adapter), which is provided by the converter and the operating environment of the software system.
  • Adapter an interface implementation compatible with the operating environment of the software system; wherein the converter is provided by the executable object, the startup module, the software system, and/or another software module triggered to execute by the startup module.
  • a state is set to the volatile application in the form of a parameter, and the volatile application is set to execute according to the state.
  • a method for dynamically importing a work flow in a software system includes: providing an activation module in a software system, and when the activation module receives an execution request, it is based on the content of the execution request.
  • Execute an application program where the application program is a native application program installed in the software system, or the application program is a volatile application program that needs to be dynamically loaded and run; an import module is provided in the software system, When the import module receives an executable state (Executable State) sent by the application, it starts a dynamic import process.
  • executable state Executable State
  • the dynamic import process stores an operable object for a user to operate in A management module, and establishes a binding relationship between the executable state and an executable event of the operable object; and when the executable event is triggered by the user, another execution request for executing the executable state Will be issued, and a corresponding volatile application program will be dynamically loaded and run to execute the executable state.
  • At least one content of the metadata of the volatile application when the application is a volatile application, at least one content of the metadata of the volatile application includes a network address, and the content of the network address includes the volatile application And/or when the application is a volatile application, at least one content of the metadata of the volatile application includes at least one code, and the at least one code is used to determine (locate) the output The location of the launcher of this volatile application.
  • the application when the execution request is issued in response to the opening of an executable object, the application is a volatile application.
  • the application when the execution request is issued in response to an execution in an executable state, the application is a volatile application; wherein, the content of the execution request is based on the executable state Generated by the content, the content in the executable state includes a bound content and/or an access link to the bound content; the bound content is the original content and metadata of a metadata of the volatile application Part of the content, or the content obtained after reforming the original content of the metadata; the activation module determines (locates) the location of the activation program of the volatile application based on the content of the execution request The location of the startup program is used to dynamically load and run the volatile application.
  • the operable object is generated according to a data model of an information unit.
  • the operable object When the operable object is stored in the management module, it will become compatible with the software system or at least in the software system.
  • An operable entity of a software module wherein the operable entity will be displayed on an operating interface for the user to operate during the execution period of the software system or the at least one software module, and the user triggers
  • the executable event is bound to the executable state
  • the corresponding volatile application is dynamically loaded and run; wherein, the import module completes the dynamic import of a work flow through the import of at least one executable state.
  • the binding relationship between the executable state and the executable event is completed by binding at least one content of the executable state to the operable object or the executable event
  • the executable event When the executable event is triggered, generate and issue the other execution request according to the content of the executable state, and then dynamically load and run the corresponding volatile application to execute the executable state; wherein, the executable state
  • the execution event is dynamically added to the operable entity according to at least one piece of information of the executable state.
  • a state setting is passed in as a parameter to the corresponding volatile application, and the corresponding volatile application
  • the program adjusts the internal application state (application state) during the execution period according to the state setting; the state setting is a system environment configuration, application configuration, and/or customized application state.
  • the software system includes: an installation module, used to execute an executable when the installation module receives a dynamic installation request sent by an auto-provisioning engine (auto-provisioning engine)
  • the object is installed in the software system; and/or an import module for storing an operable object bound to the executable state when the import module receives an executable state issued by an application program A management module; wherein, when the executable object or the executable state is executed or triggered, a corresponding execution request is issued, and a corresponding volatile application is dynamically loaded and run through a startup module to complete the execution ask.
  • the software system dynamically installs volatile applications from a plurality of different information sources into it through the installation module; wherein, the dynamic installation of the volatile application is through at least The installation of an executable object is completed.
  • the software system dynamically imports different operating procedures supported by at least one application program into it through the import module; wherein, the dynamic import of the different operating procedures is performed through at least one The import of the executable state is completed.
  • a machine for dynamically integrating applications includes, for example, an auto-provisioning engine for detecting at least one connected device in a network, and Configuring at least one executable object corresponding to the at least one networked device to a software system; wherein the software system displays the at least one executable object on a user interface for the user to operate,
  • the user opens an executable object corresponding to a networked device on the operating interface, a volatile application program bound to the executable object is dynamically loaded and run, and the volatile application program manages, operates, and Monitor and/or control the services provided by the networked device; and/or an import module for receiving an executable state issued by an application program and binding an operable state to the executable state
  • the object is stored in a management module; wherein the import module is used to complete the dynamic import of the work flow for at least one application.
  • the networked device is an Internet of Things device, a commercial software appliance (commercial software appliance), and/or any hardware device or software appliance capable of providing information services (software appliance). ).
  • the binding relationship is achieved by binding at least one content of the metadata of the networked device
  • the executable object is completed; wherein, at least one content of the metadata of the connected device includes the product name, brand name, domain name (Domain Name), and/or IP address (IP Address) of the connected device.
  • the volatile application program is a software controller of the networked device; wherein, the dynamic installation of the volatile application program is completed through the installation of the executable object.
  • the dynamic import of the operation flow is completed by importing at least one executable state.
  • the machine is a user equipment, and the software system runs on the user equipment.
  • the volatile application is a software controller of the networked device. After the software controller is dynamically loaded to run on the user device, it controls at least one of the networked devices The instruction is directly transmitted from the user equipment to the networked equipment.
  • the machine is a server
  • the software system runs on a user equipment
  • the software system has the ability to connect to the server and send instructions or requests to the server.
  • the volatile application is a software controller of the networked device.
  • the software controller After the software controller is dynamically loaded to run on the user device, it controls at least one of the networked devices
  • the instruction is transmitted to the server, it is forwarded to the networked device by the server using a communication protocol compatible with the networked device, or the at least one control instruction is directly transmitted from the user device to the networked device.
  • Figure 1 is a schematic diagram of metadata of a volatile application.
  • Figure 2 is a schematic diagram of the operational concept of dynamically loading and running a volatile application program.
  • Figure 3 is a schematic diagram of the basic operation flow of a startup module.
  • Figure 4 is a schematic diagram of the implementation concept of a startup module.
  • Figure 5 is a schematic diagram of the basic operation flow of an executable object and an operable object.
  • Fig. 6 is a schematic diagram of the executable state of a volatile application.
  • FIG. 7 is a schematic diagram of binding the metadata/executable state of a volatile application to an executable object and an operable object.
  • Fig. 8 is a schematic diagram of another implementation concept of an executable object and an operable object.
  • Figure 9 is a conceptual diagram of the implementation of a metadata conversion program.
  • FIG. 10 is a schematic diagram of another process of the method for dynamically installing a volatile application program in a software system according to the present application.
  • Figure 11 is a schematic diagram of resource allocation of a volatile application.
  • FIG. 12 is a conceptual diagram expressing the operation path of the dynamic installation process of volatile applications.
  • Figure 13 is a schematic diagram of a network configuration for dynamically installing volatile applications.
  • FIG. 14 is a schematic flowchart of another method for dynamically importing a work flow method into a software system according to this application.
  • FIG. 15 is a schematic diagram of the operation flow of a voice communication.
  • FIG. 16 is a conceptual diagram expressing the operation path of a dynamic import process of a work process.
  • FIG. 17 is a schematic diagram of another implementation concept of a software system for dynamically integrating volatile applications.
  • FIG. 18 is a schematic diagram of another implementation concept of a machine that can dynamically integrate software controllers of different networked devices.
  • FIG. 19 is a conceptual diagram of an operating path for dynamically importing an executable state of a networked device.
  • Air-conditioning control APP volatile application
  • L1 A software module used to dynamically load and run volatile applications
  • O31 APP configuration file (executable object)
  • O32 APP configuration file (executable object)
  • O33 APP launcher (executable object)
  • the "volatile application” mentioned in this application is also an application, which can include a web front-end application, a progressive web application, and an instant application. App), or any software service that can be dynamically loaded and run.
  • the "software system” mentioned in this application may include a software platform, an operating system, or any software system that can be expanded by a program.
  • the "software module” mentioned in this application may include a category library, object entity, software component, software agent, application program, or any one that can be internally created, installed, introduced, generated, expanded and/or The program blocks running in the "software system” described in this application are dynamically loaded and run.
  • the "metadata of a volatile application” described in this application may include an object entity generated using a markup language and/or according to a structured protocol, and the markup language and/or the structured protocol
  • the use of is used to describe at least one attribute of a volatile application, including the volatile application’s APP name, APP icon, function description, location of the startup program, domain name, and/or provider Information and other attributes; where the object entity includes an HTTP Header, a JSON object entity, an XML object entity, or an XML file.
  • the implementation of volatile applications, software systems, software modules, and metadata of volatile applications are not limited to the foregoing.
  • the "connected device” mentioned in this application may include an Internet of Things device, commercial software appliance, virtual machine (virtual appliance), and/or any hardware device capable of providing information services Or software appliance; among them, the definition of IoT devices can refer to: “https://www.arm.com/glossary/iot-devices", and the definition of software appliances can refer to: “https://en. wikipedia.org/wiki/Software_appliance”.
  • the "volatile application” mentioned in this application refers to a software service that can be dynamically loaded and run via a network address.
  • It can be a software service that is not integrated with an external system but can run independently, or It can be a software service used to manage, operate, monitor and/or control a networked device, network communication system or workflow management system service, but is not limited to the above; among them, the software service is deployment, storage, Or published on an external server, the external server can be a Web server, cloud storage server, online application store server, or any kind of computing device, Internet of Things device or software device capable of connecting to the Internet; wherein, the The external server and the machine where the "software system” and "software module” described in this application are located are different computing devices.
  • the startup program of the volatile application program does not need to be installed or introduced into the machine running the "software system” and "software module” mentioned in this application.
  • the service of the volatile application can only be operated after the volatile application is dynamically loaded and run from the external server via the network address; among them, in order to improve the efficiency of dynamic loading,
  • the volatile application can be stored in a cache.
  • the volatile application can be dynamically loaded from the storage medium of the cache to improve efficiency.
  • the cache ( Cache) design can refer to: "https://en.wikipedia.org/wiki/Cache_(computing)"; among them, the startup program of the volatile application is its executable program block.
  • “Dynamic loading and running a volatile application” refers to “dynamically loading the executable program block of the volatile application and starting it to execute the volatile application”.
  • executable object refers to an executable entity that can be installed in a software system; where the executable object is based on an application supported by the software system The data model of the program unit is generated. After the executable object is installed in the software system, it will become an executable entity compatible with the software system.
  • the software system can effectively identify the resource type of the executable entity based on the data model of the application unit, thereby identifying it as an application (App) and providing it with a corresponding management mechanism, for example In other words: provide it with process management, memory management, storage management, and/or any resource management mechanism designed for applications (App); among them, the During the execution period of the software system, the executable entity is displayed on an operating interface in the form of an application program (App) for the user to open.
  • App application program
  • the executable entity corresponds to A volatile application program will be dynamically loaded and run; wherein, when the volatile application program is not compatible with the operating environment of the software system, the executable entity can be executed through an adapter (Adapter) Drive the volatile application; among them, the data model of the application unit is a general data model, including the controller of the networked device, the portal of network communication activities, and the client of the cloud service Software (client), or any software application (application software) that provides computing services is applicable; among them, the executable object is an App configuration file or App configuration object that can be installed in the software system, Or it is an App launcher, and the executable entity is an executable object generated by the software system on the operating interface according to the content of the executable object after the software system loads the executable object. , The implementation of executable objects is not limited to the above.
  • the "operable object" mentioned in this application refers to an operable entity that can be stored in a management module; where the management module is a software module in a software system, and the The operable object is generated based on a data model of the information unit supported by the management module. After the operable object is stored in the management module, it will become compatible with the software system or at least one software module in the software system.
  • an executable state bound to the executable event When an execution event is triggered by the user, an executable state bound to the executable event will be driven, and a volatile application corresponding to the executable state will be dynamically loaded and run; wherein, when the volatile When the application program is not compatible with the operating environment of the software system, the executable state can be driven by an Adapter when the volatile application program is executed; wherein, the information unit may be a network communication Active call records, monitoring records of a connected device, an activity reservation for a cloud service, or any information unit used to save the state of the operation process; wherein the executable state is an Event configuration file or Event configuration The form of the object is bound to the operable object; where the operable object is an information unit that can be stored in the management module, and the operable entity is the software system or at least one software module in the software system After loading the operable object, an operable object is generated on the operation interface according to the content of the operable object.
  • the implementation of operable objects is not limited to the above.
  • the "OS process” in this application refers to the process created by the operating system (Operating System) for loading, driving, starting, and/or executing a program; among them, the OS process ) Related technology can refer to: "https://en.wikipedia.org/wiki/Process_(computing)".
  • Figure 1 is a schematic diagram of metadata of a volatile application.
  • the basic attributes of the volatile application program A1 can be combined and generated as a metadata D1; wherein, the structured protocol is XML A data structure defined by a markup language.
  • the metadata D1 is an XML object entity generated based on the data structure; among them, the structured protocol defines five basic attributes for "volatile applications", including: communication Protocol ⁇ protocol>, domain ⁇ domain>, access point ⁇ access_point>, provider ⁇ provider>, and the location ⁇ location> of a launcher A2 of the volatile application A1.
  • the communication protocol of the volatile application A1 is "https"
  • the domain is "abc”
  • the access point is "/app”
  • the location of the launcher A2 is "https://abc” /app”.
  • the function of the metadata D1 is that when any software module receives the content of the metadata D1, it can read its content according to the specification of the structured protocol, and can determine (locate) the content that can be used according to its content.
  • the network address for dynamically loading and running the volatile application program A1, in this example, is the network address U1 "https://abc/app", that is, the location of the startup program A2 in the Internet.
  • the above-mentioned method of using XML data structure as a structured protocol for metadata is only a non-limiting embodiment adopted in this application, and the method of defining a data structure for metadata content is not limited to the above. Those who are familiar with the technology can make any equal design changes based on actual application requirements.
  • a software module When a software module receives the metadata content of a volatile application, it can take the following different methods to determine (locate) the network address that can be used to dynamically load and run the volatile application:
  • the metadata content contains the ⁇ location> attribute, since the content of the ⁇ location> attribute itself points to the network address that can be used to dynamically load and run the volatile application, it is directly based on the content of the ⁇ location> attribute Then the network address U1 can be determined (positioned).
  • the software module can be used to dynamically load and run according to the content of the ⁇ protocol>, ⁇ domain>, and ⁇ access_point> attributes of the metadata.
  • the network address of the volatile application including ⁇ protocol>, ⁇ domain>, and ⁇ access_point> are all codes that can be used to assemble the network address. Take the metadata D1 in Figure 1 as an example.
  • the combination method shown in 1 can determine (locate) the network address U1 that can be used to dynamically load and run the volatile application A1, that is, the content of ⁇ protocol> is the composition 5001 of the communication protocol in the network address U1;
  • the content of ⁇ domain> is the composition 5002 of the network domain in the network address U1;
  • the content of ⁇ access_point> is the composition 5003 of the resource access point in the network address U1.
  • the combination method is not limited to the embodiment of this application.
  • the embodiments used in the application are non-limiting embodiments, and those skilled in the art can make evenly altered designs according to requirements.
  • the metadata content contains only attribute content such as identifier ⁇ id>, provider ⁇ provider>, and access point ⁇ access_point>, then at least one content will be at least one that can be used as a query parameter
  • the code that is, the combination of the at least one code can be used to perform a query, and the network address that can be used to dynamically load and run the volatile application program is determined (located) through the query.
  • a registration service S1 registered for registering volatile applications is provided.
  • the registration service S1 is used to allow different service providers to use The network address of the volatile application provided by it is registered in the registration service S1; among them, when a service provider registers a volatile application, at least it needs to provide the name of the service provider and the volatile application The name of the access point of the program, and the data such as the network address used to dynamically load and run the volatile application.
  • the registration service S1 will provide an identifier ⁇ id> for the volatile application; ,
  • the registration service S1 provides an API, and any software module can query the registration service S1 through the API. When querying, only the identifier ⁇ id> and/or the service provider’s The name and the name of the access point of the volatile application.
  • the registration service S1 will return the network address of the volatile application to the software module that issued the query; wherein, the registration service S1 is An HTTP Server or any server that can be used for resource registration is implemented.
  • the registration service S1 is An HTTP Server or any server that can be used for resource registration is implemented.
  • the identifier ⁇ id>, and/or the name of the service provider ⁇ provider> and the access point name of the volatile application ⁇ access_point> can also be used to register the service S1
  • the query code so when the software module reads the identifier ⁇ id> and/or the attribute content of the provider ⁇ provider> and the access point ⁇ access_point> from the content of the metadata D1, it can use
  • the registration service S1 is inquired to determine (locate) the network address U1 that can be used to dynamically load and run the volatile application A1.
  • the REST URL is used to return the application programming interface (Application Programming Interface) of the network address U1, which means the software
  • the module can send an HTTP GET request to the REST URL to obtain from the response of the registration service S1 the network address U1 that can be used to dynamically load and run the volatile application A1; among them, for those familiar with software technology, REST URL is an instance of Unified Resource Identifier (Unified Resource Identifier), and can also be regarded as a REST API for resource reading.
  • Unified Resource Identifier Unified Resource Identifier
  • the above method of determining (locating) the network address of a volatile application based on the content of the metadata is only a non-limiting embodiment adopted in this application, and determining (locating) is based on the content of the metadata.
  • the method of generating the network address of the volatile application is not limited to the above, and those skilled in the art can make any equal design changes according to actual application requirements.
  • a service provider of a volatile application can store the metadata of the volatile application in a file system or database system connected to an HTTP Server, and
  • the HTTP Server provides an access link for the metadata in the form of a URI (Uniform Resource Identifier).
  • URI Uniform Resource Identifier
  • the HTTP Server will use the content of the metadata as Response data; in this way, any software program can read the metadata through the access link.
  • Figure 1 when the service provider of the volatile application A1 registers the network address of the volatile application A1 in the registration service S1, it can also simultaneously register the value of the volatile application A1.
  • the data D1 is registered in the registration service S1, and the registration service S1 provides the metadata D1 with an access link "https://volatile.apps/A3695" for reading the metadata D1; where, The "volatile.apps” in the access link is the domain of the registration service S1, and "A3695” is the identifier provided by the registration service S1 for the volatile application A1; with the access link, the volatile
  • the service provider of the sexual application A1 publishes and/or transmits the metadata D1
  • it does not need to directly publish and/or transmit the complete content of the metadata D1, but only needs to publish and/or transmit the access link
  • any software module receives the access link, it can read the complete content of the metadata D1 of the volatile application A1 from the registration service S1 through the access link.
  • the above-mentioned method of publishing or transmitting metadata of a volatile application program through an access link is only a non-limiting embodiment adopted in this application, and the implementation method of the access link is not Limited to the above, publish a piece of data on the Internet in the form of a resource, and use a URI (Uniform Resource Identifier) and/or API (application programming interface, such as REST API, Web Service, etc.)
  • URI Uniform Resource Identifier
  • API application programming interface, such as REST API, Web Service, etc.
  • a Web software platform that uses Web front-end technology to implement its operating environment, in its operating environment, can dynamically load and run a volatilization issued by an external domain through the HTML5 built-in framework (iFrame) Applications (for example: Web front-end applications and/or progressive web applications); and a software platform that uses Android application technology to implement its operating environment, in its operating environment, you can browse through WebView To complete the dynamic loading and running of web front-end applications, progressive web applications or Android real-time applications.
  • iFrame HTML5 built-in framework
  • service provision Businesses usually provide a software service with different compatible versions of volatile applications so that the software service can be dynamically loaded and run in all different types of software systems.
  • the service provider of the volatile application A1 can target different types of browsers, software platforms, or operating systems, and have different networks on the Internet.
  • the machine and/or different network domains provide various compatible versions of volatile applications for the software services to which the volatile application A1 belongs, and each version is pointed to by its own network address.
  • the network address used by the service provider of the volatile application A1 to dynamically load and run the volatile application A1 issued through the metadata D1 may be a network address pointing to a proxy server.
  • the software system When the software service to which the volatile application A1 belongs needs to be dynamically loaded in a software system, the software system will trigger a browser, WebView, or real-time application driver to submit the network address to the proxy server
  • An access request for example: an HTTP GET request with relevant information of the software system
  • the proxy server receives
  • the information contained in the access request for example: related information of the software system
  • the startup program A2 of the volatile application A1 in response to load balancing requirements, can also be published on different machines on the network, that is, in different machines , Both release the same version of the executable program block, and are pointed to by different network addresses.
  • the network address determined (located) based on the content of the metadata D1 can be directed to a proxy server first, and then the proxy server determines which network to redirect to based on the load information it has.
  • the dynamic loading efficiency of the application A1 is higher.
  • the startup program A2 of the volatile application A1 can be stored in a storage medium as a cache during the dynamic loading process, and the external fetch ( Cache) corresponds to the network address and/or the other network address used to dynamically load the startup program A2, so that in the subsequent dynamic loading work, the volatile application can be retrieved from the cache.
  • the startup program A2 of A1 is dynamically loaded to improve the efficiency of dynamic loading.
  • the above-mentioned method of reorienting the network address of volatile applications and improving the efficiency of dynamic loading is only a non-limiting embodiment adopted in this application, and reorienting the network address of volatile applications
  • the method of providing dynamic loading efficiency is not limited to the above, and those skilled in the art can make any equal design changes according to actual application requirements.
  • FIG. 2 is a schematic diagram of the operational concept of dynamically loading and running a volatile application program.
  • the basic operation flow of dynamically loading and running a volatile application program refers to the software system in one machine M1 (first machine M1), and one of the volatile application programs is loaded from another machine M2 (second machine M2). Start the program, and then in a system process (OS process) P1 on the machine M1, start and run the service provided by the volatile application. After the operation is completed, the startup program of the volatile application will follow directly It is eliminated at the end of the system stroke P1.
  • OS process system process
  • part of the content of the startup program can be cached in a cache (Cache), so that the next time the volatile application is dynamically loaded and run, it can be used to improve the efficiency of dynamic loading;
  • the startup program can be a related executable program block of a web front-end application and/or a progressive web application, a related executable program block of an Instant App, or any one that can be used to start the volatile application
  • the program block of the software service of the program can be a cache (Cache), so that the next time the volatile application is dynamically loaded and run, it can be used to improve the efficiency of dynamic loading;
  • the startup program can be a related executable program block of a web front-end application and/or a progressive web application, a related executable program block of an Instant App, or any one that can be used to start the volatile application
  • the program block of the software service of the program can be a related executable program block of a web front-end application and/or a progressive web application, a related executable program block of an Instant App
  • L1 is a software module used to dynamically load and run volatile applications, including browsers, WebView, HTML5 built-in framework (iFrame) and real-time application drivers.
  • the implementation provided by the software module L1 is not limited to the software modules that can be used to dynamically load and run volatile application programs, and those skilled in the art can make any equal design changes according to actual needs.
  • the software module L2 for dynamically loading and running a volatile application program dynamically loads a startup program of a volatile application program from the second machine M2 to the first machine M1 through a connection 50041,50042, and then the volatile application program
  • the startup procedure of the program performs a drive 5005 to start and run the volatile application program.
  • the following examples illustrate various methods of dynamically loading and running a volatile application (including web front-end applications and real-time applications) in a software system.
  • the first method is the dynamic loading method of the Web system.
  • the Web front-end application is developed with HTML/CSS/Javascript technology.
  • Deploy a web front-end application in a web server the web front-end application is a volatile application, and its related executable program block is the startup program of the volatile application (for example: multimedia resources, HTML, CSS) And/or Javascript and other program codes), after setting the network address of the web front-end application to "https://abc/app", the network address becomes the dynamic loading location of the web front-end application, and then,
  • the network address "https://abc/app" can be transferred through the HTML5 internal frame, WebView, or browser.
  • the corresponding Web front-end application is dynamically loaded and run; among them, HTML5 built-in framework, WebView and browser are the implementations of the software module L1 used to dynamically load and run the Web front-end application, in the HTML5 built-in framework, WebView and browser In the implementation, they all have the function of driving an HTML/CSS/Javascript software engine. In the same software system (for example: terminal operating system), each other can even share the same HTML/CSS/Javascript software engine.
  • the HTML5 built-in framework is an object entity generated through Web technology in the execution environment of the HTML/CSS/Javascript software engine itself;
  • the browser is an independent application program installed in a terminal operating system;
  • WebView is in the form of a software component, embedded in the man-machine interface of a native application, and provides the native application with the ability to dynamically load and run the web front-end application.
  • the browser and WebView are both adapters.
  • the terminal operating system and native applications can be used to dynamically Load and run the application and software components of a heterogeneous system (Web system); among them, the converter (for example: browser or WebView) used to dynamically load and run the heterogeneous system can be directly provided by the terminal operating system with built-in In the terminal operating system; or integrated into an executable object and/or a startup module, and provided by the executable object and/or the startup module itself; or a plug-and-play converter, by The user manually installs to the terminal operating system.
  • the converter for example: browser or WebView
  • the interface adaptation of the Web front-end application program and the terminal operating system/native application program, as well as the application of the browser and WebView in this application, are all non-limiting embodiments provided by this application for the adapter (Adapter), but not Not limited by this.
  • the role of the adapter is mainly to adapt applications with incompatible interface implementations to the operating environment
  • the method is to wrap the incompatible interface implementations with the interface implementations designed or supported by the operating environment; so that the applications with incompatible and compatible interface implementations can be used in the operating environment with the same Or equal interface to manage, drive, execute, and/or operate.
  • the conversion of the implementation of the interface refers to the adaptation to the user interface (User Interface), application programming interface (Application Programming Interface), and/or application binary interface (Application Binary Interface). Those who are familiar with this technology Any equal design changes can be made according to actual application requirements.
  • the startup module of the volatile application program.
  • the startup module can implement an interface for data transmission and docking in the operating environment, allowing the software platform or other software modules, applications in the operating system, or any other
  • the executed program block can trigger the interface when the web front-end application needs to be dynamically loaded and run, and pass an execution request to the startup module, so that the startup module is based on the content of the execution request .
  • the Web front-end application is dynamically loaded and run on the operating environment of the software platform or operating system; among them, various implementations of "triggering" and "data transmission docking" between different program blocks will be described later Provide further explanation.
  • the startup module When the startup module receives the execution request, first, the startup module needs to determine (locate) the network address that can be used to dynamically load and run the web front-end application from the content of the execution request. "https:// abc/app"; where, if the content of the execution request itself already contains the network address, the activation module can directly retrieve the network address from the content of the execution request; and, if the content of the execution request is a Configuration, and the content of the configuration contains the metadata of the Web front-end application, the startup module can refer to the method shown in Figure 1 to determine (locate) the network based on the metadata of the Web front-end application Address "https://abc/app"; in addition, if the content of the execution request is an access link to the metadata of the web front-end application, after the access link is obtained from the execution request, the module is started After obtaining the metadata of the web front-end application through the access link, the network address "https://abc/app" can be determined (located) based
  • the startup module can call java.awt.Desktop.browse("https:// abc/app”), start a browser, and pass the network address to the browser, the browser generates a sandbox environment (sandbox), and the Web front-end application is dynamically loaded and run in it.
  • the startup module can embed a WebView in its own application window, and after receiving the execution request and determining (locating) the network address "https://abc /app", the network address can be transferred to the WebView, and a sandbox environment (sandbox) is generated by the WebView, and the Web front-end application is dynamically loaded and run in it.
  • sandbox sandbox environment
  • the activation module itself can also be directly integrated into a browser in the form of a software component or an executable program block, and then install the browser to After the software platform or the operating system, for the software platform and the operating system, the browser itself becomes a startup module of a volatile application.
  • the browser receives the execution request, it determines (positioning) After the network address "https://abc/app" is output, the browser itself can directly generate a sandbox environment (sandbox), and dynamically load and run the web front-end application in it.
  • the second method is the dynamic loading method of native applications.
  • the Instant App of the Android operating system is a technology promoted by Google, which is designed to be an Android native application.
  • the program provides the ability to dynamically load and run, so that the Android real-time application can also become a volatile application.
  • the service provider can use Android application technology to develop an Android native application.
  • the relevant executable program block of the Android native application is prepared to be used as a startup program for a volatile application. Released to the outside world in the form of real-time applications.
  • the service provider puts the Android native application on the online application store, the service provider can set a network address for the relevant executable program block as its dynamic The loading location, after the release is complete, the software service provided by the Android native application becomes an Android real-time application that can be dynamically loaded and run; among them, for the introduction of Android real-time applications, please refer to "https://developer. android.com/topic/instant-apps/index.html".
  • the startup module can also be used in the operating environment of the mobile phone operating system.
  • the startup module receives an execution request for dynamic loading and running of the Android real-time application, and from the content of the execution request, determine (locate) that it can be used for dynamic loading and running
  • the implementation of the software module L1 of the real-time application, which drives the adb tool to start the command line command of the Android real-time application please refer to "adb shell am start-a android.intent.action.VIEW ⁇ -d" the dynamics of the Android real-time application Load location "", the way to execute a command line command can be done by
  • FIG. 3 is a schematic diagram of the basic operation flow of the activation module.
  • the "activation module” described in this application in its basic operation flow of dynamically loading and running a volatile application, first, send a trigger T0 to the activation module to submit a request 5006, and the purpose of the request 5006 is to pass in An execution request. After the activation module obtains the content of the execution request through a data transmission connection, an operation 5007 can be executed. According to the content of the execution request, the operation 5007 determines (locates) that it can be used to dynamically load and run the volatilization. Then, the activation module submits another request 5008 through another trigger T1. The purpose of the other request 5008 is to transmit the network address to another software module or a software engine. Drive the other software module or the software engine to dynamically load and run the volatile application program in it; wherein, the method of "triggering" and “data transmission docking” will be further explained later.
  • the activation module implements a data transmission interface to receive the notification of the trigger T0 and the content of the execution request.
  • the trigger T0 and the execution request can be issued by different sources. Now introduce several different The source is as follows:
  • the execution request can be issued in response to an executable event of an operable object being triggered by a user; wherein the operable object is displayed in the form of an operable entity on an operating interface for the user to operate ,
  • a program block responsible for processing the executable event can be provided through the activation module
  • the interface sends the trigger T0 and transmits the execution request to the startup module, and drives the startup module to dynamically load and run the volatile application corresponding to the execution request according to the content of the execution request.
  • the execution request may also be issued in response to an executable object being opened by a user; wherein the executable object is displayed on an operating interface in the form of an executable entity for the user to open, when the When the user opens the executable entity, a program block responsible for processing the opening event can send the trigger T0 and pass in the execution request to the startup module through the interface provided by the startup module to drive the
  • the activation module dynamically loads and runs the volatile application corresponding to the execution request according to the content of the execution request.
  • the execution request can also be issued in response to a user inputting or clicking on the network address of a certain volatile application on the operating interface provided by the startup module itself; wherein, the startup module can be a window application, And the activation module provides a text input component or displays a list of network addresses on its displayed operation interface for the user to operate, so that the user can input or select the network address to start, and then the activation module After the network address is wrapped into the execution request, the execution request is sent to a program block responsible for receiving the execution request for execution, and the program block is driven to dynamically load and run the network address corresponding to the execution request according to the content of the execution request. Volatile application.
  • the startup module is used to dynamically load and run the network address of the volatile application program, which is transmitted to the startup module via the execution request; wherein, if the execution request is At least one content already contains the network address, the activation module can directly read the network address from the execution request; if at least one content of the execution request is at least one content of the metadata of the volatile application ,
  • the startup module can refer to the various methods shown in FIG.
  • the activation module can obtain the metadata of the volatile application through the access link, and then determine according to the content of the metadata ( Locate) the network address of the volatile application.
  • the startup module can be a universal startup module that can dynamically load and run all volatile applications , And is directly built into the software platform or operating system provided by the system supplier, or the startup module can be automatically generated for each volatile application through a code generator .
  • FIG 4 is a schematic diagram of the implementation concept of a startup module, where the triggers T01, T02, T03 in Figure 4 and the trigger T0 in Figure 3 are the same or equal triggers, request 50061,50062,50063 and Figure 3 Request 5006 in Figure 4 is the same or equal request.
  • trigger T11, T12, T13 in Figure 4 and trigger T1 in Figure 3 are the same or equal trigger, request 50081,50082,50083 and request 5008 in Figure 3 Is the same or equal request.
  • the "startup module" described in this application can be implemented in many different ways. The following are examples of various methods for implementing a startup module:
  • the activation module itself is an application program that runs independently on a software platform or operating system. After the application program receives an execution request through a trigger T01, the application program can start another program through another trigger T11.
  • a software module dynamically loads and runs a volatile application to which the execution request is directed to the other software module; wherein, the other software module can be a browser, WebView, or a real-time application (Instant App). ); wherein, if the other software module is a browser or a real-time application (Instant App) driver, then the other software module is another application independent of the startup module; if If the other software module is a WebView, the other software module can be embedded in the startup module and belong to the same application as the startup module.
  • the activation module itself is a browser that runs independently on a software platform or operating system. After the browser receives an execution request through a trigger T02, the browser can drive itself through another trigger T12 A provided software engine dynamically loads and runs a volatile application pointed to by the execution request on the software engine, where the software engine is an HTML/CSS/Javascript software engine.
  • the startup module itself is a software component (such as WebView) that can dynamically load and run a heterogeneous system, and is embedded in an application program of an operating system.
  • the software component After the software component receives an execution request via a trigger T03 The software component drives a software engine provided by itself through another trigger T13, and dynamically loads and runs a volatile application program pointed to by the execution request to the software engine.
  • the startup module itself can also be a software module in a Web software system.
  • the software component can open an HTML5 internal frame (iFrame) , A volatile application pointed to by the execution request is dynamically loaded and run in the HTML5 built-in frame.
  • the "trigger” described in FIG. 3, FIG. 4, and the description of each embodiment of this application in this application all refer to the driving of one program block to another program block.
  • the program block drives the other program block to perform a data transmission connection, execute a command, and/or a combination thereof through the trigger.
  • the specific implementation of "triggering" can be accomplished through many different methods or through a combination of these different methods. Here are only a few of them as follows:
  • the trigger of the program block to another program block is accomplished through an asynchronous event-driven method, that is, the program block sends out an event to notify a listener of the event, and the listener Execute "the other program block", where the monitor program and the program block can be executed in the same system process (OS process), or the monitor program and the program block are in different system processes (OS process) Or executed in different machines, for example: when the monitoring program and the program block are executed in different system processes (OS processes) or different machines, they can be implemented through interprocess communication or a network socket connection.
  • the event is received, and after the event is received, the other program block is executed.
  • the above method of triggering another program block by one program block is not limited to the above.
  • the integration method of function calls and event interactions between various executable program blocks is very popular. Those skilled in the art can make any equal design changes based on actual application requirements.
  • data transmission docking refers to the transmission of a piece of data from a software system, software module, and/or program block to another software system, another software Module, and/or the specific implementation of another program block.
  • a program block triggers another program block, it is often necessary to perform data transmission and docking at the same time for data transfer, so that the other program block can obtain enough data for execution.
  • the program block when a program block triggers the activation module and drives the activation module to provide services for an execution request, the program block must be able to transmit the execution request to the activation module via the trigger; and when the activation module triggers the other software module or the software engine, and drives the other software module or the software engine to dynamically load and run a volatile application, the activation module must also be able to be used for dynamic applications via the trigger. Load and run the network address of the volatile application program, and transmit it to the other software module or the software engine.
  • the program block triggers the other program block to perform a task by calling the function, then the program block can be passed By entering parameters in the function, the data required to perform the task is sent to the other program block.
  • the program block triggers the other program by directly executing the program code of the other program block
  • the program block can directly store the data needed to execute the job in a memory space, and the other program block can be directly in the memory space to obtain the data needed to execute the job The data.
  • the program block provides a function for reading data, and then, in an event-driven way, an event is triggered to notify the other program block to perform a task, and then, After the other program block receives the notification, the other program block calls the function to receive the data needed to execute the task.
  • all the above methods can be implemented on different software systems, software modules, and/or program blocks.
  • the data transmission and docking method between different software systems, software modules, and/or program blocks during the execution period is not limited to the above.
  • Various data transmission and docking technologies have been very popular, and those who are generally familiar with this technology Any equal design changes can be made according to actual application requirements.
  • FIG. 5 is a schematic diagram of the basic operation flow of an executable object and an operable object.
  • the "executable object” mentioned in this application refers to a volatile application that can be installed, imported, and/or automatically configured into a software system.
  • an executable object O1 is a name It is a "remote control" volatile application.
  • the executable object O1 is generated according to a data model of an application unit.
  • an executable entity I1 ie, a remote control App
  • the executable entity I1 ie, a remote control App
  • the operating interface is an App Launcher.
  • the user can click 50091 to launch the executable entity I1, and then the remote controller
  • the executable program block of the App loads and runs.
  • the click 50091 will prompt the App start interface to submit a trigger 50101 to the start event E1 of the remote control App.
  • the trigger 50101 After receiving the trigger 50101, it will be responsible for processing the program block of the start event E1, which can then run the volatile for dynamic loading.
  • the process of the application program makes a corresponding processing 50111.
  • the processing 50111 is to issue a corresponding execution request, so that the volatile application corresponding to the executable object O1 is dynamically loaded and run, and the volatile application
  • the program provides the user with a "remote control" software service; among them, the implementation of the process of dynamically loading and running volatile applications can refer to the embodiment of FIG. 3 and/or FIG.
  • the staff can make any equal design changes based on actual application requirements.
  • the executable object O1 can have different implementation modes, and only a few of them are described here as follows:
  • the executable object O1 itself is an application program that can be installed and started in the software system.
  • the executable object O1 is an Android App
  • its own icon and name are set according to the App icon and App name of the volatile application
  • the metadata of the volatile application is a set of The state or a form of access link is provided in the configuration file of the executable object O1.
  • the software system can be an Android operating system.
  • the executable object O1 When the executable object O1 is installed, imported, and/or automatically configured to the software system, the software system will write the Android Activity into the Android Activity according to its original Java program file.
  • the basic structure of the program code For Android App, each Android Activity program code must follow the Android application framework to complete the implementation.
  • the basic structure of the program code is the same, which can be generated by the program generator. Automatically generated.
  • the program code used to read the configuration file is automatically written, because the name and location of the configuration file are determined by the program generator itself, and the content is read from a file
  • the program code is basically the same, so the "program code used to read the configuration file" can be automatically generated by the program generator.
  • the program code for analyzing the configuration file is automatically written. Because the program generator has the ability to analyze the metadata content in the configuration file, Have a full understanding of the data structure of the metadata content, and the program code for parsing the metadata content according to the data structure of the metadata content is basically fixed.
  • the program code used to parse the configuration file It can also be automatically generated by the program generator.
  • program code that can be used to determine (locate) a network address is automatically written, and the network address is a network address that can be used to dynamically load and run the volatile application.
  • the related program code for determining (locating) the network address according to the content of the metadata is basically fixed, and therefore, can be automatically generated by the program generator.
  • the program code for driving a Web front-end application or Android real-time application is automatically written to complete the Android Activity implementation. do.
  • the program code used to drive a Web front-end application or Android real-time application is basically fixed, so it can be automatically generated by the program generator; wherein, the volatile application
  • the type of program can be set in the metadata content, or pre-defined by the program generator itself.
  • an AndroidManifest.xml is automatically generated, and various resources, including the Android Activity, App icon, App name, and related information of the configuration file, are automatically set to The content of the AndroidManifest.xml is used to complete the construction of the Android App project; where the App icon and App name can also be set by the metadata content.
  • the program generator can compile the Android App project, generate an Android App (executable object) for the volatile application, and set it for the Android App.
  • the App generates an installation file. If the program generator itself has the permission to install the Android App, the Android App (executable object) can be directly installed in the mobile phone operating system.
  • the program generator in the operation process of the program generator, when the program generator receives an access link and an App icon of the metadata of the volatile application When the loading location of the, and the name of an App, first, the program generator obtains the metadata content of the volatile application through the access link, and then the same steps are used to automatically generate the Android for installation App (executable object).
  • the metadata content of the volatile application is It has the ability to analyze and provides an interface for data transmission and docking to receive the content of the configuration file.
  • the icon and name will generate the corresponding executable entity I1 and display it on the mobile desktop for The user clicks.
  • the software system will execute the executable program block of the executable object O1 itself (that is, the program area of the Android App). Block) is loaded and executed.
  • the software system can notify the executable object O1 to start through a standard application programming interface (for example: Android Activity application programming interface), that is, in this case,
  • a standard application programming interface for example: Android Activity application programming interface
  • the start event E1 of the executable object O1 is handled by a program block of the executable object O1 itself.
  • the main task of the program block is to set the content in the executable object O1 (For example: the configuration or the access link)
  • the activation module processes the execution request, and then the volatile application program Dynamically loaded into the software system to run.
  • the Android Activity application programming interface can refer to "https://developer.android.com/reference/android/app/Activity", the software system calls the onStart function of the executable object O1, which can be regarded as a start The trigger of the event.
  • the executable object O1 (Android App) is installed in the software system, it is not necessary to download the volatile application program that can actually provide the "remote control" service to the software system.
  • the installation and activation process of the executable object O1 can be a general process, the executable object O1 can be automatically generated through a code generator ,
  • the system supplier or service provider can provide the program generator in the software system; where the program generator is an implementation of the "metadata conversion program" described in this application.
  • the program generator has the ability to analyze the metadata of the volatile application program, and can load various information therein according to the data structure of the metadata.
  • the program generator receives the metadata of the volatile application, the loading position of an App icon, and an App name, first of all, it can store it in the accessible storage In the space, create a folder, and in this folder, create the AndroidManifest.xml, Java source code file, image resource (drawable resource), and configuration files (values), etc.
  • Related subfolders to automatically generate an Android App project for the volatile application, where the program generator will use the Android App project to generate an Android App, and the Android App will be used as the volatile application The executable object of the program.
  • the program generator can complete the implementation of the Android App project by the method described in the following steps: (1) Load the App icon from the loading position of the App icon, and save it for Store image resources in the subfolder. (2) In the sub-data used to store the configuration file, a configuration file is generated, and the content of the metadata is written into the configuration file.
  • a program code to complete the implementation of the Android Activity does not need to perform steps (6), (7), and (8); among them, the function of the program code is to use the interface to execute the configuration file in the configuration file.
  • the content is directly transferred to the browser, the WebView, or the driver of the Android real-time application, and then drives the browser, the WebView, or the driver of the Android real-time application to parse and process the content of the configuration file, In order to dynamically load and run the volatile application program in it.
  • the program generator in the operation process of the program generator, when the program generator receives an access link of the metadata of the volatile application, and the loading of an App icon Location and an App name, the program generator is in the content of the configuration file, and only the access link needs to be set in it.
  • the content of the configuration file is transferred to the browser, the WebView, or the driver of the Android real-time application through the interface
  • the browser, the WebView, or the driver of the Android real-time application is The access link can be obtained from the content.
  • the browser, the WebView, or the driver of the Android real-time application can first obtain the metadata of the volatile application through the access link, and then analyze and determine (locate) the metadata to obtain the metadata.
  • the program generator only needs to obtain After the access link of the metadata of the volatile application program, an executable object can be automatically generated for the volatile application program.
  • the Android App (that is, the executable object O1) generated by the program generator itself is a startup module.
  • the Android App is installed on an Android operating system (that is, the software system)
  • the user can start the Android App by clicking on the desktop provided by the Android operating system.
  • the Android App can generate an execution request, and fill in the execution request with the content contained in its configuration file (the metadata of the volatile application or its access link) .
  • the Android App When the Android App generates the execution request, it can fill in the user’s identity data (or account data) in the execution request, and load and run the volatile When using an application, directly log in to the service provided by the volatile application, and enable the volatile application to determine (locate) the user's access through the user's identity data (or account data) during the execution period Permissions.
  • the executable object O1 itself is a data entity that can be managed by the software system.
  • the executable object O1 may be an App configuration file supported by the software system, and the App configuration file includes at least an App icon, an App name, and an element of the volatile application. An access link to the data or the metadata.
  • the software system When the software system is started, first, it can read all the App configuration files in its storage space, and then, after loading the App icon and App name in each App configuration file, on its operating interface, you can Generate corresponding executable entities for each App configuration file. In this way, the executable entity I1 corresponding to the executable object O1 is included on the operating interface for the user to click.
  • the software system can directly read the App configuration file corresponding to the executable object O1, and store its content (including the metadata of the volatile application or its After the access link) is encapsulated into an execution request, the execution request is transmitted to an activation module through a data transmission connection, and the activation module processes the execution request, and then dynamically loads the volatile application program to the activation module.
  • Run in the software system That is, in this case, the start event E1 of the executable object O1 may be handled by a program block of the software system itself.
  • the executable object O1 App configuration file
  • the App icon and the App name may also be specified by the content of the metadata.
  • the software system analyzes the content of the metadata and then the App image The display and the App name are loaded and displayed on the operating interface. If the content of the App configuration file only contains the access link of the metadata, the software system can obtain the content of the metadata through the access link, and then load the metadata by analyzing the content of the metadata. App icon and the name of the App.
  • the executable object O1 can be automatically generated through an App configuration generator, and the metadata of a volatile application or its storage is received in the App configuration generator.
  • the App configuration generator When fetching the link, you can create a new App configuration file.
  • the App configuration generator According to the data structure of the App configuration file, write the metadata or the content of the access link into the App configuration file and save it to the software system
  • both the program generator and the App configuration generator can be in the form of a software component, integrated into any software module and/or application program, and provided in the software system.
  • the service provider of the volatile application can transfer the metadata of the volatile application to the software module and/or application in the form of a configuration or access link, it can be used by the software module And/or the application program automatically generates an executable object (App configuration file or Android App) of the volatile application program, and automatically installs it to the software system.
  • the service provider of the volatile application can directly provide the user’s account information in the metadata of the volatile application, and make each user have its own unique metadata.
  • the volatile application can complete the login work according to the account information. According to this, the work of dynamic installation and/or automatic configuration is completed.
  • an operable object O2 is a call record, and The operation object O2 is managed by a management tool responsible for managing call records.
  • the operable object O2 is generated based on the data model of an information unit.
  • the operable object O2 is stored in the management tool, it will become compatible
  • An operable entity I2 in the management tool, and during the execution period of the management tool, the operable entity I2 will be displayed on an operating interface for the user to operate.
  • the operation interface is a call log list.
  • the user can call back the call log represented by the operable entity I2 by clicking 50092, and the clicking 50092 will prompt
  • the operation interface submits a trigger 50102 to the executable event E2 of the call record. After receiving the trigger 50102, it is responsible for processing the program block of the executable event E2, and then it can make the corresponding information about the process of dynamically loading the volatile application program.
  • the processing 50112 is to send a corresponding execution request to a startup module, dynamically load and run a volatile application program corresponding to the executable event E2, and the volatile application program is the executable Event E2 provides a "callback" application service; among them, for the implementation of the process of dynamically loading and running volatile applications, please refer to the embodiment shown in FIG. 3 and/or FIG.
  • the personnel can make any equal design changes based on actual application requirements.
  • any information unit that can be used to save the status of the work flow can be an operable object, and the implementation of the operable object is not limited to the foregoing.
  • the executable event E2 is bound to an Event configuration file
  • the Event configuration file includes at least one volatile application metadata or points to the metadata An access link for.
  • the management tool When the management tool generates an operable entity for the operable object O2, the Event configuration file of the operable object O2 can be loaded from the storage space at the same time, so as to grasp each executable of the operable object O2 The binding relationship between the event and the Event configuration file.
  • the management tool can correctly read the Event configuration file corresponding to the execution event E2, and then the volatility corresponding to the Event configuration file
  • the application dynamically loads and runs.
  • the drive of the executable event E2 is handled by a program block of the management tool; wherein, the Event configuration file is an implementation of an executable state; among them, the technology is well known
  • the staff knows that when the operable object O2 (call history) is stored in the management tool, there is no need to download the volatile application that can really provide the "call back" service.
  • the Event configuration file can be automatically generated through an Event configuration generator.
  • the Event configuration generator receives an executable state of a volatile application
  • the Event configuration generator can create an Event configuration file, and then, according to the data structure of the Event configuration file, the The content of the executable state is written into the Event configuration file.
  • store the Event configuration file and the operable object in the storage space of the management tool and bind at least one executable event to the Event configuration file in the physical content of the operable object.
  • an event table is created, and the Event configuration file corresponding to each executable event is recorded in the event table.
  • the Event configuration file can be correctly driven to complete the work required by the user; among them, the Event configuration generator is the "metadata conversion" described in this application. An implementation of "program”.
  • the Event configuration generator can be integrated into any software module and/or application program in the form of a software component and provided in the software system.
  • the service provider of the volatile application program can transfer the executable state of the volatile application program to the software module and/or application program in the form of a configuration or access link, it can be used by the software
  • the module and/or application program automatically generates a corresponding Event configuration file, binds the Event configuration file to an operable object, and stores it in a management tool. In this way, the dynamic import of a workflow is completed.
  • the Event configuration file bound to an executable event of the operable object actually represents a volatile application program. Executable status.
  • the user clicks the callback button for a call record the user’s demand is not only to dynamically load and run a volatile application that can provide the “callback” service, but to When the callback button is clicked, in addition to being able to dynamically load and run the volatile application, it can also directly make a phone call to the other party of the call record to complete the callback work. That is, in this embodiment, the Event configuration file actually represents an executable state of a call operation process. In the executable state, in addition to recording elements of volatile applications that can provide call services, The data or its access link also needs to record an application state (application state) related to the call operation process.
  • application state application state
  • the application state (application state) contained in the content of the Event configuration file linked to the executable event E2 will at least include a call ID and a user ID that can be used to represent the user's identity.
  • the application state is a state setting that can be transferred to the volatile application by the startup module. After the volatile application (call service) is dynamically loaded and run, it can be based on the state during the execution period. After setting the content, adjust its own internal application status, then perform the callback work.
  • the volatile application program uses the call ID to find the user ID of another user participating in the call, and sends a new dialing request to it to establish a new call activity for the user and the other user.
  • FIG. 6 is a schematic diagram of the executable state of a volatile application program, where the volatile application program A1 in FIG. 6 and the volatile application program A1 in FIG. 1 are the same or equal volatile application programs;
  • the metadata D1 in 6 and the metadata D1 in Fig. 1 are the same or equal metadata.
  • the executable state D2 of the volatile application A1 itself can also be regarded as another implementation of the metadata D1 of the volatile application A1.
  • the executable state D2 itself, except for including the volatile In addition to the metadata D1 of the sexual application A1, it also contains an application state D3.
  • the application state D3 is used to dynamically load and run the volatile application A1 so that the volatile application A1 can be based on its state Set, adjust the state of its internal application to the executable state that best meets the needs of users.
  • the startup module can have different ways to set the application state D3 in the executable state D2.
  • Input into the volatile application A1 in the form of parameters, here are only a few of the methods as follows:
  • the volatile application A1 is a web front-end application
  • the startup module is developed with Android native application technology, when the startup module receives an execution request triggered for the executable state D2 When the execution request is issued, the entire content of the executable state D2 can be filled into the execution request.
  • the internal application status performs corresponding services for users; among them, URL Query Parameter (URL Query String) can refer to: https://en.wikipedia.org/wiki/Query_string; among them, the startup module drives the browser or
  • the opening of the WebView to the network address can be regarded as a "trigger" method of the activation module to the Web front-end application, and the status setting can be passed to the Web front-end application through URL Query Parameter.
  • the activation module uses a "data transmission docking" method for the Web front-end application.
  • the volatile application A1 is an Android real-time application (Instant App)
  • the startup module is developed with Android native application technology
  • the startup module receives a trigger for the executable state D2
  • the entire content of the executable state D2 can be filled in the execution request.
  • the activation module receives it, it can be based on the execution request contained in the execution request.
  • the URL Query Parameter embedded in the network address can be obtained by calling the android.app.Activity.getIntent().getData().getQueryParameter((7) method, namely Set the status and adjust its internal application status according to the content of the status setting to provide users with corresponding services; among them, the activation of the network address by the activation module through adb tool can be regarded as the A "trigger" method of the activation module to the Android real-time application, passing the status setting to the Android real-time application through URL Query Parameter can also be regarded as a "data transmission connection" method of the activation module to the Android real-time application .
  • the URL Query Parameter method can also be used to provide an identity data (or account data) of the user to the user in the form of a parameter.
  • the volatile application program enables the volatile application program to determine (locate) the user's access authority through the identity data (or account data) during the execution period of the volatile application program.
  • FIG. 7 is a schematic diagram of the binding of the metadata/executable state of a volatile application with an executable object and an operable object.
  • the volatile application A1 in Figure 7 and the one in Figure 6 The volatile application program A1 is the same or equal volatile application program; the metadata D1 and D11 in Figure 7 and the metadata D1 in Figure 6 are the same or equal metadata; the metadata D12 in Figure 7 and Figure 6
  • the metadata D1 in is equal metadata, which is a data entity after part of the content of the metadata D1 is rearranged through a data model;
  • the executable state D21 in FIG. 7 and the executable state in FIG. 6 D2 is an equal executable state, which is an executable state after a data model reorganization.
  • the content of the metadata D1 of the volatile application A1 has a binding relationship with the executable object O3 and the operable object O4. Through the link of the binding relationship, the executable object O3 is activated. Or, when an executable event of the operable object O4 is triggered, it can correctly complete the dynamic loading and running of the volatile application A1; wherein, the binding relationship can be completed through a configuration file, But it is not limited to this.
  • the configuration file can be set in a configuration file in the executable object;
  • the configuration file itself can be an App group State file (executable object),
  • the App configuration file is a recognizable file type, stored in a directory designated by a software system, the software system can read the App configuration file from the directory, Load, and drive;
  • the configuration file can also be an Event configuration file, which is set in the storage space of the operable object.
  • the Event configuration file and an executable event have A connection relationship; wherein, the App configuration file or the Event configuration file can be stored as a file, and can also be stored in a database in the form of a data entity.
  • Figure 8 is a schematic diagram of a preferred implementation concept of an executable object and an operable object, and refer to Figures 7 and 3 at the same time.
  • the volatile application A1 in Figure 8 and the volatile application in Figure 7 The application A1 is the same or equal volatile application; the metadata D1 in Figure 8 and the metadata D1 in Figure 7 are the same or equal metadata; the executable object O3 in Figure 8 and the executable object O3 in Figure 7 are the same or equal.
  • the execution object O3 is the same or equal executable object; and the operable object O4 in FIG. 8 and the operable object O4 in FIG. 7 are the same or equal operable objects; the start event E3 in FIG. 8 and that in FIG. 7 The start event E3 in Fig.
  • the executable event E4 in Fig. 8 and the executable event E4 in Fig. 7 are the same or equal executable event;
  • the triggers T0, T1 in Fig. 8 and those in Fig. 3 The triggers T0 and T1 are the same or equal triggers;
  • the requests 50064, 50065 in Figure 8 and the request 5006 in Figure 3 are the same or equal requests;
  • the operation 50071 in Figure 8 and the operation 5007 in Figure 3 are the same or Equal operation;
  • the request 50084 in FIG. 8 and the request 5008 in FIG. 3 are the same or equal requests.
  • the metadata D1 represents an implementation of a metadata of the volatile application A1.
  • the content of the configuration file bound to the executable object O3 can be the original content D11 of the metadata D1, part of the content D12 of the metadata D1, or a storage that points to the original content D11 or the part of the content D12 Take the link; and the executable state D21 represents an implementation of an executable state of the volatile application A1.
  • the content of the configuration file bound to the operable object O4 may be the executable state D21 of the volatile application A1 or an access link to the executable state D21.
  • the registration service S1 regardless of the original content D11, the partial content D12, and the executable state D21, they can be registered in the registration service S1 as shown in FIG. 1, and the registration The service S1 generates corresponding access links for the original content D11, the partial content D12, or the executable state D21, and binds the executable object O3 and the operable object O4 in the form of access links. Avoid writing the original content D11, the partial content D12, and the complete content of the executable state D21 into the configuration file content of the executable object O3 and the operable object O4.
  • the access link when binding is performed in the form of an access link, the access link will be set to the App configuration file of the executable object O3 or the operable object O4 Event configuration file.
  • After obtaining the access link from the App configuration file or the Event configuration file it can be obtained from the registration service S1 through the access link
  • the startup module that receives the execution request can read the execution request, obtain the original content D11, the partial content D12, or the complete content of the executable state D21 from it, and then, based on the content, determine (locate ) After the network address that can be used to dynamically load and run the volatile application A1, the volatile application A1 can be dynamically loaded and run on another software module (browser/WebView/driver of real-time application) or software engine ( HTML/CSS/Javascript software engine).
  • the program block responsible for processing the startup event E3 and the executable event E4 can also be based on the original content D11 and the partial content D12 before the trigger T0 is executed. , Or the content of the executable state D21, to determine (locate) the network address that can be used to dynamically load and run the volatile application A1, and then fill the network address into the execution request, and then trigger T0 through the trigger T0,
  • the execution request is passed to the startup module.
  • the startup module that receives the execution request can obtain the network address by reading the content of the execution request, and directly load and run the volatile application A1 dynamically.
  • the program block responsible for processing the startup event E3 and the executable event E4 can also directly fill the access link into the execution request, and then execute the trigger T0 immediately,
  • the execution request is passed to the startup module.
  • the activation module that receives the execution request needs to obtain the original content D11, the partial content D12, or the complete content of the executable state D21 through the access link, and then determine (locating ) A network address that can be used to dynamically load and run the volatile application program A1, and then dynamically load and run the volatile application program A1.
  • the volatile application A1 when the volatile application A1 is dynamically loaded and run, it is automatically configured in the original content D11, the partial content D12, and the executable state D21. (Account information or application status), you can also pass in the volatile application A1 in the form of parameters, so that the volatile application A1 can adjust its internal application status ( application state).
  • the implementation method of transmitting the state setting to the volatile application program via the startup module in the form of a parameter can refer to the URL Query Parameter example described above in this application.
  • the binding relationship between "executable object and operable object” and a volatile application program is by binding "a bound content and/or access link of the bound content" to the executable object and Operable objects (for example: through App configuration file or Event configuration file) to complete, and in the binding relationship, the binding content is a data reference to the metadata of the volatile application; in the data
  • the bound content itself can also be used to represent the volatile application Metadata.
  • the management The tool can correctly read and drive an executable state bound to the executable event according to the standard data model.
  • the "standard data model” can be regarded as the "unified data model” supported by the software system and the management tool for "executable objects” and “executable states”.
  • the content of the App configuration file is directly used as an executable object, and then installed into the software system; among them, the "volatile application metadata" does not require any data format conversion, which means that it does not need to pass through other
  • the data model is used to reorganize the content of "volatile application metadata" and model its content into a data entity in another format.
  • the management tool when the management tool receives an executable state of a volatile application, if the data model of the executable state and the management tool’s response to the "executable state"
  • the supported standard data model is the same or equal data model (that is, a compatible data model), or the management tool does not need to analyze its content when driving the "executable state", but only needs to encapsulate its content
  • the startup module After being an execution request, it is passed to the startup module, and the analysis of the executable state is executed by the startup module.
  • the executable state does not require any data format conversion , It can be directly imported into the management tool as the Event configuration file content of an operable object; among them, the executable state does not require any data format conversion, which means that it does not need to be through other data models. Reorganize the content of the executable state and model its content into a data entity in another format.
  • the data model used to generate the "executable state of a volatile application” is not the same and equal to the standard data model supported by the management tool for the "executable state” Data model, and when the management tool drives the executable state, it needs to parse the content of the executable state.
  • the "executable state of a volatile application” can also be processed by a metadata conversion program. Then, in the data After the format conversion is completed, it is bound to an executable event of an operable object.
  • the configuration content bound to the executable object is generated by a metadata conversion program that uses a unified data model (standard data model),
  • the original content of the metadata of the volatile application is modeled, and then the metadata of the volatile application is modeled as the at least one content bound to the executable object;
  • the volatile application The data model (data model) of the metadata and the unified data model are compatible data models, the at least one content is directly obtained from the original content of the metadata of the volatile application, and when the volatile application
  • the metadata data model of is an incompatible data model with the unified data model, and the at least one content is obtained indirectly by rearranging the original content of the metadata of the volatile application.
  • the content of an executable event bound to an operable object is generated by a metadata conversion program that uses a unified data model (standard data Model) to model the original content of the executable state of a volatile application, and then model the executable state of the volatile application into the content of the executable event that can be bound to the operable object;
  • a unified data model standard data Model
  • the data model (data model) of the executable object of the volatile application is a compatible data model with the unified data model
  • the content can be obtained directly from the original content of the executable state of the volatile application
  • the data model of the executable state of the volatile application is incompatible with the unified data model
  • the content is obtained indirectly by rearranging the original content of the executable state of the volatile application.
  • Figure 9 is a conceptual schematic diagram of the implementation of a metadata conversion process, in which the metadata D1 in Figure 9 and the metadata D1 in Figure 6 are the same or equal metadata; the executable state D2 in Figure 9 and The executable state D2 in FIG. 6 is the same or equal executable state.
  • the dynamic installation and/or automatic configuration described in this application can be completed without a "metadata conversion program" under normal circumstances. However, in some cases, a "metadata conversion program" is required to assist in data processing.
  • the format conversion can be completed.
  • the following provides various implementation methods for automatically generating executable objects and operable states for the needs of dynamic installation and/or automatic configuration under different circumstances, and provides various corresponding metadata conversion procedures. implementation plan:
  • an executable state D22 when an executable state D22 is provided to a management tool in the form of an Event configuration file, and is used to generate the Event configuration file and the executable state D2
  • the data model is the same or equal data model, it can be directly filled into the Event configuration file without any data format conversion, and the Event configuration file becomes the executable that can be driven by the management tool State D22; Among them, the executable state D22 can also be an Event configuration object.
  • the Event configuration object is Stored in the form of an object in the database linked to the management tool, the management tool can read the Event configuration object from the database, and when the user executes a corresponding executable event, the Event configuration object Drive.
  • the management tool can load the file system from the file system according to Event configuration file, and read, manage, and drive the Event configuration file according to the data model of the Event configuration file; among them, the executable state D21 can also be an Event configuration stored in the database
  • the object depends on whether the storage space connected by the management tool is mainly a file system or a database.
  • the "metadata conversion program" described in this application can be integrated into any software module and/or application program in the form of a software component or an executable program block and provided in the software system. As long as the service provider can transfer the metadata or executable state of the volatile application into the software module and/or application in the form of a configuration or access link, it can be used by the software module and/or application.
  • the program After the program automatically generates a corresponding App configuration file or Event configuration file, and binds it to an executable object or an operable object, then a volatile application can be completed by the executable object Dynamic installation and/or automatic configuration of the program, or the dynamic import of a work process through the operable object; among them, the metadata conversion program can provide various application programming interfaces for data transmission and docking , In order to receive the metadata, executable state or access link from each software module.
  • the purpose of this application is to provide a method for dynamically installing volatile applications, so that service providers can dynamically install a volatile application on an operating system and an operating system through an automated configuration method in the release of volatile applications. / Or in the software platform, the following further details.
  • FIG. 10 is a schematic flowchart of a method for dynamically installing a volatile application program in a software system according to the present application.
  • Methods of dynamically installing volatile applications include:
  • an installation module is provided in a software system, and when the installation module receives a dynamic installation request issued by an auto-provisioning engine, an introduction process is initiated, and during the operation of the introduction process , Install an executable object for a user to execute into the software system; wherein there is a binding relationship between the executable object and a volatile application, and the binding relationship is determined by the volatile application
  • the metadata and/or the access link of the metadata is bound to the executable object
  • Step PF2 when receiving an execution request from the user for the executable object in the software system, dynamically load and run the volatile application; wherein, the location of the startup program of the volatile application is determined by the metadata At least one content is determined (positioned).
  • FIG 11 is a resource allocation diagram of a volatile application.
  • a volatile application program 5 is deployed in the second external machine 2.
  • the volatile application program 5 is designed by a service provider and is ready to deploy a VoIP application program for providing voice calls to its employees worldwide ;
  • the volatile application can be a web front-end application, a progressive web application, or a real-time application (Instant App) technology architecture developed.
  • the service provider completes the deployment of the volatile application 5, it completes the registration for the metadata 7 of the volatile application 5 in an external network service 4 (registration service) in the first external machine 1 , And the external network service 4 provides an access link for querying the metadata 7.
  • the service provider is also a system provider for its global employees.
  • the service provider After completing the deployment of the volatile application 5, the service provider also prepared in advance An executable object 8 is bound to the metadata 7 of the volatile application program.
  • the executable object 8 is a pre-generated App configuration file.
  • the App configuration file can be installed or imported into any software system provided by the service provider to its employees around the world; wherein, the software system can be an operating system, an application, or a projection The workspace; where the service provider is also in the external network service 4, has completed the registration for the executable object 8, and the external network service 4 provides an access that can be used to obtain the executable object 8 Link;
  • the App configuration file is only a non-limiting embodiment of executable objects, and is not limited to this.
  • the service provider also installs the executable object 8 in a projectable workspace 6 deployed on the third external machine 3.
  • the projectable workspace 6 is a workspace that can be dynamically loaded and run, and is configured in
  • the data model of the unified tool of the projectable workspace 6 and the data model of the executable object 8 (App configuration file) are the same or equal data model, so the executable object 8 is directly unified with a compatible
  • the type of chemical tool is installed and configured in the workspace.
  • the above method of providing an access link for the App configuration file (in this example, a pre-generated executable object) through an external network service is only a non-limiting embodiment adopted in this application.
  • the implementation of providing access links for executable objects is not limited to the above.
  • a configuration, object, and/or file is published on the Internet in the form of a resource, and through a URI (Uniform Resource Identifier) and / Or API (application programming interface, such as: REST API, Web Service, etc.) to provide the implementation of the technical method for the resource access mechanism has been very popular. Those who are familiar with this technology can perform any equalization based on actual application requirements. Change the design.
  • FIG. 12 is a conceptual diagram expressing the operation path of the dynamic installation process of volatile applications.
  • the "introduction process” referred to in this application is a work process that starts with “an installation module dynamically installs a volatile application by triggering the execution of a program block” to " Install and/or introduce an executable object to a storage space connected to a software system” as the end.
  • the service provider of the volatile application program 5 has implemented a variety of methods to assist its global employees in completing daily required tasks more efficiently, and to effectively manage them.
  • the software system of the company serves as the entrance for its global employees to access corporate resources, including (1) mobile phone devices used by global employees, based on the Android operating system, to provide a customized mobile operating system. (2) Provide a window application for desktop computer equipment used by employees worldwide. (3) Based on the Web technology architecture, a projectable workspace is provided for global employees, so that global employees can dynamically load and run the projectable workspace on different devices and across platforms; among them, when the customized mobile phone When the operating system, the window application, and the projectable workspace are run on a computer device, an operating environment will be provided so that its employees can access the enterprise through an operating interface constructed by the operating environment Resources.
  • the service provider completed a brand-new tool (application) for global employees, it had to implement the brand-new tool as a non-volatile application, and then, through continuous notifications, could its global employees
  • the brand-new tool is downloaded and installed into the customized mobile operating system; or in the form of a software component, the operating interface of the brand-new tool is integrated into the window application through system integration, and then it is made Global employees update the window application or the software component library of the window application; or the brand-new tool is installed and introduced into the projectable workspace in the form of a unified tool, and restricts its global employees to only After dynamically loading and running the projectable workspace, the new tool can be operated in the projected workspace. Whether it is through the release of non-volatile applications, software components or window application updates, or the centralized management of projectable workspaces, there are bottlenecks in costs and benefits.
  • the service provider can design the brand-new tool into a volatile application program, the volatile application program 5 in FIG. 11 That is an embodiment. Then, the service provider can use the application method of this application to implement the customized mobile phone operating system and the window application as an operating environment that can be used to manage and drive an executable object. Then, the service provider can provide an installation module 10 in the customized mobile phone operating system and the window application.
  • the installation module 10 is a software module, which can be an application or a software agent.
  • the program is provided in the customized mobile phone operating system, or is integrated into the window application in the form of a category library, software component, or an executable program block, and is implemented in the installation module 10 .
  • the various embodiments of "triggering" and “data transmission and docking", and implementation accordingly include (1) providing an application programming interface that accepts software modules and software from the same software system / Or function call of executable program block. (2) Provide another application programming interface to accept remote procedure calls from software modules and/or executable program blocks from other machines.
  • the installation module 10 whenever the installation module 10 receives a trigger and receives a dynamic installation request, it can add a part of a volatile application program according to the content of the dynamic installation request.
  • the executable object is installed in the customized mobile phone operating system or the window application; wherein, after the executable object is installed, it can become the operating interface of the customized mobile phone operating system or the window application.
  • the installation module and the startup module can be the same application program and be executed in the same system process, or the installation module and the startup module can also be different applications.
  • the installation module and the startup module are the same application, but when the executable object is executed by the user, the customized mobile phone operating system will generate a brand new system
  • the startup module is driven in a brand new system schedule, that is, every time a volatile application is dynamically loaded and run, a separate system schedule is used to complete the dynamic loading and running of the volatile application;
  • the installation module and the startup module can be implemented in the same software component or implemented in two different software components, and in the same system schedule (the system schedule of the window application) Be executed.
  • the service provider after the service provider completes the design and deployment of the volatile application 5, it can use an automated configuration engine 9 to configure the element of the volatile application 5
  • the original content of the data 7, the access link to the original content of the metadata 7 (in this example, it can be provided by the external network service 4), the executable object 8, or the access link to the executable object 8 (in this example Can be provided by the external network service 4), packaged into a dynamic installation request, through the trigger method provided by the installation module 10, the automated configuration engine 9 executes a trigger T2 to the installation module 10, and the trigger T2 is used
  • the purpose of the request 5012 is to pass the content of the dynamic installation request to the installation module 10, and drive the installation module 10 to complete an auto-provision for the volatile application 5.
  • the installation module 10 receives the dynamic installation request, it can execute a trigger T3 to drive an introduction process 11, and obtain the executable object of the volatile application 5 according to the content of the dynamic installation request, and combine the volatile
  • the executable object of the application 5 is installed or introduced into the customized mobile phone operating system or the window application.
  • the method of generating an executable object based on the metadata and/or access link of a volatile application can refer to the various embodiments of FIG. 9 of this application and implement it accordingly, but it is not limited to this. After referring to this application, a person familiar with the technology can make any equal design changes based on actual application requirements.
  • the installation module 10 reads from the content of the dynamic installation request After the executable object 8 or the executable object 8 is obtained through the access link of the executable object 8, the installation and import work can be completed directly; if the executable object 8 is not compatible with the customized mobile phone Operating system and the operating environment of the window application, the installation module 10 can obtain the content of the executable object 8, and then according to the metadata 7 of the volatile application 5 or its access link bound therein, Regenerate compatible executable objects, and then complete the installation and introduction.
  • the metadata content of a volatile application and the relevant executable program block of the volatile application are pointed to by the same network address.
  • the "access link" used to query and/or obtain the metadata content of the volatile application is the "network address" used to dynamically load and run the volatile application, for example, a After the web front-end application as a volatile application is deployed, the service provider of the web front-end application can set a network address for the web front-end application on a web server.
  • the network address is As the network address used when dynamically loading and running the web front-end application.
  • the engineering developer can provide at least one content of the metadata of the volatile application in the HTTP Response Headers of the network address, and any software system can obtain the Web front end by sending an HTTP GET request to the network address
  • the relevant executable program block of the application can also send an HTTP HEAD request to the network address to obtain all the HTTP Response Headers related to the network address from the response of the request, which includes the web front-end application
  • At least one content of metadata in this way, the access link of the metadata of the web front-end application (volatile application) and the dynamic loading location of the web front-end application can be the same network address; where, In the response of the HTTP GET request, the HTTP Response Headers may also contain the metadata content of the web front-end application.
  • Figure 13 is a schematic diagram of a network configuration for dynamically installing volatile applications, and also refer to Figures 11 and 12, where the first external machine 1 in Figure 13 and the first external Machine 1 is the same or equal first external machine; the second external machine 2 in Figure 13 and the second external machine 2 in Figure 11 are the same or equal second external machine; the third external machine 3 in Figure 13 It is the same or equal third external machine as the third external machine 3 in Figure 11; the external network service 4 in Figure 13 and the external network service 4 in Figure 11 are the same or equal external network service;
  • the volatile application 5 and the volatile application 5 in Fig. 11 are the same or equal volatile application; the projectable workspace 6 in Fig. 13 and the projectable workspace 6 in Fig.
  • the installation module 10 in Figure 13 and the installation module 10 in Figure 12 are the same or equal installation modules;
  • the introduction process 11 in Figure 13 and the introduction process 11 in Figure 12 are the same or equal Introducing the process;
  • the trigger T21, T22, T23, T24 in Figure 13 and the trigger T2 in Figure 12 are the same or equal trigger;
  • the request 50121, 50122, 50123, 50124 in Figure 13 and the request 5012 in Figure 12 are the same Or equal requests;
  • the automated configuration engine 91, 92, 93, 94 in Figure 13 and the automated configuration engine 9 in Figure 12 are the same or equal automated configuration engine;
  • the software system 13 in Figure 13 is the service The customized mobile phone operating system or the window application provided by the provider to its global employees; wherein, the dynamically loaded and run volatile application 92 represents that the volatile application 5 is dynamically loaded and run on After the software system 13, the operating environment generated by the volatile application program 5.
  • the automated configuration engine 9 in FIG. 12 can be implemented through a network service, a detection program, an application program, or a projected workspace ;
  • the network service is an external network service 4,91 running on a different machine from the software system 13
  • the detection program 93 is a software module or an executable program executed in the software system 13
  • the application is a volatile application 92 that is dynamically loaded to run on the software system 13
  • the projected workspace 94 is an operating environment
  • the operating environment is the projectable workspace 6 being dynamically loaded The operating environment generated in the operating interface of the software system 13 after running on the software system 13.
  • the external network service 4,91 after the service provider registers the metadata 7 or executable object 8 of the volatile application 5 to the external network service 4,91, basically, the external network service 4,91 have all the necessary information that can be used to generate a dynamic installation request. Therefore, the external network service 4,91 can be implemented as an automated configuration engine.
  • the external network service 4,91 can Directly generate a dynamic installation request, and encapsulate the original content of the metadata 7, the access link of the metadata 7, the executable object 8, and/or the access link of the executable object 8, in the dynamic installation request , And execute a trigger T21 on the installation module 10 through the trigger method provided by the installation module 10, and transmit the dynamic installation request to the installation module 10 through the trigger T21, and drive the installation module 10 to be the volatile application
  • Program 5 installs a corresponding executable object 14 into the software system 13; among them, the implementation of triggering T21 can be used by the external network service 4, 91 to establish a network connection (TCP/ IP socket connection), the dynamic installation request is transmitted to the installation module 10 through the network connection; wherein, in an embodiment of the present application, when the installation module 10 is activated in each employee’s computer device, it can Update the IP address of the calculator device and the port number (Port Number) used by the installation module 10 to a database that
  • the external network service 4 ,91 can obtain the IP address of the calculator device used by the global employees and the communication port number used by the installation module 10 through the query of the database, and establish a network connection (TCP/IP socket connection) and connect accordingly To the installation module 10 in each employee’s calculator device; then, the triggering work of the dynamic installation request can be executed for each calculator device to complete the task of automatic configuration; wherein, the installation module 10 is a web server ( Socket Server), by issuing an IP address and communication port number to the outside world, it accepts network connection requests, and can receive dynamic installation requests through network connections.
  • Socket Server Socket Server
  • the metadata may be included
  • the original content of 7, the executable object 8, the access link of the metadata 7, and/or the access link of the executable object 8, are all set in a link that the volatile application 5 can connect to during execution In the storage space, in this way, when the volatile application 5 is dynamically loaded and run, it can obtain the necessary information from the storage space that can be used to generate a dynamic installation request, and in this way, it can be dynamically loaded
  • the volatile application program 92 can itself be implemented as an automatic configuration engine.
  • a dynamic installation request can be generated, and a trigger T22 is executed on the installation module 10 through the trigger method provided by the installation module 10, and the dynamic installation is performed by the trigger T22
  • the request is sent to the installation module 10, and the installation module 10 is driven to install a corresponding executable object 14 into the software system 13 for the volatile application program 5; wherein, the implementation of triggering T22 can be implemented through the internal system
  • the volatile application program 92 and the installation module 10 after being dynamically loaded and run are run in the same computer device, therefore, the volatile application program 92 can pass through the function of the internal system Calling or communication between OS processes to execute the trigger T22, and by the trigger T22, the dynamic installation request is transmitted to the installation module 10, and the installation module 10 is driven to be the
  • the volatile application 92 can still establish a network connection to connect to the local (IP 127.0) 0.1), and then send the dynamic installation request to the installation module 10.
  • IP 127.0 IP 127.0
  • the volatile application 5 deployed in the second external machine 2 has never interacted with the software system 13 Any technical integration has been done, and there has never been any executable object used to start the volatile application 5 to be installed in the software system 13.
  • the service provider completes the volatile in the second external machine 2
  • the volatile application 5 can automatically configure itself during the execution period In the software system 13.
  • the service provider can provide a detection program 93 to the software system 13.
  • the detection program 93 can periodically query the external network service 4,91 through polling to check whether any new volatile application program is registered and needs to be automatically configured in the software system 13 . For example, when the volatile application program 5 is registered in the external network service 4, 91 and is found by the detection program 93 through polling, the detection program 93 can send to the external network service 4,91.
  • the network service 4,91 sends a request to obtain the metadata 7 of the volatile application 5, the access link of the metadata 7, the executable object 8, and/or the access link of the executable object 8, and encapsulate
  • a trigger T23 is executed on the installation module 10 through the function call of the internal system or the communication between the system processes (OS process), and the trigger T23 is executed through the trigger T23 transmits the dynamic installation request to the installation module 10, and drives the installation module 10 to install a corresponding executable object 14 for the volatile application program 5 into the software system 13.
  • the detection program 93 can immediately issue a dynamic installation request for the volatile application when it detects a volatile application, or can also send the at least one volatile application to the at least one volatile application after detecting at least one volatile application.
  • At least one attribute of the program (the at least one attribute can be obtained from the content of its metadata) is displayed on the operation interface for the user to choose or decide whether to perform dynamic installation. Then, according to the user's operation instructions, it is required by the user At least one volatile application program sends a corresponding dynamic installation request; where, if the software system 13 is a mobile phone operating system, the detection program 93 and the installation module 10 can be software modules that run independently, and execute in different locations.
  • the detection program 93 can transmit the dynamic installation request to the installation module 10 by triggering between system processes; if the software system 13 is a window application, the detection The program 93 and the installation module 10 will be executed in the same system process. In this way, the detection program 93 can execute the trigger T23 through a function call.
  • the detection program 93 may not only search the external network service 4,91 through polling, but also search the network through the technical method of network multicast (Multicast).
  • the different connected devices in, through the interaction with these different connected devices, query the volatile applications that can be used to manage, control, monitor and/or operate the services of these connected devices; it is a software module ( For example: detection program 93)
  • detection program 93 The technology that provides for searching or detecting various connected devices and/or software services in the network and obtaining their related metadata is very popular. Polling and network multicasting are only used in this application.
  • the non-limiting embodiments of are not limited to the above, and those who are generally familiar with the technology can make any equal design changes according to actual application requirements.
  • the service provider can install the executable object 8 of the volatile application 5 into a projectable workspace 6 in the third external machine 3.
  • the projected workspace 94 (after the projectable workspace 6 is dynamically loaded and run, it is generated based on the physical content of the projectable workspace 6)
  • the operating environment itself can also be an automated configuration engine, and an export program can be provided in the projected workspace 94, and the export program can be used to install the complete content or the entire content of the executable object 8 installed in the workspace.
  • the metadata 7 bound to the executable object 8 is encapsulated into a dynamic installation request, and then, through the trigger method provided by the installation module 10, through the function call of the internal system or the system process (OS process) Communication, execute a trigger T24 for the installation module 10, and transmit the dynamic installation request to the installation module 10 through the trigger T24, and drive the installation module 10 to install a corresponding executable object 14 for the volatile application 5 To this software system 13.
  • OS process system process
  • the installation module 10 when the installation module 10 runs in the software system 13, it itself or another software module in the software system 13 can also provide an operation interface for the user to operate.
  • the user actively inputs the metadata 7 of the volatile application 5, the access link of the metadata 7, the executable object 8, and/or the access link of the executable object 8.
  • the operation interface encapsulates the relevant information input by the user into a dynamic installation request, and then transmits it to the installation module 10, which drives the installation module 10 to install a corresponding executable object 14 for the volatile application 5 To this software system 13.
  • the installation module 10 can directly execute the executable object 8 Installed in the software system 13, that is, in this case, the executable object 8 and the executable object 14 are the same entity, for example, the executable object 8 and the executable object 14 may be the same App Configuration file; however, when the executable object 8 is not compatible with the software system, or when the automated configuration engine 91, 92, 93, 94 encapsulates a dynamic installation request, the executable object 8 cannot be effectively obtained
  • the executable object 14 compatible with the software system 13 can be generated by the automated configuration engine 91, 92, 93, 94 through a metadata conversion program, and then the The executable object 14 generated by the metadata conversion program is encapsulated in the dynamic installation request, and then transmitted to the installation module 10; wherein, referring to the various implementations of the metadata conversion program in the content of this application,
  • the automated configuration engine 91, 92, 93, 94 can also encapsulate the metadata 7 of the volatile application 5 and/or its access link into the dynamic installation request, and then send it After the installation module 10, then the installation module 10 uses a metadata conversion program to generate the executable object 14 and install it in the software system 13; among them, refer to the metadata conversion program in the content of this application.
  • the metadata conversion program generates the executable object 14 compatible with the software system 13 according to the technical standards of the software system 13 and the content of the metadata 7
  • the metadata conversion program generates the executable object 14 compatible with the software system 13 according to the metadata.
  • 7 and/or the content of the access link of the metadata 7 can generate the executable object 14 compatible with the software system 13 for the installation module 10.
  • the implementation method of triggering T21, T22, T23, and T24 is not limited to the above.
  • Various data transmission and docking and data interaction technologies are very popular. Those who are generally familiar with this technology can Make any equal design changes based on actual application requirements.
  • the service provider only needs to introduce a universal installation module 10 into the software system 13 on the user machines 12 of the employees around the world, and then any kind of client software can be used to evaporate In the form of a sexual application program, it is automatically configured in the calculator device (ie user machine 12) operated by each employee; among them, the service provider can open the automated configuration engine it uses to business partners in the supply chain, For example, the service provider can open the external network service 4,91 to business partners. In this way, any client software deployed by different companies in different computer rooms and different network domains, as long as the client software itself It is a volatile application. After the client software is deployed, there is no need to do any system integration with the software system 13 on the user's machine 12.
  • the executable object that drives the client software is automatically configured in the software system 13. If the software system 13 is an operating system on the user's machine 12, the software system 13 becomes an operating system that can install and start volatile applications from different sources; if the software system 13 is an operating system on the user's machine 12 The software system 13 becomes a super application that can install and start volatile applications from different sources.
  • the software system 13 is a volatile application provided by the external network service 4, 91, which can be a web front-end application, a progressive web application, or It is a real-time application.
  • the software system 13 can be provided on the user machine 12 by means of dynamic loading and running.
  • the software system 13, as a volatile application provided by the external network service 4,91 itself, the executable object 14 may be in the form of an App configuration object stored in the external network service 4,91 accessed
  • the software system 13 after the software system 13 is dynamically loaded and run on the user machine 12, it can query all App configuration objects (including the executable object 14) in the database, and configure objects (executable Object) generates corresponding executable entities on an operating interface for user operations.
  • the user can click on each executable entity on the operating interface to start the volatile application corresponding to each executable entity. Through this design Mode, you can realize a super application in the form of a volatile application.
  • the software system 13 does not need to be integrated with the volatile application 5 (VoIP application), but can be used in the volatile application
  • the program 5 After the program 5 is dynamically loaded and run, it provides life cycle management for the system schedule that executes the volatile application program 5.
  • the software system 13 can issue a Event, notify the volatile application 5 to suspend all computing services.
  • the software system 13 can send another event to notify the volatile application 5 to release all system resources. The way that the sexual application 5 handles this event and the other event is determined by the volatile application 5 by itself.
  • the startup module may pass a state setting to the volatile application program 5 in the form of a parameter, wherein the state setting may include the system environment of the user machine 12 Configuration (for example: the relevant hardware information of the calculator device), the application configuration required when executing the volatile application (for example: user account information), or the application status (for example: the volatile application 5, the preset state when it is executed, etc.), so that the volatile application 5 can adjust its internal application state (application state) according to the state set in the execution period; wherein, in an embodiment of the present application, The account information required to execute the volatile application program can also be obtained from the system environment configuration of the user machine 12.
  • the state setting may include the system environment of the user machine 12 Configuration (for example: the relevant hardware information of the calculator device), the application configuration required when executing the volatile application (for example: user account information), or the application status (for example: the volatile application 5, the preset state when it is executed, etc.), so that the volatile application 5 can adjust its internal application state (application state) according to the state set in the execution period;
  • the startup module can send to an operating system environment of the user machine 12 Request, obtain an account information that is activated, registered, or bound to the operating system environment, and use the account information as the application configuration required to execute the volatile application, so as to achieve single sign-on (Single sign -on) function.
  • FIG. 14 is another flow diagram of the method of dynamically importing a work flow into the software system of this application.
  • the methods of dynamically importing the workflow include:
  • Step PS1 Provide an activation module in a software system.
  • the activation module receives an execution request, it executes an application program according to the content of the execution request; wherein, the application program is a native application program installed in the software system Or a volatile application that needs to be dynamically loaded and run.
  • an import module is provided in the software system, and when the import module receives an executable state (Executable State) issued by the application at runtime, it starts a dynamic import process.
  • an operable object for a user to operate is stored in a management module, and a binding relationship is established between the executable state and an executable event of the operable object.
  • Step PS3 when the executable event is triggered by the user, another execution request for executing the executable state will be issued, and step PS1 is executed to dynamically load and run a corresponding volatile application to execute the executable Execution status.
  • FIG. 15 is a schematic diagram of the operation flow of voice communication.
  • the working flow diagram of the voice communication represents the callee of a voice call.
  • the caller After receiving the voice call, the caller is connected, and even after the call is over, the callee uses the call record of the voice call. , The operation process of calling back the caller.
  • a specific implementation case can further explain the operation process.
  • a mobile phone operated by the callee receives an incoming call notification for a voice call from a caller, and the caller uses an application program. Initiation of the voice call, the call notification of the voice call is delivered to the callee’s mobile phone through the telecommunications network or the notification channel of the Internet.
  • the operation interface of the mobile phone After receiving the call notification, the operation interface of the mobile phone will be driven
  • the application program generates an incoming call display interface (Incoming Call Screen) for the voice call.
  • the call interface (In-Call Screen) of the voice call After the user performs the "answer" action on the voice call, the call interface (In-Call Screen) of the voice call will be displayed on the operation interface of the mobile phone, and the operation flow immediately enters the state of "waiting to be connected". Wait for the connection of the voice call. In this state, if the signal of the telecommunications network or the Internet is poor, the connection of the voice call will fail, and the operation flow will enter the "call end" state.
  • the application Whenever the call ends, the application will generate a call record in a management tool (call record management tool) of the mobile phone, and the operation flow will immediately enter the "waiting for callback" state.
  • the callee can execute the management tool on the mobile phone to view the call log, and call back to the caller on the call log interface (Call Log Info Screen) on the mobile phone.
  • Call Log Info Screen On the operating interface, a dialer screen will be executed, making the operation process enter the "calling back" state.
  • the operation interface (Call Log Info Screen) of the call log is provided by the management tool.
  • the incoming call screen, the voice call interface (In-Call Screen), and the dialer interface (Dialer Screen) are implemented by different applications. supply.
  • the Incoming Call Screen is triggered by an event and drives the second application to The call interface (In-Call Screen) of the voice call is generated, and the second application executes the work of connecting to the voice call, and when the user is on the call log operation interface (Call Log Info Screen), press
  • the call log operation interface (Call Log Info Screen) is triggered by another event and drives the third application to generate the dialer screen, and the third application
  • the program performs the callback work.
  • each state in the operation flow is executed by different applications.
  • the incoming call screen, the voice call interface (In-Call Screen), and the dialer interface (Dialer Screen) are implemented by the same application. supply.
  • each state in the operation process and its corresponding calculation work can be implemented in the same application program, that is, the same application program provides the caller ID interface ( Incoming Call Screen), the call interface of the voice call (In-Call Screen), and the dial interface (Dialer Screen).
  • FIG. 16 is a conceptual diagram expressing the operation path of a dynamic import process of a work process.
  • the software system 131 in FIG. 16 and the software system 13 in FIG. 13 are the same or equal software systems; the trigger T04 in FIG. 16 and the trigger T0 in FIG. 8 are the same or equal trigger; Request 50065 in 8 is the same or equal request.
  • the "dynamic import process” referred to in this application is a work process that starts from "an import module triggers the execution of a program block to dynamically import an executable state" as the start to "binding The executable state is to an operable object, and the operable object is stored in a storage space connected to a management tool" as the end.
  • a system supplier of a software system can dynamically import the operation flow of an application program into a software system provided by it, and make the operating environment of the software system become an application state engine Drive environment; where the software system is an operating system, a super application, and/or a software platform.
  • the system supplier can provide a software system 131 in the phone of the callee 21, and in the software system 131, provide An application startup module 15, an executable state import module 17, and an operable object management module 19; wherein the application program is an application program that can be used to answer a voice call; wherein the executable state is The executable state of a volatile application, and the content of the executable state includes a state setting used to call back the caller of the voice call (for example: the user ID of the caller, etc.).
  • the volatile application When the executable state is triggered and started, the volatile application will be dynamically loaded and run, and the internal application state (application state) will be adjusted according to the state set in the execution period, and then the caller will be dialed ;
  • the operable object is a call record of a network voice call.
  • the incoming call notification when the software system 131 receives an incoming call notification for a voice call during the execution period, the incoming call notification will be transmitted to the activation module 15, and the activation module will An application program 16 is loaded and run on the mobile phone. Then, the application program 16 generates an incoming call display interface for the callee 21 to operate according to the content of the incoming call notification. After the callee 21 presses the "answer" button in the caller ID interface, the application 16 can perform the connection work of the voice call by itself, and generate the call interface for the voice call on the mobile phone screen. , So that the callee 21 can further grasp the connected state of the voice call and perform operations on the voice call.
  • the application program 16 will generate an executable state, and write metadata and a state setting of a volatile application program into the executable state; wherein, the volatile application program is an available state.
  • the metadata of the volatile application is written in the executable state in the form of original content, partial content, or access links; wherein, the state setting includes control
  • the relevant information required by the volatile application for dialing for example: the user ID of the caller
  • the application program 16 will submit a request 5013 by triggering T4.
  • the purpose of the request 5013 is to use the relevant information of the voice call and can be used to dial (call back) the caller.
  • An executable state of is passed to an import module 17, and the executable state is one of at least one executable state used to connect to a job process.
  • the voice communication callback process is an unrestricted job process
  • the work flow described in this application is not limited to this.
  • a call record corresponding to the voice call can be generated, and the In the call log, an executable event for "callback" is bound to the executable state, and then the call log and the executable state can be used as an operable object and stored in a management module 19 In a file system or a database to which it is linked.
  • the executable state is stored in the file system or the database linked to the management module 19 in the form of an Event configuration file or an Event configuration object; wherein, the When the callee 21 executes the management module 19 in the software system, the call record can be found through its operation interface.
  • the management module 19 can generate an operable entity 20 for the call record for the callee 21 to operate (
  • the call log I2 shown in FIG. 5 is an example of an executable entity of the call log).
  • the callee 21 can press the "call back" button through the executable entity 20 of the call record to call back the caller of the call record; among them, the actual trigger T4, T5
  • various data transmission and docking and data interaction technologies have become very popular. Those who are generally familiar with the technology can refer to the various embodiments of this application and make any equal design changes according to actual application requirements.
  • the network address used to dynamically load and run the volatile application can be written in the Response Headers of the network address.
  • the metadata content of the volatile application that is, the network address and the access link for obtaining at least one content of the metadata of the volatile application, may be the same network address.
  • the import module 17 when the executable state data model is compatible with the operable objects of the management module 19, in the dynamic import process 18, the import module 17 can trigger the T5 program Block, the executable state is directly bound to the operable object, and stored in the storage space linked to the management module 19, that is, in this case, the executable state itself is the operable object Bound Event configuration file or Event configuration object; however, when the executable state data model is not compatible with the operable objects of the management module 19, the import module 17 will generate it through a metadata conversion program A compatible executable state.
  • the program block of T5 triggered by the import module 17 will make the compatible executable state (the executable generated based on the data model compatible with the operable object) State) is bound to the operable object.
  • the import module 17 can directly trigger the executable state by triggering T5 regardless of whether its data model is compatible with the operable objects of the management module 19
  • the state is transferred to the program block of the management module 19, and the management module 19 uses a metadata conversion program to generate a compatible executable state.
  • the compatible executable state is bound to an operable object, the It is stored in its own linked storage space.
  • the role of the metadata conversion program is to be able to rearrange the incompatible executable state to convert it into a compatible executable state .
  • the management module 19 is responsible for processing A program block of the executable event can encapsulate the executable state (Event configuration) bound to the executable event into an execution request, and pass the execution request to an execution request through a trigger T04
  • the activation module 15 determines (locates) a network address that can be used to dynamically load and run a volatile application program according to the content of the executable state in the execution request. The address dynamically loads the volatile application program to run on the mobile phone.
  • the "call back" button in the operation interface of the executable entity 20 is based on the executable entity 20
  • the content of the state is dynamically added.
  • the implementation method of dynamically adding an executable event to an executable entity through the content of the executable state can be illustrated by an embodiment based on FIG. 7.
  • D21 in FIG. 7 is a volatile application program.
  • Executable state, in the content of the executable state a type and/or style can be specified for the visual component used to drive the executable state, and an operable event provided by the visual component can be used as The executable event that drives the executable state.
  • an "event” content can be added to specify that the executable state is driven by a button (visualization component), and the drive is driven by the user clicking on the button ( onClick), after any management tool reads the content of the executable state, it can dynamically add a button to the operation interface based on the "event” content in the executable state, and display it on the button
  • the text prompt of "callback” (displayed according to the text content specified by "label”) is for users to operate.
  • the management tool can drive the executable state, that is, An execution request is generated for the executable state, and after passing in a startup module, a volatile application program corresponding to the executable state is dynamically loaded and run, and the volatile application program executes the callback service.
  • the executable event used to drive the executable state may be an instance of the executable entity 20.
  • Launch event For example, I2 in Figure 5 is an operable entity of a call log (operable object). In addition to clicking the "callback" button of the operable entity, the user can trigger an executable
  • the management tool can also connect the executable event for "callback" with the activation event of the operable entity, so that the user can find the call record in the list of call records Then, you can directly click on the call record to drive the executable state to call back.
  • the startup event refers to when the user clicks or operates on the visual component of the executable entity 20, the executable The event triggered by the visualization component of the execution entity 20 by default.
  • the executable state is one of at least one executable state used to connect to a workflow, and another voice call dialed back in the volatile application ends After that, the volatile application program can again trigger T4 to store the call record and executable status corresponding to the other voice call in the storage space linked to the management module 19. In this way, the operation process driven and supported by the voice communication can be linked with the at least one executable state and dynamically imported into the software system 131.
  • the software system 131 is provided in the mobile phone in the form of a mobile phone operating system.
  • the startup module 15, the import module 17, and/or the management module 19 can be implemented as independent applications, that is, the startup module 15, the import module 17, and /Or the management module 19 may be different software modules.
  • the startup module 15, the import module 17, and/or the management module 19 are executed in different system processes .
  • the software system 131 is provided in the operating system of the mobile phone in the form of an application, a super application, and/or a software platform.
  • the startup module 15, the import module 17, and the management module 19 are implemented in the same software module, that is, the startup module 15, the import module 17, and the management module 19 can be It is directly integrated into the software module in the form of software components or executable program blocks.
  • the startup module 15, the import module 17, and the management module 19 are Executed in the same system schedule; among them, the software system 131 is developed with the technical architecture of native applications, which is built into the operating system by the system supplier, or the receiver 21 Installed to the operating system; or the software system 131 is developed with the technical architecture of a progressive web application (an implementation of a volatile application), and the system supplier automatically configures it to the operating system, Or the callee 21 actively installs it to the operating system.
  • a progressive web application an implementation of a volatile application
  • the application 16 for receiving the incoming call notification is a native application pre-installed in the software system, or in the form of an executable object, pre-installed or A volatile application program dynamically installed in the software system, or a volatile application program that is not installed.
  • the application 16 for receiving the incoming call notification and the volatile application for callback are the same application. Or, the application 16 for receiving the incoming call notification and the volatile application for callback are different applications. After the voice call of the incoming call notification ends, the application for receiving the incoming call notification can be used in the In the executable state, specify other volatile applications to provide callback communication services.
  • the user 21 in FIG. 16 is a software program.
  • the management module 19 can start a network monitoring program, and when the network monitoring program detects a network signal reply Normally, the network monitoring program automatically executes the executable event (callback) in the call log, and then automatically drives the executable state bound to the executable event to perform the voice call on the caller Call back.
  • the above-mentioned method of dynamically importing the work flow is not limited to the work flow of voice communication.
  • the system supplier can use the operating system, super application, and/or software platform provided by it for various applications. Operable objects in different application scenarios provide corresponding import modules and management modules, so that various operating procedures can be dynamically loaded. Those who are familiar with the technology can refer to this application and do anything based on actual application requirements. Equally change the design.
  • the embodiment of the present application also provides a software system that dynamically integrates application programs so that volatile application programs of multiple different information sources and the different operation processes supported by each can be dynamically installed and dynamically imported into it
  • the software system includes: an installation module for installing an executable object into the software system when the installation module receives a dynamic installation request issued by an auto-provisioning engine (auto-provisioning engine); and /Or an import module for storing an operable object bound to the executable state in a management module when the import module receives an executable state issued by an application program; wherein, when the When the executable object or the executable state is executed or triggered, a corresponding execution request is issued, and a corresponding volatile application program is dynamically loaded and run through an activation module to complete the execution request.
  • auto-provisioning engine auto-provisioning engine
  • import module for storing an operable object bound to the executable state in a management module when the import module receives an executable state issued by an application program
  • FIG. 17 is a schematic diagram of another implementation concept of a software system for dynamically integrating volatile applications.
  • the software system 132 of FIG. 17 and the software system 13 of FIG. 13 are the same or equal software systems
  • the automated configuration engine 9 of FIG. 17 and the automated configuration engine 9 of FIG. 12 are the same or equal automated configuration engine
  • the installation module 10 and the installation module 10 in FIG. 12 are the same or equal installation modules
  • the introduction process 11 in Fig. 17 and the introduction process 11 in Fig. 12 are the same or equal introduction process
  • Module 17 is the same or equal import module; the dynamic import process 18 in Figure 17 and the dynamic import process 18 in Figure 16 are the same or equal dynamic import process; the trigger T2 in Figure 17 and the trigger T2 in Figure 12 are the same or equal Trigger; request 5012 in FIG. 17 and request 5012 in FIG. 12 are the same or equal requests; trigger T4 in FIG. 17 and trigger T4 in FIG. 16 are the same or equal trigger; request 5013 in FIG. 17 and request 5013 in FIG. 16 are The same or equal request; the trigger T0 in FIG. 17 and the trigger T0 in FIG. 3 are the same or equal trigger; the request 5006 in FIG. 17 and the request 5006 in FIG. 3 are the same or equal request.
  • a system supplier of the software system 132 provides at least one installation module 10 in the software system 132.
  • the at least one installation module 10 can receive at least one dynamic installation request from at least one auto-provisioning engine 9 (auto-provisioning engine), complete automatic configuration of volatile applications from different information sources, and evaporate the different information sources.
  • At least one executable object 141 corresponding to the sexual application program is dynamically installed into the software system 132 through the import process 11, and is managed by an application program management center 22 to expand the functions of the software system 132; wherein, the different information
  • the source refers to different servers, different computer rooms, or different network domains.
  • the volatile applications of the different information sources can be deployed by different companies on different servers, different computer rooms, and/or different network domains.
  • Any client software as long as the client software itself is a volatile application, after the client software is deployed, there is no need to perform any system integration with the software system 132, and it can use the at least one automated configuration engine 9.
  • An executable object that can be used to drive the client software is automatically configured in the software system 132.
  • the system supplier of the software system 132 provides at least one import module 17 and at least one management module 191 in the software system 132.
  • the at least one import module 17 can receive at least one executable state from at least one volatile application program 25 that is dynamically loaded and run, which is a work flow driven by the volatile application program 25 of different information sources, and completes the work of dynamic import.
  • the at least one operation object 231 used to connect different operation processes is stored in the at least one management module 191 through the dynamic import process 18 for management. In this way, different operation processes driven and supported by volatile applications of different information sources can be linked with the at least one executable state and dynamically imported into the software system.
  • the software system 132 is an operating system, a super application, or a software platform.
  • the application management center 22 is an APP Launcher.
  • the at least one management module 191 may include an activity reservation management program or a call log management program.
  • the at least one automated configuration engine 9 is a network service, a detection program, an application program, or a projected workspace; wherein, the network service is the same as the The software system 132 runs on an external network service on different machines (refer to the external network service 4, 91 in FIG. 13); wherein the detection program is executed in a software module in the software system 132 (refer to the software module in FIG. 13).
  • Detection program 93 the application is a volatile application that is dynamically loaded and run on the software system (refer to the volatile application 92 that is dynamically loaded and run in FIG. 13);
  • the projected job The space is a projectable workspace that is dynamically loaded to run in the software system (refer to the projected workspace 94 in FIG. 13).
  • the application management 22 executed therein will read the at least one executable object 141 introduced into the software system 132 , And generate a corresponding executable entity on an operating interface for each executable object, so that the user 211 can operate on the at least one executable entity 24 on the operating interface (please refer to I1 in Figure 5) , Where the operation interface is an APP Launcher operation interface.
  • the at least one management module 191 when the at least one management module 191 is activated in the software system 132, the at least one operable object 231 imported into the at least one management module 191 will be read, And for each operable object, a corresponding operable entity is generated on another operation interface, so that the user 211 can operate the at least one operable entity 201 on the other operation interface.
  • the The call log management program will read at least one operable object (ie call log) it manages from the storage space it is connected to, and in the operation interface of the call log management program, for each operable object (That is, the call record) provides the corresponding operable entity (please refer to I2 in Figure 5).
  • the user 211 when the user 211 starts an executable entity on the operation interface provided by the application management center, it will be controlled by the software system 132 or the application management center. 22 sends out a trigger T0, and transmits an execution request to an activation module 151 through the trigger T0, and the activation module 151 dynamically loads and runs the volatile application corresponding to the executable entity.
  • the user 211 when the user 211 operates an executable event of an operable entity on the operating interface provided by the at least one management module 191, the user 211 will also be managed by the at least one The module 191 issues a trigger T0, and through the trigger T0, transmits an execution request to an activation module 151, and the activation module 151 dynamically loads and runs the volatile application corresponding to the executable event.
  • the content in the execution request passed into the activation module 151 may include the original content, partial content, and reformulated content of the metadata of the volatile application. And/or an access link that can be used to obtain metadata of the volatile application.
  • the access link and the network address used to dynamically load and run the volatile application corresponding to the execution request may be the same or different network addresses.
  • the network address used to dynamically load and run the volatile application can be written in the Response Headers of the network address, and the metadata content of the volatile application can be written in this way.
  • the network address and the access link are the same network address.
  • the service provider of the volatile application can register the metadata content on another external server, and the external The server provides the access link for the metadata content.
  • an executable event for an operable entity is driven by a software agent 212, for example, when an operable object (event reservation) is stored in the event
  • an operable object event reservation
  • the activity reservation can be set to automatically start at a specified time, and the software agent 212 can perform a monitoring task for the operable object.
  • the software agent 212 That is, the executable event is triggered, and the volatile application corresponding to the executable event is dynamically loaded and executed to provide the required services for the event reservation.
  • the activation module 151 in the process of the activation module 151 dynamically loading and running its corresponding volatile application for an execution request, can pass in a state setting in the form of a parameter
  • the volatile application program wherein the state setting may include the system environment configuration of the calculator device that executes the software system 132 (for example: relevant hardware information of the calculator device), and the volatile application program needs to be executed
  • the configuration of the application program for example: the account information of the user 211), or the application state (for example: the default state when the volatile application is executed, etc.), so that the volatile application can be set according to the state Adjust its internal application state (application state) during the execution period; wherein, in an embodiment of the present application, the account information required to execute the volatile application can also be obtained from the system of the software system 132
  • the activation module 151 can send a request to the software system 132 to obtain an account information of the user 211 activated, registered or bound to the software system 132, and use
  • the at least one installation module 10 may be the same installation module, and the same installation module dynamically installs all different types of volatile application types (for example: Web front-end applications, progressive Web application, or real-time application). Or, the at least one installation module 10 may be a collection of installation modules for dynamically installing different types of volatile applications.
  • the at least one installation module 10 may be the same installation module, that is, the same installation module receives dynamic installation requests from different sources, and according to the content in the dynamic installation request, And in the software system 132, for various types of executable objects of different types of volatile applications (for example, web front-end applications, progressive web applications, or real-time applications), installation and introduction are performed.
  • the at least one installation module 10 may be a set. Different types of volatile applications can be installed and introduced by different installation modules. The set is provided for various types of volatile applications. A collection of installation modules.
  • the at least one activation module 151 may be the same activation module, that is, the same activation module receives all execution requests triggered by different executable objects and operable objects , And according to the content of the execution request, dynamically load and run the work for different types of volatile applications.
  • the at least one activation module 151 may be a collection, which is a collection of activation modules for dynamically loading and running different types of volatile applications.
  • the at least one activation module 151 is provided in the software system 132 in the form of at least one software module, or the at least one activation module 151 is integrated into the at least one In the execution object 141 (the specific integration method of the startup module and the executable object is the same as or the same as those in Fig. 4, Fig. 8, and Fig. 9, and related embodiments thereof, which will not be repeated here).
  • the at least one import module 17 may be the same import module, that is, the same import module receives all executable states from different sources and imports different Management module.
  • the at least one import module 17 may be a set, a set composed of import modules for importing different types of operable objects.
  • the machine includes: an automated configuration engine for detecting at least one connected device in a network and corresponding to the at least one connected device At least one executable object of ”is configured to a software system; and/or an import module for receiving an executable state issued by an application program, and storing an operable object bound to the executable state in A management module; wherein the software system displays the at least one executable object on an operating interface (user interface) for the user to operate, and the user opens a corresponding to a networked device on the operating interface
  • an executable object is executed, a volatile application program bound to the executable object is dynamically loaded and executed, and the volatile application program manages, operates, monitors, and/or controls the services provided by the networked device; among them,
  • the import module is used to complete the dynamic import of the work flow for at least one application.
  • Figure 18 is a conceptual schematic diagram of another implementation of a machine that can dynamically integrate software controllers of different networked devices.
  • the software controller 30 in FIG. 18 (including the air-conditioning control APP, the TV control APP, and the lighting control APP) are all applications developed and deployed in the form of "volatile applications" described in this application.
  • the detection process 931 in FIG. 18 and the detection process 93 in FIG. 13 are the same or equal detection Program;
  • the trigger T2 of FIG. 18 and the trigger T2 of FIG. 12 are the same or equal trigger; the request 5012 of FIG. 18 and the request 5012 of FIG.
  • the installation module 10 in 13 is the same or equal installation module; among them, the software system 133 in Fig. 18 and the software system 13 in Fig. 13 are the same or equal software system; among them, the machine 121 in Fig. 18 and the user machine in Fig. 13 12 is the same or equal machine.
  • the machine 121 and/or the software system 133 are used to build an IoT control center.
  • the software system 133 is an operating system of the machine 121, or the software system 133 is an application program running in the operating system of the machine 121.
  • the network 26 is a home network, an office network, an enterprise network, a cloud network, and/or any network type that can be used to connect networked devices.
  • the first networked device 27 is an air conditioner with network capability
  • the second networked device 28 is a television set with network capability
  • the network device 29 is a lighting device capable of connecting to a network; among them, the air conditioner 27, the television 28, and the lighting device 29 are all IoT devices in the network 26.
  • the networking equipment shown in FIG. 18 is only a non-limiting embodiment of the present application, but not limited thereto, any software appliance, communication equipment and/or Internet of Things capable of networking Devices are all networked devices referred to in this application.
  • the detection program 931 is an automated configuration engine.
  • the detection program 931 and the installation module 101 in the software system 133 may be provided by the same software module, or That is, the detection program 931 and the installation module 101 are executable program blocks integrated in the same software module.
  • the detection program 931 and the installation module 101 are in the software system 133, or they may be provided by different software modules.
  • the detection program 931 can detect the connected devices in the network 26 through different methods during the execution period. For example: the detection program 931 can periodically (for example, once a minute) send a multicast (Multicast) packet to a multicast address in the network 26, and the content of the multicast packet is based on a standard A search request generated by the protocol, the search request is used to let the connected devices in the network 26 know that a detection program is currently searching for the connected devices in the network 26.
  • Multicast multicast
  • any networked equipment including air conditioner 27, television 28, and lighting equipment 29
  • it can monitor the multicast packets sent to the multicast address in the network 26
  • the connected device can use the metadata of the connected device itself and can be used to manage, operate, monitor, and/or control the connected device.
  • the metadata of a software controller of the network device is encapsulated in another multicast packet, and then the other multicast packet is sent to the multicast address in the network 26.
  • the detection program 931 can also monitor the other multicast packet from the multicast address, and read from it the metadata of the networked device and the metadata content of the software controller; among them,
  • the software controller is a volatile application program used to manage, operate, monitor, and/or control the services of the networked device; among them, for related technologies of group broadcasting, please refer to "https://en.wikipedia. org/wiki/Multicast” and "https://en.wikipedia.org/wiki/Multicast_address”.
  • the detection program 931 searches for connected devices in nearby networks through multicast technology, which is only a non-limiting embodiment disclosed in this application, including Bluetooth, infrared, Ethernet, WiFi, and 4G/ Communication networks such as 5G have mature and popular technologies that can be used to detect, search and/or find connected devices on public networks and/or nearby networks.
  • the communication protocol and/or its combination to enable devices between the same or different networks to detect, search and/or find each other’s existence and communicate with each other and data transmission and docking methods, which are not used in this application The disclosed embodiments are limited, and those skilled in the art can make any equivalent design changes according to actual application requirements after referring to this application.
  • the detection program 931 after the detection program 931 receives the metadata of a networked device and its software controller, it can encapsulate it into a dynamic installation request, and pass a trigger T2 ,
  • the dynamic installation request is transmitted to an installation module 101, and the installation module installs an executable object to the software system 133 according to the content of the dynamic installation request; wherein, the detection program 931 and the installation module 101 can It is implemented in the same software module and executed in the same system process, or the detection program 931 and the installation module can also be implemented in different software modules and executed in different system processes; among them, how to use one
  • the automatic configuration engine generates a dynamic installation request for a volatile application, and installs the executable object bound to a volatile application to a software system.
  • the specific implementation method is the same or equal to Figure 11 and Figure 12 , FIG. 13, and various related embodiments disclosed in this application, and will not be repeated here.
  • the content bound to the executable object may include the original content, partial content, reorganized content of the software controller's metadata, and/or a content that can be used to obtain The access link for the metadata of the software controller.
  • the access link and the network address used to dynamically load and run the software controller may be the same or different network addresses.
  • the network address used to dynamically load and run the software controller can write the metadata content of the software controller in the Response Headers of the network address. In this way, the network The address and the access link are the same network address.
  • the service provider of the software controller can register the metadata content on another external server, and the external server will provide the Access link for metadata content.
  • the software system 133 can generate an operating interface 34 (for example: APP Launcher), and then, for each executable object installed in the software system 133, a corresponding After the executable entities are displayed, the executable entities are displayed on the operation interface 34 for a user 35 to operate.
  • an operating interface 34 for example: APP Launcher
  • the software controller (volatile application) corresponding to the executable entity can be dynamically loaded to run on the operating interface of the software system This allows the user 35 to manage, operate, monitor, and/or control the networked devices corresponding to the software controller through the software controller; among them, how to dynamically load and run by driving an executable entity
  • the specific implementation method of a volatile application program is the same as or equal to FIG. 3, FIG. 4, and FIG.
  • a networked device, a software controller of the networked device, and an executable object of the software controller have a binding relationship between the three, and the binding The determination of the relationship is completed by binding at least one content of metadata of the networked device and the software controller to the executable object.
  • the executable of various networked devices The object can be dynamically generated by the detection program 931 or the installation module 101 during the execution period; wherein, at least one content of the metadata of the air conditioner 27 (connected device) includes a product name, a product model, and a brand Name, the domain name (Domain Name) where the air conditioner 27 itself is located, and/or the IP address (IP Address) of the air conditioner 27 itself; wherein at least one of the metadata of the air conditioner control APP 31 includes the air conditioner control APP 31 APP name, APP function description, the location of the air-conditioning control APP 31's startup program, the network domain name where the air-conditioning control APP 31 is located, and/or related information of its service provider, and various other types of connected devices , Can use the same method as above to dynamically generate corresponding executable objects during the execution period.
  • the executable object may also be provided in advance by the provider of the networked device and published on the network in advance for the detection program 931 or the installation module 101 After receiving a dynamic installation request, download and use according to the content of the dynamic installation request. For example, fill in an access link of the executable object in the dynamic installation request, and download the Executable object.
  • the software controller (including the air-conditioning control APP 31, the TV control APP 32, and the lighting control APP 33) is in the software system 133 through an activation module
  • the startup module can pass into the software controller an identity data used by the user 35 to log in to the software system 133 in the form of parameters
  • the software controller can determine (locate) the user's 35 access authority to the networked device corresponding to the software controller through the identity data during the execution period; wherein, the identity data is for the A state setting of the software controller, the software controller can be set to adjust the internal application state (application state) according to the state during the execution period, so that the user's 35 access authority can be executed in the software controller
  • the setting is completed during the period; among them, the startup module can include a system environment configuration, application configuration, and/or application state (application state) state setting in the same way and in the form of parameters.
  • the machine 121 is a user equipment used by the user 35, and the software system 133 runs in the user equipment.
  • the detection program 931 detects the connected devices in the network 26 on the user equipment, it will be able to grasp the relevant information of each connected device in the network 26, except for the IP addresses of the connected devices used to connect to the network and
  • the software controllers volatile applications used to control the networked devices, they can also include information such as their brand and/or model.
  • the detection program 931 can also search through public networks , To grasp the relevant information of each networked device deployed in the cloud and the software services it provides, including the service name and domain name of these software services, and the metadata content of the software controllers used to operate these software services; Wherein, the detection result of the detection program 931 can be aggregated into a list including at least one networked device and at least one software controller. Then, the detection program 931 can automatically configure the corresponding executable object to the software system 133 for the software controller required by each networked device according to the content of the list.
  • the detection program 931 may immediately issue a dynamic installation request for the software controller of the at least one networked device when obtaining the list of the at least one networked device; or, when obtaining the list of the at least one networked device, After the list of at least one networked device, at least one attribute of the at least one networked device (the at least one attribute can be obtained from its metadata) is displayed on the operation interface for the user to choose or decide whether to perform dynamic installation, and then, Then, according to the user's operation instructions, a corresponding dynamic installation request is issued for the software controller of at least one networked device required by the user.
  • At least one control command of the software controller for the networked device can be directly transmitted from the user equipment. Deliver to the connected device.
  • the metadata of the networked device and its corresponding software controller can be written into the In the App configuration content of the executable object, therefore, when the executable object is driven, it will further cause the software controller to be dynamically loaded and run, and when the software controller is dynamically imported and run, it is written in the
  • the metadata of the networked device in the App configuration content of the executable object can similarly be transferred to the software controller through the method of state setting, that is, after the software controller is dynamically loaded and run During its execution period, it is possible to directly determine the product model of the networked device and its own IP address, etc., and the software controller can be on the user device according to the communication protocol supported by the networked device , Connect the networked device, and issue the at least one control instruction to the networked device via the connection, so as to manage, operate, and control the networked device, and/or obtain the data of the networked device for monitoring
  • the machine 121 can also be a server, and the software system 133 runs on a user device; the software system 133 can be regarded as a
  • the client software that the server 121 sends instructions or requests capabilities can be installed, introduced, and/or deployed on the user equipment, the server 121, or another server; wherein, the software system 133 can be deployed on the server 121 or another server.
  • a web front-end application and/or progressive web application on a server is dynamically loaded and run in the user equipment via a software engine (for example: HTML/CSS/Javascript software engine); or the software system 133 itself That is, the operating system installed on the user equipment; or the software system 133 is a native application installed and/or introduced into the operating system of the user equipment.
  • a software engine for example: HTML/CSS/Javascript software engine
  • the software system 133 itself That is, the operating system installed on the user equipment; or the software system 133 is a native application installed and/or introduced into the operating system of the user equipment.
  • the interaction between the software system 133 and the server 121 can be through the software system 133 itself And/or at least one software module in the software system 133 (for example, a front-end system of the detection program 931), the software system 133 and/or the at least one software module may provide an operating interface, in the The operation interface guides the user 35 to input the relevant network information of the server 121 (for example: the IP address where the server 131 is located), so that the software system 133 and/or the at least one software module can grasp the location of the server 131, and According to the correct connection to the server 121, an instruction or request can be sent to the server 121.
  • the relevant network information of the server 121 for example: the IP address where the server 131 is located
  • the software system 133 running on the user equipment can send a search request to the detection of the server 121 through the software system 133 and/or the at least one software module.
  • the back-end system of the test program 931 the back-end system running on the server 121 searches for at least one connected device on the public network and/or nearby networks. After the search is completed, the server 121 organizes the search results into a list. And send it back to the software system 133 and/or the at least one software module.
  • the software system 133 and/or the at least one software module can be based on the list of Content, at least one corresponding dynamic installation request is issued, and the at least one software controller corresponding to the at least one networked device is dynamically installed in the operating environment of the software system 133.
  • the content of the list includes metadata of the at least one networked device and at least one software controller corresponding to it, and the at least one executable object is based on the list Content generated.
  • the software system 133 itself and/or at least one software module in the software system can immediately be the software of the at least one networked device when the list of the at least one networked device is obtained.
  • the controller sends a dynamic installation request; or after obtaining the list of the at least one networked device, at least one attribute of the at least one networked device (the at least one attribute can be obtained from its metadata) is displayed on the operating interface for the user It is up to the user to decide whether to perform dynamic installation, and then, according to the user's operation instructions, a corresponding dynamic installation request is issued for the software controller of at least one networked device required by the user.
  • the software system 133 itself and/or at least one software module in the software system can obtain a system environment configuration from the server 121, and the content of the system environment configuration includes the The domain name and IP address of the server 121 on the internal network and/or external network.
  • the at least one control command for the at least one networked device is transmitted to the server 121 and then The server 121 forwards to the at least one connected device using a communication protocol compatible with the at least one connected device, or the at least one control command may also be directly transmitted from the user device to the at least one connected device.
  • the software controller executed in the user equipment can already be based on the IP address (intranet) in the metadata of the connected device.
  • the server 121 can be used as a proxy server, that is, according to the server
  • the Internet IP address of 121 is connected to the server 121, and then the at least one control command is transmitted to the server 121, and then the server 121 assists in forwarding to the at least one connected device.
  • the installation module 101 in the software system 133 can receive dynamic installation requests from different machines, and the dynamic installation requests from different machines are issued by at least one automated configuration engine,
  • the at least one automated configuration engine is a network service, a detection program, a volatile application program that is dynamically loaded and run, or a projected workspace; among them, there are various specific implementations for the automated configuration engine , Which are the same as or equal to the related embodiments disclosed in FIG. 13 and this application, and will not be repeated here.
  • FIG. 19 is a conceptual diagram of the operational path of dynamically importing the executable state of a networked device.
  • the software system 133 in Fig. 19 and the software system 133 in Fig. 18 are the same or equal software systems;
  • the trigger T04 in Fig. 19 and the trigger T0 in Fig. 3 are the same or equal triggers; the user 35 and Fig.
  • the user 35 in 18 is the same or equal user; the activation module 151 in Figure 19 and the activation module 151 in Figure 17 are the same or equal activation module; the trigger T4 in Figure 19 and the trigger T4 in Figure 16 are the same or equal
  • the request 5013 in Figure 19 and the request 5013 in Figure 16 are the same or equal requests; the import module 171 in Figure 19 and the import module 17 in Figure 16 are the same or equal import modules; the trigger T5 and The trigger T5 in Figure 16 is the same or equal trigger; the dynamic import process 18 in Figure 19 and the dynamic import process 18 in Figure 16 are the same or equal dynamic import process; the management module 191 in Figure 19 and the management in Figure 17
  • the module 191 is the same or equal management module; the operable entity 201 in FIG. 19 and the operable entity 201 in FIG. 17 are the same or equal operable entity.
  • an import module 171 is provided in the software system 133, and the import module 171 is used to receive an executable state (Executable State) issued by a software controller 36 during the execution period. ), when the import module 171 receives the executable status, it triggers the start of a dynamic import process 18.
  • an operable object for the user 35 to operate is stored in a management module 191 , And establish a binding relationship between the executable state and an executable event of the operable object; wherein the import module 171 dynamically imports the executable state of the software controller 36 and its connected operation flow
  • the specific implementation method is the same as or the same as that of FIG. 16 and the related embodiments, and will not be repeated here; wherein, the software controller 36 is a volatile application program.
  • the software program 133 runs on a mobile phone (user equipment), and the management module 191 includes a communication record management program.
  • the software controller 36 can be transparent after the call ends.
  • an executable state provided by the software controller 36 for callback is transmitted to the import module 171.
  • the import module 171 receives the executable status, it triggers the start of a dynamic import process 18.
  • a communication record (operable object) for the user 35 to operate is stored in the communication Record management procedures.
  • the executable state bound to the communication record will be encapsulated in an execution request, and the activation will be passed in through a trigger T04 Module 151, the activation module 151 can dynamically load and run the software controller 36 according to the content of the execution request, and the software controller 36 controls the VoIP Desk Phone to complete the "call back" task.
  • this application provides a method for dynamically integrating volatile application programs and a software system and machine using the method; among them, the method, software system and machine have the following advantages :
  • the automated configuration engine can quickly introduce volatile applications into all associated user devices in the form of executable objects after the volatile application is deployed on the back-end server, so that the service can be provided From the back-end server, the vendor can autonomously control the release of volatile applications and its automatic configuration.
  • the technical method in the executable state can be used to dynamically import the work flow of various applications into an operating system and/or software platform, and make the operating system and/or software platform become A driving environment for the application state engine.
  • a software system and/or machine can be dynamically installed from different sources in the software system and/or machine without first installing or introducing any volatile application program
  • the volatile application program and the operation process of dynamically importing any volatile application program thereby dynamically generating a super app and/or an operating environment of an IoT control center.
  • the software system, installation module, import module, management module, startup module and/or automatic configuration engine described in this application can also be implemented in the form of a volatile application. That is, the software system itself is a volatile application that is dynamically loaded and run on a user’s device, while the installation module, import module, management module, startup module, and/or automated configuration engine are implemented in the software system After dynamic loading and running, another volatile application managed and/or driven by the operating interface of the software system; under this specific design framework, the software system and its related software modules will be deployed and managed on an external server And release, the overall operating environment is dynamically loaded on the user’s equipment, that is, system suppliers will be able to use commercial software appliances and/or software-as-a-service service models. Provide users with the required operating system, super application (super app) and/or the operating environment of the IoT control center.
  • super application super app

Abstract

一种动态整合应用程序的方法,包括:在一软件系统中提供一安装模块,在该安装模块收到由一自动化配置引擎所发出的一动态安装请求时,将一可执行对象安装至该软件系统;和/或在该软件系统中提供一导入模块,在该导入模块收到由一应用程序所发出的一可执行状态时,将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,当该可执行对象或该可执行状态被执行或触发时,发出一相对应的执行请求,并通过一启动模块动态加载运行一相对应的挥发性应用程序来完成该执行请求。

Description

动态整合应用程序的方法及其软件系统与机器 技术领域
本申请涉及应用程序技术领域,尤其是一种动态整合(dynamically integrating)应用程序的方法及运用该方法的软件系统与机器,更具体的是一种让一软件系统能够在没有先行安装或引入一挥发性应用程序(volatile application program)的情况下,即可在该软件系统中,动态安装该挥发性应用程序、动态加载运行该挥发性应用程序,以及动态导入该挥发性应用程序的作业流程,并且能够动态生成一超级应用(super app)和/或一物联网控制中心的操作环境的有效方法、及运用该方法的软件系统与机器。
背景技术
自从计算机科学发展以来,不论是软件平台、操作系统,或者是任一种可被程序扩充的软件系统,软件开发人员已经习惯透过应用程序编程接口(API)和软件开发工具包(SDK)来进行各式各样的系统整合。在常规的做法中,软件开发人员必须遵循着应用程序编程接口和软件开发工具包所定义的规则,完成各种动态链接类别库(dynamic-link library)、软件组件(software component),或者是应用程序(App)的开发,并进而将其安装或引入至一软件系统中,使该软件系统能够在执行时期将其加载于由该软件系统所产生的操作环境中执行,透过这个方式,让该软件系统能够在不改动原始程序的条件下,将该类别库、软件组件,或者是该应用程序所提供的运算服务,扩充至该软件系统中,以实现系统整合。
信息科技产业的发展,从产品型态上做区分,应用生态主要是由两种不同类型的软件公司所推动,其一是以提供操作系统(operating system)和/或软件平台(software platform)为主要业务的系统供货商,其二则是以提供应用程序(App)为主要业务的服务提供商。
「系统供货商」提供的操作系统和/或软件平台就像是一个入口(portal),让用户能够经由该入口对不同的数据和工具进行管理与操作。以Android操作系统为例,手机供货商在手机上预安装Android操作系统后,销售给用户使用。手机开机后,会在屏幕上投影(project)出一个由Android操作系统所提供的操作环境,让用户可以经由该操作环境的接口,管理和操作储存于内存或记忆卡中的档案,以及管理和操作安装于该操作环境中的应用程序;WeChat是另外一个典型的例子,首先,它是从一个提供实时通讯服务的应用程序(App)开始发展,借着实时通讯服务的普遍性需求,深入每一用户的日常生活后,开始引入小程序(mini program),朝向软件平台的方向发展,成为一超级应用(super app)。WeChat执行的时候,会在屏幕上投影出一操作环境,用户可以透过该操作环境来管理和操作实时通讯服务里的数据,也可以管理和操作引入于该操作环境的小程序。其中,小程序(mini  program)本身也是一应用程序,将一小程序引入该用户的WeChat操作环境的行为,也可以被视为是一种安装的行为。
「服务提供商」所提供的应用程序是作为一种工具,每一种应用程序都是用来协助用户对特定领域的运算服务进行存取和操作。对于用户来说,每一个应用程序在执行时期,也都同样会在屏幕上,提供着一相对应的操作环境,和操作系统和软件平台之间的区别,是在于操作系统和软件平台所提供的操作环境是一通用性质的环境;而应用程序所提供的操作环境是一局限性质的环境。对于操作系统和软件平台来说,其主要的设计目标是协助用户在同一个操作环境里,管理、存取、驱动,和操作多种不同的资源,而其中的资源包括多种不同的数据和多种不同的应用程序(工具)。而对于应用程序来说,其主要的设计目标是用来提供一特定用途的运算服务和/或作业流程,以满足用户的该特定需求。
在应用生态的推动过程中,系统供货商和服务提供商之间通常是合作的关系。系统供货商在操作系统和软件平台上,提供各式各样的应用程序编程接口和软件开发工具包,让服务提供商可以快速地开发完成各式各样特定用途的应用程序,而各行各业的服务提供商大量的开发各种不同领域和用途的应用程序,也就使得操作系统和软件平台的功能,得以经由应用程序的安装而被大量的扩充,用户也得以在操作系统和/或软件平台所提供的同一操作环境里,管理和操作大量不同数据和工具以提供工作效率,借此形成一个应用生态的发展循环。
应用生态的蓬勃发展,对于系统供货商、服务提供商,以及用户来说是三赢的结果,然而,现行的系统整合方式却有着许多的限制,仍存在着许多技术上的挑战需要被克服:
一、系统供货商为保护用户不被恶意的应用程序攻击,由服务提供商提供的应用程序,必须在用户的同意下,得到用户的授权后,才可以安装。主要的原因是恶意的应用程序在安装之后,可以长期存在该操作系统和/或软件平台中运行,成为泄漏用户数据的常驻程序,因此,这一个限制主要是因应信息安全的考虑,但是该限制却让服务提供商无法实现为用户提供自动化配置(auto-provision)应用程序的服务能力。现实生活中,在许多不同的情况下,当服务提供商发布一个应用程序的时候,信息安全的考虑可以忽略不计,举例来说,某一服务提供商为其全球员工开发一差勤管理系统,在该差勤管理系统完成部署后,对于该服务提供商的信息部门来说,该差勤管理系统的普及率和被使用率的重要性,将远高于信息安全的考虑,在技术可行的情况下,该服务提供商将会希望在部署完成的当下,就能够在其全球员工办公用的桌面计算机、手机,或笔电的操作环境中,动态安装该差勤管理系统并且为其完成自动化配置,也就是能够在每一员工所使用的操作环境里,自动加入一个能够用来执行该差勤管理系统的可执行对象(executable object),并且能够将每一员工在执行该差勤管理系统时,所需要的应用程序状态(application state)主动配置于该可执行对象中,让每一员工得以在操作接口上,直接开启该可执行对象就能够执行该差勤管理系 统,而并非只能够采用传统的作法,由信息部门发出一封容易遭人忽略的邮件至每一员工的电子邮件信箱;其中,该邮件是用于通知员工该差勤管理系统已上线,并请员工被动进行安装的通知邮件。
可执行对象(executable object)指的是可以被安装至一操作系统和/或软件平台中的一可执行实体(executable entity);其中,该可执行对象是根据一应用程序单元的数据模型所生成,当该可执行对象被安装至该操作系统和/或该软件平台后,将成为兼容于该操作系统和/或该软件平台的一可执行实体,该操作系统和/或该软件平台可以有效地识别出该可执行实体是一应用程序(App),并且对其提供行程管理(process management)、内存管理(memory management)、存储管理(storage management),以及任一针对应用程序(App)资源所设计的权限管理机制。
以运作模式做区分,应用程序可以分成两种不同的型态,其一可被视为是一非挥发性应用程序(non-volatile application program),其二则是挥发性的应用程序(volatile application program)。
非挥发性应用程序的运作模式,是将该应用程序的可执行程序区块完整的储存于该操作系统和/或该软件平台所对应的存储空间里,当该操作系统和/或该软件平台需要执行该应用程序时,会从本身所对应的该存储空间中,直接加载该应用程序的可执行程序区块(即为非挥发性应用程序的启动程序)至一系统行程(OS process)中执行,执行完毕后,该应用程序的可执行程序区块仍将继续储存于该存储空间中;其中,非挥发性应用程序是以原生应用程序(native application)做为代表,而其启动程序即为它的相关可执行程序区块。
挥发性应用程序的运作模式,是将该应用程序的可执行程序区块储存于一外部机器中,该外部机器与运行该操作系统和/或该软件平台的机器是不同的机器,当该操作系统和/或该软件平台需要执行该应用程序时,是从该外部机器里动态加载该应用程序的可执行程序区块(即为挥发性应用程序的启动程序)至一系统行程(OS process)中执行,执行完毕后,该应用程序的可执行程序区块将直接随着系统行程的结束而被消除,在本申请的一个实施例中,该应用程序的可执行程序区块的部分内容可以被缓存于一高速缓存(Cache)中,以备下次执行时能够用来提升动态加载的效率;其中,挥发性应用程序是以Web前端应用程序、渐进式网页应用程序(Progressive Web Application),以及实时应用(Instant App)做为代表,而其启动程序即为它的相关可执行程序区块。
对于操作系统和/或软件平台来说,挥发性应用程序的安全性远高于非挥发性应用程序。主要原因在于挥发性应用程序并不需要储存完整的可执行程序区块于该操作系统和/或该软件平台的存储空间里,因此不容易在系统背景中偷偷地运行。然而,虽然挥发性应用程序在本质上降低了信息安全的疑虑,但是由于挥发性应用程序的可执行程序区块,主要是部署在外部机器里,无法安装在每一员工的操作环境,因此,使得挥发性应用程序的自动化 配置工作,难以有效地实现。
其中,包括Web前端应用程序、渐进式网页应用程序(Progressive Web Application),以及实时应用(Instant App)都是本申请所述「挥发性应用程序」的实施方式。
对于Web前端应用程序来说,任何一种操作系统和/或软件平台的一操作环境,都可以透过浏览器或WebView将一Web前端应用程序动态加载运行,但是,服务提供商无法在该操作环境中,为该Web前端应用程序动态安装一可执行对象供用户操作。
又,实时应用(Instant App)是以原生应用程序的技术架构所开发的一种挥发性应用程序,其中,Android实时应用(Android Instant App)是实时应用的一种实施方式。每一个Android实时应用都对应着的一网络地址,服务提供商将该网络地址分享至一用户的Android操作环境后,该用户点击该网络地址,该Android实时应用就可以被动态加载运行于该Android操作环境之中,但是和Web前端应用程序一样,服务提供商无法在该Android操作环境里,为该Android实时应用动态安装一可执行对象供用户操作;其中,Android实时应用的相关实施方式可以参考“https://heartbeat.fritz.ai/create-an-instant-app-using-android-app-bundle-e36d321dcd56”。
另外,渐进式网页应用程序(Progressive Web App)是挥发性应用程序的另一实施方式,其本身也是一种Web前端应用程序。在操作系统和浏览器的共同支持下,一渐进式网页应用程序可以在用户的同意下,让用户经由浏览器或在线应用程序商店安装至操作系统的一操作环境中,并于该操作环境里提供一可执行对象供用户操作。但是渐进式网页应用程序的现行架构,其动态安装只能被动地仰赖第三方软件来执行,其中的一个方式是在用户于一操作系统的操作环境里,透过一浏览器(第三方软件)动态加载运行一渐进式网页应用程序后,由该浏览器为该渐进式网页应用程序提供一可执行对象,并安装至该操作系统的操作环境里,而另外一个方式是用户透过一在线应用程序商店,搜寻该渐进式网页应用程序后,由该在线应用程序商店下载该渐进式网页应用程序的一可执行对象后,安装至该操作系统的操作环境里,在用户没有透过浏览器或在线应用程序商店来开启或搜寻该渐进式网页应用程序的条件下,服务提供商无法透过任何方法,主动地将该渐进式网页应用程序动态安装至该操作系统,为该渐进式网页应用程序提供一可执行对象至该操作系统的操作环境里,更进一步地,也无法有效地将定制化的应用程序状态主动配置于该可执行对象;其中,渐进式网页应用程序的相关实施方式可以参考“https://vaadin.com/learn/tutorials/learn-pwa/turn-website-into-a-pwa”。
缺乏自动化的动态安装方法,让服务提供商在挥发性应用程序的发布上,难以自主控制,更进一步地,也令挥发性应用程序的自动化配置无法实施。
在应用生态的技术领域里,目前尚未有一种动态安装挥发性应用程序的方法与运用该方法的的软件系统,即可用于自动化配置一挥发性应用程序于一操作系统和/或软件平台中 的有效方法与运用该方法的的软件系统,故仍极待开发。
二、系统供货商的操作环境和服务提供商的应用程序之间,在大多数作业流程的系统整合上,只能够各自单独的发展。应用程序的作业流程无法被动态导入至操作系统和/或软件平台的操作环境中,而操作系统和/或软件平台的操作环境也无法被有效地实作成一个应用状态引擎的驱动环境,导致每一个服务提供商都必须在其所提供的应用程序里,为相同或类似的作业流程重复开发许多具有相同或均等的管理工具;同时,这也令每一个用户都必须被迫地在不同的应用程序里,操作相同或均等的作业流程;更进一步地,这也令数据的收集工作,难以有效的实施,其中,最主要原因就在于即便用户操作的是相同或均等的作业流程,其所产生的数据却是分散在不同的应用程序里,无法集中于一个统一的操作环境。
举例而言,因特网发展以来,网络通话的大量需求,刺激大量网络通讯软件的发展,许多的服务提供商都发展着各自的网络通讯软件,但是对于每一个通话服务来说,至少就存在着一个基本却又共通的作业流程,那就是当收到一语音通话的来电时,首先,用户可以对该语音通话进行接听,而当该语音通话结束时,用户可以利用该语音通话的通话记录,向该语音通话的发话方进行回拨,对于熟知本技艺的人士可知,为了实现该作业流程,每一个网络通讯软件都需具备着「能够接听来电」、「能够产生通话记录」,以及「能够经由通话记录进行回拨」的设计,并且各自也都必须设计一个用以储存、管理,和操作通话记录的管理工具,才能实现该作业流程。然而,在这个情况下,用户就经常需要进入各个不同的网络通讯软件中,找寻对应的通话记录来进行回拨,即便该些网络通讯软件是安装于同一手机操作环境里;其中,网络通讯软件也是一种应用程序的实施方式。
现代智能型手机操作系统的操作环境中,都内建着一个用于储存、管理,和操作通话记录的管理工具,并且在该管理工具的操作接口中,也都已经为每一个通话记录的操作接口,提供了回拨的设计。但是,由于手机的操作环境和应用程序之间,针对作业流程的系统整合是分离的,因此,就导致该管理工具只能够管理电信网络或SIP网络所产生的通话记录,不能够让各个第三方通话服务的作业流程,都直接导入于该管理工具之中,特别是当该第三方通话服务本身是一挥发性应用程序,或该第三方通话服务并没有针对回拨功能和该操作环境进行过任何形式的整合,又甚至是该第三方通话服务根本是以一定制化的通讯协议所完成时,在没有进行任何形式的整合、通讯协议不兼容,和/或该第三方通讯服务是一个挥发性应用程序的情况下,该第三方通话服务的作业流程,无法被动态导入于该手机的操作环境之中。
在应用生态的技术领域里,目前尚未有一种动态导入作业流程的方法与运用该方法的软件系统,即可用于让一应用程序的作业流程动态导入于一操作系统和/或软件平台中,并且让该操作系统和/或软件平台成为一应用状态引擎的驱动环境的有效方法与运用该方法的 软件系统,故仍极待开发。
以上所介绍的是应用生态的各项技术挑战,而这些技术挑战,也同时影响着不同技术领域的发展。以物联网为例,物联网的技术发展在市场的推波助澜下,不同的企业、组织,和机构都分别制定了许多不同的标准,但是唯一欠缺的,就是没有一个标准是真正统一的标准,导致物联网的整体应用生态,须仰赖大量的系统整合才能够完成!不同性质的连网设备有不同的软件控制器,即使是相同性质的连网设备,也会因设备提供商的不同而让软件控制器的技术架构有所不同,部分的软件控制器是以原生应用程序的技术架构开发而成,也有部分的软件控制器则是以Web前端应用程序的型态提供给用户使用,让用户能够用来管理和监控相对应的连网设备,标准的不统一、连网设备的不同、设备提供商的不同,应用程序技术架构的不同,导致软件控制器有着许多不同的型态,都为系统整合的工作带来挑战,以至于物联网发展至今,始终无法让用户在同一操作系统和/或软件平台上,为周遭复杂环境里由不同厂商提供,技术架构不同的物联网设备,完成软件控制器的配置工作。
当用户身处于某一环境时,如果该环境里装置的所有连网设备都是由同一设备提供商设计而成,一般来说,该用户可以透过该设备提供商的管理平台,快速地为周遭环境里的连网设备完成配置,但是,如果该环境里的连网设备是由不同的设备提供商设计,且是透过不同的技术标准完成整合,该用户就必须在其手机或者是计算机中,分别采用不同设备提供商所提供的管理平台,才能够完成所有的配置工作,即使是相同性质的连网设备,也将因为设备提供商的不同,而让连网设备的管理、监控,和/或作业流程的驱动,分散在不同的管理平台之中。
物联网的设备提供商无法在系统供货商所提供的操作系统和/或软件平台里,为软件控制器提供有效的动态安装和/或自动化配置服务,相同性质的作业流程也无法动态导入于一相同的操作环境里,这是物联网应用生态在发展超级应用(super app)和/或物联网控制中心时的重大挑战。
综合以上的说明可知,在应用生态的技术领域里,除了为系统供货商、服务提供商,以及用户持续建构完善的应用程序编程接口和软件开发工具包是一发展方向之外,更为重要的是目前尚未有一种动态整合应用程序的方法与运用该方法的软件系统,让该软件系统能够在没有先行安装或引入一挥发性应用程序的情况下,即可于该软件系统中,动态安装该挥发性应用程序、动态加载运行该挥发性应用程序,以及动态导入该挥发性应用程序的作业流程,并且能够动态生成一超级应用(super app)和/或一物联网控制中心的操作环境,故仍极待开发。
发明内容
本申请的目的在于提供一种动态整合应用程序的方法与运用该方法的软件系统与机器。让一软件系统和/或机器能够在没有先行安装或引入一挥发性应用 程序的情况下,即可于该软件系统和/或该机器中,动态安装该挥发性应用程序、动态加载运行该挥发性应用程序,以及动态导入该挥发性应用程序的作业流程,并且能够动态生成一超级应用(super app)和/或一物联网控制中心的操作环境。
一方面,本申请提供一种在软件系统中动态安装挥发性应用程序的方法,包括:在一软件系统中提供一安装模块,在该安装模块接收由一自动化配置引擎(auto-provisioning engine)发出的一动态安装请求时,启动一引入流程,在该引入流程的运作过程中,将供一用户执行的一可执行对象安装至该软件系统;其中,该可执行对象与一挥发性应用程序之间具有一绑定关系,且该绑定关系是通过将该挥发性应用程序的一元数据(metadata)和/或该元数据的存取链接绑定至该可执行对象所完成;以及在该软件系统中收到该用户对该可执行对象的一执行请求时,动态加载运行该挥发性应用程序;其中,该挥发性应用程序的启动程序的位置是由该元数据的至少一内容所确定(定位)。
在本申请的一个实施例中,该挥发性应用程序是一Web系统、原生应用程序,或者是任一种可被动态加载运行的软件服务;其中,该挥发性应用程序的动态加载运行,是经由动态加载和执行该挥发性应用程序的启动程序所完成。
在本申请的一个实施例中,该元数据的至少一内容包含一网络地址,且该网络地址的内容包含该挥发性应用程序的启动程序的位置;和/或该挥发性应用程序的元数据的至少一内容包含至少一代码,该至少一代码是用于确定(定位)出该挥发性应用程序的启动程序的位置。
在本申请的一个实施例中,该动态安装请求的内容包含该可执行对象、该可执行对象的存取链接、该元数据,和/或该元资料的存取链接;其中,该可执行对象的存取链接和该元数据的存取链接是统一资源标志符(Uniform Resource Identifier)或一应用程序编程接口(Application Programming Interface)的实例。
在本申请的一个实施例中,该可执行对象是一预先产生的可执行对象,或者该可执行对象是在该软件系统及该安装模块的执行时期(run time)里动态产生的可执行对象。
在本申请的一个实施例中,该动态安装请求是由该自动化配置引擎(auto-provisioning engine)发出,用于驱动该安装模块将该可执行对象安装至该软件系统,为该挥发性应用程序完成自动化配置(auto-provision)的工作;其中,该自动化配置引擎是一网络服务、一侦测程序、一应用程序,或者是一被投影的工作空间;其中,该网络服务是和该软件系统运行于不同机器上的外部网络服务,该侦测程序是被执行于该软件系统中的软件模块,该应用程序是被动态加载运行于该软件系统的挥发性应用程序,该被投影的工作空间是被动 态加载运行于该软件系统的可投影的工作空间。
在本申请的一个实施例中,与该可执行对象关联的一绑定内容是该元数据的原始内容、该元数据的部分内容,或者是重整该元数据的原始内容后所得到的内容;其中,该绑定关系是通过将该绑定内容和/或该绑定内容的存取连结绑定至该可执行对象来完成,在该绑定关系里,该绑定内容是用于代表该元数据的数据参照。
在本申请的一个实施例中,该可执行对象是根据一应用程序单元的数据模型所生成,当该可执行对象被安装至该软件系统后,将成为兼容于该软件系统的一可执行实体(executable entity);其中,该可执行实体在该软件系统的执行时期里,被显示于操作接口上供用户开启,在该用户开启该可执行实体时,触发该执行请求以动态加载运行该可执行实体所对应的该挥发性应用程序。
在本申请的一个实施例中,该执行请求的内容包含该绑定内容和/或该绑定内容的存取连结,该挥发性应用程序是由一启动模块依据该执行请求的内容来动态加载运行;其中,该启动模块是一独立运行的应用程序或是可动态加载运行一异质系统的一软件组件。
在本申请的一个实施例中,当该挥发性应用程序与该软件系统的作业环境不兼容时,该挥发性应用程序是透过一转化器(Adapter)进行驱动,由该转化器提供与该软件系统的作业环境兼容的接口实作;其中,该转化器是由该可执行对象、该启动模块、该软件系统,和/或该启动模块触发执行的另一软件模块所提供。
在本申请的一个实施例中,在该挥发性应用程序被动态加载运行时,以参数形式传入一状态设定至该挥发性应用程序,该挥发性应用程序是依据该状态设定于执行时期调整内部的应用程序状态(application state);其中,该状态设定是一系统环境组态、应用程序组态,和/或是定制化的应用程序状态。
另一方面,本申请提供的一种在软件系统中动态导入作业流程的方法,包括:在一软件系统中提供一启动模块,在该启动模块接收一执行请求时,依据该执行请求的内容来执行一应用程序;其中,该应用程序是安装于该软件系统的一原生应用程序,或者该应用程序是需要被动态加载运行的一挥发性应用程序;在该软件系统中提供一导入模块,在该导入模块收到该应用程序于所发出的一可执行状态(Executable State)时,启动一动态导入流程,在该动态导入流程的运作过程中,将供一用户操作的一可操作对象储存至一管理模块,并且为该可执行状态和该可操作对象的一可执行事件建立一绑定关系;以及在该可执行事件被该用户触发时,用于执行该可执行状态的另一执行请求将被发出,并 动态加载运行一相对应的挥发性应用程序,以执行该可执行状态。
在本申请的一个实施例中,当该应用程序是一挥发性应用程序时,该挥发性应用程序的元数据的至少一内容包含一网络地址,且该网络地址的内容包含该挥发性应用程序的启动程序的位置;和/或当该应用程序是一挥发性应用程序时,该挥发性应用程序的元数据的至少一内容包含至少一代码,该至少一代码是用于确定(定位)出该挥发性应用程序的启动程序的位置。
在本申请的一个实施例中,当该执行请求的发出是因应一可执行对象的开启时,则该应用程序是一挥发性应用程序。
在本申请的一个实施例中,当该执行请求的发出是因应一可执行状态的执行时,则该应用程序是一挥发性应用程序;其中,该执行请求的内容是依据该可执行状态的内容所产生,该可执行状态的内容包含一绑定内容和/或该绑定内容的存取连结;该绑定内容是该挥发性应用程序的一元数据(metadata)的原始内容、该元数据的部分内容,或者是重整该元数据的原始内容后所得到的内容;该启动模块是透过该执行请求的内容来确定(定位)出该挥发性应用程序的启动程序的位置,并且依据该启动程序的位置来动态加载运行该挥发性应用程序。
在本申请的一个实施例中,该可操作对象是根据一信息单元的数据模型所生成,当该可操作对象被储存至该管理模块后,将成为兼容于该软件系统或该软件系统中至少一软件模块的一可操作实体(operable entity);其中,该可操作实体将在该软件系统或该至少一软件模块的执行时期里,被显示于一操作接口上供用户操作,在该用户触发与该可执行状态绑定的该可执行事件时,动态加载运行该相对应的挥发性应用程序;其中,该导入模块是透过至少一可执行状态的导入来完成一作业流程的动态导入。
在本申请的一个实施例中,该可执行状态和该可执行事件之间的绑定关系,是通过将该可执行状态的至少一内容绑定至该可操作对象或该可执行事件来完成;在该可执行事件被触发时,依据该可执行状态的内容来产生并发出该另一执行请求,进而动态加载运行该相对应的挥发性应用程序以执行该可执行状态;其中,该可执行事件是依据该可执行状态的至少一信息而被动态加入于该可操作实体中。
在本申请的一个实施例中,在该相对应的挥发性应用程序被动态加载运行时,以参数形式传入一状态设定至该相对应的挥发性应用程序,该相对应的挥发性应用程序是依据该状态设定于执行时期调整内部的应用程序状态(application state);其中该状态设定是一系统环境组态、应用程序组态,和/或是定制化的应用程序状态。
又一方面,本申请的又一实施例提供了一种软件系统,其透过动态整合应用程序的方法,而使多个不同信息源的挥发性应用程序及其各自所支持的不同作业流程可被动态安装和动态导入于其中,该软件系统包括:一安装模块,用于在该安装模块收到由一自动化配置引擎(auto-provisioning engine)所发出的一动态安装请求时,将一可执行对象安装至该软件系统;和/或一导入模块,用于在该导入模块收到由一应用程序所发出的一可执行状态时,将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,当该可执行对象或该可执行状态被执行或触发时,发出一相对应的执行请求,并通过一启动模块动态加载运行一相对应的挥发性应用程序来完成该执行请求。
在本申请的一个实施例中,该软件系统是通过该安装模块,将来自多个不同信息源的挥发性应用程序动态安装于其中;其中,所述挥发性应用程序的动态安装是透过至少一可执行对象的安装来完成。
在本申请的一个实施例中,该软件系统是通过该导入模块,将至少一应用程序所支持的不同作业流程动态导入于其中;其中,所述的不同作业流程的动态导入是透过至少一可执行状态的导入来完成。
又一方面,本申请的又一实施例提供的一种动态整合应用程序的机器,例如包括:一自动化配置引擎(auto-provisioning engine),用于侦测一网络里的至少一连网设备,并将相对应于该至少一连网设备的至少一可执行对象配置至一软件系统;其中,该软件系统将该至少一可执行对象显示于一操作接口(user interface),以供该用户进行操作,在该用户在该操作接口上开启相对应于一连网设备的一可执行对象时,动态加载运行绑定于该可执行对象的一挥发性应用程序,透过该挥发性应用程序管理、操作、监视,和/或控制该连网设备所提供的服务;和/或一导入模块,用于接收由一应用程序所发出的一可执行状态,并将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,该导入模块是用于为至少一应用程序完成作业流程的动态导入。
在本申请的一个实施例中,该连网设备是一物联网设备、一商用软件装置(commercial software appliance),和/或是任一种具有提供信息服务能力的硬件设备或软件装置(software appliance)。
在本申请的一个实施例中,该连网设备和该可执行对象之间具有一绑定关系,且该绑定关系是通过将该连网设备的元数据(metadata)的至少一内容绑定至该可执行对象所完成;其中,该连网设备的元数据的至少一内容包括该连网设备的产品名称、品牌名称、域名(Domain Name),和/或IP地址(IP Address)。
在本申请的一个实施例中,该挥发性应用程序和该可执行对象之间具有一 绑定关系,且该绑定关系是通过将该挥发性应用程序的元数据(metadata)的至少一内容绑定至该可执行对象所完成;其中,该挥发性应用程序的元数据的至少一内容包括该挥发性应用程序的APP名称、APP图标、功能描述、启动程序的位置、网络域名,和/或提供者信息。
在本申请的一个实施例中,该挥发性应用程序是该连网设备的一软件控制器;其中,所述该挥发性应用程序的动态安装是透过该可执行对象的安装来完成。
在本申请的一个实施例中,所述作业流程的动态导入是透过至少一可执行状态的导入来完成。
在本申请的一个实施例中,该机器是一用户设备,且该软件系统运行于该用户设备。
在本申请的一个实施例中,该挥发性应用程序是该连网设备的一软件控制器,在该软件控制器被动态加载运行于该用户设备后,其对该连网设备的至少一控制指令是从该用户设备直接传送至该连网设备。
在本申请的一个实施例中,该机器是一服务器,该软件系统运行于一用户设备,且该软件系统具备连接至该服务器并对该服务器发送指令或请求的能力。
在本申请的一个实施例中,该挥发性应用程序是该连网设备的一软件控制器,在该软件控制器被动态加载运行于该用户设备后,其对该连网设备的至少一控制指令是传送至该服务器后,由该服务器以兼容于该连网设备的通讯协议转发至该连网设备,或者该至少一控制指令是从该用户设备直接传送至该连网设备。
本申请的上述目的和优点,在本技术领域普通技术人员在考虑随后的详细说明及附图后,将会更加清楚。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一挥发性应用程序的元数据的示意图。
图2为动态加载运行一挥发性应用程序的运作概念示意图。
图3为一启动模块的基本运作流程示意图。
图4为一启动模块的实施概念示意图。
图5为一可执行对象和可操作对象的基本运作流程示意图。
图6为一挥发性应用程序的可执行状态示意图。
图7为一挥发性应用程序的元数据/可执行状态与一可执行对象和一可操作对象的绑定示意图。
图8为一可执行对象和可操作对象的另一实施概念示意图。
图9为一元数据转换程序的实施概念示意图。
图10为本申请在软件系统中动态安装挥发性应用程序方法的又一流程示意图。
图11为一挥发性应用程序的资源分配示意图。
图12为表达挥发性应用程序的动态安装流程的运作路径的概念示意图。
图13为一动态安装挥发性应用程序的网络配置示意图。
图14为本申请在软件系统中动态导入一作业流程方法的另一方法流程示意图。
图15为一语音通讯的作业流程示意图。
图16为表达一作业流程的动态导入流程的运作路径的概念示意图。
图17为一用于动态整合挥发性应用程序的软件系统的另一实施概念示意图。
图18为一可动态整合不同连网设备的软件控制器的机器的另一实施概念示意图。
图19为动态导入一连网设备的可执行状态的运作路径的概念示意图。
其中,
1:第一外部机器
2:第二外部机器
3:第三外部机器
4:外部网络服务
5:挥发性应用程序
6:可投影的工作空间
7:挥发性应用程序的元数据
8:可执行对象
9:自动化配置引擎
91:外部网络服务(自动化配置引擎)
92:被动态加载运行的挥发性应用程序(自动化配置引擎)
93:侦测程序(自动化配置引擎)
931:侦测程序(自动化配置引擎)
94:被投影的工作空间(自动化配置引擎)
10:安装模块
101:安装模块
11:引入流程
34:操作接口
35:用户
36:软件控制器
5001:内容的组成
5002:内容的组成
5003:内容的组成
50041:联机
50042:联机
5005:驱动
5006:请求
50061:请求
50062:请求
50063:请求
50064:请求
50065:请求
50066:请求
5007:运算
50071:运算
5008:请求
50081:请求
50082:请求
50083:请求
50084:请求
50091:点击
50092:点击
50101:触发
50102:触发
50111:处理
50112:处理
5012:请求
50121:请求
50122:请求
50123:请求
12:用户机器
121:机器
13:软件系统
131:软件系统
132:软件系统
133:软件系统
14:可执行对象
141:可执行对象
15:启动模块
151:启动模块
16:应用程序
17:导入模块
171:导入模块
18:动态导入流程
19:管理模块
191:管理模块
20:可操作实体
201:可操作实体
21:用户
211:用户
212:软件代理程序
22:应用程序管理中心
231:可操作对象
24:可执行实体
25:挥发性应用程序
26:附近网络(家庭网络、办公网络)
27:第一连网设备(冷气机)
8:第二连网设备(电视机)
29:第三连网设备(照明设备)
30:软件控制器
31:冷气控制APP(挥发性应用程序)
32:电视机控制APP(挥发性应用程序)
33:照明控制APP(挥发性应用程序)
50124:请求
5013:请求
A1:挥发性应用程序
A2:启动程序
C1:元数据转换程序
C2:元数据转换程序
C3:元数据转换程序
D1:挥发性应用程序的元数据
D11:挥发性应用程序的元数据(原始内容)
D12:挥发性应用程序的元数据(部份内容)
D2:挥发性应用程序的可执行状态
D21:挥发性应用程序的可执行状态、Event组态档(可执行状态)
D22:Event组态档(可执行状态)
D3:应用程序状态
E1:启动事件
E2:可执行事件
E3:启动事件
E4:可执行事件
F1:流程
I1:可执行实体
I2:可操作实体
L1:用于动态加载运行挥发性应用程序的软件模块
M1:第一机器
M2:第二机器
O1:可执行对象
O2:可操作对象
O3:可执行对象
O31:APP组态文件(可执行对象)
O32:APP组态文件(可执行对象)
O33:APP启动器(可执行对象)
O4:可操作对象
P1:被动态加载运行的挥发性应用程序
PF1:步骤
PF2:步骤
PS1:步骤
PS2:步骤
PS3:步骤
S1:挥发性应用程序的注册服务(网络服务器)
T0:触发
T01:触发
T02:触发
T03:触发
T04:触发
T1:触发
T11:触发
T12:触发
T13:触发
T2:触发
T21:触发
T22:触发
T23:触发
T24:触发
T3:触发
T4:触发
T5:触发
U1:网络地址。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下各实施例的说明是参考附加的图式,用以例示本申请可用以实施的特定实施例。本申请所提到的方向用语,例如「上」、「下」、「前」、「后」、「左」、「右」、「内」、「外」、「侧面」等,仅是参考附加图式的方向。因此,使用的方向用语是用以说明及理解本申请,而非用以限制本申请。
附图和说明被认为在本质上是示出性的,而不是限制性的。在图中,结构相似的单元是以相同标号表示。另外,为了理解和便于描述,附图中示出的每个组件的尺寸和厚度是任意示出的,但是本申请不限于此。
另外,在说明书中,除非明确地描述为相反的,否则词语“包括”将被理解为意指包括所述组件,但是不排除任何其它组件。此外,在说明书中,“在......上”意指位于目标组件上方或者下方,而不意指必须位于基于重力方向的顶部上。
为更进一步阐述本申请为达成预定公开目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本申请提出的一种新型显示装置、显示系统,其具体实施方式、结构、特征及其功效,详细说明如后。
本申请得借由以下描述,包括以下的术语汇编以及结论性实例,而更充分地理解。为简洁起见,本说明书中引用的出版物,包括专利的公开内容,均并入本申请以供参考。
以下本申请的实施例是非限制性的,并且仅代表本申请的各种具体实施方式及特征。就最受限制的技术意义而言,本申请所述的「挥发性应用程序」也是一应用程序,其可包括一Web前端应用程序、渐进式网页应用程序(Progressive Web Application)、实时应用(Instant App),或者是任一种可被动态加载运行的软件服务。又,本申请所述的「软件系统」可包括一软件平台、操作系统,或者是任一种可被程序扩充的软件系统。此外,本申请所述的「软件模块」可包括一类别库、对象实体、软件组件、软件代理程序、应用程序,或者是任一种可被内部创建、安装、引入、生成、扩充和/或动态加载运行至本申请所述「软件系统」中运行的程序区块。另,本申请所述的「挥发性应用程序的元数据」可包括采用一标记式语言和/或依据一结构化协议所生成的一对象实体,且该标记式语言和/或该结构化协议的运用是用于描述一挥发性应用程序的至少一属性,其中包括该挥发性应用程序的APP名称、APP图标、功能描述、启动程序的位置、网络域名(Domain Name),和/或提供者信息等属性;其中,该对象实体包括一HTTP Header、JSON对象实体、XML对象实体,或者是XML档案。挥发性应用程序、软件系统、软件模块,及挥发性应用程序的元数据的实施方式,皆不以上述为限。
又,本申请所述的「连网设备」可包括一物联网设备、商用软件装置(commercial software appliance)、虚拟机(virtual appliance),和/或是任一种具有提供信息服务能力的硬件设备或软件装置(software appliance);其中,物联网设备的定义可参考:“https://www.arm.com/glossary/iot-devices”,软件装置的定义可参考:“https://en.wikipedia.org/wiki/Software_appliance”。再者,本申请所述的「挥发性应用程序」指的是可以经由一网络地址而被动态加载运行的一软件服务,它可以是一个未与外部系统整合而能够独立运行的软件服务,也可以是一个用来管理、操作、监视和/或控制一连网设备、网络通讯系统或工作流管理系统的服务的软件服务,但并不以上述为限;其中,该软 件服务是部署、储存,或发布于一外部服务器里,该外部服务器可以是一Web服务器、云端储存服务器、在线应用程序商店服务器或者是任一种具连网能力的计算器设备、物联网设备或软件装置;其中,该外部服务器和本申请所述「软件系统」及「软件模块」所在的机器是不同的计算器设备。该挥发性应用程序被动态安装和动态加载以前,该挥发性应用程序的启动程序并不需要被先行安装或引入到运行本申请所述「软件系统」及「软件模块」的机器里,当需要执行该挥发性应用程序的服务时,是经由该网络地址从该外部服务器里动态加载运行该挥发性应用程序后,始可操作该挥发性应用程序的服务;其中,为提升动态加载的效率,该挥发性应用程序可以被储存于一快取(Cache)里,在往后的动态加载过程中,可以从该快取的储存媒介里,动态加载该挥发性应用程序以提升效率,快取(Cache)的设计可参考:“https://en.wikipedia.org/wiki/Cache_(computing)”;其中,该挥发性应用程序的启动程序即为其可执行程序区块,本申请所述的「动态加载运行一挥发性应用程序」,所指的即为「动态加载该挥发性应用程序的可执行程序区块,并予以启动以执行该挥发性应用程序」。
另外,本申请所述的「可执行对象」指的是可以被安装至一软件系统中的一可执行实体(executable entity);其中,该可执行对象是根据一个由该软件系统所支持的应用程序单元的数据模型而生成,该可执行对象被安装至该软件系统后,将成为兼容于该软件系统的一可执行实体。该软件系统可以依据该应用程序单元的数据模型,对该可执行实体的资源类别作出有效地识别,借此,能够将其识别为一应用程序(App)并为其提供相应的管理机制,举例来说:为其提供包括行程管理(process management)、内存管理(memory management)、存储管理(storage management),和/或任一种针对应用程序(App)所设计的资源管理机制;其中,该可执行实体在该软件系统的执行时期里,是以一应用程序(App)的型态被显示于一操作接口上供用户开启,在该用户开启该可执行实体时,该可执行实体所对应的一挥发性应用程序将被动态加载运行;其中,当该挥发性应用程序与该软件系统的操作环境不兼容时,该可执行实体于被执行时,可以透过一转化器(Adapter)来对该挥发性应用程序进行驱动;其中,该应用程序单元的数据模型是一个通用的数据模型,包括连网设备的控制器(controller)、网络通讯活动的入口(portal)、云端服务的客户端软件(client),或任一种提供运算服务的软件应用程序(application software)皆可适用;其中,该可执行对象是一个可以被安装于该软件系统的App组态文件、App组态对象,或者是App启动器,而该可执行实体是该软件系统在加载该可执行对象后,依据该可执行对象的内容,产生于操作接口上的一可执行对象。,可执行对象的实施方式,不以上述为限。
另,本申请所述的「可操作对象」指的是可以被储存至一管理模块中的一可操作实体(operable entity);其中,该管理模块是一软件系统中的一软件模块,且该可操作对象是根据一个由该管理模块所支持的信息单元的数据模型而生成,该可操作对象被储存至该管 理模块后,将成为兼容于该软件系统或该软件系统中至少一软件模块的一可操作实体;其中,该可操作实体在该软件系统或该软件系统中至少一软件模块的执行时期里,可以被显示于一操作接口上供用户操作,当该可操作对象中的一可执行事件被用户触发时,与该可执行事件绑定的一可执行状态将会被驱动,并进而使得该可执行状态所对应的一挥发性应用程序被动态加载运行;其中,当该挥发性应用程序与该软件系统的操作环境不兼容时,该可执行状态在被执行时,可以透过一转化器(Adapter)对该挥发性应用程序进行驱动;其中,该信息单元可以是一网络通讯活动的通话记录、一连网设备的监控记录、一云端服务的活动预约,或任一种用以保存作业流程状态的信息单元;其中,该可执行状态是以一Event组态文件或Event组态对象的形式,与该可操作对象进行绑定;其中,该可操作对象是一个可以被储存于该管理模块的信息单元,而该可操作实体是该软件系统或该软件系统中至少一软件模块在加载该可操作对象后,依据该可操作对象的内容,产生于操作接口上的一可操作对象。,可操作对象的实施方式,不以上述为限。
本申请的「系统行程(OS process)」指的是操作系统(Operating System)用于加载、驱动、启动,和/或执行一程序时所建立的行程(Process);其中,系统行程(OS process)的相关技术可以参考:“https://en.wikipedia.org/wiki/Process_(computing)”。
请参阅图1,其是一挥发性应用程序的元数据示意图。以部署在一外部机器的一挥发性应用程序A1为例,依据一结构化协议,该挥发性应用程序A1的基本属性可以被组合并生成为一元数据D1;其中,该结构化协议是用XML标记式语言所定义的一数据结构,该元数据D1是基于该数据结构而生成的一XML对象实体;其中,该结构化协议为「挥发性应用程序」定义了五个基本属性,包括:通讯协议<protocol>、网域<domain>、存取点<access_point>、提供商<provider>,以及该挥发性应用程序A1的一启动程序A2的位置<location>。如图1所示,该挥发性应用程序A1的通讯协议是“https”,网域是“a.b.c”,存取点是“/app”,而该启动程序A2的位置是“https://a.b.c/app”。该元数据D1的作用,是让任一软件模块收到该元数据D1的内容时,可以依据该结构化协议的规范来读取其内容,并且能够根据其内容,确定(定位)出可用于动态加载运行该挥发性应用程序A1的网络地址,在本例中即为网络地址U1“https://a.b.c/app”,也即该启动程序A2在因特网中的位置。
特别说明的是,上述以XML数据结构作为元数据的结构化协议的方法,仅为本申请所采用的非限制性的实施例,为元数据内容定义数据结构的方法并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
当一软件模块收到某一挥发性应用程序的元数据内容时,可以采取如下几种不同的方式来确定(定位)出可用于动态加载运行该挥发性应用程序的网络地址:
一、如果该元数据内容中包含<location>属性,由于<location>属性的内容本身就指向了可用于动态加载运行该挥发性应用程序的网络地址,因此,直接根据该<location>属性的内 容即可确定(定位)出该网络地址U1。
二、如果该元资料内容中,并未填入<location>属性,该软件模块可以依据该元数据的<protocol>、<domain>,以及<access_point>属性的内容,组合出可用于动态加载运行该挥发性应用程序的网络地址;其中,包括<protocol>、<domain>,以及<access_point>都是可用于组合出该网络地址的代码,以图1里的元数据D1为例,透过图1所示的组合方式,可确定(定位)出可用于动态加载运行该挥发性应用程序A1的该网络地址U1,也即,<protocol>内容是该网络地址U1中的通讯协议的组成5001;<domain>的内容是该网络地址U1中的网域的组成5002;<access_point>的内容是该网络地址U1中的资源存取点的组成5003,组合方式不以本申请实施例为限,本申请采用的实施例为非限制性的实施例,熟悉本技术的人员可应需求而做均等的变更设计。
三、如果该元数据内容中,只有包含标识符<id>、提供商<provider>,以及存取点<access_point>等属性内容,则将至少有一内容会是可以用于作为查询参数的至少一代码,即该至少一代码的组合可被用于进行一查询,经由该查询来确定(定位)出可用于动态加载运行该挥发性应用程序的网络地址。以图1为例,在一个提供全球公用的网络服务器里,提供着一个用于注册挥发性应用程序的注册服务S1(register service),该注册服务S1是用于让不同的服务提供商可以将其所提供的挥发性应用程序的网络地址,注册于该注册服务S1中;其中,当一个服务提供商注册一挥发性应用程序时,至少需要提供包括该服务提供商的名称、该挥发性应用程序的存取点名称,以及用于动态加载运行该挥发性应用程序的网络地址等数据,注册完成后,将会由该注册服务S1为该挥发性应用程序提供一标识符<id>;其中,该注册服务S1提供一API,任一软件模块都可以透过该API对该注册服务S1进行查询,在查询时,只需要传入该标识符<id>,和/或该服务提供商的名称和该挥发性应用程序的存取点名称,待查询完成后,该注册服务S1将回传该挥发性应用程序的网络地址予发出该查询请求的软件模块;其中,该注册服务S1是由一HTTP Server或者是任一种可供资源注册的Server实作而成。在注册服务S1的支持下,标识符<id>,和/或服务提供商的名称<provider>和挥发性应用程序的存取点名称<access_point>也就成为了可以用于向该注册服务S1进行查询的代码,因此当该软件模块从元数据D1内容中,读取到标识符<id>,和/或提供商<provider>和存取点<access_point>的属性内容后,就可以透过对该注册服务S1的查询,来确定(定位)出可用于动态加载运行该挥发性应用程序A1的网络地址U1。
四、如果该元数据内容中所包含的是该注册服务S1提供的一REST URL,该REST URL是用于回传该网络地址U1的应用程序编程接口(Application Programming Interface),如此即表示该软件模块可以借由向该REST URL发出HTTP GET请求,从该注册服务S1的响应中获取到可用于动态加载运行该挥发性应用程序A1的网络地址U1;其中,对于熟悉软件技术的人员可知,REST URL是一种统一资源标志符(Unified Resrouce Identifier)的实 例,也可以视为是用于做资源读取的REST API。
特别说明的是,上述依据元资料的内容来确定(定位)出挥发性应用程序的网络地址的方法仅为本申请所采用的非限制性的实施例,依据元资料的内容来确定(定位)出挥发性应用程序的网络地址方法并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,一挥发性应用程序的一服务提供商,可以将该挥发性应用程序的元数据,储存至一HTTP Server所连结的文件系统或数据库系统中,并由该HTTP Server以URI(Uniform Resource Identifier)的形式为该元数据提供一存取链接,当一软件程序对该存取链接发出HTTP GET请求时,该HTTP Server将会以该元资料的内容作为响应的资料;如此一来,任一软件程序就都可以经由该存取链接来读取该元数据。以图1为例,当该挥发性应用程序A1的服务提供商,在将该挥发性应用程序A1的网络地址注册于该注册服务S1时,也可以同时将该挥发性应用程序A1的该元数据D1,注册于该注册服务S1中,并且由该注册服务S1为该元数据D1提供用于读取该元数据D1的一存取连结“https://volatile.apps/A3695”;其中,该存取连结中的“volatile.apps”是该注册服务S1的网域,“A3695”是该注册服务S1为该挥发性应用程序A1所提供的标识符;有了该存取连结,该挥发性应用程序A1的服务提供商在发布和/或传输该元数据D1的时候,就不需要直接地发布和/或传输该元数据D1的完整内容,只需要发布和/或传输该存取链接,任一软件模块收到该存取连结时,即可透过该存取连结来从该注册服务S1里读取该挥发性应用程序A1的该元数据D1的完整内容。
特别说明的是,上述将一挥发性应用程序的元数据以一存取链接进行发布或传输的方法,仅为本申请所采用的非限制性的实施例,存取连结的实作方式并不以上述为限,将一数据以一资源的形式发布于因特网,并且透过一URI(统一资源标志符)和/或API(应用程序编程接口,例如:REST API、Web Service等)来为该资源的访问机制提供实作的技术方法已十分普及,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
不同种类的软件系统,因应其技术架构的不同,而有不同的方法来动态加载运行一挥发性应用程序。举例来说,一个采用Web前端技术来实作其操作环境的Web软件平台,在其操作环境里,可以透过HTML5的内置框架(iFrame)来动态加载和运行一个由外部网域所发布的挥发性应用程序(例如:Web前端应用程序和/或渐进式网页应用程序);而一个采用Android应用程序技术来实作其操作环境的软件平台,在其操作环境里,则可透过WebView、浏览器或实时应用(Instant App)的驱动程序,来完成对Web前端应用程序、渐进式网页应用程序或Android实时应用的动态加载及运行的工作。不同种类的软件系统对用户接口(User Interface)、应用程序编程接口(Application Programming Interface)和/或应用二进制接口(Application Binary Interface)的支持都或有异同之处;因此,一般来说, 服务提供商通常会为一个软件服务,提供不同兼容版本的挥发性应用程序,以令该软件服务可以在所有不同种类的软件系统里动态加载运行。
承上所述,在本申请的一个实施例中,以图1为例,该挥发性应用程序A1的服务提供商,可以针对不同种类的浏览器、软件平台或操作系统,在网络上不同的机器和/或不同的网域里,为该挥发性应用程序A1所属的软件服务,提供各种兼容版本的挥发性应用程序,每一版本都由各自的网络地址所指向。在这个情况下,该挥发性应用程序A1的服务提供商透过该元数据D1发布的用于动态加载运行该挥发性应用程序A1的网络地址,可以是指向一代理服务器的一网络地址。当该挥发性应用程序A1所属的软件服务,需要被动态加载于一软件系统时,该软件系统将触发一浏览器、WebView,或实时应用的驱动程序,来向该代理服务器提交对该网络地址的一存取请求(例如:一个夹带着该软件系统相关信息的HTTP GET请求),以加载该网络地址所指向的可执行程序区块(挥发性应用程序的启动程序),该代理服务器收到该存取请求时,即可根据该存取请求里所夹带的信息(例如:该软件系统的相关信息),来决定是否应该要重新定向到另一网络地址(例如:指向最兼容的挥发性应用程序的网络地址),使最兼容的挥发性应用程序得以被动态加载和运行;其中,如果该网络地址指向的挥发性应用程序已经是最兼容的版本,那么,该网络地址可以不需要被重新定向。
承上所述,在本申请的另一实施例中,因应负载均衡的需求,该挥发性应用程序A1的启动程序A2,也可以发布在网络上不同的机器里,也就是在不同的机器里,都发布着同一版本的可执行程序区块,并由不同的网络地址所指向。首先,依据该元数据D1的内容所确定(定位)出来的网络地址,可以是先行指向一个代理服务器,然后由该代理服务器依据其所掌握的负载信息,来决定应该要重新定向到哪一个网络地址(另一网络地址),使得该挥发性应用程序A1的启动程序A2得以从另一网络地址被动态加载运行,由负载较低的机器提供相应的服务;其中,如果该网络地址已经是由负载不高的机器来提供服务,那么,该网络地址可以不需要被重新定向。
承上所述,在本身的另一实施例中,不论是依据该元资料D1所确定(定位)出来的网络地址或者是由代理伺服器重新定向后的另一网络地址,为了让该挥发性应用程序A1的动态加载效率更高,该挥发性应用程序A1的启动程序A2在动态加载的过程中,都可以被储存于作为一个快取(Cache)的储存媒介里,并让该外取(Cache)与用于动态加载该启动程序A2的该网络地址和/或该另一网络地址相互对应,使得之后的动态加载工作中,可以从该快取(Cache)里,对该挥发性应用程序A1的启动程序A2进行动态加载,来提升动态加载的效率。其中,为挥发性应用程序提升动态加载效率的各种快取(Cache)方法(包括:Local Cache、Remote Cache,和/或Distributed Cache),可以参考“https://medium.com/capital-one-tech/caches-are-key-to-scaling-da2749adc6c9”。
特别说明的是,上述为挥发性应用程序的网络地址进行重新定向和提升动态加载效率的方法,仅为本申请所采用的非限制性的实施例,为挥发性应用程序的网络地址进行重新定向和提供动态加载效率的方法,并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
请参阅图2,其是动态加载运行一挥发性应用程序的运作概念示意图。动态加载运行一挥发性应用程序的基本运作流程,所指的是一机器M1(第一机器M1)里的软件系统,从另一机器M2(第二机器M2)加载该挥发性应用程序的一启动程序,并且,进而在该机器M1上的一系统行程(OS process)P1中,启动和运行该挥发性应用程序所提供的服务,运行完毕后,该挥发性应用程序的启动程序将直接随着该系统行程P1的结束而被消除。在本申请的一个实施例中,该启动程序的部分内容可以被缓存于一高速缓存(Cache)中,以备下次动态加载运行该挥发性应用程序时,能够用来提升动态加载的效率;其中,该启动程序可以是一Web前端应用程序和/或渐进式网页应用程序的相关可执行程序区块、Instant App的相关可执行程序区块,或者是任一种可用以启动该挥发性应用程序的软件服务的程序区块。
承上所述,如图2所示,L1是用于动态加载运行挥发性应用程序的软件模块,其中包括浏览器、WebView、HTML5内置框架(iFrame)及实时应用的驱动程序都是本申请中对软件模块L1所提供的实施方式,可用于动态加载运行挥发性应用程序的软件模块不以此限,熟知本技术的人员可依据实际需求而进行任何均等的变更设计。
用于动态加载运行挥发性应用程序的软件模块L2是透过一联机50041,50042,从第二机器M2动态加载一挥发性应用程序的启动程序至第一机器M1后,接着对该挥发性应用程序的启动程序进行一驱动5005,以启动运行该挥发性应用程序。
以下举例各种在一软件系统中动态加载运行一挥发性应用程序(包括Web前端应用程序和实时应用)的方法。
第一种方法系Web系统的动态加载方法,以Web前端应用程序为例,Web前端应用程序是以HTML/CSS/Javascript技术开发而成。在一Web服务器里部署一Web前端应用程序,该Web前端应用程序是一挥发性应用程序,其相关可执行程序区块即为该挥发性应用程序的启动程序(例如:多媒体资源、HTML、CSS和/或Javascript等程序代码),将该Web前端应用程序的网络地址设置为「https://a.b.c/app」后,该网络地址就成为了该Web前端应用程序的动态加载位置,接着,即可在任何一个能够驱动一HTML5内置框架(iFrame)、WebView,或浏览器的软件系统里,透过HTML5内置框架、WebView,或浏览器,将该网络地址「https://a.b.c/app」所对应的该Web前端应用程序动态加载运行;其中,HTML5内置框架、WebView及浏览器是用于动态加载运行该Web前端应用程序的软件模块L1的实施方式,在HTML5内置框架、WebView和浏览器的实作里,都具有驱动一 HTML/CSS/Javascript软件引擎的功能,在同一软件系统(例如:终端操作系统)里,彼此甚至可以共享同一HTML/CSS/Javascript软件引擎。
其中,HTML5内置框架是在HTML/CSS/Javascript软件引擎本身的执行环境中,通过Web技术所生成的对象实体;浏览器则是以一独立应用程序的形式,安装至一终端操作系统里;而WebView则是以一软件组件的形式,嵌入于一原生应用程序的人机操作接口里,为该原生应用程序提供动态加载运行Web前端应用程序的能力。对于终端操作系统和原生应用程序来说,浏览器和WebView都是一种转化器(Adapter),在终端操作系统和原生应用程序的操作环境(或称作业环境)里,它们是能够用来动态加载运行一异质系统(Web系统)的应用程序和软件组件;其中,用于动态加载运行异质系统的转化器(例如:浏览器或WebView),可以是由终端操作系统直接提供,内建在终端操作系统;或者是被整合至一可执行对象和/或一启动模块中,由该可执行对象和/或该启动模块本身来提供;又或者是一个即插即用的转化器,由使用者手动安装至终端操作系统。Web前端应用程序与终端操作系统/原生应用程序的接口适配,以及本申请对浏览器和WebView的采用,皆为本申请对转化器(Adapter)所提供的非限制性的实施例,但并不以此限。对于本申请所述软件系统、软件平台和/或操作系统所提供的操作环境来说,转化器(Adapter)的作用主要是用于将具有不兼容接口实作的应用程序适配至该操作环境中,其作法是以该操作环境所设计或支持的接口实作来对不兼容的接口实作进行包裹;使得具有不兼容和兼容接口实作的应用程序都可以在该操作环境上,以相同或均等的接口来进行管理、驱动、执行、和/或操作。其中对接口实作的转化所指的是包括对用户接口(User Interface)、应用程序编程接口(Application Programming Interface)、和/或应用二进制接口(Application Binary Interface)的适配,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上所述,作为一个软件平台或操作系统的系统供货商,可以在其所提供的该软件平台或该操作系统的操作环境中,以跨平台的Java程序语言开发一应用程序来做为挥发性应用程序的启动模块,该启动模块在该操作环境里,可以实作一个用于数据传输对接的接口,让该软件平台或该操作系统里的其他软件模块、应用程序,或任一可执行的程序区块,在需要对该Web前端应用程序进行动态加载运行时,都能够对该接口进行一触发,并传入一执行请求至该启动模块,令该启动模块依据该执行请求的内容,将该Web前端应用程序动态加载运行于该软件平台或操作系统的操作环境;其中,关于不同程序区块之间的「触发」和「数据传输对接」的各种实施方式,在稍后将提供进一步说明。
当该启动模块收到该执行请求时,首先,该启动模块需要先从该执行请求的内容,确定(定位)出可用于动态加载和运行该Web前端应用程序的该网络地址「https://a.b.c/app」;其中,如果该执行请求的内容本身已经内含了该网络地址,该启动模块可以从该执行请求的内容中,直接取出该网络地址;又,如果该执行请求的内容是一组态,且该组态的内容 包含着该Web前端应用程序的元数据,则该启动模块可以参照图1所示的方法,依据该Web前端应用程序的元数据来确定(定位)出该网络地址「https://a.b.c/app」;另,如果该执行请求的内容是一个指向该Web前端应用程序的元数据的存取链接,从该执行请求中取得该存取链接后,该启动模块可以先透过该存取连结取得该Web前端应用程序的元数据后,再依据该Web前端应用程序的元数据来确定(定位)出该网络地址「https://a.b.c/app」。接着,在取得可用于动态加载运行该Web前端应用程序的该网络地址「https://a.b.c/app」后,该启动模块即可透过呼叫java.awt.Desktop.browse(“https://a.b.c/app”)的方式,开启一个浏览器,并将该网络地址传入该浏览器,由该浏览器生成一沙盒环境(sandbox),将该Web前端应用程序动态加载运行在其中。
承上所述,在本身的另一实施例中,该启动模块可以在本身的应用程序窗口里嵌入一WebView,在收到该执行请求并且确定(定位)出该网络地址「https://a.b.c/app」后,即可将该网络地址传入该WebView,由该WebView生成一沙盒环境(sandbox),将该Web前端应用程序动态加载运行在其中。
承上所述,在本身的另一实施例中,该启动模块本身也可以直接以一软件组件或一可执行的程序区块的形式整合至一浏览器里,然后,将该浏览器安装至该软件平台或该操作系统后,对于该软件平台和该操作系统而言,该浏览器本身就成为一个挥发性应用程序的启动模块,当该浏览器收到该执行请求,并确定(定位)出该网络地址「https://a.b.c/app」后,该浏览器本身即可直接生成一沙盒环境(sandbox),将该Web前端应用程序动态加载运行在其中。
第二种方法是原生应用程序的动态加载方法,以Android操作系统的实时应用(Instant App)为例,Android操作系统的Instant App是由Google推行的一项技术,该技术旨于为Android原生应用程序提供动态加载运行的能力,使Android实时应用也可以成为一挥发性应用程序。首先,服务提供商可以采用Android应用程序技术来开发一个Android原生应用程序,该Android原生应用程序的相关可执行程序区块是准备用来做为一挥发性应用程序的启动程序,将会以Android实时应用的形式对外发布。接着,在开发完毕后,该服务提供商将该Android原生应用程序于在线应用程序商店上架时,该服务提供商可以为该相关可执行程序区块设定一网络地址,用以做为其动态加载的位置,发布完成后,该Android原生应用程序所提供的软件服务,即成为一个可被动态加载运行的Android实时应用;其中,关于Android实时应用的介绍,可以参考“https://developer.android.com/topic/instant-apps/index.html”。
承上所述,作为Android手机的系统供货商,同样可以在其所提供的手机操作系统里,以Java程序语言开发一启动模块,该启动模块在该手机操作系统的操作环境里,同样可以实作一个用于接收执行请求的接口,当该启动模块收到一个对该Android实时应用进行动态 加载运行的执行请求,并从该执行请求的内容里,确定(定位)出可用于动态加载运行该Android实时应用的该网络地址后,可以直接透过执行命令行指令的方式来驱动adb tool,通过adb tool来启动该网络地址,并借此在该Android操作系统的操作环境里,生成一沙盒环境(sandbox),并将该网络地址所对应的该Android实时应用动态加载运行于其中;其中,adb tool做为Android实时应用的驱动程序,在本例中其是用于动态加载运行该Android实时应用的软件模块L1的实施方式,驱动adb tool以启动该Android实时应用的命令行指令,可以参考「adb shell am start-a android.intent.action.VIEW\-d“该Android实时应用的动态加载位置”」,执行一命令行指令的方式可透过呼叫「java.lang.Runtime.getRunTime().exec(“该命令行指令”)」来完成。
特别说明的是,上述动态加载运行一挥发性应用程序的各项方法仅为本申请所采用的非限制性的实施例,将来自外部机器的挥发性应用程序予以动态加载运行的方法并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
请参阅图3,其是一启动模块的基本运作流程示意图。本申请所述的「启动模块」,在其动态加载运行一挥发性应用程序的基本运作流程里,首先,发出一触发T0至该启动模块以提交一请求5006,该请求5006的目的在于传入一执行请求,在该启动模块通过一数据传输对接取得该执行请求的内容后,即可执行一运算5007,该运算5007依据该执行请求的内容,确定(定位)出可用于动态加载运行该挥发性应用程序的一网络地址,接着,由该启动模块透过另一触发T1以提交另一请求5008,该另一请求5008的目的在于将该网络地址传送至另一软件模块或一软件引擎,驱动该另一软件模块或该软件引擎,动态加载运行该挥发性应用程序于其中;其中,所述「触发」和「数据传输对接」的方法,在稍后将提供进一步说明。
该启动模块是透过实作一个数据传输对接的接口来接收该触发T0的通知以及该执行请求的内容,该触发T0和该执行请求可以是由不同的来源所发出,现介绍几种不同的发出来源如下:
一、该执行请求可以是因应某一可操作对象的一可执行事件被一用户触发而发出;其中,该可操作对象是以一可操作实体的形式被显示在一操作接口上供该用户操作,当用户在操作该可操作实体时,触发了绑定于该可操作对象中的一可执行事件后,负责处理该可执行事件的一程序区块,即可透过该启动模块所提供的该接口,发出该触发T0和传入该执行请求至该启动模块,驱动该启动模块依据该执行请求的内容,动态加载运行该执行请求所对应的挥发性应用程序。
二、该执行请求也可以是因应某一可执行对象被一用户开启而被发出;其中,该可执行对象是以一可执行实体的形式被显示于一操作接口上供该用户开启,当该用户在开启该可执行实体时,负责处理该开启事件的一程序区块,即可透过该启动模块所提供的该接口, 发出该触发T0和传入该执行请求至该启动模块,驱动该启动模块依据该执行请求的内容,动态加载运行该执行请求所对应的挥发性应用程序。
三、该执行请求也可以是因应一用户于该启动模块本身所提供的操作接口上,输入或点击某一个挥发性应用程序的网络地址所发出;其中,该启动模块可以是一窗口应用程序,且该启动模块于其所显示的操作接口上,提供一文字输入组件或显示一网络地址列表,供该用户进行操作,让该用户可以输入或选择该网络地址来进行开启,然后,该启动模块就可以将该网络地址包裹成该执行请求后,发送该执行请求至本身负责接收执行请求的一程序区块里执行,驱动该程序区块依据该执行请求的内容,动态加载运行该网络地址所对应的挥发性应用程序。
承上,在本申请的一个实施例中,该启动模块用于动态加载运行该挥发性应用程序的该网络地址,是经由该执行请求而传入至该启动模块;其中,如果该执行请求的至少一内容里已经内含该网络地址,则该启动模块可以直接从该执行请求中,读取该网络地址;如果该执行请求的至少一内容是该挥发性应用程序的元数据的至少一内容,则该启动模块可以参考如图1所示的各项方式,依据该至少一内容来确定(定位)出可用于动态加载运行该挥发性应用程序的该网络地址;或者,如果该执行请求中内含的是该挥发性应用程序的元数据的一存取链接,则该启动模块可以透过该存取连结取得该挥发性应用程序的元数据后,再依据该元数据的内容来确定(定位)出该挥发性应用程序的该网络地址。
承上,在本申请的一个实施例中,由于该启动模块的作业流程是相当固定的,因此,如果该执行请求的数据结构是一标准的结构,而且用于接收该执行请求的该触发T0,以及用于驱动该另一软件模块或软件引擎的该另一触发T1,都可以透过标准接口来完成,那么该启动模块可以是一个能够动态加载运行所有挥发性应用程序的通用性启动模块,并由系统供货商直接内建在其所提供的软件平台或操作系统之中,又或者该启动模块可以是经由一程序产生器(Code Generator)为每一个挥发性应用程序自动化产生而来。
特别说明的是,上述依据发出执行请求、解析执行请求,以及确定(定位)挥发性应用程序的网络地址的各项方法,仅为本申请所采用的非限制性的实施例,但并不以此限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
请参阅图4,其是一启动模块的实施概念示意图,其中,图4中的触发T01,T02,T03和图3中的触发T0是同一或均等的触发,请求50061,50062,50063和图3中的请求5006是同一或均等的请求,另外,图4中的触发T11,T12,T13和图3中的触发T1是同一或均等的触发,请求50081,50082,50083和图3中的请求5008是同一或均等的请求。本申请所述的「启动模块」可以有许多不同的实作方式,以下举例各种用于实作一个启动模块的方法:
一、该启动模块本身是独立运行于一软件平台或操作系统里的一应用程序,该应用程序经由一触发T01而收到一执行请求后,该应用程序可以透过另一触发T11来启动另一软 件模块,将该执行请求所指向的一挥发性应用程序,动态加载运行于该另一软件模块;其中,该另一软件模块可以是一浏览器、WebView,或者是一实时应用(Instant App)的驱动程序;其中,如果该另一软件模块是一浏览器或一实时应用(Instant App)的驱动程序,则该另一软件模块是独立在该启动模块之外的另一应用程序;如果该另一软件模块是一WebView,则该另一软件模块可以嵌入在该启动模块之中,与该启动模块同属一应用程序。
二、该启动模块本身是独立运行于一软件平台或操作系统里的一浏览器,该浏览器经由一触发T02而收到一执行请求后,该浏览器可以透过另一触发T12来驱动本身所提供的一软件引擎,将该执行请求所指向的一挥发性应用程序,动态加载运行于该软件引擎,其中,该软件引擎是一HTML/CSS/Javascript软件引擎。
三、该启动模块本身是可动态加载运行一异质系统的一软件组件(例如:WebView),嵌入在一操作系统的应用程序之中,该软件组件经由一触发T03而收到一执行请求后,该软件组件是透过另一触发T13来驱动本身所提供的一软件引擎,将该执行请求所指向的一挥发性应用程序,动态加载运行于该软件引擎。
除了以上各种实作方式之外,该启动模块本身也可以是一个Web软件系统中的软件模块,该软件模块收到一执行请求后,该软件组件可以透过开启一HTML5内置框架(iFrame),将该执行请求所指向的一挥发性应用程序,动态加载运行于该HTML5内置框架之中。
特别说明的是,上述实作一启动模块的各项方法仅为本申请所采用的非限制性的实施例,启动模块的实作方法并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
在图3和图4中,「触发T0,T1,T01,T11,T02,T12,T03,T13」的执行,都代表的是一程序区块对另一程序区块的驱动,向该另一程序区块提交一请求(例如:「请求50061,50062,50063」分别是「触发T01,T02,T03」所提交的请求,目的在于传入一执行请求;「请求50081,50082,50083」则分别是「触发T11,T12,T13」所提交的请求,目的在于动态加载运行一挥发性应用程序);其中,「触发T0,T01,T02,T03」是因应一可执行对象被用户开启或者是一可操作对象的一可执行事件被用户操作后所发出,用以传送一执行请求至一启动模块,并驱动该启动模块对该执行请求提供服务;另外,「触发T1,T11,T12,T13」则是因应该启动模块收到该执行请求后所发出,用以驱动另一软件模块或一软件引擎动态加载运行一挥发性应用程序。
本申请在图3、图4,以及本申请各实施例说明中所述的「触发」,都是指一程序区块对另一程序区块的驱动。该程序区块透过该触发来驱动该另一程序区块进行一数据传输对接、执行一指令,和/或其组合。「触发」的具体实作可以透过许多不同方法或者透过该不同方法的组合来完成,此处仅介绍其中几种方法如下:
一、直接引入「该另一程序区块的程序代码」于「该程序区块的程序代码」中,该程 序区块对该另一程序区块的触发,是透过在该程序区块里直接执行该另一程序区块来完成,也即,该触发是在同一系统行程(OS process)中执行,且该程序区块和该另一程序区块是属于同一软件模块的程序区块。
二、将对该另一程序区块的驱动包裹于一函式,该程序区块对该另一程序区块的触发,是由该程序区块以同步化的函数调用方式,执行「该另一程序区块」所完成,其中,该函式可以和该程序区块在同一系统行程(OS process)中执行,或者该函式和该程序区块是在不同的系统行程(OS process)或不同的机器里执行,举例来说:当该函式和该程序区块是在不同系统行程(OS process)或不同机器里执行时,该函式是提供远程过程调用Remote Procedure Call的接口,供该程序区块呼叫。
三、该程序区块对该另一程序区块的触发,是透过异步的事件驱动方式来完成,即由该程序区块发出一事件来通知该事件的一监听程序,并由该监听程序执行「该另一程序区块」,其中,该监听程序可以和该程序区块在同一系统行程(OS process)中执行,或者该监听程序和该程序区块是在不同系统行程(OS process)或不同机器里执行,举例来说:该监听程序和该程序区块是在不同系统行程(OS process)或不同机器里执行时,可以透过行程间通讯interprocess communication,或一网络联机socket connection来接收该事件,并在收到该事件后,执行该另一程序区块。
特别说明的是,上述由一程序区块触发另一程序区块的方法并不以上述为限,各种可执行的程序区块之间对函数调用和事件交互的整合方法已十分普及,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
另外,本申请在各项实施例说明中所述的「数据传输对接」,都是指将一数据从一软件系统、软件模块,和/或程序区块传输至另一软件系统、另一软件模块,和/或另一程序区块的具体实现方式。一程序区块在对另一程序区块进行一触发时,经常需要同时进行数据传输对接来进行数据的传递,使该另一程序区块能够获得足够用于执行的数据。举例来说:当一程序区块对该启动模块进行一触发,驱动该启动模块为一执行请求提供服务时,该程序区块必须能够经由该触发将该执行请求传送至该启动模块;而当该启动模块对该另一软件模块或该软件引擎进行一触发,驱动该另一软件模块或该软件引擎动态加载运行一挥发性应用程序时,该启动模块也必须能够经由该触发将可用于动态加载运行该挥发性应用程序的网络地址,传送至该另一软件模块或该软件引擎。
承上,数据传输对接有许多不同的方法,在此仅针对某一程序区块在触发另一程序区块时,该二程序区块之间的数据传输对接,介绍其中几种方法如下:
一、如果该另一程序区块是被包裹于一函式里,该程序区块是透过呼叫该函式来触发该另一程序区块执行一工作,则该程序区块可以透过传入参数于该函式的方式,将执行该工作所需的数据传送至该另一程序区块。
二、如果该另一程序区块的程序代码是直接被引入于该程序区块的程序代码中,该程序区块是透过直接执行该另一程序区块的程序代码来触发该另一程序区块执行一工作时,则该程序区块可以将执行该工作所需的资料,直接存于一内存空间,该另一程序区块可以直接在该内存空间里,取得执行该工作时所需的数据。
三、由该程序区块提供用于读取数据的一函式,然后,透过事件(event)驱动的方式,触发一事件(event)来通知该另一程序区块执行一工作,接着,该另一程序区块收到通知后,由该另一程序区块呼叫该函式来接收执行该工作时所需的数据。
特别说明的是,以上各种方式均可在不同软件系统、软件模块,和/或程序区块上实施。,不同软件系统、软件模块,和/或程序区块之间在执行时期的数据传输对接方法并不以上述为限,各种不同的数据传输对接的技术已十分普及,普遍熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
请参阅图5,其是一可执行对象和可操作对象的基本运作流程示意图。本申请所述的「可执行对象」指的是可以被安装、引入,和/或自动化配置至一软件系统中的一挥发性应用程序,如图5所示的一可执行对象O1是一个名为“遥控器”的挥发性应用程序,该可执行对象O1是根据一应用程序单元的数据模型所生成,当该可执行对象O1被安装、引入,和/或自动化配置至一软件系统后,将成为兼容于该软件系统的一可执行实体I1(即为一遥控器App),并且在该软件系统的执行时期里,该可执行实体I1将被显示于一操作接口上供一用户开启。如图5所示,该操作接口是一App启动接口(APP Launcher),在该App启动接口(APP Launcher)上,该用户可以经由一点击50091来开启该可执行实体I1,进而将该遥控器App的可执行程序区块加载运行。首先,该点击50091将促使该App启动接口对遥控器App的启动事件E1提交一触发50101,收到该触发50101后,负责处理该启动事件E1的程序区块,即可对动态加载运行挥发性应用程序的流程做出相对应的处理50111,该处理50111即为发出一个相对应的执行请求,以使得该可执行对象O1所对应的该挥发性应用程序动态加载运行,并由该挥发性应用程序为该用户提供“遥控器”的软件服务;其中,动态加载运行挥发性应用程序的流程的实作可参考如图3和/或图4的实施例,不以此为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,该可执行对象O1可以有不同的实施方式,此处仅介绍其中几种如下:
一、该可执行对象O1本身是一个可以被安装和启动于该软件系统的应用程序。举例来说,该可执行对象O1是一Android App,其本身的图示和名称是依据该挥发性应用程序的App图标和App名称所设置,且该挥发性应用程序的元数据是以一组态或一存取连结的形式,被提供于该可执行对象O1的配置文件中。该软件系统可以是一Android操作系统,当该可执行对象O1被安装、引入,和/或自动化配置至该软件系统后,该软件系统会依据其 Java原始程序文件里,写入该Android Activity的程序代码的基本架构,对于Android App来说,每一个Android Activity的程序代码,都必须遵循着Android应用程序框架来完成实作,因此程序代码的基本架构都是一样的,可以由该程序产生器自动产生。(5)于该onStart函式,自动写入用于读取该组态档的程序代码,由于该组态文件的命名和位置都是由该程序产生器本身决定,且从一档案读取内容的程序代码基本是一样的,因此,“用于读取该组态档的程序代码”可以由该程序产生器自动产生。(6)接着,在上一步骤产生的程序代码下方,自动写入用于解析该组态档的程序代码,由于该程序产生器对于该组态文件里的元数据内容,具有解析的能力,对该元数据内容的数据结构有着充分的了解,且依据元数据内容的数据结构对元数据内容进行解析的程序代码基本上是固定的,因此,“用于解析该组态档的程序代码”同样可以透过该程序产生器自动产生。(7)接着,在上一步骤产生的程序代码下方,自动写入可用于确定(定位)出一网络地址的程序代码,该网络地址是可用于动态加载运行该挥发性应用程序的网络地址。参考图1及其相关实施例可知,依据元资料的内容来确定(定位)出该网络地址的相关程序代码基本上是固定的,因此,可透过该程序产生器自动产生。(8)接着,在上一步骤产生的程序代码下方,依据该挥发性应用程序的种类,自动写入用于驱动一Web前端应用程序或Android实时应用的程序代码,以完成该Android Activity的实作。参考图2及其相关实施例可知,用于驱动一Web前端应用程序或Android实时应用的程序代码,基本上是固定的,因此,可透过该程序产生器自动产生;其中,该挥发性应用程序的种类,可以设定于该元数据内容,或由该程序产生器本身所预先限定。(9)完成该Android Activity的实作后,自动生成一AndroidManifest.xml,并将各项资源,包括该Android Activity、App图示、App名称,以及该组态文件的相关信息,自动设定至该AndroidManifest.xml的内容里,以完成该Android App项目的建置;其中,该App图示和App名称,也可以是由该元数据内容所设定。(10)最后,完成该Android App项目的自动化建置后,该程序产生器即可对该Android App项目进行编译,为该挥发性应用程序产生一Android App(可执行对象),并为该Android App产生一安装文件,如果该程序产生器本身具有安装Android App的权限,即可将该Android App(可执行对象)直接安装于该手机操作系统之中。
承上所述,在本身的另一实施例中,在该程序产生器的运作流程中,当该程序产生器收到的是该挥发性应用程序的元数据的一存取链接、一App图标的加载位置,和一App名称时,首先,该程序产生器通过该存取连结取得该挥发性应用程序的元数据内容后,接着,同样采用上述步骤,即可自动产生可供安装的该Android App(可执行对象)。
承上所述,在本身的另一实施例中,在该程序产生器的运作流程中,如果一浏览器、WebView,或Android实时应用的驱动程序,对该挥发性应用程序的元数据内容,具有解析的能力,且提供了一个数据传输对接的接口,用来接收该组态档的内容,在这个情况下, 图标和名称,产生相对应的可执行实体I1,并显示于手机桌面上供用户点击。当用户在手机桌面上,点击该可执行对象O1所对应的该可执行实体I1时,首先,该软件系统会将该可执行对象O1本身的可执行程序区块(即该Android App的程序区块)加载并予以执行,接着,该软件系统可以透过一标准应用程序编程接口(例如:Android Activity应用程序编程接口),通知该可执行对象O1进行启动,也就是说,在这个情况下,该可执行对象O1的该启动事件E1,是由该可执行对象O1本身的一程序区块负责处理,接着,该程序区块的主要任务,是将设定于该可执行对象O1里的内容(例如:该组态或该存取连结)封装成一执行请求后,透过一数据传输对接传入至一启动模块,由该启动模块对该执行请求进行处理,并进而将该挥发性应用程序动态加载至该软件系统中运行。其中,Android Activity应用程序编程接口可以参考“https://developer.android.com/reference/android/app/Activity”,该软件系统对该可执行对象O1的onStart函数调用,可以视为是一启动事件的触发。其中,熟知本技术的人员可知,在该可执行对象O1(Android App)被安装至该软件系统时,不必将真正能够提供“遥控器”服务的该挥发性应用程序下载至该软件系统。
承上,在本申请的一个实施例中,由于该可执行对象O1的安装和启动流程可以是通用的流程,因此,该可执行对象O1可以透过一程序产生器(Code Generator)来自动产生,系统供货商或服务提供商可以将该程序产生器提供于该软件系统中;其中,该程序产生器是本申请所述「元数据转换程序」的一种实施方式。
承上,在本申请的一个实施例中,该程序产生器对该挥发性应用程序的元数据,具有解析的能力,能够根据该元数据的数据结构,加载其中的各项信息。在该程序产生器的运作流程中,当该程序产生器收到该挥发性应用程序的元数据、一App图标的加载位置,以及一App名称时,首先,可以在其所能存取的储存空间里,建立一文件夹,并且,在该文件夹中,分别建立用于存放AndroidManifest.xml、Java原始程序文件(Java source code file)、图像资源(drawable resource),以及配置文件(values)等相关子文件夹,借此针对该挥发性应用程序自动生成一Android App项目,其中,该程序产生器将用该Android App项目来产生一Android App,该Android App将用以做为该挥发性应用程序的可执行对象。自动生成该Android App项目后,该程序产生器可以下列步骤所述的方法来完成该Android App项目的实作:(1)从该App图标的加载位置将该App图标加载,并存入用于储存图像资源的子文件夹中。(2)在用于储存配置文件的子数据中,产生一组态档,并将该元数据的内容写入该组态档。(3)生成一个准备用于写入一Android Activity程序代码的Java原始程序文件,并将其存入用于储存Java原始程序文件的子文件夹中;其中,该Android Activity是用来作为该Android App的入口,当用户在一手机桌面上点击该Android App时,将由该Android Activity的一onStart函式,负责处理该Android App的启动工作;其中,该Android Activity的Package名称和Activity名称,可以由该程序产生器本身提供和设置。(4)在该 该程序产生器并不需要在该Android Activity的程序代码中,写入用于解析该组态档的程序代码,只需在执行完步骤(5)后,就可以直接写入一程序代码来完成该Android Activity的实作,不需要执行步骤(6)、(7)、和(8);其中,该程序代码的作用是在于透过该接口,将该组态档里的内容直接传入该浏览器、该WebView,或该Android实时应用的驱动程序,进而驱动该浏览器、该WebView,或该Android实时应用的驱动程序,对该组态档的内容进行解析与处理,以将该挥发性应用程序动态加载运行于其中。
承上所述,在本身的另一实施例中,在该程序产生器的运作流程中,当该程序产生器收到该挥发性应用程序的元数据的一存取链接、一App图标的加载位置,以及一App名称时,该程序产生器于该组态档的内容中,只需要将该存取连结设定于其中即可。在这个情况下,透过该接口将组态档的内容传入该浏览器、该WebView,或该Android实时应用的驱动程序时,该浏览器、该WebView,或该Android实时应用的驱动程序即可从该内容中,取得该存取连结。接着,该浏览器、该WebView,或该Android实时应用的驱动程序可以先行透过该存取连结取得该挥发性应用程序的元数据后,然后,对该元数据进行解析及确定(定位)出可用于动态加载运行该挥发性应用程序的网络地址,即可将该挥发性应用程序动态加载运行于其中。透过这个运作流程,包括该程序产生器以及该程序产生器所生成的Android App,都不需要对该挥发性应用程序的元数据进行任何形式的运算或处理,该程序产生器只需要在获得该挥发性应用程序的元数据的存取链接后,即可为该挥发性应用程序自动产生一可执行对象。
承上所述,在本身的另一实施例中,由该程序产生器所生成的该Android App(即该可执行对象O1),本身即为一启动模块。当该Android App被安装至一Android操作系统(即该软件系统)后,用户可以在Android操作系统所提供的桌面上,透过点击操作来启动该Android App,当该Android App的启动事件(即该onStart函式)被触发时,该Android App即可产生一执行请求,并将本身组态档中所包含的内容(挥发性应用程序的元数据或其存取链接)填入该执行请求中,即可透过一数据传输对接,传入一浏览器、一Android实时应用的驱动程序,或者是嵌入于该Android Activity的一WebView,进而将该挥发性应用程序动态加载运行于该Android操作系统中;其中,如果该Android App与该Android操作系统的是由同一企业所提供,在可控的资安条件下,该Android操作系统,在启动该Android App时,可以一并将该用户的身份数据(或账号数据)传入该Android App,当该Android App在产生该执行请求时,就可以将该用户的身份数据(或账号数据)填入该执行请求中,在动态加载运行该挥发性应用程序时,直接登入该挥发性应用程序所提供的服务,并且使该挥发性应用程序于执行时期中,可以透过该用户的身份数据(或账号数据)来确定(定位)该用户之访问权限。
二、该可执行对象O1本身是一个可以被该软件系统所管理的一数据实体。举例来说, 该可执行对象O1可以是由该软件系统所支持的一种App组态档,该App组态档中至少包括一App图示、一App名称,以及该挥发性应用程序的一元数据或该元数据的一存取链接。该软件系统在启动时,首先,可以读取其储存空间里所有的App组态档,然后,将各个App组态文件里的App图示和App名称加载之后,在其操作接口上,就可以为各个App组态档产生各自对应的可执行实体,透过这个方式,在操作接口上也就包含了该可执行对象O1所对应的该可执行实体I1,供用户进行点击。接着,当用户在操作接口上,点击该可执行实体I1后,该软件系统可以直接读取该执行对象O1所对应的App组态档,将其内容(包含挥发性应用程序的元数据或其存取链接)封装成一执行请求后,透过一数据传输对接将该执行请求传入至一启动模块,由该启动模块对该执行请求进行处理,并进而将该挥发性应用程序动态加载至该软件系统中运行。也即,在这个情况下,该可执行对象O1的该启动事件E1,可以是由该软件系统本身的一程序区块负责处理。其中,熟知本技术的人员可知,在该可执行对象O1(App组态档)被安装至该软件系统时,不必将真正能够提供“遥控器”服务的该挥发性应用程序下载至该软件系统。
承上,在本申请的一个实施例中,该App图示和该App名称,也可以是由该元数据的内容所指定,该软件系统是经由解析该元数据的内容后,将该App图示和该App名称加载并显示操作接口上。如果该App组态档的内容仅包含该元数据的该存取链接,则该软件系统可以透过该存取链接取得该元资料的内容后,再经由解析该元数据的内容,来加载该App图示和该App名称。
承上,在本申请的一个实施例中,该可执行对象O1可以透过一App组态产生器来自动产生,在该App组态产生器收到一挥发性应用程序的元数据或其存取链接时,可以新建一个App组态档,根据App组态文件的数据结构,将该元数据或该存取链接的内容,写入该App组态档里,并将其储存至该软件系统中的该储存空间,完成该App组态文件(可执行对象)的安装工作;其中,该App组态产生器是本申请所述「元数据转换程序」的一种实施方式。
在上述实施例说明中,该程序产生器和该App组态产生器都是可以一软件组件的形态,整合于任一软件模块和/或应用程序之中,提供于该软件系统。该挥发性应用程序的服务提供商,只要能够将该挥发性应用程序的元数据,以一组态或存取连结的形式,传入该软件模块和/或应用程序,就能够由该软件模块和/或应用程序自动产生该挥发性应用程序的可执行对象(App组态文件或Android App),并将其自动安装至该软件系统。此外,该挥发性应用程序的服务提供商,可以将用户的帐户信息直接提供于该挥发性应用程序的元数据,并使每一位用户有其各自专属的一元数据,如此一来,当一用户的元数据或其存取链接传入一启动模块来动态加载运行该挥发性应用程序时,该挥发性应用程序即可依据该帐户信息完成登入的工作。依此,即完成了动态安装和/或自动化配置的工作。
特别说明的是,上述可执行对象的各种实施方式和程序产生器/App组态产生器的实作方式,仅为本申请所采用的非限制性的实施例,但并不以此为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
另外,本申请所述的「可操作对象」指的是可以被储存至一管理模块中的一可操作实体(operable entity),如图5所示的一可操作对象O2是一个通话记录,而该操作对象O2是由一个负责管理通话记录的管理工具所管理,该可操作对象O2是根据一信息单元的数据模型所生成,当该可操作对象O2被储存至该管理工具后,将成为兼容于该管理工具的一可操作实体I2,并且在该管理工具的执行时期里,该可操作实体I2将被显示于一操作接口上供用户操作。如图5所示,该操作接口是一通话记录列表,在该通话记录列表里,用户可以经由一点击50092来对该可操作实体I2所代表的该通话记录进行回拨,该点击50092将促使该操作接口对该通话记录的可执行事件E2提交一触发50102,收到该触发50102后,负责处理该可执行事件E2的程序区块,即可对动态加载挥发性应用程序的流程做出相对应的处理50112,该处理50112即为发出相对应的执行请求至一启动模块,动态加载运行该可执行事件E2所对应的一挥发性应用程序,并由该挥发性应用程序来为该可执行事件E2提供“回拨”的应用程序服务;其中,动态加载运行挥发性应用程序的流程的实作可参考如图3和/或图4的实施例,不以此为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。另外,特别说明的是,任一可用以保存作业流程状态的信息单元,都可以是一可操作对象,可操作对象的实施方式并不以上述为限。
承上,在本申请的一个实施例中,该可执行事件E2与一Event组态档进行了绑定,该Event组态档中至少包括一挥发性应用程序的元数据或者是指向该元数据的一存取链接。该管理工具在为该可操作对象O2产生可操作实体时,可以同时将该可操作对象O2的Event组态档,从储存空间里全部载入,借以掌握该可操作对象O2的每一可执行事件与Event组态档的绑定关系。当用户在通话记录的操作接口上,点击“回拨”时,该管理工具就可以正确地读取该执行事件E2所对应的Event组态档,进而将该Event组态档所对应的挥发性应用程序动态加载运行。也即,在这个情况下,该可执行事件E2的驱动,是由该管理工具的一程序区块负责处理;其中,该Event组态档是一可执行状态的实施方式;其中,熟知本技术的人员可知,在该可操作对象O2(通话记录)被储存至该管理工具时,不必下载该真正能够提供“回拨”服务的挥发性应用程序。
承上,在本申请的一个实施例中,该Event组态档可以透过一Event组态产生器来自动产生。在该Event组态产生器收到一挥发性应用程序的一可执行状态时,首先,该Event组态产生器可以新建一个Event组态档,然后,根据Event组态文件的数据结构,将该可执行状态的内容写入该Event组态档里。接着,将该Event组态文件和该可操作对象一起储存至该管理工具的存储空间,并于该可操作对象的实体内容里,将至少一可执行事件与该Event 组态档进行绑定,举例来说,在该可操作对象的实体内容里,建立一个事件表格(event table),将每一个可执行事件所对应的Event组态文件,都记录于该事件表格之中,如此,当该至少一可执行事件被触发时,经由查询该事件表格,即可正确地驱动该Event组态文件来完成用户所需要的工作;其中,该Event组态产生器是本申请所述「元数据转换程序」的一种实施方式。
在上述实施例说明中,该Event组态产生器可以一软件组件的形态,整合于任一软件模块和/或应用程序之中,提供于该软件系统。该挥发性应用程序的服务提供商,只要能够将该挥发性应用程序的可执行状态,以一组态或存取连结的形式,传入该软件模块和/或应用程序,就能够由该软件模块和/或应用程序自动产生相对应的一Event组态档,并将该Event组态档绑定至一可操作对象后,储存至一管理工具里。透过这个方式,完成一个作业流程的动态导入工作。
特别说明的是,上述关于可操作对象的实施方式和Event组态产生器的各项实作方法仅为本申请所采用的非限制性的实施例,但并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,如图5所示,在本申请的一个实施例中,与该可操作对象的一可执行事件进行绑定的Event组态档,其所代表的实际上是一挥发性应用程序的可执行状态。如图5所示,当用户针对一通话记录,点击该回拨按钮时,用户的需求并不仅止于只是要动态加载运行能够提供“回拨”服务的一挥发性应用程序,而是需要在点击该回拨按钮时,除了能够动态加载运行该挥发性应用程序之外,还能够直接对该通话记录的另一方进行电话拨打的工作,进而完成回拨的工作。也即,本实施例中,该Event组态档所代表的其实是一通话作业流程的一可执行状态,在该可执行状态中,除了需要记录着能够提供通话服务的挥发性应用程序的元数据或其存取链接,也同时需要记录着与该通话作业流程相关的一应用程序状态(application state)。
举例来说,该可执行事件E2所连结的该Event组态档,其内容里所包含的应用程序状态(application state),将至少包括一通话ID以及可用于代表该用户身份的一用户ID。该应用程序状态是一个可以由该启动模块传入至该挥发性应用程序的状态设定,当该挥发性应用程序(通话服务)被动态加载运行后,在执行时期里,就可以依据该状态设定的内容,调整其本身内部的应用程序状态后,执行回拨的工作。该挥发性应用程序透过该通话ID,查找参与该通话的另一位用户的用户ID,并对其发出一个新的拨号请求,为该用户及该另一位用户建立一个新的通话活动。
请参阅图6,其是一挥发性应用程序的可执行状态示意图,其中,图6中的挥发性应用程序A1和图1中的挥发性应用程序A1是同一或均等的挥发性应用程序;图6中的元资料D1和图1中的元资料D1是同一或均等的元资料。该挥发性应用程序A1的可执行状态D2, 其本身也可以视为是该挥发性应用程序A1的元数据D1的另一种实施方式,该可执行状态D2本身的内容里,除了包括该挥发性应用程序A1的元数据D1外,还包含了一应用程序状态D3,该应用程序状态D3是用于在动态加载运行该挥发性应用程序A1后,令该挥发性应用程序A1能够依据其状态设定,将本身内部的应用程序状态,调整至最合乎用户需求的可执行状态。
承上,参考图6的该可执行状态D2,由于该挥发性应用程序A1的实施方式有不同的种类,因此启动模块可以有不同的方式,将该可执行状态D2里的该应用程序状态D3,以参数形式传入该挥发性应用程序A1里,在此仅介绍其中几种方法如下:
一、如果该挥发性应用程序A1是一Web前端应用程序,且该启动模块是一以Android原生应用技术所开发而成,当该启动模块收到针对该可执行状态D2所触发的一执行请求时,其中,该执行请求在被发出时,可以将该可执行状态D2的全部内容,填入该执行请求中,该启动模块收到后,就可以依据该执行请求里所包含的该元数据D1内容,取得可用于动态加载运行该Web前端应用程序的该网络地址,即<location>所指向的「https://a.b.c/app」,并且,可以将该执行请求内所包含的该应用程序状态D3,以URL Query Parameter的形式,加入该网络地址中「https://a.b.c/app?account=“U8796”&params=...」,接着,该启动模块可以驱动一浏览器或一WebView开启该网络地址,将该网络地址所指向的该Web前端应用程序(该挥发性应用程序)动态加载运行于其中,该Web前端应用程序被动态加载运行后,可对传入于其中的该URL网络地址「https://a.b.c/app?account=“U8796”&params=...」进行解析,取得该URL网络地址里所包含的状态设定后,即可依据该状态设定的内容,调整本身内部的应用程序状态,为用户执行相应的服务;其中,URL Query Parameter(URL Query String)可以参考:https://en.wikipedia.org/wiki/Query_string;其中,该启动模块驱动该浏览器或该WebView对该网络地址的开启,可视为是该启动模块对该Web前端应用程序的一「触发」方式,透过URL Query Parameter将状态设定传入该Web前端应用程序亦可视为是该启动模块对该Web前端应用程序的一「数据传输对接」方式。
二、如果该挥发性应用程序A1是一Android实时应用(Instant App),且该启动模块是一以Android原生应用技术所开发而成,当该启动模块收到针对该可执行状态D2所触发的一执行请求时,其中,该执行请求在被发出时,可以将该可执行状态D2的全部内容,填入该执行请求中,该启动模块收到后,就可以依据该执行请求里所包含的该元数据D1内容,取得可用于动态加载运行该实时应用的该网络地址,即<location>所指向的「https://a.b.c/app」,并且,可以将该执行请求内所包含的该应用程序状态D3,以URL Query Parameter的形式,加入该网络地址中「https://a.b.c/app?account=“U8796”&params=...」,接着,该启动模块可以通过adb tool启动该网络地址,并借此动态加载和运行该网络地址所对应的该Android实时应用。该Android实时应用在执行时期中,可以透过呼叫 android.app.Activity.getIntent().getData().getQueryParameter(...)的方法,来取得嵌入于该网络地址中的URL Query Parameter,即为该状态设定,并依据该状态设定的内容,调整本身内部的应用程序状态,为用户提供相应的服务;其中,该启动模块通过adb tool对该网络地址的启动,可视为是该启动模块对该Android实时应用的一「触发」方式,透过URL Query Parameter将状态设定传入该Android实时应用亦可视为是该启动模块对该Android实时应用的一「数据传输对接」方式。
承上,在本申请的一个实施例中,在动态加载运行该挥发性应用程序时,同样可以采用URL Query Parameter的方法,以参数形式将该用户的一身份数据(或账号数据)提供至该挥发性应用程序,使该挥发性应用程序在执行时期中,可以透过该身份数据(或账号数据)来确定(定位)该用户的访问权限。
特别说明的是,上述将状态设定传入至一挥发性应用程序的各项方法仅为本申请所采用的非限制性的实施例,将状态设定传入一被动态加载运行的挥发性应用程序的方法并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
请参阅图7,其是一挥发性应用程序的元数据/可执行状态与一可执行对象和一可操作对象的绑定示意图,其中,图7中的挥发性应用程序A1和图6中的挥发性应用程序A1是同一或均等的挥发性应用程序;图7中的元资料D1,D11和图6中的元资料D1是同一或均等的元资料;图7中的元资料D12和图6中的元资料D1是均等的元数据,其是透过一数据模型对该元数据D1的部分内容进行重整后的数据实体;图7中的可执行状态D21和图6中的可执行状态D2是均等的可执行状态,其是经过一数据模型重整后的可执行状态。
该挥发性应用程序A1的元数据D1的内容,与可执行对象O3和可操作对象O4之间,存在着一绑定关系,透过该绑定关系的链接,使该执行对象O3在被启动或者是该可操作对象O4的一可执行事件在被触发时,能够正确地对该挥发性应用程序A1完成动态加载运行的工作;其中,该绑定关系可以透过一组态档来完成,但是并不以此为限,如果该可执行对象是一可被执行的应用程序,则该组态档可以设置于该可执行对象里的一配置文件;该组态档本身可以是一App组态文件(可执行对象),该App组态档是以一个可识别的文件类型,储存于一软件系统所指定的目录,该软件系统可以从该目录,对该App组态档进行读取、加载,和驱动;该组态档也可以是一个Event组态档,设置于该可操作对象的储存空间中,在该可操作对象的实体内容中,该Event组态档和一可执行事件具有一连结关系;其中,该App组态档或该Event组态档除了可以储存成一档案之外,也可以是以一数据实体的形式,储存至一数据库当中。
请参阅图8,其是一可执行对象和可操作对象的一较佳实施概念示意图,并同时参考图7和图3,其中,图8中的挥发性应用程序A1和图7中的挥发性应用程序A1是同一或均等的挥发性应用程序;图8中的元资料D1和图7中的元资料D1是同一或均等的元资料;图 8中的可执行对象O3和图7中的可执行对象O3是同一或均等的可执行对象;而图8中的可操作对象O4和图7中的可操作对象O4是同一或均等的可操作对象;图8中的启动事件E3和图7中的启动事件E3是同一或均等的启动事件;图8中的可执行事件E4和图7中的可执行事件E4是同一或均等的可执行事件;图8中的触发T0,T1和图3中的触发T0,T1是同一或均等的触发;图8中的请求50064,50065和图3中的请求5006是同一或均等的请求;图8中的运算50071和图3中的运算5007是同一或均等的运算;而图8中的请求50084和图3中的请求5008是同一或均等的请求。
承上,在本申请的一个实施例中,该元数据D1所代表的是该挥发性应用程序A1的一元数据的实施方式。绑定于该可执行对象O3里的组态档内容,可以是该元数据D1的原始内容D11、该元数据D1的部分内容D12,或者是指向该原始内容D11或该部分内容D12的一存取连结;而该可执行状态D21所代表的是该挥发性应用程序A1的一可执行状态的实施方式。绑定于该可操作对象O4里的组态档内容,可以是该挥发性应用程序A1的可执行状态D21或者是指向给可执行状态D21的一存取连结。
承上,在本申请的一个实施例中,不论是该原始内容D11、该部分内容D12、该可执行状态D21,都可以先行注册于如图1所示的该注册服务S1里,由该注册服务S1为该原始内容D11、该部分内容D12,或该可执行状态D21产生相应的存取连结,以存取连结的形式来和该可执行对象O3以及该可操作对象O4进行绑定,可以避免将该原始内容D11、该部分内容D12,以及该可执行状态D21的完整内容,写入该可执行对象O3以及该可操作对象O4的组态档内容之中。也即,可以避免在该可执行对象O3和该可操作对象O4的组态档内容中,写入该原始内容D11、该部分内容D12,和该可执行状态D21的复本,以复本的形式写入组态档内容里,一旦该元数据D1需要进行修改,就需要另外花费许多的成本,才能够完成数据的同步化更新。透过存取连结所完成的绑定,只需要在该注册服务S1维护好最新的数据即可,大幅降低资料同步的成本。
承上,在本申请的一个实施例中,以存取连结的形式来进行绑定时,该存取连结将会被设定至该可执行对象O3的App组态文件或该可操作对象O4的Event组态档。负责处理该启动事件E3和该可执行事件E4的程序区块,从该App组态档或该Event组态档中,取得该存取连结后,可以通过存取连结从该注册服务S1里取得该原始内容D11、该部分内容D12,或该可执行状态D21的完整内容,并将其完整内容填入一执行请求,然后,透过一触发T0,将该执行请求传入一启动模块。收到该执行请求的该启动模块,就可以读取该执行请求,从中取得该原始内容D11、该部分内容D12,或该可执行状态D21的完整内容,然后,依据其中的内容,确定(定位)出可用以动态加载运行该挥发性应用程序A1的网络地址后,进而将该挥发性应用程序A1动态加载运行于另一软件模块(浏览器/WebView/实时应用的驱动程序)或软件引擎(HTML/CSS/Javascript软件引擎)之中。
承上所述,在本身的另一实施例中,负责处理启动事件E3和可执行事件E4的程序区块,也可以在执行该触发T0之前,就先行依据该原始内容D11、该部分内容D12,或该可执行状态D21的内容,来确定(定位)出可用以动态加载运行该挥发性应用程序A1的网络地址,然后,将该网络地址填入该执行请求后,透过该触发T0,将该执行请求传入该启动模块。透过这个方式,收到该执行请求的该启动模块,只要读取该执行请求的内容,就可以取得该网络地址,并直接将该挥发性应用程序A1动态加载运行起来。
承上所述,在本身的另一实施例中,负责处理启动事件E3和可执行事件E4的程序区块,也可以将存取连结直接填入该执行请求,然后,随即执行该触发T0,将该执行请求传入该启动模块。透过这个方式,收到该执行请求的该启动模块,需要先经由该存取连结来取得该原始内容D11、该部分内容D12,或该可执行状态D21的完整内容,接着,再来确定(定位)出可用以动态加载运行该挥发性应用程序A1的网络地址,进而动态加载运行该挥发性应用程序A1。
承上所述,在本身的另一实施例中,在该挥发性应用程序A1被动态加载运行时,自动配置于该原始内容D11、该部分内容D12,和该可执行状态D21的状态设定(帐户信息或应用程序状态),也可以透过参数的形式来传入该挥发性应用程序A1,令该挥发性应用程序A1得以依据该状态设定于执行时期调整本身内部的应用程序状态(application state)。其中,以参数形式将状态设定经启动模块传入挥发性应用程序的实施方法,可以参考本申请前述所介绍的URL Query Parameter示例。
由以上可知,“可执行对象和可操作对象”与一挥发性应用程序的绑定关系是通过将“一绑定内容和/或该绑定内容的存取连结”绑定至可执行对象和可操作对象(举里:透过App组态档或Event组态档)来完成,而在该绑定关系里,该绑定内容是该挥发性应用程序的元数据的一数据参照;在数据处理的过程中,由于该透过该资料参照的内容可以取得、恢复,或者是进一步查询出该挥发性应用程序的元数据内容,因此该绑定内容本身也就可用于代表该挥发性应用程序的元数据。
特别说明的是,上述元数据和可执行对象之间,以及可执行状态和可操作对象之间的各种绑定和/或驱动的方法,仅为本申请所采用的非限制性的实施例,但并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
本申请所述的「可执行对象」和用于驱动可执行对象的「软件系统」之间,存在着一个标准数据模型。也即,该软件系统之所以能够将一可执行对象显示于操作接口供用户点击并进而将其启动,是因为该可执行对象是依据该标准数据模型的格式所生成,使得该软件系统得以对该可执行对象进行识别、管理、和驱动。另,本申请所述的「可执行状态」和用于驱动可执行状态的「管理工具」之间,同样存在另一个标准数据模型。也即,「可执行状态」是依据该另一标准数据模型的格式所生成,也因此,用户在该管理工具的操作 接口上对一可操作对象的一可执行事件进行一触发时,该管理工具才能够依据该标准数据模型,正确的读取和驱动该可执行事件所绑定的一可执行状态。其中,所述的「标准数据模型」可以视为是该软件系统和该管理工具对「可执行对象」和「可执行状态」所支持的「统一化数据模型」。
承上,在本申请的一个实施例中,当该软件系统对「可执行对象」所支持的标准数据模型,和「挥发性应用程序的元数据」本身的数据模型是相同或均等的数据模型(即为兼容的数据模型),又或者是该软件系统在启动「可执行对象」时,并不需要解析其组态内容,只需要将其组态内容,封装成一个执行请求后,即传入启动模块,组态内容的解析工作是由启动模块来执行,在上述情况的任一情况下,都表示着「挥发性应用程序的元数据」并不需要进行任何的数据格式转换,就可以直接作为一可执行对象的App组态文件内容,进而安装至该软件系统;其中,「挥发性应用程序的元数据」不需要进行任何的数据格式转换,所指的是不需要透过其它的数据模型来重整「挥发性应用程序的元数据」的内容,并将其内容模型化成另一种格式的数据实体。
承上,在本申请的一个实施例中,当该管理工具收到一个挥发性应用程序的一可执行状态时,如果该可执行状态的数据模型,和该管理工具对「可执行状态」所支持的标准数据模型是相同或均等的数据模型(即为兼容的数据模型),又或者是该管理工具在驱动「可执行状态」时,并不需要解析其内容,只需要将其内容,封装成一个执行请求后,即传入启动模块,可执行状态的解析工作是由启动模块来执行,在上述情况的任一情况下,都表示着该可执行状态并不需要进行任何的数据格式转换,就可以直接作为一可操作对象的Event组态文件内容,导入至该管理工具;其中,该可执行状态不需要进行任何的数据格式转换,所指的是不需要透过其它的数据模型来重整该可执行状态的内容,并将其内容模型化成另一种格式的数据实体。
承上,在本申请的一个实施例中,当用于生成「挥发性应用程序的元数据」的数据模型,与该软件系统对「可执行对象」所支持的标准数据模型不是相同和均等的数据模型,且该软件系统在驱动可执行对象时,需要对可执行对象的组态内容进行解析,则「挥发性应用程序的元数据」可以通过一元数据转换程序的处理,然后,在数据格式转换的工作完成后,再和一可执行对象进行绑定。
承上,在本申请的一个实施例中,当用于生成「挥发性应用程序的可执行状态」的数据模型,与该管理工具对「可执行状态」所支持的标准数据模型不是相同和均等的数据模型,且该管理工具在驱动可执行状态时,需要对可执行状态的内容进行解析,则「挥发性应用程序的可执行状态」同样可以通过一元数据转换程序的处理,然后,在数据格式转换的工作完成后,再和一可操作对象的可执行事件进行绑定。
承上,在本申请的一个实施例中,绑定于该可执行对象的组态内容是由一元数据转换 程序所产生,该元数据转换程序是用一统一化数据模型(标准数据模型),对该挥发性应用程序的元数据的原始内容进行塑模,进而将该挥发性应用程序的元数据模型化为绑定至该可执行对象的该至少一内容;其中,当该挥发性应用程序的元数据的数据模型(数据模型)与该统一化数据模型是兼容的数据模型,该至少一内容是直接从该挥发性应用程序的元数据的原始内容里取得,而当该挥发性应用程序的元数据的数据模型与该统一化数据模型是不兼容的数据模型,该至少一内容是通过重整该挥发性应用程序的元数据的原始内容后间接取得。
承上,在本申请的一个实施例中,绑定于一可操作对象的一可执行事件的内容是由一元数据转换程序所产生,该元数据转换程序是用一统一化数据模型(标准数据模型),对一挥发性应用程序的可执行状态的原始内容进行塑模,进而将该挥发性应用程序的可执行状态模型化为可以绑定至该可操作对象的该可执行事件的内容;其中,当该挥发性应用程序的可执行对象的数据模型(数据模型)与该统一化数据模型是兼容的数据模型,该内容可以直接从该挥发性应用程序的可执行状态的原始内容取得,而当该挥发性应用程序的可执行状态的数据模型与该统一化数据模型是不兼容的数据模型,该内容是通过重整该挥发性应用程序的可执行状态的原始内容后间接取得。
请参阅图9,其是一元数据转换程序的实施概念示意图,其中,图9中的元资料D1和图6中的元资料D1是同一或均等的元资料;图9中的可执行状态D2和图6中的可执行状态D2是同一或均等的可执行状态。本申请所述的动态安装和/或自动化配置,在一般情况下,并不需要「元数据转换程序」即可完成,不过,在某些情况下,则需要「元数据转换程序」协助进行数据格式的转换,才能完成。其中,以下针对在不同的情况下,针对动态安装和/或自动化配置的需要,提供各种自动产生可执行对象和可操作状态的实作方法,并提供各种相应的元数据转换程序的具体实施方案:
一、如图9所示的(a),当一可执行对象O31是以一个App组态档的形式来提供至一软件系统,且用于生成该App组态文件和该元数据D1的数据模型是相同或均等的数据模型,则该元数据D1的内容不需要经过任何的资料格式转换,就可以直接写入该App组态档中,该App组态档就成为了可以被该软件系统启动的该可执行对象O31;其中,该可执行对象O31也可以是一App组态对象,相较于App组态档是以档案形式而被储存于该软件系统所链接的文件系统中,App组态对象则是以对象形式被储存于该软件系统所链接的数据库中,该软件系统可以从该数据库中读取该App组态对象,并将其显示于操作接口上供用户执行。
二、如图9所示的(b),当一可执行对象O32是以一个App组态档的形式来提供至一软件系统,但是,用于生成该App组态文件和该元数据D1的数据模型是不同(不兼容)的数据模型,在这个情况下,就需要一元数据转换程序C1先针对该元数据D1进行数据格式转换,才能够生成出可被提供至该软件系统的该可执行对象O32。首先,该元数据转换程序 C1依据该App组态文件的数据模型,对该元数据D1的内容进行重整,将该元数据D1的内容模型化至该App组态档的内容。接着,将模型化后的内容写入该App组态档,并储存至一文件系统中,该软件系统即可依据该App组态文件的数据模型,对该App组态档进行读取、管理,和启动;其中,该可执行对象O32也可以是一储存于数据库里的App组态对象。
三、如图9所示的(c),当一可执行对象O33是以一App启动器(可执行的应用程序)的形式来提供至一软件系统,在这个情况下,就需要一元数据转换程序C2来产生该可执行的应用程序,如前所述,由于可执行对象本身的作业流程是相当固定的,因此该元数据转换程序C2可以是一程序产生器(Code Generator),透过一流程F1来自动化产生兼容于该软件系统的该App启动器O33后,将其封装成一安装档,并提供至该软件系统中进行安装,该软件系统即可对其进行启动;该流程F1的实作不以本申请实施例为限,本申请采用的实施例为非限制性的实施例,将一具有固定作业流程的程序以程序产生器来自动产生的技术已十分普及,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
四、如图9所示的(d),当一可执行状态D22是以一Event组态档的形式来提供至一管理工具,且用于生成该Event组态档和该可执行状态D2的数据模型是相同或均等的数据模型,则不需要经过任何的资料格式转换,就可以直接填入该Event组态档中,该Event组态档就成为了可以被该管理工具驱动的该可执行状态D22;其中,该可执行状态D22也可以是一Event组态对象,相较于Event组态档是以档案形式而被储存于该管理工具所连结的文件系统中,Event组态对象则是以对象形式被储存于该管理工具所链接的数据库中,该管理工具可以从该数据库中读取该Event组态对象,并于用户执行一相对应的可执行事件时,对该Event组态对象进行驱动。
五、如图9所示的(e),当一可执行状态D21是以一Event组态档的形式来提供至一管理工具,但是,该Event组态档和该可执行状态D2的数据模型是不同(不兼容)的数据模型,在这个情况下,就需要一元数据转换程序C3先行针对该可执行状态D2的内容进行数据格式转换,才能够以转换后的内容,生成出可被提供至该管理工具的该可执行状态D21。首先,该元数据转换程序C3是依据该Event组态文件的数据模型,对该可执行状态D2的内容进行重整,将该可执行状态D2的内容模型化至符合该Event组态文件的数据模型的内容,也就是该可执行状态D21。接着,将模型化后的内容(该可执行状态D21)写入该Event组态档,并储存至该管理工具所连结的一文件系统中,该管理工具即可依据从该文件系统载入该Event组态档,并依据该Event组态文件的数据模型,对该Event组态档进行读取、管理,和驱动;其中,该可执行状态D21也可以是一储存于数据库里的Event组态对象,端视该管理工具所连结的存储空间是以文件系统为主,还是以数据库为主。
本申请所述的「元数据转换程序」,可以一软件组件或一可执行的程序区块的形态, 整合于任一软件模块和/或应用程序之中,提供于该软件系统。服务提供商只要能够将挥发性应用程序的元数据或可执行状态,以一组态或存取连结的形式,传入该软件模块和/或应用程序,就能够由该软件模块和/或应用程序自动产生相对应的一App组态档或者是Event组态档,并将其绑定至一可执行对象或者可操作对象后,接着,即可借由该可执行对象来完成一挥发性应用程序的动态安装和/或自动化配置工作,或者是借由该可操作对象来完成一个作业流程的动态导入工作;其中,元数据转换程序可提供各种用于进行数据传输对接的应用程序编程接口,以接收由各个软件模块传入的元数据、可执行状态或存取连结。
特别说明的是,上述各种App组态档、App安装档、Event组态文件和元数据转换程序的实施方法,仅为本申请所采用的非限制性的实施例,并不以上述为限,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
本申请旨在提供一种动态安装挥发性应用程序的方法,让服务提供商在挥发性应用程序的发布上,得以透过自动化的配置方式,将一挥发性应用程序动态安装于一操作系统和/或软件平台之中,以下进一步详细说明。
请参阅图10,其为本申请在软件系统中动态安装挥发性应用程序的方法的一流程示意图。动态安装挥发性应用程序的方法包括:
步骤PF1,在一软件系统中提供一安装模块,在该安装模块接收由一自动化配置引擎(auto-provisioning engine)发出的一动态安装请求时,启动一引入流程,在该引入流程的运作过程中,将供一用户执行的一可执行对象安装至该软件系统;其中,该可执行对象与一挥发性应用程序之间具有一绑定关系,且该绑定关系是通过将该挥发性应用程序的一元数据(metadata)和/或该元数据的存取链接绑定至该可执行对象所完成;以及
步骤PF2,在该软件系统中收到该用户对该可执行对象的一执行请求时,动态加载运行该挥发性应用程序;其中,该挥发性应用程序的启动程序的位置是由该元数据的至少一内容所确定(定位)。
请参阅图11,其系一挥发性应用程序的资源分配图。其中,在第二外部机器2里部署着一挥发性应用程序5,该挥发性应用程序5是由一服务提供商所设计,准备部署用于为其全球员工提供网络语音通话的一VoIP应用程序;其中,该挥发性应用程序可以是以一Web前端应用程序、渐进式网页应用程序,或实时应用(Instant App)的技术架构所开发而成。该服务提供商在完成该挥发性应用程序5的部署工作后,在第一外部机器1里的一外部网络服务4(注册服务)里,为该挥发性应用程序5的元数据7完成了注册,并由该外部网络服务4提供了一用于查询该元数据7的存取链接。该服务提供商同时也是其全球员工的系统供应用商,其为全球员工提供了许多用于日常办公的软件系统,在完成该挥发性应用程序5的部署工作后,该服务提供商也事先准备了一可执行对象8,并将该可执行对象8和该挥发性应用程序的元数据7完成了绑定,在本实施例中,该可执行对象8是预先产生的一 App组态档,且该App组态档可以被安装或引入至任一由该服务提供商提供予其全球员工使用的软件系统中;其中,该软件系统可以是一操作系统、一应用程序,或者是一可投影的工作空间;其中,该服务提供商也在该外部网络服务4里,为该可执行对象8完成了注册,并由该外部网络服务4提供了一个可用于取得该可执行对象8的存取链接;其中,App组态文件仅是可执行对象的一非限制性的实施例,并不以此为限,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计。该服务提供商也将该可执行对象8安装至部署于第三外部机器3的一可投影的工作空间6中,该可投影的工作空间6是一个可以被动态加载运行的工作空间,配置于该可投影的工作空间6的统一化工具的数据模型和该可执行对象8(App组态文件)的数据模型是相同或均等的数据模型,因此该可执行对象8是直接以一兼容的统一化工具型态,被安装并配置于该工作空间中。
有关本实施例中所述的“可投影的工作空间和统一化工具的具体技术实施”,可参考申请号为14/324069、名称为“A METHOD OF UNIFYING INFORMATION AND TOOL FROM A PLURALITY OF INFORMATION SOURCES”,以及申请号为14/577772、名称为“METHOD OF PROJECTING A WORKSPACE AND SYSTEM USING THE SAME”的美国专利申请,故在此即不再予以赘述。
特别说明的是,上述透过外部网络服务为App组态文件(本例中是一个预先产生的可执行对象)提供存取链接的方法,仅为本申请所采用的非限制性的实施例,为可执行对象提供存取链接的实作方式并不以上述为限,将一组态、对象和/或档案以一资源的形式发布于因特网,并且透过一URI(统一资源标志符)和/或API(应用程序编程接口,例如:REST API、Web Service等)来为该资源的访问机制提供实作的技术方法已十分普及,熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,请参阅图12,其系为表达挥发性应用程序的动态安装流程的运作路径的概念示意图。其中,本申请里所指的「引入流程」是一作业流程,该作业流程是从「一安装模块借由触发一程序区块的执行以动态安装一挥发性应用程序」做为开始,至「安装和/或引入一可执行对象至一软件系统所连接的存储空间」做为结束。在图11所对应的实施例中,该挥发性应用程序5的服务提供商,为协助其全球员工更有效率地完成日常所需的工作,并且能够有效地管理,实作了各式各样的软件系统,作为其全球员工存取企业资源的入口,其中,包括(一)为全球员工所使用的手机设备,以Android操作系统作为基础,提供一定制化的手机操作系统。(二)为全球员工所使用的桌面计算机设备,提供一窗口应用程序。(三)以Web技术架构,为全球员工提供了一可投影的工作空间,令全球员工可以在不同设备里,跨平台地动态加载运行该可投影的工作空间;其中,当该定制化的手机操作系统、该窗口应用程序,以及该可投影的工作空间,被运行于一计算器设备时,将提供一操作环境,令其员工可以透过该操作环境所建构的一操作接口,存取企业的各项资源。
过去,当该服务提供商为全球员工完成一个全新的工具(应用程序)时,必须将该全新的工具实作成一非挥发性应用程序,然后,透过不断地通知,才能令其全球员工将该全新的工具,下载并安装至该定制化的手机操作系统;或者是以软件组件的形式,透过系统整合来将该全新的工具的操作接口,整合进该窗口应用程序,接着,令其全球员工更新该窗口应用程序或该窗口应用程序的软件组件库;又或者是将该全新的工具,以统一化工具的形式,安装和引入该可投影的工作空间,并限制其全球员工仅能通过动态加载运行该可投影的工作空间后,才能在被投影的工作空间里,操作该全新的工具。不论是透过非挥发性应用程序的发布、软件组件或窗口应用程序更新,或者是可投影的工作空间的集中管理,都在成本与效益上出现瓶颈。
承上,在本申请的一个实施例中,透过本申请的方法,首先,该服务提供商可以将该全新的工具,设计成一挥发性的应用程序,图11中的该挥发性应用程序5即为一实施例。然后,该服务提供商可以本申请的申请方法,将该定制化的手机操作系统和该窗口应用程序实作为一可用于管理和驱动一可执行对象的操作环境。接着,该服务提供商即可在该定制化的手机操作系统以及该窗口应用程序里,分别提供一安装模块10,该安装模块10是一软件模块,它可以是以一应用程序或一软件代理程序的形式提供于该定制化的手机操作系统,又或者是以一类别库、软件组件,或一可执行程序区块的形式整合于该窗口应用程序之中,并且在该安装模块10的实作中,参考本申请内容所及,针对「触发」和「数据传输对接」的各项实施例,并据以实施包括(一)提供一应用程序编程接口,接受来自同一软件系统的软件模块和/或可执行程序区块的函数调用。(二)提供另一应用程序编程接口,接受来自其他机器的软件模块和/或可执行程序区块的远程过程调用。(三)以interprocess communication技术方法,提供一行程间的通讯服务,或者是以socket connection技术方法,提供一网络服务间的通讯服务,接收来自不同系统行程或者是不同网络服务的事件;其中,包括该应用程序编程接口、该另一应用程序编程接口、该行程间的通讯服务,以及该网络服务间的通讯服务,都是用于令该安装模块,可以接收来自其他软件模块、系统行程、网络服务,或者是可执行程序区块的「触发」,并借以从「触发」所伴随的「数据传输对接」中,取得一动态安装请求,举例来说:从应用程序编程接口的参数内容或者是不同网络服务传入的事件内容中,取得该动态安装请求;其中,关于「触发」和「数据传输对接」的实作方法,可以参考本申请所及的各项实施例,但并不以此为限,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,每当该安装模块10收到一触发,且接收到一动态安装请求时,即可依据该动态安装请求的内容,将一挥发性应用程序的一可执行对象安装至该定制化的手机操作系统或该窗口应用程序之中;其中,该可执行对象安装完成后,即可成为该定制化的手机操作系统或该窗口应用程序的操作接口上的一可执行实体,该用户在 操作接口上,点击该可执行实体时,将会传送一相对应的执行请求至一启动模块,由该启动模块将该挥发性应用程序5动态加载运行;其中,对于该定制化的手机操作系统来说,该安装模块和该启动模块可以是同一应用程序,在同一系统行程中被执行,或者该安装模块和该启动模块也可以是不同的应用程序,在不同的系统行程中执行,又或者该安装模块和该启动模块是同一应用程序,但是当该可执行对象被该用户执行时,该定制化的手机操作系统会生成一全新的系统行程,并在该全新的系统行程中驱动该启动模块,也即,每一次动态加载运行挥发性应用程序时,都是透过一个独立的系统行程,来完成挥发性应用程序的动态加载运行的工作;而对于该窗口应用程序来说,该安装模块和该启动模块可以在同一软件组件进行实作或者以两个不同的软件组件来进行实作,并且在相同的系统行程(该窗口应用程序的系统行程)中被执行。
承上,在本申请的一个实施例中,该服务提供商在完成该挥发性应用程序5的设计和部署工作后,可以透过一自动化配置引擎9,将该挥发性应用程序5的该元数据7的原始内容、该元资料7的原始内容的存取连结(本例中可由该外部网络服务4提供)、该可执行对象8,或者是该可执行对象8的存取链接(本例中可由该外部网络服务4提供),封装成一动态安装请求后,透过该安装模块10所提供的触发方法,由该自动化配置引擎9向该安装模块10执行一触发T2,该触发T2是用于提交一请求5012,该请求5012的目的在于将该动态安装请求的内容传入该安装模块10,驱动该安装模块10为该挥发性应用程序5完成一自动化配置(auto-provision)的工作,以扩充该定制化手机操作系统和该窗口应用程序的功能。该安装模块10收到该动态安装请求后,即可执行一触发T3来驱动一引入流程11,依据该动态安装请求的内容,取得该挥发性应用程序5的可执行对象,并将该挥发性应用程序5的可执行对象安装或引入至该定制化的手机操作系统或该窗口应用程序里。其中,依据一挥发性应用程序的元数据和/或其存取连结,产生一可执行对象的方法,可以参考本申请图9的各项实施例并据以实施,但并不以此为限,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计。其中,该挥发性应用程序5的该可执行对象8,如果兼容于该定制化的手机操作系统及该窗口应用程序的操作环境,则该安装模块10从该动态安装请求的内容里,读取该可执行对象8或者透过该可执行对象8的存取链接来取得该可执行对象8后,就可以直接完成安装和引入的工作;如果该可执行对象8不兼容于该定制化的手机操作系统及该窗口应用程序的操作环境,则该安装模块10可以在取得该可执行对象8的内容后,依据绑定于其中的该挥发性应用程序5的元数据7或其存取连结,重新产生兼容的可执行对象,然后再完成安装和引入的工作。
承上,在本申请的一个实施例中,一挥发性应用程序的元数据内容和该挥发性应用程序的相关可执行程序区块是由同一网络地址所指向。也就是说,用于查询和/或取得该挥发性应用程序的元数据内容的「存取连结」,即是用于动态加载运行该挥发性应用程序的「网 络地址」,举例来说,一个作为挥发性应用程序的Web前端应用程序在完成部署后,该Web前端应用程序的服务提供商可以在一Web服务器(Web Server)上,为该Web前端应用程序设置一网络地址,该网络地址是做为动态加载运行该Web前端应用程序时,所使用的网络地址。工程开发人员可以将该挥发性应用程序的元数据的至少一内容,提供于该网络地址的HTTP Response Headers中,任一软件系统可以通过对该网络地址发出HTTP GET请求的方式,取得该Web前端应用程序的相关可执行程序区块,也可以通过对该网络地址发出HTTP HEAD的请求,从该请求的响应中取得所有与该网络地址相关的HTTP Response Headers,其中即包括该Web前端应用程序的元数据的至少一内容,透过这样的方式,该Web前端应用程序(挥发性应用程序)的元数据的存取链接和该Web前端应用程序的动态加载位置,可以是同一网络地址;其中,HTTP GET请求的响应里,在其HTTP Response Headers里,也可以包含有该Web前端应用程序的元数据内容。,上述透过同一或均等的网络地址来做为一挥发性应用程序的元数据的存取链接及其动态加载运行的网络地址,仅是本申请所使用的非限制性实施例,并不以上述为限,普遍熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,请参阅图13,其系一动态安装挥发性应用程序的网络配置示意图,并同时参考图11和图12,其中,图13中的第一外部机器1和图11中的第一外部机器1是同一或均等的第一外部机器;图13中的第二外部机器2和图11中的第二外部机器2是同一或均等的第二外部机器;图13中的第三外部机器3和图11中的第三外部机器3是同一或均等的第三外部机器;图13中的外部网络服务4和图11中的外部网络服务4是同一或均等的外部网络服务;图13中的挥发性应用程序5和图11中的挥发性应用程序5是同一或均等的挥发性应用程序;图13中的可投影的工作空间6和图11中的可投影的工作空间6是同一或均等的可投影的工作空间;图13中的安装模块10和图12中的安装模块10是同一或均等的安装模块;图13中的引入流程11和图12中的引入流程11是同一或均等的引入流程;图13中的触发T21,T22,T23,T24和图12中的触发T2是同一或均等的触发;图13中的请求50121,50122,50123,50124和图12中的请求5012是同一或均等的请求;图13中的自动化配置引擎91,92,93,94和图12中的自动化配置引擎9是同一或均等的自动化配置引擎;另外,图13中的该软件系统13是该服务提供商提供给其全球员工使用的该定制化的手机操作系统或该窗口应用程序;其中,该被动态加载运行的挥发性应用程序92所代表的是该挥发性应用程序5被动态加载运行于该软件系统13后,由该挥发性应用程序5所产生的操作环境。
承上,在本申请的一个实施例中,图12中的该自动化配置引擎9,可以透过一网络服务、一侦测程序、一应用程序,或者是一被投影的工作空间来完成实作;其中,该网络服务是一个和该软件系统13运行于不同机器上的外部网络服务4,91,该侦测程序93是被执行在该软件系统13中的一软件模块或一可执行的程序区块,该应用程序是一被动态加载运 行于该软件系统13的挥发性应用程序92,该被投影的工作空间94是一操作环境,该操作环境是该可投影的工作空间6被动态加载运行于该软件系统13后,在该软件系统13的操作接口里所产生的操作环境。
承上,在本申请的一个实施例中,该服务提供商将该挥发性应用程序5的元数据7或可执行对象8注册至该外部网络服务4,91后,基本上,该外部网络服务4,91就已经全部掌握了可用于产生一动态安装请求的必要信息。因此,该外部网络服务4,91可以被实作成一自动化配置引擎,当服务提供商在该外部网络服务4,91里为该挥发性应用程序5完成注册时,该外部网络服务4,91可以直接产生一动态安装请求,将该元数据7的原始内容、该元数据7的存取链接、该可执行对象8,和/或该可执行对象8的存取链接,封装于该动态安装请求,并且透过该安装模块10所提供的触发方法,对该安装模块10执行一触发T21,通过该触发T21将该动态安装请求传给该安装模块10,驱动该安装模块10为该挥发性应用程序5安装一相对应的可执行对象14至该软件系统13中;其中,该触发T21的实作,可以由该外部网络服务4,91建立一条连接至该安装模块10的网络联机(TCP/IP socket connection),通过该网络联机将该动态安装请求传给该安装模块10;其中,在本申请的一个实施例中,该安装模块10在每一员工的计算器设备里被启动时,可以将该计算器设备的IP地址以及该安装模块10所使用的通讯端口编号(Port Number)更新至一个可被该外部网络服务4,91存取的数据库中,如此一来,该外部网络服务4,91即可透过对该数据库的查询,取得全球员工所使用的计算器设备的IP地址以及该安装模块10所使用的通讯端口编号,据此建立网络联机(TCP/IP socket connection)并连接至每一员工的计算器设备中的该安装模块10;接着,就可以对每一计算器设备执行动态安装请求的触发工作,完成自动化配置的任务;其中,该安装模块10是一网络服务器(Socket Server),借由对外发布一IP地址和通讯端口编号来接受网络联机的连接请求,并可以通过网络联机接收动态安装请求。
承上,在本申请的一个实施例中,在该服务提供商将该挥发性应用程序5的元数据7或可执行对象8注册至该外部网络服务4,91后,可以将包括该元数据7的原始内容、该可执行对象8、该元数据7的存取链接,和/或该可执行对象8的存取链接,全部设置于一个该挥发性应用程序5在执行时期所能够连接的储存空间中,如此一来,当该挥发性应用程序5在被动态加载运行后,就可以从该储存空间里,取得可用于产生一动态安装请求的必要信息,透过这个方式,被动态加载运行后的挥发性应用程序92,其本身就可以被实作成一自动化配置引擎。当该挥发性应用程序5以一个Web前端应用程序的形式被动态加载运行于一浏览器,或者是以一个Android实时应用的形式被动态加载运行于一Android手机操作系统时,该被动态加载运行后的挥发性应用程序92在执行时期,即可产生一动态安装请求,并且透过该安装模块10所提供的触发方法,对该安装模块10执行一触发T22,通过该触发T22将该动态安装请求传给该安装模块10,驱动该安装模块10为该挥发性应用程序5 安装一相对应的可执行对象14至该软件系统13中;其中,该触发T22的实作,可以透过内部系统的数据传输对接来完成,由于该被动态加载运行后的挥发性应用程序92与该安装模块10是在同一计算器设备之中运行,因此,该挥发性应用程序92可以透过内部系统的函数调用或者是系统行程(OS process)之间的通讯来执行该触发T22,并借由该触发T22,将该动态安装请求传给该安装模块10,驱动该安装模块10为该挥发性应用程序5安装一相对应的可执行对象14至该软件系统13中;其中,在本申请的一个实施例中,该触发T22的实作,可以将该安装模块10实作成一Web服务器(Web Server),并且对外发布一个用于接收动态安装请求的HTTP API,如此一来,该挥发性应用程序92即使是运行于一浏览器的沙盒环境里,仍然可以建立一网络联机来连接至本地(IP 127.0.0.1)的该Web服务器,然后,对该安装模块10发出该动态安装请求,透过这个方式,即使部署于第二外部机器2里的该挥发性应用程序5,从未与该软件系统13做过任何技术上的整合,甚至从未有任何用于启动该挥发性应用程序5的可执行对象被安装于该软件系统13,当该服务提供商在第二外部机器2里完成该挥发性应用程序5的部署后,只要用户在其所操作的用户机器12里,将该挥发性应用程序5执行起来,该挥发性应用程序5在执行时期中,就可以由其本身来将自己自动化配置于该软件系统13。
承上,在本申请的一个实施例中,该服务提供商可以将一侦测程序93提供至该软件系统13。该侦测程序93可以透过轮询的方式,周期性地向该外部网络服务4,91进行查询,查询是否有任何一个新的挥发性应用程序被注册,并且需要自动化配置于该软件系统13。举例来说,当该挥发性应用程序5在该外部网络服务4,91完成了注册,并且被该侦测程序93透过轮询而查找到的时候,该侦测程序93即可向该外部网络服务4,91发出请求,取得该挥发性应用程序5的元数据7、该元数据7的存取链接、该可执行对象8,和/或是该可执行对象8的存取链接,封装成一动态安装请求后,透过该安装模块10所提供的触发方法,经由内部系统的函数调用或者是系统行程(OS process)之间的通讯,对该安装模块10执行一触发T23,通过该触发T23将该动态安装请求传给该安装模块10,驱动该安装模块10为该挥发性应用程序5安装一相对应的可执行对象14至该软件系统13中,在本申请的一个实施例中,该侦测程序93可以在侦测到一挥发性应用程序时,立即为该挥发性应用程序发出动态安装请求,也可以在侦测到至少一挥发性应用程序后,将该至少一挥发性应用程序的至少一属性(该至少一属性可由其元数据的内容中取得)显示于操作接口上供用户选择或由用户决定是否执行动态安装,接着,再依据用户的操作指示,为用户所需的至少一挥发性应用程序发出相对应的动态安装请求;其中,如果该软件系统13是一手机操作系统,则该侦测程序93和该安装模块10可以是各自独立运行的软件模块,执行在不同的系统行程(OS process)里,该侦测程序93可以透过系统行程间的触发来传递该动态安装请求予该安装模块10;如果该软件系统13是一窗口应用程序时,则该侦测程序93和该安装模块 10就会是在相同的系统行程里被执行,如此一来,该侦测程序93即可透过函数调用的方式来执行该触发T23。其中,在本申请的一个实施例中,该侦测程序93除了透过轮询方式向该外部网络服务4,91进行查找外,也可以透过网络群播(Multicast)的技术方法,搜寻网络中的不同连网设备,经由与该些不同连网设备的交互,查询出可用于管理、控制、监视和/或操作该些连网装置的服务的挥发性应用程序;,为一个软件模块(例如:侦测程序93)提供用于搜寻或侦测网络里各种连网设备和/或软件服务并取得其相关元数据的技术已十分普及,轮询及网络群播仅是本申请所使用的非限制性实施例,并不以上述为限,普遍熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,该服务提供商可以将该挥发性应用程序5的该可执行对象8安装至第三外部机器3里的一可投影的工作空间6,当该可投影的工作空间6被动态加载运行于该软件系统13时,该被投影的工作空间94(该可投影的工作空间6被动态加载运行后,依据该可投影的工作空间6的实体内容所生成的操作环境)本身也可以是一自动化配置引擎,该被投影的工作空间94里可以提供一导出程序,由该导出程序来将安装于该工作空间里的该可执行对象8的完整内容或者是该可执行对象8所绑定的该元数据7,封装成一动态安装请求,然后,透过该安装模块10所提供的触发方法,经由内部系统的函数调用或者是系统行程(OS process)之间的通讯,对该安装模块10执行一触发T24,通过该触发T24将该动态安装请求传给该安装模块10,驱动该安装模块10为该挥发性应用程序5安装一相对应的可执行对象14至该软件系统13中。
承上,在本申请的一个实施例中,该安装模块10在该软件系统13里运行时,其本身或者是该软件系统13中的另一软件模块也可以提供一个供用户操作的操作接口,在该操作接口之中,由该用户主动输入该挥发性应用程序5的元数据7、该元数据7的存取链接、该可执行对象8,和/或该可执行对象8的存取链接,然后由该操作接口将用户所输入的相关信息,封装成一动态安装请求后,传送给该安装模块10中,驱动该安装模块10为该挥发性应用程序5安装一相对应的可执行对象14至该软件系统13中。
承上,在本申请的一个实施例中,当该可执行对象8兼容于该软件系统13所提供的操作环境时,在引入流程11中,即可由该安装模块10直接将该可执行对象8安装于该软件系统13,也即,在这个情况下,该可执行对象8和该可执行对象14是同一实体,举例来说,该可执行对象8和该可执行对象14可以是相同的App组态档;但是,当该可执行对象8不兼容于该软件系统时,又或者是该自动化配置引擎91,92,93,94在封装一动态安装请求时,无法有效取得该可执行对象8的完整内容及其存取连结时,则兼容于该软件系统13的该可执行对象14可以是由该自动化配置引擎91,92,93,94透过一元数据转换程序来产生,然后,将该元数据转换程序所产生的该可执行对象14封装至该动态安装请求之中,接着,再传送给该安装模块10;其中,参考本申请内容里的元数据转换程序的各项实施方式,该元数据 转换程序根据该元数据7和/或该元资料7的存取链接的内容,即可为该自动化配置引擎91,92,93,94产生出兼容于该软件系统13的该可执行对象14。在另一较佳实施例中,该自动化配置引擎91,92,93,94也可以将该挥发性应用程序5的元数据7和/或其存取链接封装进该动态安装请求后,即传送至该安装模块后10,然后,由该安装模块10利用一元数据转换程序来产生该可执行对象14,并予以安装至该软件系统13;其中,参考本申请内容里的元数据转换程序的各项实施方式,该元数据转换程序是依据该软件系统13的技术标准和该元数据7的内容,来产生兼容于该软件系统13的该可执行对象14,该元数据转换程序根据该元数据7和/或该元资料7的存取链接的内容,即可为该安装模块10产生出兼容于该软件系统13的该可执行对象14。
特别说明的是,关于该触发T21,T22,T23,T24的实作方法,并不以上述为限,各种不同的数据传输对接、数据交互的技术已十分普及,普遍熟知本技术的人员可依据实际应用需求而进行任何均等的变更设计。
通过上述所及的各项方法,该服务提供商只需要将一个通用的安装模块10,引入至全球员工的用户机器12上的软件系统13后,就可以将任何一种客户端软件,以挥发性应用程序的形式,自动化配置于每一员工所操作的计算器设备(即用户机器12)中;其中,该服务提供商可以将其所使用的自动化配置引擎开放给供应链的企业伙伴使用,举例来说,该服务提供商可以将该外部网络服务4,91开放给企业伙伴使用,如此一来,不同企业部署在不同机房和不同网域的任一客户端软件,只要该客户端软件本身是一挥发性应用程序,当该客户端软件被部署完成后,无需和该用户机器12上的该软件系统13做任何系统整合,就可以透过该外部网络服务4,91,将一个可用于驱动该客户端软件的可执行对象,自动化配置于该软件系统13。如果该软件系统13是该用户机器12上的操作系统,则该软件系统13即成为一个可安装和启动来自不同来源的挥发性应用程序的操作系统;如果该软件系统13是该用户机器12上的一原生应用程序,则该软件系统13即成为一个可安装和启动来自不同来源的挥发性应用程序的超级应用。
承上,在本申请的一个实施例中,该软件系统13是该外部网络服务4,91所提供的一挥发性应用程序,其可以是一Web前端应用程序、一渐进式网页应用程序,或者是一实时应用。如此一来,则该软件系统13将可以是透过动态加载运行的方式,被提供于该用户机器12上。该软件系统13,作为该外部网络服务4,91本身所提供的挥发性应用程序,该可执行对象14可以是以App组态对象的形式,储存于该外部网络服务4,91所存取的一数据库中,该软件系统13被动态加载运行于该用户机器12后,可以查询该数据库中的所有App组态对象(包括该可执行对象14),并为每一App组态对象(可执行对象)于一操作接口上产生相应的可执行实体来供用户操作,用户可以通过点击该操作接口上的各个可执行实体,启动各个可执行实体所对应的挥发性应用程序,透过这样的设计模式,即可实现出一个以 挥发性应用程序的形式而存在的超级应用。
承上,在本申请的一个实施例中,透过本申请的申请方法,该软件系统13并不需要与该挥发性应用程序5(VoIP应用程序)进行系统整合,但是可以在该挥发性应用程序5被动态加载运行后,对执行该挥发性应用程序5的系统行程,提供生命周期的管理,举例来说,当用户将该系统行程由前景推至背景时,该软件系统13可以发出一事件,通知该挥发性应用程序5暂停所有运算的服务,当用户将该系统行程关闭时,该软件系统13可以发出另一事件,通知该挥发性应用程序5释放所有的系统资源,,该挥发性应用程序5针对该事件和该另一事件的处理方式是该挥发性应用程序5自行决定。
承上,在本申请的一个实施例中,当用户在该软件系统13的操作接口里,点击该可执行对象14所对应的可执行实体时,将会透过一触发,发出一执行请求至一启动模块,由该启动模块将该挥发性应用程序5动态加载运行。在动态加载运行该挥发性应用程序5的过程中,该启动模块可以将一状态设定以参数形式传入该挥发性应用程序5,其中,该状态设定可以包括该用户机器12的系统环境组态(例如:计算器设备的相关硬件信息)、执行该挥发性应用程序时所需要的应用程序组态(例如:用户的帐户信息),或者是应用程序状态(例如:该挥发性应用程序5被执行时的预设状态等),令该挥发性应用程序5得以依据该状态设定于执行时期调整本身内部的应用程序状态(application state);其中,在本申请的一个实施例中,用于执行该挥发性应用程序所需的帐户信息,也可以是由该用户机器12的系统环境组态中取得,在动态加载时,该启动模块可以向该用户机器12的一操作系统环境发出请求,取得被启用、登记或绑定于该操作系统环境中的一帐户信息,并以该帐户信息做为执行该挥发性应用程序时所需要应用程序组态,据以实现单一登录(Single sign-on)的功能。
请参阅图14,其为本申请在软件系统中动态导入一作业流程的方法的又一流程示意图。动态导入该作业流程的方法包括:
步骤PS1,在一软件系统中提供一启动模块,在该启动模块接收一执行请求时,依据该执行请求的内容来执行一应用程序;其中,该应用程序是安装于该软件系统的原生应用程序或者是需要被动态加载运行的挥发性应用程序。
步骤PS2,在该软件系统中提供一导入模块,在该导入模块收到该应用程序于执行时期(run time)所发出的一可执行状态(Executable State)时,启动一动态导入流程,在该动态导入流程的运作过程中,将供一用户操作的一可操作对象储存至一管理模块,并且为该可执行状态和该可操作对象的一可执行事件建立一绑定关系。
步骤PS3,在该可执行事件被该用户触发时,用于执行该可执行状态的另一执行请求将被发出,并执行步骤PS1以动态加载运行一相对应的挥发性应用程序以执行该可执行状态。
请参阅图15,其系一语音通讯的作业流程示意图。其中,该语音通讯的作业流程示意 图,代表的是一语音通话的受话方,在接收到语音来电后,接通该来电,乃至于该通话结束后,受话方通过该语音通话的通话记录,对发话方进行回拨的作业流程。可以一具体的实施案例对该作业流程做进一步的说明,首先,该受话方所操作的一手机,收到来自一发话方的一语音通话的来电通知,该通话方是透过一应用程序发起该语音通话,该语音通话的来电通知,是通过电信网络或者是因特网的通知渠道送达该受话方的手机,在接收到该来电通知后,在该手机的操作接口中,将会驱动该应用程序来为该语音通话产生一来电显示接口(Incoming Call Screen)。在用户对该语音通话执行「接听」的动作后,将会在手机的操作接口上,显示该语音通话的通话接口(In-Call Screen),该作业流程随即进入「等待接通」的状态,等待该语音通话的连接,在这个状态下,如果电信网络或因特网的讯号不良,该语音通话的连接将会失败,并使得该作业流程进入「通话结束」的状态。每当通话结束时,该应用程序会在该手机的一管理工具(通话记录的管理工具)中,产生一通话记录,该作业流程随即进入「等待回拨」的状态。该受话方可以在该手机上,执行该管理工具,检视该通话记录,并且在该通话记录的操作接口上(Call Log Info Screen),向该发话方进行回拨的动作,在该手机的操作接口上,一拨号接口(Dialer Screen)将会被执行,令该作业流程进入「回拨中」的状态。
承上,在本申请的一个实施例中,该通话记录的操作接口(Call Log Info Screen)是由该管理工具所提供。
承上,在本申请的一个实施例中,该来电显示接口(Incoming Call Screen)、该语音通话的通话接口(In-Call Screen),以及该拨号接口(Dialer Screen)是由不同的应用程序所提供。举例来说,当该用户在该来电显示接口(Incoming Call Screen)上,按下「接听」的按钮时,该来电显示接口(Incoming Call Screen)是透过一事件触发,驱动第二应用程序来产生该语音通话的通话接口(In-Call Screen),并由该第二应用程序执行接通该语音通话的工作,而当该用户在该通话记录的操作接口(Call Log Info Screen)上,按下「回拨」的按钮时,该通话记录的操作接口(Call Log Info Screen)是透过另一事件触发,驱动第三应用程序来产生该拨号接口(Dialer Screen),并由该第三应用程序执行回拨的工作,上述情境中,该作业流程中的各个状态是由不同的应用程序所执行。
承上,在本申请的一个实施例中,该来电显示接口(Incoming Call Screen)、该语音通话的通话接口(In-Call Screen),以及该拨号接口(Dialer Screen)是由相同的应用程序所提供。举例来说,该作业流程中的每一状态及其相对应的运算工作,可以实作在同一应用程序的项目中,也即,在该手机里是由同一应用程序来提供该来电显示接口(Incoming Call Screen)、该语音通话的通话接口(In-Call Screen),以及该拨号接口(Dialer Screen)。
请参阅图16,其系为表达一作业流程的动态导入流程的运作路径的概念示意图。其中,图16的软件系统131和图13中的软件系统13是同一或均等的软件系统;图16的触发T04 和图8中的触发T0是同一或均等的触发;图16的请求50066和图8中的请求50065是同一或均等的请求。本申请里所指的「动态导入流程」是一作业流程,该作业流程是从「一导入模块借由触发一程序区块的执行以动态导入一可执行状态」做为开始,至「绑定该可执行状态至一可操作对象,并储存该可操作对象至一管理工具所连接的存储空间」做为结束。透过本申请的申请方法,一软件系统的系统供货商得以让一应用程序的作业流程动态导入于其所提供的一软件系统中,并且让该软件系统的操作环境成为一应用状态引擎的驱动环境;其中,该软件系统是一操作系统、一超级应用,和/或一软件平台。
参考图16的动态导入流程并同时以图15的语音通讯为例,首先,系统供货商可以将一软件系统131提供于该受话方21的手机里,并在该软件系统131中,提供一应用程序的启动模块15、一可执行状态的导入模块17,以及一可操作对象的管理模块19;其中,该应用程序是可用于接听一语音通话的应用程序;其中,该可执行状态是一挥发性应用程序的可执行状态,且该可执行状态的内容中,包含着用于对该语音通话的发话方进行回拨的一状态设定(例如:该发话方的用户ID等),当该可执行状态被触发和启动时,该挥发性应用程序将会被动态加载运行,并依据该状态设定于执行时期调整本身内部的应用程序状态(application state)后,对该发话方进行拨号;其中,该可操作对象是一网络语音通话的通话记录。
承上,在本申请的一个实施例中,该软件系统131在执行时期里,收到一语音通话的来电通知时,该来电通知将会被传送至该启动模块15,并由该启动模块将一应用程序16加载运行于该手机,接着,由该应用程序16依据该来电通知的内容,产生一来电显示接口供该受话方21操作。该受话方21在该来电显示接口里,按下「接听」按钮后,该应用程序16可以由其本身来执行该语音通话的接通工作,并在手机屏幕上产生该语音通话的通话接口,让该受话方21得以进一步掌握该语音通话的接通状态及对该语音通话进行操作。在该语音通话结束时,该应用程序16将产生一可执行状态,并将一挥发性应用程序的元数据和一状态设定写入该可执行状态;其中,该挥发性应用程序是一可用于拨打语音通话的应用程序,且该挥发性应用程序的元数据是以原始内容、部分内容,或存取连结的形式,写入于该可执行状态;其中,该状态设定包括用于控制该挥发性应用程序进行拨号所需的相关信息(例如:该发话方的用户ID),令该挥发性应用程序在动态加载运行后,得以依据该状态设定的内容,调整其内部的应用程序状态,并对该发话方的用户ID进行拨号。在产生该可执行状态后,该应用程序16将透过一触发T4来提交一请求5013,该请求5013的目的在于将该语音通话的相关信息和可用于对该发话方进行拨号(回拨)的一可执行状态,传入一导入模块17,该可执行状态是用于连接一作业流程的至少一可执行状态中的其中之一,本例中语音通讯回拨流程是作业流程的非限制实施例,本申请所述的作业流程并不以此为限。在该导入模块17收到该语音通话的相关信息和该可执行状态后,即可启动一动态导入 流程18,在该动态导入流程18的作业流程中,该导入模块17可以触发T5一程序区块来执行该可执行状态的动态导入工作,该程序区块从该触发T5取得该语音通话的相关信息和该可执行状态后,即可产生相对应于该语音通话的一通话记录,并且将该通话记录里,用于「回拨」的一可执行事件和该可执行状态进行绑定,接着,即可将该通话记录和该可执行状态作为一可操作对象,储存至一管理模块19所链接的一文件系统或一数据库中。在本申请的一个实施例中,该可执行状态是以一Event组态档或一Event组态对象的形式,被储存于该管理模块19所链接的该文件系统或该数据库里;其中,该受话方21在该软件系统里执行该管理模块19时,可以经由其操作接口找到该通话记录,该管理模块19可以为该通话记录生成一可操作实体20,供该受话方21操作(如图5所示的通话纪录I2是一通话记录的可执行实体的实例)。随即,该受话方21即可透过该通话记录的可执行实体20,按下「回拨」按钮,对该通话记录的该发话方进行回拨;其中,关于该触发T4,T5的实作方法,各种不同的数据传输对接、数据交互的技术已十分普及,普遍熟知本技术的人员可参考本申请的各项实施例,并依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,用于动态加载运行该挥发性应用程序(用于拨打语音通话的应用程序)的该网络地址,可以在该网络地址的Response Headers中,写入该挥发性应用程序的元数据内容,也即,该网络地址和用于取得该挥发性应用程序的元数据的至少一内容的该存取连结,可以是同一网络地址。
承上,在本申请的一个实施例中,当该可执行状态的数据模型兼容于该管理模块19的可操作对象时,在动态导入流程18中,即可由该导入模块17所触发T5的程序区块,直接将该可执行状态绑定于该可操作对象,并储存于该管理模块19所链接的存储空间中,也即,在这个情况下,该可执行状态本身就是该可操作对象所绑定的Event组态文件或Event组态对象;但是,当该可执行状态的数据模型不兼容于该管理模块19的可操作对象时,则该导入模块17将透过一元数据转换程序来产生一兼容的可执行状态,在动态导入流程18中,即可由该导入模块17所触发T5的程序区块将该兼容的可执行状态(依据兼容于该可操作对象的数据模型而产生的可执行状态)绑定至该可操作对象之中。在另一较佳实施例中,该导入模块17也可以在收到该可执行状态后,不论其数据模型是否和该管理模块19的可操作对象兼容,都直接通过触发T5来将该可执行状态传给该管理模块19的程序区块,由该管理模块19利用一元数据转换程序来产生一兼容的可执行状态,将该兼容的可执行状态绑定于一可操作对象后,即可将其储存至其本身连结的存储空间。参考本申请内容里的元数据转换程序的各项实施方式,依据可操作对象的数据模型,元数据转换程序的作用在于能够将不兼容的可执行状态,重新整理以转换成兼容的可执行状态。
承上,在本申请的一个实施例中,当该受话方21按下「回拨」按钮时,将会触发该可执行事件(回拨)的执行,在该管理模块19里,负责处理该可执行事件的一程序区块,可 以将绑定于该可执行事件的该可执行状态(Event组态),封装至一执行请求,并透过一触发T04,将该执行请求传入至该启动模块15,由该启动模块15依据该执行请求里的该可执行状态的内容,确定(定位)出一个可用于动态加载运行一挥发性应用程序的网络地址,接着,即可经由该网络地址将该挥发性应用程序动态加载运行于该手机。
承上,在本申请的一个实施例中,在该管理工具为该通话记录生成该可执行实体20时,在该可执行实体20的操作接口里的「回拨」按钮,是依据该可执行状态的内容而被动态加入的。透过可执行状态的内容来动态加入一个可执行事件至一可执行实体的实作方法,可以在图7的基础上,提供一实施例做说明,图7的D21是一挥发性应用程序的可执行状态,在该可执行状态的内容中,可以为用于驱动该可执行状态的可视化组件指定一类型和/或一样式,并且将该可视化组件所提供的一可操作事件,做为用于驱动该可执行状态的可执行事件。举例来说,在图7的D21的内容中,可以加入一“event”内容,指定该可执行状态是由一按钮(可视化组件)所驱动,且该驱动是经由用户对该按钮进行一点击(onClick)而触发,任一管理工具在读取该可执行状态的内容后,即可依据该可执行状态里的该“event”内容,在操作接口上动态加入一按钮,并在该按钮上显示「回拨」的文字提示(依据“label”所指定的文字内容进行显示),以供用户进行操作,当用户点击该按钮时,该管理工具即可对该可执行状态进行驱动,也即,为该可执行状态产生一执行请求,传入一启动模块后,将该可执行状态所对应的一挥发性应用程序动态加载运行,由该挥发性应用程序执行回拨的服务。
Figure PCTCN2021098402-appb-000001
承上,在本申请的一个实施例中,在该管理工具为该通话记录生成该可执行实体20时,用于驱动该可执行状态的该可执行事件,可以是该可执行实体20的一启动事件(launch event),举例来说,图5的I2是一通话记录(可操作对象)的可操作实体,用户除了可以透过点击该可操作实体的「回拨」按钮,触发一可执行事件来进行回拨外,该管理工具也可以将用于「回拨」的该可执行事件与该可操作实体的启动事件进行连接,使该用户在通话记录的列表中,找到该笔通话记录后,就可以直接对该通话记录进行点击,进而驱动该可执行状态以进行回拨,其中,该启动事件所指的是用户对该可执行实体20的可视化组件进行点击或操作时,该可执行实体20的可视化组件所默认触发的事件。
承上,在本申请的一个实施例中,该可执行状态是用于连接一作业流程的至少一可执行状态中的其中之一,在该挥发性应用程序所回拨的另一语音通话结束后,该挥发性应用程序可以再透过一触发T4,将对应于该另一语音通话所产生的通话记录及可执行状态,储存至该管理模块19所链接的存储空间之中。透过这个方式,得以将语音通讯所驱动和支持的作业流程以该至少一可执行状态链接而成,并且动态导入至该软件系统131中。
承上,在本申请的一个实施例中,该软件系统131是以一手机操作系统的形式,提供于该手机里。在该软件系统131里,该启动模块15、该导入模块17,和/或该管理模块19可以分别以独立的应用程序来完成实作,也即,该启动模块15、该导入模块17,和/或该管理模块19可以是各自不同的软件模块,在该软件系统131的执行时期里,该启动模块15、该导入模块17,和/或该管理模块19是在不同的系统行程里被执行。
承上,在本申请的一个实施例中,该软件系统131是以一应用程序、一超级应用,和/或一软件平台的形式,提供于该手机的操作系统里。在该软件系统131里,该启动模块15、该导入模块17,以及该管理模块19是实作于同一软件模块中,也即,该启动模块15、该导入模块17,以及该管理模块19可以透过软件组件或者是可执行程序区块的形式,直接被整合于该软件模块之中,在该软件系统131的执行时期里,该启动模块15、该导入模块17,以及该管理模块19是在同一系统行程里被执行;其中,该软件系统131是以原生应用程序的技术架构开发而成,由该系统供货商将其内建于该操作系统,或由该受话方21将其安装至该操作系统;或该软件系统131是以渐进式网页应用程序(挥发性应用程序的一实施方式)的技术架构开发而成,由该系统供货商将其自动化配置至该操作系统,或由该受话方21将其主动安装至该操作系统。
承上,在本申请的一个实施例中,用于接收该来电通知的应用程序16是被预安装于该软件系统的一原生应用程序,或者是以可执行对象的型态,被预安装或被动态安装于该软件系统的一挥发性应用程序,又或者是一未安装的一挥发性应用程序。
承上,在本申请的一个实施例中,用于接收该来电通知的应用程序16和用于回拨的挥发性应用程序是同一应用程序。或者,用于接收该来电通知的应用程序16和用于回拨的挥发性应用程序是不同的应用程序,当该来电通知的语音通话结束后,用于接收该来电通知的应用程序可于该可执行状态之中,指定其他的挥发性应用程序来提供回拨的通讯服务。
承上,在本申请的一个实施例中,在图16中的用户21是一软件程序。举例来说,在该来电的语音通话的结束是因为网络异常所导致,则该通话记录在生成后,可以由该管理模块19启动一网络监测程序,当该网络监测程序侦测到网络讯号回复正常时,由该网络监测程序自动化地执行该通话记录里的该可执行事件(回拨),进而自动化地驱动绑定于该可执行事件的该可执行状态,对该语音通话的发话方进行回拨。
特别说明的是,上述动态导入作业流程的方法,并不限于语音通讯的作业流程,系统 供货商可以在其所提供的操作系统、超级应用,和/或软件平台中,针对各种适用于不同应用场景的可操作对象,提供相对应的导入模块和管理模块,借以让各式各样的作业流程得以被动态加载,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计。
本申请实施例还提供了一软件系统,其透过动态整合应用程序的方法,使多个不同信息源的挥发性应用程序及其各自所支持的不同作业流程可被动态安装和动态导入在其中,该软件系统包括:一安装模块,用于在该安装模块收到由一自动化配置引擎(auto-provisioning engine)所发出的一动态安装请求时,将一可执行对象安装至该软件系统;和/或一导入模块,用于在该导入模块收到由一应用程序所发出的一可执行状态时,将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,当该可执行对象或该可执行状态被执行或触发时,发出一相对应的执行请求,并通过一启动模块动态加载运行一相对应的挥发性应用程序来完成该执行请求。
请参阅图17,其系一用于动态整合挥发性应用程序的软件系统的又一实施概念示意图。其中,图17的软件系统132和图13的软件系统13是同一或均等的软件系统;图17的自动化配置引擎9和图12的自动化配置引擎9是同一或均等的自动化配置引擎;图17的安装模块10和图12的安装模块10是同一或均等的安装模块;图17的引入流程11和图12的引入流程11是同一或均等的引入流程;图17的导入模块17和图16的导入模块17是同一或均等的导入模块;图17的动态导入流程18和图16的动态导入流程18是同一或均等的动态导入流程;图17的触发T2和图12的触发T2是同一或均等的触发;图17的请求5012和图12的请求5012是同一或均等的请求;图17的触发T4和图16的触发T4是同一或均等的触发;图17的请求5013和图16的请求5013是同一或均等的请求;图17的触发T0和图3的触发T0是同一或均等的触发;图17的请求5006和图3的请求5006是同一或均等的请求。
承上,在本申请的一个实施例中,该软件系统132的一系统供货商,将至少一安装模块10提供于该软件系统132。该至少一安装模块10可以从至少一自动化配置引擎9(auto-provisioning engine)接收至少一动态安装请求,为来自不同信息源的挥发性应用程序完成自动化配置的工作,将该不同信息源的挥发性应用程序所对应的至少一可执行对象141,经由引入流程11动态安装至该软件系统132,并在一应用程序管理中心22进行管理,以扩充该软件系统132的功能;其中,该不同信息源所指的是不同的服务器(Server)、不同机房,或者是不同网域,该不同信息源的挥发性应用程序可以是由不同企业部署在不同服务器、不同机房,和/或不同网域的任一客户端软件,只要该客户端软件本身是一挥发性应用程序,当该客户端软件被部署完成后,无需和该软件系统132做任何系统整合,就可以透过该至少一自动化配置引擎9,将一个可用于驱动该客户端软件的可执行对象,自动化 配置于该软件系统132。
承上,在本申请的一个实施例中,该软件系统132的该系统供货商,将至少一导入模块17以及至少一管理模块191提供于该软件系统132。该至少一导入模块17可以从至少一被动态加载运行的挥发性应用程序25接收至少一可执行状态,为由不同信息源的挥发性应用程序25所驱动的作业流程,完成动态导入的工作,将该至少一可执行状态和至少一操作对象231进行绑定后,将用于连接不同作业流程的该至少一操作对象231,经由动态导入流程18储存至该至少一管理模块191中进行管理。透过这个方式,得以将由不同信息源的挥发性应用程序所驱动和支持的不同作业流程以该至少一可执行状态链接而成,并且动态导入至软件系统中。
承上,在本申请的一个实施例中,该软件系统132是一操作系统、一超级应用,或者是一软件平台。该应用程序管理中心22是一APP Launcher。该至少一管理模块191可以包括一活动预约的管理程序或一通话记录的管理程序。
承上,在本申请的一个实施例中,该至少一自动化配置引擎9是一网络服务、一侦测程序、一应用程序,或者是一被投影的工作空间;其中,该网络服务是和该软件系统132运行于不同机器上的一外部网络服务(参考图13的外部网络服务4,91);其中,该侦测程序是被执行于该软件系统132中的一软件模块(参考图13的侦测程序93);其中,该应用程序是被动态加载运行于该软件系统的一挥发性应用程序(参考图13里被动态加载运行的挥发性应用程序92);其中,该被投影的工作空间是被动态加载运行于该软件系统的一可投影的工作空间(参考图13里被投影的工作空间94)。
承上,在本申请的一个实施例中,该软件系统132在启动后,执行于其中的该应用程序管理中22,将会读取引入于该软件系统132中的该至少一可执行对象141,并为每一可执行对象在一操作接口上生成相对应的可执行实体,令该用户211可以在该操作接口上,对该至少一可执行实体24进行操作(请参考图5的I1),其中,该操作接口是一APP Launcher的操作接口。
承上,在本申请的一个实施例中,该至少一管理模块191在该软件系统132中被启动时,将会读取导入于该至少一管理模块191中的该至少一可操作对象231,并为每一可操作对象在另一操作接口上生成相对应的可操作实体,令该用户211可以在该另一操作接口上,对该至少一可操作实体201进行操作,举例来说,该通话记录管理程序将会由其所连结的存储空间中,读取其所管理的至少一可操作对象(即通话记录),并在该通话记录管理程序的操作接口里,为每一可操作对象(即通话记录)提供对应的可操作实体(请参考图5的I2)。
承上,在本申请的一个实施例中,该用户211在该应用程序管理中心所提供的操作接口上,对一可执行实体进行启动时,将会由该软件系统132或该应用程序管理中心22发出 一触发T0,并经由该触发T0,将一执行请求传入一启动模块151,通过该启动模块151来动态加载运行该可执行实体所对应的挥发性应用程序。
承上,在本申请的一个实施例中,该用户211在该至少一管理模块191所提供的操作接口上,对一可操作实体的可执行事件进行操作时,也将会由该至少一管理模块191发出一触发T0,并经由该触发T0,将一执行请求传入一启动模块151,通过该启动模块151来动态加载运行该可执行事件所对应的挥发性应用程序。
承上,在本申请的一个实施例中,传入该启动模块151的该执行请求中的内容里,可以包含该挥发性应用程序的元数据的原始内容、部分内容、重整后的内容,和/或是一可用于取得该挥发性应用程序的元数据的存取链接。其中,该存取链接和用于动态加载运行该执行请求所对应的挥发性应用程序的网络地址,可以是相同或不相同的网络地址。在同一网络地址的情况下,用于动态加载运行该挥发性应用程序的该网络地址,可以在该网络地址的Response Headers中,写入该挥发性应用程序的元数据内容,透过这个方式,该网络地址和该存取链接,即为同一网络地址,在不同网络地址的情况下,该挥发性应用程序的服务提供商,可以将该元数据内容注册于另一外部服务器,并由该外部服务器提供该元数据内容的存取链接。
承上,在本申请的一个实施例中,对一可操作实体的一可执行事件是由一软件代理程序212所驱动,举例来说,当一可操作对象(活动预约)被储存至该活动预约管理程序时,该活动预约可以被设置于一指定的时间自动启动,则该软件代理程序212可以为该可操作对象进行一监控工作,当时间来到该指定的时间,该软件代理程序212即自对该可执行事件进行触发,并动态加载运行该可执行事件所对应的挥发性应用程序来为该活动预约提供所需的服务。
承上,在本申请的一个实施例中,在启动模块151为一执行请求动态加载运行其所对应的挥发性应用程序的过程中,该启动模块151可以将一状态设定以参数形式传入该挥发性应用程序,其中,该状态设定可以包括执行该软件系统132的计算器设备的系统环境组态(例如:该计算器设备的相关硬件信息)、执行该挥发性应用程序时所需要的应用程序组态(例如:该用户211的帐户信息),或者是应用程序状态(例如:该挥发性应用程序被执行时的默认状态等),令该挥发性应用程序得以依据该状态设定于执行时期调整本身内部的应用程序状态(application state);其中,在本申请的一个实施例中,用于执行该挥发性应用程序所需的帐户信息,也可以是从该软件系统132的系统环境组态中取得,在动态加载时,该启动模块151可以向该软件系统132发出请求,取得该用户211启用、登记或绑定于该软件系统132里的一帐户信息,并以该帐户信息做为执行该挥发性应用程序时所需要的应用程序组态,据以实现单一登录(Single sign-on)的功能。
承上,在本申请的一个实施例中,该至少一安装模块10可以是同一安装模块,由同一 安装模块来动态安装所有不同类型的挥发性应用程序类型(例如:Web前端应用程序、渐进式网页应用程序,或实时应用)。或,该至少一安装模块10可以是由用于动态安装不同挥发性应用程序类型的安装模块所组成的集合。
承上,在本申请的一个实施例中,该至少一安装模块10可以是同一安装模块,也即,由该同一安装模块来接收不同来源的动态安装请求,并依据动态安装请求中的内容,并在该软件系统132里,为各种不同类型的挥发性应用程序类型(例如:Web前端应用程序、渐进式网页应用程序,或实时应用)的可执行对象,进行安装和引入的工作。或者,该至少一安装模块10可以是一集合,不同类型的挥发性应用程序,可以由不同的安装模块提供安装和引入的服务,该集合即为各种针对不同类型的挥发性应用程序所提供的安装模块的集合。
承上,在本申请的一个实施例中,该至少一启动模块151可以是该同一启动模块,也即,由该同一启动模块来接收所有经由不同可执行对象和可操作对象所触发的执行请求,并依据执行请求的内容,为不同类型的挥发性应用程序进行动态加载运行的工作。或者,该至少一启动模块151可以是一集合,由用于动态加载运行不同类型的挥发性应用程序的启动模块所组成的集合。
承上,在本申请的一个实施例中,该至少一启动模块151是以至少一软件模块的形式而被提供于该软件系统132,或者该至少一启动模块151是被整合于该至少一可执行对象141里(启动模块和可执行对象的具体整合方式,相同或均等于图4、图8、图9,及其相关实施例,在此不再予以赘述)。
承上,在本申请的一个实施例中,该至少一导入模块17可以是该同一导入模块,也即,由该同一导入模块来接收所有经由不同来源的可执行状态,并为其导入不同的管理模块中。或者,该至少一导入模块17可以是一集合,由用于导入不同类型的可操作对象的导入模块所组成的集合。
本申请的另一实施例提供了一种动态整合应用程序的机器,该机器包括:一自动化配置引擎,用于侦测一网络里的至少一连网设备,并将相对应于该至少一连网设备的至少一可执行对象配置至一软件系统;和/或一导入模块,用于接收由一应用程序所发出的一可执行状态,并将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,该软件系统将该至少一可执行对象显示于一操作接口(user interface),以供该用户进行操作,在该用户在该操作接口上开启相对应于一连网设备的一可执行对象时,动态加载运行绑定于该可执行对象的一挥发性应用程序,透过该挥发性应用程序管理、操作、监视,和/或控制该连网设备所提供的服务;其中,该导入模块是用于为至少一应用程序完成作业流程的动态导入。
请参阅图18,其系一可动态整合不同连网设备的软件控制器的机器的又一实施概念示 意图。其中,图18的软件控制器30(包括冷气控制APP、电视机控制APP,和照明控制APP),都是以本申请所述的「挥发性应用程序」的形式所开发和部署的应用程序,「挥发性应用程序」的各种不同的实作方式,请参考本申请中的各个实施例;其中,图18的侦测程序931和图13中的侦测程序93是同一或均等的侦测程序;其中,图18的触发T2和图12的触发T2是同一或均等的触发;图18的请求5012和图12的请求5012是同一或均等的请求;其中,图18的安装模块101和图13中的安装模块10是同一或均等的安装模块;其中,图18的软件系统133和图13的软件系统13是同一或均等的软件系统;其中,图18的机器121和图13的用户机器12是同一或均等的机器。
承上,在本申请的一个实施例中,该机器121和/或该软件系统133是用于打造一物联网控制中心。
承上,在本申请的一个实施例中,该软件系统133是该机器121的一操作系统,或者该软件系统133是运行于该机器121的操作系统里的一应用程序。
承上,在本申请的一个实施例中,该网络26是一家庭网络、一办公室网络、一企业网络、一云端网络,和/或任一种可以用来连接连网设备的网络型态。
承上,在本申请的一个实施例中,该第一连网设备27是一具有连网能力的冷气机,该第二连网设备28是一具有连网能力的电视机,该第三连网设备29是一具有连网能力的照明设备;其中,该冷气机27、电视机28,和照明设备29,都是该网络26里的物联网设备。图18所示的连网设备,仅为本申请的非限制性实施例,但并不以此为限,任一种具有连网能力的软件装置(software appliance)、通信设备和/或物联网设备,都是本申请所指的连网设备。
承上,在本申请的一个实施例中,该侦测程序931是一自动化配置引擎,该侦测程序931和该安装模块101在该软件系统133里,可以是由同一软件模块所提供,也即,该侦测程序931和该安装模块101是整合于同一软件模块里的可执行程序区块。或者,该侦测程序931和该安装模块101在该软件系统133里,也可以是由不同的软件模块所提供。
承上,在本申请的一个实施例中,该侦测程序931在执行时期里,可以透过不同的方法,对网络26里的连网设备进行侦测。举例来说:该侦测程序931可以周期性(例如:一分钟一次)的对网络26里的一群播地址(Multicast Address)发送一群播(Multicast)封包,该群播封包的内容是依据一标准协议所生成的一搜寻请求,该搜寻请求是用于让该网络26里的连网设备,都知道目前有一侦测程序正在对该网络26的连网设备进行搜索。在该网络26里的任一连网设备(包括冷气机27、电视机28,和照明设备29)在启动之后,可以在该网络26里,对发送至该群播地址的群播封包进行监听,当一连网设备收到由该侦测程序931所发出的该搜寻请求时,该连网设备就可以将该连网设备本身的元数据和可用于管理、操作、监视,和/或控制该连网设备的一软件控制器的元数据,封装至另一群播封包,然后 将该另一群播封包发送至该网络26里的该群播地址。透过这个方法,该侦测程序931即同样可以从该群播地址监听到该另一群播封包,并从中读取到该连网设备的元数据和该软件控制器的元数据内容;其中,该软件控制器是一挥发性应用程序,用于管理、操作、监视,和/或控制该连网设备的服务;其中,关于群播的相关技术,可以参考“https://en.wikipedia.org/wiki/Multicast”和“https://en.wikipedia.org/wiki/Multicast_address”。特别说明的是,该侦测程序931透过群播技术搜寻附近网络的连网设备,仅为本申请所揭露的非限制性实施例,包括蓝芽、红外线、以太网络、WiFi、和4G/5G等通讯网络,都已有成熟且普及的技术可被用于对公开网络和/或附近网络的连网设备进行侦测、搜寻和/或查找,在各种网络型态里,透过不同的通讯协议和/或其组合来让相同或不同网络之间的设备,能够侦测、搜寻和/或查找到彼此的存在并相互进行通讯和数据传输对接的方法,并不以本申请所采用和揭露的实施例为限,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计。
承上,在本申请的一个实施例中,在该侦测程序931收到一连网设备的元数据及其软件控制器的元数据后,即可封装至一动态安装请求,并经由一触发T2,将该动态安装请求传送至一安装模块101,由该安装模块依据该动态安装请求的内容,将一可执行对象安装至该软件系统133;其中,该侦测程序931和该安装模块101可以实作于同一软件模块,并执行于同一系统行程,或者该侦测程序931和该安装模块也可以是实作于不同的软件模块中,在不同的系统行程里执行;其中,如何透过一自动化配置引擎,为一挥发性应用程序产生一动态安装请求,并借以将绑定一挥发性应用程序的可执行对象安装至一软件系统的具体实作方法,相同或均等于图11、图12、图13,及本申请所揭示的各相关实施例,在此不再予以赘述。
在本申请的一个实施例中,绑定于该可执行对象的内容里,可以包含该软件控制器的元数据的原始内容、部分内容、重整后的内容,和/或是一可用于取得该软件控制器的元数据的存取链接。其中,该存取链接和用于动态加载运行该软件控制器的网络地址,可以是相同或不相同的网络地址。在同一网络地址的情况下,用于动态加载运行该软件控制器的该网络地址,可以在该网络地址的Response Headers中,写入该软件控制器的元数据内容,透过这个方式,该网络地址和该存取链接,即为同一网络地址,在不同网络地址的情况下,该软件控制器的服务提供商,可以将该元资料内容注册于另一外部服务器,并由该外部服务器提供该元数据内容的存取链接。
承上,在本申请的一个实施例中,该软件系统133可以产生一操作接口34(例如:APP Launcher),接着,为安装在该软件系统133中的每一可执行对象,产生一个相对应的可执行实体后,将该些可执行实体显示在该操作接口上34以供一用户35操作。当该用户35在该操作接口34上,对一可执行实体进行点击时,就可以将该可执行实体所对应的软件控制 器(挥发性应用程序),动态加载运行于该软件系统的操作接口上,让该用户35得以透过该软件控制器,对该软件控制器所对应的连网设备进行管理、操作、监视,和/或控制;其中,如何通过驱动一可执行实体来动态加载运行一挥发性应用程序的具体实作方法,相同或均等于图3、图4、图5,及本申请所揭示的各相关实施例,在此不再予以赘述。
承上,在本申请的一个实施例中,一连网设备,该连网设备的一软件控制器,以及该软件控制器的一可执行对象,三者之间具有一绑定关系,且该绑定关系是通过将该连网设备和该软件控制器的元数据(metadata)的至少一内容绑定至该可执行对象所完成。举例来说,在该冷气控制APP 31的一可执行对象被产生的时候,可以将该冷气机27的元数据和该冷气控制APP 31的元数据,写入该可执行对象的App组态内容里,借以以完成该冷气机27、该冷气控制APP 31,以及该可执行对象的绑定关系;其中,如何依据元数据的内容来为该冷气控制APP 31产生可执行对象的方法,可以参考图9及其相关的各项实施例,但并不以此为限,熟知本技术的人员参考本申请后,可依据实际应用需求而进行任何均等的变更设计,本申请各项实施例所揭示用于产生可执行对象并且将挥发性应用程序绑定于其中的方法,可以直接导入于该侦测程序931或者是该安装模块101中执行,在导入完成后,各种连网设备的可执行对象就可以由该侦测程序931或者是该安装模块101于执行时期里动态产生;其中,该冷气机27(连网设备)的元数据的至少一内容包括一产品名称、产品型号、一品牌名称、该冷气机27本身所在的域名(Domain Name),和/或该冷气机27本身的IP地址(IP Address);其中,该冷气控制APP 31的元数据的至少一内容包括该冷气控制APP 31的APP名称、APP功能描述、该冷气控制APP 31的启动程序的位置、该冷气控制APP 31所在的网络域名,和/或其服务提供商的相关信息,其他各种不同种类的连网设备,都可以透过上述同样的方法,在执行时期里动态产生出相对应的可执行对象。
承上,在本申请的一个实施例中,该可执行对象也可以是预先由该连网设备的提供商所提供,并预先发布于网络上,供该侦测程序931或者是该安装模块101在收到一动态安装请求后,依据该动态安装请求的内容来下载使用,举例来说,在该动态安装请求中填入该可执行对象的一存取链接,经由该存取连结来下载该可执行对象。
承上,在本申请的一个实施例中,该软件控制器(包括该冷气控制APP 31、该电视机控制APP 32,及该照明控制APP 33)在该软件系统133里,是经由一启动模块的驱动而被动态加载运行,在动态加载运行该软件控制器时,该启动模块可以透过参数形式,将该用户35用于登入该软件系统133的一身份数据,传入至该软件控制器,该软件控制器即可在执行时期中,透过该身份数据,确定(定位)出该用户35对相对应于该软件控制器的连网设备的访问权限;其中,该身份数据是对该软件控制器的一状态设定,该软件控制器可以在执行时期,依据该状态设定于调整内部的应用程序状态(application state),使得该用户35的访问权限得以在该软件控制器的执行时期里完成设置;其中,该启动模块可以透过同 样的方式,以参数形式,将包括一系统环境组态、应用程序组态,和/或是应用程序状态(application state)的状态设定,传入该软件控制器(挥发性应用程序)。以参数形式传送一状态设定至一挥发性应用程序的具体实作方式,相同或均等于图6、图7、图8,及其相关实施例的说明,在此不再予以赘述。
承上,在本申请的一个实施例中,该机器121是该用户35所使用的一用户设备,该软件系统133是运行在该用户设备里。该侦测程序931在该用户设备上侦测网络26里的连网设备后,将可掌握该网络26里各个连网设备的相关信息,除了该些连网设备用于连接网络的IP地址以及用以控制该些连网设备的软件控制器(挥发性应用程序)的元数据内容外,也可包括其品牌和/或型号等信息,该侦测程序931亦可透过对公开网络的搜索,来掌握各个部署于云端的连网设备及其所提供的软件服务的相关信息,包括该些软件服务的服务名称、域名,以及用于操作该些软件服务的软件控制器的元数据内容;其中,该侦测程序931侦测的结果可以汇集成包括至少一连网设备和至少一软件控制器的列表。接着,该侦测程序931即可依据该列表的内容,为每一连网设备所需要的软件控制器,自动化配置相对应的可执行对象至该软件系统133中。
承上,在本申请的一个实施例中,该侦测程序931可以在取得该至少一连网设备的清单时,立即为该至少一连网设备的软件控制器发出动态安装请求;也可以在取得该至少一连网设备的清单后,将该至少一连网设备的至少一属性(该至少一属性可由其元数据中取得)显示在操作接口上,供用户选择或由用户决定是否执行动态安装,接着,再依据用户的操作指示,为用户所需的至少一连网设备的软件控制器发出相对应的动态安装请求。
承上,在本申请的一个实施例中,一连网设备的一软件控制器被动态加载运行于该用户设备后,该软件控制器对该连网设备的至少一控制指令可以从该用户设备直接传送至该连网设备。该连网设备所对应的可执行对象,被自动化配置至该软件系统133时,在动态安装的过程中,该连网设备和其所对应的软件控制器的元数据将可以被写入于该可执行对象的App组态内容之中,因此,当该可执行对象被驱动时,将进一步导致该软件控制器被动态加载运行,而当该软件控制器被动态导入运行时,写入于该可执行对象的App组态内容中的该连网设备的元数据,就同样地可以通过状态设定的方法,被传入该软件控制器中,也即,该软件控制器在动态加载运行后,在其执行时期,就已经可以直接确定该连网设备的产品型号和本身所在的IP地址等等信息,该软件控制器即可在该用户设备上,依据该连网设备所支持的通讯协议,对该连网设备进行联机,并经由该联机对该联网设备发出该至少一控制指令,以对该连网设备进行管理、操作、控制,和/或获取该连网设备的数据以达监视的目的。
承上所述,在本身的另一实施例中,该机器121也可以是一服务器,而该软件系统133则是运行于一用户设备上;该软件系统133可以被视为是一个具有对该服务器121发送指 令或请求能力的客户端软件,可以被安装、引入和/或部署于该用户设备、该服务器121或另一服务器上;其中,该软件系统133可以是部署在该服务器121或另一服务器上的一Web前端应用程序和/或渐进式网页应用程序,经由一软件引擎(例如:HTML/CSS/Javascript软件引擎)而被动态加载运行于该用户设备中;或者该软件系统133本身即是安装于该用户设备的操作系统;又或者该软件系统133是被安装和/或引入于该用户设备的操作系统中的一原生应用程序。
承上,在本申请的一个实施例中,当该软件系统133被加载和运行于该用户设备里时,该软件系统133与该服务器121之间的交互,可以是透过该软件系统133本身和/或是该软件系统133中的至少一软件模块(例如:该侦测程序931的一前端系统)来完成,该软件系统133和/或该至少一软件模块可以提供一操作接口,在该操作接口上引导该用户35输入该服务器121的相关网络信息(例如:该服务器131所在的IP地址),使该软件系统133和/或该至少一软件模块得以掌握该服务器131所在的位置,并据以正确的联机至该服务器121,以对该服务器121发送指令或请求。
承上,在本申请的一个实施例中,运行于该用户设备上的该软件系统133,可以透过该软件系统133和/或该至少一软件模块发送一搜寻请求至该服务器121的该侦测程序931的后端系统,由执行在该服务器121上的后端系统来搜寻公开网络和/或附近网络的至少一连网设备,搜寻结束后,由该服务器121将搜寻结果,整理成一清单,并回传给该软件系统133和/或该至少一软件模块,经由该搜寻请求取得该至少一连网设备的该列表后,该软件系统133和/或该至少一软件模块即可依据该列表的内容,发出相对应的至少一动态安装请求,并将该至少一连网设备所对应的该至少一软件控制器,动态安装于该软件系统133的操作环境中。
承上,在本申请的一个实施例中,该清单的内容包括该至少一连网设备及其所对应的至少一软件控制器的元数据(metadata),该至少一可执行对象是依据该列表的内容所产生。
承上,在本申请的一个实施例中,该软件系统133本身和/或该软件系统中的至少一软件模块可以在取得该至少一连网设备的清单时,立即为该至少一连网设备的软件控制器发出动态安装请求;也可以在取得该至少一连网设备的清单后,将该至少一连网设备的至少一属性(该至少一属性可由其元数据中取得)显示在操作接口上,供用户选择或由用户决定是否执行动态安装,接着,再依据用户的操作指示,为用户所需的至少一连网设备的软件控制器发出相对应的动态安装请求。
承上,在本申请的一个实施例中,该软件系统133本身和/或该软件系统中的至少一软件模块可以从该服务器121取得一系统环境组态,该系统环境组态的内容包括该服务器121于内网和/或外网的域名和IP地址。
承上,在本申请的一个实施例中,该至少一软件控制器被动态加载运行于该用户设备 时,其对该至少一连网设备的至少一控制指令是在传送至该服务器121后,由该服务器121以兼容于该至少一连网设备的通讯协议转发至该至少一连网设备,或者该至少一控制指令也可以是从该用户设备直接传送至该至少一连网设备。举例来说,当该用户设备和该至少一连网设备是在同一内网时,基本上该用户设备里执行的软件控制器本身已经可以依据该连网设备的元数据里的IP地址(内网地址),对该连网设备进行联机,但是如果该用户设备和该至少一连网设备并不是在同一内网时,就可以透过该服务器121来做为一Proxy Server,也即,依据该服务器121的外网IP地址,联机至该服务器121,然后将该至少一控制指令传送至该服务器121,接着,由该服务器121协助转传至该至少一连网设备。
承上,在本申请的一个实施例中,该软件系统133中的该安装模块101,可以接收来自不同机器的动态安装请求,该不同机器的动态安装请求是由至少一自动化配置引擎所发出,该至少一自动化配置引擎是一网络服务、一侦测程序、一被动态加载运行的挥发性应用程序,或者是一被投影的工作空间;其中,对于自动化配置引擎的各种不同的具体实施方式,相同或均等于图13及本申请所揭示的各相关实施例,在此不再予以赘述。
请参阅图19,其系为动态导入一连网设备的可执行状态的运作路径的概念示意图。其中,图19的软件系统133和图18中的软件系统133是同一或均等的软件系统;图19的触发T04和图3中的触发T0是同一或均等的触发;图19的用户35和图18中的用户35是同一或均等的用户;图19的启动模块151和图17中的启动模块151是同一或均等的启动模块;图19的触发T4和图16中的触发T4是同一或均等的触发;图19的请求5013和图16中的请求5013是同一或均等的请求;图19的导入模块171和图16中的导入模块17是同一或均等的导入模块;图19的触发T5和图16中的触发T5是同一或均等的触发;图19的动态导入流程18和图16中的动态导入流程18是同一或均等的动态导入流程;图19的管理模块191和图17中的管理模块191是同一或均等的管理模块;图19的可操作实体201和图17中的可操作实体201是同一或均等的可操作实体。
承上,在本申请的一个实施例中,在该软件系统133中提供一导入模块171,该导入模块171是用于接收一软件控制器36在执行时期所发出的一可执行状态(Executable State),在该导入模块171接收该可执行状态时,触发启动一动态导入流程18,在该动态导入流程18的运作过程中,将供该用户35操作的一可操作对象储存至一管理模块191,并且为该可执行状态和该可操作对象的一可执行事件建立一绑定关系;其中,通过该导入模块171来动态导入该软件控制器36的可执行状态及其所连接的作业流程的具体实作方法,相同或均等于图16及其相关实施例,在此不再予以赘述;其中,该软件控制器36是一挥发性应用程序。
承上,在本申请的一个实施例中,该软件程序133是运行于一手机(用户设备),该管理模块191包括一通讯记录管理程序。当该用户35在该手机上,启动一个用于控制一VoIP  Desk Phone的软件控制器36,并使用该软件控制器36完成一网络语音拨号时,该软件控制器36在通话结束后,可以透过一触发T4,将一个由该软件控制器36所提供用于回拨的可执行状态传给该导入模块171。在该导入模块171接收该可执行状态时,触发启动一动态导入流程18,在该动态导入流程18的运作过程中,将供该用户35操作的一通讯记录(可操作对象)储存至该通讯记录管理程序。在该用户35对该通讯记录进行操作并点击「回拨」按钮时,绑定于该通讯记录里的该可执行状态,将被封装至一执行请求,并透过一触发T04传入该启动模块151,该启动模块151即可依据该执行请求的内容,动态加载运行该软件控制器36,通过该软件控制器36控制该VoIP Desk Phone来完成该「回拨」的任务。
根据以上的说明可知,本申请提供一种动态整合(dynamically integrating)挥发性应用程序(volatile application program)的方法和运用该方法的软件系统与机器;其中,该方法、软件系统和机器具有以下优点:
一、相较于现有技术,自动化配置引擎可以在挥发性应用程序在后端服务器上完成部署后,将其以可执行对象的形式,快速地引入所有相关联的用户设备上,令服务提供商得以从后端服务器上对挥发性应用程序的发布及其自动配置工作做出自主的控制。
二、相较于现有技术,可执行状态的技术方法,可用于将各种应用程序的作业流程动态导入至一操作系统和/或软件平台中,并且让该操作系统和/或软件平台成为一应用状态引擎的驱动环境。
三、借由本申请的技术方法,令一软件系统和/或机器得以在无需先行安装或引入任一挥发性应用程序的情况下,即可在该软件系统和/或机器中,动态安装不同来源的挥发性应用程序和动态导入任一挥发性应用程序的作业流程,进而动态生成出一超级应用(super app)和/或一物联网控制中心的操作环境。
四、借由本申请的技术方法,本申请所述的软件系统、安装模块、导入模块、管理模块、启动模块和/或自动化配置引擎,也都可以是以挥发性应用程序的实施方式来加以实作;也即,软件系统本身是被动态加载和运行于一用户设备上的一挥发性应用程序,而安装模块、导入模块、管理模块、启动模块和/或自动化配置引擎则是在软件系统被动态加载运行后,由软件系统的操作接口所管理和/或驱动的另一挥发性应用程序;在此特定的设计架构下,软件系统及其相关的软件模块将得以在外部服务器上部署、管理和发布,其整体操作环境则是经由动态加载的方式运行在用户设备上,也就是说,系统供货商将得以通过商用软件装置(commercial software appliance)和/或软件即服务的服务模式,来为用户提供其所需的操作系统、超级应用(super app)和/或物联网控制中心的操作环境。
综上所述,虽然本申请已以实施例揭露如上,然其并非用以限定本申请。本申请所属技术领域中具有通常知识者,在不脱离本申请的精神和范围内,当可作各种的改动与润饰。因此,本申请的保护范围当视后附的申请专利范围所界定者为准。
“在一些实施例中”及“在各种实施例中”等用语被重复地使用。所述用语通常不是指相同的实施例;但它也可以是指相同的实施例。“包含”、“具有”及“包括”等用词是同义词,除非其前后文意显示出其它意思。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制,虽然本申请已以具体的实施例揭露如上,然而并非用以限定本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许改动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本申请技术方案的范围内。

Claims (31)

  1. 一种动态整合应用程序的方法,包括:
    在一软件系统中提供一安装模块,在该安装模块接收由一自动化配置引擎(auto-provisioning engine)发出的一动态安装请求时,启动一引入流程,在该引入流程的运作过程中,将供一用户执行的一可执行对象安装至该软件系统;其中,该可执行对象与一挥发性应用程序之间具有一绑定关系,且该绑定关系是通过将该挥发性应用程序的一元数据(metadata)和/或该元数据的存取链接绑定至该可执行对象所完成;以及
    在该软件系统中收到该用户对该可执行对象的一执行请求时,动态加载运行该挥发性应用程序;其中,该挥发性应用程序的启动程序的位置是由该元数据的至少一内容所确定。
  2. 如权利要求1所述的方法,其中,该挥发性应用程序是一Web系统、原生应用程序,或者是任一种可被动态加载运行的软件服务;其中,该挥发性应用程序的动态加载运行,是经由动态加载和执行该挥发性应用程序的启动程序所完成。
  3. 如权利要求1所述的方法,其中,该元数据的至少一内容包含一网络地址,且该网络地址的内容包含该挥发性应用程序的启动程序的位置;和/或该挥发性应用程序的元数据的至少一内容包含至少一代码,该至少一代码是用于确定出该挥发性应用程序的启动程序的位置。
  4. 如权利要求1所述的方法,其中,该动态安装请求的内容包含该可执行对象、该可执行对象的存取链接、该元数据,和/或该元资料的存取链接;其中,该可执行对象的存取链接和该元数据的存取链接是统一资源标志符(Uniform Resource Identifier)或一应用程序编程接口(Application Programming Interface)的实例。
  5. 如权利要求4所述的方法,其中,该可执行对象是一预先产生的可执行对象,或者该可执行对象是在该软件系统及该安装模块的执行时期(run time)里动态产生的可执行对象。
  6. 如权利要求1所述的方法,其中,该动态安装请求是由该自动化配置引擎(auto-provisioning engine)发出,用于驱动该安装模块将该可执行对象安装至该软件系统,为该挥发性应用程序完成自动化配置(auto-provision)的工作;其中,该自动化配置引擎是一网络服务、一侦测程序、一应用程序,或者是一被投影的工作空间;其中,该网络服务是和该软件系统运行于不同机器上的外部网络服务,该侦测程序是被执行于该软件系统中的软件模块,该应用程序是被动态加载运行于该软件系统的挥发性应用程序,该被投影的工作空间是被动态加载运行于该软件系统的可投影的工作空间。
  7. 如权利要求1所述的方法,其中,与该可执行对象关联的一绑定内容是该元数据的原始内容、该元数据的部分内容,或者是重整该元数据的原始内容后所得到的内容;其中,该绑定关系是通过将该绑定内容和/或该绑定内容的存取连结绑定至该可执行对象来完成,在该绑定关系里,该绑定内容是用于代表该元数据的数据参照。
  8. 如权利要求7所述的方法,其中,该可执行对象是根据一应用程序单元的数据模型所生成,当该可执行对象被安装至该软件系统后,将成为兼容于该软件系统的一可执行实体(executable entity);其中,该可执行实体在该软件系统的执行时期(run time)里,被显示于操作接口上供该用户开启,在该用户开启该可执行实体时,触发该执行请求以动态加载运行该可执行实体所对应的该挥发性应用程序。
  9. 如权利要求8所述的方法,其中该执行请求的内容包含该绑定内容和/或该绑定内容的存取连结,该挥发性应用程序是由一启动模块依据该执行请求的内容来动态加载运行;其中,该启动模块是一独立运行的应用程序或是可动态加载运行一异质系统的一软件组件。
  10. 如权利要求9所述的方法,其中,当该挥发性应用程序与该软件系统的作业环境不兼容时,该挥发性应用程序是透过一转化器(Adapter)进行驱动,由该转化器提供与该软件系统的作业环境兼容的接口实作;其中,该转化器是由该可执行对象、该启动模块、该软件系统,和/或该启动模块触发执行的另一软件模块所提供。
  11. 如权利要求1所述的方法,其中,在该挥发性应用程序被动态加载运行时,以参数形式传入一状态设定至该挥发性应用程序,该挥发性应用程序是依据该状态设定于执行时期调整内部的应用程序状态(application state);其中,该状态设定是一系统环境组态、应用程序组态,和/或是定制化的应用程序状态。
  12. 一种动态整合应用程序的方法,包括:
    在一软件系统中提供一启动模块,在该启动模块接收一执行请求时,依据该执行请求的内容来执行一应用程序;其中,该应用程序是安装于该软件系统的一原生应用程序,或者该应用程序是需要被动态加载运行的一挥发性应用程序;
    在该软件系统中提供一导入模块,在该导入模块收到该应用程序于所发出的一可执行状态(Executable State)时,启动一动态导入流程,在该动态导入流程的运作过程中,将供一用户操作的一可操作对象储存至一管理模块,并且为该可执行状态和该可操作对象的一可执行事件建立一绑定关系;以及
    在该可执行事件被该用户触发时,用于执行该可执行状态的另一执行请求将被发出,并 动态加载运行一相对应的挥发性应用程序,以执行该可执行状态。
  13. 如权利要求12所述的方法,其中,当该应用程序是一挥发性应用程序时,该挥发性应用程序的元数据的至少一内容包含一网络地址,且该网络地址的内容包含该挥发性应用程序的启动程序的位置;和/或当该应用程序是一挥发性应用程序时,该挥发性应用程序的元数据的至少一内容包含至少一代码,该至少一代码是用于确定出该挥发性应用程序的启动程序的位置。
  14. 如权利要求12所述的方法,其中,当该执行请求的发出是因应一可执行对象的启动时,则该应用程序是一挥发性应用程序;其中,该可执行对象是根据一应用程序单元的数据模型所生成,在该软件系统的执行时期(run time)中,该可执行对象是以一可执行实体(executable entity)的形式显示于操作接口上供该用户开启,在该用户开启该可执行实体时,将触发一执行请求以动态加载运行该可执行实体所对应的一挥发性应用程序。
  15. 如权利要求12所述的方法,其中,当该执行请求的发出是因应一可执行状态的执行时,则该应用程序是一挥发性应用程序;其中,该执行请求的内容是依据该可执行状态的内容所产生,该可执行状态的内容包含一绑定内容和/或该绑定内容的存取连结;该绑定内容是该挥发性应用程序的一元数据(metadata)的原始内容、该元数据的部分内容,或者是重整该元数据的原始内容后所得到的内容;该启动模块是透过该执行请求的内容来确定出该挥发性应用程序的启动程序的位置,并且依据该启动程序的位置来动态加载运行该挥发性应用程序。
  16. 如权利要求12所述的方法,其中,该可操作对象是根据一信息单元的数据模型所生成,当该可操作对象被储存至该管理模块后,将成为兼容于该软件系统或该软件系统中至少一软件模块的一可操作实体(operable entity);其中,该可操作实体将在该软件系统或该至少一软件模块的执行时期里,被显示于一操作接口上供用户操作,在该用户触发与该可执行状态绑定的该可执行事件时,动态加载运行该相对应的挥发性应用程序;其中,该导入模块是透过至少一可执行状态的导入来完成一作业流程的动态导入。
  17. 如权利要求16所述的方法,其中该可执行状态和该可执行事件之间的绑定关系,是通过将该可执行状态的至少一内容绑定至该可操作对象或该可执行事件来完成;在该可执行事件被触发时,依据该可执行状态的内容来产生并发出该另一执行请求,进而动态加载运行该相对应的挥发性应用程序以执行该可执行状态;其中,该可执行事件是依据该可执行状态的至少一信息而被动态加入于该可操作实体中。
  18. 如权利要求12所述的方法,其中,在该相对应的挥发性应用程序被动态加载运行时,以参数形式传入一状态设定至该相对应的挥发性应用程序,该相对应的挥发性应用程序是依据该状态设定于执行时期调整内部的应用程序状态(application state);其中该状态设定是一系统环境组态、应用程序组态,和/或是定制化的应用程序状态。
  19. 一种动态整合应用程序的软件系统,包括:
    一安装模块,用于在该安装模块收到由一自动化配置引擎(auto-provisioning engine)所发出的一动态安装请求时,将一可执行对象安装至该软件系统;和/或一导入模块,用于在该导入模块收到由一应用程序所发出的一可执行状态时,将与该可执行状态绑定的一可操作对象储存于一管理模块;
    其中,当该可执行对象或该可执行状态被执行或触发时,发出一相对应的执行请求,并通过一启动模块动态加载运行一相对应的挥发性应用程序来完成该执行请求。
  20. 如权利要求19所述的软件系统,其中,该软件系统是通过该安装模块,将来自多个不同信息源的挥发性应用程序动态安装于其中;其中,所述挥发性应用程序的动态安装是透过至少一可执行对象的安装来完成,该至少一可执行对象的安装及启动(launch)是根据权利要求1-11中任意一项所述的方法的步骤执行。
  21. 如权利要求19所述的软件系统,其中,该软件系统是通过该导入模块,将至少一应用程序所支持的不同作业流程动态导入于其中;其中,所述的不同作业流程的动态导入是透过至少一可执行状态的导入来完成,该至少一可执行状态的导入及执行是根据权利要求12-18中任意一项所述的方法的步骤执行。
  22. 一种动态整合应用程序的机器,包括:
    一自动化配置引擎(auto-provisioning engine),用于侦测一网络里的至少一连网设备,并将相对应于该至少一连网设备的至少一可执行对象配置至一软件系统;其中,该软件系统将该至少一可执行对象显示于一操作接口(user interface),以供用户进行操作,在该用户在该操作接口上开启相对应于一连网设备的一可执行对象时,动态加载运行绑定于该可执行对象的一挥发性应用程序,透过该挥发性应用程序管理、操作、监视,和/或控制该连网设备所提供的服务;
    和/或
    一导入模块,用于接收由一应用程序所发出的一可执行状态,并将与该可执行状态绑定的一可操作对象储存于一管理模块;其中,该导入模块是用于将至少一应用程序所支持的作 业流程动态导入于该软件系统中。
  23. 如权利要求22所述的机器,其中,该连网设备是一物联网设备、一商用软件装置(commercial software appliance),和/或是任一种具有提供信息服务能力的硬件设备或软件装置(software appliance)。
  24. 如权利要求22所述的机器,其中,该连网设备和该可执行对象之间具有一绑定关系,且该绑定关系是通过将该连网设备的元数据(metadata)的至少一内容绑定至该可执行对象所完成;其中,该连网设备的元数据的至少一内容包括该连网设备的产品名称、品牌名称、域名(Domain Name),和/或IP地址(IP Address)。
  25. 如权利要求22所述的机器,其中,该挥发性应用程序和该可执行对象之间具有一绑定关系,且该绑定关系是通过将该挥发性应用程序的元数据(metadata)的至少一内容绑定至该可执行对象所完成;其中,该挥发性应用程序的元数据的至少一内容包括该挥发性应用程序的APP名称、APP图标、功能描述、启动程序的位置、网络域名,和/或提供者信息。
  26. 如权利要求22所述的机器,其中,该挥发性应用程序是该连网设备的一软件控制器;其中,所述该挥发性应用程序的动态安装是透过该可执行对象的安装来完成,该可执行对象的安装及启动(launch)是根据权利要求1-11中任意一项所述的方法的步骤执行。
  27. 如权利要求22所述的机器,其中,所述作业流程的动态导入是透过至少一可执行状态的导入来完成,该至少一可执行状态的导入及执行是根据权利要求12-18中任意一项所述的方法的步骤执行。
  28. 如权利要求22所述的机器,其中,该机器是一用户设备,且该软件系统运行于该用户设备。
  29. 如权利要求28所述的机器,其中,该挥发性应用程序是该连网设备的一软件控制器,在该软件控制器被动态加载运行于该用户设备后,其对该连网设备的至少一控制指令是从该用户设备直接传送至该连网设备。
  30. 如权利要求22所述的机器,其中,该机器是一服务器,该软件系统运行于一用户设备,且该软件系统具备连接至该服务器并对该服务器发送指令或请求的能力。
  31. 如权利要求30所述的机器,其中,该挥发性应用程序是该连网设备的一软件控制器,在该软件控制器被动态加载运行于该用户设备后,其对该连网设备的至少一控制指令是传送至该服务器后,由该服务器以兼容于该连网设备的通讯协议转发至该连网设备,或者该至少一控制指令是从该用户设备直接传送至该连网设备。
PCT/CN2021/098402 2020-06-05 2021-06-04 动态整合应用程序的方法及其软件系统与机器 WO2021244644A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/008,322 US20230205503A1 (en) 2020-06-05 2021-06-04 Method for dynamically integrating application programs, and software system and machine using the same
CN202180040163.0A CN115867891A (zh) 2020-06-05 2021-06-04 动态整合应用程序的方法及其软件系统与机器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063035009P 2020-06-05 2020-06-05
US63/035,009 2020-06-05

Publications (1)

Publication Number Publication Date
WO2021244644A1 true WO2021244644A1 (zh) 2021-12-09

Family

ID=78830625

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/098402 WO2021244644A1 (zh) 2020-06-05 2021-06-04 动态整合应用程序的方法及其软件系统与机器

Country Status (4)

Country Link
US (1) US20230205503A1 (zh)
CN (1) CN115867891A (zh)
TW (1) TW202147101A (zh)
WO (1) WO2021244644A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114267264A (zh) * 2021-12-14 2022-04-01 浙江华章科技有限公司 一种大型led电子信息看板系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI790913B (zh) * 2022-02-08 2023-01-21 宏碁股份有限公司 網頁存取系統及網頁存取方法
CN114760343A (zh) * 2022-03-23 2022-07-15 鼎捷软件股份有限公司 业务数据交换系统以及业务数据交换方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172657A1 (en) * 2007-12-28 2009-07-02 Nokia, Inc. System, Method, Apparatus, Mobile Terminal and Computer Program Product for Providing Secure Mixed-Language Components to a System Dynamically
CN101488143A (zh) * 2008-01-16 2009-07-22 重庆安软信息科技有限公司 一种新型的web应用和本地应用的交互模式
CN101833465A (zh) * 2010-04-23 2010-09-15 中国科学院声学研究所 一种支持应用程序动态加载运行的嵌入式系统
CN103473082A (zh) * 2012-06-08 2013-12-25 腾讯科技(深圳)有限公司 一种启动WebApp的方法及装置
CN106528196A (zh) * 2016-09-23 2017-03-22 邵阳学院 智能设备的app加载方法及应用该方法的智能设备、系统
CN109960939A (zh) * 2017-12-25 2019-07-02 航天信息股份有限公司 远程html5页面加载方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172657A1 (en) * 2007-12-28 2009-07-02 Nokia, Inc. System, Method, Apparatus, Mobile Terminal and Computer Program Product for Providing Secure Mixed-Language Components to a System Dynamically
CN101488143A (zh) * 2008-01-16 2009-07-22 重庆安软信息科技有限公司 一种新型的web应用和本地应用的交互模式
CN101833465A (zh) * 2010-04-23 2010-09-15 中国科学院声学研究所 一种支持应用程序动态加载运行的嵌入式系统
CN103473082A (zh) * 2012-06-08 2013-12-25 腾讯科技(深圳)有限公司 一种启动WebApp的方法及装置
CN106528196A (zh) * 2016-09-23 2017-03-22 邵阳学院 智能设备的app加载方法及应用该方法的智能设备、系统
CN109960939A (zh) * 2017-12-25 2019-07-02 航天信息股份有限公司 远程html5页面加载方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114267264A (zh) * 2021-12-14 2022-04-01 浙江华章科技有限公司 一种大型led电子信息看板系统

Also Published As

Publication number Publication date
TW202147101A (zh) 2021-12-16
US20230205503A1 (en) 2023-06-29
CN115867891A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
WO2021244644A1 (zh) 动态整合应用程序的方法及其软件系统与机器
EP3688594B1 (en) Api repository enabling microservices configuration and management
US10606565B2 (en) Visual devops systems and methods
US10324711B2 (en) System and method for the data management in the interaction between machines
JP6092249B2 (ja) 埋込まれたプロセス通信のための仮想チャネル
US9497274B2 (en) Extending functionality of web-based applications
JP7453426B2 (ja) ネットワーク管理システム、方法、装置及び電子機器
US20200401465A1 (en) Apparatuses, systems, and methods for providing healthcare integrations
WO2020215833A1 (zh) 离线缓存方法、装置、终端及可读存储介质
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
JP2023070148A (ja) ロボティックプロセスオートメーション(rpa)ロボットをリソースへ動的にバインドさせるためのシステムおよび方法
CN109729121B (zh) 一种云存储系统及用于云存储系统中实现自定义数据处理的方法
CN113556359A (zh) 一种通讯协议转换方法、设备、系统及网关设备
WO2021093671A1 (zh) 任务处理方法、系统、装置、设备及计算机可读存储介质
WO2021093672A1 (zh) 外部系统的嵌入方法、工作流系统、设备及计算机可读存储介质
CN106371848B (zh) 一种web开发框架支持Odata的实现方法
US8280950B2 (en) Automatic client-server code generator
WO2021243665A1 (zh) 编译方法、编译装置、编译系统、存储介质与电子设备
US20200301759A1 (en) Chaining of brokered service instances
CN114466047B (zh) 物联网设备便捷接入物联网平台的方法、平台、设备及介质
WO2024037132A1 (zh) 工作流处理方法、装置、设备、存储介质和程序产品
WO2021226965A1 (zh) 资源处理方法、装置、电子设备和存储介质
US20230418966A1 (en) One-click onboarding of databases
CN113495747B (zh) 一种灰度发布方法和装置
US20240070151A1 (en) Database systems and client-side query transformation methods

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21817467

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21817467

Country of ref document: EP

Kind code of ref document: A1