WO2012103121A1 - Information delivery system for, and methods of, interaction with multiple information forms across multiple types and/or brands of electronic devices, such as televisions, mobile phones, and computing devices - Google Patents

Information delivery system for, and methods of, interaction with multiple information forms across multiple types and/or brands of electronic devices, such as televisions, mobile phones, and computing devices Download PDF

Info

Publication number
WO2012103121A1
WO2012103121A1 PCT/US2012/022406 US2012022406W WO2012103121A1 WO 2012103121 A1 WO2012103121 A1 WO 2012103121A1 US 2012022406 W US2012022406 W US 2012022406W WO 2012103121 A1 WO2012103121 A1 WO 2012103121A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
channel
information
platform
touchlet
Prior art date
Application number
PCT/US2012/022406
Other languages
French (fr)
Inventor
Michael Wetzer
Thomas Theriault
Mark Dingman
Original Assignee
Cyandia, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/273,894 external-priority patent/US8819726B2/en
Application filed by Cyandia, Inc. filed Critical Cyandia, Inc.
Publication of WO2012103121A1 publication Critical patent/WO2012103121A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/487Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4821End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Definitions

  • inventions relate to an apparatus to provide secure user-centric information via at least one user platform operated by a user.
  • the apparatus includes at least one communication interface to facilitate wired and/or wireless communications with the at least one user platform via one or more transmission media and at least one memory to store processor-executable
  • the apparatus further includes at least one processor communicatively coupled to the at least one communication interface and the at least one memory. Upon execution of the processor-executable instructions by the at least one processor, the at least one processor establishes a bidirectional, asynchronous user session to manage provision of and interaction with the secure user-centric information.
  • the session is established by implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, controlling the at least one communication interface to receive, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity.
  • the session is further established by, if the user and the user platform are authenticated, controlling the at least one communication interface so as to cause the bidirectional, asynchronous user session to be established between the apparatus and a web browser of the at least one user platform and to transmit to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform.
  • the processor is configured to control the at least one communication interface to cause the bidirectional, asynchronous user session to be established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
  • Another embodiment relates to a method for providing secure user-centric information via at least one user platform operated by a user.
  • the method includes implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity.
  • the method further includes, if the user and the user platform are authenticated, causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform.
  • the bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
  • Another embodiment relates to at least one computer readable storage medium storing processor-executable instructions that, when executed by at least one processor, perform a method for providing secure user-centric information via at least one user platform operated by a user.
  • the method includes implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity.
  • the method further includes, if the user and the user platform are authenticated, causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform.
  • the bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
  • Figure 1 illustrates a high level block diagram of an example of an information delivery system that includes a personal information delivery application for interaction with multiple information forms across multiple types, brands, and/or models of electronic devices, according to the present invention
  • Figure 2 illustrates a functional block diagram of an example of a channel of a personal information delivery application for providing users access to and interaction with information, according to the present invention
  • Figure 3 illustrates a screenshot of an example of a client GUI of the personal information delivery application and shows an example of a channel grid, according to the present invention
  • Figure 4 illustrates various screenshots of certain components of an example of an "Around Me” channel of the personal information delivery application, according to the present invention
  • Figure 5 illustrates a functional block diagram of an example of a client runtime environment, which is the runtime environment of the user devices of the information delivery system, according to the present invention
  • Figure 6 illustrates a functional block diagram of an example of a personal information delivery application architecture for supporting the Flex presentation framework, according to the present invention
  • Figure 7 illustrates a functional block diagram of an example of a client architecture of the personal information delivery application, according to the present invention.
  • Figure 8 illustrates a functional block diagram of an example of a communication flow between the client side and the server side of the personal information delivery application, according to the present invention
  • Figure 9 illustrates a functional block diagram of an example of a communication flow between components at the server side of the personal information delivery application, according to the present invention.
  • Figure 10 illustrates a functional block diagram of a portion of the personal information delivery application architecture and a process of performing a user login operation, according to the present invention
  • Figure 1 1 illustrates a functional block diagram of a portion of the personal information delivery application architecture and a process of performing data management and eventing and alerting, according to the present invention
  • Figure 12 illustrates a screenshot of an example of the GUI of channel application catalog of the personal information delivery application by which users may acquire channels for use with their devices, according to the present invention
  • Figure 13 illustrates a screenshot of an example of the client GUI that includes another example of a channel grid, according to the present invention
  • Figure 14 illustrates screenshots of certain components of an example of a "Stock Watch” channel of the personal information delivery application, according to the present invention
  • Figures 15 through 18 illustrate screenshots of a client GUI of the personal information delivery application and an example of a process of eventing and alerting using the personal information delivery application, according to the present invention
  • Figures 19 through 26 illustrate screenshots of certain channels of the personal information delivery application and an example of a process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data, according to the present invention
  • Figures 27 through 40 illustrate screenshots of an example of a
  • Figures 41 through 44 illustrate screenshots of certain components and operations of an example of a "Home Security" channel of the personal information delivery application and a process of alerting a user, according to the present invention
  • Figure 45 illustrates screenshots of certain components of an example of a "NetFlix" channel of the personal information delivery application, according to the present invention.
  • Figures 46 and 47 illustrate screenshots of certain components of an example of a "Remote Healthcare" channel of the personal information delivery application, according to the present invention
  • Figure 48 illustrates screenshots of certain components of an example of a "My Medicine Cabinet” channel of the personal information delivery application, according to the present invention
  • Figure 49 illustrates screenshots of certain components of an example of an "MS Word” channel of the personal information delivery application, according to the present invention
  • Figure 50 illustrates screenshots of certain components of an example of an "Email" channel of the personal information delivery application, according to the present invention
  • Figure 51 illustrates screenshots of certain components of an example of a "News Reader” channel of the personal information delivery application, according to the present invention
  • Figure 52 illustrates a screenshot of an example of an enterprise client GUI that includes an example of a login window, according to the present invention
  • Figures 53 and 54 illustrate screenshots of the enterprise client GUI showing two example channel grids that may be related to the enterprise, according to the present invention
  • Figure 55 illustrates screenshots of certain components of an example of a "Personal Calendar” channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 56 illustrates screenshots of certain components of an example of a "myNet” channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 57 illustrates screenshots of certain components of an example of a "Sales Pipeline” channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 58 illustrates screenshots of certain components of an example of an "Open Room” channel that is suitable for use in enterprise applications, according to the present invention
  • Figures 59, 60, and 61 illustrate screenshots of certain components of an example of a "Security Threat Trends" channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 62 illustrates a block diagram of an example of an enterprise user hierarchy that shows individual users, roles assigned to users, and/or users assigned to groups within an enterprise, according to the present invention
  • Figure 63 illustrates a screenshot of an analyst client GUI that includes an example of a channel grid for users (i.e., analysts) in an analysts group of the enterprise, according to the present invention
  • Figure 64 illustrates a screenshot of a manager client GUI that includes an example of a channel grid for users (i.e., managers) in a managers group of the enterprise, according to the present invention
  • Figure 65 illustrates a screenshot of an example of a channel application catalog that includes content that corresponds to users (i.e., managers) in the managers group of the enterprise, according to the present invention
  • Figure 66 illustrates a screenshot of a director client GUI that includes an example of a channel grid for users (i.e., directors) in a directors group of the enterprise, according to the present invention
  • Figure 67 illustrates a screenshot of an example of a channel application catalog that includes content that corresponds to users (i.e., directors) in the directors group of the enterprise, according to the present invention
  • Figure 68 illustrates screenshots of certain components of an example of an "Alerts" channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 69 illustrates screenshots of certain components of an example of a "Personnel Activity" channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 70 illustrates screenshots of certain components of an example of a "Reports" channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 71 illustrates screenshots of certain components of an example of a "User Administration” channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 72 illustrates screenshots of certain components of an example of a "Catalog Administration” channel that is suitable for use in enterprise applications, according to the present invention
  • Figure 73 illustrates a functional block diagram of an example of a personal information delivery application architecture for supporting a web presentation framework of the information delivery system, according to the present invention
  • Figure 74 illustrates a functional block diagram of an example of a client architecture of the personal information delivery application for supporting the web presentation framework, according to the present invention
  • Figure 75 illustrates a screenshot of an example of a web browser, which is running on a user device, for displaying a web page of a channel grid to the user, according to the present invention
  • Figure 76 illustrates a screenshot of the web browser displaying a web page of a "Home Security" channel that is operating in a substantially full-screen mode, according to the present invention
  • Figure 77 illustrates another screenshot of the web browser, which is running on a user device, for displaying a web page of another channel grid to the user, according to the present invention.
  • Figure 78 illustrates a screenshot of the web browser displaying a web page of a "Stock Watch" channel that is operating in a substantially full-screen mode, according to the present invention.
  • Various embodiments of the present invention describe an information delivery system for, and methods of, interaction with multiple information forms across multiple types, brands, and/or models of electronic devices, such as mobile devices (e.g., cell phones), portable devices (e.g., tablets, laptop computers), desktop computers, and televisions (e.g., set top boxes, intelligent TVs).
  • the invention provides a system for and methods of interfacing with televisions via a graphical user interface and secure receipt of information relating to television programming.
  • the information delivery system for and methods of the invention provide the display of and access to secure user-centric information via the construct of a channel grid framework serving as a desktop on a user device.
  • the channel grid framework includes multiple user-selectable items that provide access to
  • the user and the user device are first authenticated to receive the secure user-centric information, and the user-selectable items included in the channel grid framework on the desktop for the user device are based on information access rights and security protocols defined for the corresponding channels, the user, and the user device.
  • Information delivery system 100 may include an application server 110 upon which is installed the PID application 112 that has access to one or more information sources 114.
  • One or more users 116 are associated with information delivery system 100. Users 116 may be, for example, individuals or groups of individuals. Each user 116 may have one or more user devices 118.
  • Application server 110, the one or more information sources 114, and user devices 118 may be connected to a network 120 by any wired and/or wireless means.
  • Network 120 may be, for example, any local area network (LAN) and/or wide area network (WAN) for connecting to the Internet.
  • Application server 110 may be a networked computer, such as the networked server of the owner and/or provider of PID application 112.
  • the one or more information sources 114 may be, for example, networked computers of the owners and/or providers of the information stored thereon.
  • certain information 122 may be stored on information sources 114.
  • Information 122 may be any information that can be delivered electronically over network 120 and that is capable of being consumed by users 116 via their user devices 118. More
  • information 122 of the one or more information sources 114 may include different types and/or forms of information, data, and/or content.
  • Examples of information 122 may include, but are not limited to, text, graphics, pictures, 3D graphic visualization of objects, sound, sensor data, streaming media data (e.g., streaming video and audio data), web-services data, Really Simple Syndication (RSS) feeds, image data, eventing and alerting, raw data, any type of information, and the like.
  • RSS Really Simple Syndication
  • Information 122 of information sources 114 may be any information that resides outside of the application server 110 environment. However, with regard to information to be consumed by users 116 via their user devices 118, the invention is not limited to "external" information sources, such as information sources 114. Users 116 may also consume information from "internal” information sources (not shown), which are any information sources that reside directly at application server 110 and/or directly at user devices and/or from sensors contained on or communicating with user devices 118.
  • PID application 112 is a software application that facilitates user interaction with multiple information forms across multiple types, brands, and/or models of electronic devices (e.g., user devices 118). Generally, PID application 112 is operating under a client-server model of computing in which application server 110 is the server and each user device 118 is the client.
  • user devices 118 have a runtime environment that includes, but is not limited to, the following attributes.
  • HTML5 is the next major revision of the HTML standard, which is currently under development.
  • Figures 1 through 11 describe the system architecture of information delivery system 100 of the present invention implemented for supporting the Flex presentation framework.
  • presentation framework may be implemented using Adobe® Flex® from Adobe Systems Incorporated (San Jose, CA).
  • Adobe® Flex® is an open source framework for building highly interactive, expressive web applications that deploy consistently on all major browsers, desktops, and operating systems by leveraging the Adobe Flash Player and Adobe AIR® runtimes.
  • user devices 118 i.e., client devices
  • client devices are any Adobe AIR-enabled devices.
  • Examples of user devices 118 may include, but are not limited to, any type, brand, and/or model of Adobe AIR-enabled desktop computer; Adobe AIR-enabled laptop computer; Adobe AIR-enabled tablet computer; Adobe AIR-enabled net-book computing device; Adobe AIR-enabled handheld computing device; Adobe AIR-enabled personal digital assistant; Adobe AIR-enabled enterprise digital assistant; Adobe AIR-enabled portable digital assistant; Adobe AIR-enabled telecommunications device including one of an Adobe AIR-enabled telephone, Adobe AIR-enabled cell phone, and Adobe AIR-enabled smart phone; Adobe AIR-enabled personal navigation device; Adobe AIR-enabled vehicle-based device; Adobe AIR-enabled optical disk player; Adobe AIR-enabled television; Adobe AIR-enabled game console; and the like.
  • an aspect of information delivery system 100 of the invention is that its operation is not limited to any particular type, brand, and/or model of client device and/or to any particular operating system (OS). That is, the operation of information delivery system 100 of the invention is substantially device-agnostic and/or OS-agnostic because it may operate, for example, on substantially any Adobe AIR-enabled client device. Additionally, information delivery system 100 of the invention is substantially information type-agnostic and/or information source- agnostic.
  • User devices 118 serve as a user platform operated by a user 116 to facilitate display of, and interaction with, secure user-centric information.
  • the set of user devices 118 belonging to each respective user 116 is connected in a peer-to-peer (P2P) fashion.
  • the user devices 118 of a certain user 116 may include a mobile device (e.g., cell phone), a portable device (e.g., tablet, laptop computer), a desktop computer, and a television (e.g., set top box, intelligent TV).
  • the user's cell phone, tablet, laptop computer, desktop computer, and television are connected (wired and/or wirelessly) in a P2P fashion.
  • PID application 112 of the invention provides a personalized information delivery utility that includes one or more sets of processor-executable instructions executing on one or more processors controlling various other hardware devices, with client-server system architecture, to facilitate delivery of a wide variety of information to a user, via one or more user devices or "platforms" (clients). Information is displayed on a graphical user interface (GUI) of a given user platform in a
  • presentation framework that is customized based on a "user context.”
  • the presentation framework is homogenous amongst different user platforms so as to facilitate user familiarity and ease of interaction with displayed information.
  • the presentation framework also facilitates the user's ability to take meaningful "realtime” action(s) in response to the displayed information.
  • the "user context” may be with respect to user attributes, such as, but not limited to, identity of the user, an identifier for one or more user devices associated with the user, location, activity, role, event, and any combinations thereof. Further, the "user context” may be with respect to user preferences, such as, but not limited to, source(s) of information of interest to the user, category/type of information of interest to the user, priority and/or importance of information, time (of day, week, month, year) at which information is displayed, and any combinations thereof.
  • user attributes such as, but not limited to, identity of the user, an identifier for one or more user devices associated with the user, location, activity, role, event, and any combinations thereof.
  • user preferences such as, but not limited to, source(s) of information of interest to the user, category/type of information of interest to the user, priority and/or importance of information, time (of day, week, month, year) at which information is displayed, and any combinations thereof.
  • the mechanism of PID application 112 for providing the user access to and interaction with, for example, information 122 and/or any other information is referred to as a "channel.” That is, the channel is a conduit for delivering information to a user (e.g., providing access to and interaction with information), and is an elemental feature (basic building-block) of PID application 112. With respect to the PID application 112, the channel two pieces (1) a visualization piece that is presented on the client device (e.g., user devices 118) and (2) the integration piece residing at the server (e.g., application server 110). More details of the channel with respect to PID application 112 are described with reference to Figures 2, 3, 4, and 5.
  • PID application 112 may provide at least one channel 200.
  • PID application 112 provides one or more function-specific channels 200.
  • the client side portion of channel 200 is for presenting and interacting with content.
  • There is a server side portion of channel 200 provides services and that are always running. More details of the client architecture and server architecture underlying the client and server portions of any channel 200 are described with reference to Figures 5 through 11.
  • Any channel 200 of PID application 112 provides a gateway to content, such as information 122 of information sources 1 14. Additionally, each channel 200 has a built in eventing and alerting feature, which will be described in subsequent text.
  • Each channel 200 may include a visual component 210 that is formed of a touchlet 212 and a channel application 214. Additionally, channel 200 may include one or more service components 216 and a configuration component 218.
  • Visual component 210 may be any text and/or graphic element that may be presented to users 116 for viewing on the display, screen, and/or GUI of any user device 118.
  • the design and implementation of visual component 210 may be channel-specific. That is, visual component 210 may be used to visually render at least some of the function-specific information on a GUI of a user device 118 via one or more text and/or graphic elements, and provide for interaction with the displayed channel information.
  • the invention is not limited to presenting information to users 116 in a visual fashion only. Other ways (not shown) of conveying information to users 116 may be, for example, audible indicators (i.e., sound) and/or tactile indicators (e.g., vibration).
  • Channel application 214 may be any application software that is designed to perform singular and/or multiple related specific tasks and/or functions of a certain channel 200.
  • Channel application 214 is used to manage the visual rendering of at least some of the channel-specific information on a GUI of a user device 118.
  • Channel application 214 is also designed and used to manage user interaction with the displayed channel information.
  • Some channel applications 214 support implementation of the channel in a "full screen mode" on the GUI of a user device 118 once the channel 200 is deployed on the platform of PID application 112 and a channel 200 is invoked by a user (i.e., selected by the user to operate in substantially full-screen mode).
  • a user invokes a certain channel 200 via its respective touchlet 212.
  • Touchlet 212 includes a graphic element associated with its channel 200 that appears on a portion of the GUI of a user device 118, as part of the presentation framework, to provide a gateway/portal to its channel 200.
  • a touchlet 212 has multiple behaviors as described with reference to Figure 3. Examples of function-specific channels 200 and their associated touchlets 212 are described with reference to Figure 3. Additionally, Figure 3 shows an example presentation framework of channels 200 on the GUI of a user device 118. More details of an example of a function-specific channel 200 with its visual components 210, touchlet 212, and channel application 214 are described with reference to Figure 4.
  • the one or more service components 216 of a channel 200 are used to access information from outside the environment of PID application 112. For example, service components 216 are used to retrieve the information 122 from the authorized information source(s) 114 and securely provide the retrieved information 122 to any visual components 210 of a channel 200 for display to user. Additionally, service components 216 may be used to monitor/process the channel information (e.g., via event processing and/or complex event processing (CEP)) to derive
  • secondary information e.g., events-particular changes in state or content of channel information
  • provide secondary information to any visual components 210 for conveying to the user e.g., alerts.
  • Every channel 200 has at least one service that is invokes via service components 216.
  • one service is an identity service.
  • the identity service may be used for (1) authenticating and authorizing users 116 to use a channel 200 and (2) authenticating channels 200 to invoke one or more services (at the server) in order to access content from, for example, authorized information source(s) 114.
  • Every service has identity.
  • the authorization and authentication is by channel, in this way authorization and authentication does not have to occur for each information request.
  • Configuration component 218 of any channel 200 includes information that defines the behaviors and "personality" of the channel 200. Configuration component 218 also includes user preferences. Further, the information in
  • configuration component 218 defines the services being used, the data being used, alerts, user preferences for the content and alerts, state information, synchronization information, versioning information, and the like.
  • each channel 200 There are additional authorization aspects of each channel 200.
  • user authorization may be based on user identity, user role, user device, user/device location, time, date, day of week, and the like.
  • a certain user 116 is authorized to access certain content at his/her workplace location between 8am and 8pm, and only with his/her laptop computer that has a certain MAC address.
  • configuration queries the identity subsystem (shown in Figure 6) to understand any user permissions.
  • the user may be generally authorized to use a channel 200, but there may be conditions.
  • a "presentation framework" is the manner in which information (generally multiple types or classes of information) is visually rendered (displayed to a user via a GUI of a user device 118) by PID application 112.
  • the presentation framework is customized at least in part based on a user context (e.g., user attributes and/or preferences) and the presentation framework may sometimes purposefully constrain the scope and/or type of the information displayed on a GUI of a user device at any given time.
  • the presentation framework thereby allows a user to interact with more limited information that may be particularly important to them in a given user context.
  • This purposeful limitation on displayed information facilitates the user's ability to meaningfully absorb and respond to the information (e.g., take real-time action and/or make decisions in response to the displayed information).
  • PID application 112 provides a presentation framework that is
  • the presentation framework "follows a user around” from user device 118 to user device 118 and appears the same or substantially the same to the user on any GUI of any user device 118 on which the "client portion" of PID application 112 is installed.
  • a presentation framework includes one or more user-selectable items, or "touchlets” that are selectable by a user (e.g., via touch-screen and/or point and click, sound recognition, movement recognition or image recognition user interfaces) so as to invoke a "channel," through which one or more particular types of information are displayed to the user on the GUI of the user platform in a substantially full-screen mode. More details of one example of a presentation framework of PID application 112 are described with reference to Figure 3, as well as other Figures to follow.
  • FIG. 3 a screenshot of an example of a client GUI 300 is presented that shows an example of a channel grid, which is one example of a presentation framework of PID application 112.
  • Client GUI 300 may include, for example, a main viewing panel 310. Additionally, a taskbar 312 may be provided along the top of main viewing panel 310 and a navigation bar 314 may be provided along the bottom of main viewing panel 310.
  • Taskbar 312 may include, for example, standard calendar, time, window controls, and the like.
  • Navigation bar 314 may include, for example, icons for launching other applications, icons of other user devices 118, and the like.
  • navigation bar 314 may include a developer icon 320, a catalog icon 322, and certain device icons 326.
  • the developer icon 320 may be used to launch a "developer environment" that may be built into the framework of PID application 112.
  • the catalog icon 322 may be used to launch an "application store" by which users 116 may acquire (e.g., purchase) and then install and synchronize specific channels 200.
  • Device icons 326 may depict any types, brands, and/or models of user devices 118 in the user's P2P network, such as a mobile phone, a tablet device, any computing device, a television, and the like.
  • the user's preferences may cause the acquired channel(s) 200 to automatically load and synchronize across all user devices 118.
  • a user 116 may drag and drop any channel 200 (e.g., drag and drop its touchlet 316) from the current user device 118 to, for example, the telephone device icon 326, the tablet device icon 326, the television device icon 326, and so on.
  • any channel on any user device can be quickly replicated and synchronized on any other user devices.
  • Client GUI 300 shows an example of a presentation framework that is organized into a grid for presenting channels 200 to a user 116 on any user device 118.
  • multiple touchlets 316 are presented in a 3x4 channel grid 318 in the main viewing panel 310 of client GUI 300.
  • 3x4 channel grid 318 includes touchlets 316A through 316L.
  • Each touchlet 316 in the 3x4 channel grid 318 of client GUI 300 represents a channel 200 of a specific purpose and/or function.
  • User 116 may have multiple channel grids of information, which are accessible via the navigation bar 314.
  • navigation bar 314 may include certain channel grid icons 324, which are icons of other channel grids of the user.
  • channel grid icons 324 may include an "At Home” channel grid icon, a "My TV” channel grid icon, and an "At Work” channel grid icon.
  • a user 116 may specify a certain default channel grid in his/her profile. Additionally, as defined in the user's profile, the default channel grid may change based upon, for example, device type, time, location, prior activities, and the like. Further, user 116 may be presented an option of several different channel girds from which to select.
  • the channel grid 318 shown in main viewing panel 310 of client GUI 300 of Figure 3 may be the user's "At Work" channel grid.
  • Presentation of channel grids may change based upon user context or preferences.
  • PID application 112 is capable to combine, screen, and/or synthesize information in any way to present information in an intelligent manner to the user.
  • the invention is not limited to presenting content in a 3x4 or any other n x n channel grid.
  • Other presentation styles are possible.
  • the touchlets of channels may be presented in a tiled fashion on a 3D cube, a tiled fashion on a 3D globe, a stacked tiled fashion, and the like.
  • Each touchlet 316 in the 3x4 channel grid 318 of client GUI 300 represents a channel 200 of a specific purpose and/or function.
  • channel grid 318 includes a "News Reader” touchlet 316A, a "Stock Watch” touchlet 316B, another "Stock Watch” touchlet 316C, a "Business CRM” touchlet 316D, a
  • Calendar touchlet 316J
  • a "Business Finance” touchlet 316K a "Around Me” touchlet 316L. Further to the example, more details of the "Around Me” touchlet 316L and its associated channel application are described with reference to Figure 4.
  • Each touchlet 316 of client GUI 300 is an example of a touchlet 212 of channel 200 of Figure 2. Additionally, each touchlet 316 of client GUI 300 as well as the 3x4 channel grid 318 itself are examples of visual components 210 of channel 200 of Figure 2.
  • a touchlet 212 of channel 200 of Figure 2 has multiple behaviors - (1) a touchlet 212 may serve as an icon to launch its associated channel application 214 to full screen mode, (2) a touchlet 212 may receive dynamically streaming data, such as audio and video data, sensor data, any web-services data, RSS feeds, eventing and alerting, raw data, any type of information, and the like. Data may be pushed to the channel 200 and its touchlet 212 in near real time, and (3) a touchlet 212 may serve as a viewer for presenting information dynamically in near real time. [00100] Additionally, a touchlet 212 may include substantially all the functionality of a full channel application.
  • the "touchlet information” typically is related to or derived from the channel information provided by the corresponding channel associated with the touchlet, so that when visually rendered, the touchlet information provides a more limited but nonetheless intuitive representation of the channel information. Therefore, an aspect of the invention is that the construct of a channel 200 includes two levels of presentation (1) information that is streaming and/or displayed at the touchlet level and (2) information that is streaming and/or displayed at the full screen level that is launched via the touchlet.
  • touchlets 212 have both static and dynamic behaviors, as well as intelligence.
  • touchlets 212 can provide information in context (e.g., context based on certain relationships between different data sources, time of day, day of week, geographic location, devices, users, user's role, and the like). Therefore, an aspect of the invention is that touchlets may be designed to present only information that is most interesting and/or meaningful to the user, and with context. Another aspect of the invention is that touchlets provide mechanisms for taking action and/or making decisions on that information.
  • An aspect of the invention is that multiple touchlets in a channel grid may be displaying near real-time dynamic content to the user simultaneously.
  • the twelve touchlets 316 in 3x4 channel grid 318 of client GUI 300 may be displaying near real-time dynamic content simultaneously (e.g., 12 streaming videos) to the user 116.
  • the content presented in each touchlet is designed to present only what is important to the user without saturating the user with content he/she does not want or need.
  • a touchlet 212 is capable of visually presenting static and/or dynamic content to a user 116 in a small window, until such time that the user 116 launches the associated channel application 214 in full-screen mode.
  • application server 110 is pushing dynamic information from any sources to one or more touchlets 316 in near real time.
  • application server 110 is pushing dynamic information from a news web-service to "News Reader” touchlet 316A, dynamic stock information to "Stock Watch” touchlet 316B and “Stock Watch” touchlet 316C, streaming video data to "Live News” touchlet 316G, and so on.
  • news Reader to "News Reader” touchlet 316A
  • dynamic stock information to "Stock Watch” touchlet 316B
  • Stock Watch to “Live News” touchlet 316G
  • streaming video data to "Live News” touchlet 316G
  • Figure 4 shows the "Around Me” touchlet 316L, which is an example of a visual component 210 of a channel 200.
  • the "Around Me” touchlet 316L displays a pin marker on a map to visually represent to the user that "Around Me” channel 400 may be a mapping application.
  • the underlying "Around Me” channel application 214 is launched and renders a substantially full-screen GUI of the "Around Me” channel 400.
  • the "Around Me” channel 400 then presents
  • the substantially full-screen display of any channel application may include, for example, a main viewing panel 410. Additionally, a taskbar 412 may be provided along the top of main viewing panel 410 and a navigation bar 414 may be provided along the bottom of main viewing panel 410. Navigation bar 414 may include, for example, a set of mini- touchlets 416, which are substantially the same as, for example, touchlets 316 of channel grid 318 of Figure 3 but presented in miniature form. A user may navigate directly to any channel application by selecting one of the mini-touchlets 416.
  • Main viewing panel 410 of "Around Me” channel 400 may include, for example, a visual mapping component 418 and a search component 420.
  • the GUI itself, along with its visual mapping component 418 and search component 420 are all examples of visual components 210 of a channel 200. While contextually related to one another and able communicate to one another, the "Around Me” channel GUI and the “Around Me” touchlet 316L are two separate and distinct entities.
  • "Around Me” channel 400 first acquires geo-location information.
  • current geo-location information is automatically acquired from a user device 118 (e.g., geo-location data of a cell phone).
  • geo-location information is acquired by the user 116 manually entering an address.
  • a map of the user's location is presented via the visual mapping component 418.
  • search component 420 may be used for locating places of interest (restaurants, gas station, hospital, ATM, theater, etc) near this location. If the user selects certain places of interest using search component 420, these places of interest are highlighted or otherwise indicated on the map.
  • driving directions may be indicated on the map.
  • the driving directions may be presented in text form, image form (e.g., displayed pictures and/or videos), and/or audible form (e.g., spoken directions).
  • associated with "Around Me” channel 400 may be an IP location service component 422, a destination service component 424, and a speech service component 426.
  • IP location service component 422 when the user 116 pushes a "Find Me” button on the GUI a message is passed (via the GUI conversation) to the IP location service component 422.
  • the IP location service component 422 then communicates with its related server channel component at application server 110.
  • IP location service component 422 passes the IP address to the server and requests the corresponding geographic location information.
  • the related server channel component queries a mapping service (e.g., Bing) and returns a location (e.g., Syracuse, NY) to the IP location service component 422.
  • the IP location service component 422 passes this Syracuse, NY mapping data (via the GUI conversation) back to the visual mapping component 418 of the "Around Me” channel 400.
  • a message is passed (via the GUI Conversation) to the destination service component 424.
  • the destination service component 424 then communicates with its related server channel component at application server 110.
  • the related server channel component queries a mapping service (e.g., Bing) and returns turn-by-turn driving directions to the destination service component 424.
  • the destination service component 424 passes the turn-by- turn driving directions data (via the GUI conversation) back to the visual mapping component 418 of the "Around Me” channel 400 and a driving route is indicated.
  • a text-to-speech conversion may be performed remotely at application server 110 and the results passed to speech service component 426 of the "Around Me” channel 400. The user then hears audible driving directions accordingly.
  • the "Around Me” channel 400 also illustrates the capability of performing updates without interrupting the device and/or service (i.e., "hot” updates).
  • the default visual mapping component 418 may be supported by the Bing Maps web-service.
  • the visual mapping component 418 may include a selector that allows the user and/or developer to select from a list of map services, such as Google Maps, Yahoo Maps, MapQuest, and the like. If Google Maps is selected, the Google Maps data is automatically sent to the visual mapping component 418 with no client interaction. As a result, the visual mapping component 418 is updated with no device and/or service interruption.
  • Client runtime environment 500 is presented, which is the runtime environment of user devices 118 of PID application 112.
  • Client runtime environment 500 may include a cross-operating system application 510.
  • cross-operating system application 510 is based on Adobe® AIR®, which is described in Figure 1.
  • client runtime environment 500 of user devices 118 may take advantage of all the capabilities that come with Adobe AIR, such as, but not limited to, HTML, Flash, Adobe AIR APIs, messaging, and the like.
  • Adobe AIR allows access the Hulu website to play streaming videos and because Adobe AIR includes a web browser, it can run HTML.
  • the Adobe AIR runtime is suitable for use with many different operating systems.
  • the Adobe AIR runtime is suitable for use with desktop operating systems, such as Mac, Windows, and Linux; mobile operating systems, such as RIM, WebOS, Windows Phone7, Symbian, and Android; and TV-related operating systems, such as Internet Protocol Television (IPTV) operating systems.
  • desktop operating systems such as Mac, Windows, and Linux
  • mobile operating systems such as RIM, WebOS, Windows Phone7, Symbian, and Android
  • TV-related operating systems such as Internet Protocol Television (IPTV) operating systems.
  • IPTV Internet Protocol Television
  • PID application architecture 600 is an example of the application architecture of the server side of PID application 1 12.
  • PID application architecture 600 may include a facilitation layer 610 through which all messaging of user devices 118 (the clients) pass, an integration and process layer 612, and an integrated services and applications layer 614.
  • Facilitation layer 610 further includes a facilitation server 616 and certain other servers 628.
  • facilitation server 616 manages the communication between the client (e.g., user devices 118) and the server (e.g., application server 110).
  • Facilitation server 616 serves as the gate keeper. In a sense, facilitation server 616 introduces the client to the integration and process server 646 and then goes away.
  • Facilitation server 616 serves as the client representative to the rest of the server stack.
  • facilitation server 616 is implemented using a Java server component that provides a set of real-time data management and messaging capabilities.
  • This Java server component may be Adobe®
  • Facilitation server 616 of the facilitation layer 610 may include, for example, a client gateway 618, proxy services 620, invocation services 622, inter- client messaging/synchronization 624, and a facilitation processor 626.
  • Client gateway 618 may be the direct interface with the client (e.g., user devices 118) for handling messaging operations.
  • client gateway 618 uses Action Message Format (AMF) and/or Java Message Service (JMS) for exchanging messages and/or data between the client and server and/or between one client and another client.
  • AMF Action Message Format
  • JMS Java Message Service
  • Servers 628 of the facilitation layer 610 may include, for example, a channel server 630, a content delivery server 632, a collaboration media server 634 (e.g., video conferencing server), a stream sync server 636, an analytics server 638, an advertising server 640, a transcoding server 642, and a media server 644.
  • channel server 630 is used for the creation and consumption of channels 200.
  • Channel server 630 is not utilized in the operation of channels 200.
  • channel server 630 may include a repository of channels 200, a channel application catalog 631, and a developer module 633.
  • Channel application catalog 631 may be an "application store" of available channels 200 from which users 116 may acquire (e.g., purchase), download, and install and synchronize specific channels 200.
  • An example of channel application catalog 631 is shown in Figure 12.
  • Developer module 633 may be the "developer environment" that may be built into the framework of PID application 112.
  • developer module 633 may be used by software developers to design specific channels 200.
  • the developer icon 320 of client GUI 300 of Figure 3 may be used to launch the developer module 633. Therefore, an aspect of the invention is that PID application 112 provides a developer environment (e.g., developer module 633) in the same framework as the user environment and without having to exit the user environment.
  • Content delivery server 632 may be a server for storing and/or managing any other content that is not managed by, for example, collaboration media server 634, advertising server 640, and media server 644.
  • Collaboration media server 634 is used to facilitate video conferencing.
  • Stream sync server 636 is the server that integrates with advertising and analytics as it relates to the client and content that is being presented.
  • An example of using stream sync server 636 is synchronizing and/or relating ads on one user device 118 (e.g., TV) with ads on another user device 118 (e.g., tablet).
  • Analytics server 638 is used to configure and administer analytics applications.
  • Advertising server 640 may be a dedicated server for storing and/or managing advertising content.
  • Media server 644 may be a dedicated server for storing and/or managing various digital media, such as digital videos/movies, audio/music, and picture files.
  • Transcoding server 642 may be a dedicated server for performing transcoding operations. Transcoding is the ability to adapt digital files so that content can be viewed on different playback devices. Working like an interpreter, a transcoder translates files to a suitable format for the end user. Transcoding servers (e.g., transcoding server 642) and services reformat material that would otherwise have to be developed separately for different platforms. Transcoding servers and services are commonly used for adapting content for mobile devices or serving video.
  • Integration and process layer 612 may be organized in a standard service- oriented architecture (SO A). Integration and process layer 612 further includes an integration and process server 646 along with certain hosting applications 674, hosted communications applications 676, and integral identity provider SSO provider 678. Integration and process server 646 of integration and process layer 612 further includes certain platform service components 648 and certain server channel components 662.
  • Platform service components 648 may include, but are not limited to, a data management subsystem 650, an eventing and alerting subsystem 652, a configuration server 654, a session manager 656, an administration subsystem 658, and an identity subsystem 660.
  • Data management subsystem 650 performs the master data management operations of PID application architecture 600.
  • Master data management may include, for example, correlating user ID (which user are you?) to content and/or correlating user devices (user has 6 phones, which phone are you?) to content.
  • ODS operational data store
  • data warehouse for storing temporary data or long term data.
  • the ODS may serve two purposes (1) the ODS is used to store data for historical purposes, because data may not persist or be stored at the source. For example, a channel 200 may poll a service every few minutes and store the data in the ODS; and (2) the ODS is used in general application usage. For example, there is a background process of any channel 200 of PID application 112 that is retrieving data and pushing it to the ODS. Therefore, any data that is presented to the user at the user device 118 (i.e., at the client device) may be supplied by the ODS. This ensures good response time for the end-user because the network will not have to be continually interrogated for information.
  • Eventing and alerting subsystem 652 is used to collect and/or analyze information from any one or more disparate data sources with respect to certain predetermined or dynamic event conditions.
  • Example of types of information that may be evaluated/monitored by eventing and alerting subsystem 652 may include, but are not limited to, text information, graphic information, one or more pictures, one or more videos, audio or digital sound, streaming data, audio or video, content associated with an executing computer application, voice-over-IP communication, instant messaging/SMS information, video-conferencing information, environmental monitoring information, financial services information, enterprise resource planning information, enterprise content management information, building information, project management information, product lifecycle management information, RSS reader information, remote device control/interaction information, a three- dimensional graphic visualization of one or more objects and/or immersive environments, one or more word processing documents, one or more spreadsheets, one or more presentation/slide shows, email, address book information, and any combinations thereof.
  • CEP systems may also be utilized to evaluate/monitor event conditions.
  • eventing and alerting subsystem 652 Upon detecting the presence of an event condition, eventing and alerting subsystem 652 transmits alert notifications to users 116 via one or more user devices 118.
  • Eventing and alerting subsystem 652 may include, for example, an event manager component, a notification manager, and a complex event processor. Further, events maybe stored for delivery at a later time or for use in a CEP system.
  • the event manager uses CEP (e.g., via complex query language (CQL) programming) to continually monitor the ODS of data management subsystem 650 based on event(s) that have been set and/or to perform a direct query of any external system and/or service.
  • CEP complex query language
  • the notification manager checks the user's configuration, which is at configuration server 654, as well as the user's session information at session manager 656 in order to determine how best to notify the end-user. Then, the alert notification is pushed through the client gateway 618 of the facilitation server 616 (e.g., via AMF) and to one or user devices 118 (client devices). As a result, the one or user devices 118 receive the alert notification and the alert presented to the user 116 via one or user devices 118.
  • Example of types of alerts that may be generated by eventing and alerting subsystem 652 may include, but are not limited to, visual alerts, auditory alerts, tactile alerts, email messages, SMS text messages, activation of at least one channel of a plurality of channels, and notifications to a law enforcement agency.
  • a main aspect of a channel 200 is that eventing and alerting subsystem 652 provides actionable eventing and alerting capability to the user 116. That is, channels 200 of PID application 112 provide users the ability to take action upon receiving an alert, in which the mechanism for user response to an alert may be conveniently built into the channel itself.
  • Configuration server 654 manages device configurations, user profiles, data configurations, application configurations, and the like. Configuration server 654 is the counterpart to configuration component 218 of any channel 200.
  • Session manager 656 performs session management and/or handles state.
  • Session manager 656 may include, for example, a session module and a policy module.
  • a user 116 is watching TV (one user device 118) and decides to pause the TV show and resume watching the TV show on his/her laptop computer (another user device 118).
  • Session manager 656 stores state information and communicates this state information between user devices 118 so that the user 116 can resume watching the TV show at his/her laptop computer from the same point in the broadcast.
  • Administration subsystem 658 is used to perform standard system administration tasks. For example, when a channel 200 is accepted into the channel application catalog 631, the administration subsystem 658 associates what users 116 are allowed to access the channel. With respect to authorizations, channels are assigned to groups and users. For example, anyone working in the accounting department of a company has access to a certain channel or only a certain user's family members are allowed access to a certain channel.
  • Identity subsystem 660 manages the authorization of users, places, times, and things.
  • Identity subsystem 660 may include, for example, an authorize module and an authenticate module. For example, users must be authorized for content and services must be authorized for content. Accordingly, services check to ensure that users are authorized to access their services.
  • a main aspect of PID application 112 of the invention is single sign-on (or universal sign-on) capability, wherein once the user 116 is activated on the system, the user 116 is automatically authenticated when accessing any applications that normally require user login, i.e., unified access to all applications.
  • the user 116 may have one or more secure email services, one or more secure banking and/or financial accounts, one or more secure web-services accounts, and the like.
  • Login information of all the user's secure accounts is stored, for example, identity subsystem 660.
  • identity subsystem 660 automatically provides the necessary login credentials to the requesting entity, thereby automatically logging in the user with no further action on the user's part.
  • PID application 112 requires that the user 116 login on each of his/her user devices 118 as they become available in order to ensure the identity of the user 116.
  • a user 116 is authorized to use a certain user device 118 and/or service only when inside his/her place of business. Therefore, upon leaving the building the authorization is revoked.
  • a user 116 is authorized to use a certain user device 118 and/or service only at a certain time of day, perhaps during off-peak hours. Therefore, during off-peak hours the
  • authorization is allowed, but during peak hours the authorization is revoked.
  • server channel components 662 are used to perform the integration.
  • Server channel components 662 may include Java-based components, such as, but not limited to, a Camel server channel component 664, a Spring server channel component 666, a Java server channel component 668, a JavaScript server channel component 670, a business process execution language (BPEL) server channel component 672.
  • Java-based components such as, but not limited to, a Camel server channel component 664, a Spring server channel component 666, a Java server channel component 668, a JavaScript server channel component 670, a business process execution language (BPEL) server channel component 672.
  • BPEL business process execution language
  • Camel server channel component 664 may be, for example, the Apache Camel server channel component (available from The Apache Software Foundation). Camel server channel component 664 is used for the orchestration and integration of services.
  • Spring server channel component 666 is used for implementing Inversion of Control (IoC) and aspect-oriented programming (AOP). For example, when passing information from one component to another, the components involved have placeholders for data to be injected (or inserted). Spring server channel component 666 is used to manage this process.
  • Java server channel component 668 may be implemented via (e.g., Java 2 Platform Standard Edition (J2SE)).
  • JavaScript server channel component 670 is used for running JavaScript on the server side of PID application 112.
  • BPEL server channel component 672 is used to export and import information by using web service interfaces.
  • PID application 112 is agnostic to the source of the content and agnostic to the user device on which it is presented. From a client perspective, PID application 112 is agnostic to what content sources are connected.
  • the components of PID application architecture 600 communicate via an enterprise service bus 680 of integration and process server 646.
  • Enterprise service bus 680 manages "calls" in and out of the PID application architecture 600.
  • a set of adaptors 682 are connected to enterprise service bus 680 for interfacing with entities of integrated services and applications layer 614, which are outside of the
  • adaptors 682 are connected to enterprise service bus 680 for handling various communication protocols.
  • Integrated services and applications layer 614 may include, but is not limited to, one or more third-party services 684, one or more relational database management systems (RDBMS) 686, Parlay X 688 (i.e., a set of standard Web service APIs for the telephone network), one or more IP multimedia subsystem (IMS) servers 690, basic wireline telecommunication 692, one or more communications modules 694 (e.g., instant message, calendar, mail/SMS, address book), and one or more directory servers 696, which may be examples of information sources 114.
  • RDBMS relational database management systems
  • Parlay X 688 i.e., a set of standard Web service APIs for the telephone network
  • IMS IP multimedia subsystem
  • PID application 112 provides built in security at the application server 110, which inherently provides security at each user device 118. Any applications running in the PID application 112 environment are checked for viruses, spyware, and the like. In this way, it is ensure that users 116 are operating in a secure environment.
  • Client architecture 700 is an example of the application architecture of the client side of PID application 1 12. That is, client architecture 700 is the application architecture of any user device 118.
  • Figure 7 shows a channel 200, which includes visual component 210, touchlet 212, channel application 214, and service component 216. Associated with a channel 200 are certain sub-components, such as assets 710, code 712, models 714, conversations 716, as well as configuration 718.
  • Assets 710 may be, for example, images, descriptive language for the layout of the channel, and the like.
  • Code 712 is the actual programming code for the channel 200.
  • a channel service 720 on the client side communicates with the channel server 630 on the server side.
  • Code 712 interacts with channel service 720 in the client. Additionally, code 712 is cached in client cache 750 and then transmitted via a client bus 760 to identity subsystem 660 (performing authentication and
  • channel server 630 Any channels 200 that are installed on a user device 118 originate from channel server 630 (e.g., from channel application catalog 631).
  • Models 714 may be the data models for the channel 200.
  • a model system 730 on the client side may include user-defined models, persistent models, synchronized persistent models, synchronized models, and the like.
  • Associated with model system 730 may be a persistence service 732 and a synchronization service 734.
  • Models 714 interact with persistence service 732 and synchronization service 734 in the client.
  • Persistence service 732 on the client side communicates with the data management subsystem 650 on the server side.
  • Synchronization service 734 on the client side communicates with the inter-client messaging/synchronization 624 on the server side.
  • models 714 are cached in client cache 750 and then transmitted via client bus 760 to identity subsystem 660 (performing authentication and authorization) and then to inter-client messaging/synchronization 624.
  • Conversations 716 may be any communication over the bus between client components and/or server components. Conversations 716 on the client side are transmitted via client bus 760 to the eventing and alerting subsystem 652 on the server side.
  • Configuration 718 may define, for example, the position of the touchlet on the channel grid, that the channel now monitoring a certain data stream, the user is receiving data and needs to be synchronized, the user has multiple devices that need to be synchronized, when any application is installed perform synchronization, location, ID, the channel is a synchronizable channel, the channel is an alertable channel, and the like.
  • Configuration 718 includes any channel attributes that convey the "personality" or functionality of the channel. Certain information in configuration 718 may be selected by the user.
  • a configuration service 740 on the client side communicates with the configuration server 654 on the server side.
  • Configuration 718 interacts with configuration service 740 in the client. Additionally, configuration 718 is transmitted via client bus 760 to identity subsystem 660 (performing authentication and authorization) and then to configuration server 654.
  • Client architecture 700 of the client side of PID application 112 is architected similar to an SOA for an enterprise stack.
  • the client services use the idea of GUI conversations to exchange messages between client components and/or server components, all using the client bus and/or server bus. Therefore, an aspect of the invention is a sophisticated client architecture, similar to an SOA, that allows complex processing to occur locally at the client as well as at the server (yet without relying on the server), thereby enabling a rich user experience.
  • PID application architecture 600 and/or client architecture 700 more details of examples of certain process flows are described with reference to Figures 10 and 11.
  • FIG. 8 a functional block diagram of an example of a communication flow 800 between the client side and the server side of PID
  • Communication flow 800 shows that components of client channels 200 may communicate directly with platform service components 648 (albeit through facilitation server 616). Additionally, components of client channels 200 may communicate with platform service components 648 through the server channel components 662 (again through facilitation server 616). This is important because certain tasks do not require going through the server channel components 662. Therefore, it may be more efficient to communicate directly with platform service components 648. For example, maybe when a components requesting permission to do something, the client channel 200 may communicate directly with identity subsystem 660.
  • FIG. 9 a functional block diagram of an example of a communication flow 900 between components at the server side of PID application 112 is presented.
  • the server channel components 662 may bypass the platform service components 648 and communicate directly with enterprise service bus 680. This scenario may be called "performant direct calling.”
  • PID application 112 provides flexibility in the messaging operations.
  • FIG. 10 illustrates a functional block diagram of a portion of PID application architecture 600 and a process of performing a user login operation is presented.
  • the process of performing a user login operation may include, but is not limited to, the following steps.
  • step 1 the client (user device 118) is activated, the application is launched at the client and, therefore, the channel grid is started at the client.
  • the channel grid at the client connects via AMF to client gateway 618 of the facilitation server 616 at the server.
  • client gateway 618 then authenticates. For example, client gateway 618 passes the credentials (user ID and password) to the authenticate module of identity subsystem 660.
  • step 4 using a session module of session manager 656, the session is checked to see whether there is already an existing session. This is done because the user 116 may have multiple user devices 118.
  • step 5 using a personal profile module of configuration server 654, the user's personal profile is checked with respect to the user device 118. This is done to ensure that the presentation frame work (e.g., channel grid, tabs) that is delivered matches the user device 118. The user's personal profile is also checked with respect to the location.
  • presentation frame work e.g., channel grid, tabs
  • an event manager module of the eventing and alerting subsystem 652 checks to see whether the user has any alerts present in case any alerts have occurring during the transition state of the user device 118.
  • the channel grid at the client checks to see whether the channels are cached locally at the client. If not cached, the channel grid at the client requests its channels from the channel server 630.
  • the channel server 630 checks to see whether the user is authorized to have the requested channels.
  • channel server 630 responds to the client with the allowed channels (sometimes updating, sometimes responding already up-to-date).
  • the channel grid is populated with channels and presented at the client (user device 118).
  • PID application 112 provides a universal login feature. That is, once a user 116 is logged into PID application 112, no further login actions are required for accessing any information and/or services.
  • configuration server 654 and/or identity subsystem 660 may contain a record of all login information of every user 116, which is automatically applied upon accessing any information and/or services with no further action by the user 116.
  • FIG. 11 illustrates a functional block diagram of a portion of PID application architecture 600 and a process of performing data management and eventing and alerting is presented.
  • the process of performing data management and eventing and alerting may include, but is not limited to, the following steps.
  • step 1 a certain sensor channel is created and the ODS of the data management subsystem 650 begin to collect data.
  • the source of the data is an entity at integrated services and application layer 614, therefore, the ODS collects the data through, for example, a REST adaptor, which is one of adaptors 682. In one example, a web-service call is issued.
  • an external sensor service (which is also REST) is interrogated.
  • the external sensor service is a "temperature & humidity" service.
  • the external sensor service collects the current temperature and humidity data, reports this data back to ODS of the data management subsystem 650, and this data is stored at the ODS for historical views. In the case of eventing, this data may be sent directly to the requesting service and/or channel, if no historical records needed.
  • a CEP engine of the eventing and alerting subsystem 652 which is monitoring the data at the ODS, detects an event.
  • the CEP may be monitoring the temperature and humidity data for certain threshold values that may indicate a certain condition is present.
  • the CEP of the eventing and alerting subsystem 652 queries the event manager of the eventing and alerting subsystem 652 to see whether any user 116 has set an alert that corresponds to the current temperature and humidity condition.
  • step 7 it is determined that, yes, some user 116 has set an alert that corresponds to the current temperature and humidity condition. Therefore, the user's personal profile at configuration server 654 is checked to see the user's notification preferences.
  • step 8 it is checked to determine whether the user 116 has an active session in order to determine the appropriate way(s) to alert the user by considering the user's connectivity, location, time, and the like. It may be determined that the user is connected via the client via a laptop computer.
  • step 9 the event manager of the eventing and alerting subsystem 652 is queried again to determine whether any other events are present in the event queue for this user. If yes, any other alerts may also be sent along with the temperature and humidity alert.
  • the notification manager of the eventing and alerting subsystem 652 dispatches the notification through user's logical event queue which results in the client gateway 618 of the facilitation server 616 sending the information via JMS to the user's current channel grid.
  • the message comes across the client bus of the user device 118, then a channel receives and displays the alert to the user.
  • the alert may include information about the current temperature and humidity at some location.
  • PID application 112 With respect to the operation and/or use of PID application 112, this method may be summarized as follows. Certain services are written; certain complex query language is written; certain events and alerts are registered; sensor data at ODS is monitored as it related to events and alerts; if a match is detected, the event is correlated to a user; user profile and session information is queried; and the alert is transmitted to the user.
  • FIG. 12 a screenshot of an example of the GUI of channel application catalog 631 of PID application 112 is presented, by which users may acquire channels for use with their devices.
  • the GUI presents a selection of available function- and/or purpose-specific channels 200.
  • For each channel 200 its title, category, and certain details about the channel may be displayed.
  • a navigation bar 1210 may be presented along the bottom of the GUI, by which users may scroll from page to page of the catalog.
  • examples of titles of channels 200 that may be found in channel application catalog 631 may be News Reader Channel, Stock Watch Channel, Business CRM Channel, Currency Channel, Banking Channel, Live News Channel, Business Calendar Channel, Email Channel, Personal Calendar Channel, Business Finance Channel, and Around Me Channel.
  • An aspect of the invention is that when the user 116 selects "install application” from channel application catalog 631, because the user's ID is known and authentication is already done, the purchase transaction is processed automatically and the selected channel 200 automatically installs and synchronizes on the user's channel grid.
  • FIG. 13 another screenshot of client GUI 300 of Figure 3 that includes channel grid 318 is presented.
  • the touchlet 316L location of channel grid 318 is empty.
  • Touchlet 316B is a "Stock Watch” touchlet that is associated with a "Stock Watch” channel (e.g., "Stock Watch” channel 1400 of Figure 14).
  • the "Stock Watch” channel may provide a mechanism by which a user 116 may monitor a certain company's stock and/or financial information.
  • the "Stock Watch” channel is monitoring the stock and/or financial information of Brocade Communications Systems, Inc (BRCD).
  • BRCD Brocade Communications Systems, Inc
  • FIG 14 screenshots of certain components of an example of a "Stock Watch” channel 1400 of PID application 112 is presented.
  • Figure 14 shows “Stock Watch” channel 1400 operating in a substantially full-screen mode.
  • "Stock Watch” touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching “Stock Watch” channel 1400.
  • "Stock Watch” channel 1400 provides a mechanism for monitoring and/or reporting certain stock and/or financial information of a company of interest.
  • "Stock Watch” channel 1400 is monitoring Brocade Communications Systems, Inc (BRCD).
  • BRCD Brocade Communications Systems, Inc
  • the main viewing panel 410 of the "Stock Watch" channel 1400 may include, for example, an overview window 1420, one or more information windows 1422, and a trading window 1424.
  • overview window 1420 shows a plot of the BRCD stock price over some selectable period of time (e.g., last hour, day, week, month, etc), as well as other statistical information about the BRCD stock.
  • Figure 14 shows two information windows 1422. For example, one information window 1422 displays information about the latest news. The other information window 1422 displays stock information about certain other companies (i.e., companies related to BRCD in some manner).
  • Trading window 1424 provides mechanisms by which the user 1 16 may perform stock trading transactions (e.g., buying and selling stock).
  • the "Stock Watch" channel 1400 is a good example of a channel application that to the user is seemingly a single application, but is in fact pulling publicly available information from multiple disparate data sources.
  • the real-time stock price display information in "Stock Watch” touchlet 316B and in the overview window 1420 may originate from the "Yahoo! Finance” web service
  • the related companies display information in an information window 1422 may also originate from the "Yahoo! Finance” web service
  • the plot and other statistical information in the overview window 1420 may originate from the "The Motley Fool” web service
  • the "Latest News” information in an information window 1422 may originate from the "Google Finance” web service
  • trading window 1424 may be supported by the "TD Ameritrade” web service, and the like.
  • trading window 1424 is an example of using the single sign-on (or universal sign-on) capability of PID application 112.
  • the user 116 is already authenticated at PID application 112. Therefore, the user 116 is not prompted for any further login credentials when using trading window 1424, which may be supported by an online trading web-service, such as, but not limited to, TD Ameritrade.
  • the user's TD Ameritrade login information is already stored in the user's profile/configuration and is automatically provided as needed by any channel application of information delivery system 100.
  • the capability of the single sign-on (or universal sign-on) feature is not limited to user login information, user banking and/or credit card information may also be stored in the user's profile/configuration. Additionally, the single sign-on (or universal sign- on) feature my include login credentials with respect to the user's different user devices 118. As a result, payments information may be automatically provided as needed. In the example of TD Ameritrade, any transactions performed via trading window 1424 are handled without prompting the user 116 for payments information.
  • PID application 112 provide convenience to the user.
  • the "Stock Watch” channel 1400 may provide mechanisms by which the user 116 may wish to respond to the alert.
  • the trading window 1424 of "Stock Watch” channel 1400 may provide mechanisms by which the user 116 may perform stock transactions, such as buying and selling stock.
  • Information sources 114 that support "Stock Watch” channel 1400 may include, for example, one or more stocks and/or financial services, one or more news services, and the like. Any information sources 1 14 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Stock Watch” channel 1400 may include, but are not limited to, content delivery server 632, an analytics server 638, and a media server 644.
  • FIG. 15 through 18 screenshots of client GUI 300 of PID application 112 and an example of a process of eventing and alerting using PID application 112 is presented.
  • the user 116 sets an alert for when the BRCD share price rises above a certain value, as follows.
  • FIG 14 shows that by hovering the mouse over the "Stock Watch” touchlet 316B, helper window 330 is displayed to the user 116.
  • the user selects the "Alerts” button.
  • an alerts window 334 is displayed to the user 116, as shown in Figure 16.
  • Alerts window 334 provides a mechanism by which the user 116 may create an alert that is based, for example, on share price.
  • alerts window 334 provides an entry field for entering a share price.
  • the share price that the user enters is an example of a threshold condition or parameter for triggering an alert notification.
  • alerts window 334 Other controls are provided in alerts window 334 to generate the alert when the share price is "less than,” “equal to,” or “greater than” the share price that is entered. In one example, the user sets up an alert to occur when the share price is "less than” $9.23. To activate this eventing and alerting process, the user 116 may select an "Apply” button of alerts window 334, which closes the window and automatically registers the event in the event manager of the eventing and alerting subsystem 652 (see Figure 6).
  • the event manager of the eventing and alerting subsystem 652 begins monitoring the data stream associated, in this example, with the BRCD stock.
  • Figures 17 and 18 show examples of the visual components for this eventing and alerting process.
  • the event manager of the eventing and alerting subsystem 652 monitors the BRCD data stream and when the BRCD share price is approaching the alert set point (e.g., near $9.23),
  • Figure 16 shows that the "Stock Watch" touchlet 316B may display a warning state to the user 116.
  • An example of the warning state is to change the color of the border of the "Stock Watch" touchlet 316B from, for example, black to yellow.
  • the event manager of the eventing and alerting subsystem 652 continues to monitor the BRCD data stream and when the BRCD share price is "less than" $9.23, Figure 18 shows that the "Stock Watch" touchlet 316B may display an alert state to the user 116.
  • An example of the alert state is to change the color of the border of the "Stock Watch” touchlet 316B to red.
  • the alert is delivered according to the user's configuration (notification preferences) and session.
  • the event manager registers the event; the event manager monitors the bus, using CEP and CQL the event manager recognizes a certain condition is present; the notification manager checks the user's configuration and session; once it is determined how to notify the end-user the notification is pushed through the facilitation manager gateway (using AMF) and to the user device (client device); the client device is monitoring the client bus and receives the notification; and the notification is displayed to the user on the client device (e.g., yellow border, red border).
  • FIG. 19 screenshots of certain channels of PID application 112 and an example of a process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data is presented.
  • a user 116 may be a stock broker that hears that Cisco Systems, Inc is interested in buying Brocade Communications Systems, Inc. Therefore, there may be some very specific information that the user 116 wishes to be informed about regarding this potential transaction. Therefore, the user 116 may create a new channel and set up the desired alert notifications, as follows.
  • the process is using the "Latest News" touchlet 316A; the "Stock Watch” touchlet 316B, which is BRCD; and the “Stock Watch” touchlet 316C, which is Cisco Systems, Inc (CSCO); which are shown in Figure 18. That is, in this example the independent channels supporting "Latest News" touchlet 316 A, "Stock Watch” touchlet 316B, and “Stock Watch” touchlet 316C are combined to create a new channel (and touchlet). Then, an eventing and alerting process with respect to the new channel is set up with respect to the combined data.
  • CSCO Cisco Systems, Inc
  • a channels portion 340 of the create channel window 338 shows a list of available channels from which to build an alert.
  • the available channels are from the current channel grid 318 or from any other channel grid of the user 116.
  • a query builder portion 342 of the create channel window 338 provides a query builder function to the user 116, which is used to generate the CQL that interacts with the event manager of the eventing and alerting subsystem 652 (see Figure 6).
  • Figure 20 shows that the user 116 may select a first channel, such as the "Latest News” channel from the channels portion 340, which causes the "Latest News” channel to appear in the query builder portion 342 of the create channel window 338.
  • a first channel such as the "Latest News” channel from the channels portion 340, which causes the "Latest News” channel to appear in the query builder portion 342 of the create channel window 338.
  • the developer exposes certain things that may be useful to users 116.
  • a "keywords” field is provided to the user.
  • User 116 enters, for example, the words “Brocade” and “Cisco.”
  • the news information of the "Latest News” channel is monitored for the words “Brocade” and “Cisco” (together in the same news feed) by the event manager of the eventing and alerting subsystem 652.
  • Figure 21 shows that the user 116 may select a second channel, such as the BRCD "Stock Watch” channel from the channels portion 340, which causes the BRCD “Stock Watch” channel to also appear in the query builder portion 342 of the create channel window 338.
  • a second channel such as the BRCD "Stock Watch” channel from the channels portion 340, which causes the BRCD “Stock Watch” channel to also appear in the query builder portion 342 of the create channel window 338.
  • two channels are present in the query builder portion 342.
  • the developer exposes certain things that may be useful to users 116.
  • a "share price” field is provided to the user along with a qualifiers dropdown menu (greater than, equal to, less than).
  • the share price information of the BRCD "Stock Watch” channel is monitored for this condition by the event manager of the eventing and alerting subsystem 652.
  • the information that the user enters in the query builder portion 342 of the create channel window 338 is an example of threshold conditions or parameters for triggering an alert notification.
  • Figure 22 shows that the user 116 may select a third channel, such as the CSCO "Stock Watch” channel from the channels portion 340, which causes the CSCO "Stock Watch” channel to also appear in the query builder portion 342 of the create channel window 338. Now three channels are present in the query builder portion 342. User 116 selects, for example, a share price "greater than $23.63.” Once the channel is deployed, the share price information of the CSCO "Stock Watch” channel is monitored for this condition by the event manager of the eventing and alerting subsystem 652.
  • the query builder portion 342 of the create channel window 338 allows Boolean operations between the selected channels.
  • the user 116 may be provided AND, OR, ANDNOT, and XOR functions.
  • the user selects the "Latest News” channel AND the BRCD “Stock Watch” channel AND the CSCO “Stock Watch” channel.
  • an alert is generated when the following condition is present: Both the words “Brocade” and "Cisco” are detected in the "Latest News” channel AND when a share price "greater than $9.26" is detected via the BRCD “Stock Watch” channel AND when a share price "greater than $$23.63” is detected via the CSCO "Stock Watch” channel.
  • the query builder portion 342 of the create channel window 338 also provides notification settings. For example, the user 116 may select notify by:
  • the user 116 may select one or more.
  • the query builder portion 342 of the create channel window 338 also provides channel name field. In one example, the user 116 enters "Custom Alert.”
  • the user 116 selects a "Create Channel” button to deploy the new "Custom Alert” channel.
  • the channel server 630 is updated accordingly, a touchlet is created and loaded into the client, all events set up on the menu are registered with the event manager, the user's configuration is updated with the notification preferences for this channel, the event manager begins monitoring the data streams according to the query.
  • the touchlet is updated in real time as to the status of the three variables.
  • a "Custom Alert” touchlet 316L is created and presented in channel grid 318.
  • the "Custom Alert” touchlet 316L displays the three components that the channel is eventing off.
  • the "Custom Alert” touchlet 316L displays the three components (e.g., news, BRCD, and CSCO), which are all in a no alert condition.
  • the no alert condition for each component is to display the component in a green color in the "Custom Alert" touchlet 316L. Therefore, Figure 23 shows all three components in green to indicate that no alert conditions are present.
  • the "Custom Alert" touchlet 316L displays a warning state to the user 116.
  • the BRCD and the CSCO conditions are met, but the news condition is not yet met. Therefore, the color of the BRCD and CSCO components may be changed from green to yellow, while the news component remains green. In this way, the user 116 may perceive a warning that, while the alert condition is not yet fully met, an alert may be eminent.
  • PID application 112 provides the capability to combine information of two or more channels to create a another information channel, such as combining information associated with "Latest News” channel, the BRCD “Stock Watch” channel, and the CSCO “Stock Watch” channel to create a new channel that is represented by "Custom Alert” touchlet 316L. Additionally, upon the creation of this new channel, this new channel may be automatically installed and synchronized across all of the user's user devices 118 so that that the new channel appears on all user devices 118. Optionally, the user can manually update his/her user devices 118 (e.g., via drag and drop function).
  • touchlet 316H which may be a business calendar channel
  • Touchlet 3161 which may be an email channel
  • touchlet 316H is displaying a "You have 4 scheduled meetings today" alert.
  • Touchlet 3161 which may be an email channel
  • Both of these alerts are example of non-actionable alerts, as these are informational alerts that do not require user action.
  • the user may choose or not choose to launch the email channel and read his/her emails. However, if the user should choose to launch the email channel and read his/her emails, the "4 unread messages" alert is cleared.
  • the "Custom Alert” channel provides an alert that is actionable. That is, upon receiving the alert via "Custom Alert” touchlet 316L, the user 116, who may be a stock broker, may take certain action. By clicking on the "Custom Alert” touchlet 316L, which may be in an alert state, the associated "Custom Alert” channel 2600 may be presented to the user 116.
  • Figure 26 shows an example of the GUI for the "Custom Alert” channel 2600.
  • the GUI for the "Custom Alert” channel 2600 may include, for example, a query parameters portion 2610 and an actions portion 2612.
  • the query parameters portion 2610 allows the user 116 to, for example, adjust the query parameters, add more conditions, change conditions, remove conditions, and the like.
  • the actions portion 2612 allows the user 116 to perform certain actions based on the alert.
  • the actions portion 2612 may provide mechanisms by which the user 116 may perform stock trading transactions (e.g., buying and selling stock), similar to trading window 1424 of "Stock Watch” channel 1400 of Figure 14, which may be supported by the "TD Ameritrade” web service.
  • the "Custom Alert” channel 2600 is used to generate an alert that is of particular importance to the user 116.
  • the "Custom Alert” channel 2600 is an example of the user-centric aspect of PID application 112 in which only information that is of most importance to the user is processed and/or presented to the user 116.
  • the aforementioned process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data is an example of the capability of PID application 112 to allow the user 116 to action based on disparate data that is of interest to the user and conditions set by the user.
  • Figures 27 through 51 describe non- limiting examples of channels 200 that may be suitable for consumer use. However, these examples are not limited to consumer use only. The channels described in Figures 27 through 51 may also be suitable for enterprise applications (e.g., corporate environments).
  • FIG. 27 through 40 screenshots of an example of a "Television" channel of PID application 112 is presented.
  • the meaning of the term "channel" within the context of PID application 112 is not to be confused with the standard consumer terminology of a TV channel.
  • the standard TV channel is hereafter referred to as a "traditional TV channel.”
  • FIG. 27 shows a screenshot of a "Television” channel GUI 2700 that is being displayed on a tablet device 2710, which is one example of a user device 118 (i.e., a client device).
  • the "Television” channel GUI 2700 may have been launched using a "Television” touchlet (not shown) of a certain channel grid (not shown) of a certain user 116.
  • the underlying "Television” channel e.g., a "Television” channel 2720 shown in Figure 28
  • "Television” channel GUI 2700 displays yet another television- specific channel grid, such as a channel grid 2712.
  • the "Television" channel is designed to impart certain capabilities to any user device 118, such as tablet device 2710, with respect to viewing and/or interacting with content on a television.
  • tablet device 2710 is capable to provide a TV remote control function, capable to display any dynamic content to the user 116, capable of allowing user interaction with the content, and the like.
  • TV controls 2714 that provide interfacing features are rendered on the display of tablet device 2710.
  • the display of tablet device 2710 is a touch screen. Therefore, TV controls 2714 are touch controls.
  • TV controls 2714 may include, for example, pause and play controls, fast forward and rewind, volume up/down controls, mute, 50% mute, traditional TV channel up/down controls, and TV on/off controls.
  • TV controls 2714 may be rendered in any position on the display that provide ease of use for the user.
  • TV controls 2714 may be arranged on one side of the display, on both sides of the display, along the top of the display, and the like.
  • Channel grid 2712 contains multiple touchlets for presenting dynamic information of, interacting with, and/or launching any content that a user 116 may be likely to watch on his/her TV set, which is itself another user device 118 (i.e., another client device).
  • channel grid 2712 may include, for example, touchlets for TV shows, touchlets for movies, touchlets for TV service providers, touchlets for movies providers, touchlets for any streaming video content, and the like.
  • the user 116 may select a "Master Chef touchlet 2730 (shown in Figure 28), which launches an underlying channel application in substantially full-screen mode, as shown in Figure 28, by which the user may watch the Master Chef TV show.
  • Figure 28 shows “Television” channel 2720 operating in a substantially full-screen mode.
  • "Television” channel 2720 is launched from channel grid 2712 by, for example, using the "Master Chef touchlet 2730.
  • Figure 28 also shows a TV 2740 by which the user 116 is able to watch the Master Chef TV show. While TV 2740 is displaying the Master Chef TV show itself, the user 116 may select a "What's On” button (not shown) in order to view episode information about the Master Chef TV show on tablet device 2710.
  • the TV services provider's electronic programming guide (EPG) may be the source of this episode information.
  • EPG electronic programming guide
  • an ad window 2750 is included in the display. Dynamic and/or static information from any source may be displayed in ad window 2750. While contextually related to one another, the main display showing the episode information and the ad window 2750 are two separate and distinct entities.
  • the user 116 may use any of the TV controls 2714 (e.g., pause/play, volume, traditional TV channel up/down) for controlling TV 2740 from tablet device 2710. Additionally, the user 116 may interact with the "Bon Appetit" magazine ad that is displayed in ad window 2750. Further, user 116 may select a certain "Simul- Stream" button 2760 to play the TV show on both TV 2740 and tablet device 2710. [00221] Figure 29 shows that the user 116 may decide to switch to another show. Therefore, the user 116 touches the channel up/down control to locate a TV show called Fringe.
  • the TV controls 2714 e.g., pause/play, volume, traditional TV channel up/down
  • the user 116 may interact with the "Bon Appetit" magazine ad that is displayed in ad window 2750. Further, user 116 may select a certain "Simul- Stream" button 2760 to play the TV show on both TV 2740 and tablet device 2710.
  • Figure 29 shows that
  • Figure 30 shows that the user 116 may decide to watch Fringe instead.
  • Fringe episode information is displayed on tablet device 2710, while the TV show is playing at TV 2740.
  • Figure 30 also shows that a Coke Zero ad is playing on TV 2740.
  • PID application 112 is able to detect (1) that a commercial is playing on TV 2740 and (2) that the ad content is about Coke Zero. Therefore, other Coke Zero ad information may be displayed in ad window 2750 at tablet device 2710 substantially concurrently to the Coke Zero ad running on TV 2740.
  • the user 116 may choose to pause the TV show from tablet device 2710 and interact with the Coke Zero ad in ad window 2750.
  • the user 116 touches the "Play the Coke Zero Football Challenge" text in ad window 2750 and the game is then launched and displayed as shown in Figure 31.
  • This is an example of user interaction with information that is delivered by information delivery system 100 to the user 116 on a user device 118. More specifically, this is an example of interactive ads and games.
  • Figure 32 shows that the user 116 may finish playing the Coke Zero game and decide to resume watching the TV show Fringe on TV 2740. Again, Fringe episode information is displayed on tablet device 2710.
  • Figure 32 also shows that a Ford ad is playing on TV 2740.
  • PID application 112 is able to detect (1) that a commercial is playing on TV 2740 and (2) that the ad content is about Ford. In this example, while a national Ford ad is playing on TV 2740, a local Ford dealer ad information may be displayed in ad window 2750 substantially concurrently to the Ford ad running on TV 2740.
  • Provision channel 2720 demonstrates that an aspect of the invention is that PID application 112 may facilitate presentation of synchronized ad information.
  • Figures 33 through 36 illustrate a social feature of "Television" channel 2720.
  • Figure 33 shows that an alert notification appears on the display of tablet device 2710.
  • the alert notification is informing the user 116 that a friend is also watching Fringe.
  • This is an example of the configuration server 654, eventing and alerting subsystem 652, and session manager 656 of PID application 112 working together to determine whether an event has occurred that may trigger an alert of the user 116, then to determine whether the user 116 has an active session and at what user device 118, and then to determine the preferred alert notification method.
  • This is an example of the eventing and alerting features of PID application 112.
  • the user 116 may touch a "Chat” button 2764 to launch a "Social" component of "Television” channel 2720, as shown in Figure 34.
  • Figure 34 shows a chat window 2752 that may display a list of the friends of user 116.
  • the one or more friends that are watching the same TV show as the user 116 may be indicated to the user 116 by, for example, a color bar. Additionally, a show
  • chat window 2752 discussion may appear in the chat window 2752.
  • Figure 35 shows that the user 116 may decide to look at a Social Guide that is displayed in social guide window 2754.
  • the social guide window 2754 may display what all of user 116's friends are watching as well as what everyone else is watching.
  • Figure 36 shows that the user 116 may access the TV show as well as chat from the social guide window 2754.
  • PID application 112 provides users the ability to take action upon receiving an alert. That is, PID application 112 provides actionable eventing and alerting capability. For example, the user 116 responds to the alert by selecting the Social Guide and chatting with his/her friend.
  • Figure 37 shows a search feature of "Television" channel 2720.
  • Figure 37 shows a search window 2756 by which the user 116 may enter the name of a TV show and the airing days and times for that TV show may be displayed at tablet device 2710.
  • Figure 38 shows the electronic programming guide (EPG) feature of "Television” channel 2720.
  • EPG electronic programming guide
  • the user may select the programming guide and the TV service provider appears in an EPG window 2758.
  • the program listings for certain traditional TV channels for the current day and time slot are displayed.
  • the user 116 may scroll to other pages of the programming guide.
  • Figure 39 shows that the user 116 may return to the Social Guide, which is displayed in social guide window 2754, and then decides to watch the TV show called The Mentalist.
  • Figure 40 shows that the user 116 is watching The Mentalist on TV 2740, while The Mentalist episode information is displayed on tablet device 2710. Figure 40 also shows an alert that another friend is also watching The Mentalist.
  • Provision channel 2720 demonstrates that an aspect of the invention is that PID application 112 may facilitate social interactions. That is, because of the system integration, PID application 112 knows what users are consuming what content and at what time.
  • information sources 114 that support "Television" channel 2720 may include, but are not limited to, digital TV service providers, social networking providers, national and local advertising providers, and the like. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Television" channel 2720 may include, but are not limited to, content delivery server 632, stream sync server 636, analytics server 638, advertising server 640, transcoding server 642, and media server 644.
  • FIG. 41 through 44 various screenshots of certain components and operations of an example of a "Home Security" channel 4300 of PID application 112 and a process of alerting a user is presented.
  • Figure 41 shows a screenshot of an example of a client GUI 4100 of PID application 112 that includes a set of touchlets 4110 in channel grid 318 of main viewing panel 310.
  • a "Home Security” touchlet 4110J for presenting dynamic information of, interacting with, and/or launching the "Home Security” channel 4300 (shown in Figure 43).
  • "Home Security” touchlet 4110J is shown in a "no alert present” state. In one example, in the "no alert present” state "Home Security” touchlet 4110J displays an image of a green shield.
  • Figure 42 shows "Home Security" touchlet 4110J in an "alert present” state. In one example, when the "alert present” state occurs, the color of the "Home Security” touchlet 4110J changes to red and displays information about the alerts, such as a "Motion Detected" message.
  • Figure 43 shows "Home Security" channel 4300 operating in a
  • "Home Security" channel 4300 provides a mechanism for monitoring and/or reporting information about the user 116's home security system.
  • Main viewing panel 410 of "Home Security" channel 4300 may include, for example, a status window 4310 and one or more video feed windows 4312.
  • the video feed that is related to a particular alert condition may be color coded to stand out the viewer.
  • Figure 43 shows the backyard video feed highlighted in red, while the others are not highlighted in red.
  • the status window 4310 shows in text form any alert conditions that are present as well as any useful control buttons.
  • a keypad button 4314 may be provided for launching a keypad window 4316, as shown in Figure 44.
  • the keypad window 4316 provides a mechanism by which the user may interact remotely with his/her home security system via any user device 118.
  • Information sources 114 that support "Home Security" channel 4300 may include, for example, one or more home security services. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Home Security" channel 4300 may include, but are not limited to, content delivery server 632 and media server 644. [00238] Referring to Figure 45, tablet device 2710 of Figure 27 and certain components of an example of a "NetFlix" channel 4500 of PID application 112 is presented. In this example, "NetFlix" touchlet 4510 may be used for presenting dynamic information of, interacting with, and/or launching the "NetFlix” channel 4500.
  • NetFlix channel 4500 is designed simply to access NetFlix via its URL address (https://www.netflix.com/) on the Internet, then simply wrap the content that is returned in a web browser, and then present the content on the display of tablet device 2710 (i.e., a user device 118). The user may interact with the NetFlix web content as if interacting using any computer.
  • NetFlix channel 4500 is an example of the user taking advantage of the single login (or universal login) capabilities of information delivery system 100. Outside of the PID application 112 environment, a user would be asked to login to the NetFlix website. However, in the PID application 112 environment, the login operation is performed automatically by the identity subsystem 660, with no user actions.
  • Information sources 114 that support "NetFlix" channel 4500 may include, for example, the NetFlix web service. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112.
  • the servers of PID application 112 at application server 110 that support "NetFlix" channel 4500 may include, but are not limited to, content delivery server 632, stream sync server 636, advertising server 640, and a media server 644.
  • FIGS 46 and 47 screenshots of certain components of an example of a "Remote Healthcare” channel 4600 of PID application 112 is presented. Figures 46 and 47 show "Remote Healthcare” channel 4600 operating in a
  • a "Remote Healthcare” touchlet 4610 is provided for presenting dynamic information of, interacting with, and/or launching "Remote Healthcare” channel 4600.
  • "Remote Healthcare” channel 4600 provides a video conferencing service between any entities related to healthcare, such as, but not limited to, patients, patients' family members, doctors, nurses, pharmacists, and the like.
  • Main viewing panel 410 of "Remote Healthcare" channel 4600 may include, for example, a video feed window 4612, a health questions window 4614, and a health overview window 4616.
  • Video feed window 4612 may display a video feed of any persons, for example, participating in a medical consultation session.
  • Figure 46 shows a video feed of the patient only, while Figure 47 shows both the patient and the doctor are conferenced in.
  • the patient is one user 116 and the doctor is another user 116 of information delivery system 100.
  • Health questions window 4614 may contain a questionnaire. The patient may interact with the questionnaire, thereby providing important medical information for those joining the medical consultation session. Additionally, health overview window 4616 may provide various current, historical and trend sensor information related to the patient health (e.g., sensor data that is returned from certain devices that are used by the patent). One example is a USB-enabled blood pressure device. In this example, the patient's blood pressure, pulse rate, and oxygen levels are reported in health overview window 4616.
  • FIG. 48 screenshots of certain components of an example of a "My Medicine Cabinet” channel 4800 of PID application 112 is presented.
  • Figure 48 shows "My Medicine Cabinet” channel 4800 operating in a substantially full-screen mode.
  • a "My Medicine Cabinet” touchlet 4810 is provided for presenting dynamic information of, interacting with, and/or launching "My Medicine Cabinet” channel 4800.
  • "My Medicine Cabinet” channel 4800 provides a mechanism for managing a treatment regimen of a patient and is suitable for use by, for example, patients, patients' family members, doctors, nurses, pharmacists, and the like.
  • Main viewing panel 410 of "My Medicine Cabinet" channel 4800 may include, for example, a treatment regimen window 4812 and a calendar window 4814.
  • Treatment regimen window 4812 displays, for example, a daily view of any medications that have been prescribed to a certain user 116 and dosage information. Alerts may be generated base on the dosage information (e.g., as to when a patent is due to take a certain medication).
  • Calendar window 4814 may display, for example, a monthly view of any medications that have been prescribed to a certain user 116. Alerts may be generated base on this information (e.g., as to when a certain prescription needs to be refilled).
  • Information sources 114 that support "Remote Healthcare” channel 4600 and/or "My Medicine Cabinet” channel 4800 may include any healthcare service provider databases, where the healthcare service providers may be, for example, doctors, hospitals, pharmaceutical companies, pharmacies, and the like. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Remote Healthcare” channel 4600 and/or "My Medicine Cabinet” channel 4800 may include, but are not limited to, content delivery server 632, collaboration media server 634, analytics server 638, and a media server 644.
  • FIG. 49 screenshots of certain components of an example of an "MS Word” channel 4900 of PID application 112 is presented.
  • Figure 49 shows “MS Word” channel 4900 operating in a substantially full-screen mode.
  • a "MS Word” touchlet 4910 is provided for presenting dynamic information of, interacting with, and/or launching “MS Word” channel 4900.
  • “MS Word” channel 4900 provides a mechanism for processing MS Word documents to users 116.
  • Main viewing panel 410 of "MS Word” channel 4900 may include, for example, a viewing/editing window 4912, in which a user 116 may open, view, and/or edit MS Word documents.
  • “MS Word” channel 4900 is an example of accessing an application that may already be installed and running on a user device 118.
  • "MS Word" channel 4900 may launch the local MS Word application running as a native application on a laptop or desktop computer and then present the Word document to the user 116.
  • FIG. 50 screenshots of certain components of an example of an "Email” channel 5000 of PID application 112 is presented.
  • Figure 50 shows “Email” channel 5000 operating in a substantially full-screen mode.
  • An "Email” touchlet 5010 is provided for presenting dynamic information of, interacting with, and/or launching "Email” channel 5000.
  • "Email" channel 5000 provides an email service to the user 116.
  • Main viewing panel 410 of "Email" channel 5000 may include an inbox window 5012 and a folders window 5014.
  • the inbox window 5012 displays emails in the user's inbox.
  • Folders window 5014 may display various email folders including the user's address book.
  • Figure 50 shows that the information about the sender of the email currently being viewed may be displayed, including a photo.
  • Information sources 114 that support "Email" channel 5000 may include at least one email provider or a combination of multiple email providers. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Email" channel 5000 may include, but are not limited to, content delivery server 632, analytics server 638, and media server 644.
  • FIG 51 screenshots of certain components of an example of a "News Reader” channel 5100 of PID application 112 is presented.
  • Figure 51 shows “News Reader” channel 5100 operating in a substantially full-screen mode.
  • a "News Reader” touchlet 5110 is provided for presenting dynamic information of, interacting with, and/or launching "News Reader” channel 5100.
  • "News Reader” channel 5100 provides a news presentation service to users 116.
  • Main viewing panel 410 of "News Reader” channel 5100 may include, for example, a subscriptions window 5112 and a news story window 5114.
  • Subscriptions window 5112 may display, for example, folders of any news feeds to which the user 116 is subscribed.
  • News story window 5114 may display, for example, any news content of the day.
  • Alerts may be set to notify the user, for example, when any subscriptions are due to expire.
  • "News Reader” channel 5100 may provide mechanism by which the user 1 16 may renew subscriptions.
  • the use of "News Reader” channel 5100 may be an example of the user taking advantage of the single login (or universal login) capabilities of information delivery system 100. Outside of the PID application 112 environment, a user would be asked to login to the news service provider. However, in the PID application 112 environment, the login operation is performed automatically by the identity subsystem 660, with no user actions.
  • Information sources 114 that support "News Reader” channel 5100 may include, for example, any news web service. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "News Reader” channel 5100 may include, but are not limited to, content delivery server 632, stream sync server 636, analytics server 638, advertising server 640, and a media server 644.
  • Figures 52 through 72 describe non- limiting examples of channel grids 318 and channels 200 that may be suitable for enterprise use (e.g., corporate and business environments and/or across business ecosystems, such as supplier and contractor networks). However, these examples are not limited to enterprise use only.
  • the channels described in Figures 52 through 72 may also be suitable for consumer and/or other applications.
  • a certain enterprise may provide a suite of channel grids 318 and channels 200 that may be useful for performing any tasks related to the enterprise.
  • the suite of channels 200 may be arranged in a suite of channel grids 318 in which each channel grid 318 includes a unique set of related touchlets 316 for accessing the underlying channels 200.
  • the availability and/or functionality of the channels 200 and/or touchlets 316 may vary based on groups, functions, roles, tasks and/or individuals in the enterprise.
  • legacy applications may include, but are not limited to Human Resource Management (HRM), Enterprise Resource Management (ERP), Product Life Cycle Management (PLM), Customer Relationship Management (CRM) systems and tools.
  • HRM Human Resource Management
  • ERP Enterprise Resource Management
  • PLM Product Life Cycle Management
  • CRM Customer Relationship Management
  • legacy tools and systems are optimized for certain corporate uses and to serve internal corporate reporting needs and often work poorly for management decision making purposes.
  • These legacy tools may work well for generating monthly corporate reports, but may not work well for performing real-time analysis for decision makers. For example in managing customer sales accounts, information may be required in real-time from the ERP, PLM and CRM systems. Additionally, useful information may be available from legacy systems, but may be very difficult to access and present in a way that is meaningful to the user to understand and take action on.
  • a sales account manager looking for a global weekly sales estimate may spend a lot of time searching for customer sales information across different corporate systems instead of acting on the information and visiting customers who sales are trending downward. Further, there is typically more information available than a user can easily find, interpret, and organize in a meaningful way.
  • an aspect of the invention is that PID application 112 of information delivery system 100 may be used in combination with legacy tools that are deployed to process data in the legacy enterprise environment.
  • certain channels 200 may be created to provide user-centric content and insights in the enterprise environment. That is, the channels 200 may provide content and insights that are tailored to the needs of users 116, by presenting content meaningful to the user.
  • PID application 112 of information delivery system 100 may be used to extract, aggregate or consolidate legacy data across multiple legacy systems and then organize and present the data in a meaningful way via a channel 200.
  • Enterprises may have analytic teams that produce useful analytical reports from legacy systems, but information available via these analytical reports may be very detailed, for a narrow audience, difficult to interpret, and may be out of date by the time the data is accessed. Therefore, an aspect of the invention is that PID application 112 of information delivery system 100 allows data to be readily consumed, with insights and with narrow windows, and allows users 116 to take rapid action, thereby adding value to this data. The system also allows for the user to interrogate data drawing further insights into the enterprise.
  • a screenshot of an example of an enterprise client GUI 5200 is presented that includes an example of a login window.
  • the taskbar 312 of enterprise client GUI 5200 may include a company name field 313.
  • the company name field 313 is populated with "PQR Corporation.”
  • users 116 may be, for example, employees, contractors, suppliers, regulators, government officials, and/or any other individuals authorized to access enterprise client GUI 5200.
  • a user login window 5210 may be presented in main viewing panel 310 by which the user may enter his/her username and password.
  • a suite of channels and/or channel grids may be presented to the user 116. Examples of channel grids that may be associated with an enterprise are shown in Figures 53 and 54.
  • Figure 53 shows a channel grid 318a that is displayed when the user 116 selects a channel grid icon 324a of the navigation bar 314.
  • Figure 54 shows a channel grid 318b that is displayed when the user 116 selects a channel grid icon 324b of the navigation bar 314.
  • Channel grid 318a of Figure 53 is used to display a first set of touchlets 316 (e.g., touchlets 316A through 316L) that are associated with a first set of channels 200 (not shown).
  • channel grid 318b of Figure 55 is used to display a second set of touchlets 316 (e.g., touchlets 316M through 316X) that are associated with a second set of channels 200 (not shown).
  • channel grid 318a of Figure 53 may be used to display a set of touchlets 316 that are related to enterprise as a whole, such as to PQR Corporation as a whole.
  • channel grid 318b of Figure 54 may be used to display a set of touchlets 316 that are related to a certain division, group and/or sales account of the enterprise, such as a certain division, group and/or sales account of PQR Corporation.
  • channel grid 318a may include an "Email" touchlet 316A, a “Personal Calendar” touchlet 316B, a “My Company in the Press” touchlet 316C, a “News Reader” touchlet 316D, a “New Technologies” touchlet 316E, a "What is Selling” touchlet 316F, an "Analytics Tool Set” touchlet 316G, a "myNet” touchlet 316H, a "Channel Catalog” touchlet 3161, a "My HR” touchlet 316 J, a “My Performance” touchlet 316K, and a “Currency Converter” touchlet 316L.
  • "Email" touchlet 316A of channel grid 318a may be associated with an "Email” channel, such as, but not limited to, "Email” channel 5000 of Figure 50.
  • the "Email” channel may be the users' corporate email application or a consolidation of various user email accounts.
  • the "Email” channel may include additional features such as connecting an email address to an address book entry with a picture of the contact.
  • Periodical Calendar touchlet 316B of channel grid 318a may be associated with a "Personal Calendar” channel, such as, but not limited to, a "Personal Calendar” channel 5500 of Figure 55.
  • the "Personal Calendar” channel may, for example, provide a listing of all commitments, meetings, to do lists and the like.
  • "Personal Calendar” channel may use active alerts to notify the user of upcoming events, such as a meeting.
  • "My Company in the Press” touchlet 316C of channel grid 318a may be associated with a "My Company in the Press” channel (not shown).
  • the "My Company in the Press” channel may provide, for example, live videos; streaming news feeds; access to news archive by hour, day, week, and/or month; access to YouTube; and any combinations thereof.
  • Examples of content on the "My Company in the Press” channel may include, but are not limited to, news interviews, company advertisements, product reviews, and annual shareholder meetings.
  • "News Reader” touchlet 316D of channel grid 318a may be associated with a "News Reader” channel, such as, but not limited to, the "News Reader” channel 5100 of Figure 51.
  • the "News Reader” channel 5100 may provide company RSS feeds (e.g., PQR Corporation RSS feeds) from multiple internal and external sources, such as from an internal Twitter account and the New York Times.
  • "New Technologies" touchlet 316E of channel grid 318a may be associated with a "New Technologies" channel (not shown).
  • the "New Technologies" channel may provide access to a forum for company product announcements, a recap of latest insights from the company research and
  • "What is Selling" touchlet 316F of channel grid 318a may be associated with a "What is Selling" channel (not shown).
  • the "What is Selling" channel may provide information about certain products, for example, product orders by hour, day, week, month, and/or quarter, information about client wins or loses, information about top sales managers, sales recognitions, and the like.
  • "Analytics Tool Set” touchlet 316G of channel grid 318a may be associated with an "Analytics Tool Set” channel (not shown).
  • the "Analytics Tool Set” channel may provide a set of Statistical Analysis Software (SAS) products and/or related analytic products for users to analyze specific trends in data sets, access to business analytics services, drill down capability, report generation and the like.
  • SAS Statistical Analysis Software
  • "myNet” touchlet 316H of channel grid 318a may be associated with a "myNet” channel, such as, but not limited to, a "myNet” channel 5600 of Figure 56.
  • the "myNet” channel 5600 may provide a compilation of company-specific social sites (e.g., PQR Corporation-specific social sites).
  • the "myNet” channel 5600 may provide simple tools to enable posting of a comment to multiple forums.
  • Channel Catalog touchlet 3161 of channel grid 318a may be associated with a channel application catalog, such as, but not limited to, channel application catalog 631 of Figure 12, a channel application catalog 6500 of Figure 65, and a channel application catalog 6700 of Figure 67.
  • the channel application catalog is accessed to download certain channel grids and/or channels.
  • the catalog may provide free and for pay channels.
  • Channel application catalogs may be sensitive to a user's role and rights within the enterprise. More details about user roles and user groups in an enterprise are described with reference to Figures 62 through 67.
  • "My HR" touchlet 316 J of channel grid 318a may be associated with a "My HR” channel (not shown).
  • the "My HR” channel may provide access to all personal HR-related information, such as benefits, vacation time, savings account, required training, policies and procedures, and the like.
  • the "My HR” channel has the capability to alert users to, for example, out of boundary conditions, such as expiring vacation or the need to take health and safety training.
  • the "My HR” channel may provide access to content based on user level and user identity.
  • "My Performance" touchlet 316K of channel grid 318a may be associated with a "My Performance” channel (not shown).
  • the "My Performance" channel may provide a composite of all metrics (e.g., based on user level and user identity) that are translated into incentive compensation or related reward schema. Automatic alerts may be generated when HR-defmed thresholds for performance are missed and/or exceeded.
  • the "My HR" channel and the "My Performance” channel may be an example of using data associated with an enterprise that may originate from legacy systems, such as from a legacy HR system and ERP system, and then tailoring the data to present information to users 116 in a meaningful way that is of particular interest.
  • legacy HR system may provide information about each employee's department, region, level, position, role, and the like.
  • information delivery system 100 of the present invention this information may be loaded into the user profiles. Accordingly, information delivery system 100 may be used to create and assign roles and/or groups from the information of the legacy HR system.
  • HR functions may have a management group that writes performance reviews, a director group that approves the reviews, a senior management group that audits the reviews, and the like.
  • a director will not be asked to approve a review until the manager completed the final review.
  • the ERP system may provide information about the employee's performance (e.g. customer orders booked for the year) from the "My Performance" channel to information delivery system 100 of the present invention in order to assist the manager in creating the review.
  • "Currency Converter” touchlet 316L of channel grid 318a may be associated with a “Currency Converter” channel (not shown).
  • the "Currency Converter” channel may provide a real-time conversion calculator set, for example, by user identity, user location, user role, and the like.
  • the "Currency Converter” channel may be optimized per the company finance department for metrics important to the user, such as sales by division, group, and/or employee.
  • the "Currency Converter” channel may provide internal company estimates for future sales in every country in which the company does business and in the currency most commonly used in the user's location.
  • channel grid 318b may include a "Stock Watch” touchlet 316M, an "Account Calendar” touchlet 316N, a “News Reader” touchlet 3160, a “myNet” touchlet 316P, a “Real-time Profit & Loss” touchlet 316Q, an "Account Bookings” touchlet 316R, a "Sales Pipeline” touchlet 316S, a "Personnel Locator” touchlet 316T, a "Channel Catalog” touchlet 316U, an "Open Room” touchlet 316V, a "Security Threat Trends” touchlet 316W, and a "Room Finder” touchlet 316X.
  • "Stock Watch” touchlet 316M of channel grid 318b may be associated with a “Stock Watch” channel, such as, but not limited to, "Stock Watch” channel 1400 of Figure 14.
  • the "Stock Watch” channel may be configurable to deliver competitive industry performance, such as balance sheet ratios or other suitable indicators of financial health.
  • the "Stock Watch” channel may provide realtime quotes and capability to set thresholds with alerts.
  • "Account Calendar” touchlet 316N of channel grid 318b may be associated with an “Account Calendar” channel (not shown).
  • the "Account Calendar” touchlet 316N of channel grid 318b may be associated with an “Account Calendar” channel (not shown).
  • the Calendar” channel may provide a sales account team calendar function that may be sales account-specific.
  • the “Account Calendar” channel maybe used for tracking sales meetings, order entry deadlines, payment dates, quarterly close dates, any information that pertains to the sales account, and the like.
  • the user may, for example, merge client sales demo events and trade show attendance dates into the "Account Calendar” channel, in order to build composite situational awareness for everything that is occurring in the sales account.
  • the "Account Calendar” channel may provide alert mechanisms to push notifications when deadlines are approaching.
  • the "Account Calendar” channel may also merge and/or combine with other channels. For example, the "Account Calendar” channel may merge and/or combine with the "Room Finder” channel in order to acquire information about sales meeting locations.
  • "News Reader” touchlet 3160 of channel grid 318b may be associated with a "News Reader” channel, such as, but not limited to, the "News Reader” channel 5100 of Figure 51.
  • this "News Reader” channel may be a company division-, group- and/or account-specific "News Reader” channel.
  • This "News Reader” channel may provide, for example, specific news that is sortable by sales account, by location, and/or by any other important attributes.
  • This "News Reader” channel may provide company division-, group- and/or account-specific news, external reports or internal intelligence insights on client events in the news.
  • "myNet” touchlet 316P of channel grid 318b may be associated with a "myNet” channel, such as, but not limited to, the "myNet” channel 5600 of Figure 56.
  • the "myNet” channel 5600 may provide a compilation of company, division, group and/or account-specific social sites (e.g., divisions of and/or groups within PQR Corporation).
  • the "myNet” channel 5600 may provide simple tools to enable posting of a comment to multiple forums.
  • the "myNet” channel 5600 may also provide the capability to set alerts (e.g., monitoring channel information for London office AND management change) to users.
  • "Real-time Profit & Loss" touchlet 316Q of channel grid 318b may be associated with a "Real-time Profit & Loss" channel (not shown) that is company division- and/or group-specific.
  • the "Real-time Profit & Loss" channel may be used to create a composite of actual performance, adjusted for currency, indicating net margin contribution in real time.
  • "Account Bookings" touchlet 316R of channel grid 318b may be associated with a "Account Bookings" channel (not shown).
  • the "Account Bookings” channel may be a company division-, group- and/or account- specific channel that provides composite sales bookings by category, such as hardware, software, and/or services.
  • This "Account Bookings” channel may provide timelines of booking to shipment to payment.
  • This "Account Bookings” channel may also be merged and/or combined with the "Currency Converter” channel to analyze net booking margin - alerts may be set to thresholds.
  • "Sales Pipeline” touchlet 316S of channel grid 318b may be associated with a "Sales Pipeline” channel, such as, but not limited to, a "Sales Pipeline” channel 5700 of Figure 57.
  • the "Sales Pipeline” channel may provide a forecast of total account revenue by month, probability, and category, such as hardware, software, and/or services.
  • the "Sales Pipeline” channel may provide a mean to interrogate sales pipeline information, for example, if a user wanted to understand the composition of the hardware pipeline, an interrogation might launch the "Account Bookings" channel.
  • "Personnel Locator" touchlet 316T of channel grid 318b may be associated with a "Personnel Locator” channel (not shown).
  • the "Personnel Locator” channel may provide an account team and client locator function. That is, the "Personnel Locator” channel may provide a look-up utility for all company personnel associated with the client, with pictures and groupings. Additional information may also include assigned activities, deal prospects, current location, and the like.
  • the "Personnel Locator” channel may provide a similar utility for client contacts with links to company counterparts.
  • the "Personnel Locator” channel may provide the capability to link names and activate messaging services, such as email, SMS, and the like.
  • Channel Catalog touchlet 316U of channel grid 318b may be associated with a channel application catalog, such as, but not limited to, channel application catalog 631 of Figure 12, channel application catalog 6500 of Figure 65, and channel application catalog 6700 of Figure 67. Again, the channel application catalog is accessed to download certain channel grids and/or channels.
  • "Open Room” touchlet 316V of channel grid 318b may be associated with an "Open Room” channel, such as, but not limited to, an "Open Room” channel 5800 of Figure 58.
  • the "Open Room” channel may provide a mechanism for real-time collaboration and video conferencing.
  • the "Open Room” channel may provide direct access to initiate a conference and provide relevant content.
  • the "Open Room” channel may provide access to other channels to begin collaboration
  • the "Open Room” channel may provide assess to the "Sales Pipeline” channel or "Personal Calendar” channel to help facilitate collaboration.
  • "Security Threat Trends” touchlet 316W of channel grid 318b may be associated with a "Security Threat Trends” channel, such as, but not limited to, a "Security Threat Trends” channel 5900 of Figures 59, 60, and 61.
  • the "Security Threat Trends” channel may provide company intelligence service tools on security threats to the company, such as attempts to circumvent firewalls or unauthorized entry into a building facility.
  • the "Security Threat Trends” channel may include an advanced set of utilities to set alerts relating to threats facing the company.
  • the "Security Threat Trends” channel may be linked to, combined with, and/or merged into other channels, such as a "News Reader” channel to provide external information relating to threats facing the company including, for example, fire and power outage information.
  • "Room Finder" touchlet 316X of channel grid 318b may be associated with a "Room Finder" channel (not shown).
  • the "Room Finder” channel may provide a utility to input a sales meeting location or company campus location and find a meeting room.
  • the "Room Finder” channel may include an access-enabled room scheduling tool to set up meetings or launch "Just-In-Time” workspace software applications that may be used to schedule meeting space appropriate for the requestor (e.g., by identity/level) and may send notification to others.
  • the "Room Finder” channel may be used to generate a visual and/or audible map to the room location using the geo-location capability of, for example, the user's client device, such as their cell phone.
  • FIG 55 screenshots of certain components of an example of a "Personal Calendar” channel 5500 that is suitable for use in enterprise applications is presented.
  • Figure 55 shows "Personal Calendar” channel 5500 operating in a substantially full-screen mode.
  • a "Personal Calendar” touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching "Personal Calendar” channel 5500.
  • the "Personal Calendar” channel may, for example, provide a listing of the user's commitments, meetings, and the like.
  • Period Calendar may use active alerts to notify the user of upcoming events.
  • Main viewing panel 410 of "Personal Calendar” channel 5500 may include, for example, a daily view window 5512 and a monthly view window 5514.
  • the daily view window 5512 may display, for example, a list of today's events.
  • the monthly view window 5514 may display, for example, a full month's events in standard calendar form.
  • Main viewing panel 410 of "Personal Calendar” channel 5500 may also include certain control buttons, such as, but not limited to, an "Events” button, a "Mail” button, an "Address Book” button, and a "Subscribe” button.
  • FIG. 56 screenshots of certain components of an example of "myNet” channel 5600 that is suitable for use in enterprise applications is presented.
  • Figure 56 shows “myNet” channel 5600 operating in a substantially fullscreen mode.
  • a “myNet” touchlet 316P is provided for presenting dynamic information of, interacting with, and/or launching “myNet” channel 5600.
  • the "myNet” channel 5600 may provide a compilation of certain social sites (e.g., company-specific, division-specific, group-specific, and/or account-specific social sites).
  • the "myNet” channel 5600 may provide simple tools to enable posting of a commentary to multiple forums.
  • the "myNet” channel 5600 may also provide the capability to send a variety of alert types, such as text driven alerts.
  • Main viewing panel 410 of "myNet" channel 5600 may include, for example, a friends window 5612 and a latest updates window 5614.
  • the friends window 5612 may display, for example, a list of the contacts as well as their online status.
  • the latest updates window 5614 may display, for example, one or more forums for posting comments.
  • latest updates window 5614 may include a Facebook session, a Twitter session, and a chronological log of the user's activities.
  • FIG. 57 screenshots of certain components of an example of "Sales Pipeline” channel 5700 that is suitable for use in enterprise applications is presented.
  • Figure 57 shows “Sales Pipeline” channel 5700 operating in a
  • a "Sales Pipeline” touchlet 316S is provided for presenting dynamic information of, interacting with, and/or launching "Sales
  • the "Sales Pipeline” channel may provide a forecast of total account revenue by month, probability, and category, such as hardware, software, and/or services.
  • other sales metrics maybe tracked. For example, total sales opportunity, total proposals, and total contracts may be tracked.
  • the user may interrogate various forecasts and metrics to obtain more information and context about the information. For example, in interrogating the sales contracts metrics the "Account Bookings" channel may be launched, combined, and/or merged with the "Sales Pipeline” channel in order to allow the user to understand exactly what accounts have booked contracts.
  • Main viewing panel 410 of "Sales Pipeline” channel 5700 may include, for example, a selection window 5712 and a sales forecast window 5714.
  • the selection window 5712 allows the user to select any month of the year. Once the user selects a certain month, the selected month's sales forecast information is displayed in sales forecast window 5714.
  • Main viewing panel 410 of "Sales Pipeline” channel 5700 may also include certain control buttons, such as, but not limited to, a "Settings" button, as well as a search tool.
  • FIG. 58 screenshots of certain components of an example of an "Open Room” channel 5800 that is suitable for use in enterprise applications is presented.
  • Figure 58 shows "Open Room” channel 5800 operating in a substantially full-screen mode.
  • An "Open Room” touchlet 316V is provided for presenting dynamic information of, interacting with, and/or launching "Open Room” channel 5800.
  • "Open Room” channel 5800 provides a video and/or audio conferencing service to users 116.
  • Main viewing panel 410 of "Open Room” channel 5800 may include, for example, an attendees window 5812 and a video feed window 5814.
  • the attendees window 5812 displays a list of any attendees that have joined the video conference and a chat feature.
  • the video feed window 5814 displays streaming video or periodic camera shots of any attendees that have joined the video conference.
  • Main viewing panel 410 of "Open Room” channel 5800 may also include certain control buttons for, for example, sharing documents, passing control of the video conference, and the like.
  • Mini-touchlets 416 may include touchlets that are specifically relevant to the video conference and/or mini-touchlets that help aid collaboration of the team members. For example, a certain "Open Room" mini-touchlet 416 may be used to book a meeting room for the next team meeting.
  • Mini-touchlets 416 may include touchlets that provide information relevant to the meeting topic. In providing information relevant to the meeting, the "Personal Calendar" channel of the meeting organizer may be interrogated to determine the subject of the meeting. If, for example, the meeting is a monthly sales meeting, one mini-touchlet 416 may be a "Sales Pipeline" mini-touchlet.
  • FIG. 59, 60, and 61 screenshots of certain components of an example of the "Security Threat Trends” channel 5900 that is suitable for use in enterprise applications is presented.
  • Figures 59, 60, and 61 show “Security Threat Trends” channel 5900 operating in a substantially full-screen mode.
  • a "Security Threat Trends” touchlet 316W is provided for presenting dynamic information of, interacting with, and/or launching "Security Threat Trends” channel 5900.
  • the “Security Threat Trends” channel may provide company intelligence on threats facing the company from internal and external sources. For example threats to computer network security.
  • Main viewing panel 410 of "Security Threat Trends" channel 5900 may include, for example, a data window 5912 and a trends window 5914.
  • the data window 5912 displays, for example, certain information about company host computer resources.
  • Trends window 5914 includes, for example, three tabs: a "Threat Management Trend” tab, a "Vulnerability Exposure Trend” tab, and a "Security Intelligence Trend” tab.
  • Figure 59 shows information corresponding to the "Threat Management Trend” tab.
  • Figure 60 shows information corresponding to the
  • Figure 61 shows information corresponding to the "Security Intelligence Trend” tab.
  • Main viewing panel 410 of "Security Threat Trends" channel 5900 may also include certain control buttons, such as, but not limited to, a “Settings” button, as well as a search tool.
  • FIG. 62 a block diagram of an example of an enterprise user hierarchy 6200 is presented that shows individual users, roles assigned to users, and/or users assigned to groups within an enterprise.
  • the implementation of individual users, roles, and/or groups in information delivery system 100 is not limited to enterprise applications only. Individual users, roles, and/or groups are likewise applicable to consumer applications.
  • Users 116 in, for example, a corporate environment may be assigned to groups based, for example, on their titles, positions, levels, and/or authority in a company. Users 116 may then be assigned roles within their assigned group.
  • enterprise user hierarchy 6200 includes one or more users 116 that are assigned to a directors group 6210.
  • each user 116 may have the title of director within the enterprise.
  • a certain user 116 (i.e., director) in the directors group 6210 may have the role of "System Administrator,” while another user 116 in the directors group 6210 may have the role of "Emergency Coordinator.”
  • enterprise user hierarchy 6200 includes one or more users 116 that are assigned to a managers group 6212.
  • each user 116 may have the title of manager within the enterprise.
  • a certain user 116 (i.e., manager) in the managers group 6212 may have the role of "Performance Appraiser,” while another user 116 in the managers group 6212 may have the role of "Threat Case Manager.”
  • enterprise user hierarchy 6200 includes one or more users 116 that are assigned to an analysts group 6214.
  • each user 116 may have the title of analyst within the enterprise.
  • a certain user 116 (i.e., analyst) in the analysts group 6214 may have the role of "Senior Analyst,” while another user 116 in the analysts group 6214 may have the role of "Associate Analyst.”
  • enterprise user hierarchy 6200 may also include one or more individuals 6216, which may be any users 116 that are not necessarily assigned to a group. While not assigned to a group, each individual 6216 may be assigned a role based on their title, position, level, and/or authority in the company. For example, one individual 6216 may be the company CEO, which is his/her assigned role. Another individual 6216 may be the company CFO, which is his/her assigned role.
  • the content that is available to any user 116 may be group- and/or role- dependent. That is, the authorizations and/or permissions with respect to accessing and/or using channels, channel grids, and/or with respect content presented by the channels and/or channel grids may be dependent on the user's group and/or role within the enterprise.
  • enterprise user hierarchy 6200 of Figure 62 to an information security enterprise, such as, but not limited to, corporate security office that is responsible for safeguarding sensitive corporate information.
  • the process of safeguarding sensitive information may include an insider threat avoidance system that is implemented using information delivery system 100.
  • information delivery system 100 is used to monitor employee (or any insider, such as a contractor, supplier, regulator, and/or project manager) activity with respect to unauthorized access, use, disclosure, disruption, modification, perusal, inspection, recording, or destruction of sensitive information. If a potential threat is indentified, a case may be opened to manage the investigation of the threat using "Security Threat Trends" channel 5900.
  • users 116 i.e., directors
  • users 116 i.e., directors
  • users 116 i.e., directors
  • users 116 i.e., directors
  • a particular user 116 i.e., director
  • the directors group 6210 may have the role of "System Administrator,” who has the authority to add, update, and delete users 116 and/or cases from the insider threat avoidance system, which is implemented using information delivery system 100.
  • System Administrator the role of "System Administrator”
  • Administrators the authorization status of individuals 6216 may be assigned uniquely depending upon their respective roles in the enterprise (e.g., CEO, CFO, etc).
  • users 116 i.e., managers
  • users 116 in the managers group 6212 may have medium level authorization with respect to access and/or use of certain channels and/or content and/or with respect to permissions to perform certain actions.
  • users 116 in the managers group 6212 have create, update, and read authority; and also have business process control.
  • a particular user 116 (i.e., manager) in the managers group 6212 may have the role of "Threat Case Manager," who has the authority to create a case, view a case, update a case, and perform an approval step, which may promote the case to the next step in the workflow.
  • the role of "Threat Case Manager" in the managers group 6212 does not allow adding and deleting users and/or cases.
  • users 116 i.e., analysts
  • users 116 i.e., analysts
  • the analysts group 6214 may have the lowest level authorization with respect to access and/or use of certain channels and/or content and/or with respect to permissions to perform certain action.
  • a particular user 116 i.e., analyst
  • the roles of "Senior Analyst” in the analysts group 6214 does not allow business process control.
  • the "Senior Analyst” in the analysts group 6214 may not perform the approval step and promote the case to the next step in the workflow.
  • Examples of group- and/or role-dependent content and/or actions with respect to an insider threat avoidance system, which is implemented using information delivery system 100, are described with reference to Figures 63 through 72.
  • FIG. 63 a screenshot of an analyst client GUI 6300 is presented that includes an example of a channel grid for users 116 (i.e., analysts) in the analysts group 6214 of the enterprise.
  • a channel grid 318c is displayed on the user device 118 of the analyst.
  • the content of channel grid 318c is role-specific with respect to users 116 (i.e., analysts) in the analysts group 6214.
  • channel grid 318c includes three touchlets 316 for which analysts are authorized.
  • channel grid 318c includes an "Alerts" touchlet 316A, a "Personnel Activity” touchlet 316B, and a "Reports" touchlet 316C.
  • "Alerts" touchlet 316A of channel grid 318c may be associated with an "Alerts" channel, such as, but not limited to, an "Alerts” channel 6800 of Figure 68.
  • the "Alerts" channel allows authorized analysts, managers, and/or directors to be alerted to and/or view new cases for individuals who may have performed potentially suspicious activities.
  • Periodic Activity touchlet 316B of channel grid 318c may be associated with a "Personnel Activity” channel, such as, but not limited to, a
  • Personnel Activity channel 6900 of Figure 69 allows authorized analysts, managers, and/or directors to view activities of personnel inside the enterprise and investigate their activities in relation to the alert and case.
  • "Reports" touchlet 316C of channel grid 318c may be associated with a "Reports” channel, such as, but not limited to, a “Reports” channel 7000 of Figure 70.
  • the "Reports” channel allows authorized analysts, managers, and/or directors to generate analytics reports on specific activities data.
  • the "Reports” channel may access, merge, and/or combine with the "Personnel Activity” channel to facilitate the production of a report.
  • the "Personnel Activity” channel may provide a computer log of a user's system activity that may be included in the analytics section of a report.
  • a screenshot of a manager client GUI 6400 is presented that includes an example of a channel grid for users 116 (i.e., managers) in the managers group 6212 of the enterprise.
  • a channel grid 318d is displayed on the user device 118 of the manager.
  • the content of channel grid 318d is role-specific with respect to users 116 (i.e., managers) in the managers group 6212.
  • channel grid 318d includes four touchlets 316 for which managers are authorized.
  • channel grid 318d includes the "Alerts" touchlet 316A, "Personnel Activity” touchlet 316B, and “Reports” touchlet 316C that are described in Figure 63 with respect to analysts. However, managers are further authorized to receive a "Catalog” touchlet 316D. Whereas analysts are not authorized to receive "Catalog” touchlet 316D (see channel grid 318c of Figure 63).
  • "Catalog" touchlet 316D of channel grid 318d may be associated with a channel application catalog, such as, but not limited to, a channel application catalog 6500 of Figure 65.
  • the channel application catalog allows users to configure the channels that are displayed on their channel grids.
  • a screenshot of an example of the channel application catalog 6500 is presented that includes content that corresponds to users 116 (i.e., managers) in the managers group 6212 of the enterprise.
  • the content of channel application catalog 6500 is role-specific with respect to managers. That is, only channels for which managers are authorized are available in channel application catalog 6500.
  • managers are authorized to receive the "Alerts" channel, "Personnel Activity” channel, "Reports” channel, and additional manager level channels from "Catalog” channel.
  • a screenshot of a director client GUI 6600 is presented that includes an example of a channel grid for users 116 (i.e., directors) in the directors group 6210 of the enterprise.
  • a channel grid 318e is displayed on the user device 118 of the director.
  • the content of channel grid 318e is role-specific with respect to users 116 (i.e., directors) in the directors group 6210.
  • channel grid 318e includes six touchlets 316 for which directors are authorized.
  • channel grid 318e includes the "Alerts” touchlet 316A, "Personnel Activity” touchlet 316B, and “Reports” touchlet 316C that are described in Figure 63 with respect to analysts.
  • Channel grid 318e also includes the "Catalog” touchlet 316D that is described in Figure 64 with respect to managers. However, directors are further authorized to receive a "User
  • "User Administration" touchlet 316E of channel grid 318e may be associated with a "User Administration” channel, such as, but not limited to, a "User Administration” channel 7100 of Figure 71.
  • a particular user 116 i.e., director
  • the directors group 6210 may have the role of "System Administrator,” who has the authority to set roles and groups for the system users.
  • "Catalog Administration" touchlet 316F of channel grid 318e may be associated with a "Catalog Administration” channel, such as, but not limited to, a “Catalog Administration” channel 7200 of Figure 72.
  • a “Catalog Administration” channel allows the "System Administrator” to manage the catalog content as it relates to roles and groups of the system users.
  • FIG. 67 a screenshot of an example of a channel application catalog 6700 is presented that includes content that corresponds to users 116 (i.e., directors) in the directors group 6210 of the enterprise.
  • the content of channel application catalog 6700 is role-specific with respect to directors. That is, only channels for which directors are authorized are available in channel application catalog 6700.
  • directors are authorized to receive the "Alerts" channel, "Personnel Activity” channel, "Reports” channel, "Catalog” channel, "User Administration” channel, and "Catalog Administration” channel.
  • FIG. 68 screenshots of certain components of an example of the "Alerts” channel 6800 that is suitable for use in enterprise applications is presented.
  • Figure 68 shows “Alerts” channel 6800 operating in a substantially fullscreen mode.
  • An “Alerts” touchlet 316A is provided for presenting dynamic information of, interacting with, and/or launching "Alerts” channel 6800.
  • the "Alerts" channel 6800 allows authorized users to view new cases for individuals who have performed potentially suspicious activities.
  • Certain advanced information products that provide analytic capabilities may be operating behind "Alerts" channel 6800 for flagging individuals who may be performing potentially suspicious activities.
  • the data upon which analysis is performed may be obtained from legacy applications, such as, but not limited to, HRM, ERP, PLM, CRM systems and tools, any other management tools, and the like.
  • legacy applications such as, but not limited to, HRM, ERP, PLM, CRM systems and tools, any other management tools, and the like.
  • HRM high-power management
  • ERP ERP
  • PLM portable multifunction management
  • CRM customer relationship management
  • Main viewing panel 410 of "Alerts" channel 6800 may include, for example, an alerts window 6812 and an alerts detail window 6814.
  • the alerts window 6812 displays a list of potential alerts to potentially be investigated. Once the user selects a certain alert at alerts window 6812, the details of the selected alert are displayed in alerts detail window 6814.
  • Main viewing panel 410 of "Alerts" channel 6800 may also include certain control buttons, such as, but not limited to, a "Delete” button and an "Add New” button. An "Approved" dropdown menu may also be provided.
  • FIG. 69 screenshots of certain components of an example of the "Personnel Activity” channel 6900 that is suitable for use in enterprise applications is presented.
  • Figure 69 shows "Personnel Activity” channel 6900 operating in a substantially full-screen mode.
  • a "Personnel Activity” touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching "Personnel Activity” channel 6900.
  • the "Personnel Activity” channel 6900 allows authorized users to view activities of personnel inside the enterprise.
  • Main viewing panel 410 of "Personnel Activity” channel 6900 may include, for example, a personnel activity window 6912 and an activity details window 6914.
  • the personnel activity window 6912 displays a list of personnel activities to potentially be investigated. Once the user selects a certain activity at personnel activity window 6912, the details of the selected activity is displayed in activity details window 6914.
  • Main viewing panel 410 of "Personnel Activity” channel 6900 may also include an "Analyzing" dropdown menu.
  • the activities data from which analysis is performed may be obtained from legacy applications, such as, but not limited to, HRM, ERP, PLM, CRM systems and tools, any other management tools, and the like.
  • FIG. 70 screenshots of certain components of an example of a "Reports” channel 7000 that is suitable for use in enterprise applications is presented.
  • Figure 70 shows “Reports” channel 7000 operating in a substantially fullscreen mode.
  • a "Reports” touchlet 316C is provided for presenting dynamic information of, interacting with, and/or launching "Reports” channel 7000.
  • the "Reports” channel 7000 allows authorized users to generate analytics reports on specific activities data.
  • Main viewing panel 410 of "Reports" channel 7000 may include, for example, a report types window 7012 and an activities window 7014.
  • the report types window 7012 displays a list of different types of reports. Once the user selects a certain report type at report types window 7012, the activities related to the selected report type are displayed in activities window 7014.
  • FIG 71 screenshots of certain components of an example of the "User Administration” channel 7100 that is suitable for use in enterprise applications is presented.
  • Figure 71 shows “User Administration” channel 7100 operating in a substantially full-screen mode.
  • a "User Administration” touchlet 316E is provided for presenting dynamic information of, interacting with, and/or launching "User Administration” channel 7100.
  • the "User Administration” channel 7100 allows, for example, the “System Administrator” of the directors group 6210 to set roles and groups for the system users.
  • Main viewing panel 410 of "User Administration" channel 7100 may include, for example, a user details window 7112.
  • the user details window 7112 provides one or more information entry fields by which the "System Administrator" may enter information about a certain user 116 in a certain group.
  • user details window 7112 may be used to set the group and/or role of a certain user 116. Predetermined groups and/or roles may have certain permissions and/or parameters already defined.
  • FIG. 72 screenshots of certain components of an example of a "Catalog Administration” channel 7200 that is suitable for use in enterprise applications is presented.
  • Figure 72 shows “Catalog Administration” channel 7200 operating in a substantially full-screen mode.
  • a "Catalog Administration” touchlet 316F is provided for presenting dynamic information of, interacting with, and/or launching “Catalog Administration” channel 7200.
  • the “Catalog Administration” channel 7200 allows the "System Administrator" in the directors group 6210 to manage the catalog content as it relates to roles and groups of the system users.
  • Main viewing panel 410 of "Catalog Administration" channel 7200 may include, for example, a channel details window 7212.
  • the channel details window 7212 provides one or more information entry fields by which, for example, the "System Administrator" in the directors group 6210 may enter information about a certain channel applications, such as, but not limited to, "Alerts” channel 6800, “Personnel Activity” channel 6900, “Reports” channel 7000, and "User
  • channel details window 7212 may be used to manage the catalog content as it relates to roles and groups of the system users. For example, channel details window 7212 may be used to set "User
  • Administration channel 7100 to be used by the "System Administrator” in the directors group 6210, but not by users 116 in the managers group 6212 and users 116 in the analysts group 6214.
  • Information delivery system 100 may be used to process and present role-based content, location-based content, time-based content, activity-based content, behavior-based content, and any combinations thereof. That is, information delivery system 100 provides the framework by which a developer can create any useful information products, such as role-based product, location-based products, time-based products, activity-based products, behavior-based products, and any combinations thereof. Again, bringing to the user the information and experience that is most important to them.
  • information delivery system 100 may be used to push scheduled events to users 116. For example, in the enterprise environment, a notification may be sent to users 116 that it is time for their annual training session. Similarly, information delivery system 100 may push information to users 116 about any corporate activity, event, or news.
  • Figures 73 through 78 describe the system architecture of information delivery system 100 of the present invention implemented for supporting a web presentation framework.
  • the web presentation framework is implemented using HTML5.
  • HTML5 is a language for structuring and presenting content for the World Wide Web, a core technology of the Internet. It is the latest revision of the HTML standard and currently remains under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (e.g., web browsers, parsers, etc.). As compared to previous versions, HTML5 adds many new syntactical features.
  • HTML5 provides support for off-line storage. Further, HTML5 includes a new protocol called WebSockets that allows bidirectional asynchronous communication.
  • PID application architecture 7300 is another example of the application architecture of the server side of PID application 1 12.
  • the user devices 118 that are used with the Flex presentation framework of PID application architecture 600 of Figure 6 are replaced by user devices 7310. That is, instead of supporting Adobe AIR-enabled devices, PID application architecture 7300 supports user devices 7310, which may be any web (or Internet) browser-enabled devices (hereafter called browser-enabled devices).
  • Figure 73 shows a web browser 7312 running on each user device 7310.
  • Examples of web (or Internet) browsers that may be running on user devices 7310 may include, but are not limited to, Microsoft Internet Explorer® 9, Google Chrome, Mozilla Firefox 4, Apple Safari 5, and Opera 11. [00337] Accordingly, examples of user devices 7310 may include, but are not limited to, any type, brand, and/or model of browser-enabled desktop computer; browser-enabled laptop computer; browser-enabled tablet computer; browser-enabled net-book computing device; browser-enabled handheld computing device; browser- enabled personal digital assistant; browser-enabled enterprise digital assistant;
  • browser-enabled portable digital assistant includes one of an browser-enabled telephone, browser-enabled cell phone, and browser-enabled smart phone; browser-enabled personal navigation device; browser-enabled vehicle-based device; browser-enabled optical disk player; browser- enabled television; browser-enabled game console; and the like.
  • PID application architecture 7300 may include facilitation layer 610, integration and process layer 612, and integrated services and applications layer 614 of PID application architecture 600 of Figure 6, albeit with certain modifications for supporting the web presentation framework.
  • facilitation layer 610 includes the facilitation server 616 and the certain other servers 628, such as, but not limited to, channel server 630, content delivery server 632, collaboration media server 634, stream sync server 636, analytics server 638, advertising server 640, transcoding server 642, and media server 644.
  • facilitation server 616 includes a client gateway 7314 instead of the client gateway 618 of PID application architecture 600 of Figure 6.
  • Client gateway 7314 uses hypertext transfer protocol (HTTP) for communicating with the client (e.g., web browsers 7312 of user devices 7310), while using, for example, JMS protocol for communicating with the rest of the server stack.
  • facilitation server 616 may serve as an HTTP server.
  • client gateway 7314 of facilitation server 616 uses HTTPS protocol, which is HTTP Secure protocol.
  • facilitation server 616 manages certain communication between the client (e.g., web browsers 7312 of user devices 7310) and the server (e.g., application server 110), the use of HTTP may be have certain limitations. For example, under HTTP protocol, a client, such as a web browser, must open a connection to a server, make a request, wait for a response, and then close the connection. If the client needs more data, it must open a new connection. Likewise, if the server has new
  • HTTP protocol may be an inefficient way to exchange data.
  • HTML5 includes a new protocol called WebSockets. This protocol allows a web client to create a connection, keep it open as long as it wants, and both send and receive data continuously. WebSocket connections allow two-way communication between the client (e.g., web browsers 7312 of user devices 7310) and the server without having to use Ajax type of mechanisms, thereby providing an efficient way to exchange data.
  • facilitation layer 610 of PID application architecture 7300 also includes a messaging server 7316, which uses the WebSocket technology. That is, messaging server 7316 uses WebSocket protocol for communicating with the client (e.g., web browsers 7312 of user devices 7310), while using, for example, JMS protocol for communicating with the rest of the server stack.
  • messaging server 7316 uses WSS protocol, which is WebSocket Secure protocol.
  • WSS protocol enables bidirectional message-calling capability between the browser and messaging server 7316.
  • the WSS protocol provides the path to the enterprise service bus 680 of integration and process server 646.
  • the messages from the client e.g., web browsers 7312
  • the messages from the client are converted from HTTP protocol to JMS protocol.
  • PID application architecture 7300 uses the combination of messaging server 7316 and facilitation server 616 to manage communication between the client (e.g., web browsers 7312 of user devices 7310) and the server (e.g., application server 110).
  • the relational database management system (RDBMS) 686 of integrated services and applications layer 614 of PID application architecture 7300 may include a schema-less database 7318.
  • Schema-less database 7318 is in communication with data management subsystem 650 of integration and process layer 612 via enterprise service bus 680 and adaptors 682.
  • a RDBMS imposes a fixed schema, while a schema-less database does not.
  • a main advantage of a schema-less database e.g., a NoSQL database
  • a relational database e.g., a SQL database
  • schema-less database 7318 may be the MongoDB available from 1 Ogen, Inc (New York, NY). MongoDB is an open source, high performance, scalable, document-oriented database.
  • client architecture 7400 is another example of the application architecture of the client side of PID application 112.
  • client architecture 7400 may include an integrated development environment (IDE) layer 7410, a runtime layer 7412, an application layer 7414, and a themes layer 7416.
  • IDE integrated development environment
  • IDE layer 7410 is the layer of client architecture 7400 in which developers may develop channels and/or content of PID application 112 for running in the web presentation framework. There may be a channel IDE local component, a channel IDE client component, and a channel IDE server component. Developers may use writing panels, creating panels, developing panels, views, code, and the like when developing channels and/or content.
  • Runtime layer 7412 provides the engine for processing the channels and/or content that is created using the IDE layer 7410.
  • DOM document object model
  • a DOM view provides the hierarchy of a web page.
  • a developer may, optionally, have a local copy of certain components of the server loaded and executing on his/her user device 7310. This simply provides convenience to the developer to not have to continuously access, for example, the server-side portion of PID application 112 at application server 110 when creating channels and/or content.
  • Application layer 7414 contains the rules for the look and feel of the PID application 112 in the browser.
  • application layer 7414 contains the rules for displaying the channel grid that contains touchlets, a taskbar, a navigation bar, and the like.
  • Application layer 7414 processes the raw application data and organizes the data into a complete application picture for the user.
  • Themes layer 7416 transforms the raw application data into the actual GUI presentation in the browser to the user.
  • a theme may be a company- based theme. In one example, the theme may be the XYZ Corporation theme.
  • a user 116 may access PID application 112 of information delivery system 100 by launching the web browser 7312 on his/her user device 7310. Then the user 116 may enter the URL address of PID application 112 (e.g., hu ://www .PIDapp lication.com/) and perform a login process. That is, by entering the URL address of PID application 112, the user 116 is connected via HTTP to facilitation server 616, which is the HTTP server. The user 116 then enters a username and password in a login window that is presented in web browser 7312 of his/her user device 7310. During the login process, the user may be asked whether using a public or private computer. If a public computer, no information is cached on the computer. That is, once the browser is closed, no trace of the user's activity is left behind on the computer.
  • PID application 112 e.g., hu ://www .PIDapp lication.com/
  • Web browser 7312 connects to messaging server 7316 via WSS protocol and bidirectional communication begins. Based on user identity, a certain channel grid and/or channel application is retrieved and launched in the web browser 7312 on his/her user device 7310. For example, configuration server 654 accesses the schema-less database 7318 for user
  • the user 1 16 may access one or more channel grids to which he/she is authorized to use.
  • the user may select a certain touchlet of a certain channel grid in web browser 7312 and interact with a certain channel within the environment of the web browser 7312. Examples of channel grids, touchlets, and/or channels that are operating in web browser 7312 per the web presentation framework are shown with reference to Figures 75 through 78.
  • dynamic updates may occur. For example, there may be circumstance where the user's grid is updated. That is, the user himself makes a change, or some other user modifies a shared grid (e.g., adds a channel).
  • the schema-less database 7318 may be updated with the change and the change is then pushed to the user who is running the grid in their web browser 7312.
  • the schema-less database 7318 is updated and the changes are also pushed to other clients that are subscribed to be notified of these changes. Changes are routed through JMS (a publish/subscribe mechanism) through facilitation server 616, which is the HTTP server, to the web browser 7312.
  • the web browser 7312 refreshes to implement the changes. In one example, if a user 116 no longer has access to certain content, that user 116 is immediately blocked from the content. In another example, if a new touchlet has been added to a channel grid, a new touchlet immediately appears on the grid in the user's web browser 7312.
  • a "Stock Watch” channel (e.g., a “Stock Watch” channel 7800 of Figure 78) uses dynamic updates to periodically push stock content to the "Stock Watch” channel at the web browser 7312.
  • an initial request is made for current stock data through messaging server 7316 via WSS protocol, and then via JMS protocol to the integration and process server 646, and then to the external data sources.
  • the current stock data that has been archived in the schema-less database 7318 is transmitted back to the web browser 7312 and displayed.
  • the integration and process server 646 is not passive, it polls the external feeds for updates, stores the latest data in the schema-less database 7318, and pushes the updates back to the subscribing clients.
  • the updates are also published to the eventing and alerting subsystem 652 and analyzed with respect to certain events that have been set up and that are being monitored. If certain conditions are met, alert notifications are triggered.
  • FIG. 75 a screenshot of an example of a web browser 7312, which is running on a user device 7310, is presented for displaying a web page of a channel grid to the user.
  • web browser 7312 may be a Microsoft Internet Explorer® web browser, but may be any type of browser, such as, but not limited to, a Google Chrome, Firefox, Safari, or Opera web browser.
  • the web page that is displayed in web browser 7312 shows, for example, a channel grid 7510 that includes one or more touchlets 7512.
  • the web page in web browser 7312 also shows a set of one or more channel grid buttons 7514 for selecting a certain channel grid to be displayed in web browser 7312.
  • channel grid buttons 7514 may include an "At Home” channel grid button, a "My TV” channel grid button, an “At Work” channel grid button, a “Catalog” channel grid button, and a “Developer” channel grid button.
  • the corresponding channel grid web page is displayed in web browser 7312.
  • the set of touchlets 7512 shown in channel grid 7510 of web browser 7312 of Figure 75 is an example of the touchlets of the user's "At Home” channel grid, meaning the channel grid that the user is likely to use when at home.
  • the web browser 7312 is updated (i.e., refreshed) with the corresponding channel application web page.
  • channel grid 7510 of Figure 75 includes, for example, one or more television media touchlets, such as a “Fringe” touchlet 7512A, a “Lost” touchlet 7512B, a “MasterChe ' touchlet 7512C, and a "So You Think You Can Dance” touchlet 7512D; one or more movie media touchlets, such as an "Avatar” touchlet 7512E, a "How To Train Your Dragon” touchlet 7512F, and a "NetFlix” touchlet 7512G; and one or more other channel application touchlets, such as an "Advertising" touchlet 7512H, a "Last Viewed” touchlet 75121, a "Remote Care” touchlet 7512J, a "My Medicine Cabinet” touchlet 7512K, and a "Home Security” touchlet 7512L.
  • Each touchlet 7512 is associated with its corresponding channel application. More details of an example
  • FIG. 76 a screenshot of web browser 7312 displaying a web page of a "Home Security” channel 7600 that is operating in a substantially fullscreen mode is presented.
  • "Home Security” channel 7600 is the channel application associated with "Home Security” touchlet 7512L of Figure 75.
  • "Home Security” channel 7600 provides a mechanism for monitoring and/or reporting information about the user 116's home security system.
  • the web page of "Home Security” channel 7600 may include, for example, a status window 7610 and one or more video feed windows 7612.
  • the status window 7610 shows in text form any alert conditions that are present as well as any useful control buttons.
  • a keypad button 7614 may be provided for launching a keypad window (not shown).
  • the web page of "Home Security" channel 7600 and/or of any other channel may also include a set of mini-touchlet buttons 7616 and a return-to-grid button 7618.
  • the web browser 7312 is updated (i.e., refreshed) with the web page of the corresponding channel application.
  • the web browser 7312 is updated (i.e., refreshed) with the channel grid web page, such as the channel grid web page shown in Figure 75.
  • FIG 77 another screenshot of web browser 7312, which is running on a user device 7310, is presented for displaying a web page of another channel grid to the user.
  • the web browser 7312 displays a web page that includes the user's "At Work" channel grid. That is, a channel grid 7710 displays touchlets 7712 associated with the user's "At Work” channel grid, meaning the channel grid that the user is likely to use when at work.
  • channel grid 7710 of Figure 77 includes, for example, a "News Reader” touchlet 7712A, a “Stock Watch” touchlet 7712B, another “Stock Watch” touchlet 7712C, a “Business CRM” touchlet 7712D, a “Currency” touchlet 7712E, a "Banking” touchlet 7712F, a "Live News” touchlet 7712G, a "Business Calendar” touchlet 7712H, an "Email” touchlet 77121, a "Personal Calendar” touchlet 7712 J, and a "Business Finance” touchlet 7712K.
  • FIG. 78 a screenshot of web browser 7312 displaying a web page of a "Stock Watch” channel 7800 that is operating in a substantially fullscreen mode is presented.
  • "Stock Watch” channel 7800 is the channel application associated with "Stock Watch” touchlet 7712B of Figure 77.
  • "Stock Watch” channel 7800 provides a mechanism for monitoring and/or reporting certain stock and/or financial information of a company of interest.
  • "Stock Watch” channel 7800 is monitoring Brocade Communications Systems, Inc (BRCD).
  • the web page of "Home Security” channel 7800 may include, for example, an overview window 7810, one or more information windows 7812, and a trading window 7814.
  • channel grid 7510 and touchlets 7512 (and the underlying channel applications) of Figure 75 and of channel grid 7710 and touchlets 7712 (and the underlying channel applications) of Figure 77 are substantially the same as channel grids, touchlets, and channels that are implemented using the Flex presentation framework.
  • a web page is designed to display channel grid 7510 that contains one or more touchlets 7512 in web browser 7312.
  • Each touchlet 7512 may be used for presenting dynamic information of, interacting with, and/or launching its underlying channel application. Once launched, a substantially full-screen view of the channel is presented via a web page in web browser 7312.
  • eventing and alerting functions may occur in the web presentation framework of information delivery system 100 of the present invention. Further, both consumer and enterprise scenarios may be implemented using the web presentation framework. Further still, the web presentation framework of information delivery system 100 supports a channel/content developer environment in which developers may create channels/content using HTML5, JavaScript, and Cascading Style Sheets (CSS), such as CSS3.
  • CSS Cascading Style Sheets
  • the user device 118 is the "client” in the client-server system architecture.
  • a client portion of PID application 112 must be installed on each user device 118.
  • the web browser (e.g., web browser 7312) is the "client" in the client-server system architecture.
  • a web browser application must be installed on each user device 7310.
  • the Flex presentation framework embodiment of information delivery system 100 provides the capability to access any information that is exposed at the device level (e.g., to determine the presence of a camera, microphone, speaker, etc). Accordingly, channels and/or content may make use of this device level information.
  • HTML5 does not provide the ability to interrogate the client device with respect to device level information (e.g., to determine the presence of a camera, microphone, speaker, etc).
  • device level information e.g., to determine the presence of a camera, microphone, speaker, etc.
  • the HTML5 specification is not yet certified, therefore its full functionality is still to be
  • native applications may be written (using native code) to run on any user device 7310.
  • a native application may be written to activate the camera of the certain type, brand, and/or model of device.
  • the web presentation framework of PID application 112 of information delivery system 100 can use HTML5 to interact with the native application at the user device 7310.
  • a camera touchlet of a channel grid may be used for presenting dynamic information of, interacting with, and/or launching its underlying camera channel application (or any channel application using the camera), which may be use to interact with the native camera application.
  • controllers which may employ hardware, software or a combination thereof.
  • one or more controllers may be implemented, at least in part, as a state machine.
  • the software code can be executed on any suitable processor or collection of processors, whether provided in a single device or computer or distributed among multiple devices/computers.
  • various aspects of the invention may be embodied at least in part as a computer readable storage medium (or multiple computer readable storage media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium or non-transitory medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the technology discussed above.
  • the computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present technology as discussed above.
  • program or "software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present technology as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present technology need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present technology.
  • Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed as desired in various embodiments.
  • the technology described herein may be embodied as a method, of which at least one example has been provided.
  • the acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
  • the phrase "at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements.
  • This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase "at least one" refers, whether related or unrelated to those elements specifically identified.
  • At least one of A and B can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.

Abstract

An information delivery system for and methods of interaction with multiple information forms across multiple types, brands, and/or models of electronic devices, such as mobile devices, portable devices, desktop computers, and televisions is disclosed. The information delivery system for and methods of the invention provide the display of and access to secure user-centric information via the construct of a channel grid framework serving as a desktop on a user device. The channel grid framework includes multiple user-selectable items that provide access to corresponding "channels" by which respective portions of user-centric information are delivered to a user. The information delivery system of the invention may be suitable for consumer applications and/or enterprise applications. In one embodiment, the information delivery system of the invention supports a "Flex" presentation framework. In another embodiment, the information delivery system supports a "Web" presentation framework

Description

INFORMATION DELIVERY SYSTEM FOR, AND METHODS OF, INTERACTION WITH MULTIPLE INFORMATION FORMS
ACROSS MULTIPLE TYPES AND/OR BRANDS OF
ELECTRONIC DEVICES, SUCH AS TELEVISIONS, MOBILE
PHONES, AND COMPUTING DEVICES
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application claims priority to the following U.S. applications:
[0002] U.S. provisional application serial no. 61/435,976, filed January 25, 2011, entitled "Information Delivery System for, and Methods of, Interaction with Multiple Information Forms Across Multiple Types and/or Brands of Electronic Devices, such as Televisions, Mobile Phones, and Computing Devices;"
[0003] U.S. provisional application serial no. 61/474,942, filed April 13, 2011, entitled "Information Delivery System for, and Methods of, Eventing and Alerting Using Multiple Information Forms and Sources Across Multiple Types and/or Brands of Electronic Devices;"
[0004] U.S. provisional application serial number 61/476,961, filed April 19, 2011, entitled "Information Delivery System for, and Methods of, Interaction with Multiple Information Forms Across Multiple Types and/or Brands of Electronic Devices, such as Televisions, Mobile Phones, and Computing Devices;" and
[0005] U.S. non-provisional application serial no. 13/273,894, filed October 14, 2011, entitled "Methods, Apparatus and Systems for Presenting Television
Programming and Related Information."
[0006] Each of the foregoing applications is incorporated herein by reference in its entirety.
BACKGROUND
[0007] Consumer and business users want to access digital information such as broadcast TV; internet text, graphics, and video; and social networking media across different devices. These devices include laptop computers, smart phones, TVs, and tablets and each device has its own interface, content metaphor, format, and access method. Users' experience with digital content over different devices is poor for two reasons: 1) the quality of the information delivery is varied and, 2) users are required to learn how to use each device in order to receive their desired information. This learning process is time consuming and does not guarantee the users' success.
[0008] In addition, although certain technologies, such as Internet browsers and multimedia players, provide some centralized manner of accessing digital
information, such technologies are largely static. As a result, these technologies cannot be customized for individual user preferences.
[0009] For example, in the broadcast TV environment, users select and receive information using traditional channel guides. With this technology, user interaction and information customization is extremely limited. The ability to combine broadcast TV content with other forms of information, such as social media, is restricted.
[0010] In other information areas such as healthcare, finance, and home security, users want to do more than just access information: users want to combine and interrogate information to produce more meaningful interactions with information and other users.
SUMMARY
[0011] Once embodiment of the disclosure relates to an apparatus to provide secure user-centric information via at least one user platform operated by a user. The apparatus includes at least one communication interface to facilitate wired and/or wireless communications with the at least one user platform via one or more transmission media and at least one memory to store processor-executable
instructions. The apparatus further includes at least one processor communicatively coupled to the at least one communication interface and the at least one memory. Upon execution of the processor-executable instructions by the at least one processor, the at least one processor establishes a bidirectional, asynchronous user session to manage provision of and interaction with the secure user-centric information. The session is established by implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, controlling the at least one communication interface to receive, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity. The session is further established by, if the user and the user platform are authenticated, controlling the at least one communication interface so as to cause the bidirectional, asynchronous user session to be established between the apparatus and a web browser of the at least one user platform and to transmit to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform. The processor is configured to control the at least one communication interface to cause the bidirectional, asynchronous user session to be established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
[0012] Another embodiment relates to a method for providing secure user-centric information via at least one user platform operated by a user. The method includes implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity. The method further includes, if the user and the user platform are authenticated, causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform. The bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
[0013] Another embodiment relates to at least one computer readable storage medium storing processor-executable instructions that, when executed by at least one processor, perform a method for providing secure user-centric information via at least one user platform operated by a user. The method includes implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information, receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform, and authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity. The method further includes, if the user and the user platform are authenticated, causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels, based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform. The bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The skilled artisan will understand that the figures, described herein, are for illustration purposes only, and that the drawings are not intended to limit the scope of the disclosed teachings in any way. In some instances, various aspects or features may be shown exaggerated or enlarged to facilitate an understanding of the inventive concepts disclosed herein (the drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the teachings). In the drawings, like reference characters generally refer to like features, functionally similar and/or structurally similar elements throughout the various figures.
[0015] Figure 1 illustrates a high level block diagram of an example of an information delivery system that includes a personal information delivery application for interaction with multiple information forms across multiple types, brands, and/or models of electronic devices, according to the present invention;
[0016] Figure 2 illustrates a functional block diagram of an example of a channel of a personal information delivery application for providing users access to and interaction with information, according to the present invention; [0017] Figure 3 illustrates a screenshot of an example of a client GUI of the personal information delivery application and shows an example of a channel grid, according to the present invention;
[0018] Figure 4 illustrates various screenshots of certain components of an example of an "Around Me" channel of the personal information delivery application, according to the present invention;
[0019] Figure 5 illustrates a functional block diagram of an example of a client runtime environment, which is the runtime environment of the user devices of the information delivery system, according to the present invention;
[0020] Figure 6 illustrates a functional block diagram of an example of a personal information delivery application architecture for supporting the Flex presentation framework, according to the present invention;
[0021] Figure 7 illustrates a functional block diagram of an example of a client architecture of the personal information delivery application, according to the present invention;
[0022] Figure 8 illustrates a functional block diagram of an example of a communication flow between the client side and the server side of the personal information delivery application, according to the present invention;
[0023] Figure 9 illustrates a functional block diagram of an example of a communication flow between components at the server side of the personal information delivery application, according to the present invention;
[0024] Figure 10 illustrates a functional block diagram of a portion of the personal information delivery application architecture and a process of performing a user login operation, according to the present invention;
[0025] Figure 1 1 illustrates a functional block diagram of a portion of the personal information delivery application architecture and a process of performing data management and eventing and alerting, according to the present invention;
[0026] Figure 12 illustrates a screenshot of an example of the GUI of channel application catalog of the personal information delivery application by which users may acquire channels for use with their devices, according to the present invention; [0027] Figure 13 illustrates a screenshot of an example of the client GUI that includes another example of a channel grid, according to the present invention;
[0028] Figure 14 illustrates screenshots of certain components of an example of a "Stock Watch" channel of the personal information delivery application, according to the present invention;
[0029] Figures 15 through 18 illustrate screenshots of a client GUI of the personal information delivery application and an example of a process of eventing and alerting using the personal information delivery application, according to the present invention;
[0030] Figures 19 through 26 illustrate screenshots of certain channels of the personal information delivery application and an example of a process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data, according to the present invention;
[0031] Figures 27 through 40 illustrate screenshots of an example of a
"Television" channel of the personal information delivery application, according to the present invention;
[0032] Figures 41 through 44 illustrate screenshots of certain components and operations of an example of a "Home Security" channel of the personal information delivery application and a process of alerting a user, according to the present invention;
[0033] Figure 45 illustrates screenshots of certain components of an example of a "NetFlix" channel of the personal information delivery application, according to the present invention;
[0034] Figures 46 and 47 illustrate screenshots of certain components of an example of a "Remote Healthcare" channel of the personal information delivery application, according to the present invention;
[0035] Figure 48 illustrates screenshots of certain components of an example of a "My Medicine Cabinet" channel of the personal information delivery application, according to the present invention; [0036] Figure 49 illustrates screenshots of certain components of an example of an "MS Word" channel of the personal information delivery application, according to the present invention;
[0037] Figure 50 illustrates screenshots of certain components of an example of an "Email" channel of the personal information delivery application, according to the present invention;
[0038] Figure 51 illustrates screenshots of certain components of an example of a "News Reader" channel of the personal information delivery application, according to the present invention;
[0039] Figure 52 illustrates a screenshot of an example of an enterprise client GUI that includes an example of a login window, according to the present invention;
[0040] Figures 53 and 54 illustrate screenshots of the enterprise client GUI showing two example channel grids that may be related to the enterprise, according to the present invention;
[0041] Figure 55 illustrates screenshots of certain components of an example of a "Personal Calendar" channel that is suitable for use in enterprise applications, according to the present invention;
[0042] Figure 56 illustrates screenshots of certain components of an example of a "myNet" channel that is suitable for use in enterprise applications, according to the present invention;
[0043] Figure 57 illustrates screenshots of certain components of an example of a "Sales Pipeline" channel that is suitable for use in enterprise applications, according to the present invention;
[0044] Figure 58 illustrates screenshots of certain components of an example of an "Open Room" channel that is suitable for use in enterprise applications, according to the present invention;
[0045] Figures 59, 60, and 61 illustrate screenshots of certain components of an example of a "Security Threat Trends" channel that is suitable for use in enterprise applications, according to the present invention; [0046] Figure 62 illustrates a block diagram of an example of an enterprise user hierarchy that shows individual users, roles assigned to users, and/or users assigned to groups within an enterprise, according to the present invention;
[0047] Figure 63 illustrates a screenshot of an analyst client GUI that includes an example of a channel grid for users (i.e., analysts) in an analysts group of the enterprise, according to the present invention;
[0048] Figure 64 illustrates a screenshot of a manager client GUI that includes an example of a channel grid for users (i.e., managers) in a managers group of the enterprise, according to the present invention;
[0049] Figure 65 illustrates a screenshot of an example of a channel application catalog that includes content that corresponds to users (i.e., managers) in the managers group of the enterprise, according to the present invention;
[0050] Figure 66 illustrates a screenshot of a director client GUI that includes an example of a channel grid for users (i.e., directors) in a directors group of the enterprise, according to the present invention;
[0051] Figure 67 illustrates a screenshot of an example of a channel application catalog that includes content that corresponds to users (i.e., directors) in the directors group of the enterprise, according to the present invention;
[0052] Figure 68 illustrates screenshots of certain components of an example of an "Alerts" channel that is suitable for use in enterprise applications, according to the present invention;
[0053] Figure 69 illustrates screenshots of certain components of an example of a "Personnel Activity" channel that is suitable for use in enterprise applications, according to the present invention;
[0054] Figure 70 illustrates screenshots of certain components of an example of a "Reports" channel that is suitable for use in enterprise applications, according to the present invention;
[0055] Figure 71 illustrates screenshots of certain components of an example of a "User Administration" channel that is suitable for use in enterprise applications, according to the present invention; [0056] Figure 72 illustrates screenshots of certain components of an example of a "Catalog Administration" channel that is suitable for use in enterprise applications, according to the present invention;
[0057] Figure 73 illustrates a functional block diagram of an example of a personal information delivery application architecture for supporting a web presentation framework of the information delivery system, according to the present invention;
[0058] Figure 74 illustrates a functional block diagram of an example of a client architecture of the personal information delivery application for supporting the web presentation framework, according to the present invention;
[0059] Figure 75 illustrates a screenshot of an example of a web browser, which is running on a user device, for displaying a web page of a channel grid to the user, according to the present invention;
[0060] Figure 76 illustrates a screenshot of the web browser displaying a web page of a "Home Security" channel that is operating in a substantially full-screen mode, according to the present invention;
[0061] Figure 77 illustrates another screenshot of the web browser, which is running on a user device, for displaying a web page of another channel grid to the user, according to the present invention; and
[0062] Figure 78 illustrates a screenshot of the web browser displaying a web page of a "Stock Watch" channel that is operating in a substantially full-screen mode, according to the present invention.
[0063] It should be appreciated that all combinations of the foregoing concepts and additional concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein. It should also be appreciated that terminology explicitly employed herein that also may appear in any disclosure incorporated by reference should be accorded a meaning most consistent with the particular concepts disclosed herein. DETAILED DESCRIPTION
[0064] Various embodiments of the present invention describe an information delivery system for, and methods of, interaction with multiple information forms across multiple types, brands, and/or models of electronic devices, such as mobile devices (e.g., cell phones), portable devices (e.g., tablets, laptop computers), desktop computers, and televisions (e.g., set top boxes, intelligent TVs). In one example, the invention provides a system for and methods of interfacing with televisions via a graphical user interface and secure receipt of information relating to television programming.
[0065] The information delivery system for and methods of the invention provide the display of and access to secure user-centric information via the construct of a channel grid framework serving as a desktop on a user device. The channel grid framework includes multiple user-selectable items that provide access to
corresponding "channels" by which respective portions of user-centric information are delivered to a user. The user and the user device are first authenticated to receive the secure user-centric information, and the user-selectable items included in the channel grid framework on the desktop for the user device are based on information access rights and security protocols defined for the corresponding channels, the user, and the user device.
[0066] Referring to Figure 1, a high level block diagram of an example of an information delivery system 100 that includes a personal information delivery (PID) application 112 for interaction with multiple information forms across multiple types, brands, and/or models of electronic devices is presented. Information delivery system 100 may include an application server 110 upon which is installed the PID application 112 that has access to one or more information sources 114. One or more users 116 are associated with information delivery system 100. Users 116 may be, for example, individuals or groups of individuals. Each user 116 may have one or more user devices 118. Application server 110, the one or more information sources 114, and user devices 118 may be connected to a network 120 by any wired and/or wireless means. Network 120 may be, for example, any local area network (LAN) and/or wide area network (WAN) for connecting to the Internet. [0067] Application server 110 may be a networked computer, such as the networked server of the owner and/or provider of PID application 112. The one or more information sources 114 may be, for example, networked computers of the owners and/or providers of the information stored thereon. For example, certain information 122 may be stored on information sources 114. Information 122 may be any information that can be delivered electronically over network 120 and that is capable of being consumed by users 116 via their user devices 118. More
particularly, information 122 of the one or more information sources 114 may include different types and/or forms of information, data, and/or content. Examples of information 122 may include, but are not limited to, text, graphics, pictures, 3D graphic visualization of objects, sound, sensor data, streaming media data (e.g., streaming video and audio data), web-services data, Really Simple Syndication (RSS) feeds, image data, eventing and alerting, raw data, any type of information, and the like.
[0068] Information 122 of information sources 114 may be any information that resides outside of the application server 110 environment. However, with regard to information to be consumed by users 116 via their user devices 118, the invention is not limited to "external" information sources, such as information sources 114. Users 116 may also consume information from "internal" information sources (not shown), which are any information sources that reside directly at application server 110 and/or directly at user devices and/or from sensors contained on or communicating with user devices 118.
[0069] PID application 112 is a software application that facilitates user interaction with multiple information forms across multiple types, brands, and/or models of electronic devices (e.g., user devices 118). Generally, PID application 112 is operating under a client-server model of computing in which application server 110 is the server and each user device 118 is the client.
[0070] Preferably, user devices 118 have a runtime environment that includes, but is not limited to, the following attributes.
1. capability to access multiple different operating systems,
2. capability to access any information that is exposed at the device level, 3. capability to allow software and/or information updates without interrupting the device and/or service (i.e., "hot" updates),
4. capability to operate offline,
5. capability to maintain state information, and
6. any combinations thereof.
[0071] An example of such a runtime environment is the Adobe® AIR® 2.5 runtime (available from Adobe Systems Inc, San Jose, CA) and the HTML5 runtime. HTML5 is the next major revision of the HTML standard, which is currently under development.
[0072] SYSTEM ARCHITECTURE SUPPORTING THE "FLEX"
PRESENTATION FRAMEWORK
[0073] For the purpose of illustration, Figures 1 through 11 describe the system architecture of information delivery system 100 of the present invention implemented for supporting the Flex presentation framework. In one example, the Flex
presentation framework may be implemented using Adobe® Flex® from Adobe Systems Incorporated (San Jose, CA). Adobe® Flex® is an open source framework for building highly interactive, expressive web applications that deploy consistently on all major browsers, desktops, and operating systems by leveraging the Adobe Flash Player and Adobe AIR® runtimes. In this example, user devices 118 (i.e., client devices) are any Adobe AIR-enabled devices. Examples of user devices 118 may include, but are not limited to, any type, brand, and/or model of Adobe AIR-enabled desktop computer; Adobe AIR-enabled laptop computer; Adobe AIR-enabled tablet computer; Adobe AIR-enabled net-book computing device; Adobe AIR-enabled handheld computing device; Adobe AIR-enabled personal digital assistant; Adobe AIR-enabled enterprise digital assistant; Adobe AIR-enabled portable digital assistant; Adobe AIR-enabled telecommunications device including one of an Adobe AIR-enabled telephone, Adobe AIR-enabled cell phone, and Adobe AIR-enabled smart phone; Adobe AIR-enabled personal navigation device; Adobe AIR-enabled vehicle-based device; Adobe AIR-enabled optical disk player; Adobe AIR-enabled television; Adobe AIR-enabled game console; and the like. [0074] Therefore, an aspect of information delivery system 100 of the invention is that its operation is not limited to any particular type, brand, and/or model of client device and/or to any particular operating system (OS). That is, the operation of information delivery system 100 of the invention is substantially device-agnostic and/or OS-agnostic because it may operate, for example, on substantially any Adobe AIR-enabled client device. Additionally, information delivery system 100 of the invention is substantially information type-agnostic and/or information source- agnostic.
[0075] User devices 118 serve as a user platform operated by a user 116 to facilitate display of, and interaction with, secure user-centric information. Preferably, the set of user devices 118 belonging to each respective user 116 is connected in a peer-to-peer (P2P) fashion. In one example, the user devices 118 of a certain user 116 may include a mobile device (e.g., cell phone), a portable device (e.g., tablet, laptop computer), a desktop computer, and a television (e.g., set top box, intelligent TV). In this example, the user's cell phone, tablet, laptop computer, desktop computer, and television are connected (wired and/or wirelessly) in a P2P fashion.
[0076] PID application 112 of the invention provides a personalized information delivery utility that includes one or more sets of processor-executable instructions executing on one or more processors controlling various other hardware devices, with client-server system architecture, to facilitate delivery of a wide variety of information to a user, via one or more user devices or "platforms" (clients). Information is displayed on a graphical user interface (GUI) of a given user platform in a
"presentation framework" that is customized based on a "user context." The presentation framework is homogenous amongst different user platforms so as to facilitate user familiarity and ease of interaction with displayed information. The presentation framework also facilitates the user's ability to take meaningful "realtime" action(s) in response to the displayed information.
[0077] The "user context" may be with respect to user attributes, such as, but not limited to, identity of the user, an identifier for one or more user devices associated with the user, location, activity, role, event, and any combinations thereof. Further, the "user context" may be with respect to user preferences, such as, but not limited to, source(s) of information of interest to the user, category/type of information of interest to the user, priority and/or importance of information, time (of day, week, month, year) at which information is displayed, and any combinations thereof.
[0078] The mechanism of PID application 112 for providing the user access to and interaction with, for example, information 122 and/or any other information is referred to as a "channel." That is, the channel is a conduit for delivering information to a user (e.g., providing access to and interaction with information), and is an elemental feature (basic building-block) of PID application 112. With respect to the PID application 112, the channel two pieces (1) a visualization piece that is presented on the client device (e.g., user devices 118) and (2) the integration piece residing at the server (e.g., application server 110). More details of the channel with respect to PID application 112 are described with reference to Figures 2, 3, 4, and 5.
[0079] Referring to Figure 2, a functional block diagram of an example of a channel 200 of PID application 112 for providing users access to and interaction with information is presented. PID application 112 may provide at least one channel 200. Preferably, PID application 112 provides one or more function-specific channels 200. There may be a server portion of channel 200 that is resident at application server 110 and a client portion of channel 200 that is resident at each user device 118. The client side portion of channel 200 is for presenting and interacting with content. There is a server side portion of channel 200 provides services and that are always running. More details of the client architecture and server architecture underlying the client and server portions of any channel 200 are described with reference to Figures 5 through 11.
[0080] Any channel 200 of PID application 112 provides a gateway to content, such as information 122 of information sources 1 14. Additionally, each channel 200 has a built in eventing and alerting feature, which will be described in subsequent text. Each channel 200 may include a visual component 210 that is formed of a touchlet 212 and a channel application 214. Additionally, channel 200 may include one or more service components 216 and a configuration component 218.
[0081] Visual component 210 may be any text and/or graphic element that may be presented to users 116 for viewing on the display, screen, and/or GUI of any user device 118. With respect to a certain function-specific channel 200, the design and implementation of visual component 210 may be channel-specific. That is, visual component 210 may be used to visually render at least some of the function-specific information on a GUI of a user device 118 via one or more text and/or graphic elements, and provide for interaction with the displayed channel information. The invention is not limited to presenting information to users 116 in a visual fashion only. Other ways (not shown) of conveying information to users 116 may be, for example, audible indicators (i.e., sound) and/or tactile indicators (e.g., vibration).
[0082] Channel application 214 may be any application software that is designed to perform singular and/or multiple related specific tasks and/or functions of a certain channel 200. Channel application 214 is used to manage the visual rendering of at least some of the channel-specific information on a GUI of a user device 118.
Channel application 214 is also designed and used to manage user interaction with the displayed channel information.
[0083] Some channel applications 214 support implementation of the channel in a "full screen mode" on the GUI of a user device 118 once the channel 200 is deployed on the platform of PID application 112 and a channel 200 is invoked by a user (i.e., selected by the user to operate in substantially full-screen mode). A user invokes a certain channel 200 via its respective touchlet 212. Touchlet 212 includes a graphic element associated with its channel 200 that appears on a portion of the GUI of a user device 118, as part of the presentation framework, to provide a gateway/portal to its channel 200. A touchlet 212 has multiple behaviors as described with reference to Figure 3. Examples of function-specific channels 200 and their associated touchlets 212 are described with reference to Figure 3. Additionally, Figure 3 shows an example presentation framework of channels 200 on the GUI of a user device 118. More details of an example of a function-specific channel 200 with its visual components 210, touchlet 212, and channel application 214 are described with reference to Figure 4.
[0084] The one or more service components 216 of a channel 200 are used to access information from outside the environment of PID application 112. For example, service components 216 are used to retrieve the information 122 from the authorized information source(s) 114 and securely provide the retrieved information 122 to any visual components 210 of a channel 200 for display to user. Additionally, service components 216 may be used to monitor/process the channel information (e.g., via event processing and/or complex event processing (CEP)) to derive
"secondary" information (e.g., events-particular changes in state or content of channel information), and provide secondary information to any visual components 210 for conveying to the user (e.g., alerts).
[0085] Every channel 200 has at least one service that is invokes via service components 216. For example, one service is an identity service. The identity service may be used for (1) authenticating and authorizing users 116 to use a channel 200 and (2) authenticating channels 200 to invoke one or more services (at the server) in order to access content from, for example, authorized information source(s) 114. Every service has identity. The authorization and authentication is by channel, in this way authorization and authentication does not have to occur for each information request.
[0086] Configuration component 218 of any channel 200 includes information that defines the behaviors and "personality" of the channel 200. Configuration component 218 also includes user preferences. Further, the information in
configuration component 218 defines the services being used, the data being used, alerts, user preferences for the content and alerts, state information, synchronization information, versioning information, and the like.
[0087] There are additional authorization aspects of each channel 200. For example, user authorization may be based on user identity, user role, user device, user/device location, time, date, day of week, and the like. For example, a certain user 116 is authorized to access certain content at his/her workplace location between 8am and 8pm, and only with his/her laptop computer that has a certain MAC address. At application server 110, configuration queries the identity subsystem (shown in Figure 6) to understand any user permissions. The user may be generally authorized to use a channel 200, but there may be conditions.
[0088] Because there is two pieces to each channel 200, the client side
visualization piece and the server side integration piece, an aspect of the invention is that there is operational persistence at the server. Client devices may be shut down, but the channels are still operating on the server and services are still being run. As client devices become available, content will begin to stream. [0089] A "presentation framework" is the manner in which information (generally multiple types or classes of information) is visually rendered (displayed to a user via a GUI of a user device 118) by PID application 112. The presentation framework is customized at least in part based on a user context (e.g., user attributes and/or preferences) and the presentation framework may sometimes purposefully constrain the scope and/or type of the information displayed on a GUI of a user device at any given time. The presentation framework thereby allows a user to interact with more limited information that may be particularly important to them in a given user context. This purposeful limitation on displayed information facilitates the user's ability to meaningfully absorb and respond to the information (e.g., take real-time action and/or make decisions in response to the displayed information).
[0090] PID application 112 provides a presentation framework that is
homogenous amongst different user platforms so as to facilitate user familiarity and ease of interaction with available information; i.e., the presentation framework "follows a user around" from user device 118 to user device 118 and appears the same or substantially the same to the user on any GUI of any user device 118 on which the "client portion" of PID application 112 is installed.
[0091] A presentation framework includes one or more user-selectable items, or "touchlets" that are selectable by a user (e.g., via touch-screen and/or point and click, sound recognition, movement recognition or image recognition user interfaces) so as to invoke a "channel," through which one or more particular types of information are displayed to the user on the GUI of the user platform in a substantially full-screen mode. More details of one example of a presentation framework of PID application 112 are described with reference to Figure 3, as well as other Figures to follow.
[0092] Referring to Figure 3, a screenshot of an example of a client GUI 300 is presented that shows an example of a channel grid, which is one example of a presentation framework of PID application 112. Client GUI 300 may include, for example, a main viewing panel 310. Additionally, a taskbar 312 may be provided along the top of main viewing panel 310 and a navigation bar 314 may be provided along the bottom of main viewing panel 310.
[0093] Taskbar 312 may include, for example, standard calendar, time, window controls, and the like. Navigation bar 314 may include, for example, icons for launching other applications, icons of other user devices 118, and the like. For example, navigation bar 314 may include a developer icon 320, a catalog icon 322, and certain device icons 326. The developer icon 320 may be used to launch a "developer environment" that may be built into the framework of PID application 112. The catalog icon 322 may be used to launch an "application store" by which users 116 may acquire (e.g., purchase) and then install and synchronize specific channels 200. Device icons 326 may depict any types, brands, and/or models of user devices 118 in the user's P2P network, such as a mobile phone, a tablet device, any computing device, a television, and the like.
[0094] Once acquired from the application store, the user's preferences may cause the acquired channel(s) 200 to automatically load and synchronize across all user devices 118. Alternatively, a user 116 may drag and drop any channel 200 (e.g., drag and drop its touchlet 316) from the current user device 118 to, for example, the telephone device icon 326, the tablet device icon 326, the television device icon 326, and so on. Thereby, installing and synchronizing or copying the channel 200 on another user device 118. Therefore, an aspect of the invention is that any channel on any user device can be quickly replicated and synchronized on any other user devices.
[0095] Client GUI 300 shows an example of a presentation framework that is organized into a grid for presenting channels 200 to a user 116 on any user device 118. In this example, multiple touchlets 316 are presented in a 3x4 channel grid 318 in the main viewing panel 310 of client GUI 300. For example, 3x4 channel grid 318 includes touchlets 316A through 316L. Each touchlet 316 in the 3x4 channel grid 318 of client GUI 300 represents a channel 200 of a specific purpose and/or function. User 116 may have multiple channel grids of information, which are accessible via the navigation bar 314. For example, navigation bar 314 may include certain channel grid icons 324, which are icons of other channel grids of the user. In one example, channel grid icons 324 may include an "At Home" channel grid icon, a "My TV" channel grid icon, and an "At Work" channel grid icon. A user 116 may specify a certain default channel grid in his/her profile. Additionally, as defined in the user's profile, the default channel grid may change based upon, for example, device type, time, location, prior activities, and the like. Further, user 116 may be presented an option of several different channel girds from which to select. In one example, the channel grid 318 shown in main viewing panel 310 of client GUI 300 of Figure 3 may be the user's "At Work" channel grid.
[0096] Presentation of channel grids may change based upon user context or preferences. Generally, PID application 112 is capable to combine, screen, and/or synthesize information in any way to present information in an intelligent manner to the user. The invention is not limited to presenting content in a 3x4 or any other n x n channel grid. Other presentation styles are possible. For example, the touchlets of channels may be presented in a tiled fashion on a 3D cube, a tiled fashion on a 3D globe, a stacked tiled fashion, and the like.
[0097] Each touchlet 316 in the 3x4 channel grid 318 of client GUI 300 represents a channel 200 of a specific purpose and/or function. In one example, channel grid 318 includes a "News Reader" touchlet 316A, a "Stock Watch" touchlet 316B, another "Stock Watch" touchlet 316C, a "Business CRM" touchlet 316D, a
"Currency" touchlet 316E, a "Banking" touchlet 316F, a "Live News" touchlet 316G, a "Business Calendar" touchlet 316H, an "Email" touchlet 3161, a "Personal
Calendar" touchlet 316J, a "Business Finance" touchlet 316K, and an "Around Me" touchlet 316L. Further to the example, more details of the "Around Me" touchlet 316L and its associated channel application are described with reference to Figure 4.
[0098] Each touchlet 316 of client GUI 300 is an example of a touchlet 212 of channel 200 of Figure 2. Additionally, each touchlet 316 of client GUI 300 as well as the 3x4 channel grid 318 itself are examples of visual components 210 of channel 200 of Figure 2.
[0099] A touchlet 212 of channel 200 of Figure 2, such as touchlets 316A through 316L of Figure 3, has multiple behaviors - (1) a touchlet 212 may serve as an icon to launch its associated channel application 214 to full screen mode, (2) a touchlet 212 may receive dynamically streaming data, such as audio and video data, sensor data, any web-services data, RSS feeds, eventing and alerting, raw data, any type of information, and the like. Data may be pushed to the channel 200 and its touchlet 212 in near real time, and (3) a touchlet 212 may serve as a viewer for presenting information dynamically in near real time. [00100] Additionally, a touchlet 212 may include substantially all the functionality of a full channel application. The "touchlet information" typically is related to or derived from the channel information provided by the corresponding channel associated with the touchlet, so that when visually rendered, the touchlet information provides a more limited but nonetheless intuitive representation of the channel information. Therefore, an aspect of the invention is that the construct of a channel 200 includes two levels of presentation (1) information that is streaming and/or displayed at the touchlet level and (2) information that is streaming and/or displayed at the full screen level that is launched via the touchlet.
[00101] Unlike standard icons and windows that are static and have little or no built-in intelligence, touchlets 212 have both static and dynamic behaviors, as well as intelligence. For example, touchlets 212 can provide information in context (e.g., context based on certain relationships between different data sources, time of day, day of week, geographic location, devices, users, user's role, and the like). Therefore, an aspect of the invention is that touchlets may be designed to present only information that is most interesting and/or meaningful to the user, and with context. Another aspect of the invention is that touchlets provide mechanisms for taking action and/or making decisions on that information.
[00102] An aspect of the invention is that multiple touchlets in a channel grid may be displaying near real-time dynamic content to the user simultaneously. For example, the twelve touchlets 316 in 3x4 channel grid 318 of client GUI 300 may be displaying near real-time dynamic content simultaneously (e.g., 12 streaming videos) to the user 116. Again, the content presented in each touchlet is designed to present only what is important to the user without saturating the user with content he/she does not want or need.
[00103] Another purpose and/or function of a touchlet 212, such as touchlets 316A through 316L of Figure 3, is that a touchlet 212 is capable of visually presenting static and/or dynamic content to a user 116 in a small window, until such time that the user 116 launches the associated channel application 214 in full-screen mode. For example, in near real time, application server 110 is pushing dynamic information from any sources to one or more touchlets 316 in near real time. [00104] For example, in near real time, application server 110 is pushing dynamic information from a news web-service to "News Reader" touchlet 316A, dynamic stock information to "Stock Watch" touchlet 316B and "Stock Watch" touchlet 316C, streaming video data to "Live News" touchlet 316G, and so on. Further to the example and referring to Figure 4, various screenshots of certain components of an example of an "Around Me" channel 400 of PID application 112 are presented.
[00105] Figure 4 shows the "Around Me" touchlet 316L, which is an example of a visual component 210 of a channel 200. The "Around Me" touchlet 316L displays a pin marker on a map to visually represent to the user that "Around Me" channel 400 may be a mapping application. When a user touches, clicks on, or otherwise selects the "Around Me" touchlet 316L of channel grid 318, the underlying "Around Me" channel application 214 is launched and renders a substantially full-screen GUI of the "Around Me" channel 400. The "Around Me" channel 400 then presents
substantially more information to the user than shown in the "Around Me" touchlet 316L alone.
[00106] The substantially full-screen display of any channel application, such as an "Around Me" channel application 214, may include, for example, a main viewing panel 410. Additionally, a taskbar 412 may be provided along the top of main viewing panel 410 and a navigation bar 414 may be provided along the bottom of main viewing panel 410. Navigation bar 414 may include, for example, a set of mini- touchlets 416, which are substantially the same as, for example, touchlets 316 of channel grid 318 of Figure 3 but presented in miniature form. A user may navigate directly to any channel application by selecting one of the mini-touchlets 416.
[00107] Main viewing panel 410 of "Around Me" channel 400 may include, for example, a visual mapping component 418 and a search component 420. The GUI itself, along with its visual mapping component 418 and search component 420 are all examples of visual components 210 of a channel 200. While contextually related to one another and able communicate to one another, the "Around Me" channel GUI and the "Around Me" touchlet 316L are two separate and distinct entities.
[00108] "Around Me" channel 400 first acquires geo-location information. In one example, current geo-location information is automatically acquired from a user device 118 (e.g., geo-location data of a cell phone). In another example, geo-location information is acquired by the user 116 manually entering an address. Once the "Around Me" channel 400 has acquired the geo-location information, a map of the user's location is presented via the visual mapping component 418. Additionally, search component 420 may be used for locating places of interest (restaurants, gas station, hospital, ATM, theater, etc) near this location. If the user selects certain places of interest using search component 420, these places of interest are highlighted or otherwise indicated on the map. Further, if the user selects a particular place of interest, driving directions may be indicated on the map. The driving directions may be presented in text form, image form (e.g., displayed pictures and/or videos), and/or audible form (e.g., spoken directions).
[00109] In order to accomplish the aforementioned functionality, certain services may be associated with "Around Me" channel 400. For example, associated with "Around Me" channel 400 may be an IP location service component 422, a destination service component 424, and a speech service component 426.
Additionally, the operation of "Around Me" channel 400 is an example of using intra- client interactions as well as client-server interactions. Any interaction with the components of "Around Me" channel 400 is passing messages through what may be termed a "GUI conversation."
[00110] For example, when the user 116 pushes a "Find Me" button on the GUI a message is passed (via the GUI conversation) to the IP location service component 422. The IP location service component 422 then communicates with its related server channel component at application server 110. For example, IP location service component 422 passes the IP address to the server and requests the corresponding geographic location information. The related server channel component queries a mapping service (e.g., Bing) and returns a location (e.g., Syracuse, NY) to the IP location service component 422. The IP location service component 422 passes this Syracuse, NY mapping data (via the GUI conversation) back to the visual mapping component 418 of the "Around Me" channel 400.
[00111] Similarly, when the user requests driving directions, a message is passed (via the GUI Conversation) to the destination service component 424. The destination service component 424 then communicates with its related server channel component at application server 110. The related server channel component queries a mapping service (e.g., Bing) and returns turn-by-turn driving directions to the destination service component 424. The destination service component 424 passes the turn-by- turn driving directions data (via the GUI conversation) back to the visual mapping component 418 of the "Around Me" channel 400 and a driving route is indicated. Additionally, a text-to-speech conversion may be performed remotely at application server 110 and the results passed to speech service component 426 of the "Around Me" channel 400. The user then hears audible driving directions accordingly.
[00112] The "Around Me" channel 400 also illustrates the capability of performing updates without interrupting the device and/or service (i.e., "hot" updates). For example, the default visual mapping component 418 may be supported by the Bing Maps web-service. However, the visual mapping component 418 may include a selector that allows the user and/or developer to select from a list of map services, such as Google Maps, Yahoo Maps, MapQuest, and the like. If Google Maps is selected, the Google Maps data is automatically sent to the visual mapping component 418 with no client interaction. As a result, the visual mapping component 418 is updated with no device and/or service interruption.
[00113] Referring to Figure 5, a functional block diagram of an example of a client runtime environment 500 is presented, which is the runtime environment of user devices 118 of PID application 112. Client runtime environment 500 may include a cross-operating system application 510. In one example, when user devices 118 of PID application 112 are Adobe AIR-enabled devices, cross-operating system application 510 is based on Adobe® AIR®, which is described in Figure 1.
Therefore, client runtime environment 500 of user devices 118 may take advantage of all the capabilities that come with Adobe AIR, such as, but not limited to, HTML, Flash, Adobe AIR APIs, messaging, and the like. For example, Flash allows access the Hulu website to play streaming videos and because Adobe AIR includes a web browser, it can run HTML. Further, the Adobe AIR runtime is suitable for use with many different operating systems. For example, the Adobe AIR runtime is suitable for use with desktop operating systems, such as Mac, Windows, and Linux; mobile operating systems, such as RIM, WebOS, Windows Phone7, Symbian, and Android; and TV-related operating systems, such as Internet Protocol Television (IPTV) operating systems. [00114] Referring to Figure 6, a functional block diagram of an example of a PID application architecture 600 for supporting the Flex presentation framework is presented. PID application architecture 600 is an example of the application architecture of the server side of PID application 1 12. PID application architecture 600 may include a facilitation layer 610 through which all messaging of user devices 118 (the clients) pass, an integration and process layer 612, and an integrated services and applications layer 614.
[00115] Facilitation layer 610 further includes a facilitation server 616 and certain other servers 628. Generally, facilitation server 616 manages the communication between the client (e.g., user devices 118) and the server (e.g., application server 110). Facilitation server 616 serves as the gate keeper. In a sense, facilitation server 616 introduces the client to the integration and process server 646 and then goes away. Facilitation server 616 serves as the client representative to the rest of the server stack. In one example, facilitation server 616 is implemented using a Java server component that provides a set of real-time data management and messaging capabilities. One example of this Java server component may be Adobe®
LiveCycle® Data Services.
[00116] Facilitation server 616 of the facilitation layer 610 may include, for example, a client gateway 618, proxy services 620, invocation services 622, inter- client messaging/synchronization 624, and a facilitation processor 626.
[00117] Client gateway 618 may be the direct interface with the client (e.g., user devices 118) for handling messaging operations. In one example, client gateway 618 uses Action Message Format (AMF) and/or Java Message Service (JMS) for exchanging messages and/or data between the client and server and/or between one client and another client.
[00118] Servers 628 of the facilitation layer 610 may include, for example, a channel server 630, a content delivery server 632, a collaboration media server 634 (e.g., video conferencing server), a stream sync server 636, an analytics server 638, an advertising server 640, a transcoding server 642, and a media server 644.
[00119] Generally, channel server 630 is used for the creation and consumption of channels 200. Channel server 630 is not utilized in the operation of channels 200. For example, channel server 630 may include a repository of channels 200, a channel application catalog 631, and a developer module 633. Channel application catalog 631 may be an "application store" of available channels 200 from which users 116 may acquire (e.g., purchase), download, and install and synchronize specific channels 200. An example of channel application catalog 631 is shown in Figure 12.
[00120] Developer module 633 may be the "developer environment" that may be built into the framework of PID application 112. For example, developer module 633 may be used by software developers to design specific channels 200. In one example, the developer icon 320 of client GUI 300 of Figure 3 may be used to launch the developer module 633. Therefore, an aspect of the invention is that PID application 112 provides a developer environment (e.g., developer module 633) in the same framework as the user environment and without having to exit the user environment.
[00121] Content delivery server 632 may be a server for storing and/or managing any other content that is not managed by, for example, collaboration media server 634, advertising server 640, and media server 644. Collaboration media server 634 is used to facilitate video conferencing. Stream sync server 636 is the server that integrates with advertising and analytics as it relates to the client and content that is being presented. An example of using stream sync server 636 is synchronizing and/or relating ads on one user device 118 (e.g., TV) with ads on another user device 118 (e.g., tablet). Analytics server 638 is used to configure and administer analytics applications. Advertising server 640 may be a dedicated server for storing and/or managing advertising content. Media server 644 may be a dedicated server for storing and/or managing various digital media, such as digital videos/movies, audio/music, and picture files.
[00122] Transcoding server 642 may be a dedicated server for performing transcoding operations. Transcoding is the ability to adapt digital files so that content can be viewed on different playback devices. Working like an interpreter, a transcoder translates files to a suitable format for the end user. Transcoding servers (e.g., transcoding server 642) and services reformat material that would otherwise have to be developed separately for different platforms. Transcoding servers and services are commonly used for adapting content for mobile devices or serving video. [00123] Integration and process layer 612 may be organized in a standard service- oriented architecture (SO A). Integration and process layer 612 further includes an integration and process server 646 along with certain hosting applications 674, hosted communications applications 676, and integral identity provider SSO provider 678. Integration and process server 646 of integration and process layer 612 further includes certain platform service components 648 and certain server channel components 662.
[00124] Platform service components 648 may include, but are not limited to, a data management subsystem 650, an eventing and alerting subsystem 652, a configuration server 654, a session manager 656, an administration subsystem 658, and an identity subsystem 660.
[00125] Data management subsystem 650 performs the master data management operations of PID application architecture 600. Master data management may include, for example, correlating user ID (which user are you?) to content and/or correlating user devices (user has 6 phones, which phone are you?) to content.
Associated with data management subsystem 650 may be an operational data store (ODS) (not shown) and/or a data warehouse (not shown) for storing temporary data or long term data. The ODS may serve two purposes (1) the ODS is used to store data for historical purposes, because data may not persist or be stored at the source. For example, a channel 200 may poll a service every few minutes and store the data in the ODS; and (2) the ODS is used in general application usage. For example, there is a background process of any channel 200 of PID application 112 that is retrieving data and pushing it to the ODS. Therefore, any data that is presented to the user at the user device 118 (i.e., at the client device) may be supplied by the ODS. This ensures good response time for the end-user because the network will not have to be continually interrogated for information.
[00126] Eventing and alerting subsystem 652 is used to collect and/or analyze information from any one or more disparate data sources with respect to certain predetermined or dynamic event conditions. Example of types of information that may be evaluated/monitored by eventing and alerting subsystem 652 may include, but are not limited to, text information, graphic information, one or more pictures, one or more videos, audio or digital sound, streaming data, audio or video, content associated with an executing computer application, voice-over-IP communication, instant messaging/SMS information, video-conferencing information, environmental monitoring information, financial services information, enterprise resource planning information, enterprise content management information, building information, project management information, product lifecycle management information, RSS reader information, remote device control/interaction information, a three- dimensional graphic visualization of one or more objects and/or immersive environments, one or more word processing documents, one or more spreadsheets, one or more presentation/slide shows, email, address book information, and any combinations thereof. CEP systems may also be utilized to evaluate/monitor event conditions.
[00127] Upon detecting the presence of an event condition, eventing and alerting subsystem 652 transmits alert notifications to users 116 via one or more user devices 118. Eventing and alerting subsystem 652 may include, for example, an event manager component, a notification manager, and a complex event processor. Further, events maybe stored for delivery at a later time or for use in a CEP system.
[00128] Once an event is registered in the event manager of the eventing and alerting subsystem 652, the event manager uses CEP (e.g., via complex query language (CQL) programming) to continually monitor the ODS of data management subsystem 650 based on event(s) that have been set and/or to perform a direct query of any external system and/or service.
[00129] Once the event manager recognizes that a certain event condition is present, the notification manager checks the user's configuration, which is at configuration server 654, as well as the user's session information at session manager 656 in order to determine how best to notify the end-user. Then, the alert notification is pushed through the client gateway 618 of the facilitation server 616 (e.g., via AMF) and to one or user devices 118 (client devices). As a result, the one or user devices 118 receive the alert notification and the alert presented to the user 116 via one or user devices 118.
[00130] Example of types of alerts that may be generated by eventing and alerting subsystem 652 may include, but are not limited to, visual alerts, auditory alerts, tactile alerts, email messages, SMS text messages, activation of at least one channel of a plurality of channels, and notifications to a law enforcement agency.
[00131] A main aspect of a channel 200 is that eventing and alerting subsystem 652 provides actionable eventing and alerting capability to the user 116. That is, channels 200 of PID application 112 provide users the ability to take action upon receiving an alert, in which the mechanism for user response to an alert may be conveniently built into the channel itself.
[00132] Configuration server 654 manages device configurations, user profiles, data configurations, application configurations, and the like. Configuration server 654 is the counterpart to configuration component 218 of any channel 200.
[00133] Session manager 656 performs session management and/or handles state. Session manager 656 may include, for example, a session module and a policy module. In one example of managing state, a user 116 is watching TV (one user device 118) and decides to pause the TV show and resume watching the TV show on his/her laptop computer (another user device 118). Session manager 656 stores state information and communicates this state information between user devices 118 so that the user 116 can resume watching the TV show at his/her laptop computer from the same point in the broadcast.
[00134] Administration subsystem 658 is used to perform standard system administration tasks. For example, when a channel 200 is accepted into the channel application catalog 631, the administration subsystem 658 associates what users 116 are allowed to access the channel. With respect to authorizations, channels are assigned to groups and users. For example, anyone working in the accounting department of a company has access to a certain channel or only a certain user's family members are allowed access to a certain channel.
[00135] Identity subsystem 660 manages the authorization of users, places, times, and things. Identity subsystem 660 may include, for example, an authorize module and an authenticate module. For example, users must be authorized for content and services must be authorized for content. Accordingly, services check to ensure that users are authorized to access their services. [00136] A main aspect of PID application 112 of the invention is single sign-on (or universal sign-on) capability, wherein once the user 116 is activated on the system, the user 116 is automatically authenticated when accessing any applications that normally require user login, i.e., unified access to all applications. That is, once the user 116 logs into information delivery system 100, the user will not be prompted for any other login operations when accessing information and/or services via PID application 112. For example, the user 116 may have one or more secure email services, one or more secure banking and/or financial accounts, one or more secure web-services accounts, and the like. Login information of all the user's secure accounts is stored, for example, identity subsystem 660. When a user access these secure accounts, identity subsystem 660 automatically provides the necessary login credentials to the requesting entity, thereby automatically logging in the user with no further action on the user's part. Because multiple user devices 118 may be associated with a user 116, PID application 112 requires that the user 116 login on each of his/her user devices 118 as they become available in order to ensure the identity of the user 116.
[00137] In a location-based example, a user 116 is authorized to use a certain user device 118 and/or service only when inside his/her place of business. Therefore, upon leaving the building the authorization is revoked. In a time-based example, a user 116 is authorized to use a certain user device 118 and/or service only at a certain time of day, perhaps during off-peak hours. Therefore, during off-peak hours the
authorization is allowed, but during peak hours the authorization is revoked.
[00138] Generally, server channel components 662 are used to perform the integration. Server channel components 662 may include Java-based components, such as, but not limited to, a Camel server channel component 664, a Spring server channel component 666, a Java server channel component 668, a JavaScript server channel component 670, a business process execution language (BPEL) server channel component 672.
[00139] Camel server channel component 664 may be, for example, the Apache Camel server channel component (available from The Apache Software Foundation). Camel server channel component 664 is used for the orchestration and integration of services. Spring server channel component 666 is used for implementing Inversion of Control (IoC) and aspect-oriented programming (AOP). For example, when passing information from one component to another, the components involved have placeholders for data to be injected (or inserted). Spring server channel component 666 is used to manage this process. Java server channel component 668 may be implemented via (e.g., Java 2 Platform Standard Edition (J2SE)). JavaScript server channel component 670 is used for running JavaScript on the server side of PID application 112. BPEL server channel component 672 is used to export and import information by using web service interfaces.
[00140] With respect to integration and process layer 612, certain unique tasks are possible, independent of the source of the content. For example, sensor data and streaming media data are being normalized, which allows the capability to combine content. Therefore, a main aspect of the invention is that PID application 112 is agnostic to the source of the content and agnostic to the user device on which it is presented. From a client perspective, PID application 112 is agnostic to what content sources are connected.
[00141] The components of PID application architecture 600 communicate via an enterprise service bus 680 of integration and process server 646. Enterprise service bus 680 manages "calls" in and out of the PID application architecture 600. A set of adaptors 682 are connected to enterprise service bus 680 for interfacing with entities of integrated services and applications layer 614, which are outside of the
environment of application server 110. That is, adaptors 682 are connected to enterprise service bus 680 for handling various communication protocols.
[00142] Integrated services and applications layer 614 may include, but is not limited to, one or more third-party services 684, one or more relational database management systems (RDBMS) 686, Parlay X 688 (i.e., a set of standard Web service APIs for the telephone network), one or more IP multimedia subsystem (IMS) servers 690, basic wireline telecommunication 692, one or more communications modules 694 (e.g., instant message, calendar, mail/SMS, address book), and one or more directory servers 696, which may be examples of information sources 114.
[00143] An aspect of the invention is that PID application 112 provides built in security at the application server 110, which inherently provides security at each user device 118. Any applications running in the PID application 112 environment are checked for viruses, spyware, and the like. In this way, it is ensure that users 116 are operating in a secure environment.
[00144] Referring to Figure 7, a functional block diagram of an example of client architecture 700 of PID application 112 for supporting the Flex presentation framework is presented. Client architecture 700 is an example of the application architecture of the client side of PID application 1 12. That is, client architecture 700 is the application architecture of any user device 118.
[00145] Figure 7 shows a channel 200, which includes visual component 210, touchlet 212, channel application 214, and service component 216. Associated with a channel 200 are certain sub-components, such as assets 710, code 712, models 714, conversations 716, as well as configuration 718.
[00146] Assets 710 may be, for example, images, descriptive language for the layout of the channel, and the like. Code 712 is the actual programming code for the channel 200. A channel service 720 on the client side communicates with the channel server 630 on the server side. Code 712 interacts with channel service 720 in the client. Additionally, code 712 is cached in client cache 750 and then transmitted via a client bus 760 to identity subsystem 660 (performing authentication and
authorization) and then to channel server 630. Any channels 200 that are installed on a user device 118 originate from channel server 630 (e.g., from channel application catalog 631).
[00147] Models 714 may be the data models for the channel 200. A model system 730 on the client side may include user-defined models, persistent models, synchronized persistent models, synchronized models, and the like. Associated with model system 730 may be a persistence service 732 and a synchronization service 734. Models 714 interact with persistence service 732 and synchronization service 734 in the client. Persistence service 732 on the client side communicates with the data management subsystem 650 on the server side. Synchronization service 734 on the client side communicates with the inter-client messaging/synchronization 624 on the server side. Additionally, models 714 are cached in client cache 750 and then transmitted via client bus 760 to identity subsystem 660 (performing authentication and authorization) and then to inter-client messaging/synchronization 624. [00148] Conversations 716 may be any communication over the bus between client components and/or server components. Conversations 716 on the client side are transmitted via client bus 760 to the eventing and alerting subsystem 652 on the server side.
[00149] Configuration 718 may define, for example, the position of the touchlet on the channel grid, that the channel now monitoring a certain data stream, the user is receiving data and needs to be synchronized, the user has multiple devices that need to be synchronized, when any application is installed perform synchronization, location, ID, the channel is a synchronizable channel, the channel is an alertable channel, and the like. Configuration 718 includes any channel attributes that convey the "personality" or functionality of the channel. Certain information in configuration 718 may be selected by the user.
[00150] A configuration service 740 on the client side communicates with the configuration server 654 on the server side. Configuration 718 interacts with configuration service 740 in the client. Additionally, configuration 718 is transmitted via client bus 760 to identity subsystem 660 (performing authentication and authorization) and then to configuration server 654.
[00151] Client architecture 700 of the client side of PID application 112 is architected similar to an SOA for an enterprise stack. The client services use the idea of GUI conversations to exchange messages between client components and/or server components, all using the client bus and/or server bus. Therefore, an aspect of the invention is a sophisticated client architecture, similar to an SOA, that allows complex processing to occur locally at the client as well as at the server (yet without relying on the server), thereby enabling a rich user experience. Additionally, with respect to PID application architecture 600 and/or client architecture 700, more details of examples of certain process flows are described with reference to Figures 10 and 11.
[00152] Referring to Figure 8, a functional block diagram of an example of a communication flow 800 between the client side and the server side of PID
application 112 is presented. For example, certain components may be bypassed in order to achieve efficiency. Communication flow 800 shows that components of client channels 200 may communicate directly with platform service components 648 (albeit through facilitation server 616). Additionally, components of client channels 200 may communicate with platform service components 648 through the server channel components 662 (again through facilitation server 616). This is important because certain tasks do not require going through the server channel components 662. Therefore, it may be more efficient to communicate directly with platform service components 648. For example, maybe when a components requesting permission to do something, the client channel 200 may communicate directly with identity subsystem 660.
[00153] Referring to Figure 9, a functional block diagram of an example of a communication flow 900 between components at the server side of PID application 112 is presented. For example, in integration and process server 646, the server channel components 662 may bypass the platform service components 648 and communicate directly with enterprise service bus 680. This scenario may be called "performant direct calling."
[00154] Referring again to Figures 8 and 9, an aspect of the invention is that PID application 112 provides flexibility in the messaging operations.
[00155] Referring to Figure 10, illustrates a functional block diagram of a portion of PID application architecture 600 and a process of performing a user login operation is presented. In this example, the process of performing a user login operation may include, but is not limited to, the following steps.
[00156] At step 1, the client (user device 118) is activated, the application is launched at the client and, therefore, the channel grid is started at the client.
[00157] At step 2, the channel grid at the client connects via AMF to client gateway 618 of the facilitation server 616 at the server.
[00158] At step 3, client gateway 618 then authenticates. For example, client gateway 618 passes the credentials (user ID and password) to the authenticate module of identity subsystem 660.
[00159] At step 4, using a session module of session manager 656, the session is checked to see whether there is already an existing session. This is done because the user 116 may have multiple user devices 118. [00160] At step 5, using a personal profile module of configuration server 654, the user's personal profile is checked with respect to the user device 118. This is done to ensure that the presentation frame work (e.g., channel grid, tabs) that is delivered matches the user device 118. The user's personal profile is also checked with respect to the location.
[00161] At step 6, an event manager module of the eventing and alerting subsystem 652 checks to see whether the user has any alerts present in case any alerts have occurring during the transition state of the user device 118.
[00162] At step 7, the channel grid at the client checks to see whether the channels are cached locally at the client. If not cached, the channel grid at the client requests its channels from the channel server 630.
[00163] At step 8, using an authorize module of identity subsystem 660, the channel server 630 checks to see whether the user is authorized to have the requested channels.
[00164] At step 9, channel server 630 responds to the client with the allowed channels (sometimes updating, sometimes responding already up-to-date).
[00165] At step 10, the channel grid is populated with channels and presented at the client (user device 118).
[00166] An aspect of the invention is that PID application 112 provides a universal login feature. That is, once a user 116 is logged into PID application 112, no further login actions are required for accessing any information and/or services. For example, configuration server 654 and/or identity subsystem 660 may contain a record of all login information of every user 116, which is automatically applied upon accessing any information and/or services with no further action by the user 116.
[00167] Referring to Figure 11, illustrates a functional block diagram of a portion of PID application architecture 600 and a process of performing data management and eventing and alerting is presented. In this example, the process of performing data management and eventing and alerting may include, but is not limited to, the following steps. [00168] At step 1, a certain sensor channel is created and the ODS of the data management subsystem 650 begin to collect data.
[00169] At step 2, the source of the data is an entity at integrated services and application layer 614, therefore, the ODS collects the data through, for example, a REST adaptor, which is one of adaptors 682. In one example, a web-service call is issued.
[00170] At step 3, using, for example, the web-service call, an external sensor service (which is also REST) is interrogated. In one example, the external sensor service is a "temperature & humidity" service.
[00171] At step 4, in this example, the external sensor service collects the current temperature and humidity data, reports this data back to ODS of the data management subsystem 650, and this data is stored at the ODS for historical views. In the case of eventing, this data may be sent directly to the requesting service and/or channel, if no historical records needed.
[00172] At step 5, a CEP engine of the eventing and alerting subsystem 652, which is monitoring the data at the ODS, detects an event. For example, the CEP may be monitoring the temperature and humidity data for certain threshold values that may indicate a certain condition is present.
[00173] At step 6, the CEP of the eventing and alerting subsystem 652 queries the event manager of the eventing and alerting subsystem 652 to see whether any user 116 has set an alert that corresponds to the current temperature and humidity condition.
[00174] At step 7, it is determined that, yes, some user 116 has set an alert that corresponds to the current temperature and humidity condition. Therefore, the user's personal profile at configuration server 654 is checked to see the user's notification preferences.
[00175] At step 8, it is checked to determine whether the user 116 has an active session in order to determine the appropriate way(s) to alert the user by considering the user's connectivity, location, time, and the like. It may be determined that the user is connected via the client via a laptop computer. [00176] At step 9, the event manager of the eventing and alerting subsystem 652 is queried again to determine whether any other events are present in the event queue for this user. If yes, any other alerts may also be sent along with the temperature and humidity alert.
[00177] At step 10, the notification manager of the eventing and alerting subsystem 652 dispatches the notification through user's logical event queue which results in the client gateway 618 of the facilitation server 616 sending the information via JMS to the user's current channel grid.
[00178] At step 11 , the message comes across the client bus of the user device 118, then a channel receives and displays the alert to the user. In this example, the alert may include information about the current temperature and humidity at some location.
[00179] With respect to the operation and/or use of PID application 112, this method may be summarized as follows. Certain services are written; certain complex query language is written; certain events and alerts are registered; sensor data at ODS is monitored as it related to events and alerts; if a match is detected, the event is correlated to a user; user profile and session information is queried; and the alert is transmitted to the user.
[00180] Referring to Figure 12, a screenshot of an example of the GUI of channel application catalog 631 of PID application 112 is presented, by which users may acquire channels for use with their devices. In this example, the GUI presents a selection of available function- and/or purpose-specific channels 200. For each channel 200, its title, category, and certain details about the channel may be displayed. A navigation bar 1210 may be presented along the bottom of the GUI, by which users may scroll from page to page of the catalog.
[00181] Referring to both Figure 3 and 12, examples of titles of channels 200 that may be found in channel application catalog 631 may be News Reader Channel, Stock Watch Channel, Business CRM Channel, Currency Channel, Banking Channel, Live News Channel, Business Calendar Channel, Email Channel, Personal Calendar Channel, Business Finance Channel, and Around Me Channel.
[00182] An aspect of the invention is that when the user 116 selects "install application" from channel application catalog 631, because the user's ID is known and authentication is already done, the purchase transaction is processed automatically and the selected channel 200 automatically installs and synchronizes on the user's channel grid.
[00183] NON-LIMITING EXAMPLES OF EVENTING AND ALERTING
[00184] Referring to Figure 13, another screenshot of client GUI 300 of Figure 3 that includes channel grid 318 is presented. However, in this view of client GUI 300, the touchlet 316L location of channel grid 318 is empty. Touchlet 316B is a "Stock Watch" touchlet that is associated with a "Stock Watch" channel (e.g., "Stock Watch" channel 1400 of Figure 14). The "Stock Watch" channel may provide a mechanism by which a user 116 may monitor a certain company's stock and/or financial information. In this example, the "Stock Watch" channel is monitoring the stock and/or financial information of Brocade Communications Systems, Inc (BRCD).
[00185] Referring to Figure 14, screenshots of certain components of an example of a "Stock Watch" channel 1400 of PID application 112 is presented. Figure 14 shows "Stock Watch" channel 1400 operating in a substantially full-screen mode. "Stock Watch" touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching "Stock Watch" channel 1400. "Stock Watch" channel 1400 provides a mechanism for monitoring and/or reporting certain stock and/or financial information of a company of interest. In this example, "Stock Watch" channel 1400 is monitoring Brocade Communications Systems, Inc (BRCD).
[00186] The main viewing panel 410 of the "Stock Watch" channel 1400 may include, for example, an overview window 1420, one or more information windows 1422, and a trading window 1424.
[00187] In this example, overview window 1420 shows a plot of the BRCD stock price over some selectable period of time (e.g., last hour, day, week, month, etc), as well as other statistical information about the BRCD stock. Figure 14 shows two information windows 1422. For example, one information window 1422 displays information about the latest news. The other information window 1422 displays stock information about certain other companies (i.e., companies related to BRCD in some manner). Trading window 1424 provides mechanisms by which the user 1 16 may perform stock trading transactions (e.g., buying and selling stock). [00188] The "Stock Watch" channel 1400 is a good example of a channel application that to the user is seemingly a single application, but is in fact pulling publicly available information from multiple disparate data sources. For example, the real-time stock price display information in "Stock Watch" touchlet 316B and in the overview window 1420 may originate from the "Yahoo! Finance" web service, the related companies display information in an information window 1422 may also originate from the "Yahoo! Finance" web service, the plot and other statistical information in the overview window 1420 may originate from the "The Motley Fool" web service, and the "Latest News" information in an information window 1422 may originate from the "Google Finance" web service, trading window 1424 may be supported by the "TD Ameritrade" web service, and the like.
[00189] Additionally, the functions of trading window 1424 is an example of using the single sign-on (or universal sign-on) capability of PID application 112. In this example, the user 116 is already authenticated at PID application 112. Therefore, the user 116 is not prompted for any further login credentials when using trading window 1424, which may be supported by an online trading web-service, such as, but not limited to, TD Ameritrade. In this example, the user's TD Ameritrade login information is already stored in the user's profile/configuration and is automatically provided as needed by any channel application of information delivery system 100. The capability of the single sign-on (or universal sign-on) feature is not limited to user login information, user banking and/or credit card information may also be stored in the user's profile/configuration. Additionally, the single sign-on (or universal sign- on) feature my include login credentials with respect to the user's different user devices 118. As a result, payments information may be automatically provided as needed. In the example of TD Ameritrade, any transactions performed via trading window 1424 are handled without prompting the user 116 for payments information. The aforementioned features of PID application 112 provide convenience to the user.
[00190] The "Stock Watch" channel 1400 may provide mechanisms by which the user 116 may wish to respond to the alert. For example, the trading window 1424 of "Stock Watch" channel 1400 may provide mechanisms by which the user 116 may perform stock transactions, such as buying and selling stock. This is yet another example of channels of PID application 112 providing users the ability to take action upon receiving an alert. That is, PID application 112 provides actionable eventing and alerting capability.
[00191] Information sources 114 that support "Stock Watch" channel 1400 may include, for example, one or more stocks and/or financial services, one or more news services, and the like. Any information sources 1 14 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Stock Watch" channel 1400 may include, but are not limited to, content delivery server 632, an analytics server 638, and a media server 644.
[00192] Referring to Figures 15 through 18, screenshots of client GUI 300 of PID application 112 and an example of a process of eventing and alerting using PID application 112 is presented. In this example, with respect to "Stock Watch" touchlet 316B and "Stock Watch" channel 1400, the user 116 sets an alert for when the BRCD share price rises above a certain value, as follows.
[00193] Figure 14 shows that by hovering the mouse over the "Stock Watch" touchlet 316B, helper window 330 is displayed to the user 116. To set an alert with respect to "Stock Watch" touchlet 316B, the user selects the "Alerts" button. As a result of selecting the "Alerts" button of helper window 330, an alerts window 334 is displayed to the user 116, as shown in Figure 16. Alerts window 334 provides a mechanism by which the user 116 may create an alert that is based, for example, on share price. As shown in Figure 16, alerts window 334 provides an entry field for entering a share price. The share price that the user enters is an example of a threshold condition or parameter for triggering an alert notification. Other controls are provided in alerts window 334 to generate the alert when the share price is "less than," "equal to," or "greater than" the share price that is entered. In one example, the user sets up an alert to occur when the share price is "less than" $9.23. To activate this eventing and alerting process, the user 116 may select an "Apply" button of alerts window 334, which closes the window and automatically registers the event in the event manager of the eventing and alerting subsystem 652 (see Figure 6).
[00194] Accordingly, the event manager of the eventing and alerting subsystem 652 begins monitoring the data stream associated, in this example, with the BRCD stock. Figures 17 and 18 show examples of the visual components for this eventing and alerting process. For example, the event manager of the eventing and alerting subsystem 652 monitors the BRCD data stream and when the BRCD share price is approaching the alert set point (e.g., near $9.23), Figure 16 shows that the "Stock Watch" touchlet 316B may display a warning state to the user 116. An example of the warning state is to change the color of the border of the "Stock Watch" touchlet 316B from, for example, black to yellow. The event manager of the eventing and alerting subsystem 652 continues to monitor the BRCD data stream and when the BRCD share price is "less than" $9.23, Figure 18 shows that the "Stock Watch" touchlet 316B may display an alert state to the user 116. An example of the alert state is to change the color of the border of the "Stock Watch" touchlet 316B to red.
[00195] In this example, the alert is delivered according to the user's configuration (notification preferences) and session. In summary, the event manager registers the event; the event manager monitors the bus, using CEP and CQL the event manager recognizes a certain condition is present; the notification manager checks the user's configuration and session; once it is determined how to notify the end-user the notification is pushed through the facilitation manager gateway (using AMF) and to the user device (client device); the client device is monitoring the client bus and receives the notification; and the notification is displayed to the user on the client device (e.g., yellow border, red border).
[00196] Referring to Figures 19 through 26, screenshots of certain channels of PID application 112 and an example of a process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data is presented. In this example, a user 116 may be a stock broker that hears that Cisco Systems, Inc is interested in buying Brocade Communications Systems, Inc. Therefore, there may be some very specific information that the user 116 wishes to be informed about regarding this potential transaction. Therefore, the user 116 may create a new channel and set up the desired alert notifications, as follows.
[00197] In this example, the process is using the "Latest News" touchlet 316A; the "Stock Watch" touchlet 316B, which is BRCD; and the "Stock Watch" touchlet 316C, which is Cisco Systems, Inc (CSCO); which are shown in Figure 18. That is, in this example the independent channels supporting "Latest News" touchlet 316 A, "Stock Watch" touchlet 316B, and "Stock Watch" touchlet 316C are combined to create a new channel (and touchlet). Then, an eventing and alerting process with respect to the new channel is set up with respect to the combined data.
[00198] Referring to Figure 19, in order to create a new channel, the user 116 selects an icon 336 on taskbar 312, which causes a create channel window 338 to be displayed to the user 116. A channels portion 340 of the create channel window 338 shows a list of available channels from which to build an alert. For example, the available channels are from the current channel grid 318 or from any other channel grid of the user 116. A query builder portion 342 of the create channel window 338 provides a query builder function to the user 116, which is used to generate the CQL that interacts with the event manager of the eventing and alerting subsystem 652 (see Figure 6).
[00199] Figure 20 shows that the user 116 may select a first channel, such as the "Latest News" channel from the channels portion 340, which causes the "Latest News" channel to appear in the query builder portion 342 of the create channel window 338. When a channel is designed, the developer exposes certain things that may be useful to users 116. In the case of the "Latest News" channel, a "keywords" field is provided to the user. User 116 enters, for example, the words "Brocade" and "Cisco." Once the channel is deployed, the news information of the "Latest News" channel is monitored for the words "Brocade" and "Cisco" (together in the same news feed) by the event manager of the eventing and alerting subsystem 652.
[00200] Figure 21 shows that the user 116 may select a second channel, such as the BRCD "Stock Watch" channel from the channels portion 340, which causes the BRCD "Stock Watch" channel to also appear in the query builder portion 342 of the create channel window 338. Now two channels are present in the query builder portion 342. Again, when a channel is designed, the developer exposes certain things that may be useful to users 116. In the case of the "Stock Watch" channel, a "share price" field is provided to the user along with a qualifiers dropdown menu (greater than, equal to, less than). User 116 selects, for example, a share price "greater than $9.26." Once the channel is deployed, the share price information of the BRCD "Stock Watch" channel is monitored for this condition by the event manager of the eventing and alerting subsystem 652. The information that the user enters in the query builder portion 342 of the create channel window 338 is an example of threshold conditions or parameters for triggering an alert notification.
[00201] Figure 22 shows that the user 116 may select a third channel, such as the CSCO "Stock Watch" channel from the channels portion 340, which causes the CSCO "Stock Watch" channel to also appear in the query builder portion 342 of the create channel window 338. Now three channels are present in the query builder portion 342. User 116 selects, for example, a share price "greater than $23.63." Once the channel is deployed, the share price information of the CSCO "Stock Watch" channel is monitored for this condition by the event manager of the eventing and alerting subsystem 652.
[00202] The query builder portion 342 of the create channel window 338 allows Boolean operations between the selected channels. For example, the user 116 may be provided AND, OR, ANDNOT, and XOR functions. In this example, the user selects the "Latest News" channel AND the BRCD "Stock Watch" channel AND the CSCO "Stock Watch" channel. In this way, an alert is generated when the following condition is present: Both the words "Brocade" and "Cisco" are detected in the "Latest News" channel AND when a share price "greater than $9.26" is detected via the BRCD "Stock Watch" channel AND when a share price "greater than $$23.63" is detected via the CSCO "Stock Watch" channel.
[00203] The query builder portion 342 of the create channel window 338 also provides notification settings. For example, the user 116 may select notify by:
Current Device, Email, IM, SMS, Mobile, and the like. The user 116 may select one or more. The query builder portion 342 of the create channel window 338 also provides channel name field. In one example, the user 116 enters "Custom Alert." When the setup is complete, the user 116 selects a "Create Channel" button to deploy the new "Custom Alert" channel. By pressing the "Create Channel" button, certain processes occur, such as, but not limited to, the channel server 630 is updated accordingly, a touchlet is created and loaded into the client, all events set up on the menu are registered with the event manager, the user's configuration is updated with the notification preferences for this channel, the event manager begins monitoring the data streams according to the query. The touchlet is updated in real time as to the status of the three variables. [00204] In this example and referring now to Figure 23, a "Custom Alert" touchlet 316L is created and presented in channel grid 318. The "Custom Alert" touchlet 316L displays the three components that the channel is eventing off. In this view, the "Custom Alert" touchlet 316L displays the three components (e.g., news, BRCD, and CSCO), which are all in a no alert condition. In one example, the no alert condition for each component is to display the component in a green color in the "Custom Alert" touchlet 316L. Therefore, Figure 23 shows all three components in green to indicate that no alert conditions are present.
[00205] Referring now to Figure 24, two of the three alert conditions are met and the "Custom Alert" touchlet 316L displays a warning state to the user 116. In this example, the BRCD and the CSCO conditions are met, but the news condition is not yet met. Therefore, the color of the BRCD and CSCO components may be changed from green to yellow, while the news component remains green. In this way, the user 116 may perceive a warning that, while the alert condition is not yet fully met, an alert may be eminent.
[00206] Referring now to Figure 25, all three alert conditions are met and the "Custom Alert" touchlet 316L displays an alert state to the user 116. In this example, the news, BRCD, and CSCO conditions are met. Therefore, the color of the news, BRCD, and CSCO components in the "Custom Alert" touchlet 316L may be changed to red. In this way, the user 116 may receive the notification that the alert condition is fully met.
[00207] Accordingly, an aspect of the invention is that PID application 112 provides the capability to combine information of two or more channels to create a another information channel, such as combining information associated with "Latest News" channel, the BRCD "Stock Watch" channel, and the CSCO "Stock Watch" channel to create a new channel that is represented by "Custom Alert" touchlet 316L. Additionally, upon the creation of this new channel, this new channel may be automatically installed and synchronized across all of the user's user devices 118 so that that the new channel appears on all user devices 118. Optionally, the user can manually update his/her user devices 118 (e.g., via drag and drop function).
[00208] Referring again to Figure 25, in this view other alerts are presented in certain touchlets 316 of channel grid 318. For example, touchlet 316H, which may be a business calendar channel, is displaying a "You have 4 scheduled meetings today" alert. Touchlet 3161, which may be an email channel, is displaying a "4 unread messages" alert. Both of these alerts are example of non-actionable alerts, as these are informational alerts that do not require user action. For example, the user may choose or not choose to launch the email channel and read his/her emails. However, if the user should choose to launch the email channel and read his/her emails, the "4 unread messages" alert is cleared.
[00209] Referring now to Figure 26, the "Custom Alert" channel provides an alert that is actionable. That is, upon receiving the alert via "Custom Alert" touchlet 316L, the user 116, who may be a stock broker, may take certain action. By clicking on the "Custom Alert" touchlet 316L, which may be in an alert state, the associated "Custom Alert" channel 2600 may be presented to the user 116. For example, Figure 26 shows an example of the GUI for the "Custom Alert" channel 2600. The GUI for the "Custom Alert" channel 2600 may include, for example, a query parameters portion 2610 and an actions portion 2612.
[00210] The query parameters portion 2610 allows the user 116 to, for example, adjust the query parameters, add more conditions, change conditions, remove conditions, and the like. The actions portion 2612 allows the user 116 to perform certain actions based on the alert. For example, the actions portion 2612 may provide mechanisms by which the user 116 may perform stock trading transactions (e.g., buying and selling stock), similar to trading window 1424 of "Stock Watch" channel 1400 of Figure 14, which may be supported by the "TD Ameritrade" web service.
[00211] The "Custom Alert" channel 2600 is used to generate an alert that is of particular importance to the user 116. The "Custom Alert" channel 2600 is an example of the user-centric aspect of PID application 112 in which only information that is of most importance to the user is processed and/or presented to the user 116. The aforementioned process of combining two or more independent channels to create a new channel (and touchlet) and a process of eventing off of the combined data is an example of the capability of PID application 112 to allow the user 116 to action based on disparate data that is of interest to the user and conditions set by the user. [00212] NON-LIMITING EXAMPLES OF CONSUMER APPLICATIONS
[00213] For the purpose of illustration, Figures 27 through 51 describe non- limiting examples of channels 200 that may be suitable for consumer use. However, these examples are not limited to consumer use only. The channels described in Figures 27 through 51 may also be suitable for enterprise applications (e.g., corporate environments).
[00214] Referring to Figures 27 through 40, screenshots of an example of a "Television" channel of PID application 112 is presented. In the discussion herein, let the reader beware that the meaning of the term "channel" within the context of PID application 112 is not to be confused with the standard consumer terminology of a TV channel. When referring to the standard terminology of a TV channel, the standard TV channel is hereafter referred to as a "traditional TV channel."
[00215] Figure 27 shows a screenshot of a "Television" channel GUI 2700 that is being displayed on a tablet device 2710, which is one example of a user device 118 (i.e., a client device). The "Television" channel GUI 2700 may have been launched using a "Television" touchlet (not shown) of a certain channel grid (not shown) of a certain user 116. Upon touching, clicking, or otherwise selecting the "Television" touchlet, the underlying "Television" channel (e.g., a "Television" channel 2720 shown in Figure 28) is launched, which in turn launches "Television" channel GUI 2700 to be presented to the user. "Television" channel GUI 2700 displays yet another television- specific channel grid, such as a channel grid 2712.
[00216] The "Television" channel is designed to impart certain capabilities to any user device 118, such as tablet device 2710, with respect to viewing and/or interacting with content on a television. For example, tablet device 2710 is capable to provide a TV remote control function, capable to display any dynamic content to the user 116, capable of allowing user interaction with the content, and the like.
[00217] For example, a set of TV controls 2714 that provide interfacing features are rendered on the display of tablet device 2710. Preferably, the display of tablet device 2710 is a touch screen. Therefore, TV controls 2714 are touch controls. TV controls 2714 may include, for example, pause and play controls, fast forward and rewind, volume up/down controls, mute, 50% mute, traditional TV channel up/down controls, and TV on/off controls. TV controls 2714 may be rendered in any position on the display that provide ease of use for the user. For example, TV controls 2714 may be arranged on one side of the display, on both sides of the display, along the top of the display, and the like.
[00218] Channel grid 2712 contains multiple touchlets for presenting dynamic information of, interacting with, and/or launching any content that a user 116 may be likely to watch on his/her TV set, which is itself another user device 118 (i.e., another client device). For example, channel grid 2712 may include, for example, touchlets for TV shows, touchlets for movies, touchlets for TV service providers, touchlets for movies providers, touchlets for any streaming video content, and the like. In one example, the user 116 may select a "Master Chef touchlet 2730 (shown in Figure 28), which launches an underlying channel application in substantially full-screen mode, as shown in Figure 28, by which the user may watch the Master Chef TV show.
[00219] For example, Figure 28 shows "Television" channel 2720 operating in a substantially full-screen mode. "Television" channel 2720 is launched from channel grid 2712 by, for example, using the "Master Chef touchlet 2730. Figure 28 also shows a TV 2740 by which the user 116 is able to watch the Master Chef TV show. While TV 2740 is displaying the Master Chef TV show itself, the user 116 may select a "What's On" button (not shown) in order to view episode information about the Master Chef TV show on tablet device 2710. The TV services provider's electronic programming guide (EPG) may be the source of this episode information.
Additionally, an ad window 2750 is included in the display. Dynamic and/or static information from any source may be displayed in ad window 2750. While contextually related to one another, the main display showing the episode information and the ad window 2750 are two separate and distinct entities.
[00220] The user 116 may use any of the TV controls 2714 (e.g., pause/play, volume, traditional TV channel up/down) for controlling TV 2740 from tablet device 2710. Additionally, the user 116 may interact with the "Bon Appetit" magazine ad that is displayed in ad window 2750. Further, user 116 may select a certain "Simul- Stream" button 2760 to play the TV show on both TV 2740 and tablet device 2710. [00221] Figure 29 shows that the user 116 may decide to switch to another show. Therefore, the user 116 touches the channel up/down control to locate a TV show called Fringe.
[00222] Figure 30 shows that the user 116 may decide to watch Fringe instead. As a result, Fringe episode information is displayed on tablet device 2710, while the TV show is playing at TV 2740. Figure 30 also shows that a Coke Zero ad is playing on TV 2740. By querying the metadata associated with the digital TV broadcast, PID application 112 is able to detect (1) that a commercial is playing on TV 2740 and (2) that the ad content is about Coke Zero. Therefore, other Coke Zero ad information may be displayed in ad window 2750 at tablet device 2710 substantially concurrently to the Coke Zero ad running on TV 2740. This is an example of synchronization feature of PID application 112, which may be performed using stream sync server 636 of PID application architecture 600 of Figure 6.
[00223] Referring again to Figure 30, the user 116 may choose to pause the TV show from tablet device 2710 and interact with the Coke Zero ad in ad window 2750. For example, the user 116 touches the "Play the Coke Zero Football Challenge" text in ad window 2750 and the game is then launched and displayed as shown in Figure 31. This is an example of user interaction with information that is delivered by information delivery system 100 to the user 116 on a user device 118. More specifically, this is an example of interactive ads and games.
[00224] Figure 32 shows that the user 116 may finish playing the Coke Zero game and decide to resume watching the TV show Fringe on TV 2740. Again, Fringe episode information is displayed on tablet device 2710. Figure 32 also shows that a Ford ad is playing on TV 2740. Again, PID application 112 is able to detect (1) that a commercial is playing on TV 2740 and (2) that the ad content is about Ford. In this example, while a national Ford ad is playing on TV 2740, a local Ford dealer ad information may be displayed in ad window 2750 substantially concurrently to the Ford ad running on TV 2740. This is another example of synchronization feature of PID application 112, which may be performed using stream sync server 636 of PID application architecture 600 of Figure 6. More specifically, this is an example of synchronizing a local ad in the ad window 2750 at tablet device 2710 with a content- related national ad playing on TV 2740. Referring again to Figures 27 through 40, "Television" channel 2720 demonstrates that an aspect of the invention is that PID application 112 may facilitate presentation of synchronized ad information.
[00225] Figures 33 through 36 illustrate a social feature of "Television" channel 2720. For example, Figure 33 shows that an alert notification appears on the display of tablet device 2710. The alert notification is informing the user 116 that a friend is also watching Fringe. This is an example of the configuration server 654, eventing and alerting subsystem 652, and session manager 656 of PID application 112 working together to determine whether an event has occurred that may trigger an alert of the user 116, then to determine whether the user 116 has an active session and at what user device 118, and then to determine the preferred alert notification method. This is an example of the eventing and alerting features of PID application 112.
[00226] The user 116 may touch a "Chat" button 2764 to launch a "Social" component of "Television" channel 2720, as shown in Figure 34. For example, Figure 34 shows a chat window 2752 that may display a list of the friends of user 116. The one or more friends that are watching the same TV show as the user 116 may be indicated to the user 116 by, for example, a color bar. Additionally, a show
discussion may appear in the chat window 2752.
[00227] Figure 35 shows that the user 116 may decide to look at a Social Guide that is displayed in social guide window 2754. For example, the social guide window 2754 may display what all of user 116's friends are watching as well as what everyone else is watching. Figure 36 shows that the user 116 may access the TV show as well as chat from the social guide window 2754. This is an example of channels of PID application 112 providing users the ability to take action upon receiving an alert. That is, PID application 112 provides actionable eventing and alerting capability. For example, the user 116 responds to the alert by selecting the Social Guide and chatting with his/her friend.
[00228] Figure 37 shows a search feature of "Television" channel 2720. For example, Figure 37 shows a search window 2756 by which the user 116 may enter the name of a TV show and the airing days and times for that TV show may be displayed at tablet device 2710. [00229] Figure 38 shows the electronic programming guide (EPG) feature of "Television" channel 2720. For example, the user may select the programming guide and the TV service provider appears in an EPG window 2758. The program listings for certain traditional TV channels for the current day and time slot are displayed. The user 116 may scroll to other pages of the programming guide.
[00230] Figure 39 shows that the user 116 may return to the Social Guide, which is displayed in social guide window 2754, and then decides to watch the TV show called The Mentalist.
[00231] Figure 40 shows that the user 116 is watching The Mentalist on TV 2740, while The Mentalist episode information is displayed on tablet device 2710. Figure 40 also shows an alert that another friend is also watching The Mentalist.
[00232] Referring again to Figures 27 through 40, "Television" channel 2720 demonstrates that an aspect of the invention is that PID application 112 may facilitate social interactions. That is, because of the system integration, PID application 112 knows what users are consuming what content and at what time.
[00233] Referring yet again to Figures 27 through 40, information sources 114 that support "Television" channel 2720 may include, but are not limited to, digital TV service providers, social networking providers, national and local advertising providers, and the like. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Television" channel 2720 may include, but are not limited to, content delivery server 632, stream sync server 636, analytics server 638, advertising server 640, transcoding server 642, and media server 644.
[00234] Referring to Figures 41 through 44, various screenshots of certain components and operations of an example of a "Home Security" channel 4300 of PID application 112 and a process of alerting a user is presented.
[00235] Figure 41 shows a screenshot of an example of a client GUI 4100 of PID application 112 that includes a set of touchlets 4110 in channel grid 318 of main viewing panel 310. Among the touchlets of channel grid 318 is a "Home Security" touchlet 4110J for presenting dynamic information of, interacting with, and/or launching the "Home Security" channel 4300 (shown in Figure 43). "Home Security" touchlet 4110J is shown in a "no alert present" state. In one example, in the "no alert present" state "Home Security" touchlet 4110J displays an image of a green shield. By contrast, Figure 42 shows "Home Security" touchlet 4110J in an "alert present" state. In one example, when the "alert present" state occurs, the color of the "Home Security" touchlet 4110J changes to red and displays information about the alerts, such as a "Motion Detected" message.
[00236] Figure 43 shows "Home Security" channel 4300 operating in a
substantially full-screen mode. "Home Security" channel 4300 provides a mechanism for monitoring and/or reporting information about the user 116's home security system. Main viewing panel 410 of "Home Security" channel 4300 may include, for example, a status window 4310 and one or more video feed windows 4312. In this example, four video feeds from four cameras in four respective locations in the user's home are presented. The video feed that is related to a particular alert condition may be color coded to stand out the viewer. For example, Figure 43 shows the backyard video feed highlighted in red, while the others are not highlighted in red. The status window 4310 shows in text form any alert conditions that are present as well as any useful control buttons. For example, a keypad button 4314 may be provided for launching a keypad window 4316, as shown in Figure 44. The keypad window 4316 provides a mechanism by which the user may interact remotely with his/her home security system via any user device 118. This is another example of channels of PID application 112 providing users the ability to take action upon receiving an alert. That is, PID application 112 provides actionable eventing and alerting capability. For example, by viewing the video feed, the user 116 may determine that the motion detected was caused by an animal in his/her backyard. Therefore, the user 116 may use keypad window 4316 to clear the alert condition.
[00237] Information sources 114 that support "Home Security" channel 4300 may include, for example, one or more home security services. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Home Security" channel 4300 may include, but are not limited to, content delivery server 632 and media server 644. [00238] Referring to Figure 45, tablet device 2710 of Figure 27 and certain components of an example of a "NetFlix" channel 4500 of PID application 112 is presented. In this example, "NetFlix" touchlet 4510 may be used for presenting dynamic information of, interacting with, and/or launching the "NetFlix" channel 4500. In this example, "NetFlix" channel 4500 is designed simply to access NetFlix via its URL address (https://www.netflix.com/) on the Internet, then simply wrap the content that is returned in a web browser, and then present the content on the display of tablet device 2710 (i.e., a user device 118). The user may interact with the NetFlix web content as if interacting using any computer.
[00239] The use of "NetFlix" channel 4500 is an example of the user taking advantage of the single login (or universal login) capabilities of information delivery system 100. Outside of the PID application 112 environment, a user would be asked to login to the NetFlix website. However, in the PID application 112 environment, the login operation is performed automatically by the identity subsystem 660, with no user actions.
[00240] Information sources 114 that support "NetFlix" channel 4500 may include, for example, the NetFlix web service. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112.
Additionally, the servers of PID application 112 at application server 110 that support "NetFlix" channel 4500 may include, but are not limited to, content delivery server 632, stream sync server 636, advertising server 640, and a media server 644.
[00241] Referring to Figures 46 and 47, screenshots of certain components of an example of a "Remote Healthcare" channel 4600 of PID application 112 is presented. Figures 46 and 47 show "Remote Healthcare" channel 4600 operating in a
substantially full-screen mode. A "Remote Healthcare" touchlet 4610 is provided for presenting dynamic information of, interacting with, and/or launching "Remote Healthcare" channel 4600. "Remote Healthcare" channel 4600 provides a video conferencing service between any entities related to healthcare, such as, but not limited to, patients, patients' family members, doctors, nurses, pharmacists, and the like.
[00242] Main viewing panel 410 of "Remote Healthcare" channel 4600 may include, for example, a video feed window 4612, a health questions window 4614, and a health overview window 4616. Video feed window 4612 may display a video feed of any persons, for example, participating in a medical consultation session. For example, Figure 46 shows a video feed of the patient only, while Figure 47 shows both the patient and the doctor are conferenced in. In this example, the patient is one user 116 and the doctor is another user 116 of information delivery system 100.
[00243] Health questions window 4614 may contain a questionnaire. The patient may interact with the questionnaire, thereby providing important medical information for those joining the medical consultation session. Additionally, health overview window 4616 may provide various current, historical and trend sensor information related to the patient health (e.g., sensor data that is returned from certain devices that are used by the patent). One example is a USB-enabled blood pressure device. In this example, the patient's blood pressure, pulse rate, and oxygen levels are reported in health overview window 4616.
[00244] Via the video feed and audio feed capabilities of "Remote Healthcare" channel 4600, a patient may receive advice from his/her healthcare providers without an actual visit to the healthcare provider's office. Additionally, family members of the patient may also participate in the session remotely, again avoiding travel. As a result of the medical consultation using "Remote Healthcare" channel 4600, the doctor may wish to prescribe certain medication. Accordingly, a channel of PID application 112 for managing a patient's treatment regimen is described with reference to Figure 50.
[00245] Referring to Figure 48, screenshots of certain components of an example of a "My Medicine Cabinet" channel 4800 of PID application 112 is presented.
Figure 48 shows "My Medicine Cabinet" channel 4800 operating in a substantially full-screen mode. A "My Medicine Cabinet" touchlet 4810 is provided for presenting dynamic information of, interacting with, and/or launching "My Medicine Cabinet" channel 4800. "My Medicine Cabinet" channel 4800 provides a mechanism for managing a treatment regimen of a patient and is suitable for use by, for example, patients, patients' family members, doctors, nurses, pharmacists, and the like.
[00246] Main viewing panel 410 of "My Medicine Cabinet" channel 4800 may include, for example, a treatment regimen window 4812 and a calendar window 4814. Treatment regimen window 4812 displays, for example, a daily view of any medications that have been prescribed to a certain user 116 and dosage information. Alerts may be generated base on the dosage information (e.g., as to when a patent is due to take a certain medication). Calendar window 4814 may display, for example, a monthly view of any medications that have been prescribed to a certain user 116. Alerts may be generated base on this information (e.g., as to when a certain prescription needs to be refilled).
[00247] Information sources 114 that support "Remote Healthcare" channel 4600 and/or "My Medicine Cabinet" channel 4800 may include any healthcare service provider databases, where the healthcare service providers may be, for example, doctors, hospitals, pharmaceutical companies, pharmacies, and the like. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Remote Healthcare" channel 4600 and/or "My Medicine Cabinet" channel 4800 may include, but are not limited to, content delivery server 632, collaboration media server 634, analytics server 638, and a media server 644.
[00248] Referring to Figure 49, screenshots of certain components of an example of an "MS Word" channel 4900 of PID application 112 is presented. Figure 49 shows "MS Word" channel 4900 operating in a substantially full-screen mode. A "MS Word" touchlet 4910 is provided for presenting dynamic information of, interacting with, and/or launching "MS Word" channel 4900. "MS Word" channel 4900 provides a mechanism for processing MS Word documents to users 116.
[00249] Main viewing panel 410 of "MS Word" channel 4900 may include, for example, a viewing/editing window 4912, in which a user 116 may open, view, and/or edit MS Word documents. "MS Word" channel 4900 is an example of accessing an application that may already be installed and running on a user device 118. For example, "MS Word" channel 4900 may launch the local MS Word application running as a native application on a laptop or desktop computer and then present the Word document to the user 116.
[00250] Referring to Figure 50, screenshots of certain components of an example of an "Email" channel 5000 of PID application 112 is presented. Figure 50 shows "Email" channel 5000 operating in a substantially full-screen mode. An "Email" touchlet 5010 is provided for presenting dynamic information of, interacting with, and/or launching "Email" channel 5000. "Email" channel 5000 provides an email service to the user 116.
[00251] Main viewing panel 410 of "Email" channel 5000 may include an inbox window 5012 and a folders window 5014. The inbox window 5012 displays emails in the user's inbox. Folders window 5014 may display various email folders including the user's address book. Figure 50 shows that the information about the sender of the email currently being viewed may be displayed, including a photo.
[00252] Information sources 114 that support "Email" channel 5000 may include at least one email provider or a combination of multiple email providers. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "Email" channel 5000 may include, but are not limited to, content delivery server 632, analytics server 638, and media server 644.
[00253] Referring to Figure 51, screenshots of certain components of an example of a "News Reader" channel 5100 of PID application 112 is presented. Figure 51 shows "News Reader" channel 5100 operating in a substantially full-screen mode. A "News Reader" touchlet 5110 is provided for presenting dynamic information of, interacting with, and/or launching "News Reader" channel 5100. "News Reader" channel 5100 provides a news presentation service to users 116.
[00254] Main viewing panel 410 of "News Reader" channel 5100 may include, for example, a subscriptions window 5112 and a news story window 5114. Subscriptions window 5112 may display, for example, folders of any news feeds to which the user 116 is subscribed. News story window 5114 may display, for example, any news content of the day. Alerts may be set to notify the user, for example, when any subscriptions are due to expire. Upon receiving such an alert, "News Reader" channel 5100 may provide mechanism by which the user 1 16 may renew subscriptions. This is another example of channels of PID application 112 providing users the ability to take action upon receiving an alert. That is, PID application 112 provides actionable eventing and alerting capability. [00255] The use of "News Reader" channel 5100 may be an example of the user taking advantage of the single login (or universal login) capabilities of information delivery system 100. Outside of the PID application 112 environment, a user would be asked to login to the news service provider. However, in the PID application 112 environment, the login operation is performed automatically by the identity subsystem 660, with no user actions.
[00256] Information sources 114 that support "News Reader" channel 5100 may include, for example, any news web service. Any information sources 114 may be accessed through integrated services and applications layer 614 of PID application 112. Additionally, the servers of PID application 112 at application server 110 that support "News Reader" channel 5100 may include, but are not limited to, content delivery server 632, stream sync server 636, analytics server 638, advertising server 640, and a media server 644.
[00257] NON-LIMITING EXAMPLES OF ENTERPRISE APPLICATIONS
[00258] For the purpose of illustration, Figures 52 through 72 describe non- limiting examples of channel grids 318 and channels 200 that may be suitable for enterprise use (e.g., corporate and business environments and/or across business ecosystems, such as supplier and contractor networks). However, these examples are not limited to enterprise use only. The channels described in Figures 52 through 72 may also be suitable for consumer and/or other applications. A certain enterprise may provide a suite of channel grids 318 and channels 200 that may be useful for performing any tasks related to the enterprise. In one example, the suite of channels 200 may be arranged in a suite of channel grids 318 in which each channel grid 318 includes a unique set of related touchlets 316 for accessing the underlying channels 200. The availability and/or functionality of the channels 200 and/or touchlets 316 may vary based on groups, functions, roles, tasks and/or individuals in the enterprise.
[00259] Currently, the data associated with an enterprise may originate from legacy systems. Examples of legacy applications may include, but are not limited to Human Resource Management (HRM), Enterprise Resource Management (ERP), Product Life Cycle Management (PLM), Customer Relationship Management (CRM) systems and tools. However, these tools and systems are optimized for certain corporate uses and to serve internal corporate reporting needs and often work poorly for management decision making purposes. These legacy tools may work well for generating monthly corporate reports, but may not work well for performing real-time analysis for decision makers. For example in managing customer sales accounts, information may be required in real-time from the ERP, PLM and CRM systems. Additionally, useful information may be available from legacy systems, but may be very difficult to access and present in a way that is meaningful to the user to understand and take action on. As an example a sales account manager looking for a global weekly sales estimate, may spend a lot of time searching for customer sales information across different corporate systems instead of acting on the information and visiting customers who sales are trending downward. Further, there is typically more information available than a user can easily find, interpret, and organize in a meaningful way.
[00260] Therefore, an aspect of the invention is that PID application 112 of information delivery system 100 may be used in combination with legacy tools that are deployed to process data in the legacy enterprise environment. In this way, certain channels 200 may be created to provide user-centric content and insights in the enterprise environment. That is, the channels 200 may provide content and insights that are tailored to the needs of users 116, by presenting content meaningful to the user. Additionally, PID application 112 of information delivery system 100 may be used to extract, aggregate or consolidate legacy data across multiple legacy systems and then organize and present the data in a meaningful way via a channel 200.
[00261] Enterprises may have analytic teams that produce useful analytical reports from legacy systems, but information available via these analytical reports may be very detailed, for a narrow audience, difficult to interpret, and may be out of date by the time the data is accessed. Therefore, an aspect of the invention is that PID application 112 of information delivery system 100 allows data to be readily consumed, with insights and with narrow windows, and allows users 116 to take rapid action, thereby adding value to this data. The system also allows for the user to interrogate data drawing further insights into the enterprise.
[00262] Referring to Figure 52, a screenshot of an example of an enterprise client GUI 5200 is presented that includes an example of a login window. In this example, the taskbar 312 of enterprise client GUI 5200 may include a company name field 313. In one example, the company name field 313 is populated with "PQR Corporation." In the corporate and/or business environment, users 116 may be, for example, employees, contractors, suppliers, regulators, government officials, and/or any other individuals authorized to access enterprise client GUI 5200. In order to gain access to the system, a user login window 5210 may be presented in main viewing panel 310 by which the user may enter his/her username and password. Once the user and and/or the device is authenticated, a suite of channels and/or channel grids may be presented to the user 116. Examples of channel grids that may be associated with an enterprise are shown in Figures 53 and 54.
[00263] Referring to Figures 53 and 54, screenshots of enterprise client GUI 5200 showing two example channel grids that may be related to the enterprise are presented. For example, Figure 53 shows a channel grid 318a that is displayed when the user 116 selects a channel grid icon 324a of the navigation bar 314. Figure 54 shows a channel grid 318b that is displayed when the user 116 selects a channel grid icon 324b of the navigation bar 314. Channel grid 318a of Figure 53 is used to display a first set of touchlets 316 (e.g., touchlets 316A through 316L) that are associated with a first set of channels 200 (not shown). Likewise, channel grid 318b of Figure 55 is used to display a second set of touchlets 316 (e.g., touchlets 316M through 316X) that are associated with a second set of channels 200 (not shown). In one example, channel grid 318a of Figure 53 may be used to display a set of touchlets 316 that are related to enterprise as a whole, such as to PQR Corporation as a whole. By contrast, channel grid 318b of Figure 54 may be used to display a set of touchlets 316 that are related to a certain division, group and/or sales account of the enterprise, such as a certain division, group and/or sales account of PQR Corporation.
[00264] Referring now to Figure 53, by way of example channel grid 318a may include an "Email" touchlet 316A, a "Personal Calendar" touchlet 316B, a "My Company in the Press" touchlet 316C, a "News Reader" touchlet 316D, a "New Technologies" touchlet 316E, a "What is Selling" touchlet 316F, an "Analytics Tool Set" touchlet 316G, a "myNet" touchlet 316H, a "Channel Catalog" touchlet 3161, a "My HR" touchlet 316 J, a "My Performance" touchlet 316K, and a "Currency Converter" touchlet 316L.
[00265] "Email" touchlet 316A of channel grid 318a may be associated with an "Email" channel, such as, but not limited to, "Email" channel 5000 of Figure 50. The "Email" channel may be the users' corporate email application or a consolidation of various user email accounts. The "Email" channel may include additional features such as connecting an email address to an address book entry with a picture of the contact.
[00266] "Personal Calendar" touchlet 316B of channel grid 318a may be associated with a "Personal Calendar" channel, such as, but not limited to, a "Personal Calendar" channel 5500 of Figure 55. The "Personal Calendar" channel may, for example, provide a listing of all commitments, meetings, to do lists and the like. "Personal Calendar" channel may use active alerts to notify the user of upcoming events, such as a meeting.
[00267] "My Company in the Press" touchlet 316C of channel grid 318a may be associated with a "My Company in the Press" channel (not shown). The "My Company in the Press" channel may provide, for example, live videos; streaming news feeds; access to news archive by hour, day, week, and/or month; access to YouTube; and any combinations thereof. Examples of content on the "My Company in the Press" channel may include, but are not limited to, news interviews, company advertisements, product reviews, and annual shareholder meetings.
[00268] "News Reader" touchlet 316D of channel grid 318a may be associated with a "News Reader" channel, such as, but not limited to, the "News Reader" channel 5100 of Figure 51. For example, the "News Reader" channel 5100 may provide company RSS feeds (e.g., PQR Corporation RSS feeds) from multiple internal and external sources, such as from an internal Twitter account and the New York Times.
[00269] "New Technologies" touchlet 316E of channel grid 318a may be associated with a "New Technologies" channel (not shown). For example, the "New Technologies" channel may provide access to a forum for company product announcements, a recap of latest insights from the company research and
development group, thought provoking concepts in the industry, promotional and training video, and the like.
[00270] "What is Selling" touchlet 316F of channel grid 318a may be associated with a "What is Selling" channel (not shown). For example, the "What is Selling" channel may provide information about certain products, for example, product orders by hour, day, week, month, and/or quarter, information about client wins or loses, information about top sales managers, sales recognitions, and the like.
[00271] "Analytics Tool Set" touchlet 316G of channel grid 318a may be associated with an "Analytics Tool Set" channel (not shown). For example, the "Analytics Tool Set" channel may provide a set of Statistical Analysis Software (SAS) products and/or related analytic products for users to analyze specific trends in data sets, access to business analytics services, drill down capability, report generation and the like.
[00272] "myNet" touchlet 316H of channel grid 318a may be associated with a "myNet" channel, such as, but not limited to, a "myNet" channel 5600 of Figure 56. For example, the "myNet" channel 5600 may provide a compilation of company- specific social sites (e.g., PQR Corporation-specific social sites). The "myNet" channel 5600 may provide simple tools to enable posting of a comment to multiple forums.
[00273] "Channel Catalog" touchlet 3161 of channel grid 318a may be associated with a channel application catalog, such as, but not limited to, channel application catalog 631 of Figure 12, a channel application catalog 6500 of Figure 65, and a channel application catalog 6700 of Figure 67. The channel application catalog is accessed to download certain channel grids and/or channels. The catalog may provide free and for pay channels. Channel application catalogs may be sensitive to a user's role and rights within the enterprise. More details about user roles and user groups in an enterprise are described with reference to Figures 62 through 67.
[00274] "My HR" touchlet 316 J of channel grid 318a may be associated with a "My HR" channel (not shown). For example, the "My HR" channel may provide access to all personal HR-related information, such as benefits, vacation time, savings account, required training, policies and procedures, and the like. The "My HR" channel has the capability to alert users to, for example, out of boundary conditions, such as expiring vacation or the need to take health and safety training. Also, the "My HR" channel may provide access to content based on user level and user identity. [00275] "My Performance" touchlet 316K of channel grid 318a may be associated with a "My Performance" channel (not shown). For example, the "My Performance" channel may provide a composite of all metrics (e.g., based on user level and user identity) that are translated into incentive compensation or related reward schema. Automatic alerts may be generated when HR-defmed thresholds for performance are missed and/or exceeded.
[00276] The "My HR" channel and the "My Performance" channel may be an example of using data associated with an enterprise that may originate from legacy systems, such as from a legacy HR system and ERP system, and then tailoring the data to present information to users 116 in a meaningful way that is of particular interest. For example, for each employee, the legacy HR system may provide information about each employee's department, region, level, position, role, and the like. Using information delivery system 100 of the present invention, this information may be loaded into the user profiles. Accordingly, information delivery system 100 may be used to create and assign roles and/or groups from the information of the legacy HR system. For example, HR functions may have a management group that writes performance reviews, a director group that approves the reviews, a senior management group that audits the reviews, and the like. In one example, a director will not be asked to approve a review until the manager completed the final review. The ERP system may provide information about the employee's performance (e.g. customer orders booked for the year) from the "My Performance" channel to information delivery system 100 of the present invention in order to assist the manager in creating the review.
[00277] "Currency Converter" touchlet 316L of channel grid 318a may be associated with a "Currency Converter" channel (not shown). For example, the "Currency Converter" channel may provide a real-time conversion calculator set, for example, by user identity, user location, user role, and the like. The "Currency Converter" channel may be optimized per the company finance department for metrics important to the user, such as sales by division, group, and/or employee. For example, the "Currency Converter" channel may provide internal company estimates for future sales in every country in which the company does business and in the currency most commonly used in the user's location. [00278] Referring now to Figure 54, by way of example channel grid 318b may include a "Stock Watch" touchlet 316M, an "Account Calendar" touchlet 316N, a "News Reader" touchlet 3160, a "myNet" touchlet 316P, a "Real-time Profit & Loss" touchlet 316Q, an "Account Bookings" touchlet 316R, a "Sales Pipeline" touchlet 316S, a "Personnel Locator" touchlet 316T, a "Channel Catalog" touchlet 316U, an "Open Room" touchlet 316V, a "Security Threat Trends" touchlet 316W, and a "Room Finder" touchlet 316X.
[00279] "Stock Watch" touchlet 316M of channel grid 318b may be associated with a "Stock Watch" channel, such as, but not limited to, "Stock Watch" channel 1400 of Figure 14. For example, the "Stock Watch" channel may be configurable to deliver competitive industry performance, such as balance sheet ratios or other suitable indicators of financial health. The "Stock Watch" channel may provide realtime quotes and capability to set thresholds with alerts.
[00280] "Account Calendar" touchlet 316N of channel grid 318b may be associated with an "Account Calendar" channel (not shown). The "Account
Calendar" channel may provide a sales account team calendar function that may be sales account-specific. The "Account Calendar" channel maybe used for tracking sales meetings, order entry deadlines, payment dates, quarterly close dates, any information that pertains to the sales account, and the like. Using the "Account Calendar" channel, the user may, for example, merge client sales demo events and trade show attendance dates into the "Account Calendar" channel, in order to build composite situational awareness for everything that is occurring in the sales account. The "Account Calendar" channel may provide alert mechanisms to push notifications when deadlines are approaching. The "Account Calendar" channel may also merge and/or combine with other channels. For example, the "Account Calendar" channel may merge and/or combine with the "Room Finder" channel in order to acquire information about sales meeting locations.
[00281] Similar to "News Reader" touchlet 316D of channel grid 318a, "News Reader" touchlet 3160 of channel grid 318b may be associated with a "News Reader" channel, such as, but not limited to, the "News Reader" channel 5100 of Figure 51. For example, this "News Reader" channel may be a company division-, group- and/or account-specific "News Reader" channel. This "News Reader" channel may provide, for example, specific news that is sortable by sales account, by location, and/or by any other important attributes. This "News Reader" channel may provide company division-, group- and/or account-specific news, external reports or internal intelligence insights on client events in the news.
[00282] "myNet" touchlet 316P of channel grid 318b may be associated with a "myNet" channel, such as, but not limited to, the "myNet" channel 5600 of Figure 56. For example, the "myNet" channel 5600 may provide a compilation of company, division, group and/or account-specific social sites (e.g., divisions of and/or groups within PQR Corporation). The "myNet" channel 5600 may provide simple tools to enable posting of a comment to multiple forums. The "myNet" channel 5600 may also provide the capability to set alerts (e.g., monitoring channel information for London office AND management change) to users.
[00283] "Real-time Profit & Loss" touchlet 316Q of channel grid 318b may be associated with a "Real-time Profit & Loss" channel (not shown) that is company division- and/or group-specific. For example, the "Real-time Profit & Loss" channel may be used to create a composite of actual performance, adjusted for currency, indicating net margin contribution in real time.
[00284] "Account Bookings" touchlet 316R of channel grid 318b may be associated with a "Account Bookings" channel (not shown). For example, the "Account Bookings" channel may be a company division-, group- and/or account- specific channel that provides composite sales bookings by category, such as hardware, software, and/or services. This "Account Bookings" channel may provide timelines of booking to shipment to payment. This "Account Bookings" channel may also be merged and/or combined with the "Currency Converter" channel to analyze net booking margin - alerts may be set to thresholds.
[00285] "Sales Pipeline" touchlet 316S of channel grid 318b may be associated with a "Sales Pipeline" channel, such as, but not limited to, a "Sales Pipeline" channel 5700 of Figure 57. For example, the "Sales Pipeline" channel may provide a forecast of total account revenue by month, probability, and category, such as hardware, software, and/or services. The "Sales Pipeline" channel may provide a mean to interrogate sales pipeline information, for example, if a user wanted to understand the composition of the hardware pipeline, an interrogation might launch the "Account Bookings" channel.
[00286] "Personnel Locator" touchlet 316T of channel grid 318b may be associated with a "Personnel Locator" channel (not shown). For example, the "Personnel Locator" channel may provide an account team and client locator function. That is, the "Personnel Locator" channel may provide a look-up utility for all company personnel associated with the client, with pictures and groupings. Additional information may also include assigned activities, deal prospects, current location, and the like. The "Personnel Locator" channel may provide a similar utility for client contacts with links to company counterparts. The "Personnel Locator" channel may provide the capability to link names and activate messaging services, such as email, SMS, and the like.
[00287] "Channel Catalog" touchlet 316U of channel grid 318b may be associated with a channel application catalog, such as, but not limited to, channel application catalog 631 of Figure 12, channel application catalog 6500 of Figure 65, and channel application catalog 6700 of Figure 67. Again, the channel application catalog is accessed to download certain channel grids and/or channels.
[00288] "Open Room" touchlet 316V of channel grid 318b may be associated with an "Open Room" channel, such as, but not limited to, an "Open Room" channel 5800 of Figure 58. For example, the "Open Room" channel may provide a mechanism for real-time collaboration and video conferencing. The "Open Room" channel may provide direct access to initiate a conference and provide relevant content. The "Open Room" channel may provide access to other channels to begin collaboration For example, the "Open Room" channel may provide assess to the "Sales Pipeline" channel or "Personal Calendar" channel to help facilitate collaboration.
[00289] "Security Threat Trends" touchlet 316W of channel grid 318b may be associated with a "Security Threat Trends" channel, such as, but not limited to, a "Security Threat Trends" channel 5900 of Figures 59, 60, and 61. For example, the "Security Threat Trends" channel may provide company intelligence service tools on security threats to the company, such as attempts to circumvent firewalls or unauthorized entry into a building facility. The "Security Threat Trends" channel may include an advanced set of utilities to set alerts relating to threats facing the company. The "Security Threat Trends" channel may be linked to, combined with, and/or merged into other channels, such as a "News Reader" channel to provide external information relating to threats facing the company including, for example, fire and power outage information.
[00290] "Room Finder" touchlet 316X of channel grid 318b may be associated with a "Room Finder" channel (not shown). For example, the "Room Finder" channel may provide a utility to input a sales meeting location or company campus location and find a meeting room. The "Room Finder" channel may include an access-enabled room scheduling tool to set up meetings or launch "Just-In-Time" workspace software applications that may be used to schedule meeting space appropriate for the requestor (e.g., by identity/level) and may send notification to others. The "Room Finder" channel may be used to generate a visual and/or audible map to the room location using the geo-location capability of, for example, the user's client device, such as their cell phone.
[00291] Referring to Figure 55, screenshots of certain components of an example of a "Personal Calendar" channel 5500 that is suitable for use in enterprise applications is presented. Figure 55 shows "Personal Calendar" channel 5500 operating in a substantially full-screen mode. A "Personal Calendar" touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching "Personal Calendar" channel 5500. The "Personal Calendar" channel may, for example, provide a listing of the user's commitments, meetings, and the like.
"Personal Calendar" channel may use active alerts to notify the user of upcoming events.
[00292] Main viewing panel 410 of "Personal Calendar" channel 5500 may include, for example, a daily view window 5512 and a monthly view window 5514. The daily view window 5512 may display, for example, a list of today's events. The monthly view window 5514 may display, for example, a full month's events in standard calendar form. Main viewing panel 410 of "Personal Calendar" channel 5500 may also include certain control buttons, such as, but not limited to, an "Events" button, a "Mail" button, an "Address Book" button, and a "Subscribe" button.
[00293] Referring to Figure 56, screenshots of certain components of an example of "myNet" channel 5600 that is suitable for use in enterprise applications is presented. Figure 56 shows "myNet" channel 5600 operating in a substantially fullscreen mode. A "myNet" touchlet 316P is provided for presenting dynamic information of, interacting with, and/or launching "myNet" channel 5600. The "myNet" channel 5600 may provide a compilation of certain social sites (e.g., company-specific, division-specific, group-specific, and/or account-specific social sites). The "myNet" channel 5600 may provide simple tools to enable posting of a commentary to multiple forums. The "myNet" channel 5600 may also provide the capability to send a variety of alert types, such as text driven alerts.
[00294] Main viewing panel 410 of "myNet" channel 5600 may include, for example, a friends window 5612 and a latest updates window 5614. The friends window 5612 may display, for example, a list of the contacts as well as their online status. The latest updates window 5614 may display, for example, one or more forums for posting comments. For example, latest updates window 5614 may include a Facebook session, a Twitter session, and a chronological log of the user's activities.
[00295] Referring to Figure 57, screenshots of certain components of an example of "Sales Pipeline" channel 5700 that is suitable for use in enterprise applications is presented. Figure 57 shows "Sales Pipeline" channel 5700 operating in a
substantially full-screen mode. A "Sales Pipeline" touchlet 316S is provided for presenting dynamic information of, interacting with, and/or launching "Sales
Pipeline" channel 5700. The "Sales Pipeline" channel may provide a forecast of total account revenue by month, probability, and category, such as hardware, software, and/or services. In addition, other sales metrics maybe tracked. For example, total sales opportunity, total proposals, and total contracts may be tracked. In interacting with the "Sales Pipeline" channel the user may interrogate various forecasts and metrics to obtain more information and context about the information. For example, in interrogating the sales contracts metrics the "Account Bookings" channel may be launched, combined, and/or merged with the "Sales Pipeline" channel in order to allow the user to understand exactly what accounts have booked contracts.
[00296] Main viewing panel 410 of "Sales Pipeline" channel 5700 may include, for example, a selection window 5712 and a sales forecast window 5714. The selection window 5712 allows the user to select any month of the year. Once the user selects a certain month, the selected month's sales forecast information is displayed in sales forecast window 5714. Main viewing panel 410 of "Sales Pipeline" channel 5700 may also include certain control buttons, such as, but not limited to, a "Settings" button, as well as a search tool.
[00297] Referring to Figure 58, screenshots of certain components of an example of an "Open Room" channel 5800 that is suitable for use in enterprise applications is presented. Figure 58 shows "Open Room" channel 5800 operating in a substantially full-screen mode. An "Open Room" touchlet 316V is provided for presenting dynamic information of, interacting with, and/or launching "Open Room" channel 5800. "Open Room" channel 5800 provides a video and/or audio conferencing service to users 116.
[00298] Main viewing panel 410 of "Open Room" channel 5800 may include, for example, an attendees window 5812 and a video feed window 5814. The attendees window 5812 displays a list of any attendees that have joined the video conference and a chat feature. The video feed window 5814 displays streaming video or periodic camera shots of any attendees that have joined the video conference. Main viewing panel 410 of "Open Room" channel 5800 may also include certain control buttons for, for example, sharing documents, passing control of the video conference, and the like. Mini-touchlets 416 may include touchlets that are specifically relevant to the video conference and/or mini-touchlets that help aid collaboration of the team members. For example, a certain "Open Room" mini-touchlet 416 may be used to book a meeting room for the next team meeting. Mini-touchlets 416 may include touchlets that provide information relevant to the meeting topic. In providing information relevant to the meeting, the "Personal Calendar" channel of the meeting organizer may be interrogated to determine the subject of the meeting. If, for example, the meeting is a monthly sales meeting, one mini-touchlet 416 may be a "Sales Pipeline" mini-touchlet.
[00299] Referring to Figures 59, 60, and 61, screenshots of certain components of an example of the "Security Threat Trends" channel 5900 that is suitable for use in enterprise applications is presented. Figures 59, 60, and 61 show "Security Threat Trends" channel 5900 operating in a substantially full-screen mode. A "Security Threat Trends" touchlet 316W is provided for presenting dynamic information of, interacting with, and/or launching "Security Threat Trends" channel 5900. The "Security Threat Trends" channel may provide company intelligence on threats facing the company from internal and external sources. For example threats to computer network security.
[00300] Main viewing panel 410 of "Security Threat Trends" channel 5900 may include, for example, a data window 5912 and a trends window 5914. The data window 5912 displays, for example, certain information about company host computer resources. Trends window 5914 includes, for example, three tabs: a "Threat Management Trend" tab, a "Vulnerability Exposure Trend" tab, and a "Security Intelligence Trend" tab. Figure 59 shows information corresponding to the "Threat Management Trend" tab. Figure 60 shows information corresponding to the
"Vulnerability Exposure Trend" tab. Figure 61 shows information corresponding to the "Security Intelligence Trend" tab. Main viewing panel 410 of "Security Threat Trends" channel 5900 may also include certain control buttons, such as, but not limited to, a "Settings" button, as well as a search tool.
[00301] Referring to Figure 62, a block diagram of an example of an enterprise user hierarchy 6200 is presented that shows individual users, roles assigned to users, and/or users assigned to groups within an enterprise. The implementation of individual users, roles, and/or groups in information delivery system 100 is not limited to enterprise applications only. Individual users, roles, and/or groups are likewise applicable to consumer applications.
[00302] Users 116 in, for example, a corporate environment may be assigned to groups based, for example, on their titles, positions, levels, and/or authority in a company. Users 116 may then be assigned roles within their assigned group.
[00303] In one example, enterprise user hierarchy 6200 includes one or more users 116 that are assigned to a directors group 6210. In this example, each user 116 may have the title of director within the enterprise. However, among the users 116 in the directors group 6210, a certain user 116 (i.e., director) in the directors group 6210 may have the role of "System Administrator," while another user 116 in the directors group 6210 may have the role of "Emergency Coordinator."
[00304] In another example, enterprise user hierarchy 6200 includes one or more users 116 that are assigned to a managers group 6212. In this example, each user 116 may have the title of manager within the enterprise. However, among the users 116 in the managers group 6212, a certain user 116 (i.e., manager) in the managers group 6212 may have the role of "Performance Appraiser," while another user 116 in the managers group 6212 may have the role of "Threat Case Manager."
[00305] In yet another example, enterprise user hierarchy 6200 includes one or more users 116 that are assigned to an analysts group 6214. In this example, each user 116 may have the title of analyst within the enterprise. However, among the users 116 in the analysts group 6214, a certain user 116 (i.e., analyst) in the analysts group 6214 may have the role of "Senior Analyst," while another user 116 in the analysts group 6214 may have the role of "Associate Analyst."
[00306] Outside of the aforementioned groups and/or roles, enterprise user hierarchy 6200 may also include one or more individuals 6216, which may be any users 116 that are not necessarily assigned to a group. While not assigned to a group, each individual 6216 may be assigned a role based on their title, position, level, and/or authority in the company. For example, one individual 6216 may be the company CEO, which is his/her assigned role. Another individual 6216 may be the company CFO, which is his/her assigned role.
[00307] The content that is available to any user 116 may be group- and/or role- dependent. That is, the authorizations and/or permissions with respect to accessing and/or using channels, channel grids, and/or with respect content presented by the channels and/or channel grids may be dependent on the user's group and/or role within the enterprise. By way of example, let's apply enterprise user hierarchy 6200 of Figure 62 to an information security enterprise, such as, but not limited to, corporate security office that is responsible for safeguarding sensitive corporate information. In one example, the process of safeguarding sensitive information may include an insider threat avoidance system that is implemented using information delivery system 100. In this example, in order to detect and prevent any breach of information security, information delivery system 100 is used to monitor employee (or any insider, such as a contractor, supplier, regulator, and/or project manager) activity with respect to unauthorized access, use, disclosure, disruption, modification, perusal, inspection, recording, or destruction of sensitive information. If a potential threat is indentified, a case may be opened to manage the investigation of the threat using "Security Threat Trends" channel 5900.
[00308] In the example of the information security enterprise, users 116 (i.e., directors) in the directors group 6210 may have the highest authorization level with respect to access and/or use of certain channels and/or content and/or with respect to permissions to perform certain actions. That is, users 116 (i.e., directors) in the directors group 6210 have full authority to perform any task and/or function. For example, a particular user 116 (i.e., director) in the directors group 6210 may have the role of "System Administrator," who has the authority to add, update, and delete users 116 and/or cases from the insider threat avoidance system, which is implemented using information delivery system 100. Under the control of the "System
Administrator" the authorization status of individuals 6216 may be assigned uniquely depending upon their respective roles in the enterprise (e.g., CEO, CFO, etc).
[00309] In the information security enterprise, users 116 (i.e., managers) in the managers group 6212 may have medium level authorization with respect to access and/or use of certain channels and/or content and/or with respect to permissions to perform certain actions. Generally, users 116 in the managers group 6212 have create, update, and read authority; and also have business process control. For example, a particular user 116 (i.e., manager) in the managers group 6212 may have the role of "Threat Case Manager," who has the authority to create a case, view a case, update a case, and perform an approval step, which may promote the case to the next step in the workflow. However, the role of "Threat Case Manager" in the managers group 6212 does not allow adding and deleting users and/or cases.
[00310] In the information security enterprise, users 116 (i.e., analysts) in the analysts group 6214 may have the lowest level authorization with respect to access and/or use of certain channels and/or content and/or with respect to permissions to perform certain action. For example, a particular user 116 (i.e., analyst) in the analysts group 6214 may have the role of "Senior Analyst," who has the authority to create a case, view a case, and update a case. However, the role of "Senior Analyst" in the analysts group 6214 does not allow business process control. For example, the "Senior Analyst" in the analysts group 6214 may not perform the approval step and promote the case to the next step in the workflow. [00311] Examples of group- and/or role-dependent content and/or actions with respect to an insider threat avoidance system, which is implemented using information delivery system 100, are described with reference to Figures 63 through 72.
[00312] Referring to Figure 63, a screenshot of an analyst client GUI 6300 is presented that includes an example of a channel grid for users 116 (i.e., analysts) in the analysts group 6214 of the enterprise. For example, when an analyst logs into the system, a channel grid 318c is displayed on the user device 118 of the analyst. The content of channel grid 318c is role-specific with respect to users 116 (i.e., analysts) in the analysts group 6214. In this example, channel grid 318c includes three touchlets 316 for which analysts are authorized. For example, channel grid 318c includes an "Alerts" touchlet 316A, a "Personnel Activity" touchlet 316B, and a "Reports" touchlet 316C.
[00313] "Alerts" touchlet 316A of channel grid 318c may be associated with an "Alerts" channel, such as, but not limited to, an "Alerts" channel 6800 of Figure 68. For example, the "Alerts" channel allows authorized analysts, managers, and/or directors to be alerted to and/or view new cases for individuals who may have performed potentially suspicious activities.
[00314] "Personnel Activity" touchlet 316B of channel grid 318c may be associated with a "Personnel Activity" channel, such as, but not limited to, a
"Personnel Activity" channel 6900 of Figure 69. For example, the "Personnel Activity" channel allows authorized analysts, managers, and/or directors to view activities of personnel inside the enterprise and investigate their activities in relation to the alert and case.
[00315] "Reports" touchlet 316C of channel grid 318c may be associated with a "Reports" channel, such as, but not limited to, a "Reports" channel 7000 of Figure 70. For example, the "Reports" channel allows authorized analysts, managers, and/or directors to generate analytics reports on specific activities data. The "Reports" channel may access, merge, and/or combine with the "Personnel Activity" channel to facilitate the production of a report. For example the "Personnel Activity" channel may provide a computer log of a user's system activity that may be included in the analytics section of a report. [00316] Referring to Figure 64, a screenshot of a manager client GUI 6400 is presented that includes an example of a channel grid for users 116 (i.e., managers) in the managers group 6212 of the enterprise. For example, when a manager logs into the system, a channel grid 318d is displayed on the user device 118 of the manager. The content of channel grid 318d is role-specific with respect to users 116 (i.e., managers) in the managers group 6212. In this example, channel grid 318d includes four touchlets 316 for which managers are authorized. For example, channel grid 318d includes the "Alerts" touchlet 316A, "Personnel Activity" touchlet 316B, and "Reports" touchlet 316C that are described in Figure 63 with respect to analysts. However, managers are further authorized to receive a "Catalog" touchlet 316D. Whereas analysts are not authorized to receive "Catalog" touchlet 316D (see channel grid 318c of Figure 63).
[00317] "Catalog" touchlet 316D of channel grid 318d may be associated with a channel application catalog, such as, but not limited to, a channel application catalog 6500 of Figure 65. The channel application catalog allows users to configure the channels that are displayed on their channel grids. Referring to Figure 65, a screenshot of an example of the channel application catalog 6500 is presented that includes content that corresponds to users 116 (i.e., managers) in the managers group 6212 of the enterprise. In this example, the content of channel application catalog 6500 is role-specific with respect to managers. That is, only channels for which managers are authorized are available in channel application catalog 6500. In this example, shown in a channel catalog window 6512, managers are authorized to receive the "Alerts" channel, "Personnel Activity" channel, "Reports" channel, and additional manager level channels from "Catalog" channel.
[00318] Referring to Figure 66, a screenshot of a director client GUI 6600 is presented that includes an example of a channel grid for users 116 (i.e., directors) in the directors group 6210 of the enterprise. For example, when a director logs into the system, a channel grid 318e is displayed on the user device 118 of the director. The content of channel grid 318e is role-specific with respect to users 116 (i.e., directors) in the directors group 6210. In this example, channel grid 318e includes six touchlets 316 for which directors are authorized. For example, channel grid 318e includes the "Alerts" touchlet 316A, "Personnel Activity" touchlet 316B, and "Reports" touchlet 316C that are described in Figure 63 with respect to analysts. Channel grid 318e also includes the "Catalog" touchlet 316D that is described in Figure 64 with respect to managers. However, directors are further authorized to receive a "User
Administration" touchlet 316E and a "Catalog Administration" touchlet 316F.
Whereas analysts and managers are not authorized to receive "User Administration" touchlet 316E and "Catalog Administration" touchlet 316F (see channel grid 318c of Figure 63 and channel grid 318d of Figure 64).
[00319] "User Administration" touchlet 316E of channel grid 318e may be associated with a "User Administration" channel, such as, but not limited to, a "User Administration" channel 7100 of Figure 71. For example, a particular user 116 (i.e., director) in the directors group 6210 may have the role of "System Administrator," who has the authority to set roles and groups for the system users.
[00320] "Catalog Administration" touchlet 316F of channel grid 318e may be associated with a "Catalog Administration" channel, such as, but not limited to, a "Catalog Administration" channel 7200 of Figure 72. For example, the "Catalog Administration" channel allows the "System Administrator" to manage the catalog content as it relates to roles and groups of the system users.
[00321] Referring to Figure 67, a screenshot of an example of a channel application catalog 6700 is presented that includes content that corresponds to users 116 (i.e., directors) in the directors group 6210 of the enterprise. In this example, the content of channel application catalog 6700 is role-specific with respect to directors. That is, only channels for which directors are authorized are available in channel application catalog 6700. In this example, shown in a channel catalog window 6712, directors are authorized to receive the "Alerts" channel, "Personnel Activity" channel, "Reports" channel, "Catalog" channel, "User Administration" channel, and "Catalog Administration" channel.
[00322] Referring to Figure 68, screenshots of certain components of an example of the "Alerts" channel 6800 that is suitable for use in enterprise applications is presented. Figure 68 shows "Alerts" channel 6800 operating in a substantially fullscreen mode. An "Alerts" touchlet 316A is provided for presenting dynamic information of, interacting with, and/or launching "Alerts" channel 6800. The "Alerts" channel 6800 allows authorized users to view new cases for individuals who have performed potentially suspicious activities. Certain advanced information products that provide analytic capabilities may be operating behind "Alerts" channel 6800 for flagging individuals who may be performing potentially suspicious activities. The data upon which analysis is performed may be obtained from legacy applications, such as, but not limited to, HRM, ERP, PLM, CRM systems and tools, any other management tools, and the like. For example, if a threat was detected concerning theft of customer information, the CRM legacy application may provide information to investigate the theft.
[00323] Main viewing panel 410 of "Alerts" channel 6800 may include, for example, an alerts window 6812 and an alerts detail window 6814. The alerts window 6812 displays a list of potential alerts to potentially be investigated. Once the user selects a certain alert at alerts window 6812, the details of the selected alert are displayed in alerts detail window 6814. Main viewing panel 410 of "Alerts" channel 6800 may also include certain control buttons, such as, but not limited to, a "Delete" button and an "Add New" button. An "Approved" dropdown menu may also be provided.
[00324] Referring to Figure 69, screenshots of certain components of an example of the "Personnel Activity" channel 6900 that is suitable for use in enterprise applications is presented. Figure 69 shows "Personnel Activity" channel 6900 operating in a substantially full-screen mode. A "Personnel Activity" touchlet 316B is provided for presenting dynamic information of, interacting with, and/or launching "Personnel Activity" channel 6900. The "Personnel Activity" channel 6900 allows authorized users to view activities of personnel inside the enterprise.
[00325] Main viewing panel 410 of "Personnel Activity" channel 6900 may include, for example, a personnel activity window 6912 and an activity details window 6914. The personnel activity window 6912 displays a list of personnel activities to potentially be investigated. Once the user selects a certain activity at personnel activity window 6912, the details of the selected activity is displayed in activity details window 6914. Main viewing panel 410 of "Personnel Activity" channel 6900 may also include an "Analyzing" dropdown menu. The activities data from which analysis is performed may be obtained from legacy applications, such as, but not limited to, HRM, ERP, PLM, CRM systems and tools, any other management tools, and the like.
[00326] Referring to Figure 70, screenshots of certain components of an example of a "Reports" channel 7000 that is suitable for use in enterprise applications is presented. Figure 70 shows "Reports" channel 7000 operating in a substantially fullscreen mode. A "Reports" touchlet 316C is provided for presenting dynamic information of, interacting with, and/or launching "Reports" channel 7000. The "Reports" channel 7000 allows authorized users to generate analytics reports on specific activities data.
[00327] Main viewing panel 410 of "Reports" channel 7000 may include, for example, a report types window 7012 and an activities window 7014. The report types window 7012 displays a list of different types of reports. Once the user selects a certain report type at report types window 7012, the activities related to the selected report type are displayed in activities window 7014.
[00328] Referring to Figure 71, screenshots of certain components of an example of the "User Administration" channel 7100 that is suitable for use in enterprise applications is presented. Figure 71 shows "User Administration" channel 7100 operating in a substantially full-screen mode. A "User Administration" touchlet 316E is provided for presenting dynamic information of, interacting with, and/or launching "User Administration" channel 7100. The "User Administration" channel 7100 allows, for example, the "System Administrator" of the directors group 6210 to set roles and groups for the system users.
[00329] Main viewing panel 410 of "User Administration" channel 7100 may include, for example, a user details window 7112. The user details window 7112 provides one or more information entry fields by which the "System Administrator" may enter information about a certain user 116 in a certain group. For example, user details window 7112 may be used to set the group and/or role of a certain user 116. Predetermined groups and/or roles may have certain permissions and/or parameters already defined.
[00330] Referring to Figure 72, screenshots of certain components of an example of a "Catalog Administration" channel 7200 that is suitable for use in enterprise applications is presented. Figure 72 shows "Catalog Administration" channel 7200 operating in a substantially full-screen mode. A "Catalog Administration" touchlet 316F is provided for presenting dynamic information of, interacting with, and/or launching "Catalog Administration" channel 7200. The "Catalog Administration" channel 7200 allows the "System Administrator" in the directors group 6210 to manage the catalog content as it relates to roles and groups of the system users.
[00331] Main viewing panel 410 of "Catalog Administration" channel 7200 may include, for example, a channel details window 7212. The channel details window 7212 provides one or more information entry fields by which, for example, the "System Administrator" in the directors group 6210 may enter information about a certain channel applications, such as, but not limited to, "Alerts" channel 6800, "Personnel Activity" channel 6900, "Reports" channel 7000, and "User
Administration" channel 7100. Additionally, channel details window 7212 may be used to manage the catalog content as it relates to roles and groups of the system users. For example, channel details window 7212 may be used to set "User
Administration" channel 7100 to be used by the "System Administrator" in the directors group 6210, but not by users 116 in the managers group 6212 and users 116 in the analysts group 6214.
[00332] Referring again to Figures 52 through 72, while non-limiting examples of channels 200 that may be suitable for enterprise use have been described largely in the context of processing and presenting role-based content, the present invention is not limited to role-based content only. Information delivery system 100 may be used to process and present role-based content, location-based content, time-based content, activity-based content, behavior-based content, and any combinations thereof. That is, information delivery system 100 provides the framework by which a developer can create any useful information products, such as role-based product, location-based products, time-based products, activity-based products, behavior-based products, and any combinations thereof. Again, bringing to the user the information and experience that is most important to them.
[00333] Additionally, information delivery system 100 may be used to push scheduled events to users 116. For example, in the enterprise environment, a notification may be sent to users 116 that it is time for their annual training session. Similarly, information delivery system 100 may push information to users 116 about any corporate activity, event, or news.
[00334] SYSTEM ARCHITECTURE SUPPORTING A WEB PRESENTATION FRAMEWORK
[00335] For the purpose of illustration, Figures 73 through 78 describe the system architecture of information delivery system 100 of the present invention implemented for supporting a web presentation framework. In one example, the web presentation framework is implemented using HTML5. HTML5 is a language for structuring and presenting content for the World Wide Web, a core technology of the Internet. It is the latest revision of the HTML standard and currently remains under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (e.g., web browsers, parsers, etc.). As compared to previous versions, HTML5 adds many new syntactical features. These include the <video>, <audio>, and <canvas> elements (or tags), as well as the integration of Scalable Vector Graphics (SVG) content. These features are designed to make it easy to include and handle multimedia and graphical content on the web. Additionally, HTML5 provides support for off-line storage. Further, HTML5 includes a new protocol called WebSockets that allows bidirectional asynchronous communication.
[00336] Referring to Figure 73, a functional block diagram of an example of a PID application architecture 7300 for supporting the web presentation framework is presented. PID application architecture 7300 is another example of the application architecture of the server side of PID application 1 12. In this example, the user devices 118 that are used with the Flex presentation framework of PID application architecture 600 of Figure 6 are replaced by user devices 7310. That is, instead of supporting Adobe AIR-enabled devices, PID application architecture 7300 supports user devices 7310, which may be any web (or Internet) browser-enabled devices (hereafter called browser-enabled devices). For example, Figure 73 shows a web browser 7312 running on each user device 7310. Examples of web (or Internet) browsers that may be running on user devices 7310 may include, but are not limited to, Microsoft Internet Explorer® 9, Google Chrome, Mozilla Firefox 4, Apple Safari 5, and Opera 11. [00337] Accordingly, examples of user devices 7310 may include, but are not limited to, any type, brand, and/or model of browser-enabled desktop computer; browser-enabled laptop computer; browser-enabled tablet computer; browser-enabled net-book computing device; browser-enabled handheld computing device; browser- enabled personal digital assistant; browser-enabled enterprise digital assistant;
browser-enabled portable digital assistant; browser-enabled telecommunications device including one of an browser-enabled telephone, browser-enabled cell phone, and browser-enabled smart phone; browser-enabled personal navigation device; browser-enabled vehicle-based device; browser-enabled optical disk player; browser- enabled television; browser-enabled game console; and the like.
[00338] PID application architecture 7300 may include facilitation layer 610, integration and process layer 612, and integrated services and applications layer 614 of PID application architecture 600 of Figure 6, albeit with certain modifications for supporting the web presentation framework.
[00339] For example, facilitation layer 610 includes the facilitation server 616 and the certain other servers 628, such as, but not limited to, channel server 630, content delivery server 632, collaboration media server 634, stream sync server 636, analytics server 638, advertising server 640, transcoding server 642, and media server 644. However, in this embodiment, facilitation server 616 includes a client gateway 7314 instead of the client gateway 618 of PID application architecture 600 of Figure 6. Client gateway 7314 uses hypertext transfer protocol (HTTP) for communicating with the client (e.g., web browsers 7312 of user devices 7310), while using, for example, JMS protocol for communicating with the rest of the server stack. In this way, facilitation server 616 may serve as an HTTP server. Preferably, client gateway 7314 of facilitation server 616 uses HTTPS protocol, which is HTTP Secure protocol.
[00340] While facilitation server 616 manages certain communication between the client (e.g., web browsers 7312 of user devices 7310) and the server (e.g., application server 110), the use of HTTP may be have certain limitations. For example, under HTTP protocol, a client, such as a web browser, must open a connection to a server, make a request, wait for a response, and then close the connection. If the client needs more data, it must open a new connection. Likewise, if the server has new
information for the client, it must wait until the client requests it rather than sending it over instantly. Consequently, HTTP protocol may be an inefficient way to exchange data. However, HTML5 includes a new protocol called WebSockets. This protocol allows a web client to create a connection, keep it open as long as it wants, and both send and receive data continuously. WebSocket connections allow two-way communication between the client (e.g., web browsers 7312 of user devices 7310) and the server without having to use Ajax type of mechanisms, thereby providing an efficient way to exchange data.
[00341] Therefore, facilitation layer 610 of PID application architecture 7300 also includes a messaging server 7316, which uses the WebSocket technology. That is, messaging server 7316 uses WebSocket protocol for communicating with the client (e.g., web browsers 7312 of user devices 7310), while using, for example, JMS protocol for communicating with the rest of the server stack. Preferably, messaging server 7316 uses WSS protocol, which is WebSocket Secure protocol. The WSS protocol enables bidirectional message-calling capability between the browser and messaging server 7316. The WSS protocol provides the path to the enterprise service bus 680 of integration and process server 646. The messages from the client (e.g., web browsers 7312) are converted from HTTP protocol to JMS protocol. The WSS protocol rejects connections that have not been authenticated (i.e., needs a token that indicates authentication). As a result, PID application architecture 7300 uses the combination of messaging server 7316 and facilitation server 616 to manage communication between the client (e.g., web browsers 7312 of user devices 7310) and the server (e.g., application server 110).
[00342] Additionally, the relational database management system (RDBMS) 686 of integrated services and applications layer 614 of PID application architecture 7300 may include a schema-less database 7318. Schema-less database 7318 is in communication with data management subsystem 650 of integration and process layer 612 via enterprise service bus 680 and adaptors 682. A RDBMS imposes a fixed schema, while a schema-less database does not. A main advantage of a schema-less database (e.g., a NoSQL database) compared with a relational database (e.g., a SQL database) is that it is easily scalable. A schema-less database is well-suited for the web presentation framework of PID application architecture 7300 because it provides a convenient database for channel/content developers. In one example, schema-less database 7318 may be the MongoDB available from 1 Ogen, Inc (New York, NY). MongoDB is an open source, high performance, scalable, document-oriented database.
[00343] Referring to Figure 74, a functional block diagram of an example of client architecture 7400 of PID application 112 for supporting the web presentation framework is presented. Client architecture 7400 is another example of the application architecture of the client side of PID application 112. In this example, client architecture 7400 may include an integrated development environment (IDE) layer 7410, a runtime layer 7412, an application layer 7414, and a themes layer 7416.
[00344] IDE layer 7410 is the layer of client architecture 7400 in which developers may develop channels and/or content of PID application 112 for running in the web presentation framework. There may be a channel IDE local component, a channel IDE client component, and a channel IDE server component. Developers may use writing panels, creating panels, developing panels, views, code, and the like when developing channels and/or content.
[00345] Runtime layer 7412 provides the engine for processing the channels and/or content that is created using the IDE layer 7410. There may be a channel runtime local component, a channel runtime client component, and a channel runtime server component. There may be, for example, document object model (DOM) views in runtime layer 7412. A DOM view provides the hierarchy of a web page. With respect to the channel runtime local component and the channel IDE local component, when creating channels and/or content for information delivery system 100, a developer may, optionally, have a local copy of certain components of the server loaded and executing on his/her user device 7310. This simply provides convenience to the developer to not have to continuously access, for example, the server-side portion of PID application 112 at application server 110 when creating channels and/or content.
[00346] Application layer 7414 contains the rules for the look and feel of the PID application 112 in the browser. For example, application layer 7414 contains the rules for displaying the channel grid that contains touchlets, a taskbar, a navigation bar, and the like. Application layer 7414 processes the raw application data and organizes the data into a complete application picture for the user. [00347] Themes layer 7416 transforms the raw application data into the actual GUI presentation in the browser to the user. For example, a theme may be a company- based theme. In one example, the theme may be the XYZ Corporation theme.
[00348] Using the web presentation framework of PID application architecture 7300 and/or client architecture 7400, a user 116 may access PID application 112 of information delivery system 100 by launching the web browser 7312 on his/her user device 7310. Then the user 116 may enter the URL address of PID application 112 (e.g., hu ://www .PIDapp lication.com/) and perform a login process. That is, by entering the URL address of PID application 112, the user 116 is connected via HTTP to facilitation server 616, which is the HTTP server. The user 116 then enters a username and password in a login window that is presented in web browser 7312 of his/her user device 7310. During the login process, the user may be asked whether using a public or private computer. If a public computer, no information is cached on the computer. That is, once the browser is closed, no trace of the user's activity is left behind on the computer.
[00349] Once authenticated, a session begins and the user 116 may access the resources of the rest of the server stack. Web browser 7312 connects to messaging server 7316 via WSS protocol and bidirectional communication begins. Based on user identity, a certain channel grid and/or channel application is retrieved and launched in the web browser 7312 on his/her user device 7310. For example, configuration server 654 accesses the schema-less database 7318 for user
configuration and preference information with regard to the user's grid, and any other information needed to render the grid. This information is passed back to the client and the grid is rendered at the web browser 7312.
[00350] Subsequently, the user 1 16 may access one or more channel grids to which he/she is authorized to use. The user may select a certain touchlet of a certain channel grid in web browser 7312 and interact with a certain channel within the environment of the web browser 7312. Examples of channel grids, touchlets, and/or channels that are operating in web browser 7312 per the web presentation framework are shown with reference to Figures 75 through 78.
[00351] Additionally, dynamic updates may occur. For example, there may be circumstance where the user's grid is updated. That is, the user himself makes a change, or some other user modifies a shared grid (e.g., adds a channel). In this example, the schema-less database 7318 may be updated with the change and the change is then pushed to the user who is running the grid in their web browser 7312. Additionally, if someone updates configuration preferences in integration and process server 646, the schema-less database 7318 is updated and the changes are also pushed to other clients that are subscribed to be notified of these changes. Changes are routed through JMS (a publish/subscribe mechanism) through facilitation server 616, which is the HTTP server, to the web browser 7312. Then, the web browser 7312 refreshes to implement the changes. In one example, if a user 116 no longer has access to certain content, that user 116 is immediately blocked from the content. In another example, if a new touchlet has been added to a channel grid, a new touchlet immediately appears on the grid in the user's web browser 7312.
[00352] In another example of performing dynamic updates, a "Stock Watch" channel (e.g., a "Stock Watch" channel 7800 of Figure 78) uses dynamic updates to periodically push stock content to the "Stock Watch" channel at the web browser 7312. When first launched, an initial request is made for current stock data through messaging server 7316 via WSS protocol, and then via JMS protocol to the integration and process server 646, and then to the external data sources. The current stock data that has been archived in the schema-less database 7318 is transmitted back to the web browser 7312 and displayed. The integration and process server 646 is not passive, it polls the external feeds for updates, stores the latest data in the schema-less database 7318, and pushes the updates back to the subscribing clients. The updates are also published to the eventing and alerting subsystem 652 and analyzed with respect to certain events that have been set up and that are being monitored. If certain conditions are met, alert notifications are triggered.
[00353] Referring to Figure 75, a screenshot of an example of a web browser 7312, which is running on a user device 7310, is presented for displaying a web page of a channel grid to the user. In this example, web browser 7312 may be a Microsoft Internet Explorer® web browser, but may be any type of browser, such as, but not limited to, a Google Chrome, Firefox, Safari, or Opera web browser. The web page that is displayed in web browser 7312 shows, for example, a channel grid 7510 that includes one or more touchlets 7512. The web page in web browser 7312 also shows a set of one or more channel grid buttons 7514 for selecting a certain channel grid to be displayed in web browser 7312. In one example, channel grid buttons 7514 may include an "At Home" channel grid button, a "My TV" channel grid button, an "At Work" channel grid button, a "Catalog" channel grid button, and a "Developer" channel grid button. In one example, when a user selects a certain channel grid button 7514, the corresponding channel grid web page is displayed in web browser 7312. The set of touchlets 7512 shown in channel grid 7510 of web browser 7312 of Figure 75 is an example of the touchlets of the user's "At Home" channel grid, meaning the channel grid that the user is likely to use when at home. When the user 116 selects a certain touchlet 7512, the web browser 7312 is updated (i.e., refreshed) with the corresponding channel application web page.
[00354] In this example, channel grid 7510 of Figure 75 (i.e., the user's "At Home" channel grid) includes, for example, one or more television media touchlets, such as a "Fringe" touchlet 7512A, a "Lost" touchlet 7512B, a "MasterChe ' touchlet 7512C, and a "So You Think You Can Dance" touchlet 7512D; one or more movie media touchlets, such as an "Avatar" touchlet 7512E, a "How To Train Your Dragon" touchlet 7512F, and a "NetFlix" touchlet 7512G; and one or more other channel application touchlets, such as an "Advertising" touchlet 7512H, a "Last Viewed" touchlet 75121, a "Remote Care" touchlet 7512J, a "My Medicine Cabinet" touchlet 7512K, and a "Home Security" touchlet 7512L. Each touchlet 7512 is associated with its corresponding channel application. More details of an example of a "Home Security" channel that is associated with "Home Security" touchlet 7512L and that is operating in the web presentation framework are described with reference to Figure 76.
[00355] Referring to Figure 76, a screenshot of web browser 7312 displaying a web page of a "Home Security" channel 7600 that is operating in a substantially fullscreen mode is presented. "Home Security" channel 7600 is the channel application associated with "Home Security" touchlet 7512L of Figure 75. "Home Security" channel 7600 provides a mechanism for monitoring and/or reporting information about the user 116's home security system. The web page of "Home Security" channel 7600 may include, for example, a status window 7610 and one or more video feed windows 7612. The status window 7610 shows in text form any alert conditions that are present as well as any useful control buttons. For example, a keypad button 7614 may be provided for launching a keypad window (not shown).
[00356] The web page of "Home Security" channel 7600 and/or of any other channel may also include a set of mini-touchlet buttons 7616 and a return-to-grid button 7618. When the user 116 selects a certain mini-touchlet button 7616, the web browser 7312 is updated (i.e., refreshed) with the web page of the corresponding channel application. Similarly, when the user 116 selects the return-to-grid button 7618, the web browser 7312 is updated (i.e., refreshed) with the channel grid web page, such as the channel grid web page shown in Figure 75.
[00357] From the user's perspective, "Home Security" touchlet 7512L of Figure 75 and "Home Security" channel 7600 of Figure 76 are substantially the same as "Home Security" touchlet 4110J and "Home Security" channel 4300 of Figure 43. However, "Home Security" channel 7600 of Figure 76 may be implemented using the web presentation framework, while "Home Security" channel 4300 of Figure 43 may be implemented using the Flex presentation framework.
[00358] Referring to Figure 77, another screenshot of web browser 7312, which is running on a user device 7310, is presented for displaying a web page of another channel grid to the user. In this example, the web browser 7312 displays a web page that includes the user's "At Work" channel grid. That is, a channel grid 7710 displays touchlets 7712 associated with the user's "At Work" channel grid, meaning the channel grid that the user is likely to use when at work.
[00359] In this example, channel grid 7710 of Figure 77 (i.e., the user's "At Work" channel grid) includes, for example, a "News Reader" touchlet 7712A, a "Stock Watch" touchlet 7712B, another "Stock Watch" touchlet 7712C, a "Business CRM" touchlet 7712D, a "Currency" touchlet 7712E, a "Banking" touchlet 7712F, a "Live News" touchlet 7712G, a "Business Calendar" touchlet 7712H, an "Email" touchlet 77121, a "Personal Calendar" touchlet 7712 J, and a "Business Finance" touchlet 7712K. More details of an example of a "Stock Watch" channel that is associated with "Stock Watch" touchlet 7712B and that is operating in the web presentation framework are described with reference to Figure 78. [00360] Referring to Figure 78, a screenshot of web browser 7312 displaying a web page of a "Stock Watch" channel 7800 that is operating in a substantially fullscreen mode is presented. "Stock Watch" channel 7800 is the channel application associated with "Stock Watch" touchlet 7712B of Figure 77. "Stock Watch" channel 7800 provides a mechanism for monitoring and/or reporting certain stock and/or financial information of a company of interest. In this example, "Stock Watch" channel 7800 is monitoring Brocade Communications Systems, Inc (BRCD). The web page of "Home Security" channel 7800 may include, for example, an overview window 7810, one or more information windows 7812, and a trading window 7814.
[00361] From the user's perspective, "Stock Watch" touchlet 7712B of Figure 77 and "Stock Watch" channel 7800 of Figure 78 are substantially the same as "Stock Watch" touchlet 316B and "Stock Watch" channel 1400 of Figure 14. However, "Stock Watch" channel 7800 of Figure 78 may be implemented using the web presentation framework, while "Stock Watch" channel 1400 of Figure 14 may be implemented using the Flex presentation framework.
[00362] Referring to Figures 73 through 78, from the user's perspective, while implemented using the web presentation framework, the operations of channel grid 7510 and touchlets 7512 (and the underlying channel applications) of Figure 75 and of channel grid 7710 and touchlets 7712 (and the underlying channel applications) of Figure 77 are substantially the same as channel grids, touchlets, and channels that are implemented using the Flex presentation framework. For example, a web page is designed to display channel grid 7510 that contains one or more touchlets 7512 in web browser 7312. Each touchlet 7512 may be used for presenting dynamic information of, interacting with, and/or launching its underlying channel application. Once launched, a substantially full-screen view of the channel is presented via a web page in web browser 7312.
[00363] Additionally, eventing and alerting functions may occur in the web presentation framework of information delivery system 100 of the present invention. Further, both consumer and enterprise scenarios may be implemented using the web presentation framework. Further still, the web presentation framework of information delivery system 100 supports a channel/content developer environment in which developers may create channels/content using HTML5, JavaScript, and Cascading Style Sheets (CSS), such as CSS3.
[00364] FLEX PRESENTATION FRAMEWORK VS. WEB PRESENTATION FRAMEWORK
[00365] Referring again to Figures 1 through 11, in the Flex presentation framework embodiment of information delivery system 100, the user device 118 is the "client" in the client-server system architecture. As a result, a client portion of PID application 112 must be installed on each user device 118.
[00366] Referring again to Figures 73 and 74, in the web presentation framework embodiment of information delivery system 100, the web browser (e.g., web browser 7312) is the "client" in the client-server system architecture. As a result, a web browser application must be installed on each user device 7310.
[00367] Referring again to Figures 1 through 11, when developing channels and/or content for the Flex presentation framework embodiment of information delivery system 100, developers are writing applications (i.e., channels and/or content) that are compiled into an executable. Because of this, developers are (1) limited to the APIs that are exposed through Adobe proprietary software; (2) able to easily distribute an application with little more than a double-click install; and (3) able to control the precise look and feel of the application with minimal effort at production time.
[00368] Referring again to Figures 73 and 74, when developing channels and/or content for the web presentation framework embodiment of information delivery system 100, developers are writing applications (i.e., channels and/or content) that is interpreted by the browser. Because of this, developers are (1) able to build a full scale web application with nothing more than a text editor (and a browser); (2) required to test applications in all supported browsers; and (3) unrestricted by a third party feature release schedule (except as it pertains to standards implementation). Additionally, because there is no compilation step, HTML/JavaScript/CSS is quick and easy to create/edit on the fly.
[00369] Referring again to Figures 1 through 11, when developing channels and/or content for the Flex presentation framework embodiment of information delivery system 100, such as when using Adobe's RIA development tool, there are, for example, three ways to build an application: (1) a web-based application that is meant for distributing over HTTP; (2) an Adobe AIR-based application, which is an application that runs on the desktop; and (3) a mobile application, which is an application meant to be used in a mobile device (e.g., smart phone, tablet). The development process for these three is more or less the same. However, the developer must choose which of these "project types" to use before building the application. Although, there may be ways to convert a web-based application into an Adobe AIR- based application.
[00370] Referring again to Figures 73 and 74, when developing channels and/or content for the web presentation framework embodiment of information delivery system 100, such as when using HTML5, JavaScript, and CSS, developers have only one choice for distribution of the application, which is the web. Therefore, the application must be interpreted by a web browser application in order to be used.
[00371] Referring again to Figures 1 through 11, the Flex presentation framework embodiment of information delivery system 100, provides the capability to access any information that is exposed at the device level (e.g., to determine the presence of a camera, microphone, speaker, etc). Accordingly, channels and/or content may make use of this device level information.
[00372] Referring again to Figures 73 and 74, currently HTML5 does not provide the ability to interrogate the client device with respect to device level information (e.g., to determine the presence of a camera, microphone, speaker, etc). The HTML5 specification is not yet certified, therefore its full functionality is still to be
determined. Therefore, in the web presentation framework embodiment of information delivery system 100, native applications may be written (using native code) to run on any user device 7310. For example, in order to use a camera that is present on a certain user device 7310 for a web-conferencing application, a native application may be written to activate the camera of the certain type, brand, and/or model of device. The web presentation framework of PID application 112 of information delivery system 100 can use HTML5 to interact with the native application at the user device 7310. In this example, a camera touchlet of a channel grid may be used for presenting dynamic information of, interacting with, and/or launching its underlying camera channel application (or any channel application using the camera), which may be use to interact with the native camera application.
[00373] Further, with respect to the various examples of channel grids, touchlets, and channels shown in Figures 12 through 72 and that are depicted using the Flex presentation framework of information delivery system 100, those skilled in the art will recognize that these examples may also be implemented using the web presentation framework of information delivery system 100.
[00374] Conclusion
[00375] While various inventive embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the inventive embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the inventive teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that inventive embodiments may be practiced otherwise than as specifically described. Inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the inventive scope of the present disclosure.
[00376] The above-described embodiments of the invention can be implemented in any of numerous ways. For example, some embodiments may be implemented via one or more controllers, which may employ hardware, software or a combination thereof. In some embodiments discussed herein, one or more controllers may be implemented, at least in part, as a state machine. [00377] When any aspect of an embodiment is implemented at least in part in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single device or computer or distributed among multiple devices/computers.
[00378] In this respect, various aspects of the invention, may be embodied at least in part as a computer readable storage medium (or multiple computer readable storage media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium or non-transitory medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the technology discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present technology as discussed above.
[00379] The terms "program" or "software" are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present technology as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present technology need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present technology.
[00380] Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
[00381] Also, the technology described herein may be embodied as a method, of which at least one example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
[00382] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
[00383] The indefinite articles "a" and "an," as used herein in the specification, unless clearly indicated to the contrary, should be understood to mean "at least one."
[00384] The phrase "and/or," as used herein in the specification, should be understood to mean "either or both" of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases.
Multiple elements listed with "and/or" should be construed in the same fashion, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the "and/or" clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to "A and/or B", when used in conjunction with open-ended language such as "comprising" can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B
(optionally including other elements); etc.
[00385] As used herein in the specification, "or" should be understood to have the same meaning as "and/or" as defined above. For example, when separating items in a list, "or" or "and/or" shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as "only one of or "exactly one of," or, when used in claims, "consisting of," will refer to the inclusion of exactly one element of a number or list of elements. In general, the term "or" as used herein shall only be interpreted as indicating exclusive alternatives (i.e. "one or the other but not both") when preceded by terms of exclusivity, such as "either," "one of," "only one of," or "exactly one of." "Consisting essentially of," when used in claims, shall have its ordinary meaning as used in the field of patent law.
[00386] As used herein in the specification, the phrase "at least one," in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase "at least one" refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B," or, equivalently "at least one of A and/or B") can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[00387] In the specification above, all transitional phrases such as "comprising," "including," "carrying," "having," "containing," "involving," "holding," "composed of," and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases "consisting of and "consisting essentially of shall be closed or semi-closed transitional phrases, respectively, as set forth in the United States Patent Office Manual of Patent Examining Procedures, Section
2111.03.

Claims

1. An apparatus to provide secure user-centric information via at least one user platform operated by a user, the apparatus comprising:
at least one communication interface to facilitate wired and/or wireless communications with the at least one user platform via one or more transmission media;
at least one memory to store processor-executable instructions; and at least one processor communicatively coupled to the at least one
communication interface and the at least one memory, wherein upon execution of the processor-executable instructions by the at least one processor, the at least one processor establishes a bidirectional, asynchronous user session to manage provision of and interaction with the secure user-centric information by:
A) implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information;
B) controlling the at least one communication interface to receive, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform;
C) authenticating the user and the user platform to receive the secure user-centric information based at least in part on the user identity and the platform identity; and
D) if the user and the user platform are authenticated in C), controlling the at least one communication interface so as to cause the bidirectional, asynchronous user session to be established between the apparatus and a web browser of the at least one user platform and to transmit to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels implemented in A), based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform,
wherein in D), the processor is configured to control the at least one communication interface to cause the bidirectional, asynchronous user session to be established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
2. The apparatus of claim 1, wherein in D), the processor is configured to control the at least one communication interface so as to cause the user session to be established by transmitting a HTML file to the user platform.
3. The apparatus of claim 2, wherein the HTML file is a HTML5 file.
4. The apparatus of claim 3, wherein in D), the processor controls the at least one communication interface so as to cause the user session to be established using a WebSocket Secure protocol.
5. The apparatus of claim 1, wherein in D), the at least one authorized channel comprises a television channel, and wherein the first authenticated channel information comprises a media program.
6. The apparatus of claim 5, wherein the first authenticated channel information comprises at least one advertisement.
7. The apparatus of claim 6, wherein the at least one advertisement is based on a context of the media program.
8. The apparatus of claim 7, wherein the context comprises one or more characteristics of the media program.
9. The apparatus of claim 8, wherein a product or service to which the at least one advertisement is directed is based on a subject matter of the media program.
10. The apparatus of claim 8, wherein a product or service to which the at least one advertisement is directed is based on a subject matter of an advertisement provided within the media program.
11. The apparatus of claim 8, wherein in D): the at least one user platform comprises a first user platform and a second user platform;
the processor controls the at least one communication interface so as to cause the bidirectional, asynchronous user session to be established between the apparatus and a web browser of each of the first user platform and the second user platform; the at least one advertisement comprises a first advertisement provided to the first user platform and a second advertisement provided to the second user platform; and
the first advertisement and the second advertisement include related subject matter.
12. The apparatus of claim 11, wherein:
the first advertisement provided to the first user platform is a national advertisement; and
the second advertisement provided to the second user platform is a local advertisement related to content of the national advertisement.
13. The apparatus of claim 11, in combination with the first user platform, wherein the first user platform comprises a television set or a set top box.
14. The apparatus of claim 11, in combination with the second user platform, wherein the second user platform comprises a mobile computing device.
15. The apparatus of claim 14, wherein the second user platform comprises a tablet device, a smartphone, or a laptop computer.
16. The apparatus of claim 6, wherein the at least one advertisement comprises an interactive advertisement.
17. The apparatus of claim 1, wherein the at least one memory stores at least one user profile to identify user preferences, platform identities, and service support instructions that determine how the secure user-centric information behaves on the user platform, and wherein: C) comprises authenticating the user and the user platform based at least in part on the user profile; and
D) comprises transmitting the first authenticated channel information to the at least one user platform based at least in part on the user profile.
18. The apparatus of claim 1, wherein:
the at least one memory stores an authentication directory to provide the information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform;
the authentication directory includes a plurality of user accounts, a plurality of device accounts, and a plurality of application accounts; and
C) comprises authenticating the user and the user platform based at least in part on the plurality of user accounts and the plurality of device accounts included in the authentication directory.
19. A method for providing secure user-centric information via at least one user platform operated by a user, the method comprising:
A) implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information; B) receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform;
C) authenticating the user and the user platform to receive the secure user- centric information based at least in part on the user identity and the platform identity; and
D) if the user and the user platform are authenticated in C), causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels implemented in A), based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform, wherein in D), the bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
20. At least one computer readable storage medium storing processor-executable instructions that, when executed by at least one processor, perform a method for providing secure user-centric information via at least one user platform operated by a user, the method comprising:
A) implementing a plurality of channels through which the user receives and/or interacts with, via the at least one user platform, respective portions of the secure user-centric information; B) receiving, from the at least one user platform, a user identity for the user and a platform identity for the at least one user platform;
C) authenticating the user and the user platform to receive the secure user- centric information based at least in part on the user identity and the platform identity; and
D) if the user and the user platform are authenticated in C), causing a bidirectional, asynchronous user session to be established with a web browser of the at least one user platform and transmitting to the at least one user platform during the user session first authenticated channel information relating to at least one authorized channel of the plurality of channels implemented in A), based at least in part on information access rights and/or security protocols respectively associated with the corresponding plurality of channels, the user, and the user platform,
wherein in D), the bidirectional, asynchronous user session is established without requiring a separate application other than the web browser to be installed on the user platform to establish the user session.
PCT/US2012/022406 2011-01-25 2012-01-24 Information delivery system for, and methods of, interaction with multiple information forms across multiple types and/or brands of electronic devices, such as televisions, mobile phones, and computing devices WO2012103121A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201161435976P 2011-01-25 2011-01-25
US61/435,976 2011-01-25
US201161474942P 2011-04-13 2011-04-13
US61/474,942 2011-04-13
US201161476961P 2011-04-19 2011-04-19
US61/476,961 2011-04-19
US13/273,894 2011-10-14
US13/273,894 US8819726B2 (en) 2010-10-14 2011-10-14 Methods, apparatus, and systems for presenting television programming and related information

