US20020087630A1 - Enhanced information and presence service - Google Patents
Enhanced information and presence service Download PDFInfo
- Publication number
- US20020087630A1 US20020087630A1 US10/033,097 US3309701A US2002087630A1 US 20020087630 A1 US20020087630 A1 US 20020087630A1 US 3309701 A US3309701 A US 3309701A US 2002087630 A1 US2002087630 A1 US 2002087630A1
- Authority
- US
- United States
- Prior art keywords
- data
- network
- client device
- client
- application
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Definitions
- the present invention is in the fields of Internet communication including topic subscription, messaging, and presence reporting and pertains particularly to a method and apparatus for enabling an enhanced information and presence reporting service.
- PalmTM PalmTM
- BluetoothTM Internet-capable cellular telephones
- client devices capable of subscribing to and posting information wirelessly in interaction with service equipment and Web-based software applications hosted on the Internet by various service providers.
- proxy server is a server application that resides between a client applications and a real server.
- the generic function of the proxy is to intercept all requests from a client to a real server and attempt to fill the requests without the help of the real server. If the proxy cannot fill a request, it will forward the request on to the real server.
- the way proxy servers are used in messaging and presence service architecture is to retrieve content from, for example, the Internet on behalf of a client per client request.
- the proxy receiving the requested data attempts to parse out specific portions of the content (content filtering) that are not compatible with a particular user's access device display requirements, which must be known to the proxy. After filtering the data, the re-purposed content from the Internet is delivered to the client's mobile device.
- proxy method processing data for display on disparate user devices requires considerable processing power within the proxy server.
- proxy requires a set of defined rules for filtering data for a particular type device. Often the rules for parsing data are rather loose resulting in re-purposed data that is generally unappealing in format and presentation attributes due to lack of customization options for data presentation. If strict rules are provided to the proxy, a substantial amount of time is required to define them from the developer's point of view.
- Extensible Markup Language XML
- XSLT Extensible Stylesheet Language Transformations
- PQA Palm Query Application
- a network-based system for routing data between software applications with access to the network comprises at least one router connected to the network for establishing and maintaining routes between the router and the applications according to request; a first version of software residing in and executable from the at least one router for controlling route creation and deletion and converting incoming data of differing markup languages into a common format; at least one client device connected to the network, the at least one device adapted for communication with the at least one router; and, a second version of software residing in and executable from the at least one client device for determining how data sent to its host device is rendered for use by the device.
- Data requested by the at least one client device is sent to the requesting device from the at least one router in the common format wherein the receiving device reads the data, builds an object model from logic instructions embedded in the data received and executes the object model to implement the logic at the device for rendering the data.
- the network-based system is practiced on the Internet network.
- Applications receiving information comprise both network applications and client applications.
- the software applications subscribe to data according to a shared topic.
- the at least one client device is a mobile device connected to the network through a wireless network. Also in the case of more than one client device, the devices comprise a mix of different types and platforms.
- the second version of software is a distributed server application having full Web browser functionality.
- the logic instructions embedded is data received by the at least one client device are JavaScript instructions and the object model created from them is an executable JavaScript object.
- query applications developed using HTML and embedded JavaScript carry message data of the form of XML or SOAP.
- the common format of data sent from the at least one router is compact markup language.
- the message data comprising a response to a request is XML.
- a server application is provided and distributed to a client device for enabling the client device to interact with an information and presence service hosted on a data-packet-network.
- the server application comprises a data-interpretation module for interpreting data sent to the device from the service and for creating an object model from any logic instructions embedded in the data; a run-time engine for executing the created object model; and, a data-rendering module for applying the logic resulting from execution of the object model to the function and display devices supported on the client device.
- the server application enables a user controlling the device to control how data is rendered in conjunction with the display and function attributes of the device through creation of unique query applications used by the device in requesting the data.
- the data-packet-network hosting the information and presence service is the Internet network.
- message data is propagated between the service and the client device using the query application and response format.
- the query applications contain logic instructions executed on the client side, the logic instructions developed by the client.
- the query applications are developed using HTML and JavaScript.
- the query applications contain differing logic instructions developed to render response data differently according to different data sources.
- the client device is a mobile device connected to the network through a wireless network.
- the server application further comprises the necessary software to provide full Web browser functionality to the client device.
- the object model is a JavaScript object and the run-time engine is a JavaScript run-time engine.
- the request message data is of the form of XML for SOAP.
- the data sent to the device is of the form of compact markup language and the data-interpretation module decompresses the data before interpretation and object building.
- a method for client-side control of how data is rendered on a client device interacting with a Web based information and presence service includes steps of (a) providing a server application capable of object modeling and object execution to reside and execute on the client device; (b) providing an HTML template and JavaScript library to the client for use in developing query applications that contain data rendering logic; (c) developing a query application containing a message requesting data and logic instructions for data rendering; (d) sending the query application to the information and presence service; (e) receiving a response from the service, the response containing message data and the data rendering logic; (f) interpreting the data response and building a JavaScript object representing the logic instructions; and (e) executing the JavaScript object and applying the results to render the message data according to display and function of the device according to the logic instructions.
- step (a) the server application includes full Web browser functionality.
- the client device is a mobile device and connects to the service through a wireless network.
- the message requesting data is of the form of XML or SOAP.
- step (d) the query application is specific to particular data source hosted by the service and in step (e) the response is of the form of a compact markup language rendered from a traditional markup language.
- step (e) the response is compressed for transport and in step (f) the response is decompressed before interpretation.
- FIG. 1 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and information service according to prior art.
- FIG. 2 is a block-diagram illustrating basic components of a wirelessly-accessible Web-based presence and information service according to an embodiment of the present invention
- FIG. 3 is a block diagram illustrating components and processing capability of a programmable client application according to an embodiment of the present invention.
- FIG. 4 is a block diagram illustrating a request/response format for messaging facilitated by the micro server of FIG. 3.
- FIG. 5 is a flow diagram illustrating user/server steps for processing requests according to an embodiment of the present invention.
- FIG. 6 is a process flow diagram illustrating steps for interpreting an event received at a client device and dynamically displaying the event data according to an embodiment of the present invention.
- FIG. 1 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and information service according to prior art. As was described with reference to the background section of the specification, there are a variety of information and presence services available on the Internet network. In this prior art example, basic components of such a service are described.
- the two main communicators of an information and presence service are a client device, illustrated in this example as client device 101 , and an application server illustrated herein as application server 105 .
- Application server 105 is typically hosted on the Internet network represented herein by a double arrow given the element number 102 and labeled the Internet.
- Application server 105 can be a main server providing the functionality of the information and presence service, or it may be a proxy server setup between clients and a main server.
- Application server 105 is illustrated as having a logical connection to Internet 102 .
- Client device 101 can be any handheld device operating in a wireless mode and having Internet connection capability.
- a wireless network 106 represents any wireless network that a client uses to access Internet 102 from device 101 .
- a carrier gateway (GWY) 107 is illustrated in this example within the domain of network 106 .
- Gateway 107 is adapted to receive and send communication from and to Internet 102 over land-lines and to send and receive communication from to and from client device 101 in wireless mode.
- Client device 101 has a Web browser 104 adapted to enable the device to access Internet 102 .
- Web browser 104 is illustrated separately from client device 101 for illustrative purposes only.
- browser 104 may be a thin mini-browser plug-in provided by a host of the information service, or may simply be a generic Web browser installed on device 101 .
- the functionality of information and presence services revolves around a server/client software application illustrated in this example as software application 103 a (server) and 103 b (client).
- Server application 103 a includes logic for processing events and responses and for configuring responses to particular display type of client device 101 .
- Client application 103 b can be a browser plug-in (BRP LG) as is illustrated in this example, or it may comprise the entire Web browser 104 . This again depends upon the nature of the service offered.
- BRP LG browser plug-in
- client device 101 In typical operation of the architecture as presented in this example, client device 101 , assumed to be a subscriber, initiates a request event through Web browser 104 with the aid of client 103 b .
- the request is generally of the form of a hyper-text-transfer-protocol (HTTP) request.
- Web browser 104 establishes communication with application server 105 through gateway 107 and wireless network 106 and propagates the request event to application server 105 .
- the request portion of the illustrated transaction is illustrated herein by the directional arrows labeled Event, one of which is broken to show wireless propagation.
- Application server 105 receives the request from client device 101 and processes that request with the aid of software 103 a. If application server 105 is a proxy server an additional communication they be required between the proxy and a main application server. In any event information from Web pages written in one or more formats for wireless devices may be accessed by application server 105 or be maintained within application server 105 . One responsibility of application server 105 is to utilize server application 103 a in formatting a response to the request event received, the format applicable and displayable on client device 101 . A response sent from application server 105 as a result of receipt and processing of the request event is illustrated in this example by directional arrows labeled Response, one of which is broken to show wireless propagation.
- a user operating client device 101 has no control over how information will be displayed or presented on device 101 .
- All query application formats and device presentation configurations for those formats are developed for and managed at application server 105 .
- a client-operating device 101 cannot dynamically change the way data is presented on his device according to preference unless the particular change option is supported and recorded in application server 105 an executable by a preset code or signal initiated by device 101 .
- FIG. 2 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and information service 200 according to an embodiment of the present invention.
- Service 200 is in a preferred embodiment, is a complete information, presence, and messaging service that specializes in facilitating a group of clients (subscribers) who access the service through a variety of Internet-capable appliances in wireless mode.
- Service 200 is exemplified in this example by an illustrated edge server (ES) 203 , a wireless gateway (GWY) 205 , and a client device 206 .
- Edge server 203 replaces application server 105 , which was described with reference to FIG. 1 above.
- Edge server 203 is illustrated within an Internet network cloud 202 and is connected to an Internet backbone exemplified herein as a bidirectional arrow extending through cloud 202 .
- Edge server 203 unlike application server 105 described with reference to the prior art example of FIG. 1 is adapted mainly as a router that establishes routes between listeners (subscribers) to the service and information topics established according to universal resource identifiers (URIs). More detail regarding the routing function of edge server 203 will be provided further below.
- URIs universal resource identifiers
- edge server 203 does not contain the equivalent of logic 103 a described with reference to the prior art example of FIG. 1. That is to say that software and processing capability dedicated to establishing and defining complicated rules sets for data display on various devices is not required and in a preferred embodiment is not present within edge server 203 . Instead, edge server 203 has a comparatively simple software (SW) instance 207 provided therein and adapted primarily to facilitate the carrier or routing functions of service 200 .
- SW software
- SW 207 is adapted to disseminate incoming data content of the forms of disparate markup languages used such as wireless markup language (WML), CHTML (chunks of HTML), and HTML among others arriving into the server and is adapted to render the data into a bit-compacted and simple format known to the inventor as a “quick format” or compact markup language (CML) that supports XML messaging and object manipulation.
- Software 207 optimizes traffic sent into a wireless carrier's network exemplified in this example by a wireless network cloud 204 and gateway 205 .
- edge server 203 with the aid of SW 207 intercepts all content requests from client device 206 , discovers the required and relevant data, formulates a response in XML that is rendered in the quick format (CML).
- CML quick format
- Client device 206 has a novel instance of universal application runtime (UAR) 201 provided thereto which in a preferred embodiment is downloaded to the device from a host of service 200 during the process of setting up a subscription.
- UAR 201 is also referred to as a “micro server application” and in some instances as a “quick manager application” and may be referred to using these titles hereinafter in this specification.
- Micro server 201 has the capability of interpreting incoming data rendered in the above-mentioned quick format (CML), and creating a JavaScript object model of documents contained in a query application (QA).
- CML quick format
- QA JavaScript object model of documents contained in a query application
- Sever 201 is JavaScript-enabled and is adapted to process (execute) the created objects to obtain a customizable and optimal display model for displaying the received data and graphics on any particular enabled requesting device, device 206 in this case.
- Gateway 205 and wireless network 204 in this example are analogous to gateway 107 and wireless network 106 described with reference to the prior art example of FIG. 1 above.
- Micro server 201 is, in a preferred embodiment, a mini browser application containing all of the required network browsing capabilities for network navigation.
- micro server 201 may be a browser plug-in to an existing browser, in which case the server is adapted to combine existing browser capabilities with the novel capabilities of the invention.
- a main and novel difference between service 200 of this example and the service of the prior art example described with reference to FIG. 1 is that the processing power normally required at server-side for initiating and implementing device display parameters for adequate display of data sent to requesting devices is distributed to each subscribed device and therefore performed locally (client side) instead of at the server. Therefore edge server 203 may be provided in a much more streamlined fashion in terms of required processor resource than prior-art application servers that do everything locally.
- Micro-server 201 although somewhat heavier than a state-of-art “thin browser client” used as a client in many wireless service applications at the time of the writing of this specification, does not require Java, Active-X or other heavier client-side code modules. Therefore, it is not significantly heavier and does not noticeably degrade or impede performance of a host device. More detail regarding the components and functions of micro server 201 are provided further below.
- FIG. 3 is a block diagram illustrating components and processing capability of micro server 201 of FIG. 2 according to an embodiment of the present invention.
- Micro server 201 (enclosed in broken rectangular boundary) comprises 3 main components that interact with each other to provide the processing power and intelligence for optimizing data rendering and display. These are a compact markup language (CML) interpreter (I) or (CMLI) 304 , a JavaScript runtime engine 306 , and a data presentation layer (Presentation) 308 .
- CML compact markup language
- CMLI JavaScript runtime engine
- Presentation data presentation layer
- An input/output (I/O) 302 is logically illustrated on device 206 to represent communication with an edge server analogous to edge server 203 of FIG. 2 above. Communication is of course bi-directional as represented by an illustrated double-arrow labeled To Edge Server. As previously described, the service of the present invention is HTTP request/response-based as is the format for Internet device communication. Micro server 201 enables mobile users to download, cache, and access QAs using any device. CML interpreter (CLMI) 304 enables the Universal Application Runtime (micro server) to read the basic QA format pioneered by PalmTM (PQA).
- CML interpreter (CLMI) 304 enables the Universal Application Runtime (micro server) to read the basic QA format pioneered by PalmTM (PQA).
- server 201 should not be construed as limited in parsing capability to the well-known PQA format as other QA formats known to the inventor are also supported.
- the basic PQA format allows application developers to create static HTML applications (with no application logic), which is considered a major weakness of the format.
- the capability of micro server 201 allows developers to create dynamic applications (with application logic).
- CMLI parses and interprets dynamic applications (QAs written for micro server 201 ) received through I/O 302 as illustrated by the bi-directional arrow illustrated between I/O 302 and CMLI 304 .
- CMLI 304 creates a Java Script object model, illustrated herein as object model 305 , from the documents contained in a particular QA that describe logic execution instructions.
- CMLI 304 renders object model 305 to JavaScript runtime engine 306 as illustrated by the associated directional arrows.
- UIs static HTML user interfaces
- JavaScript runtime engine 306 executes object model 305 and provides, as a result, a set of common UIs (user interfaces) for system level calls to device 201 . Therefore application logic is supported by UAR 201 including application level functionality that includes but is not limited to persistent storage capability, file system access on the host device, and system level I/O.
- QA formats such as PQA are limited to a relatively primitive form of bit-packed compression for transport.
- HTML pages are encoded and decoded using a simple lookup table. While the compression format allows network carriers to achieve a respectable amount of bandwidth savings, dynamic content is not well supported.
- Micro server 201 supports XML messaging and manipulation of XML objects in the CML format. JavaScript support empowers users to manipulate presentation preferences at the client side of service interaction. Using HTML and JavaScript, application developers have a lightweight and simple framework to develop true dynamic QAs.
- the basic QA format does not allow abstraction concerning the complex development attributes for rendering one format of data to multiple devices.
- Micro server 201 is capable of abstraction to a level of obfuscating the usual complexities of developing web applications for disparate devices. Because micro server 201 has system-level knowledge of a devices profile (screen size, display capabilities, etc), it is able to shape the view of a particular application to the device dynamically. Application developers can therefore program applications against a single interface defined in HTML and expect universal compatibility among devices enabled with micro server 201 . In addition, clients can execute a single application on multiple devices having different display capabilities using one runtime execution.
- UI update 307 the previously described set of UIs created from object processing by JavaScript runtime engine 306 is output as a UI update illustrated herein as UI (update) 307 to presentation layer 308 for optimal data and graphics rendering of content received by device 206 .
- UI update
- Associated directional arrows illustrate the execution and rendering of UI update 307 to presentation layer 308 . It is noted herein that a user may program into the device the way he or she wants data displayed by inputting his or her own HTML/JavaScript QA application into device 206 .
- Object models ( 305 ) may, of course, be persistently stored and re-used instead of having to create new JavaScript objects each time data is received for display at device 206 .
- a user may also customize display parameters according to certain ones of a plurality of interactive data sources. For example, a user may develop a QA for receiving data from one source that has markedly different display and data rendering instructions than a QA created by the same user for interaction with another source. There are many possibilities.
- QAs are written in what is known as Quick HTML, which is essentially a simple form of HTML complimented with a library of JavaScript for logic description which can be embedded into the HTML template. Any user that can write HTML can use Quick HTML.
- the library of JavaScript is included at the beginning of an HTML template.
- the service-request functionality comprises 3 basic functions. These are subscribe, unsubscribe, and publish. Subscribing to a topic involves specifying a topic to listen to and a JavaScript function that is called up and executed when a message occurs on the selected topic. Unsubscribe to a topic simply means that a selected topic for listening to is deselected for listening to. Publishing involves selecting a topic and posting a message associated with the topic. The message is distributed to all subscribers of the topic.
- Desto used in the syntax refers to a brand name applied to the service of the present invention and may be repeated in script examples throughout this specification.
- service 200 functions around a system of topics, events and routes. Topics contain events and routes. Events are sent to a topic and the topic will forward events along all of its routes. A route can point to another topic or to a generic listener. A topic is identified by a URI as previously described above. An example would be “/workorder/update/xml”. To avoid name conflicts, the topic names begin with domain names.
- Quick HTML as known to the inventor is a set of JavaScript files that are included in developers HTML Web pages. These files make available a set of objects and functions that are used to enable subscription, unsubscription and sending of events.
- the types of parameters associated with “to” include “string”, a URL, for example, “/patient/status/update”, function, which is the name of the function that receives messages on the Web page, and object, which is the object in the Web page that receives the messages and is set to onMessgage.
- Options refer to optional functions, which is a JavaScript object having valid parameter options as follows:
- do_max_age Requests the delivery of events that have occurred in the past and are younger than the specified maximum age in seconds. The value of Infinity can be used to specify all previous events. Do_max_n refers to the maximum number of recent events to be delivered. These events, and all future events, will be delivered to the specified destination. ID refers to optional. ID of a route. This can be used to change options of an existing subscription. If a subscription is changed, events might be re-sent based on the value of do_max_age. If a subscription is changed, the ‘from’ parameter must match the original subscription. The ID should be a globally unique ID. If not specified, the server will generate a unique ID.
- to refers to destination topic and “event” refers to the published event object, properties of which include the payload (text string to send).
- Other properties of “event” are “id” (unique), expires (the time at which the event expires and is removed from the system), and “other”. Other refers to a custom value that can be created and added.
- Service 200 supports sending and receiving of both XML and SOAP based messages. Furthermore, there is support for converting received XML and SOAP messages into JavaScript objects.
- SOAP is a lightweight protocol known in the art and developed for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts. SOAP has an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data-types, and a convention for representing remote procedure calls (RPCs) and responses representing system to system (application to application) communication.
- RPCs remote procedure calls
- SOAP system to system
- Sending XML and SOAP messages from client device 206 is as simple as sending a JavaScript object via one of 2 available functions desto_publishAsXml or desto_publishAsSoap.
- an edge server such as ES 203 of FIG. 2 receives a POST such as the one immediately above
- the object that was sent in the message is accessed from the “body” property of the message.
- Sub-properties are accessed via the same names as in the original object. For example: msg.body.patientupdate.fname and msg.body.patientupdate.1name.
- patientupdate.fname “Dimpled”
- patientupdate.lname “Chad”
- patientupdate.status “surgery”
- [0077] would generate the following XML: ⁇ patientupdate> ⁇ fname>Dimpled ⁇ /fname> ⁇ lname>Chad ⁇ /lname> ⁇ status>surgery ⁇ /status> ⁇ location>Operating Room 8 ⁇ /location> ⁇ /patientupdate>
- FIG. 4 is a block diagram illustrating a push format for messaging facilitated by micro server 201 of FIG. 3.
- edge server 203 is illustrated as connected to an Internet backbone as in previous examples.
- Micro server 201 communicates with edge server 203 also as previously described.
- Micro server 201 has a script 401 residing therein, which contains a function on Message and an alert order, presence information indicates that the user is actively receiving event pushed to micro server 201 as they occur in edge server 203 .
- Script 401 is illustrated in expanded detail for clarity. It is noted that script, using syntax described above, is listening for the status of a patient.
- the script is followed by an appropriate response XML response in the form of a directed event 403 illustrated by a directional arrow labeled event associated with an event properties block given in the XML message format.
- the resulting displayed message is an illustrated message 404 reading “Your patient is in surgery”.
- An event handler 405 receives message 403 and it is processed as described with reference to FIG. 3 above. It is noted herein that there may be more than one event handler active at any given time.
- a bi-directional arrow illustrated between event handler 405 and displayed message 404 represents micro server processing of message 403 and subsequent display of event 404 in a human readable format.
- the service of the present invention is geared toward allowing pages and applications to interact without having to know the details of the other pages or applications.
- a common shared location or “topic” as described further above facilitates this concept.
- Each page or application need only be aware or know about and communicate with a topic rather than with every other page or application. Developers need only agree on the shared topics and the messages. This method is much simpler than coordinating what platforms, languages, APIs, etc. will be used as is the case with prior-art services.
- Messaging can be in any format, however in a preferred embodiment messages are in XML.
- a sample XML for presence information may be expressed as follows: ⁇ presence> ⁇ status> ⁇ code>online ⁇ /code> ⁇ message>Available ⁇ /message> ⁇ /status> ⁇ person> ⁇ userid>/who/mike ⁇ /userid> ⁇ /person> ⁇ /presence>
- a sample JavaScript that is generated into an object may be expressed as follows:
- the service of the present invention supports well-known “Buddy Listing” and presence reporting.
- the service of the present invention also supports the well-known instant messaging “invite” request.
- FIG. 5 is a flow diagram illustrating user/server steps for processing user requests according to an embodiment of the present invention.
- a new user subscribes to the service of the present invention.
- This step may also include a sub-step for distributing the micro server application described with reference to FIG. 2 above to the users mobile device or devices.
- a user name is established for the subscriber. This step may also involve establishing a password for secure interaction.
- a user selects a topic to listen to.
- a topic can be created or selected from a list of established topics. Listening to a topic involves sending a request to the topic and establishing a route between the selected topic and the user as exemplified by step 504 , which is a server-side process.
- the Web page containing the topic is switched “on” for the user by activating an onMessage to handle incoming events directed to the listening user. The user may deselect the particular topic and select another topic or topics to listen to.
- FIG. 6 is a process flow diagram illustrating steps for interpreting an event recieved at a client device and dynamically displaying the event data according to an embodiment of the present invention.
- an event is received at the user device.
- the event is in the form of compressed CML and may contain JavaScript execution instructions programmed in an original QA previously sent by the user in order to subscribe to and receive the data according to topic.
- a CML interpreter analogous to CMLI 304 described with reference to FIG. 3 above receives the incoming event, decompresses the message and parses the message.
- a JavaScript executable object is generated from appropriate documents within the QA that contain the logic instructions.
- a JavaScript runtime engine on the client device executes the JavaScript object to generate a preferred UI update for preferred display attributes for displaying the data and graphics, if any contained in the payload of the received message.
- the UI update is rendered to the presentation layer logic controlling display function.
- the presentation logic displays the message data according to the results of execution of the object.
- step 604 resolves to step 606 wherein the UAR (micro server) returns to listening mode for a next event to be pushed at step 600 . Step 606 occurs immediately after step 604 is complete. Therefore steps 606 and 605 may occur simultaneously.
- the methods and apparatus of the present invention provide an enhanced information and presence communication service that can be enabled using simple developer's language such as HTML and JavaScript. Multiple Web-based wireless markup languages are supported enabling broader inclusion of information sources to exchange information with. Moreover, server-side processing related to configuring data events for display on a variety of different device platforms as practiced in prior-art information and presence services is sharply reduced through distribution of these processing capabilities to participating client devices in a manner that does not tax the devices capabilities.
- the method and apparatus of the present invention can be practiced in conjunction with virtually any type of wireless mobile device that is capable of Internet connectivity and can support the client micro server application. There are many variant embodiments both existing and those that may be envisioned. Therefore, the method and apparatus of the present invention should be afforded the broadest possible scope under examination.
Abstract
A network-based system for routing data between software applications with access to the network is taught, the system including at least one router connected to the network for routing between applications and the router, software in the router for creating and deleting routes and for converting incoming data of differing markup languages into a common format, at least one client device connected to the network, the device adapted for communication with the router, and software in the client device for determining how data sent to its host device is rendered for use by the device. The client device receives data from the router in the form of the common format wherein the receiving device reads the data, builds an object model from logic instructions embedded in the data and executes the object model to implement the logic at the device for data rendering.
Description
- The present application claims priority benefit under 35 U.S.C. 119(e) of Provisional Patent Application Ser. No. 60/242,045 filed on Oct. 20, 2000, and incorporates all disclosure of the prior application by reference.
- The present invention is in the fields of Internet communication including topic subscription, messaging, and presence reporting and pertains particularly to a method and apparatus for enabling an enhanced information and presence reporting service.
- Communication methods and technologies used over data-packet-networks have continually undergone evolution with the advent of new protocols, markup languages, and compression technologies. The well-known Internet network represents the most extensive and commonly used data-packet-network for communications. Network-based communications applications are available, which enable people and corporations to subscribe to and report presence information and subscribed information in near real time.
- More recently, popular handheld, Internet-capable, devices such as the Palm™, Bluetooth™, and Internet-capable cellular telephones have been utilized as client devices capable of subscribing to and posting information wirelessly in interaction with service equipment and Web-based software applications hosted on the Internet by various service providers.
- At the time of the writing of this application, there is no practical method for mobilizing web applications and enterprise data for use on handheld devices in an integrated fashion. One reason for this is proprietary considerations in software development and complexities of attempting to integrate various markup languages and proprietary Web-based service models.
- One attempted solution for providing viable Web-integration of applications for Web-enabled devices of disparate platforms and capabilities is the use of a proxy server. A proxy server is a server application that resides between a client applications and a real server. The generic function of the proxy is to intercept all requests from a client to a real server and attempt to fill the requests without the help of the real server. If the proxy cannot fill a request, it will forward the request on to the real server. The way proxy servers are used in messaging and presence service architecture is to retrieve content from, for example, the Internet on behalf of a client per client request. The proxy receiving the requested data then attempts to parse out specific portions of the content (content filtering) that are not compatible with a particular user's access device display requirements, which must be known to the proxy. After filtering the data, the re-purposed content from the Internet is delivered to the client's mobile device.
- One drawback to the proxy method is that processing data for display on disparate user devices requires considerable processing power within the proxy server. Another obvious drawback to the proxy method is that the proxy requires a set of defined rules for filtering data for a particular type device. Often the rules for parsing data are rather loose resulting in re-purposed data that is generally unappealing in format and presentation attributes due to lack of customization options for data presentation. If strict rules are provided to the proxy, a substantial amount of time is required to define them from the developer's point of view.
- One other way to provide universal integration of applications for custom presentation to mobile devices is to use Extensible Markup Language (XML) in conjunction with an XML transforming language known in the art as Extensible Stylesheet Language Transformations (XSLT), which is a transformation vocabulary used to specify how to create new structured information from existing XML documents. XML content is transformed for use on a particular device through the application of customized style sheets (CSS), and delivered to users.
- Yet another approach to presenting appealing customized information is the creation of content specifically for a target device. The well-known Palm Query Application (PQA) format is one example of this approach. Variants of these formats exist. A drawback with PQA is that it only supports Palm devices and is fairly generic with respect to multiple versions of the device. Complex definition of strict parsing rules applies to the XML/XSLT and the PQA techniques as well as the proxy technique described above. Moreover, it is noted that in all of these approaches, server-side processing is considerable.
- The problems with content presentation to mobile devices exist principally because there is no common and standard set of rules for building Web-applications that run on small wireless devices. Furthermore, prior-art solutions focus on sever-side capability and provide no programmability on the client side of interaction.
- Therefore, what is clearly needed is a method and apparatus for building customized Web-applications that are usable at the client-side of an information and presence subscription service and delivery system wherein processing requirements can be distributed among clients. A system such as this would ensure that requested content is optimally presented to mobile devices regardless of device type while reducing server-side processing requirements.
- A network-based system for routing data between software applications with access to the network is provided. The system comprises at least one router connected to the network for establishing and maintaining routes between the router and the applications according to request; a first version of software residing in and executable from the at least one router for controlling route creation and deletion and converting incoming data of differing markup languages into a common format; at least one client device connected to the network, the at least one device adapted for communication with the at least one router; and, a second version of software residing in and executable from the at least one client device for determining how data sent to its host device is rendered for use by the device.
- Data requested by the at least one client device is sent to the requesting device from the at least one router in the common format wherein the receiving device reads the data, builds an object model from logic instructions embedded in the data received and executes the object model to implement the logic at the device for rendering the data. In a preferred embodiment, the network-based system is practiced on the Internet network.
- Applications receiving information, in a preferred embodiment, comprise both network applications and client applications. The software applications subscribe to data according to a shared topic. In one embodiment the at least one client device is a mobile device connected to the network through a wireless network. Also in the case of more than one client device, the devices comprise a mix of different types and platforms.
- In a preferred aspect of the invention, the second version of software is a distributed server application having full Web browser functionality. In this embodiment the logic instructions embedded is data received by the at least one client device are JavaScript instructions and the object model created from them is an executable JavaScript object.
- In one aspect, query applications developed using HTML and embedded JavaScript carry message data of the form of XML or SOAP. In a preferred aspect, the common format of data sent from the at least one router is compact markup language. In this aspect, the message data comprising a response to a request is XML.
- In another aspect of the present invention, a server application is provided and distributed to a client device for enabling the client device to interact with an information and presence service hosted on a data-packet-network. The server application comprises a data-interpretation module for interpreting data sent to the device from the service and for creating an object model from any logic instructions embedded in the data; a run-time engine for executing the created object model; and, a data-rendering module for applying the logic resulting from execution of the object model to the function and display devices supported on the client device.
- The server application enables a user controlling the device to control how data is rendered in conjunction with the display and function attributes of the device through creation of unique query applications used by the device in requesting the data.
- In a preferred aspect, the data-packet-network hosting the information and presence service is the Internet network. Also in a preferred aspect, message data is propagated between the service and the client device using the query application and response format. In one aspect, the query applications contain logic instructions executed on the client side, the logic instructions developed by the client.
- In one aspect, the query applications are developed using HTML and JavaScript. In a preferred aspect, the query applications contain differing logic instructions developed to render response data differently according to different data sources. In one aspect, the client device is a mobile device connected to the network through a wireless network.
- In one embodiment, the server application further comprises the necessary software to provide full Web browser functionality to the client device. In a preferred aspect of the server application, the object model is a JavaScript object and the run-time engine is a JavaScript run-time engine. In this aspect, the request message data is of the form of XML for SOAP. Also in this aspect, the data sent to the device is of the form of compact markup language and the data-interpretation module decompresses the data before interpretation and object building.
- In still another aspect of the present invention, a method for client-side control of how data is rendered on a client device interacting with a Web based information and presence service is taught. The method includes steps of (a) providing a server application capable of object modeling and object execution to reside and execute on the client device; (b) providing an HTML template and JavaScript library to the client for use in developing query applications that contain data rendering logic; (c) developing a query application containing a message requesting data and logic instructions for data rendering; (d) sending the query application to the information and presence service; (e) receiving a response from the service, the response containing message data and the data rendering logic; (f) interpreting the data response and building a JavaScript object representing the logic instructions; and (e) executing the JavaScript object and applying the results to render the message data according to display and function of the device according to the logic instructions.
- In a preferred application of the method, in step (a) the server application includes full Web browser functionality. In this aspect in step (a) the client device is a mobile device and connects to the service through a wireless network. Also in a preferred application of the method, in step (c) the message requesting data is of the form of XML or SOAP.
- In one application of the method, in step (d) the query application is specific to particular data source hosted by the service and in step (e) the response is of the form of a compact markup language rendered from a traditional markup language. In a preferred aspect, in step (e) the response is compressed for transport and in step (f) the response is decompressed before interpretation.
- Now for the first time, an information and presence service architecture and software model is provided wherein the client has control over custom data rendering and server-side processing is reduced through distribution of server functionality to the client.
- FIG. 1 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and information service according to prior art.
- FIG. 2 is a block-diagram illustrating basic components of a wirelessly-accessible Web-based presence and information service according to an embodiment of the present invention
- FIG. 3 is a block diagram illustrating components and processing capability of a programmable client application according to an embodiment of the present invention.
- FIG. 4 is a block diagram illustrating a request/response format for messaging facilitated by the micro server of FIG. 3.
- FIG. 5 is a flow diagram illustrating user/server steps for processing requests according to an embodiment of the present invention.
- FIG. 6 is a process flow diagram illustrating steps for interpreting an event received at a client device and dynamically displaying the event data according to an embodiment of the present invention.
- FIG. 1 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and information service according to prior art. As was described with reference to the background section of the specification, there are a variety of information and presence services available on the Internet network. In this prior art example, basic components of such a service are described. The two main communicators of an information and presence service are a client device, illustrated in this example as
client device 101, and an application server illustrated herein asapplication server 105. -
Application server 105 is typically hosted on the Internet network represented herein by a double arrow given theelement number 102 and labeled the Internet.Application server 105 can be a main server providing the functionality of the information and presence service, or it may be a proxy server setup between clients and a main server.Application server 105 is illustrated as having a logical connection toInternet 102.Client device 101 can be any handheld device operating in a wireless mode and having Internet connection capability. - A
wireless network 106 represents any wireless network that a client uses to accessInternet 102 fromdevice 101. A carrier gateway (GWY) 107 is illustrated in this example within the domain ofnetwork 106.Gateway 107 is adapted to receive and send communication from and toInternet 102 over land-lines and to send and receive communication from to and fromclient device 101 in wireless mode. -
Client device 101 has aWeb browser 104 adapted to enable the device to accessInternet 102.Web browser 104 is illustrated separately fromclient device 101 for illustrative purposes only. In prior art implementation (depending on the service)browser 104 may be a thin mini-browser plug-in provided by a host of the information service, or may simply be a generic Web browser installed ondevice 101. The functionality of information and presence services revolves around a server/client software application illustrated in this example assoftware application 103 a (server) and 103 b (client).Server application 103 a includes logic for processing events and responses and for configuring responses to particular display type ofclient device 101.Client application 103 b can be a browser plug-in (BRP LG) as is illustrated in this example, or it may comprise theentire Web browser 104. This again depends upon the nature of the service offered. - In typical operation of the architecture as presented in this example,
client device 101, assumed to be a subscriber, initiates a request event throughWeb browser 104 with the aid ofclient 103 b. The request is generally of the form of a hyper-text-transfer-protocol (HTTP) request.Web browser 104 establishes communication withapplication server 105 throughgateway 107 andwireless network 106 and propagates the request event toapplication server 105. The request portion of the illustrated transaction is illustrated herein by the directional arrows labeled Event, one of which is broken to show wireless propagation. -
Application server 105 receives the request fromclient device 101 and processes that request with the aid ofsoftware 103 a. Ifapplication server 105 is a proxy server an additional communication they be required between the proxy and a main application server. In any event information from Web pages written in one or more formats for wireless devices may be accessed byapplication server 105 or be maintained withinapplication server 105. One responsibility ofapplication server 105 is to utilizeserver application 103 a in formatting a response to the request event received, the format applicable and displayable onclient device 101. A response sent fromapplication server 105 as a result of receipt and processing of the request event is illustrated in this example by directional arrows labeled Response, one of which is broken to show wireless propagation. - In this prior art example all of the processing capability required to process requests from
device 101 into appropriate responses that can be disseminated by the device is contained inapplication server 105 and represented byserver application 103 a.Client application 103 b has no important processing capabilities other than to render the data received to the display mechanism ofdevice 101. In some prior-art cases, some functionality may be burned into the memory ofclient device 101 however, this is typically limited to services that support only one type of device and format. - In this example a user
operating client device 101 has no control over how information will be displayed or presented ondevice 101. All query application formats and device presentation configurations for those formats are developed for and managed atapplication server 105. A client-operatingdevice 101 cannot dynamically change the way data is presented on his device according to preference unless the particular change option is supported and recorded inapplication server 105 an executable by a preset code or signal initiated bydevice 101. - As previously described with reference to the background section, support of many different wireless markup languages and devices requires sets of rules to be defined and established at
server 105 per format and device display parameters. If these rules are loosely defined then re-purposed content sent fromapplication server 105 todevice 101 may be unappealing when displayed onclient device 101. If they are strictly defined significant time and effort in development and processing is required for maintenance and implementation of the rules. Likewise, prior-art applications are created by developers with considerable skill in the art of the more complicated program languages such as Java and C++. A goal of the present invention is to provide an information and presence service that can be enabled using applications written in simple HTML and JavaScript formats. A further goal of the present invention is to reduce the amount of required processing capabilities related to defining and implementing rules for markup language resolution and display presentation formats at the server side by disturbing those capabilities to individual client devices. - FIG. 2 is a block-diagram illustrating basic components of a wirelessly accessible Web-based presence and
information service 200 according to an embodiment of the present invention.Service 200 is in a preferred embodiment, is a complete information, presence, and messaging service that specializes in facilitating a group of clients (subscribers) who access the service through a variety of Internet-capable appliances in wireless mode.Service 200 is exemplified in this example by an illustrated edge server (ES) 203, a wireless gateway (GWY) 205, and aclient device 206.Edge server 203 replacesapplication server 105, which was described with reference to FIG. 1 above.Edge server 203 is illustrated within anInternet network cloud 202 and is connected to an Internet backbone exemplified herein as a bidirectional arrow extending throughcloud 202. -
Edge server 203, unlikeapplication server 105 described with reference to the prior art example of FIG. 1 is adapted mainly as a router that establishes routes between listeners (subscribers) to the service and information topics established according to universal resource identifiers (URIs). More detail regarding the routing function ofedge server 203 will be provided further below. - Unlike
application server 105,edge server 203 does not contain the equivalent oflogic 103 a described with reference to the prior art example of FIG. 1. That is to say that software and processing capability dedicated to establishing and defining complicated rules sets for data display on various devices is not required and in a preferred embodiment is not present withinedge server 203. Instead,edge server 203 has a comparatively simple software (SW)instance 207 provided therein and adapted primarily to facilitate the carrier or routing functions ofservice 200. -
SW 207 is adapted to disseminate incoming data content of the forms of disparate markup languages used such as wireless markup language (WML), CHTML (chunks of HTML), and HTML among others arriving into the server and is adapted to render the data into a bit-compacted and simple format known to the inventor as a “quick format” or compact markup language (CML) that supports XML messaging and object manipulation.Software 207 optimizes traffic sent into a wireless carrier's network exemplified in this example by awireless network cloud 204 andgateway 205. In this example,edge server 203, with the aid ofSW 207 intercepts all content requests fromclient device 206, discovers the required and relevant data, formulates a response in XML that is rendered in the quick format (CML). The result is that updated content requested by clients can be populated into an existing HTML template of an original request. -
Client device 206 has a novel instance of universal application runtime (UAR) 201 provided thereto which in a preferred embodiment is downloaded to the device from a host ofservice 200 during the process of setting up a subscription.UAR 201 is also referred to as a “micro server application” and in some instances as a “quick manager application” and may be referred to using these titles hereinafter in this specification.Micro server 201 has the capability of interpreting incoming data rendered in the above-mentioned quick format (CML), and creating a JavaScript object model of documents contained in a query application (QA).Sever 201 is JavaScript-enabled and is adapted to process (execute) the created objects to obtain a customizable and optimal display model for displaying the received data and graphics on any particular enabled requesting device,device 206 in this case.Gateway 205 andwireless network 204 in this example are analogous togateway 107 andwireless network 106 described with reference to the prior art example of FIG. 1 above. -
Micro server 201 is, in a preferred embodiment, a mini browser application containing all of the required network browsing capabilities for network navigation. However, in oneembodiment micro server 201 may be a browser plug-in to an existing browser, in which case the server is adapted to combine existing browser capabilities with the novel capabilities of the invention. - A main and novel difference between
service 200 of this example and the service of the prior art example described with reference to FIG. 1 is that the processing power normally required at server-side for initiating and implementing device display parameters for adequate display of data sent to requesting devices is distributed to each subscribed device and therefore performed locally (client side) instead of at the server. Thereforeedge server 203 may be provided in a much more streamlined fashion in terms of required processor resource than prior-art application servers that do everything locally. - Micro-server201, although somewhat heavier than a state-of-art “thin browser client” used as a client in many wireless service applications at the time of the writing of this specification, does not require Java, Active-X or other heavier client-side code modules. Therefore, it is not significantly heavier and does not noticeably degrade or impede performance of a host device. More detail regarding the components and functions of
micro server 201 are provided further below. - FIG. 3 is a block diagram illustrating components and processing capability of
micro server 201 of FIG. 2 according to an embodiment of the present invention. Micro server 201 (enclosed in broken rectangular boundary) comprises 3 main components that interact with each other to provide the processing power and intelligence for optimizing data rendering and display. These are a compact markup language (CML) interpreter (I) or (CMLI) 304, aJavaScript runtime engine 306, and a data presentation layer (Presentation) 308. - An input/output (I/O)302 is logically illustrated on
device 206 to represent communication with an edge server analogous to edgeserver 203 of FIG. 2 above. Communication is of course bi-directional as represented by an illustrated double-arrow labeled To Edge Server. As previously described, the service of the present invention is HTTP request/response-based as is the format for Internet device communication.Micro server 201 enables mobile users to download, cache, and access QAs using any device. CML interpreter (CLMI) 304 enables the Universal Application Runtime (micro server) to read the basic QA format pioneered by Palm™ (PQA). However,server 201 should not be construed as limited in parsing capability to the well-known PQA format as other QA formats known to the inventor are also supported. Currently, the basic PQA format allows application developers to create static HTML applications (with no application logic), which is considered a major weakness of the format. The capability ofmicro server 201 allows developers to create dynamic applications (with application logic). - CMLI parses and interprets dynamic applications (QAs written for micro server201) received through I/
O 302 as illustrated by the bi-directional arrow illustrated between I/O 302 andCMLI 304. Once, decompressed, parsed and interpreted,CMLI 304 creates a Java Script object model, illustrated herein asobject model 305, from the documents contained in a particular QA that describe logic execution instructions.CMLI 304 rendersobject model 305 toJavaScript runtime engine 306 as illustrated by the associated directional arrows. - Description of static HTML user interfaces (UIs) interfaces is supported in standard QA format but JavaScript modeling is not. However, logic may be described in a QA and a model may be created from the description. This is the basic function of
CMLI 304.JavaScript runtime engine 306 executesobject model 305 and provides, as a result, a set of common UIs (user interfaces) for system level calls todevice 201. Therefore application logic is supported byUAR 201 including application level functionality that includes but is not limited to persistent storage capability, file system access on the host device, and system level I/O. - In prior art, QA formats such as PQA are limited to a relatively primitive form of bit-packed compression for transport. In prior-art practice, HTML pages are encoded and decoded using a simple lookup table. While the compression format allows network carriers to achieve a respectable amount of bandwidth savings, dynamic content is not well supported.
Micro server 201 supports XML messaging and manipulation of XML objects in the CML format. JavaScript support empowers users to manipulate presentation preferences at the client side of service interaction. Using HTML and JavaScript, application developers have a lightweight and simple framework to develop true dynamic QAs. - In prior art, the basic QA format does not allow abstraction concerning the complex development attributes for rendering one format of data to multiple devices. For example, in PQA only Palm devices are supported.
Micro server 201 is capable of abstraction to a level of obfuscating the usual complexities of developing web applications for disparate devices. Becausemicro server 201 has system-level knowledge of a devices profile (screen size, display capabilities, etc), it is able to shape the view of a particular application to the device dynamically. Application developers can therefore program applications against a single interface defined in HTML and expect universal compatibility among devices enabled withmicro server 201. In addition, clients can execute a single application on multiple devices having different display capabilities using one runtime execution. - Referring now back to FIG. 3, the previously described set of UIs created from object processing by
JavaScript runtime engine 306 is output as a UI update illustrated herein as UI (update) 307 topresentation layer 308 for optimal data and graphics rendering of content received bydevice 206. Associated directional arrows illustrate the execution and rendering ofUI update 307 topresentation layer 308. It is noted herein that a user may program into the device the way he or she wants data displayed by inputting his or her own HTML/JavaScript QA application intodevice 206. - Object models (305) may, of course, be persistently stored and re-used instead of having to create new JavaScript objects each time data is received for display at
device 206. A user may also customize display parameters according to certain ones of a plurality of interactive data sources. For example, a user may develop a QA for receiving data from one source that has markedly different display and data rendering instructions than a QA created by the same user for interaction with another source. There are many possibilities. - Because developers may create dynamic applications without being required to have skill in the art in writing the more complex developers languages described further above, users that can write basic HTML and JavaScript do not have to rely on third party developers for their function options including display-customization and configuration options.
- Quick HTML (Developers)
- In order to facilitate the unique client-side function of
micro server application 201 and service communication parameters as a whole, QAs are written in what is known as Quick HTML, which is essentially a simple form of HTML complimented with a library of JavaScript for logic description which can be embedded into the HTML template. Any user that can write HTML can use Quick HTML. The library of JavaScript is included at the beginning of an HTML template. - The service-request functionality comprises 3 basic functions. These are subscribe, unsubscribe, and publish. Subscribing to a topic involves specifying a topic to listen to and a JavaScript function that is called up and executed when a message occurs on the selected topic. Unsubscribe to a topic simply means that a selected topic for listening to is deselected for listening to. Publishing involves selecting a topic and posting a message associated with the topic. The message is distributed to all subscribers of the topic. An example code for subscribing to and listening to a topic appears as follows:
<script> topic = “/foo/bar” ; desto-subscribe(topic, onMessage) ; function onMessage (event) { alert (event.desto-payload) ; } </script> - The term Desto used in the syntax refers to a brand name applied to the service of the present invention and may be repeated in script examples throughout this specification. As was previously mentioned in this specification,
service 200 functions around a system of topics, events and routes. Topics contain events and routes. Events are sent to a topic and the topic will forward events along all of its routes. A route can point to another topic or to a generic listener. A topic is identified by a URI as previously described above. An example would be “/workorder/update/xml”. To avoid name conflicts, the topic names begin with domain names. - Quick HTML as known to the inventor is a set of JavaScript files that are included in developers HTML Web pages. These files make available a set of objects and functions that are used to enable subscription, unsubscription and sending of events. A developed Webpage for a subscriber is activated with an onMessage. Following is a syntax example of a subscription to a topic:
function= desto-subscribe(from, to [, options] [, id]) from to string function object options - wherein “from” refers to a topic to listen to for example, “/workorder” and “to” referrs to a “listener”.
- The types of parameters associated with “to” include “string”, a URL, for example, “/patient/status/update”, function, which is the name of the function that receives messages on the Web page, and object, which is the object in the Web page that receives the messages and is set to onMessgage.
- Options refer to optional functions, which is a JavaScript object having valid parameter options as follows:
- do_max_age: Requests the delivery of events that have occurred in the past and are younger than the specified maximum age in seconds. The value of Infinity can be used to specify all previous events. Do_max_n refers to the maximum number of recent events to be delivered. These events, and all future events, will be delivered to the specified destination. ID refers to optional. ID of a route. This can be used to change options of an existing subscription. If a subscription is changed, events might be re-sent based on the value of do_max_age. If a subscription is changed, the ‘from’ parameter must match the original subscription. The ID should be a globally unique ID. If not specified, the server will generate a unique ID.
- An example of an instruction to unubscribe to a particular topic is as follows:
var route; route = desto-subscribe(“/patient”,onPatientMessage); // route == “/patient/desto-routes/46165443” desto-unsubscribe(route); - An example of an instruction for publishing is as follows:
function = desto-publish(to, event) to event desto-payload desto-id desto-expires other - wherein “to” refers to destination topic and “event” refers to the published event object, properties of which include the payload (text string to send). Other properties of “event” are “id” (unique), expires (the time at which the event expires and is removed from the system), and “other”. Other refers to a custom value that can be created and added.
- XML and SOAP
-
Service 200 supports sending and receiving of both XML and SOAP based messages. Furthermore, there is support for converting received XML and SOAP messages into JavaScript objects. - SOAP is a lightweight protocol known in the art and developed for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts. SOAP has an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data-types, and a convention for representing remote procedure calls (RPCs) and responses representing system to system (application to application) communication. Once the message documents are rendered into JavaScript objects such as
object 305 described with reference to the example of FIG. 3, accessing the properties within the XML or SOAP message becomes extremely simple. - Sending XML and SOAP messages from
client device 206 is as simple as sending a JavaScript object via one of 2 available functions desto_publishAsXml or desto_publishAsSoap.For example: function postPatientStatus () { var obj = new Object () ; obj.fname = “Dimpled” ; obj.lname = “Chad” ; obj.status = “surgery” ; desto-publishAsSoap (“/patient”, “patientupdate”, obj) ; } - When an edge server such as
ES 203 of FIG. 2 receives a POST such as the one immediately above, the object that was sent in the message is accessed from the “body” property of the message. Sub-properties are accessed via the same names as in the original object. For example: msg.body.patientupdate.fname and msg.body.patientupdate.1name. - When publishing an object as XML or SOAP, it is required to provide the name of the object. For XML messages, this becomes the root tag of the document that is sent, and will be the name used to access the data when the message is received. For SOAP messages, this will become a sub-element of the Body sub-element.
- For example, the following properties:
patientupdate.fname = “Dimpled” ; patientupdate.lname = “Chad” ; patientupdate.status = “surgery” ; - would generate the following XML:
<patientupdate> <fname>Dimpled</fname> <lname>Chad</lname> <status>surgery</status> <location>Operating Room 8</location> </patientupdate> - and would generate the following SOAP:
<SOAP-ENV:Envelope xmlns:SOAP-ENV=‘http://schemas.xmlsoap.org/soap/envelope/’ SOAP- ENV:encodingStyle=‘http://schemas.xmlsoap.org/soap/encodin g/’ > <SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <patientupdate> <fname>Dimpled</fname> <lname>Chad</lname> <status>surgery</status> <location>Operating Room 8</location> </patientupdate> </SOAP-ENV:Body> </SOAP-ENV:Envelope> - FIG. 4 is a block diagram illustrating a push format for messaging facilitated by
micro server 201 of FIG. 3. In this example,edge server 203 is illustrated as connected to an Internet backbone as in previous examples.Micro server 201 communicates withedge server 203 also as previously described.Micro server 201 has ascript 401 residing therein, which contains a function on Message and an alert order, presence information indicates that the user is actively receiving event pushed tomicro server 201 as they occur inedge server 203.Script 401 is illustrated in expanded detail for clarity. It is noted that script, using syntax described above, is listening for the status of a patient. The script is followed by an appropriate response XML response in the form of a directedevent 403 illustrated by a directional arrow labeled event associated with an event properties block given in the XML message format. After processing on the client device, the resulting displayed message is anillustrated message 404 reading “Your patient is in surgery”. Anevent handler 405 receivesmessage 403 and it is processed as described with reference to FIG. 3 above. It is noted herein that there may be more than one event handler active at any given time. A bi-directional arrow illustrated betweenevent handler 405 and displayedmessage 404 represents micro server processing ofmessage 403 and subsequent display ofevent 404 in a human readable format. - The service of the present invention is geared toward allowing pages and applications to interact without having to know the details of the other pages or applications. A common shared location or “topic” as described further above facilitates this concept. Each page or application need only be aware or know about and communicate with a topic rather than with every other page or application. Developers need only agree on the shared topics and the messages. This method is much simpler than coordinating what platforms, languages, APIs, etc. will be used as is the case with prior-art services.
- Messaging can be in any format, however in a preferred embodiment messages are in XML. A sample XML for presence information may be expressed as follows:
<presence> <status> <code>online</code> <message>Available</message> </status> <person> <userid>/who/mike</userid> </person> </presence> - A sample JavaScript that is generated into an object may be expressed as follows:
- if (msg.body.presence.status.code=‘online’) alert(“Online”);
- The service of the present invention supports well-known “Buddy Listing” and presence reporting. Following is a sample of a Buddy List Report XML:
<buddylist> <buddy> <status> <code>offline</code> <message></message> <active xsi:type=‘xsd:boolean’>false</active> <lastContactedOn>Wed Dec 31 16:00:00 PST 1969</lastContactedOn> </status> <person> <userid>/who/adam</userid> <displayname>adam</displayname> </person> <contact> <level>primary</level> <type>cellphone</type> <phone></phone> </contact> <subscription> <routeid>/who/adam/status/desto-routes/35880601</routei d> </subscription> </buddy> <buddy> <status> <code>offline</code> <message></message> <active xsi:type=‘xsd:boolean’>false</active> <lastContactedOn>Wed Dec 31 16:00:00 PST 1969</lastContactedOn> </status> <person> <userid>/who/mike</userid> <displayname>Mike</displayname> </person> <contact> <level>primary</level> <type>cellphone</type> <phone></phone> </contact> <subscription> <routeid>/who/mike/status/desto-routes/35880601</routei d> </subscription> </buddy> <group> <name>CoWorkers</name> <isExpanded xsi:type=‘xsd:boolean’>true</isExpanded> <buddyref>/who/adam</buddyref> <buddyref>/who /mike</buddyref> </group> <group> <name>Offline</name> <isExpanded xsi:type=‘xsd:boolean’>true</isExpanded> <buddyref>/who/adam</buddyref> </group> <isExpanded xsi:type=‘xsd:boolean’>true</isExpanded> </buddylist> - The service of the present invention also supports the well-known instant messaging “invite” request. A sample XML for inviting one to chat follows:
<invite> <from>/who/mike</from> <topic>/chat/room_78285494</topic> <app>../Chat.esp/?inviter=/who/mike</app> </invite> - There are essentially 3 properties, from (sender), topic (selected for further communication) and application (the URL that the requester would like to visit). A sample JavaScript associated with the above XML follows:
- alert(“Invitation from “+msg.body.invite.from);
- Event Source Development
- The service of the present invention supports simplified source event development. Developers can write dynamic applications that generate events. Following are some sample applications in developer's code. The exact code written depends, of course on the libraries and languages used.
Perl #!/usr/bin/perl -w use strict; use CGI‘:standard’; use LWP::UserAgent; use HTTP::Request::Common ‘POST’; my $ua = new LWP::UserAgent; my $server = “http://www.desto/desto/cgi-bin/desto.cgi”; my $topic = “/sample/events”; my $event [“displayname” => “Sample Event Generator”, “desto_payload” => “A sample Event”]; $ua->request(POST “$server/$topic”, $event); HTML <form action=“http://www.desto/desto/cgi-bin/desto.cgi” method=“POST”> <input name=“desto_to” value=“/sample/events” /> <input name=“displayname” value=“Sample Event Generator” /> <input name=“desto_payload” value=“A sample Event” /> <input type=“submit” value=“ send event ”/> </form> - Sending XML
- Applications or Pages sending events to clients may send XML messages, which should use the following property name:
- content-type: text/xml
Perl #!/usr/bin/perl -w use strict; use CGI‘:standard’; use LWP::UserAgent; use HTTP::Request::Common‘POST’; my $ua = new LWP::UserAgent; my $server = “http://www.desto/desto/cgi-bin/desto.cgi”; my $topic = “/sample/events” my $event = [ “displayname”=> “Sample Event Generator”, “desto_payload” => “<offer><kind>buy</kind><price>1000</price></offer>”, “content-type” => “text/xml” ]; $ua->request(POST “$server/$topic”, $event); HTML <form action=“http://www.desto/desto/cgi-bin/desto.cgi” method=“POST”> <input name=“desto_to” value=“/sample/events” /> <input name=“displayname” value=“Sample Event Generator” /> <input name=“content-type” value=“text/xml” /> <textarea name=“desto_payload”> <offer><kind>buy</kind><price>1000</price></offer> </textarea> <input type=“submit” value=“send event ” /> </form> - Sending SOAP
- Applications or Pages sending events to clients may send SOAP messages, which should use the following property name:
- soapaction: <some uri>
Perl #!/usr/bin/perl -w use strict; use CGI‘:standard’; use LWP::UserAgent; use HTTP::Request:Common ‘POST’; my $ua = new LWP::UserAgent; my $server = “http://www.desto/desto/cgi-bin/desto.cgi”; my $topic = “/sample/events”; my $payload = <<eos; <SOAP-ENV:Envelope xmlns: SOAP-ENV=‘http://schemas.xmlsoap.org/soap/envelope/’ SOAP- ENV:encodingStyle=‘http://schemas.xmlsoap.org/soap/encoding/ ’> <SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <offer> <kind>buy</kind> <price>1000</price> </offer> </SOAP-ENV:Body> </SOAP-ENV:Envelope> eos my $event = [ “displayname” => “Sample Event Generator”, “desto_payload” => $payload, “soapaction” 32 > “notify”, “content-type” => “text/xml” ]; $ua->request(POST “$server/$topic”, $event); HTML <form action=“http://www.desto/desto/cgi-bin/desto.cgi” method=“POST”> <input name=“desto_to” value=“/sample/events” /> <input name=“displayname” value=“Sample Event Generator” /> <input name=“content-type” value“text/xml” /> <input name=“soapaction” value=“notify” /> <textarea name=“desto_payload”> <SOAP-ENV:Envelope xmlns: SOAP-ENV=‘http://schemas.xmlsoap.org/soap/envelope/’ SOAP- ENV:encodingStyle=‘http://schemas.xmlsoap.org/soap/encoding/’> <SOAP-ENV:Header></SOAP-ENV:Header> <SOAP-ENV:Body> <offer> <kind>buy</kind> <price>1000</price> </offer> </SOAP-ENV:Body> </SOAP-ENV:Envelope> </textarea> <input type=“submit” value=“send event ”/> </form> - FIG. 5 is a flow diagram illustrating user/server steps for processing user requests according to an embodiment of the present invention. At
step 501, a new user subscribes to the service of the present invention. This step may also include a sub-step for distributing the micro server application described with reference to FIG. 2 above to the users mobile device or devices. At step 502 a user name is established for the subscriber. This step may also involve establishing a password for secure interaction. - At
step 503, a user selects a topic to listen to. A topic can be created or selected from a list of established topics. Listening to a topic involves sending a request to the topic and establishing a route between the selected topic and the user as exemplified bystep 504, which is a server-side process. The Web page containing the topic is switched “on” for the user by activating an onMessage to handle incoming events directed to the listening user. The user may deselect the particular topic and select another topic or topics to listen to. - It will be apparent to one with skill in the art that the process steps described above may be augmented with sub-routines without departing from the spirit and scope of the present invention.
- FIG. 6 is a process flow diagram illustrating steps for interpreting an event recieved at a client device and dynamically displaying the event data according to an embodiment of the present invention.
- At
step 600, an event is received at the user device. The event is in the form of compressed CML and may contain JavaScript execution instructions programmed in an original QA previously sent by the user in order to subscribe to and receive the data according to topic. Atstep 601, a CML interpreter analogous toCMLI 304 described with reference to FIG. 3 above receives the incoming event, decompresses the message and parses the message. At step 602 a JavaScript executable object is generated from appropriate documents within the QA that contain the logic instructions. - At
step 603, A JavaScript runtime engine on the client device executes the JavaScript object to generate a preferred UI update for preferred display attributes for displaying the data and graphics, if any contained in the payload of the received message. Atstep 604, the UI update is rendered to the presentation layer logic controlling display function. Atstep 605, the presentation logic displays the message data according to the results of execution of the object. Referring now back to step 604,step 604 resolves to step 606 wherein the UAR (micro server) returns to listening mode for a next event to be pushed atstep 600. Step 606 occurs immediately afterstep 604 is complete. Therefore steps 606 and 605 may occur simultaneously. - It is important to note herein that other functions may also be included in the object such as caching instructions, persistent storage instructions, and others according to capability of the device.
- The methods and apparatus of the present invention provide an enhanced information and presence communication service that can be enabled using simple developer's language such as HTML and JavaScript. Multiple Web-based wireless markup languages are supported enabling broader inclusion of information sources to exchange information with. Moreover, server-side processing related to configuring data events for display on a variety of different device platforms as practiced in prior-art information and presence services is sharply reduced through distribution of these processing capabilities to participating client devices in a manner that does not tax the devices capabilities.
- The method and apparatus of the present invention can be practiced in conjunction with virtually any type of wireless mobile device that is capable of Internet connectivity and can support the client micro server application. There are many variant embodiments both existing and those that may be envisioned. Therefore, the method and apparatus of the present invention should be afforded the broadest possible scope under examination.
- The method and apparatus of the present invention is limited only by the claims that follow.
Claims (31)
1. A network-based system for routing data between software applications with access to the network comprising:
at least one router connected to the network for establishing and maintaining routes between the router and the applications according to request;
a first version of software residing in and executable from the at least one router for controlling route creation and deletion and converting incoming data of differing markup languages into a common format;
at least one client device connected to the network, the at least one device adapted for communication with the at least one router; and
a second version of software residing in and executable from the at least one client device for determining how data sent to its host device is rendered for use by the device;
characterized in that data requested by the at least one client device is sent to the requesting device from the at least one router in the common format wherein the receiving device reads the data, builds an object model from logic instructions embedded in the data received and executes the object model to implement the logic at the device for rendering the data.
2. The network-based system of claim 1 wherein the network is the Internet network.
3. The network-based system of claim 1 wherein the software applications comprise both network applications and client applications.
4. The network-based system of claim 3 wherein the software applications subscribe to data according to a shared topic.
5. The network-based system of claim 1 wherein the at least one client device is a mobile device connected to the network through a wireless network.
6. The network-based system of claim 5 wherein in the case of more than one client device, the devices comprise a mix of different types and platforms.
7. The network-based system of claim 1 wherein the second version of software is a distributed server application having full Web browser functionality.
8. The network-based system of claim 1 wherein the logic instructions are JavaScript and the object model is an executable JavaScript object.
9. The network-based system of claim 1 wherein query applications developed using HTML and embedded JavaScript carry message data of the form of XML or SOAP.
10. The network-based system of claim 1 wherein the common format is compact markup language.
11. The network-based system of claim 1 wherein the message data comprising a response to a request is XML.
12. A server application distributed to a client device for enabling the client device to interact with an information and presence service hosted on a data-packet-network the application comprising:
a data-interpretation module for interpreting data sent to the device from the service and for creating an object model from any logic instructions embedded in the data;
a run-time engine for executing the created object model; and
a data-rendering module for applying the logic resulting from execution of the object model to the function and display devices supported on the client device;
characterized in that a user controlling the device may control how data is rendered in conjunction with the display and function attributes of the device through creation of unique query applications used by the device in requesting the data.
13. The server application of claim 12 wherein the data-packet-network is the Internet network.
14. The server application of claim 12 wherein message data is propagated between the service and the client device using the query application and response format.
15. The server application of claim 14 wherein the query applications contain logic instructions executed on the client side, the logic instructions developed by the client.
16. The server application of claim 12 wherein the query applications are developed using HTML and JavaScript.
17. The server application of claim 12 wherein the query applications contain differing logic instructions developed to render response data differently according to different data sources.
18. The server application of claim 12 wherein the client device is a mobile device connected to the network through a wireless network.
19. The server application of claim 12 wherein the application further comprises the necessary software to provide full Web browser functionality.
20. The server application of claim 12 wherein the object model is a JavaScript object and the run-time engine is a JavaScript run-time engine.
21. The server application of claim 16 wherein the request message data is of the form of XML for SOAP.
22. The server application of claim 12 wherein the data sent to the device is of the form of compact markup language.
23. The server application of claim 12 wherein the data-interpretation module decompresses the data before interpretation and object building.
24. A method for client-side control of how data is rendered on a client device interacting with a Web based information and presence service comprising steps of:
(a) providing a server application capable of object modeling and object execution to reside and execute on the client device;
(b) providing an HTML template and JavaScript library to the client for use in developing query applications that contain data rendering logic;
(c) developing a query application containing a message requesting data and logic instructions for data rendering;
(d) sending the query application to the information and presence service;
(e) receiving a response from the service, the response containing message data and the data rendering logic;
(f) interpreting the data response and building a JavaScript object representing the logic instructions; and
(e) executing the JavaScript object and applying the results to render the message data according to display and function of the device according to the logic instructions.
25. The method of claim 24 wherein in step (a) the server application includes full Web browser functionality.
26. The method of claim 24 wherein in step (a) the client device is a mobile device and connects to the service through a wireless network.
27. The method of claim 24 wherein in step (c) the message requesting data is of the form of XML or SOAP.
28. The method of claim 24 wherein in step (d) the query application is specific to particular data source hosted by the service.
29. The method of claim 24 wherein in step (e) the response is of the form of a compact markup language rendered from a traditional markup language.
30. The method of claim 24 wherein in step (e) the response is compressed for transport.
31. The method of claim 24 wherein in step (f) response is decompressed before interpretation.
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/033,097 US20020087630A1 (en) | 2000-10-20 | 2001-10-19 | Enhanced information and presence service |
US11/301,492 US7558876B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/301,733 US7823166B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/879,541 US7610406B2 (en) | 2000-10-20 | 2007-07-17 | Updating a web user interface on a client device |
US12/925,477 US8112768B2 (en) | 2000-10-20 | 2010-10-22 | Real-time web applications |
US13/366,989 US8276162B2 (en) | 2000-10-20 | 2012-02-06 | Real-time web applications |
US13/625,672 US8719846B2 (en) | 2000-10-20 | 2012-09-24 | Real-time information feed |
US14/101,657 US9264514B2 (en) | 2000-10-20 | 2013-12-10 | Real-time information feed |
US14/987,450 US9426252B2 (en) | 2000-10-20 | 2016-01-04 | Real-time information feed |
US15/215,485 US9699259B2 (en) | 2000-10-20 | 2016-07-20 | Real-time information feed |
US15/624,331 US10142431B2 (en) | 2000-10-20 | 2017-06-15 | Real-time information feed |
US16/166,631 US20190058774A1 (en) | 2000-10-20 | 2018-10-22 | Real-time information feed |
US16/356,457 US20190215377A1 (en) | 2000-10-20 | 2019-03-18 | Real-time information feed |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24204500P | 2000-10-20 | 2000-10-20 | |
US10/033,097 US20020087630A1 (en) | 2000-10-20 | 2001-10-19 | Enhanced information and presence service |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/301,733 Division US7823166B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/301,492 Division US7558876B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/879,541 Continuation US7610406B2 (en) | 2000-10-20 | 2007-07-17 | Updating a web user interface on a client device |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020087630A1 true US20020087630A1 (en) | 2002-07-04 |
Family
ID=26709271
Family Applications (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/033,097 Abandoned US20020087630A1 (en) | 2000-10-20 | 2001-10-19 | Enhanced information and presence service |
US11/301,492 Expired - Fee Related US7558876B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/301,733 Expired - Fee Related US7823166B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/879,541 Expired - Fee Related US7610406B2 (en) | 2000-10-20 | 2007-07-17 | Updating a web user interface on a client device |
US12/925,477 Expired - Fee Related US8112768B2 (en) | 2000-10-20 | 2010-10-22 | Real-time web applications |
US13/366,989 Expired - Lifetime US8276162B2 (en) | 2000-10-20 | 2012-02-06 | Real-time web applications |
US13/625,672 Expired - Fee Related US8719846B2 (en) | 2000-10-20 | 2012-09-24 | Real-time information feed |
US14/101,657 Expired - Lifetime US9264514B2 (en) | 2000-10-20 | 2013-12-10 | Real-time information feed |
US14/987,450 Expired - Lifetime US9426252B2 (en) | 2000-10-20 | 2016-01-04 | Real-time information feed |
US15/215,485 Expired - Fee Related US9699259B2 (en) | 2000-10-20 | 2016-07-20 | Real-time information feed |
US15/624,331 Expired - Fee Related US10142431B2 (en) | 2000-10-20 | 2017-06-15 | Real-time information feed |
US16/166,631 Abandoned US20190058774A1 (en) | 2000-10-20 | 2018-10-22 | Real-time information feed |
US16/356,457 Abandoned US20190215377A1 (en) | 2000-10-20 | 2019-03-18 | Real-time information feed |
Family Applications After (12)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/301,492 Expired - Fee Related US7558876B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/301,733 Expired - Fee Related US7823166B2 (en) | 2000-10-20 | 2005-12-12 | Enhanced information and presence service |
US11/879,541 Expired - Fee Related US7610406B2 (en) | 2000-10-20 | 2007-07-17 | Updating a web user interface on a client device |
US12/925,477 Expired - Fee Related US8112768B2 (en) | 2000-10-20 | 2010-10-22 | Real-time web applications |
US13/366,989 Expired - Lifetime US8276162B2 (en) | 2000-10-20 | 2012-02-06 | Real-time web applications |
US13/625,672 Expired - Fee Related US8719846B2 (en) | 2000-10-20 | 2012-09-24 | Real-time information feed |
US14/101,657 Expired - Lifetime US9264514B2 (en) | 2000-10-20 | 2013-12-10 | Real-time information feed |
US14/987,450 Expired - Lifetime US9426252B2 (en) | 2000-10-20 | 2016-01-04 | Real-time information feed |
US15/215,485 Expired - Fee Related US9699259B2 (en) | 2000-10-20 | 2016-07-20 | Real-time information feed |
US15/624,331 Expired - Fee Related US10142431B2 (en) | 2000-10-20 | 2017-06-15 | Real-time information feed |
US16/166,631 Abandoned US20190058774A1 (en) | 2000-10-20 | 2018-10-22 | Real-time information feed |
US16/356,457 Abandoned US20190215377A1 (en) | 2000-10-20 | 2019-03-18 | Real-time information feed |
Country Status (1)
Country | Link |
---|---|
US (13) | US20020087630A1 (en) |
Cited By (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103935A1 (en) * | 2001-01-26 | 2002-08-01 | Neil Fishman | Pushing rich content information to mobile devices |
US20030154293A1 (en) * | 2002-02-14 | 2003-08-14 | Zmolek Andrew Charles | Presence tracking and name space interconnection techniques |
US20040141594A1 (en) * | 2003-01-20 | 2004-07-22 | Brunson Gordon R. | Messaging advise in presence-aware networks |
US20040148347A1 (en) * | 2002-11-18 | 2004-07-29 | Barry Appelman | Dynamic identification of other users to an online user |
US20060041681A1 (en) * | 2000-12-18 | 2006-02-23 | Shaw Parsing, Llc | Techniques for delivering personalized content with a real-time routing network |
US20060075279A1 (en) * | 2004-08-17 | 2006-04-06 | Shaw Parsing, Llc | Techniques for upstream failure detection and failure recovery |
US20060112181A1 (en) * | 2004-11-23 | 2006-05-25 | Microsoft Corporation | Method and apparatus for controlling execution of an application |
US20060117318A1 (en) * | 2004-08-17 | 2006-06-01 | Shaw Parsing, Llc | Modular event-driven processing |
US20060167991A1 (en) * | 2004-12-16 | 2006-07-27 | Heikes Brian D | Buddy list filtering |
US20060168642A1 (en) * | 2004-11-08 | 2006-07-27 | Nokia Corporation | Using presence to inform other clients about capability limitations |
US20070016657A1 (en) * | 2005-07-14 | 2007-01-18 | Fuji Photo Film Co., Ltd. | Multimedia data processing devices, multimedia data processing methods and multimedia data processing programs |
US20070050519A1 (en) * | 2000-12-18 | 2007-03-01 | Cano Charles E | Storing state in a dynamic content routing network |
US20070061708A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Script markup |
US20070239822A1 (en) * | 2000-12-18 | 2007-10-11 | Timothy Tuttle | Asynchronous messaging using a node specialization architecture in the dynamic routing network |
US20070266176A1 (en) * | 2000-10-20 | 2007-11-15 | Jonathan Wu | Updating a web user interface on a client device |
US20080003964A1 (en) * | 2006-06-30 | 2008-01-03 | Avaya Technology Llc | Ip telephony architecture including information storage and retrieval system to track fluency |
US20080195634A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Complete mapping between the xml infoset and dynamic language data expressions |
US20080260325A1 (en) * | 2006-02-16 | 2008-10-23 | Pavel Kornilovich | Composite Evanescent Waveguides And Associated Methods |
US20090213001A1 (en) * | 2002-11-18 | 2009-08-27 | Aol Llc | Dynamic Location of a Subordinate User |
US7669213B1 (en) | 2004-10-28 | 2010-02-23 | Aol Llc | Dynamic identification of other viewers of a television program to an online viewer |
US7711104B1 (en) | 2004-03-31 | 2010-05-04 | Avaya Inc. | Multi-tasking tracking agent |
US7734032B1 (en) | 2004-03-31 | 2010-06-08 | Avaya Inc. | Contact center and method for tracking and acting on one and done customer contacts |
US7752230B2 (en) | 2005-10-06 | 2010-07-06 | Avaya Inc. | Data extensibility using external database tables |
US7769154B1 (en) | 2004-06-09 | 2010-08-03 | Avaya Inc. | Aggregated perceived presence |
US7779042B1 (en) | 2005-08-08 | 2010-08-17 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US20100217864A1 (en) * | 2009-02-23 | 2010-08-26 | James Michael Ferris | Methods and systems for communicating with third party resources in a cloud computing environment |
US7787609B1 (en) | 2005-10-06 | 2010-08-31 | Avaya Inc. | Prioritized service delivery based on presence and availability of interruptible enterprise resources with skills |
US7809127B2 (en) | 2005-05-26 | 2010-10-05 | Avaya Inc. | Method for discovering problem agent behaviors |
US7822587B1 (en) | 2005-10-03 | 2010-10-26 | Avaya Inc. | Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior |
US20110016186A1 (en) * | 2003-11-07 | 2011-01-20 | Samir Ismail | Messaging and service system for mobile computer |
US7936867B1 (en) | 2006-08-15 | 2011-05-03 | Avaya Inc. | Multi-service request within a contact center |
US7949121B1 (en) | 2004-09-27 | 2011-05-24 | Avaya Inc. | Method and apparatus for the simultaneous delivery of multiple contacts to an agent |
US7983148B1 (en) | 2004-07-12 | 2011-07-19 | Avaya Inc. | Disaster recovery via alternative terminals and partitioned networks |
US7995742B2 (en) | 2002-12-04 | 2011-08-09 | Avaya Inc. | Outbound dialing decision criteria based |
US8000989B1 (en) | 2004-03-31 | 2011-08-16 | Avaya Inc. | Using true value in routing work items to resources |
US8094804B2 (en) | 2003-09-26 | 2012-01-10 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US8150003B1 (en) | 2007-01-23 | 2012-04-03 | Avaya Inc. | Caller initiated undivert from voicemail |
CN102422268A (en) * | 2009-03-16 | 2012-04-18 | 苹果公司 | A framework for supporting multi-device collaboration |
US8234141B1 (en) | 2004-09-27 | 2012-07-31 | Avaya Inc. | Dynamic work assignment strategies based on multiple aspects of agent proficiency |
US20120254467A1 (en) * | 2011-04-04 | 2012-10-04 | International Business Machines Corporation | Mainframe Web Client |
EP2508968A1 (en) * | 2009-12-24 | 2012-10-10 | Huawei Device Co., Ltd. | Method for realizing routing configuration and routing equipment |
US8301581B2 (en) | 2009-09-24 | 2012-10-30 | Avaya Inc. | Group compositing algorithms for presence |
US20120278817A1 (en) * | 2011-04-26 | 2012-11-01 | Oracle International Corporation | Event distribution pattern for use with a distributed data grid |
US20130036157A1 (en) * | 2011-08-04 | 2013-02-07 | Motivity Solutions, Inc. | Server hierarchical structure on user-agents |
US8391463B1 (en) | 2006-09-01 | 2013-03-05 | Avaya Inc. | Method and apparatus for identifying related contacts |
US20130073659A1 (en) * | 2000-11-20 | 2013-03-21 | At&T Mobility Ii Llc | Methods and Systems for Providing Application Level Presence Information in Wireless Communication |
US8452849B2 (en) | 2002-11-18 | 2013-05-28 | Facebook, Inc. | Host-based intelligent results related to a character stream |
US8504534B1 (en) | 2007-09-26 | 2013-08-06 | Avaya Inc. | Database structures and administration techniques for generalized localization of database items |
US20130254258A1 (en) * | 2001-09-28 | 2013-09-26 | International Business Machines Corporation | Offloading application components to edge servers |
US8565386B2 (en) | 2009-09-29 | 2013-10-22 | Avaya Inc. | Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints |
US8577972B1 (en) | 2003-09-05 | 2013-11-05 | Facebook, Inc. | Methods and systems for capturing and managing instant messages |
US8701014B1 (en) | 2002-11-18 | 2014-04-15 | Facebook, Inc. | Account linking |
US8738412B2 (en) | 2004-07-13 | 2014-05-27 | Avaya Inc. | Method and apparatus for supporting individualized selection rules for resource allocation |
US8737173B2 (en) | 2006-02-24 | 2014-05-27 | Avaya Inc. | Date and time dimensions for contact center reporting in arbitrary international time zones |
US8811597B1 (en) | 2006-09-07 | 2014-08-19 | Avaya Inc. | Contact center performance prediction |
US8856182B2 (en) | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US8874672B2 (en) | 2003-03-26 | 2014-10-28 | Facebook, Inc. | Identifying and using identities deemed to be known to a user |
US20140330898A1 (en) * | 2010-11-08 | 2014-11-06 | Sony Corporation | Methods and systems for use in providing a remote user interface |
US8938063B1 (en) | 2006-09-07 | 2015-01-20 | Avaya Inc. | Contact center service monitoring and correcting |
US8954475B2 (en) * | 2011-11-10 | 2015-02-10 | Microsoft Technology Licensing, Llc | Deep cloning of objects using binary format |
US8965964B1 (en) | 2002-11-18 | 2015-02-24 | Facebook, Inc. | Managing forwarded electronic messages |
US9081839B2 (en) | 2011-01-28 | 2015-07-14 | Oracle International Corporation | Push replication for use with a distributed data grid |
US9203794B2 (en) | 2002-11-18 | 2015-12-01 | Facebook, Inc. | Systems and methods for reconfiguring electronic messages |
US9203879B2 (en) | 2000-03-17 | 2015-12-01 | Facebook, Inc. | Offline alerts mechanism |
US9246975B2 (en) | 2000-03-17 | 2016-01-26 | Facebook, Inc. | State change alerts mechanism |
US9319356B2 (en) | 2002-11-18 | 2016-04-19 | Facebook, Inc. | Message delivery control settings |
US9398152B2 (en) | 2004-02-25 | 2016-07-19 | Avaya Inc. | Using business rules for determining presence |
US9516069B2 (en) | 2009-11-17 | 2016-12-06 | Avaya Inc. | Packet headers as a trigger for automatic activation of special-purpose softphone applications |
US20170126603A1 (en) * | 2015-10-28 | 2017-05-04 | International Business Machines Corporation | Distributing retained messages information in a clustered publish/subscribe system |
US9667585B2 (en) | 2002-11-18 | 2017-05-30 | Facebook, Inc. | Central people lists accessible by multiple applications |
US20170180379A1 (en) * | 2004-02-04 | 2017-06-22 | Huawei Technologies Co., Ltd. | Enforcement of document element immutability |
CN107204989A (en) * | 2017-06-30 | 2017-09-26 | 腾讯科技(深圳)有限公司 | Ad blocking method, terminal, server and storage medium |
US10187334B2 (en) | 2003-11-26 | 2019-01-22 | Facebook, Inc. | User-defined electronic message preferences |
US10671600B1 (en) | 2007-07-24 | 2020-06-02 | Avaya Inc. | Communications-enabled dynamic social network routing utilizing presence |
CN112995636A (en) * | 2021-03-09 | 2021-06-18 | 浙江大学 | 360-degree virtual reality video transmission system based on edge calculation and active cache and parameter optimization method |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090856B1 (en) | 2000-01-31 | 2012-01-03 | Telecommunication Systems, Inc. | Intelligent messaging network server interconnection |
US7003571B1 (en) | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
US7483983B1 (en) * | 2000-11-13 | 2009-01-27 | Telecommunication Systems, Inc. | Method and system for deploying content to wireless devices |
US7191233B2 (en) * | 2001-09-17 | 2007-03-13 | Telecommunication Systems, Inc. | System for automated, mid-session, user-directed, device-to-device session transfer system |
US6757722B2 (en) * | 2002-07-16 | 2004-06-29 | Nokia Corporation | System and method for providing partial presence notifications |
US7426535B2 (en) * | 2002-10-08 | 2008-09-16 | Telecommunication Systems, Inc. | Coordination of data received from one or more sources over one or more channels into a single context |
US8335860B2 (en) * | 2002-12-19 | 2012-12-18 | Nokia Corporation | Filtering application services |
US7774831B2 (en) * | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a network |
JP2005196600A (en) * | 2004-01-09 | 2005-07-21 | Hitachi Ltd | Presence data management method |
US20070050448A1 (en) * | 2005-08-25 | 2007-03-01 | Polycom, Inc. | Method and system for information collaboration over an IP network via handheld wireless communication devices |
US8781532B2 (en) * | 2005-09-19 | 2014-07-15 | Google Inc. | Customized data retrieval applications for mobile devices providing interpretation of markup language data |
JP2007310596A (en) * | 2006-05-17 | 2007-11-29 | Sharp Corp | Service providing device, computer program and recording medium |
US8745486B2 (en) * | 2007-01-25 | 2014-06-03 | Microsoft Corporation | Streamable interactive rendering-independent page layout |
US20080244542A1 (en) * | 2007-04-02 | 2008-10-02 | Paul Toth | Soap service-oriented systems and methods |
US9165301B2 (en) * | 2007-06-06 | 2015-10-20 | Core Audience, Inc. | Network devices for replacing an advertisement with another advertisement |
US8264494B2 (en) * | 2007-06-18 | 2012-09-11 | Pano Logic, Inc. | Remote graphics rendering across a network |
US9596292B1 (en) * | 2007-08-03 | 2017-03-14 | EMC IP Holding Company LLC | Client-side scripts in a service-oriented API environment |
US8316348B2 (en) * | 2007-08-08 | 2012-11-20 | International Business Machines Corporation | Method, framework, and program product for formatting and serving web content |
US8266630B2 (en) * | 2007-09-03 | 2012-09-11 | International Business Machines Corporation | High-performance XML processing in a common event infrastructure |
CN102257793A (en) * | 2008-12-19 | 2011-11-23 | 爱立信电话股份有限公司 | A method and arrangement for handling resource data |
US20100162374A1 (en) * | 2008-12-19 | 2010-06-24 | Nair Jiji U | Cost effective updating of mobile computing devices and communicating with mobile computing devices |
US8271615B2 (en) * | 2009-03-31 | 2012-09-18 | Cloud Connex, Llc | Centrally managing and monitoring software as a service (SaaS) applications |
US8028079B2 (en) | 2009-06-15 | 2011-09-27 | Microsoft Corporation | Efficient transform from XML to javascript objects |
US9313800B2 (en) * | 2009-06-23 | 2016-04-12 | Nokia Technologies Oy | Method and apparatus for optimizing energy consumption for wireless connectivity |
US10002202B2 (en) * | 2010-05-28 | 2018-06-19 | Microsoft Technology Licensing, Llc | Realtime websites with publication and subscription |
US8661076B2 (en) | 2010-09-23 | 2014-02-25 | Salesforce.Com, Inc. | Business networking information feed alerts |
US9262185B2 (en) * | 2010-11-22 | 2016-02-16 | Unisys Corporation | Scripted dynamic document generation using dynamic document template scripts |
US8977677B2 (en) | 2010-12-01 | 2015-03-10 | Microsoft Technology Licensing, Llc | Throttling usage of resources |
FI20106335A0 (en) * | 2010-12-17 | 2010-12-17 | Pocketsoft Oy | Providing a custom application for a user terminal |
US8645491B2 (en) | 2010-12-18 | 2014-02-04 | Qualcomm Incorporated | Methods and apparatus for enabling a hybrid web and native application |
US8983924B2 (en) * | 2011-05-12 | 2015-03-17 | Microsoft Technology Licensing, Llc | Sharing public search queries and interactions |
US8438165B2 (en) | 2011-05-12 | 2013-05-07 | Microsoft Corporation | Interest tracking using shared search queries and interactions |
US10503343B2 (en) | 2011-07-06 | 2019-12-10 | Microsoft Technology Licensing, Llc | Integrated graphical user interface |
WO2013074548A1 (en) * | 2011-11-15 | 2013-05-23 | Trimble Navigation Limited | Efficient distribution of functional extensions to a 3d modeling software |
EP2780825A4 (en) | 2011-11-15 | 2015-07-08 | Trimble Navigation Ltd | Extensible web-based 3d modeling |
US9329901B2 (en) | 2011-12-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Resource health based scheduling of workload tasks |
US9305274B2 (en) | 2012-01-16 | 2016-04-05 | Microsoft Technology Licensing, Llc | Traffic shaping based on request resource usage |
US8996661B1 (en) * | 2012-02-09 | 2015-03-31 | Instart Logic, Inc. | Smart packaging for mobile applications |
US10031728B2 (en) * | 2012-03-23 | 2018-07-24 | Comcast Cable Communications, Llc | Application support for network devices |
US10417314B2 (en) * | 2012-06-14 | 2019-09-17 | Open Text Sa Ulc | Systems and methods of a script generation engine |
US20140055495A1 (en) * | 2012-08-22 | 2014-02-27 | Lg Cns Co., Ltd. | Responsive user interface engine for display devices |
GB2508598A (en) | 2012-12-04 | 2014-06-11 | Ibm | Splitting the processing logic of a distributed application page between client and server |
US9122524B2 (en) | 2013-01-08 | 2015-09-01 | Microsoft Technology Licensing, Llc | Identifying and throttling tasks based on task interactivity |
CN103929443A (en) * | 2013-01-10 | 2014-07-16 | 深圳市微讯移通信息技术有限公司 | Built-in type game server system and application method for same |
US9946995B2 (en) * | 2013-03-15 | 2018-04-17 | Bottomline Technologies (De) Inc. | System and method for collecting clearing information for implementing a global electronic funds transfer |
US9697290B2 (en) | 2014-01-16 | 2017-07-04 | International Business Machines Corporation | Providing relevant information to a user based upon monitored user activities in one or more contexts |
JP6277828B2 (en) * | 2014-03-31 | 2018-02-14 | 富士通株式会社 | Edit assist program, edit assist method, and edit assist device |
US10216504B2 (en) * | 2015-06-05 | 2019-02-26 | Oracle International Corporation | System and method for insulating a web user interface application from underlying technologies in an integration cloud service |
US9645838B2 (en) * | 2015-06-30 | 2017-05-09 | International Business Machines Corporation | Automatic discovery of a JavaScript API |
US10643023B2 (en) * | 2015-09-25 | 2020-05-05 | Oath, Inc. | Programmatic native rendering of structured content |
CN105354052B (en) * | 2015-09-30 | 2018-12-04 | 北京奇虎科技有限公司 | flash game loading method and device |
CN107783804B (en) * | 2016-08-30 | 2020-09-11 | 平安科技(深圳)有限公司 | Calling method and terminal of programmable interface |
CN106446238A (en) * | 2016-10-10 | 2017-02-22 | 合肥红珊瑚软件服务有限公司 | Web data mining system based on XML |
WO2018190591A1 (en) | 2017-04-10 | 2018-10-18 | Samsung Electronics Co., Ltd. | Method and apparatus for processing user request |
CN108416038A (en) * | 2018-03-14 | 2018-08-17 | 北京网信云服信息科技有限公司 | A kind of data statistical approach and device of single page application |
CN109150826A (en) * | 2018-06-29 | 2019-01-04 | 中译语通科技股份有限公司 | A method of optimization presence information load |
JP6726793B2 (en) | 2018-09-10 | 2020-07-22 | スラック テクノロジーズ, インコーポレイテッド | Dynamic Object Update Subscription Based on User Interaction with Interface |
CN109309672B (en) * | 2018-09-17 | 2020-11-13 | 南京海兴电网技术有限公司 | Web-based space data real-time pushing multi-task scheduling method |
US11003999B1 (en) | 2018-11-09 | 2021-05-11 | Bottomline Technologies, Inc. | Customized automated account opening decisioning using machine learning |
US11409990B1 (en) | 2019-03-01 | 2022-08-09 | Bottomline Technologies (De) Inc. | Machine learning archive mechanism using immutable storage |
US11687807B1 (en) | 2019-06-26 | 2023-06-27 | Bottomline Technologies, Inc. | Outcome creation based upon synthesis of history |
US11532040B2 (en) | 2019-11-12 | 2022-12-20 | Bottomline Technologies Sarl | International cash management software using machine learning |
US11526859B1 (en) | 2019-11-12 | 2022-12-13 | Bottomline Technologies, Sarl | Cash flow forecasting using a bottoms-up machine learning approach |
US11704671B2 (en) | 2020-04-02 | 2023-07-18 | Bottomline Technologies Limited | Financial messaging transformation-as-a-service |
US11729023B2 (en) | 2021-04-29 | 2023-08-15 | Bank Of America Corporation | Artificial intelligence integration of third-party software into large-scale digital platforms |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044403A (en) * | 1997-12-31 | 2000-03-28 | At&T Corp | Network server platform for internet, JAVA server and video application server |
US6170015B1 (en) * | 1998-05-15 | 2001-01-02 | Nortel Networks Limited | Network apparatus with Java co-processor |
US6260083B1 (en) * | 1998-05-12 | 2001-07-10 | International Business Machines Corporation | System for Java data block transfers of unknown length for applets and applications by determining length of data in local buffer and passing length of data combined with data out of program |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961712B1 (en) * | 1996-10-25 | 2005-11-01 | Ipf, Inc. | Consumer product information request (CPIR) enabling servlets and web-based consumer product information catalogs employing the same |
US6473609B1 (en) * | 1995-12-11 | 2002-10-29 | Openwave Systems Inc. | Method and architecture for interactive two-way communication devices to interact with a network |
US6039245A (en) * | 1996-06-10 | 2000-03-21 | Diebold, Incorporated | Financial transaction processing system and method |
US5898835A (en) * | 1996-08-16 | 1999-04-27 | Electronic Data Systems Corporation | System and method for remotely executing a command |
US6732183B1 (en) * | 1996-12-31 | 2004-05-04 | Broadware Technologies, Inc. | Video and audio streaming for multiple users |
US6892226B1 (en) * | 1997-03-27 | 2005-05-10 | Intel Corporation | System for delivery of dynamic content to a client device |
US6944817B1 (en) * | 1997-03-31 | 2005-09-13 | Intel Corporation | Method and apparatus for local generation of Web pages |
US5983073A (en) * | 1997-04-04 | 1999-11-09 | Ditzik; Richard J. | Modular notebook and PDA computer systems for personal computing and wireless communications |
US5991806A (en) * | 1997-06-09 | 1999-11-23 | Dell Usa, L.P. | Dynamic system control via messaging in a network management system |
WO1999001802A2 (en) * | 1997-07-01 | 1999-01-14 | Sanga International, Inc. | Platform-independent universal data access system and method in a client-server environment |
US7325077B1 (en) * | 1997-08-21 | 2008-01-29 | Beryl Technical Assays Llc | Miniclient for internet appliance |
US6564250B1 (en) * | 1997-08-21 | 2003-05-13 | Planetweb, Inc. | Miniclient for internet appliance |
US6832084B1 (en) * | 1998-01-07 | 2004-12-14 | Microsoft Corporation | Wireless database environment |
CA2332413A1 (en) * | 1998-05-15 | 1999-11-25 | Rick W. Landsman | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
US7025209B2 (en) * | 1998-05-29 | 2006-04-11 | Palmsource, Inc. | Method and apparatus for wireless internet access |
US20020002596A1 (en) * | 1998-09-03 | 2002-01-03 | Sony Corporation | Apparatus and method for retrieving information over a computer network |
US6278449B1 (en) * | 1998-09-03 | 2001-08-21 | Sony Corporation | Apparatus and method for designating information to be retrieved over a computer network |
US6362839B1 (en) * | 1998-09-29 | 2002-03-26 | Rockwell Software Inc. | Method and apparatus for displaying mechanical emulation with graphical objects in an object oriented computing environment |
US7212543B1 (en) * | 1998-10-12 | 2007-05-01 | Teliasonera Ab | Method, system and device for establishing communication between different communication networks |
US7284193B1 (en) * | 1998-12-31 | 2007-10-16 | Microsoft Corporation | Page object model |
US6272493B1 (en) * | 1999-01-21 | 2001-08-07 | Wired Solutions, Llc | System and method for facilitating a windows based content manifestation environment within a WWW browser |
US6535896B2 (en) * | 1999-01-29 | 2003-03-18 | International Business Machines Corporation | Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools |
US6480860B1 (en) * | 1999-02-11 | 2002-11-12 | International Business Machines Corporation | Tagged markup language interface with document type definition to access data in object oriented database |
US6785730B1 (en) * | 1999-02-16 | 2004-08-31 | Rebecca S. Taylor | Generic communications protocol translator |
US6701368B1 (en) * | 1999-04-26 | 2004-03-02 | Cisco Technology, Inc. | Providing a stream of data to a browser to update properties on a page |
US7603408B1 (en) * | 1999-05-10 | 2009-10-13 | 3Com Corporation | Method and system for network management |
US6842903B1 (en) * | 1999-05-19 | 2005-01-11 | Sun Microsystems, Inc. | System and method for providing dynamic references between services in a computer system |
US6993570B1 (en) * | 1999-06-15 | 2006-01-31 | Sun Microsystems, Inc. | System and method for pushing personalized content to small footprint devices |
JP3490642B2 (en) * | 1999-06-30 | 2004-01-26 | 松下電器産業株式会社 | Transmission device and transmission method, reception device and reception method, and transmission / reception system and transmission / reception method |
US7120628B1 (en) * | 1999-07-01 | 2006-10-10 | International Business Machines Corporation | System and method for enabling a user to subscribe to updates from information sources |
US6199195B1 (en) * | 1999-07-08 | 2001-03-06 | Science Application International Corporation | Automatically generated objects within extensible object frameworks and links to enterprise resources |
US7058076B1 (en) * | 1999-07-08 | 2006-06-06 | Lucent Technologies Inc. | Internet protocol (IP)-based wireless infrastructure network |
WO2001016765A1 (en) | 1999-09-01 | 2001-03-08 | Virginia Tech Intellectual Properties, Inc. | System and method for sharing computer action scripts through a searchable database, and related applications thereof |
US6847999B1 (en) * | 1999-09-03 | 2005-01-25 | Cisco Technology, Inc. | Application server for self-documenting voice enabled web applications defined using extensible markup language documents |
GB2371902B (en) | 1999-09-10 | 2004-11-17 | Avantgo Inc | System, method, and computer program product for interactive interfacing with mobile devices |
US20010047394A1 (en) * | 1999-09-10 | 2001-11-29 | Kloba David D. | System, method, and computer program product for executing scripts on mobile devices |
US6981212B1 (en) * | 1999-09-30 | 2005-12-27 | International Business Machines Corporation | Extensible markup language (XML) server pages having custom document object model (DOM) tags |
US7039860B1 (en) * | 1999-10-01 | 2006-05-02 | Netspinner Solutions As | Creating web pages category list prior to the list being served to a browser |
US6950881B1 (en) * | 1999-11-02 | 2005-09-27 | Mshift, Inc. | System for converting wireless communications for a mobile device |
US6351776B1 (en) | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
US7174506B1 (en) * | 1999-11-05 | 2007-02-06 | International Business Machines Corporation | Method and system for producing dynamic web pages |
US6810395B1 (en) * | 1999-11-22 | 2004-10-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for query-specific bookmarking and data collection |
US7054952B1 (en) * | 1999-12-09 | 2006-05-30 | International Business Machines Corp. | Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing interactive javascript support |
US6628928B1 (en) * | 1999-12-10 | 2003-09-30 | Ecarmerce Incorporated | Internet-based interactive radio system for use with broadcast radio stations |
US7490292B2 (en) * | 1999-12-17 | 2009-02-10 | International Business Machines Corporation | Web-based instruction |
US20010056401A1 (en) * | 2000-02-03 | 2001-12-27 | Peter Tompkins | Integrated system for providing financial services including internet TV capabilities |
US6643652B2 (en) * | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
AU2001232838A1 (en) * | 2000-01-14 | 2001-07-24 | Portable Websites.Com, Inc. | Method and apparatus for creating relocatable internet web sites |
US7047033B2 (en) * | 2000-02-01 | 2006-05-16 | Infogin Ltd | Methods and apparatus for analyzing, processing and formatting network information such as web-pages |
EP1256046A2 (en) * | 2000-02-14 | 2002-11-13 | Geophoenix, Inc. | Methods and apparatus for viewing information in virtual space |
US7330824B1 (en) * | 2000-02-25 | 2008-02-12 | Navic Systems, Inc. | Method and system for content profiling and activation |
US6748447B1 (en) * | 2000-04-07 | 2004-06-08 | Network Appliance, Inc. | Method and apparatus for scalable distribution of information in a distributed network |
US6732175B1 (en) * | 2000-04-13 | 2004-05-04 | Intel Corporation | Network apparatus for switching based on content of application data |
US7464381B1 (en) * | 2000-05-12 | 2008-12-09 | Oracle International Corporation | Content update proxy method |
US7219136B1 (en) * | 2000-06-12 | 2007-05-15 | Cisco Technology, Inc. | Apparatus and methods for providing network-based information suitable for audio output |
US20020156702A1 (en) * | 2000-06-23 | 2002-10-24 | Benjamin Kane | System and method for producing, publishing, managing and interacting with e-content on multiple platforms |
US7406515B1 (en) * | 2000-06-27 | 2008-07-29 | Aspect Communications | System and method for automated and customizable agent availability and task assignment management |
US7308484B1 (en) * | 2000-06-30 | 2007-12-11 | Cisco Technology, Inc. | Apparatus and methods for providing an audibly controlled user interface for audio-based communication devices |
IL153841A0 (en) * | 2000-07-10 | 2003-07-31 | Viven Ltd | Broadcast content over cellular telephones |
WO2002005065A2 (en) * | 2000-07-11 | 2002-01-17 | Juice Software, Inc. | A method and system for integrating network-based functionality into productivity applications and documents |
US7058700B1 (en) * | 2000-07-13 | 2006-06-06 | Oracle International Corporation | Delta caching |
US7379963B1 (en) * | 2000-07-14 | 2008-05-27 | Knownow-Delaware | Delivery of any type of information to anyone anytime anywhere |
US7051080B1 (en) * | 2000-08-04 | 2006-05-23 | Oracle International Corporation | Techniques for navigating in mobile applications |
US6704024B2 (en) * | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
US7089295B2 (en) * | 2000-09-06 | 2006-08-08 | Oracle International Corporation | Customizing content provided by a service |
US7152203B2 (en) * | 2000-09-11 | 2006-12-19 | Appeon Corporation | Independent update and assembly of web page elements |
AU2001289212A1 (en) * | 2000-09-11 | 2002-03-26 | Viafone, Inc. | Method and system for integrating applications and mobile networks |
US7089330B1 (en) * | 2000-09-28 | 2006-08-08 | I2 Technologies Us, Inc. | System and method for transforming custom content generation tags associated with web pages |
US6922411B1 (en) * | 2000-09-29 | 2005-07-26 | Voxeo Corporation | Networked computer telephony system driven by web-based applications |
US7272644B1 (en) * | 2000-09-29 | 2007-09-18 | Intel Corporation | Internet based network topology discovery |
US20020161928A1 (en) * | 2000-10-10 | 2002-10-31 | Awele Ndili | Smart agent for providing network content to wireless devices |
US20020069263A1 (en) * | 2000-10-13 | 2002-06-06 | Mark Sears | Wireless java technology |
US6501956B1 (en) * | 2000-10-17 | 2002-12-31 | Intervoice Limited Partnership | Providing blended interface for wireless information services |
US20020087630A1 (en) * | 2000-10-20 | 2002-07-04 | Jonathan Wu | Enhanced information and presence service |
US7054901B2 (en) * | 2001-05-31 | 2006-05-30 | Juniper Networks, Inc. | Network management interface with selective rendering of output |
US7130854B2 (en) * | 2001-08-14 | 2006-10-31 | Endforce, Inc. | Selection and storage of policies in network management |
-
2001
- 2001-10-19 US US10/033,097 patent/US20020087630A1/en not_active Abandoned
-
2005
- 2005-12-12 US US11/301,492 patent/US7558876B2/en not_active Expired - Fee Related
- 2005-12-12 US US11/301,733 patent/US7823166B2/en not_active Expired - Fee Related
-
2007
- 2007-07-17 US US11/879,541 patent/US7610406B2/en not_active Expired - Fee Related
-
2010
- 2010-10-22 US US12/925,477 patent/US8112768B2/en not_active Expired - Fee Related
-
2012
- 2012-02-06 US US13/366,989 patent/US8276162B2/en not_active Expired - Lifetime
- 2012-09-24 US US13/625,672 patent/US8719846B2/en not_active Expired - Fee Related
-
2013
- 2013-12-10 US US14/101,657 patent/US9264514B2/en not_active Expired - Lifetime
-
2016
- 2016-01-04 US US14/987,450 patent/US9426252B2/en not_active Expired - Lifetime
- 2016-07-20 US US15/215,485 patent/US9699259B2/en not_active Expired - Fee Related
-
2017
- 2017-06-15 US US15/624,331 patent/US10142431B2/en not_active Expired - Fee Related
-
2018
- 2018-10-22 US US16/166,631 patent/US20190058774A1/en not_active Abandoned
-
2019
- 2019-03-18 US US16/356,457 patent/US20190215377A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044403A (en) * | 1997-12-31 | 2000-03-28 | At&T Corp | Network server platform for internet, JAVA server and video application server |
US6260083B1 (en) * | 1998-05-12 | 2001-07-10 | International Business Machines Corporation | System for Java data block transfers of unknown length for applets and applications by determining length of data in local buffer and passing length of data combined with data out of program |
US6170015B1 (en) * | 1998-05-15 | 2001-01-02 | Nortel Networks Limited | Network apparatus with Java co-processor |
Cited By (165)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203879B2 (en) | 2000-03-17 | 2015-12-01 | Facebook, Inc. | Offline alerts mechanism |
US9736209B2 (en) | 2000-03-17 | 2017-08-15 | Facebook, Inc. | State change alerts mechanism |
US9246975B2 (en) | 2000-03-17 | 2016-01-26 | Facebook, Inc. | State change alerts mechanism |
US7610406B2 (en) * | 2000-10-20 | 2009-10-27 | Jonathan Wu | Updating a web user interface on a client device |
US20070266176A1 (en) * | 2000-10-20 | 2007-11-15 | Jonathan Wu | Updating a web user interface on a client device |
US20130073659A1 (en) * | 2000-11-20 | 2013-03-21 | At&T Mobility Ii Llc | Methods and Systems for Providing Application Level Presence Information in Wireless Communication |
US20140067968A9 (en) * | 2000-11-20 | 2014-03-06 | At&T Mobility Ii Llc | Methods and Systems for Providing Application Level Presence Information in Wireless Communication |
US8909700B2 (en) * | 2000-11-20 | 2014-12-09 | At&T Mobility Ii Llc | Methods and systems for providing application level presence information in wireless communication |
US8505024B2 (en) | 2000-12-18 | 2013-08-06 | Shaw Parsing Llc | Storing state in a dynamic content routing network |
US20060041681A1 (en) * | 2000-12-18 | 2006-02-23 | Shaw Parsing, Llc | Techniques for delivering personalized content with a real-time routing network |
US7814225B2 (en) | 2000-12-18 | 2010-10-12 | Rumelhart Karl E | Techniques for delivering personalized content with a real-time routing network |
US7930362B2 (en) | 2000-12-18 | 2011-04-19 | Shaw Parsing, Llc | Techniques for delivering personalized content with a real-time routing network |
US20070033293A1 (en) * | 2000-12-18 | 2007-02-08 | Shaw Parsing, L.L.C. | Techniques for delivering personalized content with a real-time routing network |
US20070050519A1 (en) * | 2000-12-18 | 2007-03-01 | Cano Charles E | Storing state in a dynamic content routing network |
US9613076B2 (en) | 2000-12-18 | 2017-04-04 | Zarbaña Digital Fund Llc | Storing state in a dynamic content routing network |
US20110161458A1 (en) * | 2000-12-18 | 2011-06-30 | Shaw Parsing, Llc | Techniques For Delivering Personalized Content With A Real-Time Routing Network |
US20070239822A1 (en) * | 2000-12-18 | 2007-10-11 | Timothy Tuttle | Asynchronous messaging using a node specialization architecture in the dynamic routing network |
US9071648B2 (en) | 2000-12-18 | 2015-06-30 | Shaw Parsing L.L.C. | Asynchronous messaging using a node specialization architecture in the dynamic routing network |
US10860567B2 (en) | 2000-12-18 | 2020-12-08 | Zarbaña Digital Fund Llc | Storing state in a dynamic content routing network |
US8407722B2 (en) * | 2000-12-18 | 2013-03-26 | Shaw Parsing L.L.C. | Asynchronous messaging using a node specialization architecture in the dynamic routing network |
US20020103935A1 (en) * | 2001-01-26 | 2002-08-01 | Neil Fishman | Pushing rich content information to mobile devices |
US7519720B2 (en) | 2001-01-26 | 2009-04-14 | Microsoft Corporation | Pushing rich content information to mobile devices |
US20070016690A1 (en) * | 2001-01-26 | 2007-01-18 | Microsoft Corporation | Pushing Rich Content Information to Mobile Devices |
US20130254258A1 (en) * | 2001-09-28 | 2013-09-26 | International Business Machines Corporation | Offloading application components to edge servers |
US20030154293A1 (en) * | 2002-02-14 | 2003-08-14 | Zmolek Andrew Charles | Presence tracking and name space interconnection techniques |
US8108516B2 (en) | 2002-02-14 | 2012-01-31 | Avaya Inc. | Presence tracking and name space interconnection techniques |
US9253136B2 (en) | 2002-11-18 | 2016-02-02 | Facebook, Inc. | Electronic message delivery based on presence information |
US20040148347A1 (en) * | 2002-11-18 | 2004-07-29 | Barry Appelman | Dynamic identification of other users to an online user |
US9171064B2 (en) | 2002-11-18 | 2015-10-27 | Facebook, Inc. | Intelligent community based results related to a character stream |
US8965964B1 (en) | 2002-11-18 | 2015-02-24 | Facebook, Inc. | Managing forwarded electronic messages |
US8819176B2 (en) | 2002-11-18 | 2014-08-26 | Facebook, Inc. | Intelligent map results related to a character stream |
US10778635B2 (en) | 2002-11-18 | 2020-09-15 | Facebook, Inc. | People lists |
US9053175B2 (en) | 2002-11-18 | 2015-06-09 | Facebook, Inc. | Intelligent results using a spelling correction agent |
US10389661B2 (en) | 2002-11-18 | 2019-08-20 | Facebook, Inc. | Managing electronic messages sent to mobile devices associated with electronic messaging accounts |
US9203794B2 (en) | 2002-11-18 | 2015-12-01 | Facebook, Inc. | Systems and methods for reconfiguring electronic messages |
US8775560B2 (en) | 2002-11-18 | 2014-07-08 | Facebook, Inc. | Host-based intelligent results related to a character stream |
US10033669B2 (en) | 2002-11-18 | 2018-07-24 | Facebook, Inc. | Managing electronic messages sent to reply telephone numbers |
US20090213001A1 (en) * | 2002-11-18 | 2009-08-27 | Aol Llc | Dynamic Location of a Subordinate User |
US9894018B2 (en) | 2002-11-18 | 2018-02-13 | Facebook, Inc. | Electronic messaging using reply telephone numbers |
US9203647B2 (en) | 2002-11-18 | 2015-12-01 | Facebook, Inc. | Dynamic online and geographic location of a user |
US7899862B2 (en) | 2002-11-18 | 2011-03-01 | Aol Inc. | Dynamic identification of other users to an online user |
US9075867B2 (en) | 2002-11-18 | 2015-07-07 | Facebook, Inc. | Intelligent results using an assistant |
US8701014B1 (en) | 2002-11-18 | 2014-04-15 | Facebook, Inc. | Account linking |
US9852126B2 (en) | 2002-11-18 | 2017-12-26 | Facebook, Inc. | Host-based intelligent results related to a character stream |
US9774560B2 (en) | 2002-11-18 | 2017-09-26 | Facebook, Inc. | People lists |
US9769104B2 (en) | 2002-11-18 | 2017-09-19 | Facebook, Inc. | Methods and system for delivering multiple notifications |
US9047364B2 (en) | 2002-11-18 | 2015-06-02 | Facebook, Inc. | Intelligent client capability-based results related to a character stream |
US9313046B2 (en) | 2002-11-18 | 2016-04-12 | Facebook, Inc. | Presenting dynamic location of a user |
US8954534B2 (en) | 2002-11-18 | 2015-02-10 | Facebook, Inc. | Host-based intelligent results related to a character stream |
US9319356B2 (en) | 2002-11-18 | 2016-04-19 | Facebook, Inc. | Message delivery control settings |
US8954531B2 (en) | 2002-11-18 | 2015-02-10 | Facebook, Inc. | Intelligent messaging label results related to a character stream |
US9356890B2 (en) | 2002-11-18 | 2016-05-31 | Facebook, Inc. | Enhanced buddy list using mobile device identifiers |
US9515977B2 (en) | 2002-11-18 | 2016-12-06 | Facebook, Inc. | Time based electronic message delivery |
US8452849B2 (en) | 2002-11-18 | 2013-05-28 | Facebook, Inc. | Host-based intelligent results related to a character stream |
US9053173B2 (en) | 2002-11-18 | 2015-06-09 | Facebook, Inc. | Intelligent results related to a portion of a search query |
US9560000B2 (en) | 2002-11-18 | 2017-01-31 | Facebook, Inc. | Reconfiguring an electronic message to effect an enhanced notification |
US9571439B2 (en) | 2002-11-18 | 2017-02-14 | Facebook, Inc. | Systems and methods for notification delivery |
US9053174B2 (en) | 2002-11-18 | 2015-06-09 | Facebook, Inc. | Intelligent vendor results related to a character stream |
US8122137B2 (en) | 2002-11-18 | 2012-02-21 | Aol Inc. | Dynamic location of a subordinate user |
US9571440B2 (en) | 2002-11-18 | 2017-02-14 | Facebook, Inc. | Notification archive |
US9075868B2 (en) | 2002-11-18 | 2015-07-07 | Facebook, Inc. | Intelligent results based on database queries |
US8954530B2 (en) | 2002-11-18 | 2015-02-10 | Facebook, Inc. | Intelligent results related to a character stream |
US9729489B2 (en) | 2002-11-18 | 2017-08-08 | Facebook, Inc. | Systems and methods for notification management and delivery |
US9621376B2 (en) | 2002-11-18 | 2017-04-11 | Facebook, Inc. | Dynamic location of a subordinate user |
US9667585B2 (en) | 2002-11-18 | 2017-05-30 | Facebook, Inc. | Central people lists accessible by multiple applications |
US9647872B2 (en) | 2002-11-18 | 2017-05-09 | Facebook, Inc. | Dynamic identification of other users to an online user |
US7995742B2 (en) | 2002-12-04 | 2011-08-09 | Avaya Inc. | Outbound dialing decision criteria based |
US20090028303A1 (en) * | 2003-01-20 | 2009-01-29 | Avaya Inc. | Messaging advise in presence-aware networks |
US8050388B2 (en) | 2003-01-20 | 2011-11-01 | Avaya Inc. | Messaging advise in presence-aware networks |
US8014497B2 (en) | 2003-01-20 | 2011-09-06 | Avaya Inc. | Messaging advise in presence-aware networks |
US8107597B2 (en) | 2003-01-20 | 2012-01-31 | Avaya Inc. | Messaging advise in presence-aware networks |
US8098799B2 (en) | 2003-01-20 | 2012-01-17 | Avaya Inc. | Messaging advise in presence-aware networks |
US8218735B2 (en) | 2003-01-20 | 2012-07-10 | Avaya Inc. | Messaging advise in presence-aware networks |
US20040141594A1 (en) * | 2003-01-20 | 2004-07-22 | Brunson Gordon R. | Messaging advise in presence-aware networks |
US7936865B2 (en) | 2003-01-20 | 2011-05-03 | Avaya Inc. | Messaging advise in presence-aware networks |
US8064574B2 (en) | 2003-01-20 | 2011-11-22 | Avaya Inc. | Messaging advise in presence-aware networks |
US7474741B2 (en) * | 2003-01-20 | 2009-01-06 | Avaya Inc. | Messaging advise in presence-aware networks |
US8874672B2 (en) | 2003-03-26 | 2014-10-28 | Facebook, Inc. | Identifying and using identities deemed to be known to a user |
US9516125B2 (en) | 2003-03-26 | 2016-12-06 | Facebook, Inc. | Identifying and using identities deemed to be known to a user |
US9531826B2 (en) | 2003-03-26 | 2016-12-27 | Facebook, Inc. | Managing electronic messages based on inference scores |
US9736255B2 (en) | 2003-03-26 | 2017-08-15 | Facebook, Inc. | Methods of providing access to messages based on degrees of separation |
US8577972B1 (en) | 2003-09-05 | 2013-11-05 | Facebook, Inc. | Methods and systems for capturing and managing instant messages |
US9070118B2 (en) | 2003-09-05 | 2015-06-30 | Facebook, Inc. | Methods for capturing electronic messages based on capture rules relating to user actions regarding received electronic messages |
US10102504B2 (en) | 2003-09-05 | 2018-10-16 | Facebook, Inc. | Methods for controlling display of electronic messages captured based on community rankings |
US8891747B2 (en) | 2003-09-26 | 2014-11-18 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US9025761B2 (en) | 2003-09-26 | 2015-05-05 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US8751274B2 (en) | 2003-09-26 | 2014-06-10 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US8094804B2 (en) | 2003-09-26 | 2012-01-10 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US20110016186A1 (en) * | 2003-11-07 | 2011-01-20 | Samir Ismail | Messaging and service system for mobile computer |
US8458270B2 (en) * | 2003-11-07 | 2013-06-04 | Sony Corporation | Messaging and service system for mobile computer |
US10187334B2 (en) | 2003-11-26 | 2019-01-22 | Facebook, Inc. | User-defined electronic message preferences |
US20170180379A1 (en) * | 2004-02-04 | 2017-06-22 | Huawei Technologies Co., Ltd. | Enforcement of document element immutability |
US9740869B1 (en) * | 2004-02-04 | 2017-08-22 | Huawei Technologies Co., Ltd. | Enforcement of document element immutability |
US9398152B2 (en) | 2004-02-25 | 2016-07-19 | Avaya Inc. | Using business rules for determining presence |
US7953859B1 (en) | 2004-03-31 | 2011-05-31 | Avaya Inc. | Data model of participation in multi-channel and multi-party contacts |
US8000989B1 (en) | 2004-03-31 | 2011-08-16 | Avaya Inc. | Using true value in routing work items to resources |
US8731177B1 (en) | 2004-03-31 | 2014-05-20 | Avaya Inc. | Data model of participation in multi-channel and multi-party contacts |
US7711104B1 (en) | 2004-03-31 | 2010-05-04 | Avaya Inc. | Multi-tasking tracking agent |
US7734032B1 (en) | 2004-03-31 | 2010-06-08 | Avaya Inc. | Contact center and method for tracking and acting on one and done customer contacts |
US7769154B1 (en) | 2004-06-09 | 2010-08-03 | Avaya Inc. | Aggregated perceived presence |
US7983148B1 (en) | 2004-07-12 | 2011-07-19 | Avaya Inc. | Disaster recovery via alternative terminals and partitioned networks |
US8738412B2 (en) | 2004-07-13 | 2014-05-27 | Avaya Inc. | Method and apparatus for supporting individualized selection rules for resource allocation |
US20060117318A1 (en) * | 2004-08-17 | 2006-06-01 | Shaw Parsing, Llc | Modular event-driven processing |
US20060075279A1 (en) * | 2004-08-17 | 2006-04-06 | Shaw Parsing, Llc | Techniques for upstream failure detection and failure recovery |
US8356305B2 (en) | 2004-08-17 | 2013-01-15 | Shaw Parsing, L.L.C. | Thread boundaries comprising functionalities for an event by a single thread and tasks associated with the thread boundaries configured in a defined relationship |
US8397237B2 (en) | 2004-08-17 | 2013-03-12 | Shaw Parsing, L.L.C. | Dynamically allocating threads from a thread pool to thread boundaries configured to perform a service for an event |
US20070061811A1 (en) * | 2004-08-17 | 2007-03-15 | Shaw Parsing, L.L.C. | Modular Event-Driven Processing |
US9043635B2 (en) | 2004-08-17 | 2015-05-26 | Shaw Parsing, Llc | Techniques for upstream failure detection and failure recovery |
US8234141B1 (en) | 2004-09-27 | 2012-07-31 | Avaya Inc. | Dynamic work assignment strategies based on multiple aspects of agent proficiency |
US7949121B1 (en) | 2004-09-27 | 2011-05-24 | Avaya Inc. | Method and apparatus for the simultaneous delivery of multiple contacts to an agent |
US8255950B1 (en) | 2004-10-28 | 2012-08-28 | Aol Inc. | Dynamic identification of other viewers of a television program to an online viewer |
US7669213B1 (en) | 2004-10-28 | 2010-02-23 | Aol Llc | Dynamic identification of other viewers of a television program to an online viewer |
US20060168642A1 (en) * | 2004-11-08 | 2006-07-27 | Nokia Corporation | Using presence to inform other clients about capability limitations |
US7483961B2 (en) * | 2004-11-23 | 2009-01-27 | Microsoft Corporation | Method and apparatus for controlling execution of an application |
US20060112181A1 (en) * | 2004-11-23 | 2006-05-25 | Microsoft Corporation | Method and apparatus for controlling execution of an application |
US20060167991A1 (en) * | 2004-12-16 | 2006-07-27 | Heikes Brian D | Buddy list filtering |
US7809127B2 (en) | 2005-05-26 | 2010-10-05 | Avaya Inc. | Method for discovering problem agent behaviors |
US20070016657A1 (en) * | 2005-07-14 | 2007-01-18 | Fuji Photo Film Co., Ltd. | Multimedia data processing devices, multimedia data processing methods and multimedia data processing programs |
US7779042B1 (en) | 2005-08-08 | 2010-08-17 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US8578396B2 (en) | 2005-08-08 | 2013-11-05 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US20070061708A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Script markup |
US7945853B2 (en) * | 2005-09-12 | 2011-05-17 | Microsoft Corporation | Script markup |
US7822587B1 (en) | 2005-10-03 | 2010-10-26 | Avaya Inc. | Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior |
US7787609B1 (en) | 2005-10-06 | 2010-08-31 | Avaya Inc. | Prioritized service delivery based on presence and availability of interruptible enterprise resources with skills |
US7752230B2 (en) | 2005-10-06 | 2010-07-06 | Avaya Inc. | Data extensibility using external database tables |
US20080260325A1 (en) * | 2006-02-16 | 2008-10-23 | Pavel Kornilovich | Composite Evanescent Waveguides And Associated Methods |
US8737173B2 (en) | 2006-02-24 | 2014-05-27 | Avaya Inc. | Date and time dimensions for contact center reporting in arbitrary international time zones |
US8842818B2 (en) | 2006-06-30 | 2014-09-23 | Avaya Inc. | IP telephony architecture including information storage and retrieval system to track fluency |
US20080003964A1 (en) * | 2006-06-30 | 2008-01-03 | Avaya Technology Llc | Ip telephony architecture including information storage and retrieval system to track fluency |
US7936867B1 (en) | 2006-08-15 | 2011-05-03 | Avaya Inc. | Multi-service request within a contact center |
US8391463B1 (en) | 2006-09-01 | 2013-03-05 | Avaya Inc. | Method and apparatus for identifying related contacts |
US8811597B1 (en) | 2006-09-07 | 2014-08-19 | Avaya Inc. | Contact center performance prediction |
US8938063B1 (en) | 2006-09-07 | 2015-01-20 | Avaya Inc. | Contact center service monitoring and correcting |
US8150003B1 (en) | 2007-01-23 | 2012-04-03 | Avaya Inc. | Caller initiated undivert from voicemail |
US7761484B2 (en) * | 2007-02-09 | 2010-07-20 | Microsoft Corporation | Complete mapping between the XML infoset and dynamic language data expressions |
US20080195634A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Complete mapping between the xml infoset and dynamic language data expressions |
US10671600B1 (en) | 2007-07-24 | 2020-06-02 | Avaya Inc. | Communications-enabled dynamic social network routing utilizing presence |
US8504534B1 (en) | 2007-09-26 | 2013-08-06 | Avaya Inc. | Database structures and administration techniques for generalized localization of database items |
US8856182B2 (en) | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US9930138B2 (en) * | 2009-02-23 | 2018-03-27 | Red Hat, Inc. | Communicating with third party resources in cloud computing environment |
US20100217864A1 (en) * | 2009-02-23 | 2010-08-26 | James Michael Ferris | Methods and systems for communicating with third party resources in a cloud computing environment |
CN102422268A (en) * | 2009-03-16 | 2012-04-18 | 苹果公司 | A framework for supporting multi-device collaboration |
US8301581B2 (en) | 2009-09-24 | 2012-10-30 | Avaya Inc. | Group compositing algorithms for presence |
US8565386B2 (en) | 2009-09-29 | 2013-10-22 | Avaya Inc. | Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints |
US9516069B2 (en) | 2009-11-17 | 2016-12-06 | Avaya Inc. | Packet headers as a trigger for automatic activation of special-purpose softphone applications |
EP2508968A1 (en) * | 2009-12-24 | 2012-10-10 | Huawei Device Co., Ltd. | Method for realizing routing configuration and routing equipment |
EP2508968A4 (en) * | 2009-12-24 | 2012-11-28 | Huawei Device Co Ltd | Method for realizing routing configuration and routing equipment |
US9092541B2 (en) | 2009-12-24 | 2015-07-28 | Huawei Device Co., Ltd. | Route configuration implementation method and routing device |
US11108848B2 (en) | 2010-11-08 | 2021-08-31 | Saturn Licensing Llc | Methods and systems for use in providing a remote user interface |
US20140330898A1 (en) * | 2010-11-08 | 2014-11-06 | Sony Corporation | Methods and systems for use in providing a remote user interface |
US9081839B2 (en) | 2011-01-28 | 2015-07-14 | Oracle International Corporation | Push replication for use with a distributed data grid |
US20120254467A1 (en) * | 2011-04-04 | 2012-10-04 | International Business Machines Corporation | Mainframe Web Client |
US8825905B2 (en) * | 2011-04-04 | 2014-09-02 | International Business Machines Corporation | Mainframe web client |
US20120278817A1 (en) * | 2011-04-26 | 2012-11-01 | Oracle International Corporation | Event distribution pattern for use with a distributed data grid |
US10127077B2 (en) * | 2011-04-26 | 2018-11-13 | Oracle International Corporation | Event distribution pattern for use with a distributed data grid |
US20130036157A1 (en) * | 2011-08-04 | 2013-02-07 | Motivity Solutions, Inc. | Server hierarchical structure on user-agents |
US8595291B2 (en) * | 2011-08-04 | 2013-11-26 | Motivity Solutions, Inc. | Server hierarchical structure on user-agents |
US8954475B2 (en) * | 2011-11-10 | 2015-02-10 | Microsoft Technology Licensing, Llc | Deep cloning of objects using binary format |
US9817857B2 (en) | 2011-11-10 | 2017-11-14 | Microsoft Technology Licensing, Llc | Deep cloning of objects using binary format |
US9906477B2 (en) * | 2015-10-28 | 2018-02-27 | International Business Machines Corporation | Distributing retained messages information in a clustered publish/subscribe system |
US20170126603A1 (en) * | 2015-10-28 | 2017-05-04 | International Business Machines Corporation | Distributing retained messages information in a clustered publish/subscribe system |
WO2019001348A1 (en) * | 2017-06-30 | 2019-01-03 | 腾讯科技(深圳)有限公司 | Object interception method, terminal, server and storage medium |
CN107204989A (en) * | 2017-06-30 | 2017-09-26 | 腾讯科技(深圳)有限公司 | Ad blocking method, terminal, server and storage medium |
US11323542B2 (en) | 2017-06-30 | 2022-05-03 | Tencent Technology (Shenzhen) Company Limited | Objection blocking method, terminal, server, and storage medium |
CN112995636A (en) * | 2021-03-09 | 2021-06-18 | 浙江大学 | 360-degree virtual reality video transmission system based on edge calculation and active cache and parameter optimization method |
Also Published As
Publication number | Publication date |
---|---|
US9699259B2 (en) | 2017-07-04 |
US20060090006A1 (en) | 2006-04-27 |
US20120137311A1 (en) | 2012-05-31 |
US7823166B2 (en) | 2010-10-26 |
US9264514B2 (en) | 2016-02-16 |
US20190215377A1 (en) | 2019-07-11 |
US7558876B2 (en) | 2009-07-07 |
US9426252B2 (en) | 2016-08-23 |
US8719846B2 (en) | 2014-05-06 |
US20160119447A1 (en) | 2016-04-28 |
US20160352850A1 (en) | 2016-12-01 |
US20130024504A1 (en) | 2013-01-24 |
US20060090005A1 (en) | 2006-04-27 |
US8276162B2 (en) | 2012-09-25 |
US7610406B2 (en) | 2009-10-27 |
US10142431B2 (en) | 2018-11-27 |
US20140101287A1 (en) | 2014-04-10 |
US20070266176A1 (en) | 2007-11-15 |
US20170289289A1 (en) | 2017-10-05 |
US8112768B2 (en) | 2012-02-07 |
US20190058774A1 (en) | 2019-02-21 |
US20110047475A1 (en) | 2011-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10142431B2 (en) | Real-time information feed | |
US6941307B2 (en) | Arrangement and a method relating to session management in a portal structure | |
US8239756B2 (en) | Intelligent document filtering | |
US20040113938A1 (en) | An arrangement and a method for presentation customization in a portal structure | |
JP3790674B2 (en) | Collaborative multi-device web browsing system and method | |
US20050183061A1 (en) | Arrangement and a method relating to access of applications/services | |
US20040268249A1 (en) | Document transformation | |
US8874654B2 (en) | System for processing requests to portlets | |
US11151219B2 (en) | Generating rich digital documents from limited instructional data | |
WO2001011502A2 (en) | Method and apparatus for combining parts of different web pages | |
Di Nitto et al. | Adaptation of web contents and services to terminals capabilities: The@ Terminals approach | |
US20030097420A1 (en) | Multi-channel delivery system | |
JPH10275118A (en) | Multimedia content distributing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |