WO2012163245A1 - 一种基于事务的服务控制系统及其控制方法 - Google Patents

一种基于事务的服务控制系统及其控制方法 Download PDF

Info

Publication number
WO2012163245A1
WO2012163245A1 PCT/CN2012/075984 CN2012075984W WO2012163245A1 WO 2012163245 A1 WO2012163245 A1 WO 2012163245A1 CN 2012075984 W CN2012075984 W CN 2012075984W WO 2012163245 A1 WO2012163245 A1 WO 2012163245A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
resource
manager
request
controller
Prior art date
Application number
PCT/CN2012/075984
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 US14/122,444 priority Critical patent/US9442749B2/en
Publication of WO2012163245A1 publication Critical patent/WO2012163245A1/zh

Links

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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Definitions

  • the present invention relates to the field of computer virtualization technology and service oriented system, and in particular, to a transaction based service control system and a control method thereof. Background technique
  • VMM virtual machine
  • the full name of the virtual machine monitor provides a virtual abstraction layer between the hardware and the operating system.
  • VMM is also called the host operating system.
  • VMM guest operating system.
  • VM virtual machine
  • These VMs are isolated operating systems that share hardware resources.
  • VMM allows multiple isolated virtual machines to run simultaneously on one host (host), and a large number of virtual machines can be installed on one server.
  • host host
  • Each virtual machine is logically independent. It can be allocated a certain percentage of host memory and processing power, and can be easily distinguished from other virtual machines, or even the host where the virtual machine is installed. )distinguish.
  • the virtual machine itself is a separate addressable computer system.
  • Virtual machines can be used for a variety of purposes, as another server on the network, for software or hardware testing, as the primary computer system for thin clients (Thin Client), and so on. Virtual machines have other advantages, such as ease of creation and deletion, which can increase the utilization of hardware servers. Because of the flexibility and powerful capabilities of virtual machines, virtual machines have been widely used. Many organizations have installed ten or even hundreds of virtual machines on the original physical servers, making the number of computer systems in the organization. Ten or even a hundredfold expansion. How to manage a large number of virtual machines in a distributed network environment, uniformly allocate and schedule virtual machine resources, and supply reliable virtual computing resources for the business needs of the organization is the key to fully and effectively using virtual machines to maximize the value of virtual machines.
  • virtual machines and related infrastructure resources need to be provisioned in a service
  • the relevant infrastructure resources here refer to the servers, network devices, and storage device resources required to run virtual machines.
  • the virtual machine and related infrastructure resources here refer to the resources required to execute the user's business, and may also be referred to as business resources.
  • resources need to be encapsulated into services to manage resource services to achieve mapping between resource services and real resources.
  • S0A service-oriented architecture
  • domain is an important concept of distributed deployment, which describes one end. The entire runtime configuration can potentially be deployed to a series of interconnected runtime nodes.
  • the domain is very flexible, can be small or large, a small domain, possibly an ide within the test environment; a medium domain may be a single server or a small cluster, supporting a single application; a large domain can describe All services of a department or company.
  • a service described by a traditional domain generally refers to various application service services, and a hardware device resource is an infrastructure that runs an application service service. How to describe and manage virtual machines and related infrastructure resources through domains and components, and supply virtual machines and related resources in a service manner is a primary solution to the provision of virtual machines and related resources in a service-oriented distributed environment. problem.
  • Transaction is a fundamental component of building a reliable application and is a mechanism for ensuring that all participants in an application can achieve mutually agreed output.
  • an application includes multiple distributed subsystems, or an application consists of multiple independent components, the transaction can help the application handle the failure clearly in each separate distinct block.
  • Traditional transaction processing techniques are primarily applied to database systems. However, with the development of computer science and technology, the concept of transaction processing has been introduced into a wider distributed network computing environment, and the processing of distributed transactions has emerged.
  • a distributed transaction means that a transaction may involve multiple data stores (data stores can be based on blocks, ie a LUN or a set of LUNs, file-based, ie local or remote file systems or relational databases), and are a distributed sequence of operations.
  • the manipulated data is distributed on different sites of the network to implement access operations of data storage on the corresponding site.
  • an application has separate functions that need to access or update data across multiple transactional resources, it should use distributed transactions, where applications moving data from one database to another require distributed transactions.
  • the X/Open organization defines the Distributed Transaction Processing Reference Model (DTP). How to control the service request transaction of virtual machine and related resources through distributed transaction processing system to ensure reliable virtual machine supply is another important problem to be solved.
  • DTP Distributed Transaction Processing Reference Model
  • Patent “Distributed Transaction processing system (US 7, 661, 106 Bl) Discloses a distributed transaction processing system in which a processing automation application receives a transaction request and produces an operation request, and sends the operation request to the service application, accepting the service Apply the processed response, and based on the reaction, generate a transactional response and return to the requester.
  • a processing automation application receives a transaction request and produces an operation request, and sends the operation request to the service application, accepting the service Apply the processed response, and based on the reaction, generate a transactional response and return to the requester.
  • the resource supply management component is used for managing supply of virtual machine resources
  • the resource supply management domain is used for managing supply of resource combinations.
  • the resource combination here is the above virtual machine and related server, storage and network resources running the virtual machine.
  • the distributed transaction processing method is used to control the service request transaction of the virtual machine and related resources, and to supply the virtual machine and related resources for the request, and control the state of the whole process from the start to the end of the execution of the service request. Summary of the invention
  • the present invention aims to provide a transaction-based service control system and a control method thereof, by using a distributed transaction processing method, a state machine mechanism, and a resource scheduling and transaction routing strategy. Controlling the status of the service request from the beginning to the end of the execution process, and responding to the user in time, monitoring the resource status information, eliminating resource conflicts of concurrent processing, so that the service request can reach the node with the least load through the optimal path, thereby Effectively improve service performance and ensure service quality.
  • a transaction-based service control system is connected to a peripheral service factory and receives a service request issued by the service factory, the system comprising a domain manager, a component manager, and resource control , a transaction manager, and a resource manager; if the service factory requests a service resource (the service resource herein refers to an infrastructure resource required to perform user services, including computing device resources, storage device resources, and network device resources), Sending a request to the domain manager, if the service factory requests a virtual machine, sending a request to the component manager;
  • the domain manager is respectively connected to the resource controller and the transaction manager, requests resources from the resource controller, and instructs the transaction manager to start creating a global transaction;
  • the component manager is respectively connected to the resource controller and the transaction manager, to the The resource controller applies for a resource, and instructs the transaction manager to start to create a global transaction; the resource controller stores the state of the resource and the resource usage information, according to the resource application request sent by the domain manager or the component manager, Return available resource information;
  • the transaction manager creates a global transaction and its transaction branch according to an indication issued by the domain manager or component manager to create a global transaction;
  • the number of resource managers is at least one, which is respectively connected to the transaction manager and the resource controller, receives a transaction branch sent by the transaction manager, manages execution of the transaction branch, and updates the resource information. Sent to the resource controller.
  • the domain manager is used to manage the life cycle of the domain, including from domain creation to deletion, and segmenting a domain request into multiple component requests;
  • the component manager is used to manage the lifecycle of components, from component creation to deletion, and to decompose a component request into multiple transaction branches.
  • the resource controller includes a scheduler, a transaction router, a virtual machine state machine, and a resource reference table, where:
  • the scheduler is connected to the transaction router, and determines a scheduling of the transaction according to the information in the virtual machine state machine and the resource reference table, and sends the scheduling result to the transaction router;
  • the transaction router receives the information sent by the scheduler and makes a routing decision based on the information in the resource reference table.
  • the resource controller is further connected to a peripheral node server, the number of the node servers is at least one, and each node server includes a virtual machine API (application programming interface) and a monitor. (Monitor) API, where:
  • the virtual machine API is configured to transmit the latest information of the virtual machine to the virtual machine state machine
  • the Monitor API is used to communicate the latest information of resource references and resource usage to the resource reference table.
  • the scheduler includes an interconnected transaction execution planning module and an execution control module, wherein:
  • the transaction execution planning module is configured to schedule a transaction, and send the planned result to the execution control module;
  • the execution control module determines a strategy for executing the control according to the planning result output by the transaction execution planning module.
  • the transaction execution planning module includes a scheduling controller and a load calculator and a cost evaluation module connected to the dispatch controller, and the dispatch controller is configured to call a load calculator and cost Evaluate the module and decide on the scheduling strategy.
  • the transaction router includes an interconnected routing manager and a routing information store, wherein:
  • the routing manager determines a route of the transaction by using the logical routing information and the policy in the routing information storage;
  • the routing information store stores and provides logical routing information to the routing manager based on the information in the resource reference table.
  • the routing manager includes a routing controller and a connection coordinator, an optimal path calculator, a flow controller, and an error control module respectively connected to the routing controller, wherein:
  • the routing controller determines a logical routing decision of the transaction according to the operation of the connection coordinator, the optimal path calculator, and the flow controller;
  • the connection coordinator is configured to manage a logical connection of the network, including determining whether the logical connection is abnormal;
  • the optimal path calculator is configured to solve a least costly logical path from a source to a destination; the flow controller is configured to monitor network traffic on each of the logical paths.
  • the logical routing information stored in the routing information storage includes a logical path topology table, a logical flow state table, and a transaction status table, where: the logical path topology table is used to store a network logical path. Topology information;
  • the logical flow status table is configured to store network traffic status information
  • the transaction status table is used to store status information of the transaction branch.
  • the transaction manager includes a transaction processor and a timer, wherein:
  • the transaction processor is configured to process a global transaction, a plurality of asynchronous events related to the global transaction, and a delay work generated by the plurality of transaction branches decomposed by the global transaction;
  • the timer is used to time the delayed operation generated by the transaction branch and set a threshold to determine if the time taken by the transaction branch from the issue to the return result exceeds a threshold.
  • the resource manager runs on the node server, and the resource manager includes a host resource management layer and resource manager servers and resources respectively connected to the host resource management layer.
  • Controller client where:
  • the resource manager server receives the request sent by the transaction manager, and invokes the host resource management layer;
  • the host resource management layer receives the call signal sent by the resource manager server, and configures resources required to execute the transaction branch;
  • the resource controller client receives the virtual machine status update information returned by the host resource management layer, and sends the updated virtual machine status to the resource controller.
  • the resource manager server includes a resource manager agent, a worker thread, a request queue, and a transaction branch queue, where: the resource manager agent sends the concurrently sent by the transaction manager
  • the sexual request is processed by the request queue to the worker thread, and the worker thread sends the processed request to the transaction branch queue, and processes the transaction branch and maintains the life cycle of the transaction branch.
  • the host resource management layer includes a management control center and a shared memory, a Mac Store (mac library), a virtual machine instance, and an event manager respectively connected to the management control center, where:
  • the management control center is configured to provide an API for acquiring host resources, and register or logout to the resource controller client;
  • the shared memory provides a shared storage resource access interface for the management control center;
  • the Mac Store is configured to manage a mac (media access control) address;
  • the virtual machine instance provides an API to operate the virtual machine using the peripheral libvirt and provides an API to obtain the state of the virtual machine;
  • the event manager provides event functions and registers them with the libvirt.
  • the management control center includes a virtual machine hash table, and the virtual machine hash table is used to store the life cycle of the virtual machine.
  • a service control party of the transaction-based service control system as described above according to the second aspect of the present invention Method includes:
  • the service factory sends a service request to the domain manager or component manager; the domain manager or component manager requests a resource from the resource controller and instructs the transaction manager to begin creating a global transaction and a transaction branch ;
  • the resource controller determines whether there are available resources, and performs an optimal resource for the request, and returns;
  • the transaction manager sends the transaction branch to the resource manager
  • the resource manager manages execution of the transaction branch, and when the transaction branch is executed, returns an execution result to the transaction manager, and updates resource information to the resource controller.
  • the monthly request is a domain request or a component request
  • each domain request acts as a domain global transaction, and each domain global transaction can be decomposed into multiple component global transactions, and each component global transaction can be decomposed into multiple transaction branches;
  • each component request is treated as a component global transaction, and each component global transaction can be decomposed into multiple transaction branches.
  • the method further includes:
  • the domain manager accesses a scheduling controller in the resource controller
  • the scheduling controller checks the reference information of the resource and the usage of the resource in the resource reference table, and determines whether the domain request can be executed.
  • the method further includes:
  • the executable result is returned to the domain manager, and the domain manager locks the resources required for execution.
  • the method further includes:
  • the domain request enters a waiting state, and the domain manager continues to apply for a resource until timeout.
  • the method further includes:
  • the domain manager sends the domain request to the transaction manager
  • the transaction manager generates a domain global transaction and decomposes the domain global transaction into a plurality of component global transactions and sends them to the component manager.
  • the method further includes:
  • the component manager decomposes the component global transaction into a plurality of transaction branches and accesses a scheduling controller in the resource controller;
  • the scheduling controller checks the state of the virtual machine in the virtual machine state machine, and determines whether the transaction branch is executed on the virtual machine according to the state of the virtual machine.
  • the method further includes:
  • the scheduling controller further checks the reference information of the resource in the resource reference table, and invokes the load calculator and the cost evaluation module.
  • the method further includes:
  • the transaction branch conflicts with the state of the virtual machine, the transaction branch cannot be executed, and the result is returned to the component manager, the component request enters a wait state, and the component manager continues to apply for resources until timeout .
  • the method further includes:
  • the load calculator calculates and evaluates the load on each node server according to the resource usage on each node server by using a unified algorithm
  • the cost evaluation module calculates, according to the load on each node server and the ability of the node server to bear the load in a short period of time, the load execution condition on each node server, and the time required to release the resource;
  • the scheduling controller determines, based on the results of the load calculator and the cost evaluation module output, which node server to schedule the transaction branch to execute.
  • the method further includes:
  • the dispatch controller sends the scheduling result to a routing controller in the transaction router; the routing controller invokes the connection coordinator, which checks the logical path from source to destination.
  • the method further includes: If the connection coordinator checks that there is a logical path between the source and the destination, the routing controller further calls the optimal path calculator and the flow controller;
  • the optimal path calculator calculates the cost of each logical path according to the information in the logical path topology table
  • the flow controller calculates network traffic of each logical path according to information in the logical flow state table
  • the routing controller selects an optimal logical path for the transaction by the compromise strategy according to the calculation result of the optimal path calculator and the flow controller.
  • the method further includes:
  • connection coordinator checks that there is no logical path between the source and the destination, the routing controller further calls the error control module to recover the error condition of the logical path until the abnormality is restored or time out.
  • the method further includes:
  • the component manager receives the result returned by the dispatch controller, locks the resources required to execute the component request, and sends a component request to the transaction manager.
  • the method further includes:
  • the transaction manager After the one component global transaction is completed, the transaction manager returns the result to the component manager, after the component manager indicates the submission or rollback of the component global transaction, releases the locked resource, and sends the result To the transaction manager;
  • the transaction manager When the one domain global transaction is completed, the transaction manager returns the result to the domain manager, which indicates that the locked resource is released after the commit or rollback of the domain global transaction.
  • a global transaction processing method comprising a plurality of asynchronous events, such as the above transaction-based service control system, according to the third aspect of the present invention, wherein the transaction manager in the service control system further comprises an AP (component manager or domain manager) Proxy, global transaction queue, global transaction wait queue, event wait queue, RPC (remote procedure call) client, and delayed work queue, the method includes:
  • the AP proxy sends the service request as a global transaction to the global transaction queue for processing by the transaction processor, simultaneously generating a start transaction event, and causing the start transaction event to enter The event waiting queue;
  • the transaction processor begins processing the global transaction and sends the global transaction that begins processing to the global transaction waiting queue;
  • the timer counts the delayed operation and waits for the return result of the transaction branch corresponding to the delayed operation.
  • the method further includes:
  • the transaction branch returns an execution result to the transaction manager,
  • the delayed work corresponding to the transaction branch is deleted from the delayed work queue, and the execution result of the transaction branch is called back by the RPC client, and the callback event enters the event wait queue.
  • the method further includes:
  • the timer returns an event timeout (outdated) to the event waiting queue if the transaction branch returns to the transaction manager for more than the threshold of the timer after execution in the resource manager
  • the work of the delay corresponding to the transaction branch is deleted from the delayed work queue.
  • the types of events stored in the event waiting queue include global transaction related events and transaction branch related events, and the different events have different priorities.
  • the method further includes:
  • the transaction processor locks each component element in the global transaction queue, the event wait queue, and the delayed work queue;
  • the transaction processor maintains a life state period of the global transaction.
  • the life cycle of the global transaction includes seven states, namely committed, rollbacked, FetalError, committing, rollbacking, preparing (resolved). Prepared) and prepared (prepared);
  • the transaction processor controls the execution of the event based on the state of the global transaction.
  • a host resource management method for processing a virtual machine transaction such as the above-described transaction-based service control system, according to the fourth aspect of the present invention, the method comprising:
  • the management control center sends a request for querying the virtual machine template to the shared memory, and the shared memory returns a URL (Uniform Resource Locator) of the virtual machine template to the management control center;
  • URL Uniform Resource Locator
  • the management control center obtains the mac address information of the virtual machine template from the Mac Store according to the URL of the returned virtual machine template.
  • the management control center sends an instruction to create a virtual machine to the libvirt, and the libvirt returns the created virtual machine;
  • the management control center sends the content of the virtual machine image to the shared memory to confirm whether to create a virtual machine image
  • the management control center If the virtual machine image creation is completed, the management control center returns a completion instruction to the resource manager.
  • the present invention manages and controls the service request after the user's request reaches the service factory in the primary server, the service is created by the service factory, and the service request is sent to the service controller of the present invention. , including ensuring the reliability of the service, and scheduling and routing the service, so that the service can be executed quickly and efficiently on the virtual machine on the node server.
  • the invention can control and manage two levels of service requests of services and resources (virtual machine); control the whole process of service request from the beginning to the end of execution through distributed transaction processing, combined with state machine mechanism, and transaction scheduling and transaction routing strategy The status, and timely response to the user, while monitoring resource status information, eliminating resource conflicts of concurrent processing, so that the service request can reach the node with the least load through the optimal path, thereby effectively ensuring the quality of service.
  • BRIEF abstract 1a is a structural block diagram of a transaction-based service control system according to one embodiment of the present invention
  • FIG. 1b is a logical system block diagram of a transaction-based service control system according to one of the present invention
  • FIG. 2 is a resource of one of the present inventions. a block diagram of the controller;
  • FIG. 3 is a block diagram showing the composition of a scheduler in a resource controller according to one aspect of the present invention.
  • FIG. 4 is a block diagram showing the composition of a transaction router in a resource controller according to one aspect of the present invention.
  • Figure 5a is a diagram of a routing decision environment of one of the present inventions.
  • Figure 5b is a flow chart of routing decision of one of the present inventions.
  • Figure 6 is a block diagram showing the composition of a transaction manager of one of the present inventions.
  • Figure 7 is a block diagram showing the composition of a resource manager of one of the present inventions.
  • FIG. 8 is a block diagram showing the composition of a host resource management layer in a resource manager according to one aspect of the present invention.
  • FIG. 9 is a flow chart of a transaction-based service control method according to the second aspect of the present invention.
  • Figure 10 is a diagram showing a domain global transaction state transition process of the second embodiment of the present invention and the third aspect of the present invention
  • Figure 11 is a diagram of a component global transaction state transition process of the second embodiment of the present invention and the third aspect of the present invention
  • a transaction branch state transition process diagram of the third aspect of the present invention
  • Figure 13 is a flow chart showing the execution of the second embodiment of the present invention and the third aspect of the present invention. detailed description
  • Figure la is a general view of one of the present invention, reflecting the logical relationship between the various constituent modules of one of the present invention, one or more embodiments of the present invention may be practiced herein.
  • a transaction-based service control system 10 of one of the present invention is connected to a peripheral service factory 1 and receives a service request issued by the service factory 1.
  • the service control system 10 includes a domain manager 2, a component manager 4, a resource controller 3, a transaction manager 5, and a resource manager 6. If the service factory 1 requests execution of a service, the domain request is sent to the domain management. 2, if the service factory 1 requests to operate the virtual machine, the component request is sent to the component manager 4.
  • the domain manager 2 is connected to the resource controller 3 and the transaction manager 5, respectively, requests resources from the resource controller 3, and instructs the transaction manager 5 to start creating a global transaction; the domain manager 2 is used to manage the life cycle of the domain, including from Create a domain to delete, and break a domain request into multiple components request;
  • the component manager 4 is connected to the resource controller 3 and the transaction manager 5, respectively, requests resources from the resource controller 3, and instructs the transaction manager 5 to start creating a global transaction; the component manager 4 is used to manage the life cycle of the component, including Component creation to deletion, and breaking a component request into multiple transaction branches;
  • the resource controller 3 stores the status of the resource and the resource usage information, and returns the available resource information according to the resource application request sent by the domain manager 2 or the component manager 4;
  • the transaction manager 5 creates a global transaction and its transaction branch based on the indication of the creation of a global transaction output by the domain manager 2 or the component manager 4;
  • the number of resource managers 6 is at least one, which is respectively connected to the transaction manager 5 and the resource controller 3, receives the transaction branch sent by the transaction manager 5, manages the execution of the transaction branch, and sends the updated resource information to the resource control. Device 3.
  • the service factory 1 is a management program running on the server, and the service factory 1 as a client requests resources from the service control system 10.
  • Service Factory 11 is connected to Domain Manager 2 and Component Manager 4.
  • the request arrives at the domain manager 2.
  • the user requests to deploy a lamp (the lamp is an abbreviation for l inux, apache, mysql, PHP, and These four are computer proper nouns) and the request reaches domain manager 2.
  • Domain Manager 2 manages the creation and deletion of domains, divides the request into multiple operators, and defines the relationships between these operators; audits and locks the resources of the RC (resource controller), sends operati on to The transaction manager 5, after completing the task, unlocks the resource.
  • a domain is a collection of divided resources, including computing device resources (servers and virtual machines), storage device resources, and network device resources.
  • the domain provides a web (network) to provide a service, such as a network resource service for the lamp service.
  • Domain has a mechanism for sharing VMs, and a VM can be used for multiple domains.
  • Domain has the characteristics of multi-tenancy: A domain can be used simultaneously by multiple users, and the user's information is separated.
  • the request arrives at the component manager 4.
  • the component manager 4 manages the creation and deletion of components, other aspects The function is the same as that of Domain Manager 2, except that the processing object is a component.
  • Component is a special domain with only one VM. When the component is created, it checks whether there is a VM that matches the multiplexing in the VM. If there is, the domain multiplexes the VM, and the ID of the component is recorded in the VM class.
  • a VM may correspond to multiple componen
  • Domain Manager 2 is connected to Resource Controller 3 and Transaction Manager 5.
  • the resource controller 13 controls transaction access to resources, provides an interface for requesting and releasing resources for the domain manager 2 and the component manager 4, and scheduling and routing of transactions to ensure concurrent processing of transactions and realize lightweight resources. protection.
  • the transaction manager 5 is responsible for the management of the transaction, using the operati ons sent by the AP to create the GT (global transaction), and maintaining the GT life cycle, and creating a BT (transaction branch), sending the BT to the resource manager according to the BT priority. 6, and provide a tx interface to the domain manager 2 and the component manager 4.
  • Resource Manager 6 maintains the lifecycle of BT and provides APIs to Transaction Manager 5.
  • the Transaction Manager 5 which is the core component of the Service Control System 10, runs on a primary server.
  • Resource Manager 6 runs on a node (slave) server.
  • node (slave) server In general, in a group, there is one primary server and multiple node (slave) servers.
  • Resources refer to various infrastructure resources, including virtual machines, hosts, storage, and networks, on which service instances run.
  • FIG. 1b an environment diagram of one of the present invention is shown, reflecting the entire flow of a service request from a client to execution on a particular node server, one or more embodiments of the present invention may be Implementation.
  • the client 11 refers to various user terminal devices, which may be traditional PCs, personal notebooks, terminal devices such as netbooks and mobile phones, and various fat and thin terminal devices. These devices can be configured to generate requests and send requests to the primary server 13 over the network 12.
  • Network 12 may be a local area network, a wide area network, and a collection of different networks, or it may be the Internet or another system that is interconnected by computing devices.
  • the primary server 13 is responsible for generating service and control services, consisting of a service factory 1 and a service control system 10.
  • Service Factory 1 is a production service unit that receives user requests, creates services through components and contracts, and responds to user requests in units of services. Services are loosely coupled and reusable to maximize infrastructure resources. use.
  • the service factory 1 sends the generated service and related policies to the service control system 10, and the service control system 10 controls the service request from the beginning through the distributed transaction processing method, the state machine mechanism, and the transaction scheduling and transaction routing policies. Execute the state of the whole process, and respond to the user in time, and monitor the resource status information to eliminate the resource conflict of concurrent processing, so that the service request can reach the node with the least load through the optimal path.
  • the service control system 10 can also control and manage service requests and resource (virtual machine) levels of service requests.
  • the primary server 13 is a high performance server hardware
  • the service factory 1 and the service control system 10 are software systems running on the primary server 13.
  • the node server 14 is a computing node that performs services.
  • each node server 14 is composed of hardware 141, VMM 142, and virtual machine 143, which is a basic computing unit that performs services.
  • virtual machine 143 is a basic computing unit that performs services.
  • the present invention is not limited to the virtual machine as the most basic computing unit. According to the needs of the user, the virtual machine 143 and the host can be used as the most basic computing unit for executing the service.
  • the resource controller 3 controls the access of the transaction to the resource, and provides the domain manager 2 and the component manager 4 with an interface for requesting and releasing resources; and scheduling and routing of the transaction to ensure concurrent processing of the transaction and realize lightweight resources. protection.
  • the resource controller 3 includes a scheduler 331, a transaction router 332, and a resource center 333, where: the resource center 333 is a resource storage center of the resource controller 3, and can store resource information in various storage manners such as a database, a table, and the like;
  • the virtual machine state machine 3331 and the resource reference table 3332 are composed of two parts;
  • the scheduler 331 is connected to the transaction router 332, and determines the scheduling of the transaction according to the information in the virtual machine state machine 3331 and the resource reference table 3332, and sends the scheduling result to the transaction router 332;
  • Transaction router 332 receives the information sent by scheduler 331 and makes routing decisions based on the information in resource reference table 3332.
  • the resource controller 3 is also connected to the peripheral node server 14, the number of node servers 14 is at least one, and each node server 14 includes a virtual machine API 341 and a Moni tor API 342, where: the virtual machine API 341 is used to virtual machine The latest information is transmitted to the virtual machine state machine 3331;
  • the Moni tor API 342 is used to communicate the latest information on resource references and resource usage to the resource reference table 3332.
  • the virtual machine state machine 3331 stores virtual machine state information, maintains the life cycle of the virtual machine, and is stored in the form of a distributed hash table, and its function is to control the virtual state according to the life cycle state of the virtual machine. Access to the machine to avoid anomalies.
  • the resource reference table 3332 stores various resources.
  • the reference path, and the use of resources, the resources here include cpu, memory, storage, I / O, etc.; reference path refers to how to refer from the top to the bottom of a specific physical resource, such as from the data center to Group, then from the group to a node in the group host, and then from the host to the cpu or memory in the host, the resource reference is implemented by a tree structure; when referring to the cpu on a node host, the usage of the cpu is It is the use of resources mentioned here, of course, it can also be the use of various specific physical resources.
  • the virtual machine API 341 of the node server 14 sends the latest virtual machine state information to the virtual machine state machine 3331 in the resource center 333.
  • the information in the resource reference table 3332 is provided by moni tor on the host and transmitted to the resource reference table 3332 via the Moni tor API 342.
  • Moni tor mainly implements resource monitoring, including hardware resources and virtual machine resources, discovers resource usage anomalies and reports, provides a basis for resource allocation, and effective use of resources.
  • the moni tor can be used as a configurable module of the Linux kernel and an application layer interface. It can also be used by other programs to register a monitor.
  • the scheduler 331 is responsible for scheduling the request, that is, determining whether the request can be executed according to the virtual machine state information and the resource reference information in the resource center 333, and on which node server 14 each operation is performed.
  • Transaction router 332 is responsible for routing the transaction (where the transaction refers to each operati on), and determining the routing of the transaction based on the resource reference information in resource center 333.
  • the scheduler 331 receives the request of the domain manager 2 or the component manager 4, and views the virtual machine state and the usage of the physical resources in the resource center 333.
  • the scheduler 331 determines whether the request can be executed based on the resource information, and if not, returns "cannot be executed" to the domain manager 2 or the component manager 4; if it can be executed, the scheduler 331 further determines each of the requests. Where is the operati on executed, and the transaction router 332 is called to determine the route for each operation.
  • the scheduler 331 returns the destination node server 14 and the routing information executed by each of these operations to the domain manager 2 or the component manager 4, and the domain manager 2 or the component manager 4 locks the resources required for execution.
  • the virtual machine API 341 and the Moni tor API 342 on the node server 14 report the virtual machine status update information and the resource status update information to the resource center 333.
  • FIG. 3 there is shown a compositional framework of a scheduler 331 in a resource controller of one of the present inventions.
  • the scheduler 331 is responsible for scheduling the request, that is, according to the virtual machine status information in the resource center 333 and The resource references information to determine if the request can be executed, and on which node each operation is performed (a request includes multiple operations), primarily for load balancing.
  • the scheduler 331 mainly includes an interconnected transaction execution planning module 41 and an execution control module 42, wherein:
  • the transaction execution planning module 41 is configured to plan the scheduling of the transaction, and send the result of the planning to the execution control module 42.
  • the transaction execution planning module 41 includes a scheduling controller 411 and a load calculator 412 and a cost estimate connected to the scheduling controller 411. Module 413, and the scheduling controller 411 is configured to invoke the load calculator 412 and the expense evaluation module 413, and determine a scheduling policy;
  • the execution control module 42 determines the strategy for executing the control based on the planning result output by the transaction execution planning module 41.
  • the transaction execution planning module 41 upon receiving the request, sends the request to the dispatch controller 411, and the dispatch controller 411 first checks the state of the virtual machine in the virtual machine state machine 3331, according to the state of the virtual machine. , to determine whether the operator can be executed on the virtual machine (that is, whether the virtual machine can be operated), if the operati on does not conflict with the state of the virtual machine, the scheduling controller further checks the reference information of the resource in the resource reference table 3332. And calling the load calculator 412, the load calculator 412 calculates and evaluates the load on each node using a unified algorithm according to the resource status (resource usage) on each node, and calculates each node by the cost evaluation module 413.
  • the execution of the load, and how long it will be released taking into account the ability of the node to withstand the load in a shorter period of time.
  • there is a lot of load on a certain node server and it takes up a lot of resources.
  • these loads are in the late stage of execution and are about to be executed. Therefore, a large amount of resources can be released in a short period of time.
  • the dispatch controller 411 comprehensively determines, based on the load calculator 412 and the expense evaluation module 413, which nodes are required to execute the operati on, which of the nodes is the optimal node for performing operatization.
  • the transaction execution planning module 41 passes the planning results to the execution control module 42.
  • the dispatch controller 411 returns the result to the component manager or domain manager, and the result includes whether there is a resource required to execute the request, on which node each operation is executed, the component manager or the domain manager and the execution request is locked. resource of.
  • FIG. 4 there is shown a transaction router 332 in a resource controller of one of the present invention. Form the framework.
  • the transaction router 332 includes an interconnected routing manager 511 and routing information store 512, where: the routing manager 51 1 is the routing processing center of the transaction router 332, which determines the routing of transactions by routing information and policies in the routing information store 512. ;
  • Routing information store 512 is the information storage center of transaction router 332 that stores and provides logical routing information to routing manager 511 based on the information in resource reference table 3332.
  • the routing manager 511 includes a routing controller 5112 and a connection coordinator 511 1 connected to the routing controller 5112, an optimal path calculator 5113, a flow controller 51 15 and an error control module 5114, wherein:
  • the routing controller 5112 is the core of the routing manager 511, which determines the logical routing decision of the transaction by the cooperative operation of the connection coordinator 5111, the optimal path calculator 5113, and the flow controller 5115; the connection coordinator 51 11 is used for management
  • the logical connection of the network includes determining whether the logical connection is abnormal, specifically, determining which connection is open, determining which way can go, which cannot go, how to go, and according to different permissions of the user. Determine the logical path of the transaction;
  • the optimal path calculator 5113 is a computing function module for solving the least expensive logical path from the source to the destination by a certain algorithm, and the minimum cost means the source node to the destination, that is, the routed target node server 14 Shortest path;
  • Flow controller 51 15 is used to monitor network traffic on each logical path.
  • the combination of the flow controller 51 15 and the optimal path calculator 5113 can result in an optimal compromise path, and the connection coordinator 5111 is based on the user's authority (depending on the policy defined when the user requests the service, The users have different permissions) and the logical connection of the network, ultimately determining the logical routing of the transaction.
  • the error control module 5114 monitors for error conditions on the network and recovers from link error conditions.
  • the logical routing information stored in the routing information storage 512 includes a logical path topology table 5121, a logical flow state table 5122, and a transaction state table 5123.
  • the routing information storage 512 is connected to the resource reference table 3332, and determines the logical path according to the information provided by the resource reference table 3332.
  • Topology table 5121, logical flow state table 5122 and transaction state table 5123 wherein: logical path topology table 5121 stores network logical path topology information; logical flow state table 5122 stores network traffic state information; transaction state table 5123 stores Is the status information of the transaction branch.
  • the router 332 operates at the transport layer of the network and performs logical routing decisions in the transport layer space.
  • FIG. 5a a routing decision flow for one of the present inventions is illustrated.
  • the decision making of the routing decision first depends on the logical environment and the logical connection between different groups.
  • the components and strategies related to the routing are mainly considered. The specific steps are as follows:
  • Step 611 the scheduler 331 sends a transaction scheduling decision to the transaction router 332;
  • Step 612 according to the authority of the transaction and the logical path topology information, the connection coordinator 5111 checks the logical path from the source to the destination;
  • Step 613 according to the check result of step 612, determine whether there is a logical path available, if there is a logical path that can be taken, go to step 617, otherwise go to step 614;
  • Step 614 the routing controller 51 12 calls the error control module 51 14 to recover the path error condition
  • Step 615 determining whether the path abnormality is solved, if yes, proceeding to step 617, otherwise proceeding to step 616;
  • Step 616 returning an error message, the network is unreachable, and the transaction cannot be executed
  • Step 617 the routing controller 51 12 calls the optimal path calculator 5113, the optimal path calculator
  • Step 618 the routing controller 51 12 calls the flow controller 51 15, and the flow controller 51 15 calculates the network traffic of each logical path according to the information of the logical flow state table 5122;
  • Step 619 the routing controller 5112 selects an optimal logical path for the transaction by the compromise strategy according to the calculation result of the optimal path calculator 5113 and the flow controller 5115;
  • Step 620 the routing controller 51 12 returns the routing decision result to the scheduler 331.
  • groups 62 which form a logical connection between them.
  • the present invention employs a distributed connection between any two groups 62 that are interconnected. Multiple groups 62 are connected together to form a service federation, and the service (transaction) route is a logical route in the federated environment.
  • the service request arrives at the primary server 13 of a certain group 62, through which the scheduler determines which node server 14 to schedule the request to.
  • the request is routed through the transaction router to On the node server 14 within the group 62; if the node server 14 is outside the group 62, the request is routed through the transaction router to the node server 14 outside the group 62.
  • the transaction manager 5 includes a transaction processor 713, a timer 717, an AP proxy (in the present embodiment, the AP proxy takes the component manager proxy 711 as an example), a global transaction queue 7121, a global transaction wait queue 7122, an event wait queue 714, RPC client 715 and delayed work queue 716, where:
  • the transaction processor 713 is a processing center of the transaction manager 5, and is used for processing global transactions, multiple asynchronous events related to global transactions, and delay work generated by multiple transaction branches decomposed by the global transaction; specifically, That is, it is responsible for the processing of the three parts of the global transaction waiting queue 7122, the event waiting queue 714 and the delayed working queue 716, mainly including creating a global transaction, maintaining the life cycle of the global transaction, parsing the global transaction, and creating multiple transaction branches. And sending the transaction branch to the RPC client 715;
  • Timer 717 is used to time the delay work generated by the transaction branch and set a threshold to determine if the transaction branch has elapsed from the time it takes to return the result.
  • the component manager agent 711 sends the service request as a global transaction to the global transaction queue 7121 for processing by the transaction processor 713, while generating a start transaction event (ie, event tx_ begin) and causing the start transaction event to enter the event wait queue 714;
  • a start transaction event ie, event tx_ begin
  • the transaction processor 713 begins processing the global transaction and sends the global transaction that begins processing to the global transaction wait queue 7122;
  • the transaction processor 713 creates a global transaction, it creates multiple transaction branches for the global transaction, and sends the transaction branch to the resource manager 16 through the RPC client 715, while generating a delayed job for the transaction branch (de layed Work ) and sent to the delayed work queue 716;
  • the timer 717 counts the operation of the delay, and waits for the return result of the transaction branch corresponding to the work of the delay; specifically: the timer 717 starts counting from the time-delayed work generation, and sets a maximum time threshold.
  • the timer 717 and the resource manager 6 work simultaneously, and if the time at which the transaction branch returns to the transaction manager 5 after execution of the transaction manager in the resource manager 6 is within the threshold of the timer 717, then The transaction branch returns the execution result to the transaction manager 5, and the execution result of the transaction branch can be branch preparec branch preparation) ⁇ branch fai led (branch failure) or branch rol lbacked (branch rollback), etc., corresponding to the transaction branch
  • the delayed operation is removed from the delayed work queue 716, and the execution result of the transaction branch is callbacked by the RPC client 715, and the callback event is entered into the event wait queue 714.
  • the timer 717 returns the event timeout to the event wait queue 714, and the delayed work corresponding to the transaction branch is deleted from the delayed work queue 716.
  • Transaction handler 713 notifies resource manager 6 of the commit or rollback of the transaction branch based on the results returned by the transaction branch. Since there are many asynchronous events in a global transaction, it is very troublesome to lock the global transaction. Therefore, the event processing method, that is, regardless of the operation, the global transaction or the transaction branch, can be regarded as an event. Processing has been unified. In this manner, transaction processor 713 requires work lock on each of the constituent elements of global transaction queue 7121, event wait queue 714, and delayed work queue 716, namely global transactions, events, and delays.
  • the transaction processor 713 controls the execution of the event (the same as the control mechanism of the virtual machine state machine) based on the state of the global transaction, where the transaction state includes the global The transaction state and the transaction branch state, wherein the life cycle of the global transaction maintained by the transaction processor 713 includes seven states, namely, commi ttecU rol lbacked , FetalError ⁇ commi tt ing ⁇ rol lbacking ⁇ preparing and prepared.
  • the event types stored in the event waiting queue 714 include global transaction related events and transaction branch related events, and global transaction related events include tx — begin, tx_commi t, tx — rol lback and wai t for event (all functions), transaction branch related events include branch prepared ⁇ branch fai led ⁇ branch rol lbacked and imeout, and different events have different priorities, such as rol lback priority than commi t priority High; for the case of many threads and many asynchronous events, it can be summarized into several classes and processed together.
  • the resource manager 6 runs on the node server for receiving the request from the transaction manager 5, managing the life cycle of the transaction branch; it includes the host resource management layer 82 and the host resource respectively
  • the host resource management layer 82 receives the call signal sent by the resource manager server 83, and configures the resources required to execute the transaction branch;
  • the resource controller client 81 receives the virtual machine status update information returned by the host resource management layer 82, and sends the updated virtual machine status to the resource controller.
  • the resource manager server 83 includes a resource manager agent 834, a worker thread 833, a request queue 831, and a transaction branch queue 832, wherein: the resource manager agent 834 passes the concurrent request sent by the transaction manager 5 through the request queue 831. Passed to worker thread 833 for processing; worker thread 833 starts the transaction branch by ax_begin (for function), sends the processed request to transaction branch queue 832, and processes the transaction branch and maintains the life cycle of the transaction branch; The request includes Ax- begin, Ax-commi, and Ax-rol lback (both functions), and the request is processed by worker thread 833.
  • the resource manager agent 834 passes the concurrent request sent by the transaction manager 5 through the request queue 831. Passed to worker thread 833 for processing; worker thread 833 starts the transaction branch by ax_begin (for function), sends the processed request to transaction branch queue 832, and processes the transaction branch and maintains the life cycle of the transaction branch;
  • the request includes Ax- begin
  • the resource manager server 83 After starting the transaction branch, the resource manager server 83 sends the request to the host resource management layer 82, which configures the resources required to execute the transaction branch and calls l ibvirt to execute the transaction branch, l ibvirt returns the execution result to the host resource management
  • host resource management layer 82 returns the execution result to resource manager server 83 and sends the virtual machine state update information to resource controller client 81; resource manager server 83 updates the state of the transaction branch and returns the result Go to transaction manager 5.
  • composition framework of the host resource management layer 82 in the resource manager of one of the present inventions is shown.
  • the host resource management layer 82 is a resource management module on the host, connected to the resource controller client 81 and the resource manager server 83, and provides an interface for calling the ibvirt 96.
  • the host resource management layer 82 includes a management control center 91 and a shared memory 92, a Mac Store 93, a virtual machine instance 94, and an event manager 95 respectively connected to the management control center 91, wherein:
  • the management control center 91 is the core of the host resource management layer 82. It is used to provide an API for acquiring host resources, and is registered or deregistered to the resource controller client 81.
  • the management control center 91 includes a virtual machine hash table 911, and the virtual The machine hash table 911 is used to manage the life cycle of the virtual machine.
  • the shared memory 92 refers to a sharable storage, which may be a storage area network (SAN), a network attached storage (NAS), or a redundant array of independent disks (Raid), which is used to provide shared storage for the management control center 91.
  • Resource access interface a sharable storage, which may be a storage area network (SAN), a network attached storage (NAS), or a redundant array of independent disks (Raid), which is used to provide shared storage for the management control center 91.
  • the Mac Store 93 is used to manage the mac address (which stores multiple mac addresses in a group or larger range) and provides support for the operation control center 91 to perform operations;
  • the virtual machine instance 94 provides an API to operate the virtual machine using the peripheral l ibvirt 96 and provides an API to obtain the state of the virtual machine;
  • Event Manager 95 provides event functionality and registers them with ibvirt96.
  • the transaction branch of the transaction branch queue 832 that operates the virtual machine is sent to the management control center 91;
  • the management control center 91 sends a request for querying the virtual machine template to the shared memory 92, and the shared memory 92 returns the URL of the virtual machine template to the management control center 91;
  • the management control center 91 obtains the mac address information of the virtual machine template in the Mac Store 93 according to the URL information of the returned virtual machine template.
  • the management control center 91 sends an instruction to create a virtual machine to l ibvirt 96, and the l ibvirt 96 returns the created virtual machine;
  • the management control center 91 sends the contents of the virtual machine image to the shared memory 92 to confirm whether the virtual machine image is created. If the virtual machine image is created, the management control center 91 returns the completion command (ie, 0K) to the resource manager.
  • the transaction-based service control method of the second aspect of the present invention includes:
  • the service factory 1 sends a service request to the domain manager 2 or the component manager 4;
  • the service request may be a domain request or a component request, and if the service requests a service, the domain request arrives at the domain manager 2, if the service request is virtual Machine, then the component request arrives at component manager 4;
  • the domain manager 2 or the component manager 4 requests the resource controller 3 for the resource and instructs the transaction manager 5 to start creating the global transaction and the transaction branch; specifically, if the service request is a domain request, each domain request is treated as a domain.
  • each domain global transaction can be decomposed into multiple component global transactions, each component global transaction can be broken into multiple transaction branches; if the service request is a component request, then each component request as a component global transaction, each The component global transaction can be broken down into multiple transaction branches;
  • the resource controller 3 determines whether there are available resources, and executes the requested optimal resource, and returns; the transaction manager 5 sends the transaction branch to the resource manager 6;
  • the resource manager 6 manages the execution of the transaction branch, and when the transaction branch is executed, returns the execution result to the transaction manager 5, and updates the resource information to the resource controller.
  • Step 201 the service factory 1 issues a service request to the service control system 10;
  • Step 202 Determine a type of the service request; where the service request is divided into two different levels of requests, one is a service level request, and the other is a resource level request; if the requested domain is a domain (ie, a service request), the request is transferred. Go to step 203, otherwise the request goes to step 209;
  • Step 203 the service request, that is, the domain request arrives at the domain manager 2;
  • Step 204 the domain manager 2 decomposes the domain request into multiple opera ions (here, decomposes a domain request into multiple component requests), and applies resources to the resource controller 3, that is, the domain manager 2 accesses the resource controller. a dispatch controller 411 in 3;
  • Step 205 Through the information in the resource controller 3, the domain manager 2 determines whether there is a resource required to execute the service request, that is, the scheduling controller 411 checks the resource reference information and the resource usage in the resource reference table 3332. And determine whether the domain request can be executed; if there are available resources, then go to step 206, otherwise go to step 207;
  • Step 206 the domain manager 2 locks the resource, and transfers the operating ions to the transaction manager 5; specifically, if the resource shown in the resource reference table 3332 is available and satisfies the execution of the domain request, it will be executable. The result is returned to the domain manager 2, and the domain manager 2 locks the resources required for execution, and sends the domain request to the transaction manager 5;
  • Step 207 Wait until the available resources, when the waiting time exceeds the set time limit, end the execution of the transaction, and return the result of "no available resources, the transaction cannot be executed"; specifically, That is, if there is no available resource in the resource reference table 3332, the result that no resource cannot be executed is returned to the domain manager 2, the domain request enters the waiting state, and the domain manager 2 continues to apply for the resource until the timeout is exited;
  • Step 208 the transaction manager 5 creates a global transaction according to the opera ions, and creates multiple transaction branches for each global transaction, and transfers the transaction branch to the component manager 4 (where the global transaction is a domain global transaction, and the transaction branch is a domain transaction) Branch, that is, component global transaction);
  • Step 209 the request arrives at the component manager 4, where the request can be either a component request directly from the service factory 1, or a transaction branch request from the transaction manager 5, and a global transaction request (also visible) Request for component);
  • Step 210 the component manager 4 decomposes the component request into a plurality of opera ions (here, decomposes a component request into a plurality of sub-operations), and applies resources to the resource controller 3, that is, the component manager 4 accesses the resource controller.
  • step 212 the component manager 4 locks the resource and transfers the operati ons to the transaction manager 5; specifically:
  • the scheduling controller 411 further goes to the resource reference table.
  • the reference information of the resource is viewed in 3332, and the load calculator 412 and the expense evaluation module 413 are invoked; the load calculator 412 calculates and evaluates each node server 14 using a unified algorithm according to the resource usage on each node server 14.
  • the cost evaluation module 413 calculates the load execution condition on each node server 14 and the time required to release the resources according to the load on each node server 14 and the ability of the node server 14 to withstand the load in a short period of time;
  • the dispatch controller 41 1 determines, based on the results of the load calculator 412 and the cost evaluation module 413, which node server 14 to schedule the transaction branch to execute;
  • the scheduling controller 41 1 sends the scheduling result to the routing controller 5112 in the transaction router 332;
  • the routing controller 5112 invokes the connection coordinator 51 11, which checks the logical path from the source to the destination;
  • connection coordinator 511 1 checks that there is a logical path between the source and the destination, the routing controller 5112 further calls the optimal path calculator 51 13 and the flow controller 5115;
  • the optimal path calculator 51 13 calculates the cost of each logical path based on the information in the logical path topology table 5121;
  • the flow controller 51 15 calculates the network traffic of each logical path according to the information in the logic flow state table 5122;
  • the routing controller 5112 selects an optimal logical path for the transaction by the compromise strategy according to the calculation result of the optimal path calculator 51 13 and the flow controller 5115, and returns the result to the dispatch controller 411;
  • connection coordinator 511 1 checks that there is no logical path between the source and the destination, the routing controller 5112 further calls the error control module 51 14 to recover the error condition of the logical path until the exception is recovered or timed out. ;
  • the component manager 4 receives the result returned by the dispatch controller 41 1 , locks the resources required to execute the component request, and sends the component request to the transaction manager 5;
  • Step 213 the transaction manager 5 creates a global transaction according to the operat ions, and creates a plurality of transaction branches for each global transaction, and sends the transaction branch to the resource manager 6;
  • Step 214 the resource manager 6 manages the execution of the transaction branch on the resource, including determining the sequence of execution of the transaction branch, and transmitting the execution result of the transaction branch to the transaction manager 5;
  • Step 215 after each transaction branch is completed, the resource status in the resource controller 3 is updated; if the user requests component, the component manager 4 determines the submission or rollback of the component global transaction, and releases the locked resource. The process ends; if the user requests domain and a domain global transaction consists of multiple component global transactions, component manager 4 determines the commit or rollback of the component global transaction, and releases the locked resource, all component global transactions After the execution is completed, the domain manager 2 determines the commit or rollback of the domain global transaction, and unlocks the resource, and the process ends;
  • Step 216 waiting until there are available resources, when the waiting time exceeds the set time limit, the execution of the transaction is ended, and the result of "no available resources, the transaction cannot be executed" is returned; specifically, If the transaction branch conflicts with the state of the virtual machine, the transaction branch cannot be executed, and the result is returned to the component manager 4, the component request enters the wait state, and the component manager 4 continues to apply for the resource until the timeout exits.
  • domain global transaction state process of the present invention is illustrated.
  • domain global transaction there are three types of transactions: domain global transaction, component global transaction, and transaction branch.
  • the domain global transaction is composed of multiple component global transactions
  • the component global transaction is composed of multiple transaction branches. After the domain global transaction starts, its state transition process is as follows:
  • Step 1001 the domain global transaction enters a "preparing" state
  • Step 1002 Determine whether all component global transactions under the domain global transaction are ready to be completed. If the preparation is complete, proceed to step 1003, otherwise proceed to step 1006; Step 1003, the domain global transaction enters a "prepared" state;
  • Step 1004 it is determined whether all of the component global transactions are committed (commit), if all committed, then go to step 1005, if there is a component global transaction rollback, then go to step 1006;
  • Step 1005 the domain global transaction enters a "committing" state
  • Step 1006 the domain global transaction enters a "rollbacking" state
  • Step 1007 determining whether the component global transaction fails to be submitted.
  • Step 1008 determining whether the component global transaction fails to roll back, when a transaction branch rollback failure of a component global transaction fails, the component global transaction rollback fails; if the component global transaction rollback fails, then proceeds to step 1011. , otherwise proceeds to step 1010; Step 1009, the domain global transaction enters the "committed" state;
  • Step 1010 the domain global transaction enters a "rollbacked" state
  • step 1011 the domain global transaction enters the "FetalError" state.
  • this state is entered when a global transaction has a fatal exception error during the commit or rollback phase.
  • the component global transaction is the transaction branch of the domain global transaction, and includes multiple transaction branches. It is a global transaction with only one transaction branch in the general sense. Hereinafter, it is referred to as a global transaction, its state. The transfer is primarily determined by the state of the transaction branch. After the component global transaction starts, its state transition process is as follows:
  • Step 1101 the global transaction enters a "preparing" state
  • Step 1102 Determine whether all transaction branches are ready to be completed.
  • the preparation transaction branch refers to a process in which the transaction manager sends the transaction branch to the resource manager, and the transaction branch is processed in the resource manager and returned to the transaction manager. If the transaction branch is ready, go to step 1103, otherwise go to step 1109;
  • Step 1103 the global transaction enters a "prepared" state
  • Step 1104 determining whether the global transaction is a write transaction, the write transaction changes the state of the resource; if it is a write transaction, then proceeds to step 1105, otherwise proceeds to step 1108 (this is the case of a read transaction); Step 1105, judge Whether all transaction branches are ccMmit, if both ccMmit, then go to step 1106, otherwise go to step 1109;
  • Step 1106 the global transaction enters a "committing" state
  • Step 1107 determining whether the transaction branch fails to submit, if the transaction branch fails to submit due to a serious abnormality, the process proceeds to step 1111, otherwise proceeds to step 1108;
  • Step 1108 the global transaction enters a "committed" state
  • Step 1109 the global transaction enters a "rollbacking" state
  • Step 1110 determining whether the transaction branch rollback fails, if the rollback fails, proceeds to step 1111, otherwise proceeds to step 1112;
  • Step 1111 the global transaction enters the "FetalError" state
  • Step 1112 the global transaction enters a "rollbacked" state
  • the global transaction ends. At the end of the global transaction, it can be committecU rollbacked, FetalError, and committing ⁇ rollbacking ⁇ preparing ⁇ prepared.
  • the global transaction is successfully completed only when the final state is the committed state.
  • the domain global transaction and the component global transaction state transition lifecycle are stored in the transaction manager to control the handling of events in the transaction manager to avoid errors and exceptions.
  • the state transition process of the transaction branch is described.
  • the transaction expenses can be performed from the beginning to the end.
  • the resource manager receives the transaction branch sent by the transaction manager and starts preparing the transaction branch.
  • the specific process is as follows:
  • Step 1201 the transaction branch enters a "preparing" state
  • Step 1202 the transaction branch is ready to be completed, if the preparation is completed, the process proceeds to step 1203, otherwise proceeds to step 1204;
  • Step 1203 the transaction branch enters a "prepared" state
  • Step 1204 the transaction branch enters a "Failed" state
  • Step 1205 it is determined whether the transaction branch is successfully executed, if the execution is successful, then proceeds to step 1207, otherwise proceeds to step 1206;
  • Step 1206 the transaction branch enters a "rollbacking" state
  • Step 1207 the transaction branch enters a "committing" state
  • Step 1208 it is determined whether the transaction branch has a serious abnormality in the commit process, if a serious abnormality occurs, the process proceeds to step 1211, otherwise proceeds to step 1209;
  • Step 1209 the transaction branch enters a "committed" state
  • Step 1210 it is determined whether the transaction branch has a serious abnormality in the rollback phase, if a serious abnormality occurs, the process proceeds to step 1211, otherwise proceeds to step 1212;
  • Step 1211 the transaction branch enters a "FatalError" state
  • step 1212 the transaction branch enters the "rollbacked” state.
  • the state at the end of the transaction branch may be one of committed, rollbacked, and FatalError.
  • the transaction branch is successfully completed only when the state at the end is in the committed state.
  • the state transition life cycle of a transaction branch is stored in the resource manager, managed and maintained by the resource manager, to guarantee the processing of the transaction branch.
  • FIG. 13 a flow chart of the transaction execution of the present invention is shown, which represents the entire process from the service request to the component manager to the completion of the service request execution, and the execution of the domain manager is performed.
  • the procedure is similar to this, that is, the process of transferring from the transaction manager to the component manager, and the secondary unlocking of resources, one is the unlocking of the component global transaction, and the other is the unlocking of the domain manager.
  • the specific process is as follows:
  • Step 1301 The component manager receives the request and the resource information required to execute the request; Step 1302, the component manager views the resource status in the resource controller;
  • Step 1303 determining, by the information in the resource controller, whether there is available resources to run the service request, if there are available resources, proceeding to step 1304, otherwise proceeding to step 1305;
  • Step 1304 determining whether the request is a write operation or a read operation, if it is a write operation, proceeding to step 1306, otherwise proceeding to step 1307;
  • Step 1305 waiting until there is available resources, when the waiting time exceeds the set time limit, the execution of the transaction is ended, and the result that the transaction cannot be executed is returned without the available resources;
  • Step 1307 the component manager divides the request into multiple operati ons
  • Step 1309 the transaction manager creates a global transaction according to the received operati ons;
  • Step 1310 the transaction manager creates a transaction branch for each global transaction;
  • Step 131 The transaction manager sends the transaction branch to the resource manager server, and notifies the resource manager server to prepare and start the transaction branch;
  • Step 1312 the transaction branch raises an API of the HRML (Host Resource Management Layer) to perform a specific operation
  • Step 1313 the HRML reports the resource update information to the resource controller, and the resource controller updates the resource status.
  • Step 1314 after the execution of the branch transaction is completed, the resource manager sends the result to the transaction manager;
  • Step 1315 the transaction manager notifies the resource manager to prepare the commit or rollback of the transaction branch;
  • Step 1316 determines whether it is a write operation, and if so, Go to step 1318, otherwise go to step 1317;
  • Step 1317 the execution of the transaction ends
  • Step 1318 after the global transaction is completed, the transaction manager sends the result to the domain manager; In step 1319, the component manager sends a commit/rollback indication to the transaction manager; in step 1320, the component manager unlocks the release resource; the entire component global transaction runs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于事务的服务控制系统及其控制方法,其中,控制系统(10)与外围的服务工厂(1)连接,并接收该服务工厂(1)发出的服务请求,所述系统(10)包括域管理器(2)、component管理器(4)、资源控制器(3)、事务管理器(5)和资源管理器(6);若所述服务工厂(1)请求业务资源,则将请求发送到所述域管理器(2),若所述服务工厂(1)请求虚机,则将请求发送到所述component管理器(4)。本发明通过分布式事务处理,结合状态机机制,以及资源调度和事务路由策略,控制服务请求从开始到执行结束的全过程的状态,并及时响应给用户,同时监控资源状态信息,消除并发性处理的资源冲突,使服务请求可以经过最优的路径到达负荷最小的节点,从而有效地保证了服务质量。

