Biggest patent portfolios by company

by company

  • INTERNATIONAL BUSINESS MACHINES CORPORATION 13,899
  • CANON KABUSHIKI KAISHA 9,693
  • NEC CORPORATION 6,843
  • SAMSUNG ELECTRONICS CO., LTD. 6,726
  • KABUSHIKI KAISHA TOSHIBA 6,682
  • SONY CORPORATION 6,195
  • HITACHI, LTD. 5,935
  • FUJITSU LIMITED 5,841
  • MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. 5,735
  • MITSUBISHI DENKI KABUSHIKI KAISHA 5,253

Biggest patent portfolios by inventor

by inventor

  • Silverbrook Kia 1,860
  • Yamazaki Shunpei 1,585
  • Satake Toshihiko 905
  • Yamamoto Hiroshi 766
  • WATANABE HIROSHI 753
  • Weder Donald E. 657
  • Forbes Leonard 618
  • Tanaka Hiroshi 585
  • Suzuki Takashi 575
  • Takahashi Hiroshi 570

Patent appraised by patentsbase

$

GLOBAL PATENTRANK

# 56.000
TITLE:

Mechanisms for web-object event/state-driven communication between networked devices

USA PATENT RANK
Patent ID
Issue Date
#3.566.999
US-6829630-B1
07.12.2004











ABSTRACT

Web-based event/state-driven mechanisms and methods for simplifying communication between networked multifunction devices, such as copiers, printers, facsimile machines and multifunction devices using a networked database for the creation and presentation of device metrics and status data. Web-based multifunction performance metrics and calculations themselves are created within concurrent (multiple instances) of Web objects, wherein a Web object is a self-contained entity with data and a state machine lifecycle. State changes inside and outside the Web object are made by sending events to event queues and routing them to other state machines within other Web objects or instances of the same Web object. Data and events between Web objects are formed into a regular event syntax providing a simpler method of communication than those of procedural programming approaches. The arguments of the events are processed by specific instances of state machines that compose each Web object to perform an appropriate action. The metrics displays and corresponding calculations within the Web object's state machine are highly self-contained and concurrent, hiding networked database contention and database locking, and enforcing atomicity with it's runtime software. Calculations are performed and displayed from within a very small context within each Web object's state minimizing external communications and further simplifying software application development efforts.

INFORMATION

Inventor(s) MOUNTAIN HIGHLAND MARY (US); PAJAK HENRY G (US); TREDOUX GAVAN L (US); MOUNTAIN HIGHLAND MARY; PAJAK HENRY G.; TREDOUX GAVAN L.; Mountain Highland Mary; Pajak Henry G.; Tredoux Gavan L.;
Applicant(s) XEROX CORP (US); XEROX CORPORATION;
Assignee XEROX CORPORATION;
Assignee history
assigneesJP MORGAN CHASE BANK (P.O. BOX 2558, LIEN PERFECTION UNIT, Houston, TX, 77252);assignorsXEROX CORPORATION;correspondence-addressROBIN MOLT (C/O/ CORPORATION SERVICE COMPANY, 80 STATE STREET, 6TH FL, ALBANY, NY 12207);
assigneesJPMORGAN CHASE BANK, AS COLLATERAL AGENT (LIEN PERFECTION UNIT, P.O. BOX 2558, Houston, TX, 77252);assignorsXEROX CORPORATION;correspondence-addressACCESS INFORMATION SERVICES, INC. (JACKIE LEE, 1773 WESTERN AVENUE, ALBANY, NY 12203);
assigneesBANK ONE, NA, AS ADMINISTRATIVE AGENT (ONE BANK ONE PLAZA, IL 1-0631, CHICAGO, IL, 60670);assignorsXEROX CORPORATION;correspondence-addressACCESS INFORMATION SERVICES, INC. (JACKIE LEE, 1773 WESTERN AVE., ALBANY, NY 12203);
assigneesXEROX CORPORATION (P.O. BOX 1600, 800 LONG RIDGE ROAD, STAMFORD, CT, 06904);assignorsMOUNTAIN, HIGHLAND MARY;PAJAK, HENRY G.;TREDOUX, GAVAN L.;correspondence-addressOLIFF & BERRIDGE, PLC (JAMES A. OLIFF, P.O. BOX 19928, ALEXANDRIA, VA 22320);
Agent OLIFF & BERRIDGE, PLC
Application No. US-71849300-A
Filing Date 24.11.2000
Primary Class G06F 15/16
Primary Examiner Etienne Ario;
Assistent Examiner Salad Abdullahi E.;

