Printing solutions developed for public venues such as hotels and coffee shops provide customers with access to shared printers. A venue can set its own printing policies and implement its own printing related services. For example, a hotel may have a policy to charge its customers five cents for each page printed. The hotel may provide a service that allows a customer to specify that printed documents are to be delivered to the customer's room or held at the front desk to be picked up.
Consequently, there is a need for a solution that will allow a venue to restrict access to a shared printer allowing access to authorized venue customers. Existing solutions include requiring customers to supply a username and password. However, this requires customers to establish an account before they can use the printer. Another solution involves requiring venue customers to supply payment information such as a credit card number with each request to use the printer. This doesn't allow for cash payments and it does not allow a venue such as a hotel to include printer use fees with the customer's room bill.
Glossary:
Program: An organized list of electronic instructions that, when executed, causes a device to behave in a predetermined manner. The term program is both singular and plural in nature. A program can take many forms. For example, it may be software stored on a computer's disk drive. It may be firmware written onto read-only memory. It may be embodied in hardware as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, programmable gate arrays (PGA), field programmable gate arrays (FPGA), or other components.
Client-Server: A model of interaction between two programs. For example, a program operating on one network device sends a request to a program operating on another network device and waits for a response. The requesting program is referred to as the “client” while the device on which the client operates is referred to as the “client device.” The responding program is referred to as the “server,” while the device on which the server operates is referred to as the “server device.” The server is responsible for acting on the client request and returning the requested information, if any, back to the client. This requested information may be an electronic file such as a word processing document or spread sheet, a web page, or any other electronic data to be displayed or used by the client. In any given network there may be multiple clients and multiple servers. A single device may contain a program or programs allowing it to operate both as a client device and as a server device. Moreover, a client and a server may both operate on the same device.
Web Server: A server that implements HTTP (Hypertext Transport Protocol). A web server can host a web site or a web service or both. A web site provides a user interface by supplying web pages to a requesting client, in this case a web browser. Web pages can be delivered in a number of formats including, but not limited to, HTML (Hyper-Text Markup Language) and XML (extensible Markup Language). Web pages may be generated on demand using server side scripting technologies including, but not limited to, ASP (Active Server Pages) and JSP (Java Server Pages). A web page is typically accessed through a network address. The network address can take the form of an URL (Uniform Resource Locator), IP (Internet Protocol) address, or any other unique addressing mechanism. A web service provides a programmatic interface that may be exposed using a variety of protocols layered on top of HTTP, such as SOAP (Simple Object Access Protocol).
Network Device: A device equipped to be accessed remotely over a network. Common examples include printers, scanners, and routers. However, other common household appliances such as refrigerators, microwaves, televisions, stereos, and home security systems can be network devices if properly equipped.
I
C
Functional components 22 represent the hardware and/or programs for performing the functions for which network device 12 is intended. For example, where network device 12 is a printer or other image forming device, functional components 22 are those components responsible for producing a printed image on paper or other print media. Where network device 12 is a refrigerator, functional components 30 are those components responsible for keeping food cold.
Device server 24 represents generally any program capable of receiving network requests from computers 14-18 directed to network device 12. A network request directed to network device 12 is a request to utilize a function provided by network device 12. For example, where network device 12 is a printer, a network request can be instructions to print a document. Where for example, a network device is a stereo, a network request can be an instruction to play a specified track on a particular compact disc. Functional components 22 are responsible for acting on a network request.
Request manager 26 represents generally any program capable of determining whether to accept or reject a network request received by device server 24. Accepting a network request involves allowing or otherwise directing functional components 22 to act on the network request. Rejecting a network request involves preventing functional components 22 from acting on a network request.
Source detector 28 represents generally any program capable of identifying a network address from which a network request originated. Computers 14-18 are each assigned their own network address. A network address can be a MAC (Media Access Control) address, IP (Internet Protocol) address, or any other format that uniquely identifies a device on network 10. For example, a network address can be data identifying a port on a particular hub, router, or server through which the device is connected to network 10. The connection can be physical or wireless. In the example of
A network address identifying a port (port address) through which a connection can be made with a given network typically remains constant regardless of the device used to make the connection. IP addresses, however, are often not static. A MAC address remains constant so long as the same device is always used to make a connection to the network. Imagine a venue such as a hotel with data ports connecting each room to the hotel's network. A hotel guest with her own portable computer can connect to a port in her room. Each time the guest turns on her computer, she is assigned a new IP address. Her MAC address is dictated by her computer's network card. Without requesting information from the guest, the hotel will not be able to associate the guest's MAC or IP address with the guest. The one address known to the hotel without acquiring any information from the guest is the port address for the guest's room.
Policy data 30 represents generally any electronic data that can be used by request manager 26 to make a determination of whether to accept or reject a network request. For example, policy data may include a list of authorized network addresses. Request manager 26, then, only accepts network requests originating from a network address identified by policy data 30. Network request originating from a network address not identified by policy data 30 are rejected.
In the example of
For example, where network 10 of
The block diagram of
Also, the present invention can be embodied in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable compact disc.
O
Using
Coffee shop customers send print requests from computers 14 and 18 to network device 12. Device server 24 receives those requests in step 40. Source detector 28 communicates with the network infrastructure, namely router A, hub A, and hub B of link 20, to identify the port addresses from which each of the requests originated in step 42. With the port addresses identified, request manager 26, in step 44, accesses policy data to determine if those port addresses are authorized. Request manager 26 determines that the port address for computer 18 is not authorized and rejects that request in step 46. Request manager 26, locating an entry 32 in policy data 30 containing data identifying port A hub A, determines that the port address for computer 14 is authorized and accepts that request in step 48. Functional components 22 act on the request and print a document.
In step 50, request manager 26 reports that the print request for the customer using computer 14 has been accepted and printed. Referring to
C