GB2336083A - Computer method and system for object management - Google PatentsComputer method and system for object management Download PDF
- Publication number
- GB2336083A GB2336083A GB9901379A GB9901379A GB2336083A GB 2336083 A GB2336083 A GB 2336083A GB 9901379 A GB9901379 A GB 9901379A GB 9901379 A GB9901379 A GB 9901379A GB 2336083 A GB2336083 A GB 2336083A
- United Kingdom
- Prior art keywords
- network site
- local network
- object data
- graphical objects
- Prior art date
- Legal status (The legal status 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 status listed.)
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
1 1 2336083 COMPUTER METHOD AND SYSTEM FOR OBJECT MMAGEMENT The present
invention relates to computer systems, and in particular to the management of objects in such systems, for example for a graphical user interface.
The development of computerized information resources, such as remote networks, allows users of data-processing systems to link with other servers and networks, and thus retrieve vast amounts of electronic information heretofore unavailable in an electronic medium. Such electronic information is increasingly displacing more conventional means of information transmission, such as newspapers, magazines, and even television.
In communications, a set of computer networks which are possibly dissimilar from one another are joined together by "gateways" that handle data transfer and the conversion of messages from the sending network to the protocols used by the receiving network, with packets if necessary. A gateway is a device used to connect dissimilar networks (i.e., networks utilizing different communication protocols) so that electronic information can be passed from one network to the other. Gateways transfer electronic information, converting such information to a form compatible with the protocols used by the second network for transport and delivery.
One type of remote network commonly utilized in recent years is the Internet. The term "Internet" is an abbreviation for "Internetwork," and refers commonly to the collection of networks and gateways that utilize the TCP/IP suite of protocols, which are well-known in the art of computer networking. TCP/IP is an acronym for "Transport Control Protocol/Interface Program," a software protocol developed by the Department of Defense for communication between computers. The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers executing networking protocols that allow users to interact and share information over the networks. Because of such wide-spread information sharing, remote networks such as the Internet have thus far generally evolved into an "open" system for which developers can design software applications for performing specialized operations or services, essentially without restriction.
Electronic information transferred between data-processing networks is usually presented in hypertext, a metaphor for presenting information in a manner in which text, images, sounds, and actions become linked together in a complex non-sequential web of associations that permit the user to "1-)rowse" or "navigate" through related topics, regardless of the is 2 presented order of the topics. These links are often established by both the author of a hypertext document and by the user, depending on the intent of the hypertext document. For example, traveling among links to the word "iron" in an article displayed within a Graphical User Interface in a data-processing system might lead the user to the periodic table of the chemical elements (i.e., linked by the word "iron"), or to a reference to the use of iron in weapons in Europe in the Dark Ages. The term "hypertext" was coined in the 1960s to describe documents, as presented by a computer, that express the nonlinear structure of ideas, as opposed to the linear format of books, film, and speech.
The term "hypermedia," on the other hand, more recently introduced, is nearly synonymous with "hypertext" but focuses on the nontextual components of hypertext, such as animation, recorded sound, and video. Hypermedia is the integration of graphics, sound, video, or any combination thereof into a primarily associative system of information storage and retrieval. Hypermedia, as well as hypertext, especially in an interactive format where choices are controlled by the user, is structured around the idea of offering a working and learning environment that parallels human thinking -- that is, an environment that allows the user to make associations between topics rather than move sequentially from one to the next, as in an alphabetic list. Hypermedia, as well as hypertext topics, are thus linked in a manner that allows the user to jump from one subject to other related subjects during a search for information. Hyper-link information is contained within hypermedia and hypertext documents, which allows a user to move back to "original" or referring network sites by the mere "click" (i.e., with a mouse or other pointing device) of the hyper-linked topic.
A typical networked system that utilizes hypertext and hypermedia conventions follows a client/server architecture. The "client" is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process (i.e., roughly a program or task) that requests a service provided by another program. The client process utilizes the requested service without having to "know" any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer (i.e., a server).
A request by a user for news can be sent by a client application program to a server. A server is typically a remote computer system accessible over a remote network such as the Internet. The server scans and searches for raw (e.g., unprocessed) information sources (e.g., newswire feeds or newsgroups). Based upon such requests by the user, the 3 server presents filtered electronic information as server responses to the client process. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
Client and server can communicate with one another utilizing the functionality provided by Hypertext-Transfer Protocol (HTTP). The World Wide Web (WMA7) or, simply, the "web," includes those servers adhering to this standard (i.e., HTTP) which are accessible to clients via a computer or data-processing system network address such as a Universal Resource Locator (URL). The network address can be referred to as a Universal Resource Locator address. For example, communication can be provided over a communications medium. In particular, the client and server may be coupled to one another via Serial Line Internet Protocol (SLIP) or TCP/IP connections for high-capacity communication. Active within the client is a first process, known as a "browser," which establishes the connection with the server and presents information to the user. The server itself executes corresponding server software which presents information to the client in the form of HTTP responses. The HTTP responses correspond to "web pages constructed from a Hypertext Markup Language (HTML), or other server-generated data. Each web page can also be referred to simply as a "page."
Key to the development of such web pages has been the use of objectoriented programming languages. Object oriented-programming is a method for structuring programs as hierarchically organized classes describing the data and operations of objects that interact with other objects. One such object-oriented programming language that is currently utilized in the programming arts a great deal is "Java," developed by Sun Microsystems, Inc. Java is similar to the C++ programming language well known in the programming arts. Java, however, is a smaller and more portable programming language than the C++ programming languageProgrammers typically find Java easier to use than the C++ programming language because Java can manage memory on its own. Because programs written in Java are typically compiled into byte-codes, which are similar to machine code but not dedicated to any specific platform, Java can run on any platform (that includes a Java virtual machine), which makes the Java programming language useful for programming World Wide Web applications.
The client and server typically display browsers and other remote network data for a user via a Graphical User Interface. A Graphical User Interface (GUI) is a type of display format that enables a user to choose commands, start programs, and see lists of files and other options by E 4 pointing to pictorial representations (icons) and lists of menu items on the screen. Choices can be activated generally either with a keyboard or a mouse. Internet services are typically accessed by specifying a unique network address (i.e., Universal Resource Locator). The Universal Resource Locator address has two basic components, the protocol to be used and the object pathname. For example, the Universal Resource Locator address, "http://www.uspto.gov" (i.e., home page for the U.S. Patent and Trademark Office), specifies a hypertext-transfer protocol (11http") and a pathname of the server ("www.uspto.gov"). The server name is associated with a unique numeric value (TCP/IP address).
The evolution of personal computers over the last decade has accelerated the web and Internet toward useful everyday applications. Nearly every computer sold over the last several years has or will, at some point, become "on-line" to an Internet service provider. Somewhere between 20 and 30 million people around the globe use some form of Internet service on a regular basis. The graphical portion of the World Wide Web itself is usually stocked with more than twenty-two million "pages" of content, with over one million new pages added every month.
Free or relatively inexpensive computer software applications such as Internet "search engines" make it simple to track down sites where an individual can obtain information on a topic of interest. A person may type in a subject or key word and generate a list of network sites (i.e., web sites). Thus, with "home pages" published by thousands of companies, universities, government agencies, museums, and municipalities, the Internet can be an invaluable resource. With a little practice, even new users can skim millions of web pages or thousands of newsgroups, not only for topics of general interest, but also to access precise bits of data. The market for Internet access and related applications is explosive and is growing faster than expected, doubling in size approximately every three months.
A class of Java applications that are GUI intensive and change screen context, often suffer from poor performance response. This performance degradation is due to the fact that for each screen context displayed to the user, a new set of GUI objects are generated and displayed on the screen. The performance degradation observed is directly proportional to the number of GUI components generated for each screen context. The traditional methodology for presenting Java GUI objects involves instantiating new GUI components as needed and subsequently disposing of such components or objects via so-called "garbage collector" programs, well-known in the programming arts, which run in the background as part of a Java Virtual Machine (JVM) that handles resource/object deallocation.
Accordingly, the invention provides a method in a computer network for the management of graphical objects displayed within a graphic interface of a computer at a local network site linked to a remote network site containing object data, comprising the steps of: providing a list of preinstantiated graphical objects which may be displayed within a graphic interface at the local network site; invoking a link from said local network site to the remote network site such that upon successful invocation of said link, object data may be generated from data maintained at said remote network site and thereafter displayed within said graphic interface at said local network site; determining whether corresponding object data is contained within said list of pre- instantiated graphical objects, in response to invoking said link; retrieving said corresponding object data from said list of preinstantiated graphical objects in lieu of generating said object data from said remote network site, if said corresponding object data is identified within said list of pre-instantiated graphical objects; and displaying said corresponding object data within said graphic interface at said local network site, in response to retrieving said corresponding object data from said list of pre-instantiated graphical objects.
It is preferred that said method further comprises the step of storing at said local network site said list of pre-instantiated graphical objects, wherein the step of storing at said local network site said list of preinstantiated graphical objects comprises storing within a directory of a data processing system at said local network site, said list of preinstantiated graphical objects.
It is also preferred that the step of providing a list of preinstantiated graphical objects which may be displayed within a graphic interface at a local network site comprises providing a list of preinstantiated graphical objects comprising predefined graphical user interface objects such that said predefined graphical user interface objects may be displayed within a graphical user interface at a local network site.
It is further preferred that the step of displaying said corresponding object data within said graphic interface at said local network site comprises displaying said corresponding object data within a browser at said local network site, in response to retrieving said corresponding object data from said list of predefined graphical user interface objects.
1 6 The invention further provides a system in a computer network for the management of graphical objects displayed within a graphic interface of a computer at a local network site linked to a remote network site containing object data, said system comprising: means for providing a list of pre-instantiated graphical objects which may be displayed within a graphic interface at the local network site; means for invoking a link from said local network site to the remote network site such that upon successful invocation of said link, object data may be generated from data maintained at said remote network site and thereafter displayed within said graphic interface at said local network site; means for determining whether corresponding object data is contained within said list of pre-instantiated graphical objects, in response to invoking said link; means for retrieving said corresponding object data from said list of pre-instantiated graphical objects in lieu of generating said object data from said remote network site, if said corresponding object data is identified within said list of pre-instantiated graphical objects; and means for displaying said corresponding object data within said graphic interface at said local network site, in response to retrieving said corresponding object data from said list of pre-instantiated graphical objects.
The invention further provides a program product for loading into computer memory in a computer in a computer network for the management of graphical objects displayed within a graphic interface of a computer at a local network site linked to a remote network site containing object data, said program product comprising: instructions means for providing a list of pre-instantiated graphical objects which may be displayed within a graphic interface at the local network site; instruction means for invoking a link from said local network site to the remote network site such that upon successful invocation of said link, object data may be generated from data maintained at said remote network site and thereafter displayed within said graphic interface at said local network site; instruction means for determining whether corresponding object data is contained within said list of pre-instantiated graphical objects, in response to invoking said link; instruction means for retrieving said corresponding object data from said list of pre-instantiated graphical objects in lieu of generating said object data from said remote network site, if said corresponding object data is identified within said list of preinstantiated graphical objects; and 7 instruction means for displaying said corresponding object data within said graphic interface at said local network site, in response to retrieving said corresponding object data from said list of preinstantiated graphical objects.
The invention further provides an object manager for use in an object oriented program environment, comprising: means for instantiating an object from a class file; means for providing said object in response to a first request to instantiate said class file; means for receiving back said object; and means for providing said object in response to a second request to instantiate said class file.
is Preferably, said object comprises an object used in providing a graphical user interface, and said object oriented program environment comprises the Java environment.
Such an approach allows an improved information-retrieval method and system, particularly in association with Graphical User Interfaces, and the management of objects therein.
Thus the management of graphical objects displayed within a graphic interface of a data-processing system at a local network site linked to a remote network'site may be achieved by initially compiling a list of preinstantiated graphical objects which may be displayed within the graphic interface at the local network site. A link is then invoked from the local network site to a remote network site containing object data, such that upon successful invocation of the link, object data may be generated from data maintained at the remote network site and thereafter displayed within the graphic interface at the local network site. Next, a determination is made whether corresponding object data is contained within the list of pre-instantiated graphical objects, in response to invoking the link. The corresponding object data is then retrieved from the list of pre-instantiated graphical objects in lieu of generating the object data from the remote network site, if the corresponding object data is identified within the list of pre-instantiated graphical objects. The corresponding object data is finally displayed within the graphic interface at the local network site, in response to retrieving the corresponding object data from the list of pre-instantiated graphical objects. In this manner, overall performance degradation in retrieving graphical objects from remote network sites may be decreased due to the presence of pre-instantiated graphical objects which may be readily displayed at a local network site, as opposed to creating new objects for display.
is 8 The approach described herein addresses the performance degradation inherent with the creation/disposition and recreation of similar Java objects utilized in the same Java application context. An improved information-retrieval method and system is provided, in particular, with regard to Graphical User Interfaces and the management in a computer network of objects displayed within Graphical User Interfaces.
This offers an improvement in the time and performance in displaying web pages, which is an asset to fast growth technology such as the so-called "Internet" and World Wide Web. An improvement in presenting GUI objects and components also lends itself to improving the efficiency and performance of web-based applications. Decreasing the performance degradation associated with presented Java GUI objects and components is particularly beneficial for today's web programmers.
A preferred embodiment of the invention will now be described in detail by way of example only with reference to the following drawings:
FIG. 1 is a pictorial representation of a data-processing system; FIG. 2 depicts a representative hardware environment of a computer system; FIG. 3 illustrates a block diagram illustrative of a client/server architecture; FIG. 4 depicts a detailed block diagram illustrative of a client/server architecture; FIG. 5 is a diagram illustrative of a computer network; FIG. 6 illustrates a hypertext document contained within a Graphical User Interface window; and FIG. 7 depicts a flowchart of operations illustrating a method for the management of Graphical User Interface objects, in accordance with a preferred embodiment of the present invention.
With reference now to the figures and in particular with reference to FIG. 1, there is depicted a pictorial representation of a computer system 20 that includes a system unit 22, a video display 24, a keyboard 26, and a mouse 28. Computer system 20 can be implemented utilizing any suitable computer such as the AS/400 computer system, IBM SYSTEM RISC/6000, or a personal computer. The AS/400 computer system and the IBM SYSTEM RISC/6000 are products of International Business Machines Corporation, located in Armonk, N.Y. Although the depicted embodiment involves a personal computer, a preferred embodiment of the present invention can be implemented in other types of data-processing systems, such as, for example, intelligent workstations or mini-computers. Computer system 20 includes a Graphical User Interface (GUI) that resides within a machinereadable media to direct the operation of computer system 20. Those skilled in the art will appreciate that the method and system of the present invention apply equally to any computer system, - 1 is 9 regardless of whether the computer system is a complicated multi-user computing apparatus or a single-user workstation.
Keyboard 26 is that part of computer system 20 that resembles a typewriter keyboard and which enables a user to control particular aspects of the computer. Because information flows in one direction, from keyboard 26 to system unit 22, keyboard 26 functions as an inputonly device. Functionally, keyboard 26 represents half of a complete input/output device, the output half being video display 24. Keyboard 26 includes a standard set of printable characters presented in a QWERTY pattern typical of most typewriters. In addition, keyboard 26 may include a calculator-like numeric keypad at one side and additional specialized keys. Some of these keys, such as the "Control," 'Alt,' and "Shift" keys may be utilized to change the meaning of another key. Other special keys and combinations of keys can be utilized to control program operations or to move either text or cursor on the display screen of video display 24.
Mouse 28 is a commonly utilized pointing device. The basic features of a typical mouse include a casing with a flat bottom that is designed to be gripped by one human hand. A typical mouse also includes one or more buttons located atop the mouse, and a multidirectional detection device (e.g., usually a ball) located on the bottom of the mouse. A cable 29 connects mouse 29 to a computer such as computer system 20. By moving mouse 28 on a surface (e.g, a desk surface or a mouse pad), the user typically controls an onscreen cursor. Such a mouse is a relative pointing device, because the mouse's movement is not defined by limitations, and also because its placement on a surface does not map directly to a specific location on a computer screen. Generally, to select items or choose commands on a screen displayed GUI, the user presses one or more mouse buttons, producing a so-called mouse "click."
The mouse can be utilized to manipulate a mouse pointer which is an onscreen element whose location changes as the user moves the mouse. Depending on the location of the mouse pointer and the operation of the program with which it is working, the area of the screen where the mouse pointer appears serves as the target for an action when the user presses one of the mouse buttons. Although mouse 28 is described as a pointing device which may be utilized in accordance with a preferred embodiment of the present invention, those skilled in the art will appreciate that other pointing devices can also be utilized.
FIG. 2 depicts a representative hardware environment of a computer system in accordance with a preferred embodiment of the present invention. System unit 22 includes a Central Processing Unit ("CPU") 31, is I such as a conventional microprocessor, and a number of other units interconnected via system bus 32. Computer system 20 includes randomaccess memory PRAM") 34, readonly memory PROM") 36, display adapter 37 for connecting system bus 32 to video display 24, and I/0 adapter 39 for connecting peripheral devices such as disk and tape drives 33 to system bus 32.
Disk and tape drives 33 are electro-mechanical devices that read from and write to disks. The main components of a disk drive include a spindle on which the disk is mounted, a drive motor that spins the disk when the drive is in operation, one or more read/write heads that perform the actual reading and writing, a second motor that positions the read/write heads over the disk, and controller circuitry that synchronizes read/write activities and transfers information to and from computer system 20. A disk itself is typically a round, flat piece of flexible plastic (e.g., floppy disk) or inflexible metal (e.g. hard disk) coated with a magnetic material that can be electrically influenced to hold information recorded in digital (i.e., binary) form. A disk is, in most computers, the primary method for storing data on a permanent or semipermanent basis. Because the magnetic coating of the disk must be protected from damage and contamination, a floppy (e.g., 5.25 inch) disk or micro-floppy (e.g., 3.5 inch) disk is encased in a protective plastic Jacket. A hard disk, which is very finely machined, is typically enclosed in a rigid case and can be exposed only in a dust free environment.
Video display 24 is the visual output of computer system 20. Video display 24 can be, for example, a CRT-based video display well-known in the art of computer hardware. "CRT" is an acronym for cathode-ray tube. With a portable or notebook-based computer, video display 24 can be replaced with an LCD-based or a gas plasma-based flat-panel display... L=' is an acronym for liquid crystal display. Those skilled in the art can thus appreciate that computer system 20 may be implemented as a notebook-based computer. Computer system 20 further includes user interface adapter 40 for connecting keyboard 26, mouse 28, speaker 46, microphone 48, and/or other user interface devices, such as a touch screen device (not shown), to system bus 32. Communications adapter 49 connects computer system 20 to a computer network. Although computer system 20 is shown to contain only a single CPU and a single system bus, it should be understood that the present invention applies equally to computer systems that posses multiple CPUs and to computer systems that include multiple buses that each perform different functions in different ways.
Computer system 20 also includes a GUI that resides within a machinereadable media to direct the operation of computer system 20.
11 Any suitable machine-readable media may retain the GUI, such as RAM 34, ROM 36, a magnetic diskette, magnetic tape, or optical disk (the last three being located in disk and tape drives 33). Any suitable operating system and associated GUI (e.g., Microsoft Windows) may direct CPU 31. For example, the AIX operating system and AIXwindows windowing system (i. e., GUI) can direct CPU 31. The AIX operating system is an implementation by IBM Corporation of the UNIX operating system. Other technologies can also be utilized in association with CPU 31, such as touch-screen technology or human voice control. Those skilled in the art will appreciate that the hardware depicted in FIG. 2 may vary for specific applications. For example, other peripheral devices such as optical disk media, audio adapters, or chip-programming devices, such as PAL or EPROM programming devices well-known in the art of computer hardware, and the like may be utilized in addition to or in place of the hardware already depicted.
Main memory 50 is connected to system bus 32, and includes a control program 51 that resides within main memory 50 and contains instructionsthat when executed on CPU 31, carry out the operations depicted in the logic flow chart described herein. The control program can be commercially exploited as a computer program product in a variety of forms, for example, as stored on recordable-type media, such as floppy disks, hard disk drives and CD ROMs.
In FIG. 3, FIG. 4, and FIG. 5, like parts are indicated by like numbers. FIG. 3 illustrates a block diagram illustrative of a client/server architecture which can be utilized in accordance with the method and system of the present invention. In FIG. 3, user requests 91 for news are sent by a client application program 92 to a server 89. Server 88 can be a remote computer system accessible over a remote network such as the Internet. Server 89 performs scanning and searching of raw (e.g., unprocessed) information sources (e.g., newswire feeds or newsgroups) and, based upon these user requests, presents the filtered electronic information as server responses 93 to the client process. The client process may be active in a first computer system, and the server process may be active in a second computer system and communicate with the first computer system over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
FIG. 4 illustrates a detailed block diagram of a client/server architecture which can be utilized in accordance with the method and system of the present invention. Although the client and server are processes which are operative within two computer systems, these processes being generated from a high-level programming language (e.g., PERL), which is interpreted and executed in a computer system at run-time 12 (e.g., a workstation), it can be appreciated by one skilled in the art that they may be implemented in a variety of hardware devices, either programmed or dedicated.
1 11 - 45 1 Client 92 and server 88 communicate using the functionality provided by HTTP. Active within client 92 is a first process, browser 72, which establishes the connections with server 88, and presents information to the user. Such browsers are often referred to in the art of computer networking as "web browsers." Any number of commercially or publicly available browsers may be utilized in accordance with a preferred embodiment of the present invention. For example, the Mosaicbrand browser available from the National Center for Supercomputing Applications (NCSA) in Urbana-Champaign, Illinois, can be utilized with a preferred embodiment of the present invention. Other browsers, such as Netscape, Netcruiser, or the Lynx-brand browsers or others which are available and provide the functionality specified under HTTP can be utilized with the present invention.
Server 88 executes the corresponding server software which presents information to the client in the form of HTTP responses 90. The HTTP responses 90 correspond with web "pages," which can be represented by utilizing Hypertext Markup Language (HTML), or other data generated by server 88. For example, under the Mosaic-brand browser, in addition to HTML functionality 94 provided by server 88, a Common Gateway Interlace (CGI) 96 is provided which allows the client program to direct server 88 to commence execution of a specified program contained within server as. This may include a search engine which scans received information in the server for presentation to the user controlling the client. Using this interface, and HTTP responses 90, the server may notify the client of the results of that execution upon completion. Common Gateway Interlace (CGI) 96 is one form of a "gateway," a device utilized to connect dissimilar networks (i.e., networks utilizing different communication protocols) so that electronic information can be passed from one network to the other. Gateways transfer electronic information, converting such information to a form compatible with the protocols used by the second network for transport and delivery.
In order to control the parameters of the execution of this serverresident process, the client may direct the filling out of certain "forms" from the browser. This is provided by the 'fill-in-formsl' functionality (i.e., forms 98), which is provided by some browsers, such as the Mosaic brand browser described herein. This functionality allows the user via a client application program to specify terms in which the server causes an application program to function (e.g., terms or keywords contained in the types of stories/articles which are of interest to the user).
13 FIG. 5 is a diagram illustrative of a computer network 80 which can be implemented in accordance with the method and system of the present invention. Computer network 90 is representative of a remote network, specifically the Internet, a known computer network based on the clientserver model discussed earlier. Conceptually, the Internet includes a large network of servers 98 which are accessible by clients 92, typically users of personal computers, through some private Internetaccess provider 84 (e.g., such as Internet America) or an on-line service provider 86 (e.g., such as America On-Line, Prodigy, Compuserve, and the like). Each of the clients 92 may run a browser, a known software tool utilized to access servers 88 via the access providers 84. Each server 88 operates a web site which supports files in the form of documents and pages. A network path to servers 88 is identified by a Universal Resource Locator having a known syntax for defining a network collection.
FIG. 6 illustrates an example hypertext document 123 contained within a Graphical User Interface window 104 which can be utilized in accordance with the method and system of the present invention. Window 104 displays a portion of a hypertext document 123 constructed from a mark-up language, such as Hypertext Mark-up Language (HTML). The size and position of elevator 120 within scroll bar 116 corresponds to the size and position of the current viewable page in relation to hypertext document 123. Hypertext document 123 can be accessed from a dataprocessing system contained within a remote network, such as the Internet.
In the example of FIG. 6, in view of the fact that hypertext document 123 includes too many pages to view simultaneously, the user can position a mouse cursor over up-arrow section 106 or down-arrow section 108 of scroll bar 116 and click a pointing device (e.g., a mouse) to scroll hypertext document 123 upward or downward, as appropriate. A vertical scroll bar 118 includes arrow section 112 and arrow section 110 for scrolling hypertext document 123 respectively left or right. Also, an optional arrow section 114 allows a user to scroll the document right. Thus, the GUI that contains window 104 and hypertext document 123 is a type of computer display format that enables a user to choose commands, start programs, and see lists of files and other options by pointing to pictorial representations (i.e., icons) and lists of menu items on the screen. Choices can generally be activated either with a keyboard or a mouse.
Hypertext document 123 contains specific string text 124 rendered on the screen by the GUI to stand out from the surrounding text. String text 124 is rendered in a different format. In the example of FIG. 6, string text 124 is rendered as IBM. The different font format of string text 124 is an indication that the text is hyper-linked to "jump" to 14 another document. When a user "clicks" on string text 124 with a mouse or other pointing device, the GUI shifts the presently viewed hypertext document 123 to another hyper-linked document. Window 104 of FIG. 6 includes graphic objects (e.g., scroll bar 118 and associated graphical butttons), which can thereafter be locally instantiated according to the process described herein related to FIG. 7.
FIG. 7 depicts a flowchart of operations 140 illustrating a method for the management of GUI objects for operating a computer, such as computer system 20 of FIG. 1 and FIG. 2, in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
The flowchart described herein implements a Java Object Manager, whose purpose it is to manage a set of reusable GUI components that a Java application must possess in order to successively display screen contexts which utilize a similar set of components. In essence, an interface is constructed between the application and a set of Java classes that comprise an Object Manager functionality. The application, instead of calling a "new" operation in order to instantiate new GUI components followed by "add" to add the component to the layout manager and then followed by a "setLocation" to set the location of the component in the screen context, calls instead an "add<object>" interface API to the Object Manager, which in turn returns an instance to the specific object that the application requires.
Several keywords are of particular importance to the discussion provided herein. The keyword type is used when qualifying a particular instance. For example, if a class is named Button, one can instantiate the class Button and generate an instance of type Button. An instance of type class can be generally referred to as an object. The word object can also be utilized generically (e.g., a set of pre-instantiated graphical objects). The phrase screen context" as utilized herein refers to a typical rendering of graphical objects on the screen. For example, in referring to the screen context of the Netscape browser, reference is also made to all graphical objects that are enclosed within an outline border that defines the Netscape browser (i.e., the menu bars on top, the buttons that allow the user to navigate forward and backwards through the list of pages that have been visited, etc).
A "class", in object-oriented programming, is a generalized template that describes the various parameters of a particular object. The "class" in itself has no other useful function other than to define the parameters that make this "class" unique. Instantiating a "class" generates an instance of type "class" that has specific values for the various "class" parameters. For example, a graphical "class" in a GUI is is context may define parameters such as the position of the object on the screen, its width, its height, its background and foreground colors, and so forth. An instantiation of the "graphical" class is then an object that defines specific values for the class parameters. For example, the position of the graphical object may be at (0,0), its width 30 units of measurement, its height 10 units of measurement, its background color black and its foreground color white.
The server (i.e., remote network site) is contacted for data that must necessarily be displayed within the context of a pre-instantiated object. However, the server is not contacted for any information regarding the actual instantiation of a graphical object that is not contained in the collection or list of pre-instantiated graphical objects described herein. Those skilled in the art will appreciate that the browser does not have any knowledge of the Object Manager. The Object Manager can only be implemented within the context of a Java program. A browser can load and execute a Java program (i.e., referred to as an "applet" in published literature) and the Java program is then responsible for the actual object management.
Thus, as depicted at block 142, the process begins. As illustrated at block 144, the application instantiates the Object Manager. Note that the Object Manager is an object itself that provides one basic service: returning a preinstantiated graphical object to the caller program. As elaborated herein, these services are requested by programs that need to construct graphical screen contexts. Thereafter, as described at block 146, the Object Manager obtains the definition and the number of the various objects to be managed from a configuration file. The Object Manager, as shown in block 148, then instantiates the collection of the various objects obtained in block 146. Such a collection of objects can, for example, include graphic objects such as scroll bar 118 of FIG. 6 and any graphic buttons. As illustrated at block 150, the execution of the GUI program commences. As depicted at block 152, the first and all subsequent GUI screen contexts are constructed. At this point, the program calls the Object Manager to obtain an instance of the desired graphical objects. With the absence of the Object Manager, a program that desires to place a "button" as part of its screen context will typically execute the following lines:
Button rnyButton = new Button('1A button") add(myButton); set:Location(x,y) The first line described above instantiates an object of type "Button" and the second line "adds" this new object to the screen layout manager. The third line described above positions the new graphical is 1 40 g 16 object to an appropriate position on the screen. The first two operations are expensive in terms of performance because a new resource is being generated and managed from scratch. The statements listed above can be replaced by one call to the object Manager as follows:
1 oin.AddButt:on(x,y, "A button"); Note that om stands for the instantiated Object Manager. The above listed call to the Object Manager achieves the same results as far as the program is concerned: an instance of the class Button is returned back to the program with the label "A button" position at x,y. The significant difference here is that the manager will return back a preinstantiated Button class object to the program from a pool of available Button instances that are already being managed (i.e., optionally) by a layout manager.
As illustrated at block 154, the screen context displayed on the screen will typically await for some user input via the keyboard or mouse. At some point the user will instruct the program to process the new information. At that point, as depicted at block 156, the program informs the Object Manager that the current screen context will no longer be needed. The Object Manager will then mark the currently used objects as "about to be released." If the program does not terminate at this point, as depicted at block 158, the program then creates a new screen context which is based on information provided by the user. This new screen context includes graphical objects that have been utilized before, and all objects will be obtained by the Object Manager, as illustrated at block 152.
The Object Manager can optionally be utilized in association with a customized layout manager. In an alternative preferred embodiment of the present invention, a modified BorderLayout layout manager (i.e., one of the standard Java layout managers) can be implemented. Such a layout manager (i.e., referred to as a 'Blayout" layout manager) has two Center display panels (as opposed to one in BorderLayout). Only one of the two Blayout center display panels need be displayed at any one time. While one of the two center display panels is displayed, the other one can be manipulated in a background thread enhancing the performance of displaying successive screen displays.
Based on the foregoing, those skilled in the art will appreciate that a preferred embodiment of the present invention that provides the "smart" reuse of pre-instantiated graphical objects can be implemented solely on the client (i.e., a local network site). A computer implementation of a preferred embodiment of the present invention may be located as a program product within a memory of such a client. If an 17 object is required and is not found in a "predefined" list, the object is not necessarily retrieved from the server. The server may be contacted by the client for data that would need to be displayed within the context of a pre-instantiated object. However, the server is not contacted for information regarding the actual instantiation of a graphical object that is not included in the list of pre-instantiated graphical objects.
While the invention has been particularly shown as described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes may be made therein without departing from the scope of the invention. For example, the present invention is applicable to other communication networks besides the Internet, including so-called 'intranets" (i.e., networks that are internal to particular organizations) and extranets (the Internet, as described herein, being merely one example of a remote network that can be utilized). It will also be appreciated that the same approach can be utilised when running locally installed Java applications (i.e. the invention is not limited to use with Java applets that have been downloaded over a network). Further, the invention is not limited to the Java programming language, but could be employed with any other objectoriented language with analogous properties to Java.
is i A 1 45 18
Priority Applications (1)
|Application Number||Priority Date||Filing Date||Title|
|Publication Number||Publication Date|
|GB9901379D0 GB9901379D0 (en)||1999-03-10|
|GB2336083A true GB2336083A (en)||1999-10-06|
Family Applications (1)
|Application Number||Title||Priority Date||Filing Date|
|GB9901379A Withdrawn GB2336083A (en)||1998-02-06||1999-01-25||Computer method and system for object management|
Country Status (2)
|JP (1)||JPH11345204A (en)|
|GB (1)||GB2336083A (en)|
|Publication number||Priority date||Publication date||Assignee||Title|
|US5500802A (en) *||1994-05-31||1996-03-19||Morris; James M.||System and method for creating configurators using templates|
|US5715413A (en) *||1996-06-25||1998-02-03||International Business Machines Corporation||Dragging and dropping with an instantiation object|
|WO1998044438A1 (en) *||1997-03-31||1998-10-08||Sun Microsystems, Inc.||Java-to-database connectivity server|
Patent Citations (3)
|Publication number||Priority date||Publication date||Assignee||Title|
|US5500802A (en) *||1994-05-31||1996-03-19||Morris; James M.||System and method for creating configurators using templates|
|US5715413A (en) *||1996-06-25||1998-02-03||International Business Machines Corporation||Dragging and dropping with an instantiation object|
|WO1998044438A1 (en) *||1997-03-31||1998-10-08||Sun Microsystems, Inc.||Java-to-database connectivity server|
Non-Patent Citations (2)
|Web page: 'Learn Java Here' @ URL: wysiwyg://61/http://www.news400.com/ *|
Also Published As
|Publication number||Publication date|
|Richardson et al.||Virtual network computing|
|EP0976052B1 (en)||An apparatus and method for retrieving information using standard objects|
|US6564270B1 (en)||Isolating client application requests for device services through an object-oriented service stack system|
|US6613100B2 (en)||Method and apparatus for displaying miniaturized graphical representations of documents for alternative viewing selection|
|US7367014B2 (en)||System and method for XML data representation of portlets|
|US8626829B2 (en)||System and method for delivering remotely stored applications and information|
|US6421065B1 (en)||Access of online information featuring automatic hide/show function|
|US6757706B1 (en)||Method and apparatus for providing responses for requests of off-line clients|
|JP3258263B2 (en)||Method and apparatus for providing a browser capable of maintaining a plurality of url simultaneously active|
|US7665032B2 (en)||Sidebar engine, object model and schema|
|US6567103B1 (en)||Graphical search results system and method|
|Galitz||The essential guide to user interface design: an introduction to GUI design principles and techniques|
|US5848246A (en)||Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system|
|US6133916A (en)||Graphical user interface providing access to files downloaded over a network|
|US7543299B2 (en)||Creating web services programs from other web services programs|
|JP3762687B2 (en)||System and method for dynamically display Html form elements|
|US8055685B2 (en)||System and method for real-time content aggregation and syndication|
|Kurniawan||Java for the Web with Servlets, JSP, and EJB|
|US6523022B1 (en)||Method and apparatus for selectively augmenting retrieved information from a network resource|
|US6546002B1 (en)||System and method for implementing an intelligent and mobile menu-interface agent|
|US7089278B1 (en)||Anchored conversations: adhesive, in-context, virtual discussion forums|
|US5768510A (en)||Object-oriented system, method and article of manufacture for a client-server application enabler system|
|Vetter et al.||Mosaic and the world wide web|
|EP0937288B1 (en)||Method and apparatus for organizing and processing information using a digital computer|
|US5862395A (en)||Customizable user interfaces for programmed computer systems|
|WAP||Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)|