DETAILED DESCRIPTION OF THE INVENTION

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

According to various exemplary embodiments of this invention, a framework is provided for developing Web applications. This framework provides a runtime or virtual machine for Web objects. According to various exemplary embodiments of this invention, Web objects are template-driven mechanisms that compose Web pages through the use of objects concurrent state-machines, events and actions within states. The Web objects define explicit relationships between each of the concurrent state-machines, events and actions within states. The Web objects provide a persistent state-machine view of Web-application components.

Events enable messages and/or information to be sent to Web objects. Web objects can receive events from external sources, for example, Web browsers, or from other Web objects. In various exemplary embodiments, each Web object can include data and/or can specify a destination.

States of a Web object provide a history of past events, allowing the Web object to modify the response of that Web object to a new event based on the history of past events of that Web object. Thus, in various exemplary embodiments, the Web objects are able to receive and transmit events that can cause the Web objects to change state and perform actions associated with that state.

In various exemplary embodiments, actions defined within a Web object specify how the Web object will react to events that are received by the Web object. For example, events may cause the Web object to modify data contained within that Web object and/or within other Web objects. Alternatively, or additionally, events may cause that Web object to change state and/or generate an event. The generated event may be transmitted to an external entity, such as a Web browser, or to another Web object. For example, a Web object's actions within a state may gather read and write data from one or more external devices and then display that data on a Web browser, write to other Web objects, and/or write to the external devices.

In various exemplary embodiments of the systems and methods according to this invention, the Web-object systems include a mechanism for Web-object persistence. This persistence mechanism allows a Web object to maintain its state over time independently of any requests that the Web object receives. For example, the state of the Web object may be stored in a permanent storage mechanism, such as an underlying database.

According to various exemplary embodiments of this invention, the Web-object systems also include an event dispatcher as part of it's runtime software. The event dispatcher places events onto a queue and transmits each event in a predictable manner to the destination specified by that particular event. For example, as events are generated by external sources, such as HTTP requests from Web browsers, the events are placed into the event queue in the order the events are generated. The event dispatcher transmits each event from the event queue to the specified destination that receives the event and its data.

According to various exemplary embodiments of the systems and methods according to this invention, the Web-object systems also include a locking mechanism. This locking mechanism ensures that Web objects correctly make the appropriate transitions between states, and that actions performed within a state are not interrupted. This reduces possible corruption of data and/or actions by other actions, events and/or Web objects. Thus, in various exemplary embodiments of the systems and methods according to this invention, the locking mechanism does not allow a Web object to be interrupted by other events while the Web object is changing, states and/or performing actions. The Web object can process further events only after the Web object has changed its state and/or completed its action. State changes of Web objects are thus atomic so that they cannot be interleaved or interrupted by other events and state changes in the same Web object or other Web objects and the data to which they are related, and must complete in their entirety. The Web-object runtime component of the systems and methods according to this invention manages to the details required to ensure atomicity so that the Web objects need not separately implement atomicity.

In various exemplary embodiments of the systems and methods according to this invention, the Web-object systems also include a template creation system or device that provides one or more external representations of Web objects, such as, for example, a Web page coded in HTML. The external representation of a Web object may be persistent so that the representation does not need to be regenerated continuously. That is, rather than the entire external representation being regenerated, only those Web objects that require updating need to be regenerated.

In various exemplary embodiments of the systems and methods according to this invention, the Web-object systems allow the creation of larger, more complex concurrent communicating Web objects from individual Web objects, by combining the representations of the individual Web objects into larger representations.

The presentation systems and methods associated with this invention are further described in copending U.S. patent application Ser. No. 09/718,477, filed herewith and incorporated herein by reference in its entirety.