Publications (1)

Publication Number Publication Date
WO2012103121A1 true WO2012103121A1 (en) 2012-08-02

Family

ID=46581141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/022406 WO2012103121A1 (en) 2011-01-25 2012-01-24 Information delivery system for, and methods of, interaction with multiple information forms across multiple types and/or brands of electronic devices, such as televisions, mobile phones, and computing devices

Country Status (1)

Country Link
WO (1) WO2012103121A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014028842A2 (en) * 2012-08-17 2014-02-20 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
WO2015000979A1 (en) * 2013-07-05 2015-01-08 Koninklijke Philips N.V. Patient user interface for controlling a patient display
CN111381981A (en) * 2020-03-04 2020-07-07 上海东普信息科技有限公司 Method, device and equipment for pushing applet messages and storage medium
CN112379863A (en) * 2020-10-12 2021-02-19 杭州易现先进科技有限公司 WebGL development method and device for cross-browser and small program and computer equipment
US10991013B2 (en) 2015-06-02 2021-04-27 Apple Inc. Presentation of media content based on computing device context
US11368760B2 (en) 2012-08-17 2022-06-21 Flextronics Ap, Llc Applications generating statistics for user behavior

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114881A1 (en) * 1998-09-11 2005-05-26 Philyaw Jeffry J. Method and apparatus for tracking user profile and habits on a global network
US20090025025A1 (en) * 2007-07-20 2009-01-22 At&T Knowledge Ventures, Lp System and method of determining viewership information
US20100031334A1 (en) * 2006-11-29 2010-02-04 Imran Shaikh Secure access
US20100254370A1 (en) * 2009-04-03 2010-10-07 At&T Intellectual Property I, L.P. Method and apparatus for managing communication sessions
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114881A1 (en) * 1998-09-11 2005-05-26 Philyaw Jeffry J. Method and apparatus for tracking user profile and habits on a global network
US20100031334A1 (en) * 2006-11-29 2010-02-04 Imran Shaikh Secure access
US20090025025A1 (en) * 2007-07-20 2009-01-22 At&T Knowledge Ventures, Lp System and method of determining viewership information
US20100254370A1 (en) * 2009-04-03 2010-10-07 At&T Intellectual Property I, L.P. Method and apparatus for managing communication sessions
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264775B2 (en) 2012-08-17 2016-02-16 Flextronics Ap, Llc Systems and methods for managing data in an intelligent television
US9055254B2 (en) 2012-08-17 2015-06-09 Flextronics Ap, Llc On screen method and system for changing television channels
US8863198B2 (en) 2012-08-17 2014-10-14 Flextronics Ap, Llc Television having silos that animate content source searching and selection
US11782512B2 (en) 2012-08-17 2023-10-10 Multimedia Technologies Pte, Ltd Systems and methods for providing video on demand in an intelligent television
US9021517B2 (en) 2012-08-17 2015-04-28 Flextronics Ap, Llc Systems and methods for providing video on demand in an intelligent television
US9055255B2 (en) 2012-08-17 2015-06-09 Flextronics Ap, Llc Live television application on top of live feed
US9271039B2 (en) 2012-08-17 2016-02-23 Flextronics Ap, Llc Live television application setup behavior
US9066040B2 (en) 2012-08-17 2015-06-23 Flextronics Ap, Llc Systems and methods for providing video on demand in an intelligent television
US9077928B2 (en) 2012-08-17 2015-07-07 Flextronics Ap, Llc Data reporting of usage statistics
US9106866B2 (en) 2012-08-17 2015-08-11 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US9118864B2 (en) 2012-08-17 2015-08-25 Flextronics Ap, Llc Interactive channel navigation and switching
US9301003B2 (en) 2012-08-17 2016-03-29 Jamdeo Technologies Ltd. Content-sensitive user interface for an intelligent television
US9167187B2 (en) 2012-08-17 2015-10-20 Flextronics Ap, Llc Systems and methods for providing video on demand in an intelligent television
US9167186B2 (en) 2012-08-17 2015-10-20 Flextronics Ap, Llc Systems and methods for managing data in an intelligent television
US9172896B2 (en) 2012-08-17 2015-10-27 Flextronics Ap, Llc Content-sensitive and context-sensitive user interface for an intelligent television
US9185323B2 (en) 2012-08-17 2015-11-10 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US9185325B2 (en) 2012-08-17 2015-11-10 Flextronics Ap, Llc Systems and methods for providing video on demand in an intelligent television
US9185324B2 (en) 2012-08-17 2015-11-10 Flextronics Ap, Llc Sourcing EPG data
US9191604B2 (en) 2012-08-17 2015-11-17 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US9191708B2 (en) 2012-08-17 2015-11-17 Jamdeo Technologies Ltd. Content-sensitive user interface for an intelligent television
WO2014028842A2 (en) * 2012-08-17 2014-02-20 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US9232168B2 (en) 2012-08-17 2016-01-05 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US9237291B2 (en) 2012-08-17 2016-01-12 Flextronics Ap, Llc Method and system for locating programming on a television
US9247174B2 (en) 2012-08-17 2016-01-26 Flextronics Ap, Llc Panel user interface for an intelligent television
US9215393B2 (en) 2012-08-17 2015-12-15 Flextronics Ap, Llc On-demand creation of reports
WO2014028842A3 (en) * 2012-08-17 2014-06-05 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US9118967B2 (en) 2012-08-17 2015-08-25 Jamdeo Technologies Ltd. Channel changer for intelligent television
US9363457B2 (en) 2012-08-17 2016-06-07 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US9369654B2 (en) 2012-08-17 2016-06-14 Flextronics Ap, Llc EPG data interface
US9374546B2 (en) 2012-08-17 2016-06-21 Flextronics Ap, Llc Location-based context for UI components
US9380334B2 (en) 2012-08-17 2016-06-28 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US9414108B2 (en) 2012-08-17 2016-08-09 Flextronics Ap, Llc Electronic program guide and preview window
US9426515B2 (en) 2012-08-17 2016-08-23 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US9426527B2 (en) 2012-08-17 2016-08-23 Flextronics Ap, Llc Systems and methods for providing video on demand in an intelligent television
US9432742B2 (en) 2012-08-17 2016-08-30 Flextronics Ap, Llc Intelligent channel changing
US9686582B2 (en) 2012-08-17 2017-06-20 Flextronics Ap, Llc Systems and methods for managing data in an intelligent television
US10051314B2 (en) 2012-08-17 2018-08-14 Jamdeo Technologies Ltd. Method and system for changing programming on a television
US10506294B2 (en) 2012-08-17 2019-12-10 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US11474615B2 (en) 2012-08-17 2022-10-18 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
US10754430B2 (en) 2012-08-17 2020-08-25 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US11449145B2 (en) 2012-08-17 2022-09-20 Flextronics Ap, Llc Systems and methods for providing social media with an intelligent television
US11368760B2 (en) 2012-08-17 2022-06-21 Flextronics Ap, Llc Applications generating statistics for user behavior
US11119579B2 (en) 2012-08-17 2021-09-14 Flextronics Ap, Llc On screen header bar for providing program information
US11150736B2 (en) 2012-08-17 2021-10-19 Flextronics Ap, Llc Systems and methods for providing user interfaces in an intelligent television
WO2015000979A1 (en) * 2013-07-05 2015-01-08 Koninklijke Philips N.V. Patient user interface for controlling a patient display
US10991013B2 (en) 2015-06-02 2021-04-27 Apple Inc. Presentation of media content based on computing device context
CN111381981A (en) * 2020-03-04 2020-07-07 上海东普信息科技有限公司 Method, device and equipment for pushing applet messages and storage medium
CN111381981B (en) * 2020-03-04 2023-07-11 上海东普信息科技有限公司 Method, device, equipment and storage medium for pushing small program message
CN112379863A (en) * 2020-10-12 2021-02-19 杭州易现先进科技有限公司 WebGL development method and device for cross-browser and small program and computer equipment

