# US 7,412,667 B2 · Web service visualizer and display service

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,667 B2
- Document ID: US7412667B2
- Status: Granted
- Kind: B2
- Application number: 10/892,567
- Filed: 2004-07-15
- Published: 2006-01-19
- Granted: 2008-08-12
- Earliest claimed: 2004-07-15
- Assignees: Microsoft Corporation
- Inventors: Georgios Chrysanthakopoulos
- Web page: https://patentgrep.com/patent/US7412667B2

## CPC

- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/328: {Computer systems status display (G06F11/327 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described is a service visualizer that presents a high-level view of services currently running in a distributed operating system. The service visualizer, which itself may be a service, is visual-based and uses objects (e.g., spheres) suspended in space to represent the ports of services that are currently running. Messages sent between services are represented by particles. The visualizer creates a visual collection for each service port, which in turn creates a port monitor to watch for messages on the port. The resulting visualization may be interacted with, such as for purposes of debugging.

## Claims

### Claim 1

At a computing system in a computing environment, a method for visualizing services, the method comprising:
obtaining information about a plurality of services registered with a directory service, the obtained information including for each registered service: a Uniform Resource Identifier to a contract that describes the service's requirements, the requirements including separate behaviors corresponding to each of a plurality of ports indicated in the contract, each port configured to transfer messages of a specified schema-defined message type;
generating a visualization to represent the interaction between the plurality of registered services based on the described requirements in the contract for each registered service, the visualization including generating:
for each registered service:
a service graphical object representing the registered service; and
a clustered plurality of port graphical objects, each of the clustered plurality of graphical port objects visually depicted within the service graphical object to indicate that each port graphical object in the clustered plurality of graphical port objects corresponds to the registered service, each of the clustered plurality of port graphical objects visually and individually representing a corresponding port from among the plurality of ports indicated in the registered service's contract, each of the clustered plurality of port graphical objects also corresponding to the specified schema-defined message type of the represented corresponding port; and
a separate plurality of message graphical objects depicted separate from the clustered pluralities of graphical port objects for each registered service, each of the separate plurality of message graphical objects depicted on a route between a sending port graphical object, from among the plurality of port graphical objects within one graphical service object, and a receiving port graphical object, from among the plurality of port graphical objects within another different graphical service object, each of the separate plurality of message graphical objects representing a schema-defined message being communicated between corresponding ports of the registered services represented by the sending and receiving port graphical objects respectively so as to indicate the behaviors being utilized at the registered services.

### Claim 2 (depends on 1)

The method of claim 1 wherein obtaining information about services registered with the directory service comprises subscribing for notifications from the directory service.

### Claim 3 (depends on 1)

The method as recited in claim 1 wherein generating the visualization comprises highlighting any port items for corresponding ports that are participating in the communication of a schema-defined message.

### Claim 4 (depends on 1)

The method of claim 1 wherein generating a service graphical object representing the registered service comprises generating a translucent cube representing the registered service.

### Claim 5 (depends on 4)

The method of claim 4 wherein generating a clustered plurality of port graphical objects within the graphical service object comprises generating a clustered plurality of spheres of a first size within the translucent cube.

### Claim 6 (depends on 1)

The method of claim 1 wherein generating the visualization comprises creating a visual collection service to handle calculations and spatial placements for each visible item representative of each service.

### Claim 7 (depends on 5)

The method of claim 5 wherein generating a separate plurality of message graphical objects separate from the clustered pluralities of port graphical objects comprises generating a plurality of spheres of a second smaller size, each sphere of the second smaller size representing a message being exchanged between ports represented by spheres of the first size.

### Claim 8 (depends on 1)

The method of claim 1 further comprising sending update messages to provide a dynamic real-time visualization of message movement between items representing services.

### Claim 9 (depends on 1)

The method of claim 1 further comprising, discovering a new service by examining data in a packet exchanged between services being monitored.

### Claim 10 (depends on 1)

The method of claim 1 wherein generating the visualization comprises rendering a background surface that creates an impression of a three-dimensional view.

### Claim 11 (depends on 1)

A computer program product including at least one physical storage medium having stored thereon computer-executable instructions, which when executed at a processor, cause the computer system to perform the method of claim 1.

### Claim 12

In a computing environment having a directory service that provides information about services, a system comprising:
one or more processors;
system memory; and
one or more physical storage media having stored thereon:
a visualizer service coupled to the directory service, the visualizer service configured to:
obtain information about a plurality of services known to the computing environment, the obtained information including:
a Uniform Resource Identifier to a contract that describes the service's requirements, the requirements including separate behaviors corresponding to each of a plurality of ports indicated in the contract, each port configured to transfer messages of a specified schema-defined message type;
a visual collection service—for each of the plurality of services for which the information was obtained, each visual collection service coupled to the directory service by subscribing for insert and delete notifications for services of a contract type;
a port visual service for each instance in the directory of a service contract of each type; and
wherein the visualizer service, each visual collection service, and each port visual service pass update-related messages to generate a visualization representing the interaction between the services based on the described requirements in the contract for each service, the visualization including:
for each registered service:
a service graphical object representing the registered service; and
a clustered plurality of port graphical objects, each of the clustered plurality of graphical port objects visually depicted within the service graphical object to indicate that each port graphical object corresponds to the registered service, each of the clustered plurality of port graphical objects visually and individually representing a corresponding port from the plurality of ports indicated in the registered service's contract, each of the clustered plurality of port graphical objects corresponding to the specified schema-defined message type of the represented corresponding port; and
separate plurality of message graphical objects depicted separate from the clustered pluralities of port graphical objects for each registered services, each of the separate plurality of message graphical objects depicted on a route between a sending port graphical object, from among the plurality of port graphical objects within one graphical service object, and a receiving port graphical object, from among the plurality of port graphical objects within another different graphical service object, each of the separate plurality of message graphical objects representing a schema-defined messages being communicated between corresponding ports of the registered services represented by the sending and receiving port graphical objects so as to indicate the behaviors being utilized at the services.

### Claim 13 (depends on 12)

The system of claim 12 further comprising a constructor, wherein the visual collection service is caused to be created by the visualizer service via the constructor.

### Claim 14 (depends on 12)

The system of claim 12 further comprising a new port monitor instance created via a port visual and bound to a service being monitored.

### Claim 15 (depends on 12)

The system of claim 12 wherein the visualizer service obtains the information about the services by subscribing for notifications from the directory service.

### Claim 16 (depends on 12)

The system of claim 12 wherein the visualizer service further discovers new services by examining data in packets exchanged between services being monitored.

### Claim 17 (depends on 12)

The system of claim 12 wherein the visualization includes highlighting any port items for corresponding ports that are participating in the communication of a schema-defined message.

### Claim 18 (depends on 17)

The system of claim 17 wherein the visualization including a graphical service object representing the registered service comprises the visualization including a translucent cube representing the registered service.

### Claim 19 (depends on 18)

The system of claim 18 wherein the visualization including a clustered plurality of graphical port objects within the graphical service object comprises the visualization including a clustered plurality of spheres of a first size within the translucent cube.

### Claim 20 (depends on 12)

The system of claim 12 wherein generating the visual collection service performs calculations and spatial placements for each visible item representative of each service.

### Claim 21 (depends on 19)

The system of claim 19 wherein the visualization including a separate plurality of graphical message objects separate from the clustered pluralities of port graphical objects comprises the visualization including a plurality of spheres of a second smaller size, each sphere of the second smaller size representing a message being exchanged between ports represented by spheres of the first size.

### Claim 22 (depends on 12)

The system of claim 12 wherein the update-related messages are processed to provide a dynamic real-time visualization of message movement between the items representing the services.

### Claim 23 (depends on 12)

The system of claim 12 wherein the visualization includes a background surface that creates an impression of a three-dimensional view.

### Claim 24

A computer-program product for use at a computer system, the computer program product for implementing a method for visually representing a plurality of services, the computer program product comprising one or more physical storage media having stored thereon computer-executable instructions, which when executed at a processor, cause the computer system to perform the method, including the following:
obtain information about services registered with a directory service, the obtained information including for each registered service:
a Uniform Resource Identifier to a contract that describes the service's requirements, the requirements including separate behaviors corresponding to each of a plurality of ports indicated in the contract, each port configured to transfer messages of a specified schema-defined message type;
render a three-dimensional representation of the interactions between registered services based on the described requirements in the contract for each registered service, the three-dimensional representation including:
for each registered service:
a service graphical object representing the registered service; and
a clustered plurality of port graphical objects, each of the clustered plurality of graphical port objects visually depicted within the service graphical object to indicate that each graphical port object in the clustered plurality of graphical port objects corresponds to the registered service, each of the clustered plurality of port graphical objects visually and individually representing a corresponding port from the plurality of ports indicated in the registered service's contract, each of the clustered plurality of port graphical objects corresponding to the specified schema-defined message type of the represented corresponding port; and
a separate plurality of message graphical objects depicted separate from the clustered pluralities of port graphical objects for each registered services, each of the separate plurality of message graphical objects depicted on a route between a sending port graphical object, from among the plurality of port graphical objects within one graphical service object, and a receiving port graphical object, from among the plurality of port graphical objects within another different graphical service object, each of the separate plurality of message graphical objects representing a schema-defined message being communicated between corresponding ports of the registered services represented by the sending and receiving port graphical objects respectively so as to indicate the behaviors being utilized at the registered services; and
dynamically updating the three-dimensional representation to represent services that are interacting with each other, the dynamic updating including highlighting any port graphical objects for corresponding ports that are participating in the communication of a schema-defined message as depicted by message graphical objects.

### Claim 25 (depends on 24)

The computer program product of claim 24 further comprising, enumerating the services that are loaded by communicating with a directory service.

### Claim 26 (depends on 25)

The computer program product of claim 25 wherein enumerating the services comprises subscribing for notifications from the directory service.

### Claim 27 (depends on 24)

The computer program product of claim 24 further comprising, discovering new services by examining data in packets exchanged between services that are interacting with each other.

### Claim 28 (depends on 24)

The computer program product of claim 24 wherein rendering the three-dimensional representation comprises generating a visualization containing at least one visible item representative of each service.

### Claim 29 (depends on 24)

The computer program product of claim 24 wherein rendering service graphical object representing the registered service comprises rendering a translucent cube representing the registered service.

### Claim 30 (depends on 24)

The computer program product of claim 24 wherein rendering the three-dimensional representation comprises generating a representation of messages communicated between the services.

### Claim 31 (depends on 24)

The computer program product of claim 24 wherein rendering the three-dimensional representation comprises generating a visualization containing at least one visible item representative of each service and generating a representation of messages communicated between the services.

### Claim 32 (depends on 29)

The computer program product of claim 29 wherein rendering a clustered plurality of graphical port objects within a graphical service object comprises rendering a clustered plurality of spheres of a first size within the translucent cube.

### Claim 33 (depends on 24)

The computer program product of claim 24 wherein rendering the three-dimensional representation comprises creating a visual collection service to handle calculations and spatial placements for each visible item representative of each service.

### Claim 34 (depends on 32)

The computer program product of claim 32 wherein rendering a separate plurality of message graphical objects separate from the clustered pluralities of port graphical objects comprises rendering a plurality of spheres of a second smaller size, each sphere of the second smaller size representing a message being exchanged between ports represented by spheres of the first size.

### Claim 35 (depends on 24)

The computer program product of claim 24 wherein dynamically updating the three-dimensional representation to represent services that are interacting with each other comprises sending update messages to provide a dynamic real-time visualization of message movement between items representing interacting services.

### Claim 36 (depends on 24)

The computer program product of claim 24 wherein rendering the three-dimensional representation comprises rendering a background surface that creates an impression of a three-dimensional view.

### Claim 37 (depends on 24)

The computer program product of claim 24 further comprising, receiving commands from a user directed towards user-interaction with the three-dimensional representation.

### Claim 38 (depends on 24)

The computer program product of claim 24 wherein the commands correspond to navigational commands.

### Claim 39 (depends on 24)

The computer program product of claim 24 wherein at least one of the commands corresponds to a request to select an entity represented in the three-dimensional representation.