FIG. 1 shows a functional block diagram of a first exemplary embodiment of a metric and status presentation system according to this invention. As shown in FIG. 1, components of the metric and status presentation system may communicate via a distributed network . The distributed network may be, for example, an intranet, an extranet, a local area network, a metropolitan area network, a wide area network, a satellite communication network, an infrared communication network, the Internet, the World Wide Web, or any other known or later-developed distributed network.

The metric and status presentation system includes at least one remote device . In various embodiments, the remote device comprises one or more devices such as networked copiers, printers, facsimile machines, multifunction devices or any other known or later-developed network-connectable device. The metric and status presentation system also includes a data processor , a Web-object presentation creator , and at least one Web client . In various embodiments of this invention, metrics and/or status data about the remote device are gathered and processed by the data processor and then transmitted to the Web-object presentation creator . The Web-object presentation creator accesses and/or creates a presentation, for example, a Web page, from data processed by the data processor and/or contained in templates. The presentation is created as requested by the Web client .

FIG. 2 illustrates an exemplary embodiment of the remote device shown in FIG. . As shown in FIG. 2, the remote device includes a controller , a memory , an input/output interface and a simple network management protocol management information base (SNMP MIB) . In the exemplary embodiment shown in FIG. 2, the remote device may also include one or more sensors , an analog-to-digital converter and/or a preliminary analysis circuit or routine . The elements of the remote device may be interconnected by a link . The link can be one or more wired or wireless links or any other known or later-developed element or elements that are capable of supplying electronic data to and from the connected elements -.

The input/output interface may be any known or later-developed mechanism, such as a server or a client, that is capable of posting data from the remote device over the distributed network and receiving data from remote devices connected to the distributed network . Similarly, the sensors may be any known or later-developed mechanism or mechanisms that are capable of detecting data pertaining to the remote device .

In operation, data pertaining to the remote device , such as metrics and status data, is collected by the controller from one or more of the memory , the one or more sensors , and/or any other data sources providing the types of data described above and derived from the operational characteristics of the remote device . The data is processed by the controller into a format recognizable by the preliminary analysis circuit or routine and forwarded to the preliminary analysis circuit or routine . For example, the controller may process the collected data by discretely sampling the analog data received from the one or more sensors into qualitative values or by digitizing such analog data using the analog-to-digital converter . Alternatively, the controller may process the collected data by translating device signals into discrete event sequences, as described in U.S. application Ser. No. 09/522,082, incorporated herein by reference in its entirety, that can be recognized by the preliminary analysis circuit or routine .

While some data processing may be accomplished by the remote device , the data is further processed by the data processor of the metric and status presentation system . FIG. 3 illustrates an exemplary embodiment of the data processor shown in FIG. . As shown in FIG. 3, in various exemplary embodiments, the data processor includes one-or more Web objects that collect data from the remote device . The Web objects collect the data using a standard network management or Web-protocol , such as SNMP, HTML over HTTP or extended mark-up language (XML) over HTTP, from the distributed network . The data processor also includes a network input/output interface usable to receive and/or send data over the distributed network . The elements of the data processor may be interconnected by a link . The link can be one or more wired or wireless links or any other known or later-developed element or elements that are capable of supplying electronic data to and from the connected elements -.

The network input/output interface may be any known or later-developed mechanism, such as a server or a client, that is capable of accessing data about the remote device posted over the distributed network and/or sending data over the distributed network . The operation of the Web objects is explained in more detail below.

FIG. 4 illustrates an exemplary embodiment of the Web-object presentation creator shown in FIG. . As shown in FIG. 4, in various exemplary embodiments, the Web-object presentation creator includes, or at least accesses, one or more Web objects to be presented. The Web-object presentation creator includes one or more templates that can be populated by one or more of the Web objects . The templates may be used by a Web server to create a presentation of one or more of the Web objects , such as a Web page, that can be sent over the distributed network . The Web-object presentation creator includes a network input/output interface usable to receive and/or send data over the distributed network . The elements of the Web-object presentation creator may be interconnected by a link . The link can be one or more wired or wireless links or any other known or later-developed element or elements that are capable of supplying electronic data to and from the connected elements -. The network input/output interface may be any known or later-developed mechanism, such as a server or a client, that is capable of accessing the data about the Web objects , or to the Web objects themselves, and sending the presentation over the distributed network . The operation of the Web-object presentation creator is explained in more detail below.

