A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The invention relates to information processing methods and apparatus for providing information through applications and functions in a distributed information technology system to users at potentially many different networked locations.
The demand by users for information, resulting from applications and functions provided by networked information technology systems (including computing, telephony, storage, display and other information systems of all types) has grown at an astounding pace. Many aspects of life now depend upon such information technology systems to provide information needed and wanted in everyday activities. The providing of information to users, and the applications and functions that create that information, is done at entities and enterprises of all sizes from major corporations and other large enterprises down to small businesses and individuals. Individual users have increasing demands for information technology systems whether or not such individual users are associated with any particular enterprise.
The architecture of information processing systems is changing to meet the demands of enterprises and individual users by providing greater access to information. Users are mobile and want information that is available wherever the users are located. This demand has surfaced with a large growth in wirelessly networked (“wireless fidelity” or “Wi-Fi”) computers. Frequently, the computers are small portable computers running full operating systems such as Microsoft Windows or equivalents. Increasingly, the computers are thin clients without full operating systems and without full hardware or may also be Personal Digital Assistants (“PDAs”), mobile phones, or other web-enabled devices.
If a user visits locations within a single enterprise or a user visits hotels, airport lounges, coffee shops or other locations at multiple enterprises, the availability of an Internet connection is frequently provided by one or more enterprises. Wayport, T-Mobile and Boingo are popular Internet access providers that operate at many different locations. Wireless connections are becoming available on a region-wide basis without requirement for being located on the premises of any particular enterprise.
While Internet access is becoming wide spread, the functions demanded by users are not satisfied by merely providing access to networks alone. Users want and increasingly are demanding computer program applications such as Microsoft Office, Open Office, web browsers, Adobe Reader, voice over IP (internet protocol), soft phone telephony and many other functions. Such other functions in addition to such applications include print/copy/fax/scan operations, directory listing and file organization operations, storage and retrieval operations and other information processing and information technology operations of all kinds. These functions are desirably available wherever the user is located and whenever the user wants access to the functions.
The distributed availability of application programs has been offered by a number of vendors such as Citrix Systems, Inc. The Citrix system is generally described in U.S. Pat. No. 6,785,726 B1 ('726 patent). The '726 patent describes client/server systems in which the server executes one or more applications for a client. The client/server system is commercially available as the WINFRAME system from Citrix Systems, Inc and includes a number of application servers. Each application server can support multi-tasking of several applications that may be requested by a user at a workstation or other user device remotely located from the server.
In order to minimize response time, maximize system throughput, and generally give the appearance that the user's application program is executing at the client, an administrator will often provide a user with access to a number of application servers that host the desired applications that are capable of servicing the user's requests. However, in order for such a system to operate efficiently, the application servers must dynamically coordinate access to system resources shared among the application servers as well as coordinate access to the application servers by the user. One way in which this coordination is done is by selecting one server from the group to act as the “master server” where the master server is responsible for keeping track of resource usage both by users and application servers. In other embodiments, multiple master servers are employed or no master server is employed and the coordination is distributed among the servers.
The '726 patent relates to a method and apparatus for delivering events to local and remote servers. In the '726 patent, different groups are formed by a plurality of servers where the servers of a group are connected by an event bus. The system posts local events on the local event bus and remote events go to a remote event bus.
Server-based computing is alternatively referred to as server-centric, centralized, mainframe, application-server, or client-server computing. In such server-based computing, applications are resident, executed and supported at the server as distinguished from at the user device. Similarly, in server-based computing systems, data is stored on the server and need not be permanently stored at the user device. After a session on a user device is terminated in a server-based computing system, any new session that follows on a user device requires that data be re-accessed at the server. User device operations (including key strokes, mouse clicks, and screen images) are communicated over the network between user device and server. The user device can be a terminal, work station, Mac, PC, terminal emulation software, thin client, handheld computer, PDA or other user device.
Computers and other user devices support a large increase in delivery of information to users. Information is delivered through web browsing, e-mail, voice, video and other ways. The information is in any form and often is a notice such as an advertisement. Many advertisers deliver ads over browsers to users and the practice has become widespread and commercially important. In response to the proliferation of such notices and advertisements, many software products and services have become available to block unwanted intrusion of ads and other notices to users.
When a user is web browsing, the control of the information on the desktop of a user device is by browser companies (“web content portals”) such as MSN, Yahoo, AOL and Google as well as by the servers of the direct web pages accessed by user request. Many different types of ads appear on the user's desktop during web browsing and these ads are at times appealing to users, but at other times ads are annoying to users. The serving of ads to users can be beneficial to users when information of interest to users is delivered to users. The cost of providing information to users is supported by ad revenue derived from advertisers.
The process of delivery of ads that are acceptable to and welcomed by users needs improvement. Currently online ad-serving engines examine web page content and deliver advertisements (“ads”) based on the respective web page content. As a result ads are not targeted to a particular end-user nor are they relevant to applications or content beyond that particular web page. Ads that are of no interest to a user are annoying. Ads that are coupled with valued services to users are more welcomed by the users. Advertisers have a great interest in improved advertising delivery and quality through increased targeting, improved ad relevancy and application independence. Such advertising represents greater revenue to advertisers.
The display and serving of ads, notices or other information usually occurs only when a user is actively web browsing. Whenever a user device is being used for other purposes such as computer program applications (for example, word processing or other office programs), no ad-serving occurs. It has been estimated that as much as 75 percent or more of a user's time on a user device occurs when the user device is in a non-ad-serving mode. Hence, from the perspective of advertisers, a large amount of untapped user time is unavailable for advertising.
While the delivery of information through server-based applications and other functions is increasing, there is a need for improved server systems and user devices.
The present invention is an information technology system for providing functions to users at user devices connected at times by a network. A server connected to the network delivers functions and information to the users. A plurality of user devices are connected to the network where each user device displays a portal to enable users to request the functions from the server. Each user device displays multiple regions in the portal including a first region for display of function information from one or more of the functions and including one or more second regions, lockable by the server to prevent changes by users, for display of the server-controlled information.
In one embodiment, the central server provides distributed availability of application programs to the user devices. One or more of the applications displays in the first region under control of a user interacting with the user device. A navigation bar in one of the second regions presents navigation choices to users. Other second regions include a top bar and a side bar under exclusive control of the server. In one embodiment, the top bar and the side bar are used for displaying ads or other information under control of the server and lockable by the server to prevent changes by users. Regardless of which application is being used and controlled by the user, ads or other notification information is served under control of the server.
In embodiments where, at times, the user device does not have network connection to a server, local application portal operation occurs where information in the regions controlled exclusively by the server is provided by a cache that stores a history of ads or other server information down-loaded from the server when networked operation was present
In embodiments where security is of interest, information exchanged between the user device and the server is stored exclusively in a single protected directory on the user device and the server and user device cooperate to guarantee the security of information in the protected directory.
In the present invention, the display and serving of ads, notices or other information may occur up to 100 percent of the time that a user is actively using a user device. Since the user in some embodiments cannot alter the display of the server-controlled regions, a large increase in the amount of time that ads or other notices are served occurs. Accordingly, the present invention greatly enhances the amount of time for serving ads or other notices to users.
The present invention provides these and other features that will be apparent from the following description.
Each of the user devices 5 is connectable or disconnectable to the servers 9 through connection or disconnection by connection 1 over the network 10. The central servers 9 operate using a server control system 20 which may include a server-centric system from Citrix Systems, Inc, Provision Networks, Tarantella or others. The server control system 20 includes a processor 24 for executing, at a server 9, applications and other functions for each of the network-connected user devices 5. The server control system 20 may or may not include storage 26 for storing data for user devices 5. The server control system 20 is able to perform all of the operations at the server 9 site that are often performed locally by full (“fat”) user devices 5. Such applications are typically any of the applications available from Microsoft such as the applications of Microsoft Office (Word, Excel, PowerPoint and so forth), Microsoft Visio and applications available from other vendors such as Open Office, Adobe Acrobat and in general, any application available from any vendor.
Referring to
The control elements 21 include additional elements to those found in the server control system 20 such as enhanced functions, authentication, compliance and security. The network connection 22 provides network connections to network 10 and the user devices 5. The server portal control 23 functions to control the application portals 31 on each of the user devices 5. The content source 25 provides the content, under control of server 9, in addition to the application content provided to the user devices 5 by the processor 24.
Full client user devices include desktop computers, laptop computers, PC's, MAC's and other information technology systems that typically have disk drives and full operating systems. Most PC's use a windows operating system which currently is typically the XP Operating System from Microsoft Corporation. Full clients generally have the capacity to modify the operating system and have tended to be easily corrupted. In order to reduce the security risks inherent in full clients, extensive security software is essential to guard against viruses, hacker tools, trojans, malware, spyware, malicious programs, harmful scripts and other elements presenting security risks.
Thin clients are computer processors designed to be small and simple, usually without a disk drive, so that the bulk of the information processing for the user occurs on the network-connected server 9. User devices 5 that are thin clients in the distributed service system 2 typically do not have all of the capabilities of PCs or other full-client devices. Thin clients in server-based computing systems most commonly do not have persistent storage devices for client data and do not execute programs. Thin clients typically run simplified operating systems. Typically, the thin client does not have the capability of modifying the operating system configuration. Although thin clients as user devices 5 are not as easily corrupted as full clients, thin clients still must be operated so as to prevent security risks.
The
The device control 30 includes a plurality of modules 33 (MOD) including modules 33-1, 33-2, . . . , 33-M for controlling the application portal 31 and other operation of the user device 5. When the user device 5 is network connected to the server 9 of
In
The server top bar 34-3, in one example, is used for displaying banner ads and can be used to display other information deemed desirable by the server 9. The server navigation bar 34-4, in one example, is used for displaying navigation icons, navigation links and other controls for use by a user in selecting and controlling the application 34-6 of interest to the user. Each application 34-6 is an example of a function executed by the server 9 of
The application portal 31 of
In the application portal 31 environment, any number of server-installed and licensed application programs can be executed remotely by the user under control of the application portal 31. Such applications are typically any of the applications available from Microsoft such as the applications of Microsoft Office (Word, Excel, PowerPoint and so forth), Microsoft Visio, Adobe Acrobat and any other application made available by the server 9.
In an environment where the user device 5 is a thin client, then only virtual mode operation is available to the user. In an environment where the user device 5 is not connected by a network to server 9, then only execution under the local desktop 32 is available. However, in some embodiments, in order to avoid unnecessary complexity to a user, local desktop operation is performed with a pseudo-virtual display that appears as the virtual mode application portal display while actual execution is mapped to local desktop operation. Under normal virtual mode application portal operation, storage of information occurs on the server 9, while in local mode operation, information is cached in storage cache 28 on the user device 5. When caching is used on the user device 5, synchronization between the user device cache 28 and the server 9 storage 26 of
In one preferred embodiment, virtual mode operation using application portal 31 is preferred whereby the user is relieved of many responsibilities with respect to installation, configuration, licensing, updating, upgrading, security and other matters normally the responsibility of a user. Also, the server 9 normally has processing power that exceeds the processing power of a user device 5 and hence greater performance is expected from the virtual mode operation provided that the bandwidth of the network link through network 10 between the user device 5 and the server 9 is adequate.
The virtual mode operation when provided as a service also has the advantage that the server 9 controls the application portal display in the regions of bars 34-1, 34-2, 34-3, 34-4, 34-5 and 34-6 while leaving control of the application 34-6 to the user. The manner in which the server 9 controls the application portal display in the regions of regions of bars 34-1, 34-2, 34-3, 34-4, 34-5 and 34-6 is a function of the type of virtual mode service offered to users. In one typical example, a low price (or free) service is provided to users of the application portal 31 and the user devices, in exchange for a low price, display ads in the server top bar 34-3 and the server side bar 34-5 during all operations of an application or applications in the application region 34-6. In another typical example, the virtual mode operation, virtual mode service is purchased by either an individual or an employer for multiple employees and the employer elects to serve employee-relevant notices or other information in the bars 34-3 and 34-5. In such an example, the employer may chose to hide the bars 34-3 and 34-5, or allow the user to hide the bars 34-3 and 34-5, under certain circumstances. Under other circumstances, such as an employer-wide, department-wide, or individual employee notices, the server 9 operates to direct notices or other information directly to the bars 34-3 and 34-5 of the relevant ones of the employees using the virtual mode operation without the ability of the user to hide the information. Many different types of notices or other information may be served. For example, as described, employee notices including meeting announcements, company policies, alerts whether of an emergency nature or otherwise, company news, job openings and so forth.
In
In addition to the application region for application 34-6, the
The server navigation bar 34-4, in one example, is used for displaying navigation icons, navigation links and other controls for use by a user in selecting and controlling the application 34-6 of interest to the user. The server navigation bar 34-4 can be used to display other information deemed desirable by the server 9.
In
In
There are a number of different methods for delivering ads, notices and other information in the server-controlled regions 34-3, 34-4 and 34-5 of the application portal 31. These include banners, buttons, pop-up (down, side) windows, text lines having hyperlinks to web sites or links to other locations. Various different technologies are available for delivering ads including images and Flash. Typically, images are either in GIF or JPEG format. In general, GIF images are better for ads containing text and JPEG images are better for pictures. Flash is a vector-based animation which allows advertisements or other notices to have rich graphics and animation in a relatively small file size.
The larger the file size of an ad, the longer it takes to display the ad. Marketing reports have shown slower ads have lower click-thru rates. The same reports have also shown that ad effectiveness increases as the size of the ad increases. The use of rich media in banner ads increases ad effectiveness. Animated ads are about 18 times more effective then static GIF/JPEG images.
For some embodiments of an application portal, image ads are grouped into three sizes, small, medium and large. Typically, the file size of an image ad is about 15 KB to 20 KB and the file size of a Flash animation is 1 MB. The following TABLE 1 summarizes the industry standards for image ads:
After the algorithms of logon module 60-1 are executed,
In module 60-2, the count is set equal to 1 and the navigation bar 34-4 is drawn by the draw_bar module 60-3 as shown in detail in
In module 60-4, the count is tested and if equal to 1, the “Yes” leg is selected and the module 60-5 populates the navigation bar 34-4 with the icons and other components as indicated in
The sequence is then returned to the count path and is examined in module 60-7 to determine if the count is equal to 2 and the first time through is not so the “No” leg is selected. The count path continues and is examined in module 60-10 to determine if the count is equal to 3 and the first time through is not so the “No” leg is selected. The count path continues and the count is incremented by 1 in module 60-12 to a count of 2. Next the count is examined in module 60-13 to determine if the count is less than 4 and the first time through is, so the “Yes” leg is selected returning to the draw_bar module 60-3.
The draw_bar module 60-3 then draws the bar 34-5 as shown in detail in
The sequence is then returned to the count path and is examined in module 60-10 to determine if the count is equal to 3 and the second time through is not so the “No” leg is selected. The count path continues and the count is incremented by 1 in module 60-12 to a count of 3. Next the count is examined in module 60-13 to determine if the count is less than 4 and the second time through is less than 3 and the “Yes” leg is selected returning to the draw_bar module 60-3.
The draw_bar module 60-3 then draws the bar 34-3 as shown in detail in
The sequence is then examined in module 60-10 to determine if the count is equal to 3 and the third time through is equal to 3 and the “Yes” leg is selected. The module 60-11 operates to start serving the server top bar 34-3 with banner ads under control of the ads supplied by the content source 25 of
The count path continues and the count is incremented by 1 in module 60-12 to a count of 4. Next the count is examined in module 60-13 to determine if the count is less than 4 and after the third time through is equal to 4 and the “No” leg is selected passing execution to the module 60-14 that permits a user to select an application for execution. For each of the “Yes” legs of the modules 60-4, 60-7 and 60-10, the
In
The sequence of
Advertising Bars and Information Bars. The system 2 of
The delivery of ads on the application portal 31 is application independent, unlike systems which deliver ads based on web page content alone, and delivery of ads occurs during execution of essentially all applications (including, for example, Microsoft Outlook, Word, Excel, PowerPoint or any other application or function). The serving server-controlled information is not under the control of the user. The serving of server-controlled information is remotely controlled by the server 9. The ads are controlled by the server 9 and hence are, if the server desires, independent of any user control and can always be displayed on top. Typically, users enter into an agreement to receive ads under favorable terms and conditions acceptable to and desired by the user.
A user having an account connects through user device 5 to the remote service provided by server 9 and then the server 9 deploys the application portal 31 with the Application Desktop Toolbars (“Appbars”) such as bars 34-1, 34-2, 34-3, 34-4 and 34-5 as described in connection with
An appbar is a particular kind of windows application that is typically aligned to the right or left edge, or top or bottom, of the screen display, and when it is docked, if some other window is maximized, the appbar is still visible because the system controls the rest of the windows to operate in a smaller working area. An example of an appbar is the windows TaskBar 34-7, that is, the bar with the list of opened applications that is typically present in every Windows Desktop. The TaskBar 34-7 is under user control and can be displayed or hidden by the user.
Upon initial user log on (see module 60-1 of
The implementation of the Ads Serving Regions as described in
The Ads Serving Regions communicate with the windows operating system through the API function called SHAppBarMessage. This function has two parameters, the first is the message to be sent to the operating system, and the second parameter is a structure data type containing additional information regarding the message to be sent. An example is the following TABLE 3.
Note that the parameter dwMessage is the message being sent and it can be one of the following enumerating values of TABLE 4
Using the aforementioned API SHAppBarMessage( ) a function such as module 70-1 in
After creating the bar serving region, code for the module 70-2 of
After setting the proposed bar region size and location, the resulting rectangle is checked with a query by the module 70-3 of
After the resulting rectangle is checked with a query by the module 70-3 of
The function of the module 70-6 of
The module 70-6 of
The operation of the modules of
The Ads Serving Regions using the bars created by the
Ads Caching. Referring to
The ads cache 27 of
TABLE 11 functions as a cache for storing server-controlled information such as ads, wherein when one or more of the user devices 5, disconnectable from said server 9, is disconnected, the user device 5 operates under local control. Under local control, the user devices 5 execute the display processes and sequentially displays the n stored values of server-controlled information. Whenever a user device 5 is connected to the server 9, the cache 28 through TABLE 11 operation is refreshed with up to the latest n stored values of server-controlled information from the content source 25 of
Referring to
In
In one example, the local management system 8-1 is a legacy computer system installed at one enterprise. For example, if the entity is a hotel, the local management system is typically the registration, billing and accounting system used by the hotel's property management system to service guest accounts. In that example, distributed service system 2, other than the local management system 8-1, provides client user devices 5-1 for use by the hotel guest for accessing information and functions of interest to the guests. The user devices 5 in such an example are located in the guest rooms, in the lobby and in other public and private locations about the hotel. The information and functions available to the guests on the thin client users include, for example, internet access for checking e-mail or other Web functions, Microsoft Word for word processing functions, other Microsoft Office applications, Hotel services such as room service food ordering, movie selection, account settlement and many others.
In
In sub-site 3-21, the user devices 5-21 include a number of users like the client users U-1, U-2, U-3, . . . , U-NE of user devices 5-1 of site 3-1. The local edge server 4-2 connects through local area network 6-21 to the user devices 5-21. Also, sub-site 3-21 includes a local management system 8-21 which interconnects through local area network 6-21 to the user devices 5-21. In one preferred embodiment, the user devices 5-21 are thin clients or full clients and the local edge server 4-2 is a Citrix server of the type described in the '726 patent. Alternatively, the functions of the Citrix server of the type described in the '726 patent can be performed entirely or partly in the central servers 9. The local management system 8-21 is a system typically not under control of the central servers 9 or other servers 4 in the distributed service system 2 of
In sub-site 3-22, the user devices 5-22 include a number of users like the client users U-1, U-2, U-3, . . . , U-NE of user devices 5-1 of site 3-1. The local edge server 4-2 connects through local area network 6-22 to the user devices 5-22. Also, sub-site 3-22 does not include a local management system 8. In one preferred embodiment, the user devices 5-22 are thin clients or full clients and the local edge server 4-2 is a Citrix server of the type described in the '726 patent. Alternatively, the functions of the Citrix server of the type described in the '726 patent can be performed entirely or partly in the central servers 9.
In sub-site 3-2M, the user devices 5-2M include a number of users like the client users U-1, U-2, U-3, . . . , U-NE of user devices 5-1 of site 3-1. The local edge server 4-2 connects through local area network 6-2M to the user devices 5-2M. Also, sub-site 3-2M includes a local management system 8-2M which interconnects through local area network 6-2M to the user devices 5-2M. In one preferred embodiment, the user devices 5-2M are thin clients or full clients and the local edge server 4-2 is a Citrix server of the type described in the '726 patent. Alternatively, the functions of the Citrix server of the type described in the '726 patent can be performed entirely or partly in the central servers 9. The local management system 8-2M is a system typically not under control of the central servers 9 or other servers 4 in the distributed service system 2 of
In
In
While the invention has been particularly shown and described with reference to preferred embodiments thereof it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention.