Cross-platform event engine

Abstract
A system and method for translating, synthesizing and acting upon disparate event sets is provided. The disclosed cross-platform event engine comprises an event module with information pertaining to various event inputs as they relate to different operating platforms and devices. Logic utilized by the cross-platform event engine determines how to handle a particular event within an operating environment. Methods of updating and training the engine are also provided.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates generally to the field of user interfaces. More specifically, the present invention relates to the recognition and processing of platform events by user interfaces, those interfaces operating across various platforms on various mobile devices.


2. Description of the Related Art


Mobile data access devices make it simple and affordable to access corporate and personal data while out of the office. Software allowing for such access is becoming a standard feature on a variety of mobile devices and platforms: BREW, Pocket PCs, Smartphones, Symbian-based phones, PDAs and Internet browsers.


There are approximately 35 million workers that make up the ‘mobile workforce,’ that is, individuals who carry out all or substantial portions of their job away from a physical office setting. With the increasing number of on-the-go workers, electronic mail continues to be, arguably, the most important business application. As a result, this workforce—as well as the casual individual user—has an inherent need for mobile access to their electronic mail and other data.


Despite an ever-increasing need for access to electronic mail and data, costs of ownership for mobile data access remain a barrier. The issue is no longer whether mobile data access is a necessity but whether it can be deployed and managed in an effective manner.


While cost is an obvious concern in equipping the workforce with the means for accessing data on-the-go, the implementation, development, integration and management of mobile data access solutions are of paramount interest. Despite mobile devices becoming a staple in personal and commercial enterprise, rapidly evolving changes such as number portability, mergers in the telecommunications and software industry and the lack of any one particular technical standard in the mobile device technological space, make providing support for a wide-array of mobile devices an important, albeit difficult, issue with regard to accessing data from a mobile device. The lack of internal expertise, the immaturity of standards, the complexity of integration, device limitations and application development have all been explicitly recognized as barriers to adopting mobile devices for providing access to data while, for example, out of the office or away from a personal desktop computer.


Increased user-flexibility—user familiarity amongst a variety of different devices and/or platforms—may be provided by device-neutral software as is described in the present application. For example, a single application (e.g., a notepad or an e-mail application) could be run on various mobile devices. The user-flexibility proffered by device-neutral software helps to improve IT-familiarity and expertise in that IT personnel need only become familiar with one software application (or suite of applications) instead of a particularized application for each individual platform environment and/or mobile device. Such device and platform neutrality increases end-user adoption of mobile device technologies in their fullest sense thereby better ensuring a return on investment.


But as adoption and pervasiveness of mobile devices and operating platforms increase, so does technological fragmentation within the marketplace. That is, with the increasing availability of differing mobile devices and operating platforms, there is an increase in disjunct technologies and methodologies that evidence an increasing need for standardization. Until there exists an overarching technological standard adopted by or at least a significant portion of the marketplace, developing device- and/or platform-neutral applications, as are taught in the present application, for mobile devices makes application development and testing less of a colossal task for software engineers while ensuring higher quality and better overall design.


Device-neutral user interfaces, like those described in the present application, will play a critical role in mobile device development. Such interfaces must not only provide access to mission critical data but also deal with the realities of variations in screen size, pixel density, aspect ratio and screen use availability amongst devices; limited memory on a mobile device; limited processing power; general quirkiness between platforms; and, perhaps most noticeable to the end-user, the general lack of space for interacting with the mobile device (e.g., keyboard space for text-entry and display space for viewing data). A keyboard, mouse or even a stylus are normally not available for such interaction in a traditional wireless or mobile device. Not only is input difficult, so is viewing a display rendering information. This is especially true when the mobile device happens to also be a cellular telephone.


Engineers have previously been forced to deal with the fact that present-day prior art interfaces are not be suitable for more than one primary set of devices. For example, PDAs utilize a stylus and touch-screen whereas cellular phones may utilize a keypad and/or five-way navigation. If an engineer is satisfied with limiting an interface to a particular type of environment (e.g., platform or device), the engineer must still deal with the nuances of particular device manufacturers (e.g., a Palm PDA versus a Nokia cell phone) and, in some instances, particular device models (e.g., PALM VIIx and Nokia 7110).


An engineer is still, in many instances, limited by the fact that he or she must pre-generate static interfaces or multiple permutations of the interface as they pertain to a particular device or platform family. This results in delays for delivery of applications and increased costs in research and development, which inevitably result in increased costs for the end-user.


There is, therefore, a need in the art for a user interface that is neutral with regard to operating platform and device wherein one client interface will work on multiple platforms and devices.


It should be noted, in the course of this disclosure, that while a device (e.g., hardware) and platform (e.g., software) are recognized as distinct—albeit related—entities, any reference to a device or a platform should be considered inclusive of both. Similarly, any reference to the neutrality of an interface, in general, should be interpreted as neutrality as to both a device and a platform.


Further, it should be noted that any disclosed device or platform-neutral user interface is not dependent on the presentation or transmission of communications data (e.g., electronic mail, calendar, SMS) or utilization of user data (e.g., data stored on a desktop).


SUMMARY OF THE INVENTION

The present invention advantageously provides a virtual platform neutral to physical device or software/hardware operating platform. The virtual platform comprises an abstraction layer that allows for portability across a variety of mobile devices and operating platforms, especially with regard to user interfaces. The virtual platform and abstraction layer and any related software allow for a user interface on a first device to appear and operate substantially similar to a user interface on a second device regardless of differences or limitations that may exist between the operating systems or physical nuances of the two devices. By providing a device-neutral user interface application, a user can move effortlessly between devices should, for example, the need for replacement or repair of a particular device arise or if the user possess multiple mobile devices (e.g., one device for personal use and a second device for work use).


Additionally, the neutrality of the interface application makes it possible for software developers and engineers to utilize one test suite for a variety of devices or platforms when introducing new features thereby reducing lag-time in delivering applications to market as well as research and development costs. For example, instead of developing five different interfaces for five different devices, one interface may be utilized across five different devices. These reductions in the time and cost of development and delivery inevitably translate into savings for the end-user and/or increases in profit and competitiveness for the application and/or device developer/manufacturer.


The present invention also provides an advantageous cross-platform event engine for recognizing, generating and/or acting upon disparate events amongst a variety of devices or platforms. For example, an event request recognized on one device is translated into a native request recognized on a second device through abstraction and code sharing. Methods for determining the portability of an event from, for example, a first device environment to a second device are also provided. The present invention is not, however, meant to be limited to device-to-device portability as it allows for a common representation of an event outside of its native environment.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1A illustrates an exemplary embodiment of a device platform comprising various operational layers and modules for interaction with a particular device client and as described in the present invention.



FIG. 1B illustrates a device platform comprising various operational layers and modules for interaction with a particular device client as may be found in the prior art.



FIG. 2A illustrates an exemplary embodiment of an abstraction layer and a balance of platform-specific code and platform-neutral code as may be found in a device- and/or platform-neutral interface such as that described in the present invention.



FIG. 2B illustrates a typical balance of platform-specific code and platform-neutral code as may generally be found in the prior art.



FIG. 3 illustrates an exemplary embodiment of an abstraction layer comprising various informational modules as described in the present invention.



FIG. 4 illustrates an exemplary embodiment of a virtual platform comprising a shell program and an abstraction layer as may be utilized in the present invention.



FIG. 5 illustrates a cross-platform event engine as may be utilized in an exemplary embodiment of the present invention.





DETAILED DESCRIPTION OF AN EXEMPLARY EMBODIMENT


FIG. 1A illustrates an exemplary embodiment of a device including various operational layers and modules for interaction with the device. The present embodiment comprises a platform 110, abstraction layers 120, optional synchronization module 130, user interface 140, and client application 150.


Some embodiments of the present invention may comprise additional operational layers such as open or proprietary application program interfaces (APIs) that allow software engineers, programmers and even users of a particular platform and/or device to author or install applications that are compatible with the particular platform's operating environment. A cross-platform event engine may be embodied in such an application. Some embodiments of the present invention may lack certain operational layers or modules, such as synchronization module 130. Such modules would be absent should a particular device or platform not require, for example, synchronization operations.


The platform 110 is the underlying hardware and/or software for a particular operating environment. The platform 110 also defines a particular operating environment in which software, hardware and other applications are developed. An example of platform 110 is the Nokia Series 40 Developer Platform. The Nokia Series 40 Developer Platform can utilize platform technologies such as Java™ J2ME. Another example of platform 110 is the Nokia Series 60 and Series 80 Developer Platforms. The Nokia Series 60 and 80 platforms can utilize C++ in addition to Java™ J2ME technologies. The Palm OS® Platform, as another example of platform 110, supports native programming in C and C++ languages as well as Java programming via third-party Java Virtual Machines. The present invention further envisions the future development of operating environments on a variety of platforms.


Abstraction layer(s) 120 provide basic functionalities and means for accomplishing various operating goals that allow for, in part, the interoperation of the platform 110 with the client application 150 as well as other operational layers such as user interface 140. The abstraction layer(s) 120 provide classes, interfaces, abstract methods and other facilities and resources intended to support various functions and software operations regardless of any particular platform 110 or implementation on any particular device. Abstraction layer(s) 120 may be open or proprietary and are often composed of various information modules (e.g., FIG. 3).


Optional synchronization module 130 comprises the various operational instructions, functionalities and code necessary to allow a particular device or a program residing on such a device to communicate with an external data source, such as a desktop personal computer or enterprise server.


Communications allowing for a synchronization operation can be achieved in a variety of ways including a cable-to-handset synchronization mechanism whereby the device is physically coupled to a desktop personal computer to allow for the exchange and synchronization of data (e.g., electronic mail). Communications can also be achieved wirelessly whereby an enterprise server (e.g., a Microsoft Exchange Server) configured with appropriate software (e.g., SEVEN Server Edition from SEVEN Networks, Inc. of Redwood City, Calif.) coupled with access to a wireless gateway allows for access to electronic mail and other data by the device without any physical connection. Communications can also be achieved without intermediate server software or gateways (e.g., wirelessly).


Synchronization should be appreciated in the most general sense (e.g., as a communication event). For example, synchronization may comprise not only maintaining the consistency of data between two points (e.g., real time calendar data on a handheld device and a desktop computer) but also the duplication of data (e.g., received emails at a desktop forwarded to a handheld). Synchronization may also be utilized for the purpose of updating information (e.g., receiving updated software packages, patches and so forth).


While the optional synchronization module 130 may be necessary for synchronizing the client device and other external data source (e.g., a server), the presence of such a module is not meant to be interpreted as a prerequisite for the operation of a device-neutral user interface.


The user interface 140 comprises and/or is coupled to various modules and software components and source code to allow for the rendering and operation of a user interface on a variety of devices. The user interface 140 comprises or is otherwise coupled to libraries comprising elements and abstractions such as icons, cursors, scroll bars, sounds, animations, etc. and the necessary software and code to enable their use. In an embodiment of the present invention, the user interface 140 is neutral with regard to a particular device or operation environment. That is, a single interface can operate across a plurality of devices (e.g., Nokia, Kyocera and Treo) and/or environments (e.g., Nokia and PalmOS®) without the need to be reprogrammed for each of these particular devices and/or environment. That is, one user interface 140 fits a broad universe of devices and/or environments.