Description

一种基于事务的服务控制系统及其控制方法 技术领域
本发明涉及计算机虚拟化技术及面向服务的体系领域, 尤其涉及一种基于事 务的服务控制系统及其控制方法。 背景技术
现在流行的虚拟化技术 VMM,全称虚拟机管理器(Virtual machine monitor), 在硬件和操作系统之间提供了一个虚拟抽象层, VMM也称之为主机操作系统, VMM 之上是客户机操作系统, 也称为虚拟机 (VM) , 以下简称虚机。 这些 VM都是一些 相互隔离的操作系统, 可以共享硬件资源。 VMM允许多个相互隔离的虚拟机同时运 行在一个主机(host ) 上, 一个服务器(server)上可以安装大量的虚拟机。 每个 虚拟机都是逻辑上独立的,它能被分配一定比例的主机内存和处理能力, 并可以很 容易地与其它的虚拟机区分开来,甚至也可以与安装该虚拟机的主机(host )区分。 对于网络上的用户而言,虚拟机本身就是一个分离的可寻址的计算机系统。虚拟机 可以有多种用途, 既可以用作网络上的另一个服务器, 用于软件或硬件测试, 作为 瘦客户端 (Thin Cl ient ) 的主要的计算机系统, 等等。 虚拟机还有其它的优点, 例如易于创建和删除,可以提高硬件服务器的使用率等。正因为虚拟机的灵活性和 强大的能力等优点,使得虚拟机得到了广为应用,很多组织都在原来的物理服务器 上安装十台甚至上百台虚拟机,使得组织内的计算机系统的数目成十倍甚至百倍的 扩张。 如何管理分布式网络环境中的大量虚机, 对虚机资源进行统一分配和调度, 为组织的业务需求供应可靠的虚拟计算资源,是充分有效地使用虚机,发挥虚机价 值的关键。
在面向服务的分布式环境中, 需要以服务的方式供应虚机和相关的基础设施 资源(这里的相关基础设施资源指运行虚机所需的服务器、网络设备和存储设备资 源)。这里的虚机和相关的基础设施资源是指执行用户业务所需的资源, 也可以称 之为业务资源。为了实现虚机和相关基础设施资源的服务化, 需要将资源封装成服 务, 对资源服务进行管理, 以实现资源服务与真实资源的映射。在传统的面向服务 的体系 (S0A) 中, 域 (domain) 是分布式部署的一个重要的概念, 它描述一个完 整的运行时配置, 潜在地可以被部署到一系列内连的运行时节点上。 域非常灵活, 可以很小也可以很大, 一个很小的域, 可能是一个在测试环境内的 ide内; 中型域 可能是一个单一的服务器还是小型集群, 支持单一应用;大型的域可以描述一个部 门或公司的全部服务。传统的域描述的服务一般指各种应用业务服务,硬件设备资 源是运行应用业务服务的基础设施。如何通过域和组件来描述和管理虚机及相关的 基础设施资源, 以服务的方式供应虚机及相关的资源,是在面向服务的分布式环境 中供应虚机及相关资源要解决的一个首要问题。
在面向服务的分布式计算环境下, 会出现并发性请求访问虚机的问题, 如 何避免资源使用冲突, 保护核心资源, 保证可靠的资源供给, 就需要用到分布 式事务处理的方法。 事务 (Transaction) 是构建可靠性应用的基本组成元素, 是 一种用来确保应用程序中的所有参与方都能达到彼此已达成协定的输出结果的机 制。 当应用包括多个分布式的子系统, 或应用由多个独立的成分组成时, 事务可以 帮助应用在每个分离的不同的块中来清晰地处理失败。传统的事务处理技术主要应 用于数据库系统。然而随着计算机科学技术的发展,事务处理的概念已经被引入了 更为广泛的分布式网络计算环境, 出现了对分布式事务的处理。分布式事务指一个 事务可能涉及多个数据存储(数据存储可以基于块, 即一个 LUN或一组 LUN、 基于 文件, 即本地或远程文件系统或者基于关系型数据库)操作, 是一个分布式操作序 列,被操作的数据分布在网络的不同站点上, 以实现相应站点上数据存储的存取操 作。当一个应用有单独的功能需要在多个事务资源中访问或更新数据,它应该使用 分布式的事务, 应用从一个数据库移动数据到另一个数据库要求分布式的事务。 X/Open组织定义了分布式事务处理参考模型(DTP) 。 如何通过分布式事务处理体 系来控制虚机及相关资源的服务请求事务,保证可靠的虚机供给,是需要解决的又 一重要问题。
关于分布式事务处理, 提出了许多相关的方法。 如专利 " transaction management (US 2009/0282006 Al) " 发明了一种优化存储和文档管理的事务管理 系统, 该系统优化了存储事务和相关文档的预览,也提供了事务快速定位的搜索能 力。 专禾1 J "Distributed transaction processing control (US 2005/0228834 Al) " 提出了一种包括主服务器和从服务器的分布式事务处理系统,主服务器和从服务器 创建日志文件来记录事务的进程, 日志文件存储在共享磁盘中。专利 "Distributed transaction processing system (US 7, 661, 106 Bl) "公开了一种分布式事务处理 系统, 其中有一个处理自动化应用收到事务请求, 并生产操作请求, 并将操作请求 送到服务应用, 接受服务应用处理后的反应, 并基于该反应, 生成事务反应, 并返 回请求方。这些方法关注一般业务请求的事务处理,但未见将事务处理用于控制虚 拟和物理设备资源的,更未见将事务处理和服务域结合起来控制虚拟和物理设备资 源的调度, 路由, 及访问的方法。
因而, 为了解决上述问题, 就需要提供资源供应管理域和资源供应管理组 件来分别资源的供应, 其中资源供应管理组件用于管理虚机资源的供应, 资源 供应管理域用于管理资源组合的供应 (这里的资源组合为上述虚机及运行虚机 的相关服务器、 存储和网络资源) 。 进一步结合分布式事务处理方法来控制虚 机及相关资源的服务请求事务, 为请求供应虚机及相关资源, 控制服务请求从 开始到执行结束的全过程的状态。 发明内容
为了解决上述现有技术存在的问题, 本发明旨在提供一种基于事务的服务 控制系统及其控制方法, 通过使用分布式事务处理方法, 结合状态机机制, 以 及资源调度和事务路由策略, 来控制服务请求从开始到执行结束的全过程的状 态, 并及时响应给用户, 同时监控资源状态信息, 消除并发性处理的资源冲突, 使服务请求可以经过最优的路径到达负荷最小的节点, 从而有效地提升服务性 能, 保证服务质量。
本发明之一所述的一种基于事务的服务控制系统, 与外围的服务工厂连 接, 并接收该服务工厂发出的服务请求, 所述系统包括域管理器、 component (组件) 管理器、 资源控制器、 事务管理器和资源管理器; 若所述服务工厂请 求业务资源 (这里的业务资源指执行用户业务所需的基础设施资源, 包括计算 设备资源, 存储设备资源和网络设备资源) , 则将请求发送到所述域管理器, 若所述服务工厂请求虚机, 则将请求发送到所述 component管理器;
所述域管理器分别与所述资源控制器和事务管理器相连, 向所述资源控制 器申请资源, 并指示所述事务管理器开始创建全局事务;
所述 component管理器分别与所述资源控制器和事务管理器相连, 向所述 资源控制器申请资源, 并指示所述事务管理器开始创建全局事务; 所述资源控制器中存放资源的状态及资源使用情况信息, 根据所述域管理 器或 component管理器发出的资源申请请求, 返回可用的资源信息;
所述事务管理器根据所述域管理器或 component管理器发出的创建全局事 务的指示, 创建全局事务及其事务分支;
所述资源管理器的数量至少为一个, 它分别与所述事务管理器和资源控制 器相连, 接收所述事务管理器发送的事务分支, 管理所述事务分支的执行, 并 将更新的资源信息发送到所述资源控制器。
在上述的基于事务的服务控制系统中,
所述域管理器用于管理域的生命周期, 包括从域的创建到删除, 并将一个 domain (域) 请求分角军成多个 component请求;
所述 component管理器用于管理组件的生命周期, 包括从组件的创建到删 除, 并将一个 component请求分解成多个事务分支。
在上述的基于事务的服务控制系统中, 所述资源控制器包括调度器、 事务 路由器、 虚机状态机和资源引用表, 其中:
所述调度器与所述事务路由器相连, 并根据所述虚机状态机和资源引用表 中的信息确定事务的调度, 并将调度结果发送到所述事务路由器;
所述事务路由器接收所述调度器发送的信息, 并根据所述资源引用表中的 信息做出路由决策。
在上述的基于事务的服务控制系统中, 所述资源控制器还与外围的节点服 务器连接,所述节点服务器的数量至少为一个,且每个节点服务器包括虚机 API (应用编程接口) 和 Monitor (监控器) API, 其中:
所述虚机 API用于将虚机的最新信息传送至所述虚机状态机;
所述 Monitor API用于将资源引用和资源使用情况的最新信息传送至所述 资源引用表。
在上述的基于事务的服务控制系统中, 所述调度器包括互连的事务执行规 划模块和执行控制模块, 其中:
所述事务执行规划模块用于规划事务的调度, 并将规划的结果发送至所述 执行控制模块; 所述执行控制模块根据所述事务执行规划模块输出的规划结果, 确定执行 控制的策略。
在上述的基于事务的服务控制系统中, 所述事务执行规划模块包括调度控 制器以及与该调度控制器连接的负载计算器和花费评估模块, 且所述调度控制 器用于调用负载计算器和花费评估模块, 并决定调度策略。
在上述的基于事务的服务控制系统中, 所述事务路由器包括互连的路由管 理器和路由信息存储器, 其中:
所述路由管理器通过所述路由信息存储器中的逻辑路由信息和策略确定 事务的路由;
所述路由信息存储器根据所述资源引用表中的信息, 存储并向所述路由管 理器提供逻辑路由信息。
在上述的基于事务的服务控制系统中, 所述路由管理器包括路由控制器以 及分别与该路由控制器连接的连接协调器、 最优路径计算器、 流控制器和错误 控制模块, 其中:
所述路由控制器根据所述连接协调器、 最优路径计算器和流控制器的运 作, 确定事务的逻辑路由决策;
所述连接协调器用于管理网络的逻辑连接, 包括确定所述逻辑连接是否异 常;
所述最优路径计算器用于求解从源到目的地的花费最小的逻辑路径; 所述流控制器用于监控所述每条逻辑路径上的网络流量。
在上述的基于事务的服务控制系统中, 所述路由信息存储器存储的逻辑路 由信息包括逻辑路径拓扑表格、 逻辑流状态表格和事务状态表格, 其中: 所述逻辑路径拓扑表格用于存储网络逻辑路径拓扑信息;
所述逻辑流状态表格用于存储网络流量状态信息;
所述事务状态表格用于存储所述事务分支的状态信息。
在上述的基于事务的服务控制系统中, 所述事务管理器包括事务处理器和 计时器, 其中:
所述事务处理器用于处理全局事务、 与所述全局事务相关的多个异步事件 以及由所述全局事务分解出来的多个事务分支所产生的延迟工作; 所述计时器用于对所述事务分支所产生的延迟工作进行计时, 并设定一个 阀值, 以确定所述事务分支从发出到返回结果所用的时间是否超过阀值。
在上述的基于事务的服务控制系统中, 所述资源管理器运行在所述节点服 务器上, 且该资源管理器包括主机资源管理层以及分别与该主机资源管理层连 接的资源管理器服务器和资源控制器客户端, 其中:
所述资源管理器服务器接收所述事务管理器发送的请求, 并调用所述主机 资源管理层;
所述主机资源管理层接收所述资源管理器服务器发送的调用信号, 配置执 行所述事务分支所需的资源;
所述资源控制器客户端接收所述主机资源管理层返回的虚机状态更新信 息, 并将更新的虚机状态发送给所述资源控制器。
在上述的基于事务的服务控制系统中, 所述资源管理器服务器包括资源管 理器代理、 工作线程、 请求队列和事务分支队列, 其中: 所述资源管理器代理 将所述事务管理器发送的并发性请求通过所述请求队列传至所述工作线程进 行处理, 该工作线程将处理后的请求发送到所述事务分支队列中, 并处理所述 事务分支以及维持事务分支的生命周期。
在上述的基于事务的服务控制系统中, 所述主机资源管理层包括管理控制 中心以及分别与该管理控制中心连接的共享存储器、 Mac Store ( mac库) 、 虚 机实例和事件管理器, 其中:
所述管理控制中心用于提供获取主机资源的 API, 并注册或注销到所述资 源控制器客户端;
所述共享存储器为所述管理控制中心提供共享的存储资源访问接口; 所述 Mac Store用于管理 mac (媒体访问控制) 地址;
所述虚机实例提供 API以使用外围 libvirt来操作虚机,并提供 API以得到 该虚机的状态;
所述事件管理器提供事件功能并将它们注册到所述 libvirt。
在上述的基于事务的服务控制系统中, 所述管理控制中心包括虚机哈希 表, 且该虚机哈希表用于存储所述虚机的生命周期。
本发明之二所述的一种如上述的基于事务的服务控制系统的服务控制方 法, 该方法包括:
所述服务工厂向所述域管理器或 component管理器发送服务请求; 所述域管理器或 component管理器向所述资源控制器申请资源, 并指示所 述事务管理器开始创建全局事务和事务分支;
所述资源控制器判断是否有可用的资源, 以及执行请求的最优资源, 并返 回;
所述事务管理器将所述事务分支发送至所述资源管理器;
所述资源管理器管理所述事务分支的执行, 当所述事务分支执行完后, 将 执行结果返回给所述事务管理器, 并将资源信息更新到所述资源控制器。
在上述的基于事务的服务控制方法中,
所述月艮务请求为 domain请求或 component请求;
若所述服务请求是 domain请求, 则每个 domain请求作为一个 domain全 局事务, 每个 domain 全局事务可分解成多个 component 全局事务, 每个 component全局事务可分解成多个事务分支;
若所述服务请求是 component 请求, 则每个 component 请求作为一个 component全局事务, 每个 component全局事务可分解成多个事务分支。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
当所述 domain请求到达所述域管理器后, 该域管理器访问所述资源控制 器中的调度控制器;
所述调度控制器到所述资源引用表中査看资源的引用信息及资源的使用 情况, 并判断所述 domain请求能否执行。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
若所述资源引用表中显示的资源可用, 并满足所述 domain请求的执行, 则将可以执行的结果返回到所述域管理器, 且该域管理器锁住执行所需的资 源。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
若所述资源引用表中显示没有可用的资源, 则返回没有资源不能执行的结 果到所述域管理器, 所述 domain 请求进入等待状态, 且所述域管理器继续申 请资源直到超时退出。 在上述的基于事务的服务控制方法中, 所述方法进一步包括:
所述域管理器将所述 domain请求发送到所述事务管理器;
所述事务管理器生成 domain全局事务, 并将该 domain全局事务分解成多 个 component全局事务后发送到所述 component管理器。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
所述 component管理器将所述 component全局事务分解成多个事务分支, 并访问所述资源控制器中的调度控制器;
所述调度控制器到所述虚机状态机中査看虚机的状态, 并根据虚机的状 态, 判断所述事务分支是否在虚机上执行。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
若所述事务分支与虚机的状态不冲突, 则所述调度控制器进一步到所述资 源引用表中査看资源的引用信息, 并调用所述负载计算器和花费评估模块。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
若所述事务分支与虚机的状态冲突, 则该事务分支不能执行, 并将结果返 回到所述 component 管理器, 所述 component 请求进入等待状态, 且所述 component管理器继续申请资源直到超时退出。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
所述负载计算器根据所述每个节点服务器上的资源使用情况, 采用统一的 算法计算和评估每个节点服务器上的负载;
所述花费评估模块根据所述每个节点服务器上的负载以及节点服务器在 较短的时间内承受负载的能力, 计算所述每个节点服务器上的负载执行情况, 以及释放资源所需的时间;
所述调度控制器根据所述负载计算器和花费评估模块输出的结果, 确定将 所述事务分支调度到哪个节点服务器上执行。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
所述调度控制器将调度结果发送到所述事务路由器中的路由控制器; 所述路由控制器调用所述连接协调器, 该连接协调器检査从源到目的地之 间的逻辑路径。
在上述的基于事务的服务控制方法中, 所述方法进一步包括: 若所述连接协调器检査从源到目的地之间有可走的逻辑路径, 则所述路由 控制器进一步调用所述最优路径计算器和流控制器;
所述最优路径计算器根据所述逻辑路径拓扑表格中的信息, 计算每条逻辑 路径的花费;
所述流控制器根据所述逻辑流状态表格中的信息, 计算每条逻辑路径的网 络流量;
所述路由控制器根据所述最优路径计算器和流控制器的计算结果, 通过折 中策略为事务选择一条最优的逻辑路径。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
若所述连接协调器检査从源到目的地之间没有可走的逻辑路径, 则所述路 由控制器进一步调用所述错误控制模块, 对逻辑路径的错误情况进行恢复, 直 至异常得到恢复或超时。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
所述 component 管理器收到所述调度控制器返回的结果, 锁住执行所述 component请求所需的资源, 并将 component请求发送到所述事务管理器。
在上述的基于事务的服务控制方法中, 所述方法进一步包括:
当所述一个 component全局事务完成后, 所述事务管理器将结果返回到所 述 component管理器, 该 component管理器指示 component全局事务的提交或 回滚后, 释放锁住的资源, 并将结果发送到所述事务管理器;
当所述一个 domain全局事务完成后, 所述事务管理器将结果返回到所述 域管理器, 该域管理器指示 domain 全局事务的提交或回滚后, 释放锁住的资 源。
本发明之三所述的一种如上述基于事务的服务控制系统的包含多个异步 事件的全局事务处理方法, 所述服务控制系统中的事务管理器还包括 AP ( component管理器或 domain管理器) 代理、 全局事务队列、 全局事务等待队 列、 事件等待队列、 RPC (远程过程调用) 客户端和延时的工作队列, 所述方 法包括:
所述 AP代理将所述服务请求作为全局事务送至所述全局事务队列中, 以 备所述事务处理器处理, 同时生成开始事务事件, 并使该开始事务事件进入所 述事件等待队列中;
所述事务处理器开始处理全局事务, 并将开始处理的全局事务送至所述全 局事务等待队列中;
所述事务处理器将全局事务分解成多个事务分支后发送至所述 RPC 客户 端, 并为该事务分支生成延时的工作后送至所述延时的工作队列;
所述计时器对所述延时的工作计时, 等待该延时的工作所对应的事务分支 的返回结果。
在上述的包含多个异步事件的全局事务处理方法中, 所述方法进一步包 括:
若所述事务分支在所述资源管理器中执行后返回执行结果到所述事务管 理器的时间在所述计时器的阀值内, 则该事务分支将执行结果返回到所述事务 管理器, 与该事务分支相对应的延时的工作从所述延时的工作队列中删除, 并 通过所述 RPC客户端回调所述事务分支的执行结果,以及回调事件进入所述事 件等待队列中。
在上述的包含多个异步事件的全局事务处理方法中, 所述方法进一步包 括:
若所述事务分支在所述资源管理器中执行后返回执行结果到所述事务管 理器的时间超过所述计时器的阀值, 则该计时器返回事件 timeout (过时) 到所 述事件等待队列中, 且与该事务分支相对应的延时的工作从所述延时的工作队 列中删除。
在上述的包含多个异步事件的全局事务处理方法中,
所述事件等待队列中存放的事件类型包括全局事务相关的事件和事务分 支相关的事件, 且所述不同的事件具有不同的优先级。
在上述的包含多个异步事件的全局事务处理方法中, 所述方法进一步包 括:
所述事务处理器对所述全局事务队列、 事件等待队列和延时的工作队列中 的每个组成元素上锁;
所述事务处理器维持所述全局事务的生命状态周期。
在上述的包含多个异步事件的全局事务处理方法中, 所述全局事务的生命状态周期中包括七种状态, 分别是 committed (提交 完) 、 rollbacked (回滚完) 、 FetalError (致命错误) 、 committing (提交中) 、 rollbacking (回滚中) 、 preparing (准备中) 和 prepared (准备完) ;
所述事务处理器以所述全局事务的状态为依据, 控制事件的执行。
本发明之四所述的一种如上述的基于事务的服务控制系统的处理虚机事 务的主机资源管理方法, 所述方法包括:
将所述事务分支队列中创建虚机的请求的事务分支发送到所述管理控制 中心;
所述管理控制中心将査询虚机模板的请求发送到所述共享存储器, 且该共 享存储器返回虚机模板的 URL (统一资源定位符) 到所述管理控制中心;
所述管理控制中心根据返回的虚机模板的 URL, 到所述 Mac Store中获取 虚机模板的 mac地址信息;
所述管理控制中心发送创建虚机的指令到所述 libvirt, 且该 libvirt返回创 建好的虚机;
所述管理控制中心将虚机镜像的内容发送到所述共享存储器, 以确认是否 创建完成虚机镜像;
若所述虚机镜像创建完成, 则所述管理控制中心返回完成指令到所述资源 管理器。
由于采用了上述的技术解决方案, 当用户的请求到达主服务器中的服务工 厂, 由服务工厂创建服务, 并将服务请求发送到本发明的服务控制器后, 本发 明对服务请求进行管理和控制, 包括保证服务的可靠性, 以及对服务进行调度 和路由, 从而使得服务能快速有效地在节点服务器上的虚机上执行。 本发明可 以控制和管理业务和资源(虚机)两个层次的服务请求; 通过分布式事务处理, 结合状态机机制, 以及事务调度和事务路由策略, 控制服务请求从开始到执行 结束的全过程的状态, 并及时响应给用户, 同时监控资源状态信息, 消除并发 性处理的资源冲突, 使服务请求可以经过最优的路径到达负荷最小的节点, 从 而有效地保证了服务质量。 附图概述 图 la是本发明之一的一种基于事务的服务控制系统的结构框图; 图 lb是本发明之一的一种基于事务的服务控制系统的逻辑体系框图; 图 2是本发明之一的资源控制器的组成框图;
图 3是本发明之一的资源控制器中调度器的组成框图;
图 4是本发明之一的资源控制器中事务路由器的组成框图;
图 5a是本发明之一的路由决策环境图;
图 5b是本发明之一的路由决策流程图;
图 6是本发明之一的事务管理器的组成框图;
图 7是本发明之一的资源管理器的组成框图;
图 8是本发明之一的资源管理器中主机资源管理层的组成框图;
图 9是本发明之二的一种基于事务的服务控制方法的流程图;
图 10是本发明之二和本发明之三的 domain全局事务状态转移过程图; 图 11是本发明之二和本发明之三的 component全局事务状态转移过程图; 图 12是本发明之二和本发明之三的事务分支状态转移过程图;
图 13是本发明之二和本发明之三的事务执行流程图。 具体实施方式
下面结合附图, 对本发明的具体实施例进行详细说明。
请参阅图 la, 为本发明之一的总图, 反映了本发明之一的各组成模块间的 逻辑关系, 本发明的一个或多个实施例可以在此实施。
本发明之一的一种基于事务的服务控制系统 10,与外围的服务工厂 1连接, 并接收该服务工厂 1发出的服务请求。
服务控制系统 10包括域管理器 2 ( domain manager ) 、 component管理器 4、 资源控制器 3、事务管理器 5和资源管理器 6, 若服务工厂 1请求执行业务, 则将 domain 请求发送到域管理器 2, 若服务工厂 1 请求操作虚机, 则将 component请求发送到 component管理器 4。
域管理器 2分别与资源控制器 3和事务管理器 5相连, 向资源控制器 3申 请资源, 并指示事务管理器 5开始创建全局事务; 域管理器 2用于管理域的生 命周期, 包括从域的创建到删除, 并将一个 domain请求分解成多个 component 请求;
component管理器 4分别与资源控制器 3和事务管理器 5相连, 向资源控 制器 3 申请资源, 并指示事务管理器 5开始创建全局事务; component管理器 4 用于管理组件的生命周期, 包括从组件的创建到删除, 并将一个 component 请求分解成多个事务分支;
资源控制器 3中存放资源的状态及资源使用情况信息, 根据域管理器 2或 component管理器 4发出的资源申请请求, 返回可用的资源信息;
事务管理器 5根据域管理器 2或 component管理器 4输出的创建全局事务 的指示, 创建全局事务及其事务分支;
资源管理器 6的数量至少为一个, 它分别与事务管理器 5和资源控制器 3 相连, 接收事务管理器 5发送的事务分支, 管理事务分支的执行, 并将更新的 资源信息发送到资源控制器 3。
在本发明中, 服务工厂 1是运行在服务器上的一个管理程序, 服务工厂 1 作为客户端, 向服务控制系统 10 请求资源。 服务工厂 11 与域管理器 2 和 component管理器 4相连。
若用户请求的是业务资源, 则请求到达域管理器 2, 在本发明的一个较佳 实施例中,用户请求 deploy (部署)一个 lamp ( lamp是 l inux, apache, mysql, PHP 的缩写, 而这四个都是计算机专有名词) , 请求达到域管理器 2。 域管理 器 2管理域的创建和删除, 并将请求划分为多个 operati on (操作) , 以及定 义这些 operat ion 间的关系; 审核和锁住 RC (资源控制器) 的资源, 发送 operati on 到事务管理器 5, 完成任务后, 对资源进行解锁。 域 (domain) 是 划分的资源的集合, 该资源集合包括计算设备资源 (服务器和虚机) , 存储设 备资源和网络设备资源。 域 (domain) 向外提供一个 web (网络) , 其实是提 供一个 service (服务) , 比如为 lamp业务供应网络资源服务。 domain有共 享 VM的机制, 一个 VM可以为多个域使用。 domain有多租户的特征: 一个域可 以给多个用户同时使用, 用户的信息是分离的。
若用户请求操作虚机, 即资源, 则请求到达 component管理器 4, 在本发 明的又一较佳实施例中, 若用户发出一个创建虚机的请求, 则请求到达 component管理器 4。 component管理器 4管理组件的创建和删除, 其它方面的 功能与域管理器 2相同, 只是处理对象是组件。 component是一种只有一个 VM 的特殊的 domain。 component在创建时, 在 VM中査是否有符合复用的 VM, 如 果有, domain复用 VM, component的 ID记录在 VM类中。 一个 VM可能对应多 个 componen
域管理器 2与资源控制器 3和事务管理器 5相连。 资源控制器 13控制事 务对资源的访问, 为域管理器 2和 component管理器 4提供申请和释放资源的 接口, 以及事务的调度和路由, 以保证事务的并发性处理, 实现轻量级的资源 保护。 事务管理器 5负责事务的管理, 使用 AP发送过来的 operati ons创建 GT (全局事务) , 并维持 GT的生命周期, 以及创建 BT (事务分支) , 按照 BT的 优先级把 BT发送给资源管理器 6,并向域管理器 2和 component管理器 4提供 tx接口。 资源管理器 6维持 BT的生命周期, 并向事务管理器 5提供 API。 域 管理器 2、 资源控制器 3、 component管理器 4、 事务管理器 5作为服务控制系 统 10的核心成分, 运行在一个主服务器上。 资源管理器 6运行在一个节点(从 属) 服务器上。 一般而言, 在一个 group (组群) 中, 有一个主服务器和多个 节点 (从属) 服务器。 资源指各种基础设施资源, 包括虚机、 主机、 存储和网 络, 服务实例运行在这些资源上。
请参阅图 lb, 图中示出了本发明之一的环境图, 反映了服务请求从客户端 发出到在具体的节点服务器上执行的整个流程, 本发明的一个或多个实施例可 以在此实施。
客户端 11指各种用户终端设备, 既可以是传统 PC、 个人笔记本, 也可以 是上网本、 手机等终端设备, 还可以是各种胖瘦终端设备。 这些设备可以配置 生成请求, 并通过网络 12, 将请求发送到主服务器 13。 网络 12可以是局域网、 广域网, 以及不同网络的集合, 也可以是互联网或另一个由计算设备相互连接 组成的系统。 主服务器 13 负责生成服务和控制服务, 由服务工厂 1 和服务控 制系统 10组成。 服务工厂 1 是生产服务的单位, 接收用户的请求, 通过组件 和契约创建服务, 并以服务为单位响应用户的请求; 服务具有松散耦合和可重 用等特征, 可实现基础设施资源的最大化复用。 服务工厂 1将生成好的服务以 及相关策略发送到服务控制系统 10, 服务控制系统 10通过分布式事务处理方 法, 结合状态机机制, 以及事务调度和事务路由策略, 控制服务请求从开始到 执行结束的全过程的状态, 并及时响应给用户, 同时监控资源状态信息, 消除 并发性处理的资源冲突, 使服务请求可以经过最优的路径到达负荷最小的节 点。 服务控制系统 10 也可以控制和管理业务和资源 (虚机) 两个层次的服务 请求。 在本发明的一较佳实施例中, 主服务器 13是一个性能高的服务器硬件, 服务工厂 1和服务控制系统 10是运行在主服务器 13上的软件系统。 节点服务 器 14 是执行服务的计算节点。 在本发明的一较佳实施例中, 每个节点服务器 14由硬件 141、 VMM142 ,虚机 143组成, 虚机 143是执行服务的基本计算单元。 当然,本发明也不限定在虚机为最基本的计算单元,根据用户的需求,虚机 143 和主机都可以作为执行服务的最基本的计算单元。
请参阅图 2, 图中示出了本发明之一的资源控制器 3的组成框架。
资源控制器 3控制事务对资源的访问, 为域管理器 2和 component管理器 4 提供申请和释放资源的接口; 以及事务的调度和路由, 以保证事务的并发性 处理, 实现轻量级的资源保护。
资源控制器 3包括调度器 331、 事务路由器 332和资源中心 333, 其中: 资源中心 333是资源控制器 3的资源存储中心, 可以以数据库、 表格等各 种存储方式存储资源信息; 资源中心 333主要由虚机状态机 3331和资源引用 表 3332两部分组成;
调度器 331与事务路由器 332相连, 并根据虚机状态机 3331和资源引用 表 3332中的信息确定事务的调度, 并将调度结果发送到事务路由器 332 ;
事务路由器 332接收调度器 331发送的信息, 并根据资源引用表 3332 中 的信息做出路由决策。
资源控制器 3还与外围的节点服务器 14连接, 节点服务器 14的数量至少 为一个, 且每个节点服务器 14包括虚机 API 341和 Moni tor API 342, 其中: 虚机 API 341用于将虚机的最新信息传送至虚机状态机 3331 ;
Moni tor API 342用于将资源引用和资源使用情况的最新信息传送至资源 引用表 3332。
在本发明中, 虚机状态机 3331 中存储的是虚机状态信息, 维持虚机的生 命周期, 并采用分布式哈希表的形式存储, 其作用是根据虚机的生命周期状态 控制对虚机的访问, 避免异常的出现。 资源引用表 3332 中存储的是各种资源 的引用路径, 以及资源的使用情况, 这里的资源包括 cpu, memory , storage , I/O 等; 引用路径是指如何从最上层引用到最下面的某个具体的物理资源, 比 如从数据中心到组, 再从组到组内的某一个节点 host , 再从 host到 host中的 cpu或 memory , 资源引用通过树形结构实现; 当引用到某个节点 host上的 cpu 时, cpu 的使用情况则是这里所说的资源的使用情况, 当然还可以是各种具体 的物理资源的使用情况。 每次主服务器重启时, 或节点服务器 14 上的虚机状 态发生改变时, 则节点服务器 14 的虚机 API 341 都会把最新的虚机状态信息 发送到资源中心 333中的虚机状态机 3331 中。 在本发明中, 资源引用表 3332 中的信息由 host上的 moni tor提供, 并通过 Moni tor API 342传送到资源引 用表 3332。 moni tor主要是实现资源监控, 包括硬件资源及虚拟机资源, 发现 资源使用异常并报告, 为资源分配, 有效利用资源提供依据。 moni tor 可作为 Linux 内核的一个可配置的模块及一个应用层接口, 也可供其他程序来注册一 个监控。 调度器 331负责对请求的调度, 即根据资源中心 333中的虚机状态信 息和资源引用信息来确定请求是否可以执行, 以及每个 operation在哪个节点 服务器 14上执行。事务路由器 332负责对事务(这里的事务指每个 operati on) 的路由, 根据资源中心 333中的资源引用信息确定事务的路由。
在本发明的一较佳实施例中, 调度器 331接收域管理器 2或 component管 理器 4的请求, 到资源中心 333中査看虚机状态, 以及物理资源的使用情况。 调度器 331根据这些资源信息判断请求是否可以执行, 如果不能执行, 则返回 "不能执行" 到域管理器 2或 component管理器 4 ; 如果可以执行, 则调度器 331进一步确定该请求中的每个 operati on在什么地方执行, 并调用事务路由 器 332确定每个 operation的路由。 调度器 331将这些每个 operat ion执行的 目的节点服务器 14, 以及路由信息一起返回到域管理器 2或 component管理器 4, 域管理器 2或 component管理器 4锁住执行所需的资源。 同时, 节点服务 器 14上的虚机 API 341和 Moni tor API 342会把虚机状态更新信息和资源状 态更新信息上报到资源中心 333。
请参阅图 3, 图中示出了本发明之一的资源控制器中的调度器 331 的组成 框架。
调度器 331负责对请求的调度, 即根据资源中心 333中的虚机状态信息和 资源引用信息来确定请求是否可以执行, 以及每个 operation在哪个节点上执 行 (一个请求包括多个 operation) , 目的主要是为了实现负载均衡。
调度器 331主要包括互连的事务执行规划模块 41和执行控制模块 42两部 分, 其中:
事务执行规划模块 41 用于规划事务的调度, 并将规划的结果发送至执行 控制模块 42 ; 事务执行规划模块 41包括调度控制器 411 以及与该调度控制器 411连接的负载计算器 412和花费评估模块 413, 且调度控制器 411用于调用 负载计算器 412和花费评估模块 413, 并决定调度策略;
执行控制模块 42根据事务执行规划模块 41输出的规划结果, 确定执行控 制的策略。
在本发明中, 一旦收到请求, 事务执行规划模块 41 就将请求送到调度控 制器 411 中, 调度控制器 411首先到虚机状态机 3331 中査看虚机的状态, 根 据虚机的状态, 判断 operat ion是否能在虚机上执行 (亦即能否对虚机进行操 作) , 若 operati on与虚机的状态不冲突, 则调度控制器进一步到资源引用表 3332中査看资源的引用信息, 并调用负载计算器 412, 负载计算器 412根据每 个节点上的资源状态 (资源使用情况) 采用统一的算法计算和评估每个节点上 的负载, 并通过花费评估模块 413计算每个节点上的负载的执行情况, 以及将 在多长的时间内释放资源, 综合考虑该节点可以在以较短的时间内承受负载的 能力。 存在这种情况, 某个节点服务器上的负载很多, 占用资源也很多, 但是 这些负载都处于执行后期, 即将执行完, 因此可以在很短的时间内释放大量的 资源, 这时就需要考虑后续执行负载的能力。 调度控制器 411根据负载计算器 412和花费评估模块 413来综合确定计算哪些节点上有执行 operati on所需的 资源, 其中哪个节点是执行 operat ion的最优的节点。 若每个 operat ion都不 与虚机状态机 3331 中的虚机状态冲突, 且有执行 operation 的硬件资源, 则 认为有执行整个请求所需的资源。 事务执行规划模块 41 将规划结果传到执行 控制模块 42中。 调度控制器 411将结果返回到 component管理器或域管理器, 结果包括是否有执行请求所需的资源, 每个 operation 在哪个节点上执行, component管理器或域管理器并锁住执行请求所需的资源。
请参阅图 4, 图中示出了本发明之一的资源控制器中的事务路由器 332的 组成框架。
事务路由器 332包括互连的路由管理器 511和路由信息存储器 512,其中: 路由管理器 51 1是事务路由器 332的路由处理中心, 它通过路由信息存储 器 512中的逻辑路由信息和策略确定事务的路由;
路由信息存储器 512是事务路由器 332的信息存储中心, 它根据资源引用 表 3332中的信息, 存储并向路由管理器 511提供逻辑路由信息。
具体来说, 路由管理器 511包括路由控制器 5112 以及分别与该路由控制 器 5112连接的连接协调器 511 1、 最优路径计算器 5113、 流控制器 51 15和错 误控制模块 5114, 其中:
路由控制器 5112是路由管理器 511的核心, 它通过连接协调器 511 1、 最 优路径计算器 5113、 流控制器 5115的协同工作来确定事务的逻辑路由决策; 连接协调器 51 11 用于管理网络的逻辑连接, 包括确定所述逻辑连接是否 异常, 具体来说, 即确定哪个连接是通的, 确定哪条路能走, 哪条不能走, 怎 样走, 以及根据用户的不同的权限, 来确定事务的逻辑路径;
最优路径计算器 5113 是一个计算功能模块, 它用于通过一定的算法求解 从源到目的地的花费最小的逻辑路径, 所谓花费最小是指从源到目的地, 即路 由的目标节点服务器 14的最短路径;
流控制器 51 15用于监控每条逻辑路径上的网络流量。
在本发明中, 流控制器 51 15与最优路径计算器 5113的结合可以得出一个 最优的折中路径, 连接协调器 5111 再根据用户的权限 (根据用户请求服务时 定义的策略, 不同的用户有不同的权限) 以及网络的逻辑连接情况, 最终确定 事务的逻辑路由。 错误控制模块 5114 监控网络上的出错情况, 并对链路错误 情况进行恢复。
路由信息存储器 512存储的逻辑路由信息包括逻辑路径拓扑表格 5121、逻 辑流状态表格 5122和事务状态表格 5123, 路由信息存储器 512与资源引用表 3332相连, 并根据资源引用表 3332提供的信息确定逻辑路径拓扑表格 5121, 逻辑流状态表格 5122以及事务状态表格 5123, 其中: 逻辑路径拓扑表格 5121 存储的是网络逻辑路径拓扑信息; 逻辑流状态表格 5122 存储的是网络流量状 态信息; 事务状态表格 5123 存储的是事务分支的状态信息。 在本发明中, 事 务路由器 332工作在网络的传输层, 在传输层空间执行逻辑路由决策。
请参阅图 5a, 图中示出了本发明之一的路由决策流程。 路由决策的制定首 先依赖于逻辑环境, 不同组之间的逻辑连接情况, 在本发明中, 主要考虑与路 由相关的组件和策略, 具体步骤如下:
步骤 611, 调度器 331将事务调度决定发送到事务路由器 332 ;
步骤 612, 根据事务的权限和逻辑路径拓扑信息, 连接协调器 5111检査从 源到目的地之间的逻辑路径;
步骤 613, 根据步骤 612的检査结果, 判断是否有可通的逻辑路径, 若有 可走的逻辑路径, 转入到步骤 617, 否则转入到步骤 614 ;
步骤 614, 路由控制器 51 12调用错误控制模块 51 14对路径错误情况进行 恢复;
步骤 615, 判断路径异常是否得到了解决, 若得到了解决, 则转入到步骤 617, 否则转入到步骤 616 ;
步骤 616, 返回错误信息, 网络不通, 事务无法执行;
步骤 617, 路由控制器 51 12调用最优路径计算器 5113, 最优路径计算器
5113根据逻辑路径拓扑表格 5121的信息, 计算每条逻辑路径的花费;
步骤 618, 路由控制器 51 12调用流控制器 51 15, 流控制器 51 15根据逻辑 流状态表格 5122的信息, 计算每条逻辑路径的网络流量;
步骤 619,路由控制器 5112根据最优路径计算器 5113和流控制器 5115的 计算结果, 通过折中策略为事务选择一条最优的逻辑路径;
步骤 620, 路由控制器 51 12将路由决策结果返回给调度器 331。
请参阅图 5b, 图中示出了是本发明之一的路由决策环境。 每个主服务器 13和它管理的若干个节点服务器 14共同组成了一个组 62,每个节点服务器 14 都包括硬件 141、 V匪 142和虚机 143。 当有多个主服务器 13的时候, 就有多个 组 62, 这些组 62之间构成了逻辑连接。 逻辑连接有多种情况, 本发明采用任 意两个组 62之间相互连接的分布式连接方式。 多个组 62连接在一起就构成了 一个服务联邦, 服务 (事务) 的路由即在联邦环境中的逻辑路由。 服务请求到 达某个组 62的主服务器 13, 通过调度器确定将请求调度到哪个节点服务器 14 上执行, 如果这个节点服务器 14在组 62内, 则通过事务路由器将请求路由到 组 62内的节点服务器 14上; 若这个节点服务器 14在组 62外, 则通过事务路 由器将请求路由到组 62外的节点服务器 14上。
请参阅图 6, 图中示出了本发明之一的事务管理器 5的事务管理框架。 事务管理器 5包括事务处理器 713、 计时器 717、 AP代理 (本实施例中, AP代理以 component管理器代理 711 为例) 、 全局事务队列 7121、 全局事务 等待队列 7122、 事件等待队列 714、 RPC客户端 715和延时的工作队列 716, 其中:
事务处理器 713是事务管理器 5的处理中心, 它用于处理全局事务、 与全 局事务相关的多个异步事件以及由全局事务分解出来的多个事务分支所产生 的延迟工作; 具体来说, 即负责全局事务等待队列 7122、 事件等待队列 714和 延时的工作队列 716三个部分的处理工作, 主要包括创建全局事务、 维持全局 事务的生命周期、 将全局事务解析出来、 创建多个事务分支和将事务分支发送 给 RPC客户端 715 ;
计时器 717用于对事务分支所产生的延迟工作进行计时,并设定一个阀值, 以确定事务分支从发出到返回结果所用的时间是否超过阀值。
下面结合图 6, 对本发明之三的包含多个异步事件的全局事务处理方法的 具体实施例进行说明。 具体步骤如下:
component 管理器代理 711 将服务请求作为全局事务送至全局事务队列 7121中,以备事务处理器 713处理,同时生成开始事务事件(即事件 tx— begin) , 并使该开始事务事件进入事件等待队列 714中;
事务处理器 713开始处理全局事务, 并将开始处理的全局事务送至全局事 务等待队列 7122中;
事务处理器 713在创建全局事务后, 为全局事务创建多个事务分支, 并将 事务分支通过 RPC客户端 715发送到资源管理器 16处理, 同时为该事务分支 生成一个延时的工作 (de layed work ) , 并送至延时的工作队列 716;
计时器 717对延时的工作计时, 等待该延时的工作所对应的事务分支的返 回结果; 具体来说: 计时器 717从延时的工作生成即开始计时, 并设置一个最 大时间阀值, 计时器 717和资源管理器 6同时工作, 若事务分支在资源管理器 6中执行后返回执行结果到事务管理器 5的时间在计时器 717的阀值内, 则该 事务分支将执行结果返回到事务管理器 5, 且事务分支的执行结果可以是 branch preparec 分支准备) ^ branch fai led (分支失败 )或 branch rol lbacked (分支回滚) 等, 与该事务分支相对应的延时的工作从延时的工作队列 716中 删除, 并通过 RPC客户端 715回调 (cal lback ) 事务分支的执行结果, 以及回 调事件进入事件等待队列 714中。 若事务分支在资源管理器 6中执行后返回执 行结果到事务管理器 5的时间超过计时器 717的阀值, 即计时器 717所记时的 某个事务分支相对应的延时的工作在阀值时间内未返回事务分支执行结果, 则 该计时器 717返回事件 timeout到事件等待队列 714中, 且与该事务分支相对 应的延时的工作从延时的工作队列 716中删除。
事务处理器 713根据事务分支返回的结果通知资源管理器 6准备事务分支 的提交或回滚。 由于一个全局事务中有很多异步事件, 对全局事务加锁处理很 麻烦, 所以采用事件的处理方式, 即不管是什么样的操作, 全局事务还是事务 分支的, 都可以认为是一个事件, 从而对处理进行了统一。 在这种方式下, 事 务处理器 713需要对全局事务队列 7121、事件等待队列 714和延时的工作队列 716 中的每个组成元素, 即全局事务、 事件以及延时的工作上锁。 另外, 为了 避免处理众多异步事件可能出现的异常和错误, 事务处理器 713以全局事务的 状态为依据, 控制事件的执行 (作用与虚机状态机的控制机制相同) , 这里的 事务状态包括全局事务状态和事务分支状态, 其中, 事务处理器 713维持的全 局事务的生命状态周期中包括七种状态, 分别是 commi ttecU rol lbacked , FetalError^ commi tt ing ^ rol lbacking^ preparing禾口 prepared。
在本发明中, 事件等待队列 714中存放的事件类型包括全局事务相关的事 件和事务分支相关的事件, 全局事务相关的事件包括 tx— begin、 tx_commi t, tx— rol lback禾口 wai t for event (均为函数),事务分支相关的事件包括 branch prepared^ branch fai led^ branch rol lbacked禾口 t imeout等, 且不同的事件 具有不同的优先级,如 rol lback的优先级比 commi t的优先级高;对于线程多、 异步事件多的情况, 可以归纳为几类, 一起处理。
请参阅图 7, 图中示出了本发明之一的资源管理器 6的组成框架。
资源管理器 6运行在节点服务器上, 用于接收来自事务管理器 5的请求, 管理事务分支的生命周期; 它包括主机资源管理层 82 以及分别与该主机资源 管理层 82连接的资源管理器服务器 83和资源控制器客户端 81, 其中: 资源管理器服务器 83接收事务管理器 5发送的请求, 并调用主机资源管 理层 82 ;
主机资源管理层 82接收资源管理器服务器 83发送的调用信号, 配置执行 事务分支所需的资源;
资源控制器客户端 81接收主机资源管理层 82返回的虚机状态更新信息, 并将更新的虚机状态发送给资源控制器。
具体来说,资源管理器服务器 83包括资源管理器代理 834、工作线程 833、 请求队列 831和事务分支队列 832, 其中: 资源管理器代理 834将事务管理器 5发送的并发性请求通过请求队列 831传至工作线程 833进行处理; 工作线程 833通过 ax— begin (为函数) 开始事务分支, 将处理后的请求发送到事务分支 队列 832中, 并处理事务分支以及维持事务分支的生命周期; 这里的请求包括 Ax— begin、 Ax— commi t禾口 Ax— rol lback (均为函数) , 通过工作线程 833来处 理请求。
开始事务分支后,资源管理器服务器 83将请求发送到主机资源管理层 82, 主机资源管理层 82配置执行事务分支所需的资源并调用 l ibvirt执行事务分 支, l ibvirt将执行结果返回主机资源管理层 82, 主机资源管理层 82将执行 结果返回到资源管理器服务器 83,并将虚机状态更新信息发送到资源控制器客 户端 81 ; 资源管理器服务器 83更新事务分支的状态, 并将结果返回到事务管 理器 5。
请参阅图 8, 图中示出了本发明之一的资源管理器中的主机资源管理层 82 的组成框架。
主机资源管理层 82 是主机上的一个资源管理模块, 与资源控制器客户端 81和资源管理器服务器 83相连, 同时提供调用 l ibvirt 96的接口。 主机资源 管理层 82包括管理控制中心 91 以及分别与该管理控制中心 91连接的共享存 储器 92、 Mac Store 93、 虚机实例 94和事件管理器 95, 其中:
管理控制中心 91是主机资源管理层 82的核心, 它用于提供获取主机资源 的 API , 并注册或注销到资源控制器客户端 81 ; 管理控制中心 91 包括虚机哈 希表 911, 且该虚机哈希表 911用于管理虚机的生命周期。 共享存储器 92是指可共享的存储, 可以是存储域网络 (SAN ) 、 网络附加 存储 (NAS ) , 也可以是独立磁盘冗余阵列 (Raid ) , 它用于为管理控制中心 91提供共享的存储资源访问接口;
Mac Store 93用于管理 mac地址 (里面存储一个 group或更大的范围内的 多个 mac地址) , 并为管理控制中心 91执行操作提供支持;
虚机实例 94提供 API以使用外围 l ibvirt 96来操作虚机, 并提供 API以 得到该虚机的状态;
事件管理器 95提供事件功能并将它们注册到 l ibvirt96。
下面结合图 7、 图 8, 对本发明之四的处理虚机事务的主机资源管理方法 的具体实施例进行说明。 具体步骤如下:
将事务分支队列 832 中操作虚机的请求 (包括创建虚机、 start 虚机、 shutdown虚机等, 本实施例中以创建虚机为例) 的事务分支发送到管理控制中 心 91;
管理控制中心 91将査询虚机模板的请求发送到共享存储器 92, 且该共享 存储器 92返回虚机模板的 URL到管理控制中心 91 ;
管理控制中心 91根据返回的虚机模板的 URL信息, 到 Mac Store 93中获 取虚机模板的 mac地址信息;
管理控制中心 91发送创建虚机的指令到 l ibvirt 96, 且该 l ibvirt 96返 回创建好的虚机;
管理控制中心 91将虚机镜像的内容发送到共享存储器 92, 以确认是否创 建完成虚机镜像; 若虚机镜像创建完成, 则管理控制中心 91返回完成指令(即 0K) 到资源管理器。
请参阅图 9, 并结合图 la至图 8, 对本发明之二一种基于上述事务的服务 控制系统的服务控制方法的具体实施例进行说明。
本发明之二的基于事务的服务控制方法包括:
服务工厂 1向域管理器 2或 component管理器 4发送服务请求; 服务请求 可以为 domain请求或为 component请求, 若服务请求的是业务, 则 domain请 求到达域管理器 2, 若服务请求的是虚机, 则 component请求到达 component 管理器 4 ; 域管理器 2或 component管理器 4向资源控制器 3申请资源, 并指示事务 管理器 5 开始创建全局事务和事务分支; 具体来说, 若服务请求是 domain请 求, 则每个 domain请求作为一个 domain全局事务, 每个 domain全局事务可 分解成多个 component全局事务, 每个 component全局事务可分解成多个事务 分支; 若服务请求是 component 请求, 则每个 component 请求作为一个 component全局事务, 每个 component全局事务可分解成多个事务分支;
资源控制器 3判断是否有可用的资源, 以及执行请求的最优资源,并返回; 事务管理器 5将事务分支发送至资源管理器 6 ;
资源管理器 6管理事务分支的执行, 当事务分支执行完后, 将执行结果返 回给事务管理器 5, 并将资源信息更新到所述资源控制器。
图 9示出了本发明之二的总流程图, 本发明之二的具体工作流程如下: 步骤 201, 服务工厂 1向服务控制系统 10发出服务请求;
步骤 202, 判断服务请求的类型; 这里的服务请求分为两个不同层次的请 求, 一个是业务层次的请求, 一个是资源层次的请求; 若请求的是域 (即业务 请求) , 则请求转入到步骤 203, 否则请求转入到步骤 209 ;
步骤 203, 服务请求, 即 domain请求到达域管理器 2 ;
步骤 204, 域管理器 2将 domain请求分解成多个 operat ions (这里是将 一个 domain请求分解成多个 component请求) , 并到资源控制器 3 中申请资 源, 即域管理器 2访问资源控制器 3中的调度控制器 411 ;
步骤 205, 通过资源控制器 3中的信息, 域管理器 2判断是否有执行服务 请求所需的资源, 即调度控制器 411 到资源引用表 3332 中査看资源的引用信 息及资源的使用情况, 并判断 domain 请求能否执行; 若有可用的资源, 则转 入到步骤 206, 否则转入到步骤 207 ;
步骤 206, 域管理器 2锁住资源, 并将 operat ions传送到事务管理器 5 ; 具体来说, 即若资源引用表 3332中显示的资源可用, 并满足 domain请求的执 行, 则将可以执行的结果返回到域管理器 2, 且该域管理器 2锁住执行所需的 资源, 并将 domain请求发送到事务管理器 5 ;
步骤 207, 等待直到有可用的资源, 当等待的时间超过了设定的时间界限, 则结束事务的执行, 返回 "无可用资源, 事务无法执行" 的结果; 具体来说, 即若资源引用表 3332 中显示没有可用的资源, 则返回没有资源不能执行的结 果到域管理器 2, domain请求进入等待状态, 且域管理器 2继续申请资源直到 超时退出;
步骤 208, 事务管理器 5根据 operat ions创建全局事务, 并为每个全局事 务创建多个事务分支, 将事务分支传送到 component管理器 4 (这里的全局事 务是 domain全局事务, 事务分支是 domain事务分支, 亦即 component全局事 务) ;
步骤 209, 请求到达 component 管理器 4, 这里的请求既可以是直接来自 于服务工厂 1的 component请求, 也可以是来自于事务管理器 5的事务分支请 求, S卩 component全局事务请求 (也可视为 component请求) ;
步骤 210, component管理器 4将 component请求分解成多个 operat ions (这里是指将一个 component请求分解成多个子操作) , 并到资源控制器 3中 申请资源, 即 component管理器 4访问资源控制器 3中的调度控制器 411 ; 步骤 211, 通过资源控制器 3中的信息, component管理器 4判断是否有 执行请求所需的资源, 即调度控制器 41 1 到虚机状态机 3331 中査看虚机的状 态, 并根据虚机的状态, 判断事务分支是否在虚机上执行; 若有可用的资源, 则转入到步骤 212, 否则转入到步骤 216 ;
步骤 212, component管理器 4锁住资源, 并将 operati ons传送到事务管 理器 5 ; 具体来说:
若事务分支与虚机的状态不冲突, 则调度控制器 411进一步到资源引用表
3332中査看资源的引用信息, 并调用负载计算器 412和花费评估模块 413 ; 负载计算器 412根据每个节点服务器 14上的资源使用情况, 采用统一的 算法计算和评估每个节点服务器 14上的负载;
花费评估模块 413根据每个节点服务器 14上的负载以及节点服务器 14在 较短的时间内承受负载的能力, 计算每个节点服务器 14 上的负载执行情况, 以及释放资源所需的时间;
调度控制器 41 1根据负载计算器 412和花费评估模块 413输出的结果, 确 定将事务分支调度到哪个节点服务器 14上执行;
调度控制器 41 1将调度结果发送到事务路由器 332中的路由控制器 5112 ; 路由控制器 5112调用连接协调器 51 11,该连接协调器 511 1检査从源到目 的地之间的逻辑路径;
若连接协调器 511 1 检査从源到目的地之间有可走的逻辑路径, 则路由控 制器 5112进一步调用最优路径计算器 51 13和流控制器 5115 ;
最优路径计算器 51 13根据逻辑路径拓扑表格 5121中的信息, 计算每条逻 辑路径的花费;
流控制器 51 15根据逻辑流状态表格 5122中的信息, 计算每条逻辑路径的 网络流量;
路由控制器 5112根据最优路径计算器 51 13和流控制器 5115的计算结果, 通过折中策略为事务选择一条最优的逻辑路径, 并将结果返回给调度控制器 411;
若连接协调器 511 1 检査从源到目的地之间没有可走的逻辑路径, 则路由 控制器 5112进一步调用错误控制模块 51 14,对逻辑路径的错误情况进行恢复, 直至异常得到恢复或超时;
component管理器 4收到调度控制器 41 1返回的结果,锁住执行 component 请求所需的资源, 并将 component请求发送到事务管理器 5 ;
步骤 213, 事务管理器 5根据 operat ions创建全局事务, 并为每个全局事 务创建多个事务分支, 将事务分支发送到资源管理器 6;
步骤 214, 资源管理器 6管理事务分支在资源上的执行, 包括确定事务分 支执行的先后顺序, 将事务分支的执行结果发送到事务管理器 5 ;
步骤 215, 每个事务分支执行完成后, 都会更新资源控制器 3中的资源状 态; 若用户请求的是 component , 则 component管理器 4确定 component全局 事务的提交或回滚, 并释放锁住的资源, 过程结束; 若用户请求的是 domain, 一个 domain 全局事务由多个 component全局事务组成, 则 component管理器 4 确定 component 全局事务的提交或回滚, 并释放锁住的资源, 所有的 component全局事务执行完成后,则由域管理器 2确定 domain全局事务的提交 或回滚, 并解锁资源, 过程结束;
步骤 216, 等待直到有可用的资源, 当等待的时间超过了设定的时间界限, 则结束事务的执行, 并返回 "无可用资源, 事务无法执行"的结果; 具体来说, 若事务分支与虚机的状态冲突, 则该事务分支不能执行, 并将结果返回到 component管理器 4, component请求进入等待状态, 且 component管理器 4继 续申请资源直到超时退出。
请参阅图 10, 图中示出了本发明的 domain全局事务状态过程。 在本发明 中,有 domain全局事务、 component全局事务、事务分支三种级别的事务, domain 全局事务由多个 component全局事务组成, component全局事务由多个事务分 支组成。 domain全局事务开始后, 其状态转移过程如下:
步骤 1001, domain全局事务进入 "preparing" 状态;
步骤 1002, 判断该 domain全局事务下的所有的 component全局事务是否 都准备完成, 如果准备完成, 则转移到步骤 1003, 否则转移到步骤 1006; 步骤 1003, domain全局事务进入 "prepared"状态;
步骤 1004, 判断所有的 component全局事务是否都 commit (提交) 了, 若全部 commit了,则转入到步骤 1005,若有一个 component全局事务 rollback 了, 则转入到步骤 1006;
步骤 1005, domain全局事务进入 "committing" 状态;
步骤 1006, domain全局事务进入 "rollbacking"状态;
步骤 1007, 判断 component全局事务是否提交失败, 当一个 component全 局事务下的某个事务分支提交失败, 则 component 全局事务提交失败; 若 component全局事务提交失败, 则转移到步骤 1011, 否则转移到步骤 1009; 步骤 1008, 判断 component全局事务是否回滚失败, 当一个 component全 局事务下的某个事务分支回滚失败, 则 component 全局事务回滚失败; 若 component全局事务回滚失败, 则转入到步骤 1011, 否则转入到步骤 1010; 步骤 1009, domain全局事务进入 "committed" 状态;
步骤 1010, domain全局事务进入 "rollbacked" 状态;
步骤 1011, domain全局事务进入 "FetalError"状态, 一般而言, 当全 局事务在提交或回滚阶段出现致命的异常错误时, 才会进入此种状态。
请参阅图 11, 图中示出了本发明的 component 全局事务状态过程。 component全局事务是 domain全局事务的事务分支, 同时包括多个事务分支, 是一般意义上的只有一层事务分支的全局事务, 下面简称全局事务, 其状态的 转移主要由事务分支的状态来决定。 component 全局事务开始后, 其状态转移 过程如下:
步骤 1101, 全局事务进入 "preparing" 状态;
步骤 1102, 判断所有的事务分支是否都准备完成, 这里的准备事务分支是 指事务管理器将事务分支发送到资源管理器, 事务分支在资源管理器中处理完 成, 并返回到事务管理器的过程; 如果事务分支准备完, 则转入到步骤 1103, 否则转入到步骤 1109;
步骤 1103, 全局事务进入 "prepared" 状态;
步骤 1104, 判断全局事务是否是写事务, 写事务会改变资源的状态; 若是 写事务, 则转入到步骤 1105, 否则转入到步骤 1108 (此种是读事务的情况) ; 步骤 1105, 判断所有的事务分支是否都 ccMmit了, 若都 ccMmit了, 则转 入到步骤 1106, 否则转入到步骤 1109;
步骤 1106, 全局事务进入 "committing"状态;
步骤 1107, 判断事务分支是否提交失败, 若事务分支在提交时出现严重异 常导致提交失败, 则转入到步骤 1111, 否则转入到步骤 1108;
步骤 1108, 全局事务进入 "committed" 状态;
步骤 1109, 全局事务进入 "rollbacking"状态;
步骤 1110, 判断事务分支回滚是否失败, 若回滚失败, 转入到步骤 1111, 否则转入到步骤 1112;
步骤 1111, 全局事务进入 "FetalError"状态;
步骤 1112, 全局事务进入 "rollbacked"状态;
最后, 全局事务结束, 全局事务结束时可以是 committecU rollbacked, FetalError三禾中状态, 力卩上 committing^ rollbacking^ preparing^ prepared, 在全局事务的生命周期中, 共有七种状态。 只有最终的状态为 committed状态 时, 全局事务才是成功完成的。 domain全局事务和 component全局事务状态转 移生命周期存储在事务管理器中, 用以控制事务管理器中事件的处理, 避免错 误和异常的出现。
请参阅图 12, 图中描述了事务分支的状态转移过程, 事务开支从开始到结 束可倉 ^经历 preparing prepared^ rollbacking^ rollbacked^ committing、 committed. Failed (失败) 、 FetalError 八个状态。 若事务分支准备成功, 并执行成功, 则事务分支从开始到结束共经历 preparing、 prepared, committing, committed 四个状态; 若事务分支在准备过程中就出现了异常, 则事务分支从开始到结束共经历 preparing、 failed两个状态; 当事务分支在 提交或回滚过程中出现重大异常时, 会进入 FetalError状态, 事务分支结束。
资源管理器接收事务管理器发送过来的事务分支, 开始准备事务分支, 具 体过程如下:
步骤 1201, 事务分支进入 "preparing" 状态;
步骤 1202, 事务分支准备完成, 若准备完成, 则转入到步骤 1203, 否则 转入到步骤 1204;
步骤 1203, 事务分支进入 "prepared" 状态;
步骤 1204, 事务分支进入 "Failed"状态;
步骤 1205,判断事务分支是否执行成功,若执行成功,则转入到步骤 1207, 否则转入到步骤 1206;
步骤 1206, 事务分支进入 "rollbacking"状态;
步骤 1207, 事务分支进入 "committing"状态;
步骤 1208, 判断事务分支在 commit过程中是否出现严重异常, 若出现严 重异常, 转入到步骤 1211, 否则转入到步骤 1209;
步骤 1209, 事务分支进入 "committed" 状态;
步骤 1210,判断事务分支在回滚阶段是否出现严重异常,若出现严重异常, 则转入到步骤 1211, 否则转入到步骤 1212;
步骤 1211, 事务分支进入 "FatalError"状态;
步骤 1212, 事务分支进入 "rollbacked"状态。
事务分支结束时的状态可能是 committed、 rollbacked, FatalError中的 一种, 只有当结束时的状态时 committed状态时, 事务分支才成功完成。 事务 分支的状态转移生命周期是存储在资源管理器中的, 由资源管理器管理和维 护, 为事务分支的处理提供保证。
请参阅图 13, 图中示出了本发明的事务执行流程图, 表述了从服务请求到 达 component管理器, 到服务请求执行完成的全过程, 到达域管理器的执行过 程与这个相似, 就是多了从事务管理器转入到 component管理器的过程, 以及 资源的二次解锁,一次是 component全局事务的解锁,一次是域管理器的解锁, 具体流程如下:
步骤 1301 component管理器收到请求以及执行该请求所需要的资源信息; 步骤 1302, component管理器在资源控制器中査看资源状态;
步骤 1303,通过资源控制器中的信息判断是否有可用的资源来运行服务请 求, 若有可用的资源, 则转入到步骤 1304, 否则转入到步骤 1305 ;
步骤 1304, 判断该请求是写操作还是读操作, 若是写操作, 则转入到步骤 1306, 否则转入到步骤 1307 ;
步骤 1305,等待直到有可用的资源,当等待的时间超过了设定的时间界限, 则结束事务的执行, 返回无可用资源, 事务无法执行的结果;
步骤 1306, component管理器锁住执行所需的资源;
步骤 1307, component管理器将请求划分为多个 operati ons ;
步骤 1308, component管理器将 operati ons发给事务管理器, 并指示事 务管理器开始;
步骤 1309, 事务管理器根据接收到的 operati ons创建全局事务; 步骤 1310, 事务管理器为每个全局事务创建事务分支;
步骤 131 1, 事务管理器将事务分支发给资源管理器服务器, 并通知资源管 理器服务器准备和开始事务分支;
步骤 1312, 事务分支引发 HRML (主机资源管理层) 的 API来执行特定的 操作;
步骤 1313, HRML 将资源更新的信息上报到资源控制器, 资源控制器更新 资源状态;
步骤 1314, 分支事务执行完成后, 资源管理器发送结果到事务管理器; 步骤 1315, 事务管理器通知资源管理器准备事务分支的提交或回滚; 步骤 1316, 判断是否是写操作, 若是, 转入到步骤 1318, 否则转入到步 骤 1317 ;
步骤 1317, 事务执行结束;
步骤 1318, 全局事务完成后, 事务管理器发送结果到域管理器; 步骤 1319, component管理器发送提交 /回滚指示到事务管理器; 步骤 1320, component管理器解锁释放资源; 整个 component全局事务运 行结束。
以上结合附图实施例对本发明进行了详细说明, 本领域中普通技术人员可 根据上述说明对本发明做出种种变化例。 因而, 实施例中的某些细节不应构成 对本发明的限定, 本发明将以所附权利要求书界定的范围作为本发明的保护范 围。

