Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Referring to fig. 1, an embodiment of a method for implementing interconnection between multiple heterogeneous home network standards according to the present invention is shown, which specifically includes the following steps:
step 101, receiving a request of a user for abstract service and parameters thereof;
step 102, inquiring configuration files registered by each service provider facing an abstract service layer to obtain configuration files meeting user requirements; the configuration file comprises the combination condition of specific services and the implementation logic thereof;
step 103, discovering each service instance corresponding to the abstract service according to the acquired configuration file and the service condition of each service resource node, and generating a candidate execution plan list; preferably, the step of generating the candidate execution plan list further requires referring to network conditions;
and 104, selecting an execution plan to finish corresponding specific services. Of course, the execution of a specific service is not a task of the present invention, but is completed by a specific service device, so the completion process of the specific service is not described in detail here.
The solution of the above embodiment can satisfy: when the home network standard supported by the user is different (heterogeneous) from the home network standard currently used in the environment for providing the service, the desired service can be easily and conveniently implemented. Because the user only needs to provide the required abstract service, and does not need to configure or know the service implementation process of the current home network standard, the invention can realize the good combination of the request and the service under the heterogeneous home network standard.
In another preferred embodiment of the present invention, during the service execution, the service needs to be monitored and maintained, for example, the status of the current execution plan can be monitored by using the P2P message. Since a plurality of service nodes can actually form a P2P service network in the registration process of the present invention, the present invention can monitor the status of the current execution plan by means of P2P messages.
It should be noted that, in the process of executing the service, a failure in executing the service may occur due to a change in network or service resources or when a specific service instance that needs to be executed is unavailable. When receiving the execution failure message, the invention can also select another execution plan from the candidate execution plan list to recover the execution. Because in step 103 of the above embodiment, the present invention obtains a candidate list including a plurality of service instances, it is sufficient to select an alternative service from the alternative service instances to replace the current service, that is, it is still ensured that the service required by the user can be completed. Of course, since there may be differences in the parameters required for the alternative service and the current service, there may be a need to receive the specified parameters of the user for the new execution plan, or default parameters.
In order to implement steps 101 and 102 of the above embodiments, from the perspective of a developer, an interface for providing an abstract service to a user is required, and a standard format of a configuration file registered by a service provider is required to be established.
In the present invention, the user only needs the abstract service oriented to the highest level, so the concrete service implementation flow is transparent to the user, and is also referred to as "transparent service" in the following description. The description of the transparent service in the present invention may include two parts of the converged service interface and the implementation logic. Wherein the converged service interface is a consistent, open operation or service provided to the user, as well as incoming and outgoing messages, and the like. The implementation logic includes a data flow portion and a control flow portion, where the data flow represents a flow of processing data and the control flow represents a flow of execution of the processed data. We focus the above two requirements on one configuration file to implement, specifically, as follows:
300<Transparent Service>
// name definition, reference attribute definition, abstrate attribute definition.
310 <TSInterface>
Interface definition to implement transparent services
320 <messagedef>
I/definition of all received and transmitted information of transparent service interface
</messagedef>
330 <operationdef>
V/operation of all external presentations of transparent service interface
</operationdef>
340 <MediaParameter>
// media parameters that transparent services need to provide
</MediaParameter>
350 <ControlParameter>
// control parameters that the transparent service needs to provide
</ControlParameter>
360 <OParameter>
Output data provided to the outside by transparent services
</OParameter>
370 <serviceproviders>
// service address to be invoked by the transparent service
</serviceproviders>
380 <operationproviders>
// operation name of service to be invoked by transparent service
</operationproviders>
</TSInterface>
390 <TSprocess>
Implementation logic for service control
</TSprocess>
</Transparent Service>
The above is a brief description of a transparent service configuration file, and when a specific programming is implemented, this file needs to be converted into a corresponding WSDL or XML file (which belongs to the well-known technology in the service workflow technology field and is not described herein again).
Wherein, the Transparent Service 300 defines the name of the Transparent Service.
Tslnterface 310 is used to implement interface definitions for transparent services. Messagedef 320 defines all the received and sent information for the transparent service interface. Operationdef 330 is the operation of the transparent service interface for all external presentations. MediaParameter 340 is a media parameter that the transparent service needs to provide. ControlParameter 350 is a control parameter that the transparent service needs to provide. OParameter 360 is the output data that the transparent service provides to the outside world. The Serviceproviders 370 is a service address to be called by the transparent service. The operationnproviders 380 is the operation name of the service to be called by the transparent service. TSProcess 390 is the implementation logic for service control.
Referring to fig. 2, an implementation flow of the present invention is described in detail below:
1. services of various heterogeneous home networks: IGRS service 412, CCP service 413, UPnP service 414 perform service registration 411, which is abstract service oriented and may provide corresponding configuration files (such as the aforementioned configuration files). From the foregoing description of the transparent service and the registration process, various service nodes may be combined into a P2P service network, and of course, the update and synchronization of the service registration information may also be completed through the P2P service network.
2. Service provider 400 performs service configuration 402 based on the services that it needs to provide. Service configuration 402 refers to a specific operational procedure.
3. The step of service configuration 402 may be used to parse the aforementioned registered configuration file (such as the aforementioned configuration file) to establish the service composition execution plan 404 under the home network standard. The execution plan is an abstract service combination workflow process, and only contains the service ports and the calling relation among the services, but does not relate to specific service instances.
4. The user sends out a request to perform operation and interaction through the transparent service interface 403 provided by the present invention. The transparent service interface has settings in the configuration file for the transparent service. From the perspective of a user, the user uses abstract services, specific physical implementation details are invisible to the user, the user only needs to use the services according to the needs of the user, the services are combined immediately through combination operation, and how the services are realized does not need to be concerned.
Next, the execution engine of the present invention may perform corresponding operations and exchanges according to the obtained service composition execution plan 404;
5. initiating a service request 405 according to the requirements of the user;
6. performing abstract service discovery 406 according to the requirements of the user;
6.1) abstract service discovery 406 searches the registered information to obtain eligible abstract services.
In the foregoing transparent service profile, a service port defines a function that can be used by a user; while the non-functional attributes of a particular service are given in the service constraints that implement the service, such as: service location, service expiration, service provider, service lease fee, etc. That is, in the present invention, the user can propose some parameters of the required abstract service through the transparent service interface.
Abstract service discovery 406 can dynamically search for abstract services that meet the user's requirements based on these parameters or service lookup criteria. For example, abstract service discovery 406 may be implemented by a dynamic lookup algorithm for services on the basis of a P2P pipe service; it looks up the service configuration meeting the conditions in the P2P network and dynamically selects the service to be executed according to the constraint conditions and quality parameters of each service.
6.2) when the used service is unavailable due to the dynamic change of the network environment, the invention can relocate the substitute service for the user to use according to the dynamic search algorithm without considering the service search process. Through dynamic service lookup, transparent service use and combination can be obtained, and service change can be dynamically adapted. When a certain network node providing service is not reachable or the original service is not available due to the movement of the user position, the invention can shield the changes through dynamic service search.
7. Abstract service discovery 406 passes the results of the discovery to service selection 407; and selecting a proper service according to the requirements of the user or the current situation of the home network.
If the request for service selection is from the service request module 405, the service selection 407 passes the result to the service setup 408. If the request for service selection is from service maintenance module 409, service selection 407 passes the result to service maintenance 409.
8. Performing service establishment 408 according to the requirements of the user; service setup 408 passes the results to service maintenance 409.
Service setup 408 is used to group the selected services together. Dynamically discovering all service instances of the required abstract service according to the execution plan 404 and the current resource availability, load condition and network condition of each service resource node, and generating a candidate execution engine list; and selecting and forming an optimal execution plan from the candidate flows according to the service quality. Since a P2P service network is constructed, a context relationship is formed when the contact is established between the service nodes, and a predecessor and successor relationship is formed between the engines on the service nodes. In the execution flow, the state of the current execution plan is tracked between the predecessor and successor engines via P2P messages.
The execution engine dynamically discovers other execution engines, cooperates serially or in parallel to complete the dynamic execution of a composite service through P2P information exchange, and finally returns the calculation result to the composite service caller. Meanwhile, the execution engine dynamically discovers all corresponding service instances according to the current resource availability, load conditions and network conditions of all service resource nodes and determines the execution priority of the similar services.
9. Service maintenance 409 is performed according to the requirements of the user.
Service maintenance 409 supports the design and maintenance of flow adaptation, similar to the concept of plug-ins in applications, for encapsulating different flow adaptation policies and can be loaded and deleted at runtime. For a particular system objective, multiple alternative processes may be defined for it and corresponding selection policies specified.
In the engine execution process, when a corresponding report appears due to a change of network and service resources or when a specific service instance to be executed is unavailable, the service maintenance 409 starts a maintenance process:
the execution engine sends a failure message to its direct predecessor, informing it that the service failed execution, requesting a replacement service. The predecessor engine receives the failure message, looks up the locally saved candidate engine list using service selection 407, finds out other candidate execution engines, and resumes execution. When a candidate service is selected to replace an existing service, it may have a mismatch. For example, the message formats and content descriptions of different web services may vary widely, and it is difficult to provide a fully automated means to convert messages intended for one web service into messages that are required and processable by another web service.
In addition, when the substitute service requires more parameters than the substituted service, it is also impossible to automatically provide or supplement additional messages required for the substitute service. Generally, the user is required to explicitly present the determined alternative service and to specify in the description information how to map the message of the substituted service to the message of the alternative service. In the mapping, there may be situations where there is insufficient information or where information is redundant. At this point, the user is allowed to provide some default for the missing information while discarding information that is not needed for the alternative service. If the original message does not have the corresponding parameters, the default values are required to be appointed for the parameters of the alternative service; if the parameters are not needed for the alternative service, the corresponding parameters need not be formulated.
If the list of candidate engines is empty, service maintenance 409 invokes service discovery 406 to see the new service.
If there is no substitute service or the execution of the substitute service fails, an exception of the failure of the execution of the service combination is thrown, and the service revocation 410 is entered.
10. Service revocation 410 is performed as requested by the user.
Referring to fig. 3, an embodiment of a system for implementing interconnection between multiple heterogeneous home network standards according to the present invention is shown, which may specifically include the following components:
an interface module 501, configured to receive a request of a user for an abstract service and parameters thereof;
abstract service registry 502 for accepting registrations of abstract services offered by various service providers, including providing profiles facing abstract service levels;
the service discovery module 503 is configured to query configuration files facing an abstract service layer registered by each service provider, and obtain configuration files meeting user requirements; the configuration file comprises the combination condition of specific services and the implementation logic thereof;
a service establishing module 504, configured to discover, according to the obtained configuration file and the use condition of each service resource node, each service instance corresponding to the abstract service, and generate a candidate execution plan list;
the service execution module 505 is configured to select an execution plan and call the corresponding specific services to execute in sequence.
In another preferred embodiment of the present invention, the service establishing module discovers each service instance and network condition corresponding to the abstract service according to the obtained configuration file and the usage of each service resource node, and generates a candidate execution plan list.
In another preferred embodiment of the present invention, the interconnection system may further include a service maintenance module 506 for monitoring and maintaining service execution, and preferably, the service maintenance module 506 monitors the status of the current execution plan by using a P2P message.
In order to meet the more complex maintenance requirements of the user, in another preferred embodiment of the present invention, a service maintenance module 506 with more complex functions may be included, and the service maintenance module 506 may further include a monitoring sub-module and a recovery execution sub-module. The monitoring submodule is used for monitoring the state of the current execution plan in a P2P message mode; and the execution recovery sub-module is used for selecting another execution plan from the candidate execution plan list and recovering the execution when a message of failed execution is received. When the parameters required by the replacement service are not consistent with the parameters required by the original service, the service maintenance module 506 may further include a parameter determination sub-module for receiving the specified parameters of the user for the new execution plan.
Referring to fig. 4, we further describe the present invention from the point of view of the topological architecture of the service. In fig. 4, after services of various heterogeneous home networks are mapped to abstract services, the services are registered in the abstract service registry 620. The nodes 650 providing the corresponding service are combined to form a P2P network, and the registration is completed in the registration center 620 through the abstract service announcement, and the service instance 630 is obtained through the service invocation.
The service provider 660 provides the abstract service-oriented configuration document 610 to the abstract service execution engine 640 of the present invention; the user 600 connects to the execution engine 640 through an abstract service interface 670. The execution engine 640 supports abstraction of functions and parameters of heterogeneous services, allows a user to dynamically select and execute service instances by using an abstract service port and constraint conditions, and completes an abstract service combination task through cooperation of P2P (calling a P2P network formed by nodes 650), thereby improving performance and reliability of service combination execution.
The execution engine 640 may be divided into a service discovery module, an establishment module, an execution module, and a maintenance module, etc. shown in fig. 3 from the perspective corresponding to implementing the flow steps. Whereas, from the perspective of a technician developing an implementation, the execution engine 640 may be divided into: the system comprises a message management module, a candidate engine management module, a process specification conversion and scheduling module, a service calling module, a service result distribution module, an application state maintenance module, an adaptive strategy module, a sensor module and the like. Wherein,
the candidate engine management module is responsible for dynamic discovery and calling of services;
the message management module is responsible for message exchange among the engines;
the process specification conversion and scheduling module is responsible for converting process specifications, coordinating the execution of a plurality of concurrently executed services in the service combination on different engines, scheduling the execution of each service combination task and service instance, updating a combination execution plan, and coordinating and finishing the execution of the whole service combination;
the application state maintenance module is responsible for recording and updating the service quality parameters of each specific service and other runtime state data, including the service calling times, reliability, availability probability and the like. The application state maintenance module and the adaptive policy module together may correspond to the service maintenance module shown in fig. 3.
The sensors are used to monitor the status of the underlying network and services and their changes.
The invention will be further explained from the functional architecture layer of the service, with reference to fig. 5.
Fig. 5 shows the connection relationship between a user to the specific service of the underlying layer.
Top transparent service 720 is an aggregated service that presents a single access interface to users, providing a single network resource image. Transparent services 720 abstract a set of services that have the same functionality but different service constraints. As will be appreciated in light of the foregoing description, the transparent service 720 provides, on the one hand, a unified interface to the top level user, which is an abstract service, regardless of the type of home network standard supported by the user; transparent service 720, on the other hand, connects the user's abstract services with the underlying concrete services through the service provider's abstract service-oriented configuration file.
In addition, the service provider may also actually establish and maintain various services in the home network through transparent service 720 access. Transparent service 720 forms a local view of the relevant service components on the service node, and a globally associated view of the service through aggregation between peer-to-peer services. These service aggregation points are distributed in different places of the network. Wherein the access point closest to the user is the user's physical access point. It provides an abstract service layer, consistency model, access behavior for the user. From the foregoing description of the present specification, it can be appreciated that transparent service 720 combinations may dynamically select service instances without user intervention.
In fig. 5, the interface API 760 provided for the user is more convenient for the user to use than the service interface provided by the current home network standard at a higher level of granularity. The API 760 is the boundary between the transparent service 720 and its child services 740. Transparent service 720 sees a consistent list of home network services through API 760. Behind this interface, however, supporting transparent services 720 are service space 750 and service control flow 730 below API 760.
The service space 750 is made up of various sub-services 740. A sub-service is a specific service of the underlying home network within the service space mapped to the transparent service for implementing the transparent service. Transparent service 720 supports access to sub-services 740, expresses collaboration with other users and providers, and expresses a description of a combination of services through interaction with sub-services 740. Transparent services are implemented by dynamically combining these sub-services.
Service control flow 730 has the capability to dynamically combine services. The invention can manage dynamic home network service resources by the distribution and switching technology of the service control flow 730 in the service node cluster, and control and maintain the whole life cycle of the service. When a particular service instance implementing the service is unavailable due to a change in network environment, service control flow 730 may dynamically select another available service to meet the user's needs. Meanwhile, if the process cannot be realized, the process can be automatically switched to an alternative process. Since the service state is maintained by service control flow 730, the service instance may crash and not require a restart of a complex recovery process. The user does not need to consider complex service logic for handling the problems, and the construction of the service is greatly simplified. This process is transparent to the user.
In order to realize the expansion of service flow under the condition of containing media, communication and processing, the invention can encapsulate media parameters, service control logic and states in the flow according to a certain standard, and enables an intermediate processing node to independently process and be expanded, combined and applied. The Service provider can repackage, combine and expand the packaged Service modules through Service Reference according to the requirements of the Service logic of the Service provider.
The sub-service 740 may implement these operations through virtual resource coordination. Interaction between these sub-services 740 is via an information interaction bus 780. The information interaction bus 780 decouples the tight coupling between services and also between services and resources, supported by the information exchange interaction mechanism of the grid. For a service, it uses not one resource, but a cluster of a set of resources. And the corresponding resource control protocols of the various networks are also mapped into the service space 750 by the previous resource mapping method.
The bottom is various services provided by various heterogeneous home network standards of the bottom layer, such as a content index service, a connection management service, a media source transmission management service, a presentation management service, a media target transmission management service, and the like provided in the AV Profile of the IGRS standard 770.
The invention adopts the service control flow to provide services for the users, greatly reduces the complexity of integration between the users and the providers in heterogeneous home networks, and better solves the problem of expandability. The invention can store and manage all service states of the home network route, and can isolate the user from the complexity of interconnection and intercommunication of various heterogeneous networks and the control of the underlying network resources in the process of establishing and maintaining the home network, thereby simplifying the process of realizing the home network service.
We illustrate the core advantages of the invention in two examples below: abstract service oriented.
The first scenario is that Mill is an employee of a Korean company, and is on business to China. He uses an information appliance supporting the CCP standard in korea. In the office building of the branch of China, Mill uses his notebook computer to access various office resources in the company via a wireless network. And at this time, the information appliances mainly support the IGRS standard or the UPnP standard. Sometimes, after a meeting, the user needs to remotely use software on a server to process relevant data and print the result, and because the temporary office location of the user often changes, the user needs to find a printer nearest to the user every time the user prints a file. Sometimes, and inadvertently, and for other reasons, printers originally used by Mill are not shared by the owner on the network. That is, if we need a print service in a computer using the CCP standard, dynamic switching of service flows to the IGRS standard network will not be automatically and dynamically implemented to discover a print service suitable in the IGRS standard network. Therefore, Mill needs to reconfigure a printer supporting the IGRS standard or the UPnP standard, which is inconvenient.
Indeed, employees of other companies, not just Mill, often encounter similar resource usage problems at work. For developers to support interconnection of various heterogeneous home network standards to solve the problem of printing, the printing process under various heterogeneous home network standards must be developed, and the complexity is too high. There are N home network standards, and N printing processes must be developed.
However, if the present invention is adopted, in a network supporting the IGRS standard, openers only need to know the printing flow of the IGRS home network flow and use it to implement transparent printing service, that is, to provide a configuration file (including a specific printing flow of the IGRS home network flow) for the printing service (abstract service). For example, in an IGRS home network, a service provider establishes a printing process based on the IGRS standard and registers in the present invention, and a user can use a printer supporting the IGRS standard by calling a transparent printing service.
The second scenario is that people join an international conference to bring different demonstration video programs, and the different demonstration video programs need to be projected onto a large display of a meeting in a wireless mode. The notebook computer represented in China supports wireless high-definition television projection of IGRS standard, the notebook computer represented in Europe supports wireless high-definition television projection of UPnP standard, the notebook computer represented in Korea supports wireless high-definition television projection of CCP standard, and the notebook computer represented in Japan supports wireless high-definition television projection of ECHONET.
In order to support such a scenario, in the prior art, wireless high-definition television projection processes under various heterogeneous home network standards have to be developed, and the complexity is too high. There are N home network standards, and N wireless high-definition television projection processes must be developed to support service requests of each user.
If the invention is adopted, in the network supporting IGRS standard, openers only need to know the wireless high-definition television projection flow of IGRS family network flow and use the wireless high-definition television projection flow to realize transparent wireless high-definition television projection service. For example, in an IGRS home network, a service provider establishes a wireless high-definition television projection process based on the IGRS standard according to the format of the transparent service profile, and registers the wireless high-definition television projection process, so that a user can use the wireless high-definition television projection supporting the IGRS standard by calling the transparent wireless high-definition television projection service. Therefore, representatives of various countries can enjoy wireless high-definition television projection supporting different home network standards regardless of the home network standards supported by the representatives of various countries. If the Japan representative needs to know the information of the Chinese representative, the system can be automatically switched to the notebook supporting the IGRS standard brought by the Chinese representative through the transparent service.
The embodiments in the present specification are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other. For the system embodiment, since it is basically similar to the method embodiment, the description is simple, and for the relevant points, refer to the partial description of the method embodiment.
The method and the system for realizing interconnection among multiple heterogeneous home network standards provided by the invention are described in detail, a specific example is applied in the text to explain the principle and the implementation mode of the invention, and the description of the embodiment is only used for helping to understand the method and the core idea of the invention; meanwhile, for a person skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.