The present invention provides a method and apparatus for configuration using a portable electronic configuration device. The portable device is attached to an unconfigured electronic device. The portable device causes the unconfigured device to send configuration data to a coupled device. The coupled device uses the data to configure the unconfigured device.
|
3. A method for configuring a device comprising:
designating a primary display unit; obtaining a size and dimensions of a multi-headed display; attaching a portable configuration device to a secondary display unit, wherein said portable configuration device is configured to cause said secondary display unit to send one or more configuration data items to a server coupled to said secondary display unit; and configuring said secondary display unit by said server using said configuration data items; wherein said primary and secondary display units are configured by said server as part of said multi-headed display; and wherein said multi-headed display is part of a thin client topology for displaying a persistent thin client session.
1. A method for configuring a device comprising:
designating a primary display unit; obtaining a size and dimensions of a multi-headed display; attaching a portable configuration device to a secondary display unit, wherein said portable configuration device is configured to cause said secondary display unit to send one or more configuration data items to a server coupled to said secondary display unit; and configuring said secondary display unit by said server using said configuration data items; wherein said primary and secondary display units are configured by said server as part of said multi-headed display; and wherein said secondary display unit is configured by said server with said primary display unit in accordance with a fixed topological ordering.
7. A configuration device comprising:
a first display unit wherein said first display unit is to be configured; a second display unit having a controlling user interface for a multi-headed display; a server wherein said server couples to said first display unit wherein said server is configured to configure said first display unit using one or more configuration data items; and a portable configuration device wherein said portable configuration device is attached to said first display unit wherein said portable configuration device is configured to cause said first display unit to send said configuration data items to said server for configuring said first display unit; wherein said first and second display units are configured by said server as part of said multi-headed display; and wherein said multi-headed display is part of a thin client topology for displaying a persistent thin client session.
5. A configuration device comprising:
a first display unit wherein said first display unit is to be configured; a second display unit having a controlling user interface for a multi-headed display; a server wherein said server couples to said first display unit wherein said server is configured to configure said first display unit using one or more configuration data items; and a portable configuration device wherein said portable configuration device is attached to said first display unit wherein said portable configuration device is configured to cause said first display unit to send said configuration data items to said server for configuring said first display unit; wherein said first and second display units are configured by said server as part of said multi-headed display; and wherein said first display unit is configured by said server with said second display unit in accordance with a fixed topological ordering.
12. A computer program product comprising:
a computer usable medium having computer readable program code embodied therein configured for configuring a display unit, comprising: computer readable code configured to cause a computer to configure said display unit using one or more configuration data items at a server; and computer readable code configured to cause a computer to cause said display unit to transmit said configuration data items to said server when a portable configuration device is attached to said display unit; wherein said display unit is part of a multi-headed display and wherein one or more unconfigured display units of said multi-headed display are organized with said display unit at said server into one or more rows, further comprising computer readable code configured to cause a computer to configure said unconfigured display units with said display unit at said server in accordance with a fixed topological ordering. 4. The method of
8. The configuration device of
9. The configuration device of
10. The configuration device of
11. The configuration device of
13. The computer program product of
|
1. Field of the Invention
The present invention relates to the field of computer configuration, and in particular to a method and apparatus for configuration using a portable electronic configuration device.
Sun, Sun Microsystems, the Sun logo, Solaris and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks of SPARC International, Inc. in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
2. Background Art
When computing in a network, it is often the case that devices on the network are configured or re-configured to achieve a desired behavior. Current configuration schemes are inadequate, specifically when they require a user to manually enter complex configuration data. Before further discussing the drawbacks of current schemes, an application architecture where this problem typically occurs is described below.
In the multi-tier application architecture, a client communicates requests to a server for data, software and services, for example, and the server responds to the requests. The server's response may entail communication with a database management system for the storage and retrieval of data.
The multi-tier architecture includes at least a database tier that includes a database server, an application tier that includes an application server and application logic (i.e., software application programs, functions, etc.), and a client tier. The database server responds to application requests received from the client. The application server forwards data requests to the database server.
Further application functionality is provided by application logic managed by application server 120 in application tier 130. The apportionment of application functionality between client tier 100 and application tier 130 is dependent upon whether a "thin client" or "thick client" topology is desired. In a thin client topology, the client tier (i.e., the end user's computer) is used primarily to display output and obtain input, while the computing takes place in other tiers. A thick client topology, on the other hand, uses a more conventional general purpose computer having processing, memory, and data storage abilities. Database tier 140 contains the data that is accessed by the application logic in application tier 130. Database server 150 manages the data, its structure and the operations that can be performed on the data and/or its structure.
Application server 120 can include applications such as a corporation's scheduling, accounting, personnel and payroll applications, for example. Application server 120 manages requests for the applications that are stored therein. Application server 120 can also manage the storage and dissemination of production versions of application logic. Database server 150 manages the database(s) that manage data for applications. Database server 150 responds to requests to access the scheduling, accounting, personnel and payroll applications' data, for example.
Connection 160 is used to transmit data between client tier 100 and application tier 130, and may also be used to transfer the application logic to client tier 100. The client tier can communicate with the application tier via, for example, a Remote Method Invocator (RMI) application programming interface (API) available from Sun Microsystems™. The RMI API provides the ability to invoke methods, or software modules, that reside on another computer system. Parameters are packaged and unpackaged for transmittal to and from the client tier. Connection 170 between application server 120 and database server 150 represents the transmission of requests for data and the responses to such requests from applications that reside in application server 120.
Elements of the client tier, application tier and database tier (e.g., client 110, application server 120 and database server 150) may execute within a single computer. However, in a typical system, elements of the client tier, application tier and database tier may execute within separate computers interconnected over a network such as a LAN (local area network) or WAN (wide area network).
Computer systems typically must be configured to work properly. One aspect of configuration involves determining an address of a new device and instructing another device to communicate with the new device at its address. For example, a user may wish to instruct a computer system to display output on multiple display units, termed a "multi-headed" group. A prior art method requires a user to determine a hexadecimal number for each display unit and manually enter the number to configure the display properly. This process is unnatural to a person, difficult to perform and introduces the possibility of human error in configuring the display properly.
The multi-headed display of
The present invention provides a method and apparatus for configuration using a portable electronic configuration device. In one embodiment, the portable device is attached to an unconfigured electronic device. The portable device causes the unconfigured device to send configuration data to a coupled device. The coupled device, then, uses the data to configure the unconfigured device.
In one embodiment, the unconfigured device is a multi-headed display. A portable electronic configuration device is attached to each unconfigured display unit which is to be part of the multi-headed display. The portable device causes the unconfigured display unit to send configuration data to a coupled device. The coupled device uses the data to configure the unconfigured display unit.
In one embodiment, rows of display units in the multi-headed display have the same number of columns. In one embodiment, the rows of display units are configured top to bottom. In another embodiment, each row of display units is configured left to right. Other embodiments have other orderings for configuration of display units. In one embodiment, the multi-headed display is part of a thin client topology.
These and other features, aspects and advantages of the present invention will become better understood with regard to the following description, appended claims and accompanying drawings where:
The invention is a method and apparatus for configuration using a portable electronic configuration device. In the following description, numerous specific details are set forth to provide a more thorough description of embodiments of the invention. It is apparent, however, to one skilled in the art, that the invention may be practiced without these specific details. In other instances, well known features have not been described in detail so as not to obscure the invention.
One embodiment of the present invention configures electronic devices using a portable electronic configuration device. The portable device is attached to an unconfigured electronic device. The portable device causes the unconfigured device to send configuration data to a coupled central configuration device. The coupled central configuration device uses the data to configure the unconfigured device.
One embodiment of the present invention is used to configure a multi-headed display. A portable electronic configuration device is attached to each unconfigured display unit which is to be part of the multi-headed display. The portable device causes the unconfigured display unit to send configuration data to a coupled device. The coupled device, then, uses the data to configure the unconfigured display unit.
At step 540, the coupled device uses the data to configure the unconfigured display unit. At step 550, it is determined whether any unconfigured display units remain. If no unconfigured display units remain, at step 560, the multi-headed display is configured. If an unconfigured display unit remains, the process repeats at step 510.
In one embodiment, the display units of the multi-headed display form a rectangle. One embodiment requires the rows of display units be configured top to bottom. Another embodiment requires each row of display units to be configured left to right. Other embodiments have other orderings for configuration of display units.
In one embodiment, the display units are configured in accordance with a fixed topological ordering.
At step 630, a portable electronic configuration device is attached to the unconfigured display unit. At step 640, the portable device causes the unconfigured display unit to send configuration data to a coupled device. At step 650, the coupled device uses the data to configure the unconfigured display unit. At step 660, it is determined whether any unconfigured display units remain. If no unconfigured display units remain, at step 670, the multi-headed display is configured. If an unconfigured display unit remains, the process repeats at step 610.
If the process of
The functionality of the virtual desktop system is partitioned between a display and input device such as a remote system and associated display device, and data sources or services such as a host system interconnected to the remote system via a communication link. The display and input device is a human interface device (HID). The system is partitioned such that state and computation functions have been removed from the HID and reside on data sources or services. One or more services communicate with one or more HIDs through a communication link such as network. An example of such a system is illustrated in
The computational power and state maintenance is provided by the service providers or services. The services are not tied to a specific computer, but may be distributed over one or more traditional desktop systems such as described in connection with
Examples of services include X11/Unix services, archived or live audio or video services, Windows NT service, Java program execution service and others. A service herein is a process that provides output data and response to user requests and input. The service handles communication with an HID currently used by a user to access the service. This includes taking the output from the computational service and converting it to a standard protocol for the HID. The data protocol conversion is handled by a middleware layer, such as the X11 server, the Microsoft Windows interface, video format transcoder, the OpenGL interface, or a variant of the java.awt.graphics class within the service producer machine. The service machine handles the translation to and from a virtual desktop architecture wire protocol described further below.
Each service is provided by a computing device optimized for its performance. For example, an Enterprise class machine could be used to provide X11/Unix service, a Sun MediaCenter could be used to provider video service, and a Hydra based NT machine could provide applet program execution services.
The service providing computer system can connect directly to the HIDs through the interconnect fabric. It is also possible for the service producer to be a proxy for another device providing the computational service, such as a database computer in a three-tier architecture, where the proxy computer might only generate queries and execute user interface code.
The interconnect fabric can comprise any of multiple suitable communication paths for carrying data between the services and the HIDs. In one embodiment the interconnect fabric is a local area network implemented as an Ethernet network. Any other local network may also be utilized. The invention also contemplates the use of wide area networks, the Internet, the world wide web, and others. The interconnect fabric may be implemented with a physical medium such as a wire or fiber optic cable, or it may be implemented in a wireless environment.
The interconnect fabric provides actively managed, low-latency, high-bandwidth communication between the HID and the services being accessed. One embodiment contemplates a single-level, switched network, with cooperative (as opposed to completing) network traffic. Dedicated or shared communications interconnects maybe used in the present invention.
The HID is the means by which users access the computational services provided by the services.
A block diagram of an example embodiment of the HID is illustrated in FIG. 9. The components of the HID are coupled internally to a PCI bus 912. A network control block 902 communicates to the interconnect fabric, such as an Ethernet, through line 914. An audio codec 903 receives audio data on interface 916 and is coupled to network control block 902. USB data communication is provided on lines 913 to a USB controller 901. The HID further comprises an embedded processor 904 such as a Sparc2ep with coupled flash memory 905 and DRAM 906. The USB controller 901, the network controller 902 and the embedded processor 904 are all coupled to the PCI bus 912. A video controller 909, also coupled to the PCI bus 912, can include an ATI RagePro+ frame buffer controller which provides SVGA output on the line 915. NTSC data is provided in and out of the video controller through video decoder 910 and encoder 911 respectively. A smartcard interface 908 may also be coupled to the video controller 909.
Alternatively, the HID can comprise a single chip implementation as illustrated in FIG. 10. The single chip includes the necessary processing capability implemented via CPU 1001 and graphics renderer 1005. Chip memory 1007 is provided, along with video controller/interface 1006. An internal bus (USB) controller 1002 is provided to permit communication to a mouse, keyboard and other local devices attached to the HID. A sound controller 1003 and interconnect interface 1004 are also provided. The video interface shares memory 1007 with the CPU 1001 and graphics renderer 1005. The software used in this embodiment may reside locally in non-volatile memory or it can be loaded through the interconnection interface when the device is powered.
The operation of the virtual desktop system architecture is described in U.S. patent application Ser. No. 09/063,335, filed Apr. 20, 1998, entitled "Method and Apparatus for Providing A Virtual Desktop System Architecture" and assigned to the present assignee, and incorporated herein by reference.
In one embodiment, the multi-headed display is part of a thin client topology. One display unit is termed the "primary unit." All user input (e.g., mouse actions) is collected from the primary unit. Other units of the multi-headed display are termed "secondary units."
At step 1130, the highest row of display units wherein the row contains an unconfigured display unit is selected. At step 1140, the leftmost unconfigured display unit in the row is selected. At step 1150, a portable electronic configuration device is attached to the unconfigured display unit. At step 1160, the portable device causes the unconfigured display unit to send configuration data to a coupled device. At step 1170, the coupled device uses the data to configure the unconfigured display unit.
At step 1180, it is determined whether any unconfigured display units remain. If no unconfigured display units remain, at step 1190, the multi-headed display is configured. If an unconfigured display unit remains, the process repeats at step 1130.
In one embodiment, the coupled device is the server in a thin client topology. In another embodiment, the portable electronic configuration unit is a smart card.
An embodiment of the invention can be implemented as computer software in the form of computer readable program code executed in a general purpose computing environment such as environment 1300 illustrated in
Computer 1301 may include a communication interface 1320 coupled to bus 1318. Communication interface 1320 provides a two-way data communication coupling via a network link 1321 to a local network 1322. For example, if communication interface 1320 is an integrated services digital network (ISDN) card or a modem, communication interface 1320 provides a data communication connection to the corresponding type of telephone line, which comprises part of network link 1321. If communication interface 1320 is a local area network (LAN) card, communication interface 1320 provides a data communication connection via network link 1321 to a compatible LAN. Wireless links are also possible. In any such implementation, communication interface 1320 sends and receives electrical, electromagnetic or optical signals which carry digital data streams representing various types of information.
Network link 1321 typically provides data communication through one or more networks to other data devices. For example, network link 1321 may provide a connection through local network 1322 to local server computer 1323 or to data equipment operated by ISP 1324. ISP 1324 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 1325. Local network 1322 and Internet 1325 both use electrical, electromagnetic or optical signals which carry digital data streams. The signals through the various networks and the signals on network link 1321 and through communication interface 1320, which carry the digital data to and from computer 1300, are exemplary forms of carrier waves transporting the information.
Processor 1313 may reside wholly on client computer 1301 or wholly on server 1326 or processor 1313 may have its computational power distributed between computer 1301 and server 1326. Server 1326 symbolically is represented in
Computer 1301 includes a video memory 1314, main memory 1315 and mass storage 1312, all coupled to bi-directional system bus 1318 along with keyboard 1310, mouse 1311 and processor 1313. As with processor 1313, in various computing environments, main memory 1315 and mass storage 1312, can reside wholly on server 1326 or computer 1301, or they may be distributed between the two. Examples of systems where processor 1313, main memory 1315, and mass storage 1312 are distributed between computer 1301 and server 1326 include the thin-client computing architecture developed by Sun Microsystems, Inc., the palm pilot computing device and other personal digital assistants, Internet ready cellular phones and other Internet computing devices, and in platform independent computing environments, such as those which utilize the Java technologies also developed by Sun Microsystems, Inc.
The mass storage 1312 may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology. Bus 1318 may contain, for example, thirty-two address lines for addressing video memory 1314 or main memory 1315. The system bus 1318 also includes, for example, a 32-bit data bus for transferring data between and among the components, such as processor 1313, main memory 1315, video memory 1314 and mass storage 1312. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.
In one embodiment of the invention, the processor 1313 is a SPARC microprocessor from Sun Microsystems, Inc., a microprocessor manufactured by Motorola, such as the 680X0 processor, or a microprocessor manufactured by Intel, such as the 80X86 or Pentium processor. However, any other suitable microprocessor or microcomputer may be utilized. Main memory 1315 is comprised of dynamic random access memory (DRAM). Video memory 1314 is a dual-ported video random access memory. One port of the video memory 1314 is coupled to video amplifier 1316. The video amplifier 1316 is used to drive the cathode ray tube (CRT) raster monitor 1317. Video amplifier 1316 is well known in the art and may be implemented by any suitable apparatus. This circuitry converts pixel data stored in video memory 1314 to a raster signal suitable for use by monitor 1317. Monitor 1317 is a type of monitor suitable for displaying graphic images.
Computer 1301 can send messages and receive data, including program code, through the network(s), network link 1321, and communication interface 1320. In the Internet example, remote server computer. 1326 might transmit a requested code for an application program through Internet 1325, ISP 1324, local network 1322 and communication interface 1320. The received code may be executed by processor 1313 as it is received, and/or stored in mass storage 1312, or other non-volatile storage for later execution. In this manner, computer 1300 may obtain application code in the form of a carrier wave. Alternatively, remote server computer 1326 may execute applications using processor 1313, and utilize mass storage 1312, and/or video memory 1315. The results of the execution at server 1326 are then transmitted through Internet 1325, ISP 1324, local network 1322 and communication interface 1320. In this example, computer 1301 performs only input and output functions.
Application code may be embodied in any form of computer program product. A computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded. Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.
The computer systems described above are for purposes of example only. An embodiment of the invention may be implemented in any type of computer system or programming or processing environment.
Thus, a method and apparatus for configuration using a portable electronic configuration device is described in conjunction with one or more specific embodiments. The invention is defined by the following claims and their full scope an equivalents.
Doolittle, Robert A., Hanko, James G., Gillespie, Brian
Patent | Priority | Assignee | Title |
10177976, | Oct 29 2015 | ARISTA NETWORKS, INC. | System and method for configuring network devices |
10250437, | Oct 29 2015 | ARISTA NETWORKS, INC | Method and system for configuring network devices |
10652383, | Sep 27 2011 | Z124 | Smart dock call handling rules |
8145735, | Jan 07 2004 | Rovi Technologies Corporation | Configuring network settings using portable storage media |
8581803, | Apr 30 2004 | Microsoft Technology Licensing, LLC | Video presenting network management |
8650247, | Apr 05 2010 | Microsoft Technology Licensing, LLC | Four tier architecture for implementing thin clients |
9081535, | Sep 03 2012 | Nvidia Corporation | Automatic topology configuration through automatic hardware profiles across multiple display units |
9086838, | Sep 03 2012 | Nvidia Corporation | Synchronous media display through automatic hardware profiles across multiple display units |
9086840, | Oct 01 2010 | Z124 | RSID proximity peripheral interconnection |
9223535, | Sep 27 2011 | Z124 | Smartpad smartdock |
9244491, | Sep 27 2011 | Z124 | Smart dock for auxiliary devices |
9246353, | Sep 27 2011 | Z124 | Smart dock charging |
9383770, | Sep 27 2011 | Z124 | Mobile device that docks with multiple types of docks |
9507930, | Oct 01 2010 | Z124 | Physical key secure peripheral interconnection |
9900418, | Sep 27 2011 | Z124 | Smart dock call handling rules |
9992731, | Mar 23 2011 | Samsung Electronics Co., Ltd. | Method, apparatus and system for information push service based on wireless LAN access point |
Patent | Priority | Assignee | Title |
5523769, | Jun 16 1993 | Binary Services Limited Liability Company | Active modules for large screen displays |
5553314, | Apr 12 1994 | MOTOROLA SOLUTIONS, INC | Method of configuring a communication unit using a wireless portable configuration device |
5796376, | Dec 18 1991 | CIE RESEARCH INC , INC | Electronic display sign |
5923307, | Jan 27 1997 | Microsoft Technology Licensing, LLC | Logical monitor configuration in a multiple monitor environment |
6084553, | Jan 11 1996 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Design and method for a large, virtual workspace |
6088005, | Jan 10 1996 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Design and method for a large, virtual workspace |
6150996, | Aug 26 1998 | ADDCO LLC | Changeable message sign system with reconfigurable sign screen |
6232932, | Jul 16 1998 | Apparatus and method for providing modular reconfigurable multi-function displays for computer simulations |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 17 2000 | Sun Microsystems, Inc. | (assignment on the face of the patent) | / | |||
Nov 21 2000 | DOOLITTLE, ROBERT A | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011438 | /0412 | |
Nov 27 2000 | HANKO, JAMES G | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011438 | /0412 | |
Nov 27 2000 | GILLESPIE, BRIAN | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011438 | /0412 | |
Feb 12 2010 | ORACLE USA, INC | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0757 | |
Feb 12 2010 | Sun Microsystems, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0757 | |
Feb 12 2010 | Oracle America, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0757 |
Date | Maintenance Fee Events |
Oct 26 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 21 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 04 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 18 2007 | 4 years fee payment window open |
Nov 18 2007 | 6 months grace period start (w surcharge) |
May 18 2008 | patent expiry (for year 4) |
May 18 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 18 2011 | 8 years fee payment window open |
Nov 18 2011 | 6 months grace period start (w surcharge) |
May 18 2012 | patent expiry (for year 8) |
May 18 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 18 2015 | 12 years fee payment window open |
Nov 18 2015 | 6 months grace period start (w surcharge) |
May 18 2016 | patent expiry (for year 12) |
May 18 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |