SYSTEMS, METHODS AND COMPUTER PROGRAM PRODUCTS FOR
SCANNING UNIFORM RESOURCE LOCATORS TO ACCESS AND
DISPLAY INTERNET RESOURCES
Field of the Invention
The present invention relates to data processing systems, methods and computer program products and, more particularly, to data processing systems, methods and computer program products for retrieving and displaying information from a computer network .
Background of the Invention The Internet is a worldwide, decentralized conglomeration of computer networks. The World Wide Web (hereinafter the "Web") was created in the early 1990' s, and is comprised of servers (computers connected to the Internet) having hypertext documents or Web pages stored therewithin. These Web pages are accessible by client devices (hereinafter "clients") using browser programs (hereinafter "browsers") utilizing the Hypertext Transfer Protocol (HTTP) and the Transmission Control Protocol/Internet Protocol (TCP/IP) . HTTP treats characters, images, tables, and the like, as objects and provides various correlations
between objects. Exemplary browsers include Netscape Navigator® (Netscape Communications Corporation, Mountain View, CA) and Internet Explorer® (Microsoft Corporation, Redmond, WA) . Browsers provide a graphical user interface for retrieving and viewing Web pages hosted by HTTP servers, and for retrieving information from other sources including, but not limited to, File Transfer Protocol (FTP) servers, Gopher servers, and mail servers . A Web page, using a standard page description language known as HyperText Markup Language (HTML) , may display text and graphics, and may also play sound, animation, and video clips. HTML provides basic document formatting and allows a Web page developer to specify hypertext links (conventionally manifested as highlighted text) to other servers and files. When a user selects a particular hypertext link, the Web browser reads and interprets the address, called a URL (Uniform Resource Locator) associated with the link, connects the client with the server at that address, and makes a TCP/IP request for the Web page identified in the link. The server then sends the requested Web page to the client in HTML format which the browser interprets and displays to the user. A URL is a standard addressing technique for identifying information resources on the Internet. A URL is conventionally an alphanumeric character string that identifies both the Web page and the server in which the Web page is located. The specifications for URLs are governed by RFC1738 which is one of the
official Request for Comments documents prepared by the Internet Engineering Task Force (IETF) . A URL gives the type of Internet resource being accessed ( e . g. , HTTP, FTP, Gopher, WAIS) and, optionally, the path of the file sought. For example:
"resource -. //host . domain/path/filename" , wherein the resource can be "file", "http" , "ftp", "gopher", "WAIS", "news", or "telnet". Through the Web, users can access the various Internet services, including Gopher, Telnet, and FTP.
In both broadcast and printed media, it has become popular for many businesses to publish the URLs for their Web sites. When a consumer sees a Web site URL in an advertisement that the consumer would like to visit, the consumer writes down the URL and subsequently types the URL into a browser. Unfortunately, URLs may be fairly long and may contain complex arrangements of awkward characters. Accordingly, the task of manually writing down URLs and manually entering them into a browser can be somewhat laborious and prone to errors .
Several methods have been proposed so that users may avoid manually copying and entering URLs into browsers . One method involves entering a URL directly into a personal digital assistant (PDA) or other portable communication device and then cutting and pasting the URL into a browser using known editing techniques. This method may save the work of manually re-entering the URL into a browser once the URL has been recorded in digital form a first time.
Another method for avoiding manually copying and entering URLs into browsers has been proposed by the Neorex Company, Ltd. of Japan (hereinafter "Neorex") . Advertisers register their Web sites with an "Internet Link Server" maintained by Neorex. Neorex then maps the URL of each Web site to a unique identification number. The advertiser prints a bar code in an advertisement corresponding to the identification number assigned by Neorex. When a user scans the bar code with a special scanning device provided by Neorex, the identification number associated with the scanned bar code is transmitted to the Internet Link Server via the user's browser. The Internet Link Server responds to the user's browser with the actual URL associated with the identification number. The browser proceeds to access the Web site using the retrieved URL.
Unfortunately, with the Neorex approach, a user establishes communications with a lookup server in order to map unique identification codes to actual URLs. Furthermore, only Web sites that are registered with a lookup server can be accessed with a bar code scanner using the Neorex approach.
Summary of the Invention In view of the above discussion, it is an object of the present invention to allow users to access Internet resources without having to manually copy and/or enter URLs into a data processing device.
It is another object of the present invention to provide apparatus and methods for accessing Internet
resources using URLs scanned from various types of media .
It is yet another object of the present invention to provide apparatus and methods for accessing Internet resources using information scanned from various types of media without requiring an
_ intermediate source for converting the scanned information into a URL.
These and other objects of the present invention are provided by systems, methods, and computer program products which allow a user to access and display, via a communications device, such as a personal digital assistant, information from an Internet server by: scanning information displayed in a medium; determining whether the scanned information is a URL; establishing client-server communications between the communications device and the server identified by the scanned information; and displaying, via a browser, information transmitted from the server. The present invention allows users to directly scan
URLs that are either in bar code format or that are in alphanumeric format. When a URL is scanned, a user may be presented with a choice of immediately accessing the server identified by the URL or storing the URL for later access.
According to an aspect of the present invention, client-server communications can be established between the communications device and a server via radiotelephone communications. For example, a PDA incorporating a radiotelephone may be utilized to
access and display information from a server. According to another aspect of the present invention, a communications device, such as a personal digital assistant, can be configured to transfer user information stored therewithin to a server, in response to scanning a URL.
Accordingly, the need to manually write down and type a URL into a browser may be eliminated using a communications device incorporating aspects of the present invention. Because actual URLs can be scanned, any intermediate step of mapping the URLs to identifying codes is rendered unnecessary. Furthermore, user information can be quickly and securely transmitted to a server by simply scanning a URL.
Brief Description of the Drawings Fig. 1 schematically illustrates a client and server in communication via a computer network.
Fig. 2 schematically illustrates a client accessing a hypertext document, such as a web page, hosted by a web server.
Fig. 3 illustrates an exemplary PDA having a scanning device .
Fig. 4 illustrates an exemplary bar code. Fig. 5A illustrates an advertisement having a Web site URL in alphanumeric format.
Fig. 5B illustrates an advertisement having a Web site URL in bar coded format.
Fig. 6 is a flowchart schematically illustrating operations for various aspects of the
present invention.
Figs 7A-7C illustrate various dialog boxes which are presented to users for various aspects of the present invention. Fig. 8 illustrates an HTML form for transmitting data via a Common Gateway Interface.
Detailed Description of the Invention
The present invention now is described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout . As will be appreciated by one of skill in the art, the present invention may be embodied as a method, data processing system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product on a computer-readable storage medium having computer- readable program code means embodied in the medium. Any suitable computer readable medium may be utilized
including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices..
As is understood by those skilled in the art of Web client/server communications, a user accesses a server by establishing a TCP connection between the client and server. For many Internet communications, a client generally communicates with a server using HTTP protocol over a TCP connection between the client and server. The data transferred between the client and the server are HTTP data objects (e.g. HTML data) . A server may be a proxy that receives requests from multiple clients and routes the requests to the appropriate server.
It is understood that a client or server or other apparatus configured to execute program code embodied within computer usable media, operates as means for performing the various functions and carries out the methods of the various operations of the present invention. It is also understood that the present invention may be used with all client-server communications, and is not limited to specific protocols such as TCP/IP protocol.
The present invention is described below with reference to flowchart illustrations of methods, apparatus (systems) and computer program products according to an embodiment of the invention. It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program
instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks.
These computer program instructions may also be stored in a computer-usable 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-usable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart 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 specified in the flowchart block or blocks.
Accordingly, blocks of the flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the flowchart illustrations, and combinations of
blocks in the flowchart illustrations, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Client-Server Communications As is known to those with skill in the art, client-server environments may include public networks, such as the Internet, and private networks often referred to as "Intranets." Hereinafter, all references to Internet resources shall include resources residing on servers connected to the Internet and resources residing on servers connected to an Intranet . Hereinafter, the term "Internet" shall incorporate the term "Intranet" and any references to accessing the Internet shall be understood to mean accessing an Intranet as well. Hereinafter, the term "computer network" shall incorporate publicly accessible computer networks and private computer networks. The term
"hypertext document" shall include Web pages residing within HTTP servers (also referred to as Web servers) . The term "Internet server" shall include all servers accessible by clients via the Internet including, but not limited to, Web servers, FTP servers, WAIS servers, mail servers, and the like.
As illustrated in Fig. 1, users may access the Internet via a computer or other communications device referred to as a client 10. Exemplary clients 10 may include, but are not limited to, desktop computers
and portable computing devices, such as personal digital assistants (PDAs) . A client 10 preferably includes a central processing unit 11, a display 12, a pointing device 13, a keyboard 14, access to persistent data storage, and an Internet connection 16 for connecting to the Internet 17. The keyboard 14, having a plurality of keys thereon, is in communication with the central processing unit 11. A pointing device 13, such as a mouse, is also connected to the central processing unit 11. The Internet connection 16 may be made via a modem 15 connected to traditional phone lines, an ISDN link, a Tl link, a T3 link, via cable television, via an ethernet network, and the like. The Internet connection 16 may be established using radiotelephone communications, as well. The Internet connection 16 may be made via a third party, such as an "Internet Service Provider" ("ISP").
The Internet connection 16 may be made either by a direct connection of the client 10 to the Internet or indirectly via another device connected to the Internet. In the latter case, the client 10 is typically connected to this device via a local or wide area network (LAN or WAN) . Preferably, data transfer rates between a client 10 and a server are equal to, or greater than, fourteen thousand four hundred baud
(14,400 baud) . However, lower data transfer rates are sometimes encountered.
The central processing unit 11 contains one or more microprocessors (not shown) or other computational devices and random access memory (not
shown) or its functional equivalent, including but not limited to, RAM, FLASHRAM, and VRAM for storing programs therein for processing by the microprocessor (s) or other computational devices. A portion of the random access memory and/or persistent data storage, referred to as "cache," is often utilized during communications between a client 10 and a server (described in detail below) to store various data transferred from the server. Preferably, a client 10 has an Intel® 80486 processor (or equivalent) with at least eight megabytes (8 MB) of RAM, and at least five megabytes (5 MB) of persistent computer storage for caching. Even more preferable is an Intel® Pentium® processor (or equivalent) . However, it is to be understood that various processors may be utilized to carry out the present invention without being limited to those enumerated herein. Although a color display is preferable, a black and white display or standard broadcast or cable television monitor may be used. A client 10, if an IBM®, or IBM-compatible personal computer, preferably utilizes either a Windows®3.1 , Windows 95®, Windows NT®, Unix®, or OS/2® operating system. However, it is to be understood that a terminal not having computational capability, such as an IBM® 3270 terminal or a network computer (NC) , or having limited computational capability, such as a network PC (Net PC) may be utilized in accordance with an embodiment of the present invention for accessing the Internet in a client capacity.
A user accesses Internet resources by establishing a TCP connection between the client 10 and a server 20 hosting the resources. For many Internet communications, a client communicates with a Web server using HTTP protocol over the TCP connection between the client and Web server.
An Internet server 20 may have a configuration similar to that of a client 10 and may include a central processing unit 21, a display 22, a pointing device 23, a keyboard 24, access to persistent data storage, and an Internet connection 26 for connecting to the Internet 17 via a modem 25, or otherwise. It is preferable that an Internet server have an Intel® Pentium® processor or equivalent, at least sixteen megabytes (16 MB) of RAM, and at least eight hundred megabytes (800 MB) of data storage. However, a Web server 20 may be implemented using other processors and via other computing devices, including, but not limited to, mainframe computing systems and mini-computers . Internet server software handles requests from clients for documents, whether they are text, graphic, multimedia, or virtual. The Internet server software may run under the operating system of the Web server. Referring now to Fig. 2, accessing a Web page hosted by a Web server is schematically illustrated. During a typical communication, a client 10, via a browser residing on the client, makes a TCP/IP request for a Web page 30 from the host Web server 20 and displays the Web page on the client display device 12.
If the displayed Web page 30 contains a hypertext link 32, the user can activate that link, and the browser will retrieve the linked Web page 34 from its host Web server 36.
Personal Digital Assistants (PDAs) With the increased mobility of many in today's workforce, the demand for mobile computing and communication capabilities outside of the office has also increased. Those who typically work outside the office such as salespeople and field professionals often require the ability to communicate with others and access various data files. In response to this demand, personal digital assistants (PDAs) have been developed. A PDA is a compact device that can serve various functions of a cellular phone, facsimile transmitter, personal organizer, and the like. PDAs typically include a stylus and touch screen for user input, and may include a keyboard, and various peripheral devices such as bar scanners. PDAs can be used for sending and retrieving e-mail, Web browsing, and data-sharing applications over the Internet, intranet or corporate networks .
Referring now to Fig. 3, an exemplary personal digital assistant (PDA) 40 having telecommunications and client-server communications capabilities is illustrated. The PDA 40 includes a base 42 with a handset 44 removably secured within a cradle 46. The base 42 includes a display screen 48, which may be a "touch screen", a power on/off button 50a, a
"handsfree" operation button 50b and an antenna 52 for communicating with a remote base station. The illustrated PDA 40 preferably performs various laptop computing functions including Internet browsing and includes a central processing unit, a keyboard, and access to persistent data storage (not shown) .
The central processing unit preferably contains one or more microprocessors or other computational devices and random access memory or its functional equivalent, including but not limited to, RAM, FLASHRAM, and VRAM for storing programs therein for processing by the microprocessor (s) or other computational devices. Other features of a PDA which may be included, are: PCMCIA slots (not shown) for connecting the PDA to a bar scanner 54, a modem, and to other devices; a stylus for use with the touch screen 48; RJll connections (not shown) to land line telephone systems; and infrared ports (not shown) for communications with peripheral devices.
Bar Codes A bar code is a series of parallel, adjacent bars and spaces. An exemplary bar code 60 is illustrated in Fig. 4. Predefined bar and space patterns or symbologies are used to code alphanumeric characters . Bar code readers or scanners are conventionally connected via cable or wireless link to a communications device controlled by a memory resident driver that accepts bar code input. A bar code reader decodes a bar code by scanning a light source across
the bar code and measuring the intensity of light reflected back to the reader. The pattern of reflected light produces an electronic signal that is decoded by software. Bar code hardware and software is well known in the art and available from various commercial sources. Furthermore, software for producing bar codes in various symbologies is well known in the art.
The present invention may be utilized with virtually any of the various bar code symbologies, and is not limited to the symbologies illustrated herein. For example, two-dimensional bar code symbologies may be utilized.
Scanning URLs and Bar Coded URLs Referring now to Fig. 5A, an advertisement 70 includes a Web site URL 72 in alphanumeric format. In Fig. 5B, an advertisement 74 includes a Web site URL 76 in bar coded format as well as in alphanumeric format . According to the present invention, URLs in either alphanumeric format or bar coded format may be scanned by a reader connected to a communications device having the ability to establish client/server communications with the server identified by the URL and to display information from the server. Accordingly, a user is able to immediately access an Internet server by scanning a URL displayed in various media including, but not limited to, print and broadcast media. The term "communications device" is used herein to include radiotelephones, desktop or portable computers, as well
as desktop or portable computers having communications capabilities, such as PDAs.
Referring now to Fig. 6, operations for using a communications device to access and display information stored within a server on the Internet identifiable by a displayed URL, according to aspects of the present invention, are schematically illustrated. A preferred communications device for carrying out these operations is the PDA 40 illustrated in Fig. 3. A portable communications device, such as a PDA, having a scanning device connected thereto by cable or wireless link is used to scan data from a displayed medium (Block 100) . Preferably the scanning device is a bar code reader. The scanning device is preferably controlled by a memory resident driver that interprets and converts a bar code to text. Preferably, both printed and broadcast media can be scanned with the scanning device. For example, a bar coded URL displayed on a television screen can be scanned using the present invention.
Alternatively, a line scanner may be used instead of a bar code reader to scan URLs in alphanumeric format (i.e., http : //www. acme . com) . Optical character recognition (OCR) software converts the scanned software to actual text that can be passed to the appropriate client application (i.e., browser) as is described below. Line scanners and OCR software are known in the art and are commercially available.
The communications device has URL recognition software for determining whether the scanned data is a
URL (Block 110) . The URL recognition software could be implemented as an integral part of the communication device's operating system. The URL recognition software examines scanned data for a protocol name such as "http", "ftp", "mail to", or "@", and so forth. If the data is not recognized as a URL, the data is handled as non-URL data as appropriate (Block 120) .
If the data is recognized as a URL, the user may be prompted with several action choices (Block 130) . Preferably, the user is presented with a dialog box allowing a choice to be made between accessing the URL immediately or storing the URL in non-volatile memory for use at a later time (i.e., as a bookmark) . The URL recognition software can also be configured to automatically access or store recognized URLs without prompting the user. An exemplary dialog box 80 for setting user preferences for the URL recognition software is illustrated in Fig. 7A. An exemplary dialog box for prompting a user for whether to access a URL or to store the URL is illustrated in Fig. 7B.
In the illustrated dialog box 80 of Fig. 7A, a user is presented with three choices: "Always Save"; "Always Access Immediately"; and "Prompt For Action". These choices can be selected by respective radio buttons 82a, 82b, 82c. In the illustrated dialog box 84 of Fig. 7B, a user is presented with two choices: "Access Now" and "Save" . These choices can be implemented via action buttons 86a and 86b, respectively. An exemplary dialog box 88 for allowing a user to access and remove stored URLs is illustrated in
Fig. 7C. In the illustrated dialog box 88 of Fig. 7C, a user is presented with two choices: "Access" and "Remove" . These choices can be implemented via action buttons 89a and 89b, respectively. Referring back to Fig. 6, if a user chooses not to access a scanned URL at the present time (Block 140) , the URL is stored (Block 150) . If a user chooses immediate access (Block 140) , client-server communications are established between the communications device and the server using the scanned information (Block 160) . For example, an Internet service provider (ISP) may be dialed first to connect the communications device with the Internet. Preferably, various preferences, including ISP information are retrievably stored within the communications device.
Substantially simultaneously with establishing client-server communications, a request is sent to the operating system of the communications device to launch the appropriate client application, such as a browser (Block 170) . The URL, in text format, is passed to the client application (i.e., browser) using a conventional operating system mechanism, such as Microsoft's Dynamic Data Exchange (DDE) or Apple's Apple Events, and information from the server identified by the URL is displayed to the user (Block 180) .
According to an additional aspect of the present invention, scanned URLs can be utilized to transfer user information to a server (Block 190) .
Preferably, when a URL is identified, the present invention automatically accesses one or more script files on a server which present the user with a form for transmitting information to an Internet server. A preferred protocol for executing script files is the Common Gateway Interface (CGI) . CGI provides a standard interface for clients to interface with applications via Web servers. More generally, CGI provides dynamically generated content to a client. A user can utilize an application written in virtually any computer language to interface and communicate with a Web server via CGI, as long as the Web server understands the CGI protocol. CGI communications are handled by parsing standard input and output . As is known by those skilled in the art, CGI can handle virtually any computer language that can print to the standard output, read from the standard input, and read environment variables . Most programming languages and many scripting languages perform all three of these functions including compiled languages such as C and interpreted languages such as Perl .
An exemplary CGI application used in conjunction with the present invention is one that takes information submitted by a user via a client to a Web server, processes the information, and returns the processed information to the user. Sending information to a Web server to be processed by a CGI application typically requires the use of an HTML document known as a "form. "
Referring to Fig. 8, an exemplary form 90 is illustrated. Forms are generated using HTML tags that provide various data entry features such as text fields 92, radio buttons 93, check boxes 94, menu lists 95, and the like. A form, such as the form illustrated in Fig. 8, is typically filled out by a user. Upon user activation, the client browser encodes the information and submits it to the server specified in the form. When the information is received by the specified server, and if the user is authorized, the server executes the CGI application specified in the HTML form, which performs some function on or with the transmitted information. The server then transmits responses or processing results to the client via another HTML document . Interactivity between a client and CGI application on a server can be provided by- utilizing multiple iterations of this process using forms and CGI applications.
Accordingly, by scanning a URL in accordance with the present invention, users can be presented with a form with which to order various products and services. Various user information, including personal information and credit card information, can be stored within a communications device and automatically transmitted to a server upon execution of a script file. Preferably a server receiving user information returns an acknowledgement to the user upon receipt of the user information, as is known to those skilled in the art .
The foregoing is illustrative of the present invention and is not to be construed as limiting thereof. Although a few exemplary embodiments of this invention have been described, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention as defined in the claims. In the claims, means-plus-function clause are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures. Therefore, it is to be understood that the foregoing is illustrative of the present invention and is not to be construed as limited to the specific embodiments disclosed, and that modifications to the disclosed embodiments, as well as other embodiments, are intended to be included within the scope of the appended claims. The invention is defined by the following claims, with equivalents of the claims to be included therein.