Communications management

Systems and methods for managing communication between a server and peripheral devices associated with at least one client deployed with an airport environment so that a virtualized application running on the server can be connected with at least one of the peripheral devices. A communications link is established between the server and the client associated with the peripheral devices and the application is directed to one of the peripheral devices via a virtual channel established between a server peripheral manager simulator component and a client peripheral manager simulator component and passing through the communications link. The client peripheral manager simulator is associated with a peripheral manager in the client which controls the peripheral devices.

BACKGROUND

The present invention relates to communications management and, more particularly, to the management of communication between peripheral devices within a virtualised communications system for airports.

In airport communication systems, a peripheral manager containing device drivers forms part of a client computer system which is geographically local to and is directly connected to one or more peripherals via a local communications system. Such a peripheral manager is constrained in establishing communications with central server-based applications due to the use of non-static internet protocol (IP) addresses and the requirement for IP address translation when the communication needs to traverse networks comprising a mix of public and private addressing schemes.

Within airport environments, workstations (including thin client devices, mobile/tablet devices) and peripheral devices may be shared for multiple airline usage. However, different airlines tend to utilise different systems and a problem arises where the same peripheral devices need to communicate with those different systems. One way of providing such communication requires the adaptation of existing client applications and print emulators to target remote hostnames in conjunction with addressing schemes based on fixed IP addresses. However, this is problematic for a number of reasons, including: the limited availability of public IP addresses; the complexity associated with security, firewalls and mobile data modes where 3G and/or 4G networks are used; the need for many routing configurations that need to be established and effectively managed; and the need to manage multiple stakeholders providing different elements of the communications, for example, airport authorities, network providers, airport information technology providers etc.

In systems where a host computer is required to be in communication with a remote client computer, multiple addressing schemes and translation across heterogeneous local and wide area networks, including mobile carrier networks, are required to enable communications between the host computer and the remote client computer. In this case, it is difficult to establish a reliable link irrespective of the multiple addressing schemes and the different types of networks required for the necessary communication.

SUMMARY

The embodiments of the present invention provide systems and methods for virtualising applications between a host computer and at least one remote client computer. The embodiments of the present invention provide methods for managing the communication of peripheral devices deployed within an airport environment via a virtualised communications protocol. The embodiments of the present invention may enable virtualised applications running on a server to establish communications with client-based peripheral managers and their associated peripheral devices.

In accordance with a first embodiment of the present invention, a system is provided for operating a peripheral device associated with a client from a server. The system includes a server being configured for running at least one application, and at least one client being configured to be connected to the server via a communications link, at least one peripheral device associated with each client. The server includes an application virtualisation platform for virtualising at least one application running thereon. Each client includes a client virtualisation platform for interacting with the application virtualisation platform. A peripheral manager is associated with each client and is configured for controlling each associated peripheral device. The system includes at least one peripheral manager simulator configured to establish a virtual channel through which communication is enabled between at least one application running on the server and at least one peripheral device associated with at least one client.

Advantageously, the provision of the virtualisation platforms on the server and each client may enable applications running on the server to interact with one or more clients at the same time via virtual channels established between each client and the server. This means that the server can be located at any suitable location with the clients located at various remote locations with respect to the server.

In addition, by the establishment of effectively dedicated virtual channels between each client and the server, different applications on the server can be accessed by each client and connected to relevant client-associated peripheral devices without having to compensate for different types of multiple addressing schemes and translation across heterogeneous local and wide area networks, including mobile carrier networks.

Each peripheral manager simulator preferably comprises at least one client peripheral manager simulator component associated with each client and a server peripheral manager simulator component associated with the server, the virtual channel being established between the server peripheral manager simulator component and the client peripheral manager simulator component.

In one embodiment, each server peripheral manager simulator component may be embedded in at least one application on the server. In another embodiment, each server peripheral manager may be connected to at least one application on the server.

Each application may further comprise a peripheral emulator and each server peripheral manager simulator component connects with each application by way of the peripheral emulator.

The system may further comprise an interface provided between the peripheral emulator and the server peripheral manager simulator component. In one embodiment, the interface may comprise a common use passenger processing system.

In one embodiment, the peripheral emulator may comprise a print emulator and at least one of the peripheral devices connected to at least one client comprises a printer.

The communication link may comprise at least a 3G or a 4G mobile telecommunications network.

