The present invention relates to computer systems and software and more particularly to a method and system to layout topology objects, particularly in a primitive environment.
Typically, robust personal computer (PC) applications and the like that are capable of displaying topological layouts, network graphs or similar representations may offer as a core function the ability to “click-on” and “drag” or move topological objects as a means to reposition objects and layout the network graph or representation. Such robust PC applications may also provide the functionality to bend links or “lasso” and drag multiple objects to re-layout large areas of topology. However, in other less robust or primitive applications or device types, such as Web/Markup Applications or the like, the ability to perform complex interactions, such as dragging, selecting, repositioning and similar operations, may not be available. An additional challenge is that these primitive environments may run in a stateless environment. In a stateless environment, the graphical display is independent of the topology data model. Within a markup language, a topology map is simply a singular image and is not made up of multiple different objects (links, nodes, etc.) that can be easily recognized, selected or manipulated by the client. Because the topology object itself cannot be directly distinguished by the computer pointing device in such primitive or stateless environments, the ability to directly influence, select, manipulate or perform other operations is not possible.
In accordance with an embodiment of the present invention, a method to layout topology objects may include determining a relative position of a click event in an image on a client computer. The method may also include generating a Universal Resource Locator (URL), wherein the URL includes location parameters corresponding to the relative position of the click event in the image. The method may further include submitting the URL to a server.
In accordance with another embodiment of the present invention, a system to layout topology objects may include a data structure to determine a relative position of a click event in an image on a client computer. The system may also include a data structure to generate a URL, wherein the URL includes location parameters corresponding to the relative position of the click event in the image. The system may further include a data structure to submit the URL to a server.
In accordance with another embodiment of the present invention, a computer program product to layout topology objects may include a computer readable medium having computer readable program code embodied therein. The computer readable medium may include computer readable program code configured to determine a relative position of a click event in an image on a client computer. The computer program product may also include computer readable program code configured to generate a URL, wherein the URL includes location parameters corresponding to the relative position of the click event in the image. The computer program product may further include computer readable program code configured to submit the URL to a server.
The following detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the invention. Other embodiments having different structures and operations do not depart from the scope of the present invention.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
Any suitable computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java7, Smalltalk or C++. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
In block 106, an image may be displayed of the topology map, layout of topology objects or the like.
Returning to
In block
110, a relative position where the click event occurred in the image may be determined. The relative position or location of the click event may be determined by proportional means, such as calculating a percentage of distance from a vertical side edge and a horizontal side edge of the image to where the click event occurred. The relative position of the click event may also be determined by calculating relative distances and directions from a reference point or points such as the edges of the image or the like.
In block 112, a Universal Resource Locator (URL) or the like may be generated. The URL may contain location parameters corresponding to the relative position or location of the click event determined in block 110. The URL may also include any other data or parameters associated with the click event, such as the type of click event, an option that may have been selected from a context menu displayable by a preset click event, e.g., a right mouse click, in block 108 or the like. In block 114, the URL may be submitted or transmitted to a server.
In block 116 (
As previously discussed, a “select” type click event may involve touching or contacting an object to be selected with a virtual indicator (typically and arrow or the like) that corresponds to the pointing device in an image on a computer monitor and operating a left mouse button. The object may then be highlighted or otherwise distinguished from other objects in the image to identify the object as being selected. Multiple objects may be highlighted or distinguished, i.e., selected by a single click event or multiple click events associated with each selected object. As an example, clicking on one object may also cause any other objects connected downstream or only in a communication path with the one selected object to also be distinguished from other objects in response to the click event.
From block 124, the method 100 may advance to block 126. In block 126, a new image may be generated with the selected object or objects being distinguished or otherwise identified. The method 100 may then return to block 106 in
Returning to block 122 in
Returning to block 118, if the click event is determined to be a preset type click event, such as a right click event, the method 100 may advance to block 130. In block 130, a context menu may be displayed at the client 102 as previously discussed with respect to block 108.
Examples of different options that may be selected in the context menu 214 may include “Deselect All,” “UnHide All,” “Selection,” “Center here!” “Move here!,” “Viewer Content.” The “Center here!” option or “Move here!” option 216 may be used to move the selected objects 202a-202c and thereby layout topology objects. A location indicator or mouse point 218 may be positioned on the image 212 using a pointing device to select the new position of the objects 202a-202c in the primitive or stateless environment.
The click event in block 108 of Figure IA may include moving the mouse point 218 to a new desired position of the objects 202a-202c. The relative position of the mouse point 218 at the new desired position may also be determined in block 110 similar to that previously described for the click event and parameters for the new desired position of the mouse point 218 may be included in the URL generated in block 112 and submitted to the server 104 in block 114 similar to that previously described.
Returning to
The client computer system 302 may include a system memory or local file system 304. The system memory 304 may include a read only memory (ROM) and a random access memory (RAM). The ROM may include a basic input/output system (BIOS). The BIOS may contain basic routines that help to transfer information between elements or components of the computer system 302. The RAM or system memory 304 may contain an operating system 306 to control overall operation of the computer system 302. The RAM may also include a browser 308 or web browser. The RAM may also include data structures 310 or computer-executable code to layout topology objects or the like that may be similar or include elements of the method 100 of
The computer system 302 may also include a processor or processing unit 314 to control operations of the other components of the computer system 302. The operating system 306, browser 308, data structures 310 and other program modules 312 may be operable on the processor 314. The processor 314 may be coupled to the memory system 304 and other components of the computer system 102 by a system bus 316.
The computer system 302 may also include multiple input devices, output devices or combination input/output devices 318. Each input/output device 318 may be coupled to the system bus 316 by an input/output interface (not shown in
The I/O devices 318 may also include disk drives, optical, mechanical, magnetic, or infrared input/output devices, modems or the like. The I/O devices 318 may be used to access a medium 320. The medium 320 may contain, store, communicate or transport computer-readable or computer-executable instructions or other information for use by or in connection with a system, such as the computer systems 302.
The computer system 302 may also include or be connected other devices, such as a display or monitor 322. The monitor 322 may be used to permit the user to interface with the computer system 302. The monitor 322 may present the images 200, 210, 212 and 220, web pages or screen shots represented in
The computer system 302 may also include a hard disk drive 324. The hard drive 324 may be coupled to the system bus 316 by a hard drive interface (not shown in
The computer systems 302 may communicate with a remote server 326 and may access other servers or other computer systems (not shown) similar to computer system 302 via a network 328. The system bus 316 may be coupled to the network 328 by a network interface 330. The network interface 330 may be a modem, Ethernet card, router, gateway or the like for coupling to the network 328. The coupling may be a wired connection or wireless. The network 328 may be the Internet, private network, an intranet or the like.
The server 326 may also include a system memory 332 that include a file system, ROM, RAM and the like. The system memory 332 may include an operating system 334 similar to operating system 306 in computer systems 302. The system memory 332 may also include data structures 336 to layout topology objects or the like. The data structures 336 may include operations similar to those described with respect to method 100 in
The server 326 may also include a processor 340 or a processing unit to control operation of other devices in the server 326. The server 326 may also include I/O device 342. The I/O devices 342 may be similar to I/O devices 318 of computer systems 302. The server 326 may further include other devices 344, such as a monitor or the like to provide an interface along with the I/O devices 342 to the server 326. The server 326 may also include a hard disk drive 346. A system bus 348 may connect the different components of the server 326. A network interface 350 may couple the server 326 to the network 328 via the system bus 348.
The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art appreciate that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown and that the invention has other applications in other environments. This application is intended to cover any adaptations or variations of the present invention. The following claims are in no way intended to limit the scope of the invention to the specific embodiments described herein.