Claims

权 利 要 求
1 . 一种基于事务的服务控制系统, 与外围的服务工厂连接, 并接收该服 务工厂发出的服务请求, 其特征在于, 所述系统包括域管理器、 component 管 理器、 资源控制器、 事务管理器和资源管理器; 若所述服务工厂请求业务资源, 则将请求发送到所述域管理器, 若所述服务工厂请求虚机, 则将请求发送到所 述 component管理器
所述域管理器分别与所述资源控制器和事务管理器相连, 向所述资源控制 器申请资源, 并指示所述事务管理器开始创建全局事务;
所述 component管理器分别与所述资源控制器和事务管理器相连, 向所述 资源控制器申请资源, 并指示所述事务管理器开始创建全局事务;
所述资源控制器中存放资源的状态及资源使用情况信息, 根据所述域管理 器或 component管理器发出的资源申请请求, 返回可用的资源信息;
所述事务管理器根据所述域管理器或 component管理器发出的创建全局事 务的指示, 创建全局事务及其事务分支;
所述资源管理器的数量至少为一个, 它分别与所述事务管理器和资源控制 器相连, 接收所述事务管理器发送的事务分支, 管理所述事务分支的执行, 并 将更新的资源信息发送到所述资源控制器。
2. 根据权利要求 1所述的基于事务的服务控制系统, 其特征在于, 所述域管理器用于管理域的生命周期, 包括从域的创建到删除, 并将一个 domain请求分角军成多个 component请求;
所述 component管理器用于管理组件的生命周期, 包括从组件的创建到删 除, 并将一个 component请求分解成多个事务分支。
3. 根据权利要求 1 所述的基于事务的服务控制系统, 其特征在于, 所述 资源控制器包括调度器、 事务路由器、 虚机状态机和资源引用表, 其中:
所述调度器与所述事务路由器相连, 并根据所述虚机状态机和资源引用表 中的信息确定事务的调度, 并将调度结果发送到所述事务路由器; 所述事务路由器接收所述调度器发送的信息, 并根据所述资源引用表中的 信息做出路由决策。
4. 根据权利要求 3 所述的基于事务的服务控制系统, 其特征在于, 所述 资源控制器还与外围的节点服务器连接, 所述节点服务器的数量至少为一个, 且每个节点服务器包括虚机 API和 Monitor API, 其中:
所述虚机 API用于将虚机的最新信息传送至所述虚机状态机;
所述 Monitor API用于将资源引用和资源使用情况的最新信息传送至所述 资源引用表。
5. 根据权利要求 3 所述的基于事务的服务控制系统, 其特征在于, 所述 调度器包括互连的事务执行规划模块和执行控制模块, 其中:
所述事务执行规划模块用于规划事务的调度, 并将规划的结果发送至所述 执行控制模块;
所述执行控制模块根据所述事务执行规划模块输出的规划结果, 确定执行 控制的策略。
6. 根据权利要求 5 所述的基于事务的服务控制系统, 其特征在于, 所述 事务执行规划模块包括调度控制器以及与该调度控制器连接的负载计算器和 花费评估模块, 且所述调度控制器用于调用负载计算器和花费评估模块, 并决 定调度策略。
7. 根据权利要求 3 所述的基于事务的服务控制系统, 其特征在于, 所述 事务路由器包括互连的路由管理器和路由信息存储器, 其中:
所述路由管理器通过所述路由信息存储器中的逻辑路由信息和策略确定 事务的路由;
所述路由信息存储器根据所述资源引用表中的信息, 存储并向所述路由管 理器提供逻辑路由信息。
8. 根据权利要求 7 所述的基于事务的服务控制系统, 其特征在于, 所述 路由管理器包括路由控制器以及分别与该路由控制器连接的连接协调器、 最优 路径计算器、 流控制器和错误控制模块, 其中:
所述路由控制器根据所述连接协调器、 最优路径计算器和流控制器的运 作, 确定事务的逻辑路由决策;
所述连接协调器用于管理网络的逻辑连接, 包括确定所述逻辑连接是否异 常;
所述最优路径计算器用于求解从源到目的地的花费最小的逻辑路径; 所述流控制器用于监控所述每条逻辑路径上的网络流量。
9. 根据权利要求 7 所述的基于事务的服务控制系统, 其特征在于, 所述 路由信息存储器存储的逻辑路由信息包括逻辑路径拓扑表格、 逻辑流状态表格 和事务状态表格, 其中:
所述逻辑路径拓扑表格用于存储网络逻辑路径拓扑信息;
所述逻辑流状态表格用于存储网络流量状态信息;
所述事务状态表格用于存储所述事务分支的状态信息。
10. 根据权利要求 1所述的基于事务的服务控制系统, 其特征在于, 所述 事务管理器包括事务处理器和计时器, 其中:
所述事务处理器用于处理全局事务、 与所述全局事务相关的多个异步事件 以及由所述全局事务分解出来的多个事务分支所产生的延迟工作;
所述计时器用于对所述事务分支所产生的延迟工作进行计时, 并设定一个 阀值, 以确定所述事务分支从发出到返回结果所用的时间是否超过阀值。
11. 根据权利要求 1所述的基于事务的服务控制系统, 其特征在于, 所述 资源管理器运行在所述节点服务器上, 且该资源管理器包括主机资源管理层以 及分别与该主机资源管理层连接的资源管理器服务器和资源控制器客户端, 其 中:
所述资源管理器服务器接收所述事务管理器发送的请求, 并调用所述主机 资源管理层;
所述主机资源管理层接收所述资源管理器服务器发送的调用信号, 配置执 行所述事务分支所需的资源;
所述资源控制器客户端接收所述主机资源管理层返回的虚机状态更新信 息, 并将更新的虚机状态发送给所述资源控制器。
12. 根据权利要求 11 所述的基于事务的服务控制系统, 其特征在于, 所 述资源管理器服务器包括资源管理器代理、 工作线程、 请求队列和事务分支队 列, 其中: 所述资源管理器代理将所述事务管理器发送的并发性请求通过所述 请求队列传至所述工作线程进行处理, 该工作线程将处理后的请求发送到所述 事务分支队列中, 并处理所述事务分支以及维持事务分支的生命周期。
13. 根据权利要求 11 所述的基于事务的服务控制系统, 其特征在于, 所 述主机资源管理层包括管理控制中心以及分别与该管理控制中心连接的共享 存储器、 Mac Store、 虚机实例和事件管理器, 其中:
所述管理控制中心用于提供获取主机资源的 API, 并注册或注销到所述资 源控制器客户端;
所述共享存储器为所述管理控制中心提供共享的存储资源访问接口; 所述 Mac Store用于管理 mac地址;
所述虚机实例提供 API以使用外围 libvirt来操作虚机,并提供 API以得到 该虚机的状态;
所述事件管理器提供事件功能并将它们注册到所述 libvirt。
14. 根据权利要求 13 所述的基于事务的服务控制系统, 其特征在于, 所 述管理控制中心包括虚机哈希表, 且该虚机哈希表用于存储所述虚机的生命周 期。
15. —种如权利要求 1所述的基于事务的服务控制系统的服务控制方法, 其特征在于, 该方法包括: 所述服务工厂向所述域管理器或 component管理器发送服务请求; 所述域管理器或 component管理器向所述资源控制器申请资源, 并指示所 述事务管理器开始创建全局事务和事务分支;
所述资源控制器判断是否有可用的资源, 以及执行请求的最优资源, 并返 回;
所述事务管理器将所述事务分支发送至所述资源管理器;
所述资源管理器管理所述事务分支的执行, 当所述事务分支执行完后, 将 执行结果返回给所述事务管理器, 并将资源信息更新到所述资源控制器。
16. 根据权利要求 15所述的基于事务的服务控制方法, 其特征在于, 所述月艮务请求为 domain请求或 component请求;
若所述服务请求是 domain请求, 则每个 domain请求作为一个 domain全 局事务, 每个 domain 全局事务可分解成多个 component 全局事务, 每个 component全局事务可分解成多个事务分支;
若所述服务请求是 component 请求, 则每个 component 请求作为一个 component全局事务, 每个 component全局事务可分解成多个事务分支。
17. 根据权利要求 16所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
当所述 domain请求到达所述域管理器后, 该域管理器访问所述资源控制 器中的调度控制器;
所述调度控制器到所述资源引用表中査看资源的引用信息及资源的使用 情况, 并判断所述 domain请求能否执行。
18. 根据权利要求 17所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述资源引用表中显示的资源可用, 并满足所述 domain请求的执行, 则将可以执行的结果返回到所述域管理器, 且该域管理器锁住执行所需的资 源。
19. 根据权利要求 17所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述资源引用表中显示没有可用的资源, 则返回没有资源不能执行的结 果到所述域管理器, 所述 domain 请求进入等待状态, 且所述域管理器继续申 请资源直到超时退出。
20. 根据权利要求 18 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
所述域管理器将所述 domain请求发送到所述事务管理器;
所述事务管理器生成 domain全局事务, 并将该 domain全局事务分解成多 个 component全局事务后发送到所述 component管理器。
21. 根据权利要求 20所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
所述 component管理器将所述 component全局事务分解成多个事务分支, 并访问所述资源控制器中的调度控制器;
所述调度控制器到所述虚机状态机中査看虚机的状态, 并根据虚机的状 态, 判断所述事务分支是否在虚机上执行。
22. 根据权利要求 21 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述事务分支与虚机的状态不冲突, 则所述调度控制器进一步到所述资 源引用表中査看资源的引用信息, 并调用所述负载计算器和花费评估模块。
23. 根据权利要求 21 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述事务分支与虚机的状态冲突, 则该事务分支不能执行, 并将结果返 回到所述 component 管理器, 所述 component 请求进入等待状态, 且所述 component管理器继续申请资源直到超时退出。
24. 根据权利要求 22所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
所述负载计算器根据所述每个节点服务器上的资源使用情况, 采用统一的 算法计算和评估每个节点服务器上的负载;
所述花费评估模块根据所述每个节点服务器上的负载以及节点服务器在 较短的时间内承受负载的能力, 计算所述每个节点服务器上的负载执行情况, 以及释放资源所需的时间;
所述调度控制器根据所述负载计算器和花费评估模块输出的结果, 确定将 所述事务分支调度到哪个节点服务器上执行。
25. 根据权利要求 24所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
所述调度控制器将调度结果发送到所述事务路由器中的路由控制器; 所述路由控制器调用所述连接协调器, 该连接协调器检査从源到目的地之 间的逻辑路径。
26. 根据权利要求 25 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述连接协调器检査从源到目的地之间有可走的逻辑路径, 则所述路由 控制器进一步调用所述最优路径计算器和流控制器;
所述最优路径计算器根据所述逻辑路径拓扑表格中的信息, 计算每条逻辑 路径的花费;
所述流控制器根据所述逻辑流状态表格中的信息, 计算每条逻辑路径的网 络流量;
所述路由控制器根据所述最优路径计算器和流控制器的计算结果, 通过折 中策略为事务选择一条最优的逻辑路径。
27. 根据权利要求 25 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
若所述连接协调器检査从源到目的地之间没有可走的逻辑路径, 则所述路 由控制器进一步调用所述错误控制模块, 对逻辑路径的错误情况进行恢复, 直 至异常得到恢复或超时。
28. 根据权利要求 25 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
所述 component 管理器收到所述调度控制器返回的结果, 锁住执行所述 component请求所需的资源, 并将 component请求发送到所述事务管理器。
29. 根据权利要求 28 所述的基于事务的服务控制方法, 其特征在于, 所 述方法进一步包括:
当所述一个 component全局事务完成后, 所述事务管理器将结果返回到所 述 component管理器, 该 component管理器指示 component全局事务的提交或 回滚后, 释放锁住的资源, 并将结果发送到所述事务管理器;
当所述一个 domain全局事务完成后, 所述事务管理器将结果返回到所述 域管理器, 该域管理器指示 domain 全局事务的提交或回滚后, 释放锁住的资 源。
30. 一种如权利要求 1所述的基于事务的服务控制系统的包含多个异步事 件的全局事务处理方法, 所述服务控制系统中的事务管理器还包括 AP代理、 全局事务队列、 全局事务等待队列、 事件等待队列、 RPC客户端和延时的工作 队列, 其特征在于, 所述方法包括:
所述 AP代理将所述服务请求作为全局事务送至所述全局事务队列中, 以 备所述事务处理器处理, 同时生成开始事务事件, 并使该开始事务事件进入所 述事件等待队列中;
所述事务处理器开始处理全局事务, 并将开始处理的全局事务送至所述全 局事务等待队列中; 所述事务处理器将全局事务分解成多个事务分支后发送至所述 RPC 客户 端, 并为该事务分支生成延时的工作后送至所述延时的工作队列;
所述计时器对所述延时的工作计时, 等待该延时的工作所对应的事务分支 的返回结果。
31. 根据权利要求 30所述的包含多个异步事件的全局事务处理方法, 其 特征在于, 所述方法进一步包括:
若所述事务分支在所述资源管理器中执行后返回执行结果到所述事务管 理器的时间在所述计时器的阀值内, 则该事务分支将执行结果返回到所述事务 管理器, 与该事务分支相对应的延时的工作从所述延时的工作队列中删除, 并 通过所述 RPC客户端回调所述事务分支的执行结果,以及回调事件进入所述事 件等待队列中。
32. 根据权利要求 30所述的包含多个异步事件的全局事务处理方法, 其 特征在于, 所述方法进一步包括:
若所述事务分支在所述资源管理器中执行后返回执行结果到所述事务管 理器的时间超过所述计时器的阀值, 则该计时器返回事件 timeout 到所述事件 等待队列中, 且与该事务分支相对应的延时的工作从所述延时的工作队列中删 除。
33. 根据权利要求 30所述的包含多个异步事件的全局事务处理方法, 其 特征在于,
所述事件等待队列中存放的事件类型包括全局事务相关的事件和事务分 支相关的事件, 且所述不同的事件具有不同的优先级。
34. 根据权利要求 30所述的包含多个异步事件的全局事务处理方法, 其 特征在于, 所述方法进一步包括:
所述事务处理器对所述全局事务队列、 事件等待队列和延时的工作队列中 的每个组成元素上锁; 所述事务处理器维持所述全局事务的生命状态周期。
35. 根据权利要求 34所述的包含多个异步事件的全局事务处理方法, 其 特征在于,
所述全局事务的生命状态周期中包括七种状态, 分别是 committee^ rollbacked、 FetalError、 committing、 rollbacking、 preparing禾口 prepared;
所述事务处理器以所述全局事务的状态为依据, 控制事件的执行。
36. 一种如权利要求 1所述的基于事务的服务控制系统的处理虚机事务的 主机资源管理方法, 其特征在于, 所述方法包括:
将所述事务分支队列中创建虚机的请求的事务分支发送到所述管理控制 中心;
所述管理控制中心将査询虚机模板的请求发送到所述共享存储器, 且该共 享存储器返回虚机模板的 URL到所述管理控制中心;
所述管理控制中心根据返回的虚机模板的 URL, 到所述 Mac Store中获取 虚机模板的 mac地址信息;
所述管理控制中心发送创建虚机的指令到所述 libvirt, 且该 libvirt返回创 建好的虚机;
所述管理控制中心将虚机镜像的内容发送到所述共享存储器, 以确认是否 创建完成虚机镜像;
若所述虚机镜像创建完成, 则所述管理控制中心返回完成指令到所述资源 管理器。
PCT/CN2012/075984 2011-05-27 2012-05-24 一种基于事务的服务控制系统及其控制方法 WO2012163245A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/122,444 US9442749B2 (en) 2011-05-27 2012-05-24 Transaction-based service control system and control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110141641.5 2011-05-27
CN2011101416415A CN102346460B (zh) 2011-05-27 2011-05-27 一种基于事务的服务控制系统及其控制方法