In accordance with another aspect of the present invention, method is provided for connecting at least one application on a server to at least one peripheral device associated with at least one client connected to the server. The server has an application virtualisation platform and each client having a client virtualisation platform. The method includes establishing a communications link between the server and at least one client, virtualising communication protocols associated with each client and making the virtualised communications protocols available to the application virtualisation platform on the server, connecting at least one application on the server to at least one client using the client communication protocol, establishing a virtual channel between a server peripheral manager simulator component and at least one client peripheral manager simulator component within the communications link, and operating at least one peripheral device associated with at least one client using the established virtual channel between the server peripheral manager simulator component and each client peripheral manager simulator component.

By establishing the virtual channel within the communications link, a reliable connection can be provided between the server and each client irrespective of the type(s) of communications network(s) at the locality of the client.

The method may further comprise transferring data from at least one peripheral device connected to a client to the server using the established virtual channel between the client peripheral manager simulator component and the server peripheral manager simulator component.

DETAILED DESCRIPTION

The term “server” as used herein is intended to include any host computer that can connect to a communications network. In addition, the term “server” is also used to identify elements within the server.

The terms “remote client computer” or “client” as used herein are intended to include any computer or terminal that can connect to a server via a communications network. The term “client” is also used to identify elements within a remote client computer.

The term “emulator” as used herein refers to hardware or software that duplicates (emulates) the functions of a first computer system (for example, a client computer) in a second computer system (for example, a host computer) to provide an exact reproduction of the behaviour of the first computer system.

The term “simulator” as used herein refers to a hardware or software that provides a representation of the operation of a physical system over time using a model representing key characteristics and/or behaviours of the physical system.

The present invention is capable of exploitation by airports and any other parties that are involved in the provision of shared infrastructure to users in airport environments, including but not limited to, use in check-in and boarding areas, baggage claim desks and airline back offices. In addition, the present invention can also be utilised in non-airport environments.

This present invention provides a method for managing the communication with peripheral devices, such as printers, scanners and readers, deployed within an airport environment via a virtualised communications protocol extended over a network. Such a network may comprise of heterogeneous network types, including local area networks and wide area networks, the latter including fixed networks or 3G/4G data communications networks. (3G relates to the third generation of mobile communications for mobile telephones and comprises CDMA2000, a family of protocols that use code division multiple access systems, and Universal Mobile Telecommunications System (UMTS). CDMA is also known as International Mobile Telecommunications Multi-Carrier (IMT-MC). 4G relates to the fourth generation which provides mobile ultra-broadband internet access using, for example, Long Term Evolution (LTE).)

In particular, a method will be described which overcomes the challenges associated with communication between a remote central server and peripheral devices associated with airport-based clients where the communication may include multiple addressing schemes and translation across heterogeneous local and wide area networks, including mobile carrier networks. As mentioned above, the present invention can be implemented in any system in which communication is to be established where multiple addressing schemes are needed between a remote central server and a local client and associated peripheral devices.

In the system of the present invention, a server is in communication with at least one remote client computer. A server peripheral manager simulator simulates a peripheral manager on the server to communicate with a client peripheral manager in each remote client computer. The peripheral manager simulator preferably comprises a server peripheral manager simulator component and a client peripheral manager simulator component between which the virtual channel is established. The server peripheral manager simulator component and the client peripheral manager simulator component work together to simulate application communication from the server to each remote client computer so that the peripheral manager associated with each remote client computer can control the operation of its associated peripheral devices. Additionally, the virtual channel can also be used for data transfer between a peripheral device connected to the client and the server. In effect, the virtual channel is bi-directional.

Referring initially toFIG. 1, a server100in accordance with the present invention is shown which has a server-based application virtualisation platform110. A plurality of applications120,130,140are shown running on the server100but which are virtualised on the application virtualisation platform110. An emulator150, for example, a print emulator, is associated with one particular application130, for example, a print application. The application130interfaces with the print emulator150via connection135to provide print instructions for a peripheral device, for example, a printer (not shown) located at the location of the client.

In accordance with the present invention, a server peripheral manager simulator component160is provided at the server100, the server peripheral manager simulator component160interfacing with the print emulator150via connection155. The operation of the server100within the system of the present invention will be described in more detail with reference toFIGS. 4 to 6below.

The application virtualisation platform110includes software which virtualises the applications120,130,140or an operation system (not shown) on which each application runs. The server peripheral manager simulator component160simulates a peripheral manager (as will be described in more detail below) to enable local communications with the application emulator150, in this case, the print emulator. A Common Use Passenger Processing System (CUPPS) or any other suitable interface type may be provided which enables communication between the print emulator and the server peripheral manager simulator component160. (CUPPS is effectively the next generation of Common Use Terminal Equipment (CUTE) in accordance with IATA Recommended Practice 1797.)

