IP Library Patent Application 12277887
Patent Application
App. No. 12/277,887

EXCEPTIONAL EVENTS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/277,887
Abstract

An event-driven system enables handlers to be specified for success and failure, among other things. In other words, events can be explicitly encoded with an option of returning either a success or a failure result. In this manner, asynchronous programming and events can be unified. Multiple event streams can be employed to represent success and/or exceptional values. Alternatively, a disjoint union of regular and exceptional values can be employed with respect to a single event stream.

Claims (27)

1 . An event-driven system, comprising:

a producer component that generates a first-class program language event of a particular event category; and

a consumer component identifies the event and performs an action as a function of the event category.

2 . The system of claim 1 , the category is either success or failure indicative of a state of an action performed by the producer component.

3 . The system of claim 2 , the consumer is a callee, the producer is a caller, and the event is a callback that signals task completion in an asynchronous programming model.

4 . The system of claim 2 , the consumer is an event handler and the producer is an event source.

5 . The system of claim 4 , the event handler is continuation or callback function.

6 . The system of claim 2 , an event of category failure results upon occurrence of an exception in event generation or event handling.

7 . The system of claim 1 , events are represented on multiple event streams as a function of their category such that a single event stream is present for each category.

8 . The system of claim 1 , the events are represented on a single event stream as a disjoint union of different categories.

9 . A computer-implemented method of event processing, comprising:

identifying an event in an event stream; and

performing an action as a function of a normal or exceptional result afforded by the event.

10 . The method of claim 9 , further comprising identifying an event from one of two events streams, one including normal results and the other including exceptional results.

11 . The method of claim 9 , further comprising transforming a multiple stream representation of normal and exceptional events into a single event stream.

12 . The method of claim 9 , further comprising transforming a single stream representation of normal and exceptional events into a multiple stream representation.

13 . The method of claim 9 , further comprising receiving functions that specify the action.

14 . The method of claim 9 , further comprising catching a failure in an action performed in response to a normal result and invoking the action associated with the exceptional result.

15 . The method of claim 9 , further comprising propagating exceptions thrown in conjunction with operators defined on events to the event stream as exceptional result events.

16 . The method of claim 9 , further comprising propagating exceptions thrown by event triggers to the event stream as exceptional result events.

17 . A computer-implemented method of event handling, comprising:

generating a first-class event;

processing the event; and

propagating exceptions that occur during event generation and/or processing to user-specified failure handlers, the exceptions are represented as a type of event.

18 . The method of claim 15 , comprising catching and re-throwing an exception.

19 . The method of claim 15 , comprising catching and throwing a new exception.

20 . The method of claim 15 , comprising catching an exception and repairing a computation that resulted in throwing of the exception.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2008
From: MEIJER, HENRICUS JOHANNES MARIA; DYER, JOHN WESLEY; VAN GOGH, JEFFREY
To: MICROSOFT CORPORATION
Reel/Frame 021889/0541 →