The client application 150 resides on any device coupled to a network (e.g., wirelessly) that allows for access to a server device or other computing entity, such as a second client device. Through the coupling of the device to, for example, a server, the user of the device may receive and transmit data such as electronic mail or access data stored at the server. It should further be appreciated that the present invention may also operate in a device that is not coupled or connected to any particular network or second device.


Small handheld devices are increasingly mobile. This mobility is often a direct result of integrating the handheld device with, for example, a cellular telephone although it is not necessary for the device and related client application 150 to be integrated with a cellular phone or any other particular device.


Mobile devices are often associated with a particular platform 110. For example, the aforementioned Nokia Series 40 Developer Platform is associated with the Nokia 6101 and 6102 model client devices as well as the Nokia 6020, 6235, 6235i and 6822 model client devices. The Nokia Series 60 Developer Platform, on the other hand, is associated with client devices such as the Nokia 6680, 6681, and 6682 model devices. Similarly, the Palm OS® Platform is associated with client devices such as Xplore™ G18, Kyocera 7135, and the Treo™ 650.



FIG. 1B illustrates various operational layers for user interaction and general operation within a particular device as may be found in the prior art. Such a prior art device may comprise the actual platform and various operational layers such as synchronization modules, APIs and so forth.


Prior art devices differ from a device utilized in the context of an embodiment of the present invention in that the client application, user interface and other applications are more integrated, interdependent and operationally incorporated (160) as compared to the present invention (170), which allows for increased flexibility and operability. The ‘tightly wound’ nature of the prior art is often the result of a general lack of portability of a user interface or any other software between various devices. That is, a particular application, including an interface, is written exclusively for a particular platform and exclusively for a particular device solely in conjunction with that platform. In order for a similar interface with similar functional offerings to operate on another device or platform, that interface must be re-authored in its entirety.


The exemplary device platform illustrated in FIG. 1A, on the other hand, evidences the ability to transport various functionalities from one platform or device to the next, especially with regard to the design of the abstraction layer 120 as is further discussed in the context of FIGS. 2A and 2B, below.


It should be noted that while FIG. 1A illustrates various operational layers as separate elements, this is not to suggest a necessary physical differentiation or a general lack of integration in an embodiment. Similarly, the integration of the client, user interface and abstraction layer (160) in FIG. 1B is not meant to suggest a literal, physical integration. These illustrations are provided merely to aid in the perception of the ‘tightly wound’ and vertically integrated aspects of the prior art versus an embodiment of the present invention, allowing for cross-platform events processing.



FIG. 2B illustrates a balance of platform specific code 210 and platform-neutral code 220 as may be found in the prior art.


For example, and as previously described in the context of FIG. 1B, prior art devices and their related platform and software are generally unitary in nature and are not meant to allow for portability of features, such as a user interface. As such, the prior art code 200 is monolithic in nature and comprised predominantly of platform-specific and application-specific code 210 (e.g., code written for, and only for, a Nokia 6680 device and configured with software written for the Series 60 Developer Platform environment).


This particularized code, while allowing for the integration and operation of a particular device on a particular platform, inhibits the portability of any particular features from one device to another (e.g., a user interface) as may otherwise be provided for with more generalized or device/platform-neutral code 220. Such device/platform-neutral code 220 may comprise code written in accordance with particular industry standards or specifications but that allows for the portability or interoperability of a specific and particular feature amongst devices. This neutral code 220 is minimally—if at all—present in prior art devices.



FIG. 2A illustrates an exemplary embodiment of an abstraction layer 250 and a blend of platform-specific code 260 and platform-neutral code 270 as may be found in a device-neutral user interface offering cross-platform event processing functionality.


An abstraction layer 250, as may be found in an embodiment of the present invention and as illustrated in FIG. 2A, exhibits a much ‘thinner’ layer of platform- or device-specific code 260. In some embodiments of the present invention, platform specific code may be entirely non-existent. Abstraction layer 250, with its thin layer of platform- or device-specific code 260 may be, generally, the type of abstraction layer 120 as described in FIG. 1A.


As the abstraction layer 250 comprises more platform- or device-neutral code 270, the portability or interoperability of particular features—including a user interface offering cross-platform event processing—is increased in that a feature (e.g., an application or function) will operate on various platforms or devices due to its coding being dependent more on the generalized code 270 than with platform- or device-specific code 260 that limits or inhibits portability or interoperability.



FIG. 3 illustrates an exemplary embodiment of an abstraction layer 310 comprising various informational modules 320-350 as may be implemented in the abstraction layer 250 illustrated in FIG. 2A.


Informational modules 320-350 comprise routines and instructions as they pertain to various operational features of, for example, a particular platform 110 and/or client application 150 linked in the abstraction layer 310. These modules link the particular device to the particular platform.


For example, resource module 320 may comprise specific data or routines utilized in the operation of platform 110, client application 150 and/or device; for example: sleep mode, power on and off in addition to bitmaps, layouts and other libraries of information that are stored on the device or the means for accessing the same.


Graphics module 330 may comprise the information, instructions or knowledge with regard to utilizing specific files such as JPEGs, bitmaps or other graphic data that could be utilized by user interface 140 in its rendering of a user interface on a device. The graphics module 330 may retrieve these files from resource module 320.


Event module 340 may comprise a library of information, instructions or knowledge with regard to identifying actions or occurrences as may be detected by a particular program such as user actions (e.g., pressing a key) in addition to system occurrences (e.g., an internal calendar alarm) and how to translate them across various environments (e.g., as if they were executed in a native environment).


Sound module 350 may comprise the information, instructions or knowledge of how to play or emit various sounds (e.g., WAV files) to be generated in response to, for example, the occurrence of certain system events (e.g., system warnings concerning low battery power). Sound module 350 may retrieve that particular file from the resource module 320.


Abstraction layer 310, as it corresponds to abstraction layer 120 (FIG. 1A) and abstraction layer 250 (FIG. 2A) may comprise additional or fewer modules as is required by the particular platform 110 and/or device and/or client application 150. It should also be noted that while FIG. 3 illustrates various modules as separate elements, this is not to suggest the requirement of a physical differentiation or a general lack of integration in an embodiment of the present invention.



FIG. 4 illustrates an exemplary embodiment of a virtual platform 400 for event management and translation comprising a platform-specific shell program 410 and an abstraction layer 420. In some embodiments of the present invention, the abstraction layer 420 and shell program 410 may be a single module of software.


Abstraction layer 420 is similar to the layer described in FIG. 3. Abstraction layer 420 interacts with the shell program 410 to effectively translate or otherwise offer portability of commands or instructions issued by a device-neutral interface or other platform environment as if the commands were actually issued in the native platform associated with the client. For example, if an event 430 (e.g., a button press) occurs in a particular platform environment (e.g., the Nokia Series 40 Developer Platform) that event 430 might—and likely will—substantially differ in structure and content (i.e., syntax) relative a different platform (e.g., the Palm OS®).


Virtual platform 400 is capable of normalizing the syntax (e.g., code) of the two different platform environments into a common format (e.g., a common syntax format with reliable semantic structure). That is, the virtual platform 400, in conjunction with abstraction layer 420, provides the necessary translation so that the syntax of the two platforms (e.g., code related to the button press) may be reconciled to achieve the related semantic purpose (e.g., invoking the opening of a particular menu or activating a backlight as associated with a soft key selection event 430) in, for example, a device-neutral interface.


The event 430 or certain information generated by the event 430 (e.g., a notification of the event) is, in certain instances, intercepted by the shell program 410. In some instances, the event 430 may be ‘passed’ upon by the shell program 410. This ‘pass’ may be the result of the event 430 not requiring ‘translation’ or platform 400 and shell program 410 not being concerned with the particular event 430. This ‘pass’ determination may be the result of certain manual programming of the platform 400 before or after it leaves an original equipment manufacturer or as the result of training, updating by the user or installation of software patches and the like.


The shell program 410, should it intercept the event 430, prevents the event 430 or the information generated by the event 430 (e.g., a notification of the event) from being immediately processed by any other relevant logic on the actual device or platform. The abstraction layer 420 then processes the event 430 intercepted by the intermediary shell program 410 and determines the proper response, reaction and/or instruction 440 to the event 430 for the particular device and/or platform hosting virtual platform 400.


The proper response, reaction and/or instruction 440, in some instances, will be to translate the event 430. The proper response 440, in other instances, will be to pass the event 430 on to some other aspect of the device for management. The proper response 440, in yet another instance, may be to ‘null’ the event 430 and not allow it to be processed or translated by the platform 400 and/or any other element of the device.


An event 430 generally falls into one of three categories. The first category may generally be described as a one-to-one translation. That is, the event 430 occurs and results in a particular reaction. For example, a button is pressed and a character (eventually) appears on the screen. This reaction is the result of the event 430 (or a notification of the event 430) notifying the appropriate device elements of the occurrence (the button press) and/or invoking the necessary code and/or routines to generate, for example, the aforementioned character.


It should be understood that the event 430 and the eventual response 440 are not necessarily a direct relationship (e.g., the button press does not directly cause the appearance of a character on the screen). The button press, instead, may be recognized by the device, a notification of the recognition of the occurrence thereby causing the execution of certain instruction sets that, in turn, cause a display or graphics module to render the letter ‘A’ on the display screen.


The second category of event 430 may generally be described as a synthetic event. In this instance, an action is recognized but the related function is not immediately present. The function, in this instance, must be synthesized to correspond to the event 430. For example, a particular command in an interface environment may be recognized but not present on a particular device. In this case, the issuance of the particular command causing the device to undertake the desired action would be synthesized and executed.


The third category of event 430 may be described as an ad hoc synthetic event wherein a series of actions occur internally. That is, one event 430 (the button press) results in the generation of a second event 430 (the execution of command code), which in turn results in the occurrence of some action by another element (e.g., hardware or a software module) of the device.


It should be noted that in some instances, the proper response/reaction 440 may be inaction. That is, the platform 400 does nothing in response to the event 430. Similarly, the platform 400 may take ‘wait-and-see’ approach and wait for the occurrence (or non-occurrence) of a subsequent event 430. This ‘wait-and-see’ approach would be apropos in the instance of a timer-related situation such as triple-tap text entry. Ultimately, the appropriation response/reaction 440 will be dependent upon the context of the event 430 as may be governed by, for example, a particular software application.


For example, the aforementioned button-press in a Nokia Series 40 Developer Platform operating environment may be equated to activating a backlight for a display screen. In another operating environment, however, the button press may be associated with sending a device into a ‘sleep’ state or may lack an associated function altogether. Absent the virtual platform 400, a user-interface would be unable to communicate the semantic content of the button press (e.g., undertake a particular action or cause a particular result) to both the Nokia platform and an alternate platform, such as the Palm OS®, as the syntax between the two platforms would differ.


