« PreviousContinue »
/ 302 / 304 / 306 / 308 / / / / Virtual Machine Virtual Machine . . . . (VM) (VM) Virtual Machine Virtual Machine Services Services Services Services Offered/Desired Offered/Desired Offered/Desired Offered/Desired E 31.2 iii 3E VM O/S VM O/S VM O/S VM O/S fit E 322 23 / 326 Virtual Machine Monitor/Manager (VMM) / / 328
5 VM VM VM VM
"é 5% 4l?_4 @ 51%
5 Sen/ices Services Sen/ices Services
F, Offered/Desired Offered/Desired Offered/Desired Offered/Desired
9 M E 4.14 E
E VM O/S VM O/S VM O/S VM O/S
> 4.18 Q Q %
Virtual Machines (VMs)
Y L Off d/
es Desiged See?/ices
502 NO N0 Suspension? Yes ea 6 N0 50 NO
NOtify Registry TO 508 . Yes De register Offered / Desired S 514 en/ices
1 DYNAMIC SERVICE REGISTRY FOR VIRTUAL MACHINES
This application is a continuation-in-part of co-pending application Ser. No. 10/330,597, filed on Dec. 27, 2002, entitled “DYNAMIC SERVICE REGISTRY,” and which is commonly assigned to the assignee of the present invention.
The invention generally relates to service registries, and more particularly to providing a dynamic service registry responsive to the creation and suspension or deletion of virtual machines (V M) offering or desiring services advertised in a registry.
A network, which may include wired and/ or wireless intranets, the Intemet, wide area networks (WANs), local area networks (LANs), etc., may have many attached devices offering and/or seeking services, capabilities and/or resources of other devices. It is often difficult to locate devices offering particular services. To facilitate locating and tracking devices and their services, various “web service” or “directory service” technologies have been implemented.
The tenn “web service” describes a standardized way of describing, discovering, and integrating network applications, services and resources from different businesses using open standards, such as World Wide Web Consortium (W3C) and Internet Engineering Task Force (IETF) standards, including XML (Extensible Markup Language), SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), UDDI (Universal Description, Discovery and Integration), etc., over a network. Web services are self-contained modular applications that may communicate directly with other web services, applications, or system software.
UDDI is an industry initiative utilizing a platform-independent open framework for a global set of registries allowing businesses to define their services, discover other businesses and services, and to share information about how the business interacts. Unfortunately, while UDDI’s global nature provides a single source for locating offered services, UDDI lacks the ability to automatically identify and remove stale entries. UDDI allows a device to easily register itself and advertise offered or desired services, capabilities and resources, but UDDI expects the device to behave well and remove its data from the database when the services are no longer offered. Unfortunately, if a device suddenly becomes unavailable, stale registry entries may remain associated with the device.
Consequently, a traditional registry enviromnent is not suitable for transitory devices, such as virtual machines (VMs) which may be arbitrarily created and suspended or destroyed, since suspension or destruction is equivalent to a device suddenly dropping off a network without properly attending to its registration.
BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
FIG. 1 illustrates an exemplary system supporting integration of VMs into a conventional registry enviromnent while allowing for the VM to be arbitrarily suspended or destroyed without advance waming.
FIG. 2 illustrates an exemplary embodiment of the device 102 of FIG. 1.
FIG. 3 illustrates another embodiment of the device 102 of FIG. 1.
FIG. 4 illustrates another embodiment of the device 102 of FIG. 1.
FIG. 5 illustrates an exemplary flowchart for automatically registering and deregistering VM services based on the status of a VM.
FIG. 6 illustrates a suitable computing enviromnent in which certain aspects of the invention may be implemented.
A registry facilitates advertising, discovering, and providing/using services and resources (collectively referenced hereafter as a “registration”). Since resources may be encapsulated and advertised and used as services, unless indicated otherwise directly or by context, the term “services” is intended to include “resources”. In the illustrated embodiments, there may be many registries on a network, where some registries are kept fully in sync (i.e. coherent) with other registries, while other registries may elect to keep some registrations private. The invention may be utilized with various directory services, web services, UDDI registries, Microsoft Corporation’s NET services, and the like. In the claims, the tenn “registry” is intended to generally reference these various registries possibilities and equivalents thereto. However, for expository convenience, the following detailed description focuses on UDDI registries. It will be appreciated by one skilled in the art, that as times change, altemate registries or services will arise, and that the teachings herein are applicable thereto.
In a network enviromnent, for various reasons, devices may suddenly appear, disappear, and reappear on the network. Such devices are referenced herein and the claims that follow as “transitory devices.” The phrase “transitory device” is intended to broadly encompass both physically distinct machines, such as conventional mobile devices including portable computers, personal digital assistants (PDAs), as well as a logical or virtual device, such as a hardware processor emulation, software machine emulation, or virtual machine (V M). The following description focuses on the interaction between virtual machines (V Ms) and registries, such as a UDDI registry. It will be appreciated by one skilled in the art that the following description applies to other transitory devices and registry enviromnents.
A VM may be an emulated machine or emulated platfonn in hardware, e.g., as a mode of operation of a processor, or in software, such as in a runtime enviromnent. The VM may include the instruction set and other platform resources and/ or devices. VM’s may be serialized (e.g. state checkpoint) to a shared file system or shipped over the network to be migrated to, de-serialized (e.g. state restore from checkpoint) on and hosted by a different machine. A single physical device may have (i.e. host) multiple VMs. VMs may also utilize a virtual network in addition to, or in lieu of, a physical network cormection. A VM may appear or reappear on the network because its VMM (Virtual Machine Monitor or Virtual Machine Manager) has instantiated or resumed the VM. The VM may disappear from the network if the VMM shuts it down, de-instantiates (suspends) it, or otherwise makes it unavailable. Suspending, destroying or otherwise making a