It should be understood that the Web objects shown in FIG. 4 can be the same elements as the Web-objects shown in FIG. . Thus, while the data processor and the Web-object presentation creator are shown separately, it should be understood that the data processor and the Web-object presentation creator may be embodied in the same device and/or software. The distinction between the data processor and the Web-object presentation creator is for the sake of description only and is not limiting.

FIG. 5 illustrates an exemplary embodiment of the Web client shown in FIG. . As shown in FIG. 5, in various exemplary embodiments, the Web-client includes a controller , a memory , an input/output interface , a data storage device and a display device . The elements of the Web-client may be interconnected by a link . The link can be one or more wired or wireless links or any other known or later-developed element or elements that are capable of supplying electronic data to and from the connected elements -.

The input/output interface may be any known or later-developed mechanism, such as a server or a client, that is at least capable of receiving data from the distributed network .

In operation, the memory may contain a Web browser application executed by the controller . A request from the Web browser is sent over the distributed network by the input/output interface . The request causes the presentation of one or more of the Web objects and/or and/or the templates to be provided to the Web client . The Web objects and/or and/or the templates may be displayed to a user on the display device . The Web objects and/or and/or the templates may also be stored by the data storage device and displayed later. The controller may also generate periodic requests to update the retrieved Web objects and/or and/or the templates . Thus, current data pertaining to the remote device , such as metrics and status data, may be displayed to the user on request as the presentation of one or more of the Web objects and/or and/or the templates .

FIG. 6 is a flowchart outlining an exemplary embodiment of a method for presenting metrics and status data according to this invention. Beginning in step S, control continues to step S, where data, such as metrics and status data, is collected from one or more remote devices. The remote devices may be networked devices and the data may be retrieved using a standard network management protocol, or a proprietary, device-specific, manufacturer-specified protocol or a manufacturer-specified protocol. In various embodiments of this invention, the data is polled on a regular or irregular interval from the remote devices. Alternatively, or additionally, the data may be polled on demand. Next, in step S, the collected data is transmitted to one or more persistent Web objects. Control then continues to step S.

In step S, the transmitted data is processed. As discussed below, in various embodiments, the data is processed by the one or more Web-objects. For example, activities such as determining running totals, updating graphs, altering existing spreadsheets and the like may be involved. Then, in step S, the processed data is stored, for example, in one or more of the Web objects for later retrieval. Next, in step S, the stored data is accessed. The data may be accessed automatically or may be accessed upon request, for example, a request by a Web client that presents metrics and/or status data. Control then continues to step S.

In step S, one or more templates are created and/or updated using the accessed data. In various embodiments of this invention, the templates are populated by one or more of the Web objects and thus form a representation of the Web objects. The created and/or updated templates may be stored for later presentation. Next, in step S, the created and/or updated templates are accessed. For example, the templates may be accessed by a Web server. Then, in step S, one or more Web pages are created and/or updated using the templates. In various embodiments of this invention, the template-based representations are combined with other template-based representations. The created and/or updated Web pages define a presentation of the data from the remote device, such as metrics and status data, and are available for viewing by one or more Web clients, for example, over a distributed network. Control then continues to step S, where the process ends. While these processing steps are shown executing serially, the procedures may actually execute concurrently in parallel in each of elements in , , , and . As shown in FIGS. 7-10, the integrity of the data is maintained throughout the process.

FIG. 7 is a functional block diagram illustrating an exemplary Web and network environment of Web objects according to this invention, including multiple networked devices , a data processor/Web-object presentation creator and multiple Web clients , all interconnected by a network , such as the Internet. The data processor/Web-object presentation creator includes multiple Web objects , and . Each Web object , and has its own templates , and , and state machines , and , respectively. The data processor/Web-object presentation creator also includes a database , or other data storage device, and one or more runtime support circuits, routines or managers . The data processor/Web-object presentation creator may be embodied as any suitable computer-based device, such as, for example, a Web server.