Utilizing the virtual platform 400, however, the shell program 410 (in a Nokia platform environment, for example) would intercept and recognize the button press event 430 as indicative of the user's desire to enter sleep mode and communicate with the abstraction layer 420 in order to translate the event 430 into the proper response 440 for a Nokia-related device, which may normally be associated with a double press of another button. Similarly, the same virtual platform 400, when installed on a Palm OS® device could aid in translating the event 430 into a response 440 as recognized by a Palm OS® related device. A command issued by or in the context of a non-native device-neutral interface is recognized and translated, if necessary, for processing as if initially issued in the native device/platform environment. For example, a user could issue a sleep command as associated with a particular button as proffered by the device-neutral user interface and that button press, in part because of virtual platform 400, will be translated and recognized on a multitude of devices and/or platforms.



FIG. 5 illustrates a cross-platform event engine 500 as utilized in an exemplary embodiment of the presently described device-neutral user interface. Cross-platform event engine 500 comprises an event module 510 and related logic 520. Logic 520 may reside directly in the event module 510 or may be resident in other aspects of the engine 500 or the device. In FIG. 5, logic 520 is illustrated as residing in both the event module 510 and also in the greater event engine 500. The particular location of logic is not of particular consequence so long as the appropriate logic 520 is accessible by the engine 500 as needed. In that regard, logic 520 may also be present in individual hardware elements or software modules of a device.


An embodiment of the cross-platform event engine 500 translates and manages events 430 occurring in/on or in relation to a particular device and/or device-neutral interface (e.g., key down, up, or center press) into a syntax recognizable by the particular device wherein the interface (and its engine 500 and virtual platform 400) are operating. The cross-platform event engine 500 further ensures the presence and standardization of certain events (e.g., press-and-hold and key repeats) via synthesis, if necessary.


Event module 510 comprises information as it pertains to the recognition of certain events on various devices and/or platforms and to translate these events into a common syntax recognizable by the device so that the semantic content of the event is achieved or communicated to another element of the device. These events include information obtained from event module code and external sources of data, both on and off the device. For example, event module 510 may be programmed to correlate a press of a particular button (e.g, the ‘1’ number key on a certain device or in a certain platform environment) to result in a translation notification for the mobile device to activate its telephone functionality and automatically dial into a voice mail account assigned to that particular mobile device. This occurrence is the result of translating that event and its intended semantic result (the button press causing voice mail access) into a syntax comprehensible by the particular device. That is, button press ‘1’ (in the context of the device-neutral interface) is mapped to telephone and voice mail functionality. In this way, a user may correlate certain actions to certain results notwithstanding the particularities of a given operating platform and/or environment (e.g., button press of ‘1’ will always result in voice-mail access).


While an embodiment of event module 510 may comprise an abstraction layer (420) and logic 520, event module 510 may not necessarily include the aforementioned shell program 410, the program (in certain embodiments) being incorporated as a part of the abstraction layer 420 or some other aspect of event engine 500.


The information residing in the event module 510 and pertaining to event translation and management can be installed by an original equipment manufacturer or may be subject to user adjustment (e.g., deactivating default settings and/or imposing new settings) or subsequent software installations (e.g., upgrades and software patches). Information in the event module 510 may also be updated automatically during the operation of the device (e.g., wirelessly) or configured as the result of intelligent determinations by the engine 500.


For example, if the event module 510 determines that it is resident on a device for which it does not know what result should/will be triggered by the press of the ‘1’ key, the event module 510 can make certain assumptions based on a particular series of a device but not the exact model. That is, by analyzing operational parameters of similar devices (that information residing in the module 510 or otherwise accessible by the module 510), the event module 510 may assume and provide relevant information from which logic 520 and cross-platform event engine 500 can collectively translate an event input.


For example, a family of devices may recognize a press of the ‘1’ key as triggering (via a series of internal events) voice mail functionality. As a present device may be similar to, or even a member of, this device family, the present device utilizing the event engine 500 may translate the press event in a similar manner, that is, activating voice mail functionality.