Similar Documents

Publication Publication Date Title
US8751948B2 (en) Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
US8819726B2 (en) Methods, apparatus, and systems for presenting television programming and related information
US10559042B2 (en) Capturing information regarding an interaction to a database
US11611565B2 (en) Systems and methods for providing an interactive media presentation
US8700738B2 (en) Dynamic feed generation
US9195971B2 (en) Method and system for planning a meeting in a cloud computing environment
US11119985B1 (en) Apparatuses, methods, and computer program products for the programmatic documentation of extrinsic event based data objects in a collaborative documentation service
US10778734B1 (en) Systems and methods for initiating processing actions utilizing automatically generated data of a group-based communication system
US10560760B2 (en) Methods and systems for multimedia content
US20080126178A1 (en) Surge-Based Online Advertising
US20080052343A1 (en) Usage-Based Prioritization
US20080046471A1 (en) Calendar Synchronization using Syndicated Data
US20080046369A1 (en) Password Management for RSS Interfaces
US20080052162A1 (en) Calendar-Based Advertising
US20080046437A1 (en) Manual Conflict Resolution for Background Synchronization
US11815936B2 (en) Providing contextually-relevant database content based on calendar data
US11960475B2 (en) Computer-implemented systems and methods for modeling executable interaction models for context-driven user interactions
US9117058B1 (en) Monitoring services and platform for multiple outlets
US20160104261A1 (en) Systems and methods for integrating an e-learning course delivery platform with an enterprise social network
WO2012103121A1 (en) Information delivery system for, and methods of, interaction with multiple information forms across multiple types and/or brands of electronic devices, such as televisions, mobile phones, and computing devices
US20160378728A1 (en) Systems and methods for automatically generating content menus for webcasting events
WO2008036464A2 (en) Syndication-based application connectors
US20150261866A1 (en) Device, system and method for facilitating communications
US11677863B1 (en) Mediated active call initiation in browsers
WO2021202598A1 (en) Comtool communication system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12738821

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12738821

Country of ref document: EP

Kind code of ref document: A1