The Web clients may be embodied as any device that is capable of receiving information from the network and displaying the information to a user. For example, the Web clients may be workstations , such as personal computers, that each include a monitor or screen display . It should be understood, however, that the Web-clients may be other devices, such as a handheld personal digital assistant (PDA), a cellular or digital mobile telephone or an embedded web browser in a consumer appliance, such as a CD player, DVD player, or microwave oven.

In operation, one or more of the Web clients generate and transmit a request for information over the network . For example, the workstations may access hyperlinks displayed in a web browser. The request is received by the data processor/Web-object presentation creator and processed by one or more of the Web-objects , and/or using the state machines , and/or , respectively. State data for the state machines , and is read from and stored in the database . Rules and mechanisms for operation of the Web objects , and/or and their state machines , and/or are provided by the runtime support circuits, routines or managers .

Data from the networked devices is transmitted to the data processor/Web-object presentation creator , either automatically or as requested by the data processor/Web-object presentation creator , and stored in the database for use by the Web objects , and/or in their state machines , and/or . The Web objects , and/or create and populate the templates , and/or with data from the state machines , and and/or the database . The templates , and/or are then transmitted in a proper format, such as HTML, XML, XHTML, PDF, or any other appropriate known or later-developed format, to the Web clients , either individually or combined, to form a desired presentation of the requested information. For example, the requested information may be presented on the screen display(s) as a Web page formed by representations of the Web objects , and/or or displayed objects , and/or .

FIG. 8 is a functional block diagram illustrating a single Web object and a single Web client according to the Web and network environment shown in FIG. . The request for information by the Web client is transmitted to the Web object over the network and received as an Event . The Web object is in a State , a definite state, when the Event is received. This definite state reflects the past history of the Web object . The state machine is shown in abstract form as an event/state diagram to illustrate the reaction of the Web object to events based on the past history of events.

When the Web object receives the Event , the state machine produces one or more actions within that state, such as an Action . For example, the Action may be receiving and manipulating remote device data for display, storing data in a database, or sending email to a device event subscriber. After the Web object completes the Action , the Web object changes state from the State to a State .

The runtime support circuit, routine or manager ensures that the Web object processes the Event automatically so that the processing cannot be interrupted. In other words, the Web object is not allowed to process another event until the Event is processed and the Web object changes from the State to the State .

In the State , the state machine may produce an Action and/or an Event . When the Web object completes the Action , the Web object changes from the State to a State . Depending on the past history of the Web object , various events are created and processed and various actions are executed. The runtime support circuit, routine or manager manages the processing by creating an event queue that operates on a first-in-first-out basis. The event queue may be managed by an event dispatcher, which transmits events from the queue to specified destinations in the order in which they are received, providing a guaranteed event delivery system, so that Web objects do not have to implement or reinvent this functionality. Using the state machine , the Web object updates itself automatically so that the remote device data displayed as the displayed object to the Web client is current.

FIG. 9 is a functional block diagram illustrating multiple Web objects and and multiple Web clients and according to the Web and network environment shown in FIG. . The operation of the Web-object system shown in FIG. 9 is identical to the operation of the Web-object system described above with respect to FIG. 8, except that events and/or actions of the Web object are used to update the Web object , and vice versa The runtime support circuit, routine or manager manages the processing of events by the Web objects and so that contention and race conditions are avoided when one Web-object's state machine reads or writes the data in another Web object.

Also, the displayed object generated by the Web client may be different than the displayed object generated by the Web client . For example, the information requested by each of the Web clients and may be different. Further, the displayed objects and may be different in appearance and content because the templates and , respectively populated by the Web objects and , may be different.

FIG. 10 is a functional block diagram illustrating an exemplary implementation of a metrics and status presentation system according to this invention. The implementation runs on the Microsoft NT server operating system, under the Oracle Application server environment B which provides Web service facilities to the application. The Web object runtime E is implemented using Java Servlets as supported by the Java servlet cartridge D supplied by Oracle, and an Oracle database J. The runtime is used to execute Web objects implemented as additional Java servlets H. The Web objects communicate with networked printing devices I and poll data from these devices. The web objects use a template parser G to form representations of themselves for display in a Web browser A, using the Web server B for communication with the Web browser A.