In the embodiment of the server100shown inFIG. 1, the application emulator150(or print emulator) is located within the application virtualisation platform110. It may be connected to more than one application (not shown) if similar or identical applications are running on the server100and which require the same type of application emulation.

InFIG. 2, a modified embodiment of the server100′ is shown. Elements which have been described above with reference toFIG. 1have the same reference numerals and will not be described in detail again. In the embodiment ofFIG. 2, the application virtualisation platform110′ has been modified so that the print emulator150′ forms part of the application130′ itself and interfaces with the server peripheral manager simulator component160via connection155′. In this case, a suitable interface is provided to enable communications between the print (or application) emulator150′ and the server peripheral manager simulator component160.

In a further embodiment (not shown), the server peripheral manager simulator component may be embedded in the application itself.

In an airport implementation, the server100(or100′) is located remotely from the airport itself and is connected thereto but means of conventional communications links. A single server100(or100′) may be connected to more than one airport as well as to different areas, for example, check-in, boarding gates, baggage halls and other airport front and/or back offices.

FIG. 3illustrates a client200which is connectable to the server100(FIG. 1) or server100′ (FIG. 2) as will be described in more detail below with reference toFIGS. 4 to 6. The client200has a client virtualisation platform210which interfaces with a keyboard220and a display230as shown by respective links225,235. Although the keyboard220and display230are shown as separate elements, they may form part of a single module (not shown). The client200also includes a peripheral manager240which is connected for controlling peripheral devices250,260,270,280via link290. Typical peripheral devices which may be controlled by the peripheral manager240include, but are not limited to, printers, scanners, and readers. Whilst link290may be a physical link, for example, using a universal serial bus (USB) connection, the link290may also be a wireless link forming part of a local area network (LAN) or a wide area network (WAN). It is also possible that the link290operates using mobile telecommunications, for example, forming part of a 3G or 4G network or is connected via Bluetooth (wireless technology standard).

In accordance with the present invention, a client peripheral manager simulator component245is provided which is associated with the client peripheral manager240. The client peripheral manager simulator component245is used to form a virtual channel (not shown) with the server peripheral manager simulator component160(FIGS. 1 and 2) as will be described in more detail below.

In an airport environment, a plurality of clients200would be provided within the airport itself, for example, at check-in desks, at boarding gates, in baggage halls etc. Each client200connects to the remote server100(or100′) to access applications running on the application virtualisation platform110(or110′) provided in the server100(or100′) as will be described in more detail below.

InFIG. 4, a virtualisation system300in accordance with the present invention is shown. The system300comprises the server100′ as shown inFIG. 2, but it will be appreciated that this is by way of example and the server100shown inFIG. 1could also be used. Elements of the server100′ as described above have the same reference numerals and will not be described in detail again here. The system300also includes the client200which is connected to the server100′ via a communications link310. Communications link310may comprise a WAN or a LAN communications system which is capable of running a virtualisation protocol. As shown, the communications link310effectively connects the application virtualisation platform110′ to the client virtualisation platform210. In particular, the communications link310comprises an internet protocol (IP) connection. In one embodiment, the virtualisation protocol utilises CITRIX XENSERVER on the server and CITRIX XENAPP on each remote client computer to provide the respective virtualisation platforms. However, it will be appreciated that other virtualisation protocols may be used, for example, VWWARE, and CITRIX applications are given by way of example.

In addition, in accordance with the present invention, the communications link310effectively connects the server peripheral manager simulator component160with the client peripheral manager simulator component245forming part of the client peripheral manager240using a virtual channel320as indicated by dot-dash line as will be described in more detail below.

The client virtualisation platform210includes software which allows communications with the server100via the application virtualisation platform110′ and manages the delivery of the virtualised application or operating system to the peripheral manager240at the client200. The peripheral manager240includes suitable device drivers (not shown) for each peripheral device250,260,270,280.

The client peripheral simulator component245enables communication between the client virtualisation platform210and the peripheral manager240. As shown, the client peripheral manager simulator component245can be embedded within the peripheral manager240. Alternatively, the client peripheral manager simulator component245may stand alone within the client200(not shown).

In accordance with the present invention, the provision of the server peripheral manager simulator component160and the client peripheral manager simulator component245enables the virtualisation of the system as will be described below with reference toFIG. 6. Although not shown inFIG. 4, it is to be noted that the virtual channel320extends through the communications link310via the application virtualisation platform110′ and the client virtualisation platform210.