The event module 510 may also receive updates with regard to device information or code during a synchronization/update/communication operation/event with another source of data/information (e.g., a P2P network, desktop PC, or server that hosts information pertinent to the device's operation). Updates may be acquired automatically or as a result of user action (e.g., affirmatively downloading an upgrade or patch from the appropriate provider of that information such as the device manufacturer or the platform-neutral interface designer). Such updates, as previously suggested, may also be received wirelessly over a wireless network from a corresponding data source.


The event module 510 may also request the user manually provide this information if an assumption or synchronization/update/communication operation/event fails to provide or otherwise obtain the necessary information.


Events and their related notifications (if any) need not be of any particular format or language so long as the event may be processed by the cross-platform engine 500 with regard to determining whether a particular application, sub-event, display, sound, etc. should be ultimately be executed. The same holds true for a proper response/reaction 440.


An embodiment of the cross-platform event engine 500 also comprises aforementioned logic 520 although other embodiments of the present invention allow for logic 520 to be located elsewhere on the device. The logic 520, based on an event input, interacts (e.g., query/reply) with event module 510 to determine if the particular event input may be processed on the particular device (e.g., a one-to-one translation) or if some adjustments will be required (e.g., synthesis) with regard to the particular configuration of the device as set forth in the event module 510. For example, logic 520 will, in conjunction with event module 510, determine: (1) if an event can be processed by the device and if it should; (2) if the event cannot be processed by the device but it should; and (3) if an event should not be processed by the device and to ensure that it is not. Logic 520 determines what to do with an event (i.e., what action, reaction, inaction is warranted?): allow the event module 510 to carry out an action in response to event or allow some other aspect of the device (e.g., the client) to carry out an action in response to the event.


If logic 520 determines that the event input can be identified and should be processed and subsequently executed, the event input will be processed (e.g., standardized with regard to syntax) by event module 510 as to allow for the proper reaction/response to take place in the device (e.g., one-to-one translation or a ‘pass’ of the event).


For example, the user presses the ‘1’ key (event input). The cross-platform event engine 500 will accept the event input and the logic 520 will communicate with the event module 510 with regard to the event engine 500 having received this particular input. If the logic 520 determines that the event should be processed, the event module 510 (presuming it to have been programmed with this particular information) will recognize that on the present device, a press of the ‘1’ key is meant to execute a telephone call to the user's voice mail. The event engine 500 will communicate the identification of this event to the appropriate elements of the device ultimately resulting in the activation of telephone functionality and a telephone call to the user's voice mail.


Should logic 520 and event module 510 determine that the requested operation is not immediately compatible with the present device (e.g., the device does not utilize a hard key press for voice mail access but a soft key selection, logic 520 may determine that a query to event module 510 is necessary to determine what the particular configuration of the device allows for the identical or similar operation and, if so, whether the particular event can be converted, translated or otherwise managed in such a way that will ultimately result in the invocation of an identical or similar operation.


For example, if the engine 500 recognizes that a hard key press is being executed, logic 520, after having accessed the event module 510 to determine what should be done with the key press event (that is, the notification of the event), may recognize that this particular event is usually associated with voice mail access. Logic 520, in conjunction with the event module 510, will determine that while voice mail access is possible on the present device, voice mail access is usually initiated via a soft key selection event. The cross-platform event engine 500 will convert the initial event into the proper request for the native environment (i.e., the operating system relative the device) whereby access to voice mail will eventually occur via the proper execution of other strings relative various elements in the device notwithstanding the fact that a differing input 530 syntax actually initiated the request on the device. That is, the semantics of the hard key press (access voice mail) is achieved via translation such that differences in syntax between the interface and device are overcome.


Information utilized by logic 520 and also for event module 510 as it pertains to translation and management of events may reside directly in the engine 500 or at a locale on the device accessible by the engine 500. For example, information pertaining to common events may be a permanently embedded part of logic 520 or in memory (not shown) accessible by the logic 520.


In certain embodiments, the logic 520 and event module 510 may be trained, whereby the engine 500 begins to recognize a particular event input without query to the event module 510 or a determination of how to handle to the event by logic 520. Through the training of the engine 500 and its various elements, there is no longer the need for unnecessary logic execution cycles or interactions with the event module 510 whereby the processing speed of an event by the engine 500 is normally decreased.


The logic 520 and/or event module 510, in some embodiments, may also be expressly instructed by the user (e.g., through pre-programming or a response to a query during processing) to respond to a particular difference in configuration as identified by the engine 500 in a particular manner. For example, if the event input pertains to the particular timing of a key press to invoke a particular application, the user may pre-program the logic engine 520 to automatically respond to that event relative the event module 510 as to launch that application (e.g., as a default) instead of logic 520 determining how to handle the event and subsequently interacting with the event module 510 to properly translate and/or manage the event. Such express instruction may also help avoid arrival at an erroneous result as to the particular nature of the event and how it may be processed in its native environment (e.g., the event module 510 improperly maps the event to a response/reaction on or in the device).


In that regard, the cross-platform event engine 500 can further be configured to recognize that the user of the device is perhaps most familiar with a particular operating system platform or mobile device. In that regard, the logic 520, in conjunction with event module 510, may recognize that an event is consistently mapped to a backlight function. The event invoking the backlight function may correspond to an event as would occur in a PalmOS® for that function. As such, the interface (via engine 500) may be reconfigured to reflect a PalmOS®-type interface and also default map as if events were occurring in a PalmOS® environment. Through such re-mapping, in the event there is a disparity as to what event a user actually seeks to execute through an event input, those events that relate to the user's more familiar platform or device are considered and/or invoked prior to considering any other particular events as they relate to less familiar devices or platforms (e.g., the engine 500 may query the user if they wish to operating in Palm-mode).


For example, a first device may associate a particular key press with attempting to access voice mail. A second device may associate the same key press with launching an electronic mail program and wirelessly accessing the Internet. In an interface comprising cross-platform event engine 500, the event module 510 will be programmed with information concerning events as they relate to both devices (e.g., a key press relating to voice mail on the first device and electronic mail on the second). When the event input (button press) is received by the cross-platform event engine 500, logic 520 will determine what to do with the event and, if appropriate, query the event module 510 to direct the notification of the key press to the appropriate element of the device (e.g., a voice mail module or an e-mail module) and to translate the notification into a syntax recognized by the device. Having been previously programmed to note or learn/been trained that the user formerly was a ‘first device’ user, however, logic 520 will determine to send the proper notification to the voice mail module and the event module 510 will convert the input into a syntax compatible with voice mail access thereby resulting in voice mail access (through appropriate instruction/action/reaction) rather than electronic mail and Internet access as would be appropriate had the user been a former ‘second device’ user.


An embodiment of the cross-platform event engine 500 also allows for cross-platform representation of strings and other executables.


As noted, the event module 510 of the cross-platform event engine 500 may be integrated with the virtual platform 400 and its abstraction layer 420 that allows for the interoperability of a device-neutral user interface on any variety of devices and/or platforms. This integration may also include integration with other engines such as a layout engine as described in U.S. provisional patent application No. 60/661,757, which has been incorporated herein by reference. While the cross-platform event engine 500 and virtual platform 400 need not necessarily be physically integrated, the platform-neutral user interface of the present invention requires that the two components at least be capable of communicating with one another as to allow for the translation of what may be a foreign instruction into an instruction otherwise comprehensible by the cross-platform event engine 500.


The above-described embodiments are exemplary. One skilled in the art will recognize and appreciate various applications of the disclosed invention beyond those presently described here. This disclosure is not meant to be limiting beyond those limitations as expressly provided in the claims.

Claims
  • 1. A method for executing a device-neutral interface on a device, the method comprising: recognizing that an event detected at the device by the device-neutral interface is not compatible with the device;identifying a result that is associated with the event;translating the event into a syntax recognizable by the device which when processed causes the device to effectuate the result that is associated with the event.
  • 2. The method of claim 1, wherein, the translating includes normalizing differing syntaxes among different platform environments into a common format reconcilable by the device.
  • 3. The method of claim 2, further comprising: storing information that indicates the result is associated with the event;storing syntax information that indicates that the syntax will cause the device to effectuate the result.
  • 4. The method of claim 3, wherein the information and the syntax information are provided by an original equipment manufacturer.
  • 5. The method of claim 3, wherein the semantic information and the syntax information are user specified and are re-configurable.
  • 6. The method of claim 3, wherein the semantic information and the syntax information are provided during a communication event.
  • 7. The method of claim 3, wherein the semantic information and the syntax information are derived as the result of an assumption based on operational parameters of other devices similar to the device.
  • 8. The method of claim 2, wherein the result includes a user interface result including, one or more of, opening a menu, activating a backlight, and entering sleep mode.
  • 9. The method of claim 1, wherein the event is generated by a hardware or software platform of the device, or caused by user input.
  • 10. The method of claim 1, wherein the translating the event into a syntax recognizable by the device includes issuing a command which would cause the result to effectuate at the device.
  • 11. The method of claim 1, wherein the event results from a key press or a touch-screen input at the device.
  • 12. A system, comprising: means for recognizing that an event occurring in a device-neutral interface of a device is not compatible with the device;means for determining a semantic result that is associated with the event;means for translating the event into a syntax recognizable by the device which when processed causes the device to effectuate the semantic result that is associated with the event;wherein the event results from a touch-screen input of a user at the device.
  • 13. The system of claim 12, further comprising: means for normalizing differing syntaxes among different platform environments into a common format reconcilable by the device.
  • 14. The system of claim 12, further comprising: means for storing semantic information that indicates the semantic result associated with the event;means for storing syntax information that indicates that the syntax will cause the device to effectuate the semantic result.
  • 15. The system of claim 14, wherein the semantic information and the syntax information are provided by an original equipment manufacturer.
  • 16. The system of claim 14, wherein the semantic information and the syntax information are provided by a user.
  • 17. A device, comprising: a processor; anda memory device including instructions that, when executed by the processor, cause the processor to:recognize that an event is not compatible with the device;determine a result that is associated with the event; andtranslate the event into a syntax recognizable by the device which when processed causes the device to effectuate the result that is associated with the event;wherein the result includes a user interface result.
  • 18. The device of claim 17, wherein the instructions further cause the processor to: normalize differing syntaxes of different platform environments into a common format such that the semantic result is achieved on the device.
  • 19. The device of claim 17, wherein the instructions further cause the processor to: access semantic information that indicates that the semantic result is associated with the event;access syntax information that indicates that the syntax will cause the device to effectuate the semantic result.
  • 20. The device of claim 19, wherein the semantic information and the syntax information are provided by a communication event.
  • 21. A method for executing commands that are non-native to the native environment of a mobile device, the method comprising: detecting a command at the mobile device;identifying the command as being non-native to the native environment of the mobile device;translating the command for processing by the mobile device as if initially issued in the native environment of the mobile device.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 11/227,323 filed Sep. 14, 2005, now U.S. Pat. No. 7,752,633 which claims the priority benefit of U.S. Provisional Application Ser. No. 60/661,757 filed Mar. 14, 2005 and entitled “Agnostic User Interface for Use in Mobile Devices,” the disclosure of which is incorporated herein by reference. This application is related to U.S. patent application Ser. No. 11/123,540 filed May 5, 2005, now abandoned, the disclosure of which is incorporated herein by reference. This application is also related to U.S. patent application Ser. No. 11/227,013 filed Sep. 14, 2005 and U.S. patent application Ser. No. 11/227,272 filed Sep. 14, 2005, now abandoned. All the aforementioned applications are commonly owned and assigned.

US Referenced Citations (981)
Number Name Date Kind
222458 Connolly et al. Dec 1879 A
447918 Strowger Mar 1891 A
4200770 Hellman et al. Apr 1980 A
4255796 Gabbe et al. Mar 1981 A
4276597 Dissly et al. Jun 1981 A
4531020 Wechselberger et al. Jul 1985 A
4807182 Queen Feb 1989 A
4831582 Miller et al. May 1989 A
4875159 Cary et al. Oct 1989 A
4897781 Chang et al. Jan 1990 A
4972457 O'Sullivan Nov 1990 A
5008853 Bly et al. Apr 1991 A
5159624 Makita Oct 1992 A
5220657 Bly et al. Jun 1993 A
5263157 Janis Nov 1993 A
5283856 Gross et al. Feb 1994 A
5357431 Nakada et al. Oct 1994 A
5384892 Strong Jan 1995 A
5386564 Shearer et al. Jan 1995 A
5392390 Crozier Feb 1995 A
5434994 Shaheen et al. Jul 1995 A
5436960 Campana, Jr. et al. Jul 1995 A
5438611 Campana, Jr. et al. Aug 1995 A
5479472 Campana, Jr. et al. Dec 1995 A
5487100 Kane Jan 1996 A
5493692 Theimer et al. Feb 1996 A
5519606 Frid-Nielsen et al. May 1996 A
5555376 Theimer et al. Sep 1996 A
5559800 Mousseau et al. Sep 1996 A
5572571 Shirai Nov 1996 A
5572643 Judson Nov 1996 A
5574859 Yeh Nov 1996 A
5581749 Hossain et al. Dec 1996 A
5600834 Howard Feb 1997 A
5603054 Theimer et al. Feb 1997 A
5604788 Tett Feb 1997 A
5613012 Hoffman et al. Mar 1997 A
5619507 Tsuda Apr 1997 A
5619648 Canale et al. Apr 1997 A
5623601 Vu Apr 1997 A
5625670 Campana, Jr. et al. Apr 1997 A
5625815 Maier et al. Apr 1997 A
5627658 Connors et al. May 1997 A
5630081 Rybicki et al. May 1997 A
5631946 Campana, Jr. et al. May 1997 A
5632018 Otorii May 1997 A
5634053 Noble et al. May 1997 A
5647002 Brunson Jul 1997 A
5652884 Palevich Jul 1997 A
5664207 Crumpler et al. Sep 1997 A
5666530 Clark et al. Sep 1997 A
5666553 Crozier Sep 1997 A
5680542 Mulchandani et al. Oct 1997 A
5682524 Freund et al. Oct 1997 A
5684990 Boothby Nov 1997 A
5689654 Kikinis et al. Nov 1997 A
5692039 Brankley et al. Nov 1997 A
5696903 Mahany Dec 1997 A
5701423 Crozier Dec 1997 A
5701469 Brandli et al. Dec 1997 A
5704029 Wright, Jr. Dec 1997 A
5706211 Beletic et al. Jan 1998 A
5706502 Foley et al. Jan 1998 A
5706507 Schloss Jan 1998 A
5710918 Lagarde et al. Jan 1998 A
5713019 Keaten Jan 1998 A
5715403 Stefik Feb 1998 A
5717925 Harper et al. Feb 1998 A
5721908 Lagarde et al. Feb 1998 A
5721914 DeVries Feb 1998 A
5727202 Kucala Mar 1998 A
5729549 Kostreski et al. Mar 1998 A
5729704 Stone et al. Mar 1998 A
5729735 Meyering Mar 1998 A
5742905 Pepe et al. Apr 1998 A
5745360 Leone et al. Apr 1998 A
5752186 Malackowski et al. May 1998 A
5752246 Rogers et al. May 1998 A
5754938 Herz et al. May 1998 A
5757916 MacDoran et al. May 1998 A
5758088 Bezaire et al. May 1998 A
5758150 Bell et al. May 1998 A
5758322 Rongley May 1998 A
5758354 Huang et al. May 1998 A
5758355 Buchanan May 1998 A
5765171 Gehani et al. Jun 1998 A
5778346 Frid-Nielsen et al. Jul 1998 A
5778361 Nanjo et al. Jul 1998 A
5781614 Brunson Jul 1998 A
5781901 Kuzma Jul 1998 A
5781906 Aggarwal et al. Jul 1998 A
5787430 Doeringer et al. Jul 1998 A
5787441 Beckhardt Jul 1998 A
5790425 Wagle Aug 1998 A
5790790 Smith et al. Aug 1998 A
5790974 Tognazzini Aug 1998 A
5793413 Hylton et al. Aug 1998 A
5794210 Goldhaber et al. Aug 1998 A
5799318 Cardinal et al. Aug 1998 A
5802312 Lazaridis et al. Sep 1998 A
5802454 Goshay et al. Sep 1998 A
5802518 Karaev et al. Sep 1998 A
5802524 Flowers et al. Sep 1998 A
5806074 Souder et al. Sep 1998 A
5809242 Shaw et al. Sep 1998 A
5809415 Rossmann Sep 1998 A
5818437 Grover et al. Oct 1998 A
5819172 Campana, Jr. et al. Oct 1998 A
5819274 Jackson, Jr. Oct 1998 A
5819284 Farber et al. Oct 1998 A
5822324 Kostresti et al. Oct 1998 A
5822747 Graefe et al. Oct 1998 A
5826269 Hussey Oct 1998 A
5831664 Wharton et al. Nov 1998 A
5832483 Barker Nov 1998 A
5832489 Kucala Nov 1998 A
5832500 Burrows Nov 1998 A
5835087 Herz et al. Nov 1998 A
5835722 Bradshaw et al. Nov 1998 A
5838252 Kikinis Nov 1998 A
5838768 Sumar et al. Nov 1998 A
5838973 Carpenter-Smith et al. Nov 1998 A
5845278 Kirsch et al. Dec 1998 A
5852775 Hidary Dec 1998 A
5852820 Burrows Dec 1998 A
5857201 Wright, Jr. et al. Jan 1999 A
5862223 Walker et al. Jan 1999 A
5867665 Butman et al. Feb 1999 A
5867817 Catallo et al. Feb 1999 A
5870759 Bauer et al. Feb 1999 A
5884323 Hawkins et al. Mar 1999 A
5889845 Staples et al. Mar 1999 A
5890147 Peltonen et al. Mar 1999 A
5892909 Grasso et al. Apr 1999 A
5898780 Liu et al. Apr 1999 A
5898917 Batni et al. Apr 1999 A
5903723 Beck et al. May 1999 A
5907618 Gennaro et al. May 1999 A
5909689 Van Ryzin Jun 1999 A
5913032 Schwartz et al. Jun 1999 A
5924096 Draper et al. Jul 1999 A
5928325 Shaughnessy et al. Jul 1999 A
5928329 Clark et al. Jul 1999 A
5937161 Mulligan et al. Aug 1999 A
5943676 Boothby Aug 1999 A
5948066 Whalen et al. Sep 1999 A
5951636 Zerber Sep 1999 A
5960394 Gould et al. Sep 1999 A
5960406 Rasansky et al. Sep 1999 A
5961590 Mendez et al. Oct 1999 A
5963642 Goldstein Oct 1999 A
5964833 Kikinis Oct 1999 A
5968131 Mendez et al. Oct 1999 A
5974238 Chase, Jr. Oct 1999 A
5974327 Agrawal et al. Oct 1999 A
5978837 Foladare et al. Nov 1999 A
5978933 Wyld et al. Nov 1999 A
5987440 O'Neil et al. Nov 1999 A
6000000 Hawkins et al. Dec 1999 A
6003070 Frantz Dec 1999 A
6006274 Hawkins et al. Dec 1999 A
6016478 Zhang et al. Jan 2000 A
6016520 Facq et al. Jan 2000 A
6018762 Brunson et al. Jan 2000 A
6023700 Owens et al. Feb 2000 A
6023708 Mendez et al. Feb 2000 A
6029238 Furukawa Feb 2000 A
6034621 Kaufman Mar 2000 A
6035104 Zahariev Mar 2000 A
6044372 Rothfus et al. Mar 2000 A
6044381 Boothby et al. Mar 2000 A
6047051 Ginzboorg et al. Apr 2000 A
6047327 Tso et al. Apr 2000 A
6052563 Macko Apr 2000 A
6052735 Ulrich et al. Apr 2000 A
6057855 Barkans May 2000 A
6065055 Hughes et al. May 2000 A
6073138 de l'Etraz et al. Jun 2000 A
6073142 Geiger et al. Jun 2000 A
6073165 Narasimhan et al. Jun 2000 A
6085166 Beckhardt et al. Jul 2000 A
6085192 Mendez et al. Jul 2000 A
6088677 Spurgeon Jul 2000 A
6101320 Schuetze et al. Aug 2000 A
6101480 Conmy et al. Aug 2000 A
6101531 Eggleston et al. Aug 2000 A
6112181 Shear et al. Aug 2000 A
6119014 Alperovich et al. Sep 2000 A
6119171 Alkhatib Sep 2000 A
6125369 Wu et al. Sep 2000 A
6125388 Reisman Sep 2000 A
6128627 Mattis et al. Oct 2000 A
6130898 Kostreski et al. Oct 2000 A
6131096 Ng et al. Oct 2000 A
6131116 Riggins et al. Oct 2000 A
6134432 Holmes et al. Oct 2000 A
6138013 Blanchard et al. Oct 2000 A
6138124 Beckhardt Oct 2000 A
6138128 Perkowitz et al. Oct 2000 A
6138146 Moon et al. Oct 2000 A
6141664 Boothby Oct 2000 A
6151606 Mendez Nov 2000 A
6157630 Adler et al. Dec 2000 A
6161140 Moriya Dec 2000 A
6167379 Dean et al. Dec 2000 A
6167435 Druckenmiller et al. Dec 2000 A
6170014 Darago et al. Jan 2001 B1
6173312 Atarashi et al. Jan 2001 B1
6173446 Khan et al. Jan 2001 B1
6175831 Weinreich et al. Jan 2001 B1
6178419 Legh-Smith et al. Jan 2001 B1
6181935 Gossman et al. Jan 2001 B1
6195533 Tkatch et al. Feb 2001 B1
6198696 Korpi et al. Mar 2001 B1
6198922 Baynham Mar 2001 B1
6201469 Balch et al. Mar 2001 B1
6202085 Benson et al. Mar 2001 B1
6205448 Kruglikov et al. Mar 2001 B1
6212529 Boothby et al. Apr 2001 B1
6219694 Lazaridis et al. Apr 2001 B1
6221877 Aronov et al. Apr 2001 B1
6223187 Boothby et al. Apr 2001 B1
6226686 Rothschild et al. May 2001 B1
6233341 Riggins May 2001 B1
6243705 Kucala Jun 2001 B1
6246875 Seazholtz et al. Jun 2001 B1
6247135 Feague Jun 2001 B1
6249808 Seshadri Jun 2001 B1
6256666 Singhal Jul 2001 B1
6263201 Hashimoto et al. Jul 2001 B1
6263340 Green Jul 2001 B1
6269369 Robertson Jul 2001 B1
6272545 Flanagin et al. Aug 2001 B1
6275850 Beyda et al. Aug 2001 B1
6289212 Stein et al. Sep 2001 B1
6292904 Broomhall et al. Sep 2001 B1
6295541 Bodnar et al. Sep 2001 B1
6300947 Kanevsky Oct 2001 B1
6304881 Halim et al. Oct 2001 B1
6308201 Pivowar et al. Oct 2001 B1
6317594 Gossman et al. Nov 2001 B1
6320943 Borland Nov 2001 B1
6324541 de l'Etraz et al. Nov 2001 B1
6324542 Wright, Jr. et al. Nov 2001 B1
6324544 Alam et al. Nov 2001 B1
6324587 Trenbeath et al. Nov 2001 B1
6327586 Kisiel Dec 2001 B1
6336117 Massarani Jan 2002 B1
6356937 Montville et al. Mar 2002 B1
6363352 Dailey et al. Mar 2002 B1
6370566 Discolo et al. Apr 2002 B2
6377810 Geiger et al. Apr 2002 B1
6380959 Wang et al. Apr 2002 B1
6389422 Doi et al. May 2002 B1
6389455 Fuisz May 2002 B1
6389457 Lazaridis et al. May 2002 B2
6397057 Malackowski et al. May 2002 B1
6397230 Carmel et al. May 2002 B1
6401104 LaRue et al. Jun 2002 B1
6401112 Boyer et al. Jun 2002 B1
6401113 Lazaridis et al. Jun 2002 B2
6405197 Gilmour Jun 2002 B2
6411696 Iverson et al. Jun 2002 B1
6415031 Colligan et al. Jul 2002 B1
6418308 Heinonen et al. Jul 2002 B1
6421669 Gilmour et al. Jul 2002 B1
6421781 Fox et al. Jul 2002 B1
6430602 Kay et al. Aug 2002 B1
6438585 Mousseau et al. Aug 2002 B2
6438612 Ylonen et al. Aug 2002 B1
6442589 Takahashi et al. Aug 2002 B1
6442637 Hawkins et al. Aug 2002 B1
6446118 Gottlieb Sep 2002 B1
6463463 Godfrey et al. Oct 2002 B1
6463464 Lazaridis et al. Oct 2002 B1
6487557 Nagatomo Nov 2002 B1
6487560 LaRue et al. Nov 2002 B1
6490353 Tan Dec 2002 B1
6496802 van Zoest et al. Dec 2002 B1
6499054 Hesselink et al. Dec 2002 B1
6505214 Sherman et al. Jan 2003 B1
6516327 Zondervan et al. Feb 2003 B1
6526506 Lewis Feb 2003 B1
6529908 Piett et al. Mar 2003 B1
6532446 King Mar 2003 B1
6535892 LaRue et al. Mar 2003 B1
6546005 Berkley et al. Apr 2003 B1
6549939 Ford et al. Apr 2003 B1
6556217 Makipaa et al. Apr 2003 B1
6593944 Nicolas et al. Jul 2003 B1
6601026 Appelt et al. Jul 2003 B2
6615253 Bowman-Amuah Sep 2003 B1
6618710 Zondervan et al. Sep 2003 B1
6621892 Banister et al. Sep 2003 B1
6625621 Tan et al. Sep 2003 B2
6636482 Cloonan et al. Oct 2003 B2
6639693 Ejiri et al. Oct 2003 B1
6640097 Corrigan et al. Oct 2003 B2
6640244 Bowman-Amuah Oct 2003 B1
6640249 Bowman-Amuah Oct 2003 B1
6643650 Slaughter et al. Nov 2003 B1
6643688 Fuisz Nov 2003 B1
6647384 Gilmour Nov 2003 B2
6650890 Irlam et al. Nov 2003 B1
6662016 Buckham et al. Dec 2003 B1
6668046 Albal Dec 2003 B1
6671695 McFadden Dec 2003 B2
6671700 Creemer et al. Dec 2003 B1
6671702 Kruglikov et al. Dec 2003 B2
6671757 Multer et al. Dec 2003 B1
6694336 Multer et al. Feb 2004 B1
6697807 McGeachie Feb 2004 B2
6701378 Gilhuly et al. Mar 2004 B1
6707801 Hsu Mar 2004 B2
6708221 Mendez et al. Mar 2004 B1
6714965 Kakuta et al. Mar 2004 B2
6721787 Hiscock Apr 2004 B1
6727917 Chew et al. Apr 2004 B1
6728530 Heinonen et al. Apr 2004 B1
6728786 Hawkins et al. Apr 2004 B2
6732101 Cook May 2004 B1
6732158 Hesselink et al. May 2004 B1
6735591 Khan May 2004 B2
6741232 Siedlikowski et al. May 2004 B1
6741855 Martin et al. May 2004 B1
6742015 Bowman-Amuah May 2004 B1
6745024 DeJaco et al. Jun 2004 B1
6745326 Wary Jun 2004 B1
6756882 Benes et al. Jun 2004 B2
6757362 Cooper et al. Jun 2004 B1
6757696 Multer et al. Jun 2004 B2
6760916 Holtz et al. Jul 2004 B2
6771294 Pulli et al. Aug 2004 B1
6775362 Ransom Aug 2004 B1
6779019 Mousseau et al. Aug 2004 B1
6782409 Yoshida Aug 2004 B1
6785868 Raff Aug 2004 B1
6785906 Gaughan et al. Aug 2004 B1
6799190 Boothby Sep 2004 B1
6804707 Ronning Oct 2004 B1
6816849 Halt, Jr. Nov 2004 B1
6820088 Hind et al. Nov 2004 B1
6820204 Desai et al. Nov 2004 B1
6829487 Eiden et al. Dec 2004 B2
6834195 Brandenberg et al. Dec 2004 B2
6847974 Wachtel Jan 2005 B2
6850757 Watanabe et al. Feb 2005 B2
6859212 Kumar et al. Feb 2005 B2
6867774 Halmshaw et al. Mar 2005 B1
6868447 Slaughter et al. Mar 2005 B1
6871220 Rajan et al. Mar 2005 B1
6871236 Fishman et al. Mar 2005 B2
6873688 Aarnio Mar 2005 B1
6874017 Inoue et al. Mar 2005 B1
6879985 Deguchi et al. Apr 2005 B2
6886030 Easterbrook et al. Apr 2005 B1
6892070 Warrier et al. May 2005 B2
6892196 Hughes May 2005 B1
6895394 Kremer et al. May 2005 B1
6895558 Loveland May 2005 B1
6898427 Griffith et al. May 2005 B1
6922547 O'Neill et al. Jul 2005 B2
6922721 Minborg et al. Jul 2005 B1
6925477 Champagne et al. Aug 2005 B1
6931529 Kunzinger Aug 2005 B2
6938079 Anderson et al. Aug 2005 B1
6944447 Portman et al. Sep 2005 B2
6944662 Devine et al. Sep 2005 B2
6947770 Rydbeck Sep 2005 B2
6957397 Hawkins et al. Oct 2005 B1
6965917 Aloni et al. Nov 2005 B1
6966058 Earl et al. Nov 2005 B2
6968175 Raivisto et al. Nov 2005 B2
6970879 Gilmour Nov 2005 B1
6972682 Lareau et al. Dec 2005 B2
6973299 Apfel Dec 2005 B2
6981041 Araujo et al. Dec 2005 B2
6981047 Hanson et al. Dec 2005 B2
6985983 Pellegrino et al. Jan 2006 B2
6986061 Kunzinger Jan 2006 B1
6987734 Hundemer Jan 2006 B2
6990472 Rosenhaft et al. Jan 2006 B2
6993326 Link, II et al. Jan 2006 B2
6993327 Mathis Jan 2006 B2
6999753 Beckmann et al. Feb 2006 B2
7020685 Chen et al. Mar 2006 B1
7024491 Hanmann et al. Apr 2006 B1
7026984 Thandu et al. Apr 2006 B1
7032242 Grabelsky et al. Apr 2006 B1
7035630 Knowles Apr 2006 B2
7046993 Haaramo et al. May 2006 B2
7047202 Jaipuria et al. May 2006 B2
7062024 Kreckel et al. Jun 2006 B2
7069308 Abrams Jun 2006 B2
7072678 Allison Jul 2006 B2
7079499 Akhtar et al. Jul 2006 B1
7082316 Eiden et al. Jul 2006 B2
7085365 Kauppinen Aug 2006 B2
7096030 Huomo Aug 2006 B2
7100821 Rasti Sep 2006 B2
7103432 Drader et al. Sep 2006 B2
7120692 Hesselink et al. Oct 2006 B2
7120928 Sheth et al. Oct 2006 B2
7130839 Boreham et al. Oct 2006 B2
7136645 Hanson et al. Nov 2006 B2
7139555 Apfel Nov 2006 B2
7139565 Fiatal et al. Nov 2006 B2
7140549 de Jong Nov 2006 B2
7146645 Hellsten et al. Dec 2006 B1
7149780 Quine et al. Dec 2006 B2
7149789 Slivka et al. Dec 2006 B2
7149959 Jones et al. Dec 2006 B1
7162241 Kim et al. Jan 2007 B2
7165727 de Jong Jan 2007 B2
7172118 Urken Feb 2007 B2
7181228 Boesch Feb 2007 B2
7184790 Dorenbosch et al. Feb 2007 B2
7185362 Hawkes et al. Feb 2007 B2
7194273 Vaudreuil Mar 2007 B2
7200390 Henager et al. Apr 2007 B1
7203733 Bern Apr 2007 B1
7206806 Pineau Apr 2007 B2
7209757 Naghian et al. Apr 2007 B2
7219222 Durbin et al. May 2007 B1
7224957 Spector May 2007 B2
7231206 Cudak et al. Jun 2007 B2
7233795 Ryden Jun 2007 B1
7234111 Chu et al. Jun 2007 B2
7239877 Corneille et al. Jul 2007 B2
7240095 Lewis Jul 2007 B1
7242680 Gallant Jul 2007 B2
7245926 Liao et al. Jul 2007 B2
7257391 Burgess et al. Aug 2007 B2
7257639 Li et al. Aug 2007 B1
7259666 Hermsmeyer et al. Aug 2007 B1
7260552 Riera Jorba et al. Aug 2007 B2
7260590 Williams Aug 2007 B1
7272830 de Jong Sep 2007 B2
7277408 Sorsa Oct 2007 B2
7289792 Turunen Oct 2007 B1
7289964 Bowman-Amuah Oct 2007 B1
7289971 O'Neil et al. Oct 2007 B1
7293107 Hanson et al. Nov 2007 B1
7295853 Jin et al. Nov 2007 B2
7305252 Britt et al. Dec 2007 B2
7305700 Boynton et al. Dec 2007 B2
7310350 Shao et al. Dec 2007 B1
7310729 Gordon et al. Dec 2007 B2
7349871 Labrou et al. Mar 2008 B2
7359720 Hartmaier et al. Apr 2008 B2
7373386 Gardner et al. May 2008 B2
7374099 de Jong May 2008 B2
7376701 Bhargava et al. May 2008 B2
7382879 Miller Jun 2008 B1
7388950 Elsey et al. Jun 2008 B2
7389412 Sharma et al. Jun 2008 B2
7392483 Wong et al. Jun 2008 B2
7395329 Holt et al. Jul 2008 B1
7398271 Borkovsky et al. Jul 2008 B1
7430609 Brown et al. Sep 2008 B2
7441271 Fiatal et al. Oct 2008 B2
7461071 Fitzpatrick et al. Dec 2008 B2
7465231 Lewin et al. Dec 2008 B2
7469125 Nurmi Dec 2008 B2
7483036 Moore Jan 2009 B2
7499537 Elsey et al. Mar 2009 B2
7502615 Wilhoite et al. Mar 2009 B2
7519042 Gorday et al. Apr 2009 B2
7532571 Price et al. May 2009 B1
7539665 Mendez May 2009 B2
7548947 Kasriel et al. Jun 2009 B2
7551900 Kang et al. Jun 2009 B2
7567575 Chen et al. Jul 2009 B2
7574208 Hanson et al. Aug 2009 B2
7575171 Lev Aug 2009 B2
7584294 Plamondon Sep 2009 B2
7587482 Henderson et al. Sep 2009 B2
7587608 Haller et al. Sep 2009 B2
7593714 Schultz et al. Sep 2009 B2
7596608 Alexander et al. Sep 2009 B2
7613792 Zervas et al. Nov 2009 B2
7643818 Backholm et al. Jan 2010 B2
7644166 Appelman et al. Jan 2010 B2
7672439 Appelman et al. Mar 2010 B2
7680281 Fiatal et al. Mar 2010 B2
7689664 Karlberg Mar 2010 B2
7693944 Appelman et al. Apr 2010 B2
7694008 Chang et al. Apr 2010 B2
7706781 Backholm et al. Apr 2010 B2
7752633 Fleming Jul 2010 B1
7757956 Koenck et al. Jul 2010 B2
7769395 Fiatal et al. Aug 2010 B2
7769400 Backholm et al. Aug 2010 B2
7769805 Barnes et al. Aug 2010 B1
7783757 Plamondon Aug 2010 B2
7796742 Sutaria et al. Sep 2010 B1
7797064 Loomis et al. Sep 2010 B2
7809818 Plamondon Oct 2010 B2
7827055 Snodgrass et al. Nov 2010 B1
7827597 Boynton et al. Nov 2010 B2
7853563 Alvarado et al. Dec 2010 B2
7877703 Fleming Jan 2011 B1
7899996 Levin-Michael Mar 2011 B1
7917505 van Gent et al. Mar 2011 B2
7921167 Shroff et al. Apr 2011 B2
7937091 Roman et al. May 2011 B2
7970860 Kline et al. Jun 2011 B2
7996487 Snyder Aug 2011 B2
8005891 Knowles et al. Aug 2011 B2
8010082 Sutaria et al. Aug 2011 B2
8064583 Sutaria et al. Nov 2011 B1
8069166 Alvarado et al. Nov 2011 B2
8078158 Backholm Dec 2011 B2
20010009025 Ahonen Jul 2001 A1
20010010046 Muyres et al. Jul 2001 A1
20010013069 Shah Aug 2001 A1
20010023414 Kumar et al. Sep 2001 A1
20010032254 Hawkins Oct 2001 A1
20010034225 Gupte et al. Oct 2001 A1
20010034244 Calder et al. Oct 2001 A1
20010037453 Mitty et al. Nov 2001 A1
20010039191 Maierhofer Nov 2001 A1
20010041566 Xanthos et al. Nov 2001 A1
20010042009 Montague Nov 2001 A1
20010042099 Peng Nov 2001 A1
20010043148 Stewart Nov 2001 A1
20010053687 Sivula Dec 2001 A1
20020002478 Swart et al. Jan 2002 A1
20020002591 Ketola Jan 2002 A1
20020007303 Brookler et al. Jan 2002 A1
20020013727 Lee Jan 2002 A1
20020019225 Miyashita Feb 2002 A1
20020019812 Board et al. Feb 2002 A1
20020035556 Shah et al. Mar 2002 A1
20020035617 Lynch et al. Mar 2002 A1
20020038253 Seaman et al. Mar 2002 A1
20020042875 Shukla Apr 2002 A1
20020049828 Pekarek-Kostka Apr 2002 A1
20020053078 Holtz et al. May 2002 A1
20020055351 Elsey et al. May 2002 A1
20020059201 Work May 2002 A1
20020059457 Ballard et al. May 2002 A1
20020068559 Sharma et al. Jun 2002 A1
20020073207 Widger et al. Jun 2002 A1
20020077077 Rezvani et al. Jun 2002 A1
20020077084 Zellner et al. Jun 2002 A1
20020078384 Hippelainen Jun 2002 A1
20020087549 Mostafa Jul 2002 A1
20020087679 Pulley et al. Jul 2002 A1
20020089542 Imamura Jul 2002 A1
20020091921 Kunzinger Jul 2002 A1
20020095319 Swart et al. Jul 2002 A1
20020095328 Swart et al. Jul 2002 A1
20020095391 Swart et al. Jul 2002 A1
20020095399 Devine et al. Jul 2002 A1
20020098855 Hartmaier et al. Jul 2002 A1
20020099613 Swart et al. Jul 2002 A1
20020099809 Lee Jul 2002 A1
20020101975 Tiburtius et al. Aug 2002 A1
20020107985 Hwang et al. Aug 2002 A1
20020116499 Enns et al. Aug 2002 A1
20020116501 Ho et al. Aug 2002 A1
20020120766 Okajima et al. Aug 2002 A1
20020120779 Teeple et al. Aug 2002 A1
20020126701 Requena Sep 2002 A1
20020133504 Vlahos et al. Sep 2002 A1
20020144109 Benantar et al. Oct 2002 A1
20020146129 Kaplan Oct 2002 A1
20020152379 Gefwert et al. Oct 2002 A1
20020155848 Suryanarayana Oct 2002 A1
20020156839 Peterson et al. Oct 2002 A1
20020158908 Vaajala et al. Oct 2002 A1
20020161587 Pitts et al. Oct 2002 A1
20020161925 Munger et al. Oct 2002 A1
20020161928 Ndili Oct 2002 A1
20020164977 Link, II et al. Nov 2002 A1
20020167484 Hatanaka et al. Nov 2002 A1
20020174189 Peng Nov 2002 A1
20020186848 Shaik Dec 2002 A1
20020188940 Breckner et al. Dec 2002 A1
20020193094 Lawless et al. Dec 2002 A1
20020194209 Bolosky et al. Dec 2002 A1
20020198027 Rydbeck Dec 2002 A1
20030005151 Ullman et al. Jan 2003 A1
20030022662 Mittal Jan 2003 A1
20030023692 Moroo Jan 2003 A1
20030023975 Schrader et al. Jan 2003 A1
20030028430 Zimmerman Feb 2003 A1
20030028441 Barsness et al. Feb 2003 A1
20030050041 Wu Mar 2003 A1
20030054810 Chen et al. Mar 2003 A1
20030056096 Albert et al. Mar 2003 A1
20030060188 Gidron et al. Mar 2003 A1
20030063120 Wong et al. Apr 2003 A1
20030065738 Yang et al. Apr 2003 A1
20030065739 Shnier Apr 2003 A1
20030065802 Vitikainen et al. Apr 2003 A1
20030070061 Wong et al. Apr 2003 A1
20030072451 Pimentel et al. Apr 2003 A1
20030078880 Alley et al. Apr 2003 A1
20030084165 Kjellberg et al. May 2003 A1
20030088629 Berkowitz et al. May 2003 A1
20030093691 Simon et al. May 2003 A1
20030097381 Detweiler et al. May 2003 A1
20030100321 Rao et al. May 2003 A1
20030100326 Grube et al. May 2003 A1
20030117432 Kautto-Kiovula et al. Jun 2003 A1
20030120685 Duncombe et al. Jun 2003 A1
20030125023 Fishler Jul 2003 A1
20030126216 Avila et al. Jul 2003 A1
20030130984 Quinlan et al. Jul 2003 A1
20030146934 Bailey et al. Aug 2003 A1
20030153338 Herz et al. Aug 2003 A1
20030154212 Schirmer et al. Aug 2003 A1
20030156146 Suomela et al. Aug 2003 A1
20030157947 Fiatal et al. Aug 2003 A1
20030169262 Lavelle et al. Sep 2003 A1
20030177281 McQuillan et al. Sep 2003 A1
20030182431 Sturniolo et al. Sep 2003 A1
20030187984 Banavar et al. Oct 2003 A1
20030208529 Pendyala et al. Nov 2003 A1
20030208559 Velline et al. Nov 2003 A1
20030210666 Trossen et al. Nov 2003 A1
20030211845 Lohtia et al. Nov 2003 A1
20030217098 Bobde et al. Nov 2003 A1
20030217142 Bobde et al. Nov 2003 A1
20030223554 Zhang Dec 2003 A1
20030227745 Khoo Dec 2003 A1
20030235308 Boynton et al. Dec 2003 A1
20030236981 Marmigere et al. Dec 2003 A1
20040002324 Juntunen et al. Jan 2004 A1
20040006630 Friend et al. Jan 2004 A1
20040024795 Hind et al. Feb 2004 A1
20040024892 Creswell et al. Feb 2004 A1
20040027326 Hays et al. Feb 2004 A1
20040027375 Ellis et al. Feb 2004 A1
20040027378 Hays et al. Feb 2004 A1
20040043770 Amit et al. Mar 2004 A1
20040049599 Friend et al. Mar 2004 A1
20040051715 Brokenshire et al. Mar 2004 A1
20040054739 Friend et al. Mar 2004 A1
20040064445 Pfleging et al. Apr 2004 A1
20040064488 Sinha Apr 2004 A1
20040068579 Marmigere et al. Apr 2004 A1
20040068698 Wu et al. Apr 2004 A1
20040073476 Donahue et al. Apr 2004 A1
20040073651 Beaulieu et al. Apr 2004 A1
20040075675 Raivisto et al. Apr 2004 A1
20040075695 Chew et al. Apr 2004 A1
20040078814 Allen Apr 2004 A1
20040080515 Hagiwara Apr 2004 A1
20040082346 Skytt et al. Apr 2004 A1
20040098625 Lagadec et al. May 2004 A1
20040103147 Flesher et al. May 2004 A1
20040120323 Viikari et al. Jun 2004 A1
20040123304 Black et al. Jun 2004 A1
20040128375 Rockwell Jul 2004 A1
20040133626 Herrero et al. Jul 2004 A1
20040141011 Smethers et al. Jul 2004 A1
20040147248 Will Jul 2004 A1
20040147262 Lescuyer et al. Jul 2004 A1
20040158611 Daniell et al. Aug 2004 A1
20040167966 Lee et al. Aug 2004 A1
20040170257 Gross et al. Sep 2004 A1
20040172481 Engstrom Sep 2004 A1
20040176128 Grabelsky et al. Sep 2004 A1
20040177369 Akins Sep 2004 A1
20040179513 Smith et al. Sep 2004 A1
20040181550 Warsta et al. Sep 2004 A1
20040186902 Stewart Sep 2004 A1
20040189610 Friend Sep 2004 A1
20040199497 Timmons Oct 2004 A1
20040199582 Kucharewski et al. Oct 2004 A1
20040199663 Horvitz et al. Oct 2004 A1
20040205248 Little et al. Oct 2004 A1
20040205330 Godfrey et al. Oct 2004 A1
20040209602 Joyce et al. Oct 2004 A1
20040210639 Ben-Yoseph et al. Oct 2004 A1
20040230619 Blanco et al. Nov 2004 A1
20040233930 Colby Nov 2004 A1
20040236792 Celik Nov 2004 A1
20040252816 Nicolas Dec 2004 A1
20040255126 Reith Dec 2004 A1
20040258231 Elsey et al. Dec 2004 A1
20040259535 Elsey et al. Dec 2004 A1
20040259537 Ackley Dec 2004 A1
20040266364 Nguyen et al. Dec 2004 A1
20040268148 Karjala et al. Dec 2004 A1
20050002501 Elsey et al. Jan 2005 A1
20050002508 Elsey et al. Jan 2005 A1
20050002509 Elsey et al. Jan 2005 A1
20050002510 Elsey et al. Jan 2005 A1
20050010694 Ma et al. Jan 2005 A1
20050015432 Cohen Jan 2005 A1
20050021750 Abrams Jan 2005 A1
20050022182 Mittal Jan 2005 A1
20050027591 Gailey et al. Feb 2005 A9
20050027716 Apfel Feb 2005 A1
20050033812 McCarthy et al. Feb 2005 A1
20050037741 Gilbert Feb 2005 A1
20050038707 Roever et al. Feb 2005 A1
20050038724 Roever et al. Feb 2005 A1
20050038863 Onyon et al. Feb 2005 A1
20050041793 Fulton et al. Feb 2005 A1
20050044144 Malik et al. Feb 2005 A1
20050055578 Wright et al. Mar 2005 A1
20050063544 Uusitalo et al. Mar 2005 A1
20050071674 Chou et al. Mar 2005 A1
20050073982 Corneille et al. Apr 2005 A1
20050076136 Cho et al. Apr 2005 A1
20050076241 Appelman Apr 2005 A1
20050086540 Gunter et al. Apr 2005 A1
20050094625 Bouat May 2005 A1
20050097225 Glatt et al. May 2005 A1
20050097570 Bomers May 2005 A1
20050101307 Brugge et al. May 2005 A1
20050102257 Onyon et al. May 2005 A1
20050102328 Ring et al. May 2005 A1
20050102351 Jiang et al. May 2005 A1
20050108427 Datta May 2005 A1
20050117606 Kim Jun 2005 A1
20050120082 Hesselink et al. Jun 2005 A1
20050120084 Hu et al. Jun 2005 A1
20050122333 Sumanaweera et al. Jun 2005 A1
20050124332 Clark et al. Jun 2005 A1
20050138111 Aton et al. Jun 2005 A1
20050144219 Terada Jun 2005 A1
20050154698 Ikezawa et al. Jul 2005 A1
20050154796 Forsyth Jul 2005 A1
20050154836 Steely et al. Jul 2005 A1
20050155027 Wei Jul 2005 A1
20050164721 Eric Yeh et al. Jul 2005 A1
20050165909 Cromer et al. Jul 2005 A1
20050183143 Anderholm et al. Aug 2005 A1
20050188038 Yabe Aug 2005 A1
20050193036 Phillips et al. Sep 2005 A1
20050193096 Yu et al. Sep 2005 A1
20050203966 Labrou et al. Sep 2005 A1
20050210104 Torvinen Sep 2005 A1
20050210125 Li Sep 2005 A1
20050228812 Hansmann et al. Oct 2005 A1
20050232295 Young Oct 2005 A1
20050234860 Roever et al. Oct 2005 A1
20050235214 Shimizu et al. Oct 2005 A1
20050246139 Rivenbark et al. Nov 2005 A1
20050248526 Twerdahl et al. Nov 2005 A1
20050251555 Little Nov 2005 A1
20050254443 Campbell et al. Nov 2005 A1
20050262220 Ecklund et al. Nov 2005 A1
20050273804 Preisman Dec 2005 A1
20050278307 Battagin et al. Dec 2005 A1
20050278641 Mansour et al. Dec 2005 A1
20050278647 Leavitt et al. Dec 2005 A1
20050288006 Apfel Dec 2005 A1
20060012672 Schrader et al. Jan 2006 A1
20060020525 Borelli et al. Jan 2006 A1
20060020580 Dettinger et al. Jan 2006 A1
20060020804 Schleifer et al. Jan 2006 A1
20060020947 Hallamaa et al. Jan 2006 A1
20060021023 Stewart et al. Jan 2006 A1
20060022048 Johnson Feb 2006 A1
20060026580 Cabillic et al. Feb 2006 A1
20060029062 Rao et al. Feb 2006 A1
20060029063 Rao et al. Feb 2006 A1
20060029064 Rao et al. Feb 2006 A1
20060031114 Zommers Feb 2006 A1
20060031365 Kay et al. Feb 2006 A1
20060031428 Wikman Feb 2006 A1
20060031785 Raciborski Feb 2006 A1
20060037071 Rao et al. Feb 2006 A1
20060046686 Hawkins et al. Mar 2006 A1
20060047844 Deng Mar 2006 A1
20060048061 Forlenza et al. Mar 2006 A1
20060052091 Onyon et al. Mar 2006 A1
20060059495 Spector Mar 2006 A1
20060063544 Zhao et al. Mar 2006 A1
20060069686 Beyda et al. Mar 2006 A1
20060069687 Cui et al. Mar 2006 A1
20060069742 Segre Mar 2006 A1
20060073810 Pyhalammi et al. Apr 2006 A1
20060074951 Beier et al. Apr 2006 A1
20060075028 Zager et al. Apr 2006 A1
20060084410 Sutaria et al. Apr 2006 A1
20060085503 Stoye et al. Apr 2006 A1
20060093135 Fiatal et al. May 2006 A1
20060099969 Staton et al. May 2006 A1
20060112177 Barkley et al. May 2006 A1
20060123042 Xie et al. Jun 2006 A1
20060132495 Anderson Jun 2006 A1
20060141962 Forbes et al. Jun 2006 A1
20060143464 Ananthanarayanan et al. Jun 2006 A1
20060149591 Hanf et al. Jul 2006 A1
20060149843 Rhoads et al. Jul 2006 A1
20060149970 Imazu Jul 2006 A1
20060165226 Ernst et al. Jul 2006 A1
20060168043 Eisenberger et al. Jul 2006 A1
20060168164 Lemson et al. Jul 2006 A1
20060179410 Deeds Aug 2006 A1
20060188864 Shah Aug 2006 A1
20060190428 Jung et al. Aug 2006 A1
20060190984 Heard et al. Aug 2006 A1
20060192014 Hamilton et al. Aug 2006 A1
20060195570 Zellner et al. Aug 2006 A1
20060209842 Creamer et al. Sep 2006 A1
20060212531 Kikkawa et al. Sep 2006 A1
20060224629 Alexander et al. Oct 2006 A1
20060230394 Forth et al. Oct 2006 A1
20060240804 Backholm et al. Oct 2006 A1
20060240805 Backholm et al. Oct 2006 A1
20060242210 Ring et al. Oct 2006 A1
20060242320 Nettle et al. Oct 2006 A1
20060242607 Hudson Oct 2006 A1
20060252435 Henderson et al. Nov 2006 A1
20060253456 Pacholec et al. Nov 2006 A1
20060259923 Chiu Nov 2006 A1
20060265595 Scottodiluzio Nov 2006 A1
20060271884 Hurst Nov 2006 A1
20060277265 Backholm et al. Dec 2006 A1
20060277271 Morse et al. Dec 2006 A1
20060294071 Weare et al. Dec 2006 A1
20060294223 Glasgow et al. Dec 2006 A1
20070005738 Alexion-Tiernan et al. Jan 2007 A1
20070011367 Scott et al. Jan 2007 A1
20070019610 Backholm et al. Jan 2007 A1
20070022118 Layne Jan 2007 A1
20070027775 Hwang Feb 2007 A1
20070027832 Fiatal et al. Feb 2007 A1
20070027886 Gent et al. Feb 2007 A1
20070027917 Ariel et al. Feb 2007 A1
20070027920 Alvarado et al. Feb 2007 A1
20070027921 Alvarado et al. Feb 2007 A1
20070027930 Alvarado et al. Feb 2007 A1
20070033531 Marsh Feb 2007 A1
20070038567 Allaire et al. Feb 2007 A1
20070038931 Allaire et al. Feb 2007 A1
20070044041 Beynon et al. Feb 2007 A1
20070049258 Thibeault Mar 2007 A1
20070060196 Sharma Mar 2007 A1
20070061393 Moore Mar 2007 A1
20070067381 Grant et al. Mar 2007 A1
20070067424 Raciborski et al. Mar 2007 A1
20070078857 Punaganti et al. Apr 2007 A1
20070078964 East et al. Apr 2007 A1
20070088852 Levkovitz Apr 2007 A1
20070105627 Campbell May 2007 A1
20070116223 Burke et al. May 2007 A1
20070118620 Cartmell et al. May 2007 A1
20070130108 Simpson et al. Jun 2007 A1
20070130217 Linyard et al. Jun 2007 A1
20070156824 Thompson Jul 2007 A1
20070156842 Vermeulen et al. Jul 2007 A1
20070162514 Civetta et al. Jul 2007 A1
20070167178 Al-Harbi Jul 2007 A1
20070174433 Mendez et al. Jul 2007 A1
20070175998 Lev Aug 2007 A1
20070198698 Boyd et al. Aug 2007 A1
20070220080 Humphrey Sep 2007 A1
20070245010 Arn et al. Oct 2007 A1
20070249365 Jendbro Oct 2007 A1
20070250591 Milic-Frayling et al. Oct 2007 A1
20070264993 Hughes Nov 2007 A1
20070267492 Maclaine Pont Nov 2007 A1
20070276925 La Joie et al. Nov 2007 A1
20070276926 LaJoie et al. Nov 2007 A1
20070288469 Shenfield Dec 2007 A1
20070290787 Fiatal et al. Dec 2007 A1
20070293207 Guedalia et al. Dec 2007 A1
20070293238 Fiatal et al. Dec 2007 A1
20070294295 Finkelstein et al. Dec 2007 A1
20070294763 Udezue et al. Dec 2007 A1
20080001717 Fiatal Jan 2008 A1
20080008095 Gilfix Jan 2008 A1
20080009344 Graham et al. Jan 2008 A1
20080032718 Suresh Feb 2008 A1
20080037787 Boynton et al. Feb 2008 A1
20080059308 Gerken Mar 2008 A1
20080059398 Tsutsui Mar 2008 A1
20080061142 Howcroft et al. Mar 2008 A1
20080077506 Rampell et al. Mar 2008 A1
20080077571 Harris et al. Mar 2008 A1
20080085724 Cormier et al. Apr 2008 A1
20080086379 Dion et al. Apr 2008 A1
20080103877 Gerken May 2008 A1
20080114881 Lee et al. May 2008 A1
20080125225 Lazaridis May 2008 A1
20080130663 Fridman et al. Jun 2008 A1
20080133326 Goncalves et al. Jun 2008 A1
20080133641 Gent et al. Jun 2008 A1
20080133708 Alvarado et al. Jun 2008 A1
20080134292 Ariel et al. Jun 2008 A1
20080140665 Ariel et al. Jun 2008 A1
20080151817 Fitchett et al. Jun 2008 A1
20080154870 Evermann et al. Jun 2008 A1
20080155613 Benya et al. Jun 2008 A1
20080168145 Wilson Jul 2008 A1
20080192820 Brooks et al. Aug 2008 A1
20080198995 McGary et al. Aug 2008 A1
20080201362 Multer et al. Aug 2008 A1
20080201751 Ahmed et al. Aug 2008 A1
20080207182 Maharajh et al. Aug 2008 A1
20080209491 Hasek Aug 2008 A1
20080214148 Ramer et al. Sep 2008 A1
20080216094 Anderson et al. Sep 2008 A1
20080233983 Park et al. Sep 2008 A1
20080270379 Ramakrishna Oct 2008 A1
20080273498 Jalil et al. Nov 2008 A1
20080298386 Fiatal Dec 2008 A1
20080299956 Bailey et al. Dec 2008 A1
20080301300 Toub Dec 2008 A1
20080313282 Warila et al. Dec 2008 A1
20090012841 Saft et al. Jan 2009 A1
20090016526 Fiatal et al. Jan 2009 A1
20090019485 Ellis et al. Jan 2009 A1
20090019532 Jacobsen et al. Jan 2009 A1
20090031006 Johnson Jan 2009 A1
20090054034 Backholm et al. Feb 2009 A1
20090055353 Meema Feb 2009 A1
20090063647 Backholm et al. Mar 2009 A1
20090075683 Backholm et al. Mar 2009 A1
20090077263 Koganti et al. Mar 2009 A1
20090110179 Elsey et al. Apr 2009 A1
20090119266 Fitzpatrick et al. May 2009 A1
20090125523 Fitzpatrick et al. May 2009 A1
20090144632 Mendez Jun 2009 A1
20090147008 Do et al. Jun 2009 A1
20090149203 Backholm et al. Jun 2009 A1
20090156178 Elsey et al. Jun 2009 A1
20090157792 Fiatal Jun 2009 A1
20090164433 R. et al. Jun 2009 A1
20090164560 Fiatal Jun 2009 A1
20090172565 Jackson et al. Jul 2009 A1
20090181641 Fiatal Jul 2009 A1
20090182500 Dicke Jul 2009 A1
20090187939 Lajoie Jul 2009 A1
20090191903 Fiatal Jul 2009 A1
20090193130 Fiatal Jul 2009 A1
20090193338 Fiatal Jul 2009 A1
20090221326 Roussel et al. Sep 2009 A1
20090241180 Fiatal Sep 2009 A1
20090248670 Fiatal Oct 2009 A1
20090248696 Rowles et al. Oct 2009 A1
20090248794 Helms et al. Oct 2009 A1
20090264138 Kang et al. Oct 2009 A1
20090282125 Jeide et al. Nov 2009 A1
20090287750 Banavar et al. Nov 2009 A1
20090299817 Fok et al. Dec 2009 A1
20090307133 Holloway et al. Dec 2009 A1
20090318171 Backholm et al. Dec 2009 A1
20090323678 Wang Dec 2009 A1
20090325565 Backholm Dec 2009 A1
20100057924 Rauber et al. Mar 2010 A1
20100077083 Tran et al. Mar 2010 A1
20100087167 Tsurutome et al. Apr 2010 A1
20100131617 Osborne et al. May 2010 A1
20100146107 Fiatal Jun 2010 A1
20100174735 Fiatal Jul 2010 A1
20100279662 Kuusinen et al. Nov 2010 A1
20100319054 Mehta et al. Dec 2010 A1
20110040718 Tendjoukian et al. Feb 2011 A1
20110065424 Estevez et al. Mar 2011 A1
20110138402 Fleming Jun 2011 A1
20110165889 Fiatal et al. Jul 2011 A1
20110179138 Van Geest et al. Jul 2011 A1
20110179377 Fleming Jul 2011 A1
20110190014 Fiatal Aug 2011 A1
20110191474 Fiatal Aug 2011 A1
20110201304 Sutaria et al. Aug 2011 A1
20110207436 van Gent et al. Aug 2011 A1
20110213800 Saros et al. Sep 2011 A1
20110213898 Fiatal et al. Sep 2011 A1
20110238772 Fiatal Sep 2011 A1
20110246950 Luna et al. Oct 2011 A1
20110252088 Fiatal Oct 2011 A1
20110264622 Vargas et al. Oct 2011 A1
20110264731 Knowles et al. Oct 2011 A1
20110294463 Fiatal Dec 2011 A1
20110294464 Fiatal Dec 2011 A1
20110302154 Snyder Dec 2011 A1
20120023190 Backholm et al. Jan 2012 A1
20120023226 Petersen et al. Jan 2012 A1
20120023236 Backholm et al. Jan 2012 A1
Foreign Referenced Citations (46)
Number Date Country
0772327 May 1997 EP
1278390 Jan 2003 EP
1422899 May 2004 EP
1466261 Oct 2004 EP
1466435 Oct 2004 EP
1482702 Dec 2004 EP
1815634 Aug 2007 EP
1815652 Aug 2007 EP
1817883 Aug 2007 EP
117152 Jun 2006 FI
118288 Sep 2007 FI
119581 Dec 2008 FI
4154233 May 1992 JP
10-336372 Dec 1998 JP
2001-218185 Aug 2001 JP
2001-350718 Dec 2001 JP
2001-356973 Dec 2001 JP
2005-515664 May 2005 JP
4386732 May 2005 JP
2009-207177 Sep 2009 JP
2001-0018568 Mar 2001 KR
2007-0071858 Jul 2007 KR
2009-0077515 Jul 2009 KR
WO-9741661 Nov 1997 WO
WO-9824257 Jun 1998 WO
WO-9858322 Dec 1998 WO
WO-0130130 May 2001 WO
WO-03007570 Jan 2003 WO
WO-03058483 Jul 2003 WO
WO-03058879 Jul 2003 WO
WO-03065701 Aug 2003 WO
WO-03098890 Nov 2003 WO
WO-2004017591 Feb 2004 WO
WO-2004045171 May 2004 WO
WO-2005015925 Feb 2005 WO
WO-2005020108 Mar 2005 WO
WO-2006045005 Apr 2006 WO
WO-2006045102 Apr 2006 WO
WO-2006053952 May 2006 WO
WO-2006053954 May 2006 WO
WO-2006058967 Jun 2006 WO
WO-2007015725 Feb 2007 WO
WO-2007015726 Feb 2007 WO
WO-2007149526 Dec 2007 WO
WO-2007149540 Dec 2007 WO
WO-2011126889 Oct 2011 WO
Related Publications (1)
Number Date Country
20110138402 A1 Jun 2011 US
Provisional Applications (1)
Number Date Country
60661757 Mar 2005 US
Continuations (1)
Number Date Country
Parent 11227323 Sep 2005 US
Child 12830417 US