FIG. 11 shows an exemplary Web-page presentation of a Web object containing a backing state machine and populated with simple HTML text.

FIG. 12 shows another exemplary Web-page presentation of a Web object with its backing state machine containing an embedded Web object and its supporting state machine.

While this invention has been described in conjunction with the exemplary embodiments outlined above, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the exemplary embodiments of the invention, as set forth above, are intended to be illustrative, not limiting. Various changes may be made without departing from the spirit and scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of this invention will be described in detail, with reference to the following Figures, wherein:

FIG. 1 is a functional block diagram illustrating a first exemplary embodiment of a metrics and status presentation system according to this invention;

FIG. 2 is a functional block diagram illustrating an exemplary remote device for which metrics and status data are presented by the system of FIG. 1;

FIG. 3 is a functional block diagram illustrating an exemplary data processor of the system of FIG. 1;

FIG. 4 is a functional block diagram illustrating an exemplary Web-object presentation creator of the system of FIG. 1;

FIG. 5 is a functional block diagram illustrating an exemplary Web client of the system of FIG. 1;

FIG. 6 is a flowchart outlining an exemplary embodiment of a method for presenting metrics and status information according to this invention;

FIG. 7 is a functional block diagram illustrating an exemplary Web and network environment of Web objects according to this invention, including multiple devices, Web clients and Web-object templates with their own state machines, events and embedded Web objects;

FIG. 8 is a functional block diagram illustrating a single Web object and a single Web client according to the Web and network environment of FIG. 7;

FIG. 9 is a functional block diagram illustrating multiple Web objects and multiple Web clients according to the Web and network environment of FIG. 7;

FIG. 10 is a functional block diagram illustrating an exemplary implementation of a metrics and status presentation system according to this invention;

FIG. 11 shows a first exemplary embodiment of a Web-page presentation of a Web object containing a backing state machine and populated with simple HTML text; and

FIG. 12 shows a second exemplary embodiment of a Web-page presentation of a Web object with its backing state machine containing an embedded Web object and its supporting state machine.

CLAIMS

1. A method for communication between a plurality of networked devices in a Web-based management system, comprising: automatically providing networked device information from the networked devices to at least one Web object over a distributed network, each Web object is being a self-contained entity with object data, an associated presentation and a state machine lifecycle; processing events using the state machine lifecycle of the at least one Web object; and providing a runtime that establishes atomicity for the at least one Web object with respect to at least one of events, actions and data that occur in a state of another Web object state machine, wherein Web objects are template-driven mechanisms that compose Web pages.

2. The method of claim 1, further comprising communicating between the at least one Web object and at least one other Web object concurrently through events that are processed using the state machine lifecycle of the at least one Web object.

3. The method of claim 1, further comprising generating at least one subsequent event in response to a change in state of the state machine lifecycle of the at least one Web object.

4. The method of claim 1, wherein processing the at least one event comprises atomically processing the at least one event.

5. The method of claim 1, wherein processing the at least one event comprises atomically processing actions within a state.

6. The method of claim 1, further comprising managing events using an event queue.

7. The method of claim 6, wherein managing events using the event queue comprises receiving events, queuing the received events and transmitting the queued events in order to the at least one Web object.

8. The method of claim 1, further comprising receiving, at the at least one Web object, at least one event or data access directly from at least one other Web object.

9. The method of claim 1, further comprising accessing data directly from at least one other Web object by the at lest one Web object.

10. The method of claim 1, further comprising synchronously receiving events at the at least one Web object.

11. The method of claim 1, further comprising asynchronously receiving events at the at least one Web object.

12. The method of claim 1, further comprising analyzing the networked device information to obtain data related to the networked device information.

13. The method of claim 12, wherein analyzing the networked device information comprises processing at least one event such that the state machine lifecycle of at least one of the Web objects changes state.

COPYRIGHT

User acknowledges that Fairview Research and its third party providers retain all right, title and interest in and to this xml under applicable copyright laws. User acquires no ownership rights to this xml including but not limited to its format. User hereby accepts the terms and conditions of the License Agreement.