FIG. 5illustrates a system400in which a plurality of clients2001,2002,2003,2004, . . . ,200nare connected to a single server100. Each client2001,2002,2003,2004, . . . ,200nhas its own client virtualisation platform2101,2102,2103,2104, . . . ,210nand own client peripheral manager and client peripheral manager simulator component. For clarity, only the client peripheral manager2401and client peripheral manager simulator component2451for one client2001is referenced, but it will be appreciated that the other clients also have client peripheral manager and client peripheral manager simulator components as shown.

The server100may be located at a central remote location and each client2001,2002,2003,2004, . . . ,200nmay be located at any suitable location. For example, clients may be located at one airport or at a plurality of different airports all over the globe. As described above, the clients could also be located at locations, for example, at hotels or conference centres, where passengers can check-in prior to leaving for the airport.

As shown, a communications link410may be established between each of the clients2001,2002,2003,2004, . . . ,200nat the same time. A virtual channel420is also shown extending between the client peripheral manager simulator component2451and the server peripheral manager simulator component160. Although not shown inFIG. 5, it is to be noted that the virtual channel420extends through the communications link410via the application virtualisation platform110and the client virtualisation platform210.

Naturally, a virtual channel can also be established for the other client peripheral manager simulator components of each client2001,2002,2003,2004, . . . ,200n. Each client2001,2002,2003,2004, . . . ,200nmay access the same application at the same time, or alternatively, more than one application may be accessed by the same or different clients. It will be appreciated that each client2001,2002,2003,2004, . . . ,200naccesses the server100via its own dedicated virtual channel within the communications link410, that is, a plurality of virtual channels can be established between the server peripheral manager simulator160and each client2001,2002,2003,2004, . . . ,200nvia the link410.

By hosting all applications to be used by the clients on a common server, updates need only be applied once on the server without recourse to any of the clients. This reduces the complexity of keeping individual clients running the same application(s) up-to-date. In addition, as different applications can be hosted, in an airport environment, different airlines or other users of the system can use different applications but still use the same remote client computer to access their applications on the server.

InFIG. 6, a flow chart500illustrating a method for operating the system is shown. Reference numerals relating to elements of the server100′ (FIG. 2), the client200(FIG. 3) and the system300(FIG. 4) are also used in the following description.

In block510, a user logs onto the client using the keyboard220and the display230and initiates a session in which the client200is connected to the server100′ via communications link310(FIG. 4). The connection between the client and the server initialises at least one graphic user interface (GUI) for one of more applications on the server100′ by calling the IP address of the server100′. At the same time, the server peripheral simulator component160is also initialised.

In block520, the connection310is made between the client virtualisation platform210and the application virtualisation platform110′ on the server100. A connection is established for the session via the virtualisation protocol according to the platform used, for example, using Citrix as described above, provided on the two platforms110′,210in block530. Support for virtual channels within this protocol enables communications with peripherals to be reliably established and which are unaffected by network address translation and blocking due to the presence of firewalls.

In block540, the client localhost/Transmission Control Protocol (TCP) is virtualised on the client virtualisation platform210and made available, via the connection310established in step530, to the application130′ running on the virtualised platform110′ on the server100′. In step550, the virtual channel320is established between the initialised server peripheral manager simulator component160and the client peripheral manager simulator component245. The application130′ connects to the client localhost/TCP made available on the application virtualisation platform110′ in step540, is virtualised and redirected via the virtual channel320back to the client peripheral manager240via the client peripheral manager simulator component245.

Once the virtual channel320is established, all communication between the application130′ and the peripheral device with which it is to communicate is performed via the virtual channel320, that is, all data is transferred over the virtual channel320, either from the server100′ to the client200or from the client200to the server100′.

The virtual channel320can be established regardless of the type(s) of communications network(s) operating within the communications link310and effectively provides a channel of direct communication between the application130′ running on the application virtualisation platform110′ and one of the peripheral devices250,260,270,280connected to the client200via link290. As described above, the application130′ may be a print application and the peripheral device connected to the client200may be a printer.

Naturally, other functionality may be provided by the peripheral devices, for example, scanning or reading. In this case, the scan or read is passed back from the relevant peripheral device250,260,270,280via link290to the server peripheral manager simulator component160, via the associated client peripheral manager240, the client peripheral manager simulator component245and the virtual channel320. From the server peripheral manager simulator component160, the scan or read is passed to an associated application within the application virtualisation platform110′. The information relating to the scan or read may then be stored in a database or memory (not shown) if required.