Publications (1)

Publication Number Publication Date
WO2012163245A1 true WO2012163245A1 (zh) 2012-12-06

Family

ID=45545215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/075984 WO2012163245A1 (zh) 2011-05-27 2012-05-24 一种基于事务的服务控制系统及其控制方法

Country Status (3)

Country Link
US (1) US9442749B2 (zh)
CN (1) CN102346460B (zh)
WO (1) WO2012163245A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157714A (zh) * 2021-04-29 2021-07-23 北京达佳互联信息技术有限公司 榜单数据更新方法、装置、电子设备及存储介质
CN113872781A (zh) * 2020-06-30 2021-12-31 阿里巴巴集团控股有限公司 事务处理方法、装置、设备和存储介质
CN113954104A (zh) * 2021-12-23 2022-01-21 辰星(天津)自动化设备有限公司 并联机器人的多线程控制器

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346460B (zh) * 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
US9513950B2 (en) 2012-07-25 2016-12-06 Vmware, Inc. Dynamic resource configuration based on context
US9003037B2 (en) 2012-07-25 2015-04-07 Vmware, Inc. Dynamic allocation of physical computing resources amongst virtual machines
CN102932200B (zh) * 2012-09-21 2015-02-18 东软集团股份有限公司 一种信息流节点处理时限的监控方法及装置
US9274824B2 (en) * 2013-06-27 2016-03-01 Verizon Patent And Licensing Inc. Network technology standard operating environment
US20150019709A1 (en) * 2013-07-10 2015-01-15 Apollo Group, Inc. Method and apparatus for controlling initiation of multi-service transactions
US10761895B2 (en) 2013-09-26 2020-09-01 Vmware, Inc. Selective allocation of physical computing resources amongst virtual machines based on user attribute values contained in user profiles
CN105900059B (zh) 2014-01-21 2019-06-07 甲骨文国际公司 用于在应用服务器、云或其它环境中支持多租户的系统和方法
US9858549B2 (en) * 2014-02-03 2018-01-02 Cisco Technology, Inc. Business transaction resource usage tracking
US10691440B2 (en) * 2014-06-06 2020-06-23 Hewlett Packard Enterprise Development Lp Action execution based on management controller action request
US9715392B2 (en) * 2014-08-29 2017-07-25 Qualcomm Incorporated Multiple clustered very long instruction word processing core
US9674099B2 (en) * 2014-09-25 2017-06-06 Microsoft Technology Licensing, Llc Network classification for applications
WO2016049584A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
GB2533416A (en) * 2014-12-19 2016-06-22 Advanced Risc Mach Ltd Monitoring utilization of transactional processing resource
CN105871963B (zh) * 2015-01-23 2020-05-19 中兴通讯股份有限公司 资源操作请求的处理方法及装置
GB2536871A (en) * 2015-03-04 2016-10-05 Advanced Risc Mach Ltd An apparatus and method to generate trace data in response to transactional execution
CN104735137A (zh) * 2015-03-09 2015-06-24 广州杰赛科技股份有限公司 一种实现客户端与服务器端异步交互的方法和系统
CN106326002B (zh) 2015-07-10 2020-10-20 阿里巴巴集团控股有限公司 资源调度方法、装置及设备
AU2016292783B2 (en) * 2015-07-10 2019-05-30 Ab Initio Technology Llc Method and architecture for providing database access control in a network with a distributed database system
WO2017012083A1 (zh) * 2015-07-22 2017-01-26 程强 自助点餐的催餐方法及系统
CN106452818B (zh) 2015-08-13 2020-01-21 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US9910685B2 (en) 2015-08-13 2018-03-06 Samsung Electronics Co., Ltd. System and method for identifying, indexing, and navigating to deep states of mobile applications
US9990391B1 (en) * 2015-08-21 2018-06-05 Amazon Technologies, Inc. Transactional messages in journal-based storage systems
KR102416465B1 (ko) * 2015-11-30 2022-07-04 삼성전자주식회사 공유 자원을 효율적으로 관리하는 데이터 처리 시스템
US10007586B2 (en) * 2016-01-08 2018-06-26 Microsoft Technology Licensing, Llc Deferred server recovery in computing systems
US9921775B2 (en) * 2016-06-28 2018-03-20 Vmware, Inc. Memory management in a decentralized control plane of a computing system
CN106528664A (zh) * 2016-10-21 2017-03-22 广东亿迅科技有限公司 基于分布式的关系数据库的事务数据监控方法及其系统
CN106444685A (zh) * 2016-12-06 2017-02-22 中国船舶重工集团公司第七〇九研究所 分布式控制系统及其动态调度资源的方法
GB201705749D0 (en) * 2017-04-10 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
CN107291979B (zh) * 2017-05-09 2020-06-23 浙江大学 用于钢制盖板节点的弯矩轴力作用下承载力的核算方法
US11012316B2 (en) * 2017-05-23 2021-05-18 Vmware, Inc. Methods and apparatus to generate and manage workload domains in virtual server racks
US11188501B1 (en) * 2017-08-15 2021-11-30 Amazon Technologies, Inc. Transactional and batch-updated data store search
CN107592345B (zh) * 2017-08-28 2020-08-18 中国工商银行股份有限公司 交易限流装置、方法及交易系统
CN107528912A (zh) * 2017-09-11 2017-12-29 金蝶软件(中国)有限公司 一种自动实现分布式事务处理的方法、系统及相关装置
US10719533B2 (en) * 2018-01-03 2020-07-21 Salesforce.Com, Inc. Multi-tenant tables of a distributed database
CN108415757B (zh) * 2018-02-02 2020-10-30 创新先进技术有限公司 分布式事务处理方法及装置
CN108763013B (zh) * 2018-04-11 2021-10-26 北京百度网讯科技有限公司 一种故障处理方法、装置、设备和计算机存储介质
US10713082B2 (en) * 2018-11-28 2020-07-14 Sap Se Cloud platform integration load balancer
US20200201834A1 (en) * 2018-12-21 2020-06-25 Fast River Technologies Inc. Systems and methods of efficient extensions of relational tables in a database
US20200226011A1 (en) * 2019-01-14 2020-07-16 Fast River Technologies Inc. Policy-based distributed transactional processing in a distributed system
CN109756522A (zh) * 2019-03-25 2019-05-14 苏州达塔库自动化科技有限公司 支持多种协议的消息代理方法
CN113892083A (zh) * 2019-03-25 2022-01-04 西门子股份公司 用于以自动化方式注入事务性服务的自动化系统和方法
CN110083504B (zh) * 2019-03-29 2024-04-26 奇安信科技集团股份有限公司 分布式任务的运行状态监控方法及装置
CN110276153B (zh) * 2019-06-27 2023-01-06 北京华如科技股份有限公司 并行离散时间仿真的非一致时间余度非严格时间管理方法
CN110276152B (zh) * 2019-06-27 2023-01-06 北京华如科技股份有限公司 一种并行离散时间仿真的带时间余度非严格时间管理方法
CN110417598B (zh) * 2019-07-30 2022-05-20 普信恒业科技发展(北京)有限公司 网关组件的管理方法及组件管理器
CN110489392B (zh) * 2019-08-22 2022-03-29 中国工商银行股份有限公司 多租户间的数据访问方法、装置、系统、存储介质及设备
CN110572283B (zh) * 2019-08-30 2022-05-17 西南电子技术研究所(中国电子科技集团公司第十研究所) 机载平台服务交互接力控制系统
KR20190110491A (ko) * 2019-09-10 2019-09-30 엘지전자 주식회사 차량과 관련된 가상 머신 제어 방법 및 장치
CN110995863B (zh) * 2019-12-19 2021-07-30 上海交通大学 基于负载需求特征的数据中心负载分配方法及系统
CN111124692B (zh) * 2020-01-02 2023-05-12 神州数码融信软件有限公司 一种业务请求处理系统
CN111431985B (zh) * 2020-03-18 2023-04-21 紫光云技术有限公司 一种云服务异构子系统间资源状态同步的方法
CN113992750B (zh) * 2020-07-10 2024-09-10 华为云计算技术有限公司 一种全局事务协同方法、装置、设备及介质
CN111767288B (zh) * 2020-07-30 2022-08-30 杭州正策信息科技有限公司 一种项目申报数据处理方法及装置
CN112054957B (zh) * 2020-08-11 2022-04-29 烽火通信科技股份有限公司 资源调度方法、装置、设备及存储介质
CN112835571B (zh) * 2021-01-29 2022-05-17 宝宝巴士股份有限公司 一种基于Laravel框架的RESTful API代码的自动生成方法
CN113220462B (zh) * 2021-05-28 2024-02-06 赵庆林 一种基于边缘计算的集中式故障检测方法
US20220413909A1 (en) * 2021-06-25 2022-12-29 Intel Corporation Techniques to enable quality of service control for an accelerator device
CN113612818B (zh) * 2021-07-09 2023-09-01 中国汽车技术研究中心有限公司 一种低代码平台的工业app发布系统
EP4148573A1 (en) * 2021-09-14 2023-03-15 TTTech Auto AG Method to execute a mode-transition in a multi-mode computer system
CN117176821A (zh) * 2023-11-02 2023-12-05 宁德时代新能源科技股份有限公司 服务请求处理方法、装置、系统、电子设备及存储介质
CN118349319B (zh) * 2024-06-18 2024-09-03 华能信息技术有限公司 一种分布式事务的管理方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734427A (zh) * 2004-08-02 2006-02-15 微软公司 基于事务处理的性能模型的自动化确认和校准
US7047517B1 (en) * 2001-07-03 2006-05-16 Advanced Micro Devices System for integrating data between a plurality of software applications in a factory environment
CN1859350A (zh) * 2006-03-14 2006-11-08 华为技术有限公司 一种基于事务的业务运营系统及方法
CN101141301A (zh) * 2006-08-12 2008-03-12 国际商业机器公司 用于事务恢复的方法及装置
US20080222338A1 (en) * 2007-03-07 2008-09-11 Ramasubramanian Balasubramanian Apparatus and method for sharing devices between multiple execution domains of a hardware platform
CN101833470A (zh) * 2008-12-31 2010-09-15 英特尔公司 注入事务以支持物理设备控制器的虚拟化
CN102346460A (zh) * 2011-05-27 2012-02-08 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219711B1 (en) * 1997-05-13 2001-04-17 Micron Electronics, Inc. Synchronous communication interface
US6801520B2 (en) * 1998-02-17 2004-10-05 Genesys Telecommunications Laboratories, Inc. Queue prioritization based on competitive user input
US6477571B1 (en) * 1998-08-11 2002-11-05 Computer Associates Think, Inc. Transaction recognition and prediction using regular expressions
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US20020194244A1 (en) * 2001-06-01 2002-12-19 Joan Raventos System and method for enabling transaction-based service utilizing non-transactional resources
US7337441B2 (en) * 2001-07-17 2008-02-26 Bea Systems, Inc. System and method for prepreparing a transaction process involving a chain of servers in a circular flow
CN100375479C (zh) * 2002-09-14 2008-03-12 中兴通讯股份有限公司 实现媒体网关控制协议栈的网络系统和方法
US7917658B2 (en) * 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
WO2005051031A1 (ja) * 2003-11-19 2005-06-02 National Institute Of Information And Communications Technology, Independent Administrative Agency 無線通信システム
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US7685365B2 (en) * 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
JP4758259B2 (ja) * 2006-01-31 2011-08-24 株式会社クラウド・スコープ・テクノロジーズ ネットワーク監視装置及び方法
JP4785628B2 (ja) * 2006-06-08 2011-10-05 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
CN101861576A (zh) * 2007-09-28 2010-10-13 埃克斯里昂股份公司 网络操作系统
US20090109941A1 (en) * 2007-10-31 2009-04-30 Connect Spot Ltd. Wireless access systems
US8566835B2 (en) * 2007-12-13 2013-10-22 Hewlett-Packard Development Company, L.P. Dynamically resizing a virtual machine container
WO2010041991A1 (en) * 2008-10-06 2010-04-15 Telefonaktiebolaget L M Ericsson (Publ) Digital rights management in user-controlled environment
US20130103785A1 (en) * 2009-06-25 2013-04-25 3Crowd Technologies, Inc. Redirecting content requests
US8199655B2 (en) * 2009-08-21 2012-06-12 Verizon Patent And Licensing Inc. Optimized layer-2 network switching systems and methods
US9244716B2 (en) * 2009-10-30 2016-01-26 Avaya Inc. Generation of open virtualization framework package for solution installations and upgrades
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US8661213B2 (en) * 2010-01-06 2014-02-25 Vmware, Inc. Method and system for frequent checkpointing
US8856319B1 (en) * 2010-02-03 2014-10-07 Citrix Systems, Inc. Event and state management in a scalable cloud computing environment
US8464255B2 (en) * 2010-03-12 2013-06-11 Microsoft Corporation Managing performance interference effects on cloud computing servers
US9639688B2 (en) * 2010-05-27 2017-05-02 Ford Global Technologies, Llc Methods and systems for implementing and enforcing security and resource policies for a vehicle
US8473952B2 (en) * 2010-06-30 2013-06-25 Oracle International Corporation System and method for communication between concurrent transactions using transaction communicator objects
US8972070B2 (en) * 2010-07-02 2015-03-03 Alstom Grid Inc. Multi-interval dispatch system tools for enabling dispatchers in power grid control centers to manage changes
US8880486B2 (en) * 2010-07-27 2014-11-04 Sap Ag Distributed database system utilizing an extended two-phase-commit process
US8804745B1 (en) * 2011-06-27 2014-08-12 Amazon Technologies, Inc. Virtualization mapping

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047517B1 (en) * 2001-07-03 2006-05-16 Advanced Micro Devices System for integrating data between a plurality of software applications in a factory environment
CN1734427A (zh) * 2004-08-02 2006-02-15 微软公司 基于事务处理的性能模型的自动化确认和校准
CN1859350A (zh) * 2006-03-14 2006-11-08 华为技术有限公司 一种基于事务的业务运营系统及方法
CN101141301A (zh) * 2006-08-12 2008-03-12 国际商业机器公司 用于事务恢复的方法及装置
US20080222338A1 (en) * 2007-03-07 2008-09-11 Ramasubramanian Balasubramanian Apparatus and method for sharing devices between multiple execution domains of a hardware platform
CN101833470A (zh) * 2008-12-31 2010-09-15 英特尔公司 注入事务以支持物理设备控制器的虚拟化
CN102346460A (zh) * 2011-05-27 2012-02-08 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113872781A (zh) * 2020-06-30 2021-12-31 阿里巴巴集团控股有限公司 事务处理方法、装置、设备和存储介质
CN113157714A (zh) * 2021-04-29 2021-07-23 北京达佳互联信息技术有限公司 榜单数据更新方法、装置、电子设备及存储介质
CN113954104A (zh) * 2021-12-23 2022-01-21 辰星(天津)自动化设备有限公司 并联机器人的多线程控制器
CN113954104B (zh) * 2021-12-23 2022-04-01 辰星(天津)自动化设备有限公司 并联机器人的多线程控制器
WO2023115758A1 (zh) * 2021-12-23 2023-06-29 辰星(天津)自动化设备有限公司 并联机器人的多线程控制器