In block560, the session ends when the connection between the server100′ and the client200is terminated when the user logs off the client200.

As described above, the server peripheral manager simulator component is launched each time the virtualised application is launched, that is, every time a client connects to the server. However, it is also possible to have a single server peripheral manager simulator component which provides a connection port for each instance of the virtualised application being launched on the server in response to the connection of a client with the server. The latter option is not preferred as all connections between clients and the server will be lost if the server peripheral manager simulator needs to be restarted for whatever reason.

A peripheral emulator is described above which is associated with the application on the server which needs to connect to a peripheral device on the client. However, in an alternative embodiment, its functionality can be included in the server peripheral manager simulator component.

Each computing system described herein, also referred to as a platform, client, server, or back end, may include at least one processing unit configured to execute one or more instructions to perform one or more operations consistent with embodiments of the invention. Each computing system generally includes an input/output (“I/O”) interface, a display, and external devices. The I/O interface may be configured to receive data from the display and data from the external devices that is communicated to the processing unit and may be configured to output data from the processing unit to the display and external devices. The display may be, for example, a computer monitor or a screen on a mobile phone or a tablet. Alternatively, the display may be a touch screen that not only functions to permit a user to receive and view output data, but also functions to permit the user to input data with, for example, an onscreen virtual keyboard. The external devices may include, for example, additional user input devices such as a keyboard, a keypad, a mouse, a microphone, etc., and additional user output devices such as speakers, etc. The computing system may also include a network adapter, such as a network interface card or a transceiver, that supplies the physical connection with a network and that is configured to transmit data and receive over the network.

Each computing system includes a memory configured to store one or more software modules or applications and/or an operating system, where each application and the operating system each generally comprise one or more instructions stored as program code that may be read from the memory by each processing unit. The instructions, when executed by the processing unit, may cause the processing unit to perform one or more operations to thereby perform the steps necessary to execute steps, elements, and/or blocks embodying the various embodiments of the invention.

The memory may represent random access memory (RAM) comprising the main storage of a computer, as well as any supplemental levels of memory, e.g., cache memories, non-volatile or backup memories (e.g., programmable or flash memories), mass storage memory, read-only memories (ROM), etc. In addition, the memory may be considered to include memory storage physically located elsewhere, e.g., cache memory in a processor of any computing system in communication with the client device16, as well as any storage device on any computing system in communication with the client device16(e.g., a remote storage database, a memory device of a remote computing device, cloud storage, etc.).

The routines and/or instructions that may be executed by the one or more processing units to implement embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module, interface, engine element, tool, or sequence of operations executed by each processing unit, will be referred to herein as “program modules”, “computer program code” or simply “modules” or “program code.” Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. Given the many ways in which computer code may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.), it should be appreciated that the embodiments of the invention are not limited to the specific organization and allocation of program functionality described herein.

The flowcharts, block diagrams, and sequence diagrams herein illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart, block diagram, or sequence diagram may represent a segment or portion of program code, which comprises one or more executable instructions for implementing the specified logical function(s) and/or act(s). Program code may be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the blocks of the flowcharts, sequence diagrams, and/or block diagrams herein. In certain alternative implementations, the functions noted in the blocks may occur in a different order than shown and described. For example, a pair of blocks described and shown as consecutively executed may be instead executed concurrently, or the two blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Each block and combinations of blocks can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

The program code of any of the embodiments described herein is capable of being individually or collectively distributed as a program product in a variety of different forms. In particular, the program code may be distributed using a computer readable media, which may include computer readable storage media and communication media. Computer readable storage media, which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer. Communication media may embody computer readable instructions, data structures or other program modules. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above may also be included within the scope of computer readable media.

While the invention has been illustrated by the description of one or more embodiments thereof, and while the embodiments have been described in considerable detail, they are not intended to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. By way of example, although the embodiments of the present invention has been described with reference to an airport environment in which airport-related applications are run with each client corresponding to a check-in terminal, for example, connected to a single server, it will be appreciated that the present invention can also be used in non-airport environments irrespective of worldwide location, for example, cruise liner terminals, ferry terminals, hotels, resorts and conference centres, that is, any application where multiple clients need to establish a connection with a server to access the same application over a communications link having multiple addressing schemes and translation across heterogeneous local and wide area networks, including mobile carrier networks, to enable communications between applications running on the server and peripheral devices associated with the clients. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and methods and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the scope or spirit of Applicant's general inventive concept.