Also Published As

Publication number Publication date
US20140250436A1 (en) 2014-09-04
CN102346460A (zh) 2012-02-08
US9442749B2 (en) 2016-09-13
CN102346460B (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
WO2012163245A1 (zh) 一种基于事务的服务控制系统及其控制方法
CN108475251B (zh) 针对容器的虚拟网络、热交换、热缩放与灾难恢复
US20230050233A1 (en) Envoy for multi-tenant compute infrastructure
US9430264B2 (en) System and method for managing resources in virtualized environment based on resource state information and policy information
US10713071B2 (en) Method and apparatus for network function virtualization
CN112099918A (zh) 容器化环境中的集群的实时迁移
EP3588296A1 (en) Dynamically scaled hyperconverged system
US20240168673A1 (en) Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US9268590B2 (en) Provisioning a cluster of distributed computing platform based on placement strategy
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US11121906B2 (en) Data plane API in a distributed computing network
WO2015176636A1 (zh) 分布式数据库服务管理系统
SG189385A1 (en) High availability of machines during patching
US10862887B2 (en) Multiple domain authentication using data management and storage node
US20220269571A1 (en) Virtual machine configuration update technique in a disaster recovery environment
WO2021043124A1 (zh) 一种kbroker分布式操作系统、存储介质和电子设备
US11354180B2 (en) Secure backwards compatible orchestration of isolated guests
US12093151B2 (en) Managing reference snapshots across multiple sites for efficient failover/failback
US11728979B2 (en) Method and system for performing telemetry services for composed information handling systems
Borin et al. Configuring a Cloud-Deployed HPC Cluster
Shi et al. Adapting grid computing environments dependable with virtual machines: design, implementation, and evaluations
Calmel et al. Sun Microsystems, Inc.
Hussain et al. Managing and Optimizing a Complex RAC Environment: by Syed Jaffar Hussain and Tariq Farooq

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: 12794048

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14122444

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12794048

Country of ref document: EP

Kind code of ref document: A1