Identity-based distributed computing for device resources

Information

  • Patent Grant
  • 9886309
  • Patent Number
    9,886,309
  • Date Filed
    Friday, June 28, 2002
    22 years ago
  • Date Issued
    Tuesday, February 6, 2018
    6 years ago
Abstract
A system, method and related data structures for discovering and describing computing resources available at various computing devices, and for exposing those resources as services that are addressable by software applications. The data describing the resources is arranged according to an identity-based schema. The computing resources may include, for example, storage capacity, bandwidth, processing power, input methods and mechanism, and rendering methods. The method and system are identity-based, whereby a user (with an identity) has access to the distributed resources commensurate with that identity.
Description
FIELD OF THE INVENTION

The invention relates generally to computer systems, and more particularly to computer resources.


BACKGROUND OF THE INVENTION

In early personal computing systems, application program had to be programmed with knowledge of various computing devices in order for the application to use such devices. For example, in order to print to a particular printer, a word processing program had to know how to print to the printer, and generally supplied a driver for each supported printer. Alternatively, a printer would supply drivers with it for the most popular programs. The user had to configure each program to inform that program as to which printer was connected to the personal computer.


Contemporary operating systems such as Microsoft Windows® provided developers with a way to interface applications with such devices regardless of the specific device driver needs and requirements. For example, with the Microsoft Windows® operating system a user or the device tells the operating system which printer (or printers) is connected, after which any application is able to communicate with the printer driver via the operating system. As a result, to accomplish printing, application programs generally only need to deal with a set of standardized printing functions provided by the operating system. The enormous benefits of such an abstraction cannot be understated, e.g., this abstraction enables any one of thousands of software programs to interact with any one of thousands of printers and/or other devices, without the program having to know (or otherwise supply) the details about the printer in advance.


Microsoft Corporation's .NET technology provides a somewhat similar type of abstraction regarding a user's or company's data. In general, with .NET technology, any .NET-capable program on any device can interact with a user's data via centralized schema-based services. Because of the schematization, the programs do not need specific knowledge about the details of that data, e.g., which used to be stored in proprietary file formats, but rather only needs to be able to deal with (read and write) data formatted according to one or more of the schemas.


With .NET technology, a user's (or other entity's) identity controls access to the centrally-maintained data, e.g., a user may use a .NET Inbox service keep his or her electronic mail data centrally stored (e.g., on the Internet or an intranet), and then access that data via the .NET inbox service, at any time, from any device capable of connecting to the Internet or an intranet and having a program capable of interacting with the .NET Inbox service. The user's identity is used to securely match the user with the appropriate data. Users can also controllably allow access to data by other users, e.g., a user can selectively make certain business contact information available to business associates, make personal contact information available to friends, and so on, based on the others' identities.


While .NET thus provides tremendous data-based benefits to users, companies and other entities, the centralized service and centralized data are not particularly concerned with how a user uses various devices and those devices' resources. For example, devices such as a personal computer and pocket personal computer have, for quite some time, been able to directly synchronize with one another. To an extent, .NET technology is another way to keep such data synchronized, although indirectly, without needing specialized and proprietary synchronization programs.


However, even with .NET, a user cannot easily use one device to access the resources of another device, such as to use the computing power, storage, bandwidth, input and output mechanisms, programs and/or other resources of one device on behalf of another device, e.g., to perform a complex or better-suited task on the more powerful device. What is needed is a common, consistent way to remotely discover and expose computing resources of various computing devices to one another for cross-resource usage.


SUMMARY OF THE INVENTION

Briefly, the present invention provides a system and method for discovering and describing computing resources available at various computing devices associated with an identity, and for exposing those resources as services that are addressable by software programs, such that programs on the devices can leverage another device's resources. The device services are identity-based, in that a device owner's devices discover each other and/or other devices accessible by a user based on the owner's or other user's identity. Further, based on identity, a device owner (or administrator) can control what other users, and/or other devices can leverage the resources of each owned device, as well as to what extent.


Computing resources may include, for example, the storage capacity of the devices, bandwidth, processing power (e.g., the CPU and RAM capabilities), input mechanisms and methods, rendering and other output mechanisms and methods (e.g., screens, printers and audio), and programs. A device is thus abstracted into its resources, which are then programmatically addressable from other devices in a composible fashion (e.g., the remote resources may be defined in such a way that they are, in turn, comprised of smaller resources contained within the larger definition of the resource). In other words, for devices to participate in an intelligent distributed computing model, various aspects of each participating device are abstracted and made programmatically addressable from other devices. A unified identity-based mechanism discovers the list of remote resources on the device. A set of one or more schemas consistently describes the remote resources on the device, and a unified security model allows the owner of the device to control who has access to which resources, and to what extent.


With the present invention, desirable computing solutions for a great number of example scenarios are enabled, including a set of real-time scenarios in which one user device interacts with one or more remote computing devices in real-time, and a set of scheduled or predicted scenarios that operate transparently and automatically on a user's behalf.


Other advantages will become apparent from the following detailed description when taken in conjunction with the drawings, in which:





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1A is a block diagram generally representing a computer system into which the present invention may be incorporated;



FIG. 1B is a block diagram generally representing another computer system into which the present invention may be incorporated;



FIG. 2 is a block diagram representing various components in a distributed computing environment in accordance with an aspect of the present invention;



FIG. 3 is a block diagram generally representing an architecture for discovering and exchanging resource information in accordance with an aspect of the present invention;



FIGS. 4 and 5 are block diagrams representing examples of how the present invention can improve a user computing experience by distributing computing operations to resources, in accordance with an aspect of the present invention;



FIG. 6 is a flow diagram representing exemplary logic and related operations performed to facilitate the sharing of resources in a distributed computing environment in accordance with an aspect of the present invention; and



FIG. 7 is a block diagram generally representing an example implementation including resources distributed in accordance with an aspect of the present invention.





DETAILED DESCRIPTION

Exemplary Operating Environments



FIG. 1A illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.


The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.


The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.


With reference to FIG. 1A, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Components of the computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. Note that any and all of the elements shown in computer 110 may be connected to each other by standard high-speed computer networks, including those distributed across a wide geographic area. For example, the system memory 130 may be located in a physically different location than processing unit 120, but yet defined in a composible fashion as logical computer 110.


The computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 110 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.


The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation, FIG. 1A illustrates operating system 134, application programs 135, other program modules 136 and program data 137.


The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 1A illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.


The drives and their associated computer storage media, discussed above and illustrated in FIG. 1A, provide storage of computer-readable instructions, data structures, program modules and other data for the computer 110. In FIG. 1A, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146 and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers herein to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 20 through input devices such as a tablet, or electronic digitizer, 164, a microphone 163, a keyboard 162 and pointing device 161, commonly referred to as mouse, trackball or touch pad. Other input devices not shown in FIG. 1A may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. The monitor 191 may also be integrated with a touch-screen panel or the like. Note that the monitor and/or touch screen panel can be physically coupled to a housing in which the computing device 110 is incorporated, such as in a tablet-type personal computer. In addition, computers such as the computing device 110 may also include other peripheral output devices such as speakers 195 and printer 196, which may be connected through an output peripheral interface 194 or the like.


The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in FIG. 1A. The logical connections depicted in FIG. 1A include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. For example, in the present invention, the computer system 110 may comprise source machine from which data is being migrated, and the remote computer 180 may comprise the destination machine. Note however that source and destination machines need not be connected by a network or any other means, but instead, data may be migrated via any media capable of being written by the source platform and read by the destination platform or platforms.


When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160 or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 1A illustrates remote application programs 185 as residing on memory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.



FIG. 1B illustrates an example of another suitable operating environment (computer device 188) in which at least part of the present invention may be implemented. As with FIG. 1A, the operating environment of FIG. 1B is only one other example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. The other computer device 188 in FIG. 1B typically includes at least some form of computer readable media. Computer-readable media can be any available media (as generally defined above) that can be accessed by the computing device 188.



FIG. 1B shows functional components of a computing device 188 such as a handheld (pocket-sized or tablet) personal digital assistant, including a processor 189, a memory 190, a display 192, and a keyboard 193 (which may be a physical or virtual keyboard). The memory 190 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, PCMCIA cards, and so forth). An operating system 194 is resident in the memory 190 and executes on the processor 189, such as the Windows® CE operating system from Microsoft® Corporation, or another operating system.


One or more application programs 195 are loaded into memory 190 and run on the operating system 194. Examples of applications include email programs, scheduling programs, PIM (personal information management) programs, word processing programs, spreadsheet programs, Internet browser programs, and so forth. The handheld personal computer 188 may also include a notification manager 196 loaded in the memory 190, which executes on the processor 189. The notification manager 196 handles notification requests, e.g., from the application programs 195.


The handheld personal computer 188 has a power supply 197, which is implemented as one or more batteries. The power supply 197 may further include an external power source that overrides or recharges the built-in batteries, such as an AC adapter or a powered docking cradle.


The exemplary handheld personal computer 188 represented in FIG. 1B is shown with three types of external notification mechanisms: one or more light emitting diodes (LEDs) 198 and an audio generator 199. These devices may be directly coupled to the power supply 197 so that when activated, they remain on for a duration dictated by a notification mechanism even though the handheld personal computer processor 189 and other components might shut down to conserve battery power. The LED 198 preferably remains on indefinitely until the user takes action. Note that contemporary versions of the audio generator 199 use too much power for today's handheld personal computer batteries, and so it is configured to turn off when the rest of the system does or at some finite duration after activation.


Identity-Based Distributed Computing for Device Resourses


The present invention is generally directed to a system and method that facilitate the distribution of resources of devices to other devices. The present invention is ordinarily not involved with what the devices do with each other's resources, what is communicated at that time, or how the communication between devices takes place. Rather, the present invention can be generally considered more as a structured way for devices to find out about each other's resources, capabilities and other details, and then allow the devices to share resources on their own. Although not necessary to the present invention, as part of facilitating the resource distribution, security is provided for practical purposes, at least to ensure that valid credentials are required to use another device's resources. Thus, the present invention is preferably identity-based, in that distributed resources have relationships with one another according to identity data (e.g., credentials) provided to the devices.


In general, the present invention is directed to distributing computing among a user's devices, wherein a user (or owner/administrator) is anyone authorized to control and/or use the devices. However, because in general devices are increasingly becoming disaggregated, the methods and systems described herein may be more properly described as distributed computing of resources. For example, a single distributed device may be made up of many resources, but may share as little as one its resources (e.g., only its non-volatile storage) to participate as a resource provide. Notwithstanding, as used herein, the terms “device” and “resource” are generally interchangeable except where otherwise apparent, e.g., using another device or using a resource of the other device to accomplish some computing task are generally considered the same thing. Also, as used herein, bandwidth is a device resource, even though bandwidth may not ordinarily be considered as being associated with any particular device.


As generally represented in FIG. 2, a distributed computing environment 200 constructed in accordance with various aspects of the present invention includes a first device 202 (Device A, such as the computer system 110 of FIG. 1A) and a second device 212 (Device B, such as the computer system 188 of FIG. 1B), along with possibly other devices (not shown). Each device that participates in the distributed computing environment 200 includes a distributed computing manager, 204 and 214. In general, and as described below, the distributed computing managers 204 and 214 may comprise some amount of code that communicate with one another over some medium, e.g., wireless FM, line-of-sight such as infrared, satellite, a direct connection, the Internet, or an intranet. Indeed, more than one such medium may be available, and the distributed computing managers 204 and 214 may choose which one or ones are best for a given circumstance.


An initial purpose of the distributed computing managers 204 and 214 are to locate each other. Such location may be automatic, such as by having each device occasionally broadcast its availability to others and/or by polling for the availability of other devices, or alternatively may operate in response to some specific request from a program (or user) to connect to another device. As represented in FIG. 2, the distributed computing managers 204 and 214 each include a security mechanism 206 and 216, respectively, that exchange credentials 207, 217 or the like (e.g., obtained from an authentication service 220) to ensure that the user who is currently operating the device which is contacting it (and/or the device itself), is valid in the distributed computing environment, and similarly, if necessary, that the device which is being contacted is valid. Note that a program being used may also factor into the security/access control, e.g., a first program running on one device may have authority to use another device's resource or resources, but not another program, independent of or in addition to the user identity and/or the device identity. Further note that the security mechanism may operate per identity and per resource, e.g., one entity may be authorized to use a device's display, but not its storage, while another entity may be able to use any of that same device's available resources, including its storage. This is similar to the .NET security model in which services provide methods that control access to a users' data based on the requesting user's identity, defined role and scope for that role. In this way, data can be accessed by its owner, and shared to an extent determined by the owner. In the present invention, instead of data it is a device resource being accessed, whereby a user's identification, defined role and scope for that role determine the extent to which a resource may be accessed.


Indeed, the security mechanisms of the present invention are based on those essentially those employed for security/access control in .NET services, as generally described in U.S. patent applications, Ser. No. 10/003,754 entitled “IDENTITY-CENTRIC DATA ACCESS” and Ser. No. 10/003,767, entitled “AUTHORIZING A REQUESTING ENTITY TO OPERATE UPON DATA STRUCTURES” filed on Oct. 22, 2001, assigned to the assignee of the present application, and herein incorporated by reference. To this end, at least a thin subset of the .NET service runs on each device which expects to advertise and share computing resources in the environment 200. In addition, a localized internal consistent security model may be executed on these devices such that local security is provided even when two local peer-to-peer devices may be disconnected from the centralized (e.g., Passport) authentication service 220 (FIG. 2).


The present invention is not limited to any particular transmission medium, but provides that the distributed resource services may be directly addressable to the target device, or may be queried via the Internet or an intranet, such as via the centralized set of .NET services on the web. When connected via the Internet or intranet, a program may query the last known computing resources available on any device associated with the user's identity, even when the device is offline or otherwise inaccessible. Bandwidth is also a resource, and may impact how a device's resources are shared, e.g., it may be more efficient to leverage a personal computer's resources when the personal computer has a high-speed connection to the Internet, but not if the personal computer connects only at low speed, such as if the other device has a high-speed connection. In fact, the personal computer may want to leverage the high-speed connection of the other device, in which event that other device may then leverage a resource of the personal computer, e.g., the devices exchange resources to provide a more-optimal user experience.


In accordance with one aspect of the present invention, the distributed computing managers 204 and 214 also each include a respective discovery mechanism, 208 and 218, that allows the devices to discover another participating device's shared resources/capabilities, that is, when that other device is configured to share its resources. The respective resource data 209 and 219 is formatted (e.g., in XML) and exchanged in accordance with a defined schema, as described below. As represented in FIG. 2 by the exchange of the schematized data 209 and 219, both devices 202 and 204 are configured to share their resources (RA1-RAm and RB1-RBn) with other devices in the distributed computing environment. However as can be appreciated, in a given environment, a particular device (e.g., a mobile telephone) may be only a consumer of resources rather a provider of any resource, or conversely may be only a provider, and not a consumer.


A device that is sharing its resources need not directly communicate the resource data with the other device, but instead, for example, can advertise its resources somewhere for other devices to discover. For example, a .NET service (.NET Devices) is provided that centrally stores device resource capabilities such that data may be appropriately formatted before sending it to a device, e.g., so as to not send high-resolution graphics to a device incapable of displaying them. A similar .NET Resources service, or an extended .NET Devices service, may be provided to advertise this information to other devices.


The following tables set forth some example schemas that may be used (e.g., with XML-formatted data) to exchange resource (storage and processing power) information regarding a user's devices, which in this example include work and home personal computers, and a cellular telephone:














<myStorage>









<device name=“Work PC” uuid=“7a733d84-b394-4ba1-56b5c0d”>









<driveSize/>



<freeSpace/>



<transferSpeed/>



<seekLatency/>









</device>



<device name“Home PC” uuid=“6d733d84-b3f4-4ba1-56b5c0f”>









<driveSize/>



<freeSpace/>



<transferSpeed/>



<seekLatency/>









</device>



<device name=“Cell Phone” uuid=“5f733d84-b3f4-4ba1-56b5c0f”>









<driveSize/>



<freeSpace/>



<transferSpeed/>



<seekLatency/>









</device>







</myStorage>


<myProcessingPower>









<device name“Work PC” uuid=“7a733d84-b394-4ba1-56b5c0d”>









<cpuSpeed/>



<cpuUsage/>



<memorySize/>



<memoryUsage/>









</device>



<device name=“Home PC” uuid=“6d733d84-b3f4-4ba1-56b5c0f”>









<cpuSpeed/>



<cpuUsage/>



<memorySize/>



<memoryUsage/>









</device>



<device name=“Cell Phone” uuid=“5f733d84-b3f4-4ba1-56b5c0f”>









<cpuSpeed/>



<cpuUsage/>



<memorySize/>



<memoryUsage/>









</device>







</myProcessingPower>









As is understood, the schema is preferably resource based, i.e., multiple devices may be listed for each resource type, to match the general concept of an identity having distributed resources available for use, independent of the actual device on which the resource exists. Notwithstanding, the present invention is not limited to any particular schema and/or formats, e.g., the schemas may be device-based, such that each device may instead provide its list of available resources to other devices such that the same information is known.


As generally represented in FIG. 3, an architecture 300 is provided in order for devices to participate in an intelligent distributed computing model, in which various aspects of the participating devices are abstracted and made programmatically addressable from a different device. A universal plug-and-play (UPnP 2.0) infrastructure or the like may be used as the basic, low-level mechanism 302 for discovery of these resources. Alternatively, the list of resources for various computing devices may be cached in some well-known location, such as an Active Directory store, to enable querying of remote resources even if the device is only accessible through some intermediary such as a firewall or wireless hub. Atop the discovery mechanism are the schemas 304, e.g., one schema associated with each specific type of the computing resource, with each of those schemas exposed, for example, as in the .NET architecture.


Note that while UPnP provides a suitable discovery mechanism 304, it is only part of the process of actually using the remote computing resources. Thus, UPnP and .NET technologies are used to facilitate resource sharing, but are not used to actually employ the resources available on a device. Rather, once the resources are known, appropriately focused protocols for that specific resource domain are used. By way of example, UPnP, with the addition of the .NET identityHeader, endpointHeader, and requestHeader SOAP semantics, is well-suited to obtain the video screen characteristics of the remote device, however a protocol such as RDP will be used to transfer video data after the initial discovery and handshaking occurs between the devices. Note that this is similar to the way .NET approaches data services today, e.g., .NET provides a mechanism to connect to an electronic endpoint representing a proprietary (e.g., Messenger) protocol, but once that endpoint is connected, .NET allows the client to use an existing real-time protocol. Other protocols appropriate for other types of resources are used, e.g., CIFS+ for storage, which scales well to both corporate and home storage scenarios and enables the user's file system to continuously expand to other storage devices, without forcing the user to deal with drive letters, namespaces, and so forth. In summary, the present invention provides an identity-based approach to discovering these additional resources that are available for use, but does not thereafter directly deal with their use.



FIG. 6 is an example flowchart that represents some general aspects of the present invention, beginning with step 600 which represents receiving a request to use a shared resource. The request may be general, e.g., requesting the list of resources that a user has available on devices configured to participate, or may be a request for a specific resource, e.g., in response to an advertisement. For purposes of this example, the request is treated as a request for one specific resource.


Step 602 represents the evaluation of the credentials, such as provided by the Microsoft .NET Passport authentication service. The request may include the credentials, or the credentials may be separately exchanged, e.g., before, as part of, or after step 600. If not valid at step 602, step 602 branches to step 604 which represents rejecting the request. Note that depending on a given environment, the request without proper credentials may be ignored rather than specifically rejected.


If valid, step 606 is executed, and represents determining the amount of the requested resource that is available. For example, a resource such as storage may be limited because it has only limited free space, and further, a device may be configured to make only part of its storage space available for sharing, reserving the rest for itself. A resource such as processor cycles may be made available only to the extent the processor is not being otherwise used, and even then may be further limited so that another device can only take up to a maximum amount of the unused cycles. Any resource may have a time-out value associated with it, which may be further contingent upon its use, e.g., storage can be shared for no more than one hour per request, and the request will be terminated if no file system requests are detected at least every two minutes. In this manner, a device may be configured to share its resources to an extent controlled by its owner/administrator.


Note that the resource access may be dynamic, e.g., unused processor cycles may be shared, however CPU usage is a number that fluctuates, and the requesting guest device may be prioritized along with other devices and/or processes on the device that is sharing the CPU. For example, guest users may only consume a controllable percentage of resources when the owner of the device is not otherwise using them, such as bandwidth or processing power. Both CPU and bandwidth are examples of resources which are scheduled according to time constraints (e.g., cycles or bits per second) rather than non-time-based resources such as disk or memory usage. As a result, the scheduling mechanisms for time-based resources in general will be fundamentally different than for non-time-based resources. Note that kiosk locations would enable many scenarios that would be useful to such guests. A resource such as a display monitor may be either entirely available for sharing or not at all, depending on whether or not it is presently being used. Thus, although not represented in FIG. 6, step 606 may also reject (or ignore, if appropriate) a request when there is no amount of a requested resource available for sharing. Step 608 represents returning a response to the requesting entity, preferably the schema-based response that provides the resource capability data to the requesting entity.


Step 610 represents allowing the requested resource to be shared, and includes, for example, the exchange of data between the requesting device and the sharing device so that the sharing performs some corresponding task for the requesting device. Step 612 tests whether the resource was exhausted, e.g., timed out or is no longer available. Note that this is shown as a loop in FIG. 6 for purposes of simplicity, however it is readily understood that the actions may be event driven. Further, a step (such as step 606) may be included in the loop/used to fire the event, e.g., the resource usage is dynamically monitored to determine when it is exhausted for the particular request. Note that a resource may be directly exhausted when the requesting entity informs the device that the resource is no longer needed.


Step 614 represents notifying the requesting device that the resource is no longer available for its use. Step 616 represents disabling the resource usage, so that, for example, once exhausted the requesting device will need to make a new request if it wants to share resources.



FIGS. 4 and 5 provide examples of some of the many possible uses of the present invention. As will be understood from the examples of FIGS. 4 and 5, integrating computational proxy support into a network edge device or appliance may result in a better user experience for users of an internal network.


In a first example represented in FIG. 4, a small mobile device 400 (such as a mobile telephone) wants to print to a printer 402, however the small device 400 does not have an appropriate printer driver. This may be because the mobile device 400 does not have sufficient memory to install and maintain a printer driver needed for that printer 402, and/or does not have an easy way for the needed printer driver to be installed, and/or for other reasons. Note that this is a real scenario, and one proposed solution is to emit XHTML-PRINT as a simplified PDL (Page Description Language) from the mobile device 400 to the printer 402, e.g., over some network connection (shown via the dashed line in FIG. 4). Although XHTML-PRINT is adequate to an extent, this solution has a number of drawbacks, e.g., XHTML-PRINT is not WYSIWYG, cannot control line breaks, and generally provides a poor user experience.


However, if via the present invention, the mobile device 400 first dynamically discovers a personal computer 404 equipped with a proper printer driver 406, (and which the mobile device user is authorized to use), the mobile device 400 instead provides printing data via the personal computer 404 to the printer driver 406, which in turn will create a WYSIWYG output using PCL, Postscript or rasterization. As mentioned above, the present invention provides the discovery mechanism, and thereafter the mobile device 400 may communicate in any way with the personal computer 404, such as by a lightweight PDL that has much higher-fidelity (relative to XHTML-PRINT). The result is high-quality output rendered very quickly, by leveraging the faster processor and proper printer driver 406 in the personal computer 404.



FIG. 5 demonstrates a second example, generally directed to providing an improved user experience when operating a PDA (personal digital assistant) 500 that is to be executing managed code remotely on a server 502 (e.g., an ASP.NET server). One way to accomplish this is to have the PDA connect to the server to run the managed code, (e.g., by leveraging Mobile Controls support in ASP.NET), with the results transmitted as HTML, as indicated by the dashed line in FIG. 5. The server 502 dynamically scales the HTML content to the appropriate screen size of the device 500, without the ISV creating special-purpose code for each device 500. However, this requires many round trips with the server 500, with the screen flashing for updates, and generally provides a degraded user experience.


An improved solution provided by the present invention is accomplished by having the PDA dynamically discover that a personal computer 504 associated with the user's identity can be a proxy for a number of computational resources, as generally represented in FIG. 5. In such an event, the PDA issues an HTML request for a remote page via the proxy personal computer 504. The personal computer 504 intercepts the request and starts a session with the remote server 502 to offload the UI rendering managed code, e.g., using WSDL as the protocol to the server 502. Typically, the bandwidth from the proxy personal computer 504 to the server 502 will be less than the bandwidth from the PDA device 500 to the proxy personal computer 504, whereby the smaller amount of data transferred over the slower link to and from the server 502 results in a more responsive user interface when displayed on the PDA 500, providing an improved user experience. Of course, the two bandwidths can be first evaluated to ensure that the proxy solution is the more-optimal one.


Further, note that if the PDA 500 was equipped with locally-running controls that the server was able to leverage, an even better experience may be provided. For example, ASP.NET automatically leverages any local controls (e.g., such as a date picker control) running locally on a PDA running a Windows®-based operating system. This results in even less round trips to the server 502 and/or proxy 504, with less resultant screen updating/flashing.


As can be appreciated, there are numerous other examples that are enabled by having computing resources revolve around an identity, instead of around the particular devices those resources ship with. The resource schemas and service fabric are not limited to simply describing the resources, but also include elements to assist those resources working together. This can be appreciated from the following two types of scenarios, namely a set of real-time scenarios in which the user is interacting with a remote computing device in real-time, and a set of scheduled or predicted scenarios. An example of a predicted scenario may include a storage load balancing mechanism that occasionally runs on a home network, to make sure that one computing device's free storage space is not going to run out while another drive has plenty of room.


Thus, a rich schema may provide data that goes beyond describing the resources themselves, such as methods to schedule, at a particular time or at regular intervals, prioritization machinery, and data indicating how to deal with possible contention between real-time and predicted tasks, or multiple such tasks. The schema may provide for the concept of cost, e.g., if two connections are available to the Internet, it is valuable to recognize that the user may be paying one price for unlimited access but another price for an amount of data transferred over a different mechanism, and select the better option.


Replication/sharing by a logging system may be used to understand how users are interacting with their devices, and to achieve a consolidated view of how a user operates, rather than have only disparate views separated by device. This data is appropriately known to many devices, and will provide an automatic way for such data to be consolidated. Prediction optimizations may be saved and exchanged based on monitored usage, e.g., if the system knows that a user manually downloads particular information to a hand-held computer every Friday before leaving work, the system can start the download during device idle time so the “synchronization” appears instantaneous. End user options/settings/preferences is also valuable information for the shared environment, e.g., what is a desirable or even necessary feature for some users is undesirable or even annoying to others. By maintaining this data, the end user has the power to be in control of their experience. Also, in a typical environment, there will be at least one rich client that uses the protocol/schema to perform system management, where “system” refers to the overall set of resources associated with an identity. Algorithms and methods can use the schema for predicting such operations.


As is understood, there are many valuable scenarios enabled by through abstracting device resources and aggregating them around an identity. A number of examples are provided, however the list should not be considered exhaustive or in any way limiting, but rather serves to illustrate some of the many benefits and advantages of the present invention. As examples mentioned above, a device with a small computer screen may leverage an unused computer monitor connected to a personal computer for better display, use resources of a proxy to facilitate a better display on its own display (FIG. 5) or print to a printer even without printer driver, by connecting to a printer via a personal computer that does have the correct driver (FIG. 4).


Other examples can be seen in a very low-powered device, such as a mobile telephone, performing complex computations by using the memory and CPU of a personal computer. Stored data can be automatically and transparently moved from a first hard drive to a second when the first hard drive is getting full, including, for example, from personal digital video recorders that record video programming and need to delete old shows to make room for more recent recordings. The present invention instead moves those older shows to another storage, rather than delete them. A portable audio player need not be able to play any type of physical media, but can instead receive and buffer audio streamed to it from a personal computer and play the audio from memory.


Other examples include allowing users to easily access their files from any device regardless of where it is stored; for example, while on the road with only a small personal computer, being able to easily open files stored on a home personal computer or work personal computer, (independent of centralized .NET data storage). A user may see all of the free space in various devices, including in various public sharepoints on a corporate network. A large-screen TV connected to an appropriate device may be used to view photographs saved on a personal computer folder, run a slideshow, watch home movies or movie trailers saved on a personal computer, and so on.



FIG. 7 provides a demonstration of an implementation 700 run using four interconnected computing systems, 702-705. The implementation 700 includes a command shell 710 and application program 712 (or similar function code) on the computing system 704, a keyboard resource 714 on the computing system 702, a storage (e.g., disk) 716 on the computing system 703, and a display 718 on the computing system 705. Thus, in this example the resources are distributed such that there is an input resource the on computer 702, storage resource on the computer 703, and an output resource on the computer 704. The computer 704 acts as a coordinating authority for the implementation 700. Although the resources are on different computer systems, the resources are accessed in accordance with the present invention to essentially form a single functioning system.


The shell resource 710 calls the application 712, and also connects to the other devices' resources through ports 724, 726 and 728, conceptually represented in FIG. 7 as one port per resource, although a separate input and output port may be provided. Ports essentially comprise structured queues that can be written (output) to or read (input) from via a handle to that port. Ports are mobile, data is not lost, and security can be associated with a port such that no one except the intended entity will see the data intended for it.


The shell 710 used in the implementation 700 is based on a programming language referred to as xSpresso, as described in U.S. provisional patent application Ser. No. 60/379,864, filed on May 10, 2002 and herein incorporated by reference in its entirety. In general, xSpresso is directed to a programming language and runtime that brokers control and data flows among asynchronous system components. Among other things, xSpresso expresses the cooperative dimensions of programs or services, including ordering and timing, that can be programmatically verified. The language may programmatically express the passing of an organizational scheme formed from a customizable tag-based language such as XML.


In the example of FIG. 7, the numbered arrows labeled 1-4 and 6-10 represent an example of the various communications between the ports 724, 726 and 728 and the shell 710, to display the text data of a file in the storage 716 to the display 718, e.g., similar to the well-known “type” function. In the example of FIG. 7, a user of the keyboard resource 714 initiates the operation by typing the word “type” on the keyboard 714 (arrow labeled one (1)). The shell 710 receives this via the port 724 and communicates data to the port 728 for display on the screen 718, (arrow labeled two (2)), e.g., to echo what the user has input and/or to prompt for a filename of a file that stores the text that the user wants to have displayed. In FIG. 7, the arrow labeled three (3) represents the user typing in the filename, such as corresponding to an XML file, which may also be echoed (not separately labeled).


With the filename, the shell 710 then writes data (represented by arrow labeled four (4)) to the port 726 that corresponds to the storage (e.g., disk) resource 716, which results in a read request to the storage's file system. In parallel, the shell 710 calls (the wide arrow labeled five (5)) the application program 712 to receive and output the read data. In response, the storage resource 716 begins outputting data via port 726 to the application program 712, which in turn outputs it to the port 728 of the display resource 718, as represented by the arrows labeled six (6) and seven (7). The arrows labeled eight (8) and nine (9) represent the rest of the data being transferred in a similar manner. The arrow labeled ten (10) represents the status (e.g., success) code being returned to the shell 710.


In keeping with the present invention, storage, input and output can be placed on different systems, with no change to the implementation. Legacy interoperability may be provided via common language runtime (CLR) classes that represent common legacy components (e.g., the keyboard, console and storage). System dispersion is provided in a local and transparently distributed implementation, as is explicit handling of concurrency and message-passing.


As can be seen from the foregoing detailed description, there is provided a method and system for distributed computing of device resources based around the concept of identity. The method and system abstracts the resources of a computer from the individual devices in a manner that provides numerous benefits to a user and generally improves the user's computing experience. The method and system are schema-based, and are extensible and highly flexible.


While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.

Claims
  • 1. A method comprising: discovering, at a first computing device, a resource located at a second computing device;communicating a request to the second computing device to employ the resource located at the second computing device;communicating identity information to the second computing device to enable the second computing device to determine whether the first computing device has access to the resource based on the identity information;receiving data from the second computing device when the second computing device approves access to the resource by the first computing device, the data including resource information associated with the resource at the second computing device formatted according to a resource-based schema understood by the first computing device, the resource-based schema being organized by resource and including information about the second computing device that corresponds to respective resources;interpreting the data to access the resource located at the second computing device; andexecuting a process, at the first device, using the resource of the second computing device.
  • 2. The method of claim 1 wherein the first computing device uses the resource until the second computing device disables access to the resource by the first computing device.
  • 3. The method of claim 2 further comprising informing the second computing device that the first computing device no longer needs to use the resource effective to cause the second computing device to disable the access to the resource.
  • 4. The method of claim 1 wherein the identity information corresponds to credentials.
  • 5. The method of claim 4 wherein the credentials are provided by an authentication service.
  • 6. The method of claim 1 wherein the resource of the second computing device comprises a processing resource, a storage resource, a memory resource, or a bandwidth resource.
  • 7. The method of claim 1 wherein executing the process comprises accessing a web page at a remote server using bandwidth of the second computing device.
  • 8. The method of claim 7, wherein the second computing device acts as a proxy to the remote server for the first computing device.
  • 9. The method of claim 7 wherein bandwidth from the second computing device to the remote server is greater than bandwidth from the first computing device to the remote server.
  • 10. A method for sharing resources between computing devices, comprising: receiving a request from a first computing device at a second computing device to employ a resource located at the second computing device, the request including identity information associated with the first computing device, the identity information including a first credential provided by an authentication service;determining, by the second computing device, whether the first computing device is permitted to access the resource based on the identity information, the determining the access comprising validating the first credential;sending, by the second computing device, resource information associated with the resource to the first computing device responsive to determining that the first computing device is permitted to access the resource, the resource information formatted according to a resource-based schema understood by the first computing device, the resource-based schema being organized by resource and including information about the second computing device in relation to respective resources;allowing, by the second computing device, the first computing device to access the resource to execute a process by employing the resource; anddynamically monitoring the resource to determine whether the resource is exhausted for the request.
  • 11. The method of claim 10 further comprising determining that the resource is no longer available to the first computing device when a time limit to access the resource by the first computing device expires.
  • 12. The method of claim 10 wherein the resource located at the second computing device comprises a processing resource, a storage resource, a memory resource, or a bandwidth resource.
  • 13. The method of claim 10 wherein allowing the first computing device to access the resource to execute the process by employing the resource further comprises allowing the first computing device to access a web page at a remote server using bandwidth of the second computing device.
  • 14. The method of claim 13, wherein the second computing device acts as a proxy to the remote server for the first computing device.
  • 15. The method of claim 13 wherein bandwidth from the second computing device to the remote server is greater than bandwidth from the first computing device to the remote server.
US Referenced Citations (521)
Number Name Date Kind
5031089 Liu et al. Jul 1991 A
5218680 Farrell et al. Jun 1993 A
5440744 Jacobson et al. Aug 1995 A
5446880 Balgeman et al. Aug 1995 A
5485409 Gupta Jan 1996 A
5487141 Cain Jan 1996 A
5493692 Theimer Feb 1996 A
5544285 Glaser Aug 1996 A
5544302 Nguyen Aug 1996 A
5557320 Krebs Sep 1996 A
5634053 Noble et al. May 1997 A
5634129 Dickinson May 1997 A
5640504 Johnson Jun 1997 A
5640569 Miller Jun 1997 A
5666534 Gilbert et al. Sep 1997 A
5684950 Dare Nov 1997 A
5687376 Celi et al. Nov 1997 A
5691917 Harrison Nov 1997 A
5729682 Marquis Mar 1998 A
5742905 Pepe et al. Apr 1998 A
5748890 Goldberg May 1998 A
5754111 Garcia May 1998 A
5754175 Koppolu May 1998 A
5778227 Jordan Jul 1998 A
5787283 Chin et al. Jul 1998 A
5787412 Bosch et al. Jul 1998 A
5787427 Benatar et al. Jul 1998 A
5790785 Klug et al. Aug 1998 A
5790790 Smith et al. Aug 1998 A
5809509 Blackman et al. Sep 1998 A
5819092 Ferguson et al. Oct 1998 A
5826252 Wolters et al. Oct 1998 A
5835722 Bradshaw et al. Nov 1998 A
5862325 Reed et al. Jan 1999 A
5864848 Horvitz et al. Jan 1999 A
5864870 Guck Jan 1999 A
5867712 Shaw et al. Feb 1999 A
5867799 Lang et al. Feb 1999 A
5870739 Davis, III et al. Feb 1999 A
5870759 Bauer et al. Feb 1999 A
5872926 Levac et al. Feb 1999 A
5898870 Okuda et al. Apr 1999 A
5911139 Jain et al. Jun 1999 A
5911143 Deinhart et al. Jun 1999 A
5926810 Noble et al. Jul 1999 A
5930801 Falkenhainer Jul 1999 A
5933820 Beier et al. Aug 1999 A
5937189 Branson et al. Aug 1999 A
5944823 Jade Aug 1999 A
5956715 Glasser et al. Sep 1999 A
5956730 Burroughs et al. Sep 1999 A
5963976 Ogawa et al. Oct 1999 A
5974416 Anand et al. Oct 1999 A
5974417 Bracho et al. Oct 1999 A
5983234 Tietjen Nov 1999 A
5983273 White et al. Nov 1999 A
5987454 Hobbs Nov 1999 A
5990883 Byrne et al. Nov 1999 A
5999932 Paul Dec 1999 A
6003079 Friedrich et al. Dec 1999 A
6011537 Slotznick Jan 2000 A
6016394 Walker Jan 2000 A
6018343 Wang et al. Jan 2000 A
6021403 Horvitz et al. Feb 2000 A
6023223 Baxter, Jr. Feb 2000 A
6023765 Kuhn Feb 2000 A
6044224 Radia et al. Mar 2000 A
6044372 Rothfus et al. Mar 2000 A
6047307 Radko Apr 2000 A
6047327 Tso Apr 2000 A
6049821 Theriault et al. Apr 2000 A
6052720 Traversat et al. Apr 2000 A
6065012 Balsara et al. May 2000 A
6078955 Konno et al. Jun 2000 A
6081840 Zhao Jun 2000 A
6088451 He et al. Jul 2000 A
6088675 MacKenty et al. Jul 2000 A
6088717 Reed et al. Jul 2000 A
6092101 Birrell et al. Jul 2000 A
6101480 Conmy et al. Aug 2000 A
6106573 Mahalingaiah et al. Aug 2000 A
6119122 Bunnell Sep 2000 A
6122348 French-St. George et al. Sep 2000 A
6122629 Walker Sep 2000 A
6134592 Montulli Oct 2000 A
6141778 Kane et al. Oct 2000 A
6144996 Starnes et al. Nov 2000 A
6148290 Dan et al. Nov 2000 A
6148301 Rosenthal Nov 2000 A
6148302 Beylin et al. Nov 2000 A
6148336 Thomas et al. Nov 2000 A
6151624 Teare et al. Nov 2000 A
6154876 Haley et al. Nov 2000 A
6161125 Traversat et al. Dec 2000 A
6161139 Win et al. Dec 2000 A
6163794 Lange et al. Dec 2000 A
6167402 Yeager Dec 2000 A
6167408 Cannon et al. Dec 2000 A
6169897 Kariya Jan 2001 B1
6185551 Birrell et al. Feb 2001 B1
6189032 Susaki et al. Feb 2001 B1
6192380 Light et al. Feb 2001 B1
6192408 Vahalia et al. Feb 2001 B1
6195662 Ellis et al. Feb 2001 B1
6199081 Meyerzon Mar 2001 B1
6202066 Barkley et al. Mar 2001 B1
6223207 Lucovsky Apr 2001 B1
6226642 Beranek et al. May 2001 B1
6226792 Goiffon et al. May 2001 B1
6243830 Nakatsugawa Jun 2001 B1
6247026 Waldo Jun 2001 B1
6253204 Glass et al. Jun 2001 B1
6263498 Alcorn et al. Jul 2001 B1
6266690 Shankarappa et al. Jul 2001 B1
6269369 Robertson Jul 2001 B1
6272506 Bell Aug 2001 B1
6275824 O'Flaherty et al. Aug 2001 B1
6279111 Jensenworth et al. Aug 2001 B1
6282548 Burner et al. Aug 2001 B1
6282698 Baker et al. Aug 2001 B1
6282709 Reha et al. Aug 2001 B1
6308216 Goldszmidt et al. Oct 2001 B1
6308273 Goertzel et al. Oct 2001 B1
6314093 Mann et al. Nov 2001 B1
6314447 Lea et al. Nov 2001 B1
6314555 Ndumu et al. Nov 2001 B1
6317131 Basso Nov 2001 B2
6317783 Freishtat et al. Nov 2001 B1
6317868 Grimm et al. Nov 2001 B1
6324544 Alam et al. Nov 2001 B1
6327574 Kramer Dec 2001 B1
6330610 Docter Dec 2001 B1
6334151 Bolam et al. Dec 2001 B1
6336118 Hammond Jan 2002 B1
6336119 Banavar et al. Jan 2002 B1
6336147 Brownell et al. Jan 2002 B1
6343287 Kumar et al. Jan 2002 B1
6343324 Hubis et al. Jan 2002 B1
6345279 Li Feb 2002 B1
6349302 Aoyama et al. Feb 2002 B1
6349307 Chen Feb 2002 B1
6351744 Landresse et al. Feb 2002 B1
6351843 Berkley et al. Feb 2002 B1
6356940 Short Mar 2002 B1
6360252 Rudy et al. Mar 2002 B1
6370537 Gilbert et al. Apr 2002 B1
6377952 Inohara Apr 2002 B1
6381465 Chern et al. Apr 2002 B1
6389472 Hughes et al. May 2002 B1
6397246 Wolfe May 2002 B1
6401085 Gershman et al. Jun 2002 B1
6405191 Bhatt et al. Jun 2002 B1
6405364 Bowman-Amuah Jun 2002 B1
6414635 Stewart et al. Jul 2002 B1
6415322 Jaye Jul 2002 B1
6442549 Schneider Aug 2002 B1
6446118 Gottlieb Sep 2002 B1
6453317 LaCost et al. Sep 2002 B1
6457066 Mein et al. Sep 2002 B1
6459913 Cloutier Oct 2002 B2
6463462 Smith Oct 2002 B1
6466232 Newell et al. Oct 2002 B1
6470450 Langford Oct 2002 B1
6480830 Ford et al. Nov 2002 B1
6480850 Veldhuisen Nov 2002 B1
6480860 Monday Nov 2002 B1
6480885 Olivier Nov 2002 B1
6487584 Bunney Nov 2002 B1
6490721 Gorshkov et al. Dec 2002 B1
6505167 Horvitz et al. Jan 2003 B1
6510439 Rangarajan et al. Jan 2003 B1
6516315 Gupta Feb 2003 B1
6516341 Shaw et al. Feb 2003 B2
6519571 Guheen et al. Feb 2003 B1
6526438 Bienvenu et al. Feb 2003 B1
6539481 Takahashi et al. Mar 2003 B1
6542515 Kumar et al. Apr 2003 B1
6542845 Grucci et al. Apr 2003 B1
6542912 Meltzer et al. Apr 2003 B2
6542923 Nguyen Apr 2003 B2
6543317 Rinner et al. Apr 2003 B1
6553427 Chang et al. Apr 2003 B1
6556995 Child Apr 2003 B1
6566995 Furuuchi May 2003 B2
6571279 Herz et al. May 2003 B1
6574631 Subramanian et al. Jun 2003 B1
6574655 Libert et al. Jun 2003 B1
6581095 Kim Jun 2003 B1
6584564 Olkin et al. Jun 2003 B2
6591260 Schwarzhoff et al. Jul 2003 B1
6594666 Biswas et al. Jul 2003 B1
6594672 Lampson et al. Jul 2003 B1
6601016 Brown Jul 2003 B1
6601075 Huang et al. Jul 2003 B1
6601233 Underwood Jul 2003 B1
6604099 Chung et al. Aug 2003 B1
6604143 Nagar et al. Aug 2003 B1
6604209 Grucci et al. Aug 2003 B1
6609148 Salo et al. Aug 2003 B1
6618716 Horvitz Sep 2003 B1
6622160 Horvitz et al. Sep 2003 B1
6633898 Seguchi et al. Oct 2003 B1
6643650 Slaughter et al. Nov 2003 B1
6643652 Helgeson et al. Nov 2003 B2
6651217 Kennedy et al. Nov 2003 B1
6654747 Van Huben et al. Nov 2003 B1
6662340 Rawat et al. Dec 2003 B2
6662357 Bowman-Amuah Dec 2003 B1
6665756 Abramson et al. Dec 2003 B2
6678682 Jenkins et al. Jan 2004 B1
6678715 Ando Jan 2004 B1
6684204 Lal Jan 2004 B1
6686838 Rezvani et al. Feb 2004 B1
6694429 Kalmanek et al. Feb 2004 B1
6697809 Chen et al. Feb 2004 B2
6697865 Howard et al. Feb 2004 B1
6704024 Robotham et al. Mar 2004 B2
6708137 Carley Mar 2004 B2
6708217 Colson Mar 2004 B1
6711585 Copperman et al. Mar 2004 B1
6711612 Blumenau et al. Mar 2004 B1
6714967 Horvitz Mar 2004 B1
6718535 Underwood Apr 2004 B1
6721941 Morshed et al. Apr 2004 B1
6731940 Nagendran May 2004 B1
6732080 Blants May 2004 B1
6738767 Chung et al. May 2004 B1
6741980 Langseth May 2004 B1
6745011 Hendrickson et al. Jun 2004 B1
6748417 Helland et al. Jun 2004 B1
6754470 Hendrickson et al. Jun 2004 B2
6757720 Weschler Jun 2004 B1
6757898 Ilsen et al. Jun 2004 B1
6763384 Gupta et al. Jul 2004 B1
6766362 Miyasaka Jul 2004 B1
6772216 Ankireddipally et al. Aug 2004 B1
6789077 Slaughter et al. Sep 2004 B1
6789126 Saulpaugh et al. Sep 2004 B1
6792446 Merchant et al. Sep 2004 B2
6792466 Saulpaugh et al. Sep 2004 B1
6792605 Roberts et al. Sep 2004 B1
6807558 Hassett et al. Oct 2004 B1
6816878 Zimmers et al. Nov 2004 B1
6816886 Elvanoglu Nov 2004 B2
6820082 Cook et al. Nov 2004 B1
6820204 Desai et al. Nov 2004 B1
6823369 Leach Nov 2004 B2
6823458 Lee et al. Nov 2004 B1
6823495 Vedula et al. Nov 2004 B1
6829593 Ritter et al. Dec 2004 B1
6832237 Christensen et al. Dec 2004 B1
6839733 Lange et al. Jan 2005 B1
6850975 Danneels et al. Feb 2005 B1
6850979 Saulpaugh et al. Feb 2005 B1
6857013 Ramberg Feb 2005 B2
6862594 Saulpaugh et al. Mar 2005 B1
6868447 Slaughter et al. Mar 2005 B1
6882706 Andrew Apr 2005 B2
6892201 Brown et al. May 2005 B2
6898618 Slaughter et al. May 2005 B1
6907457 Merrell et al. Jun 2005 B2
6907465 Tsai Jun 2005 B1
6911143 Janik Jun 2005 B2
6912600 Van Brero et al. Jun 2005 B2
6917373 Vong et al. Jul 2005 B2
6917937 Rubendall Jul 2005 B1
6917976 Slaughter et al. Jul 2005 B1
6918084 Slaughter et al. Jul 2005 B1
6925307 Mamdani et al. Aug 2005 B1
6925481 Singhal et al. Aug 2005 B2
6931434 Donoho et al. Aug 2005 B1
6934740 Lawande et al. Aug 2005 B1
6944658 Schneider Sep 2005 B1
6957199 Fisher Oct 2005 B1
6958984 Kotzin Oct 2005 B2
6976078 Icken Dec 2005 B1
6980993 Horvitz et al. Dec 2005 B2
6981247 Weinberg et al. Dec 2005 B2
6985958 Lucovsky Jan 2006 B2
6986145 Gangopadhyay Jan 2006 B2
6990513 Belfiore et al. Jan 2006 B2
6993502 Gryglewicz et al. Jan 2006 B1
7002942 Kotzin Feb 2006 B2
7017016 Chujo Mar 2006 B2
7024662 Elvanoglu Apr 2006 B2
7024692 Schanze et al. Apr 2006 B1
7027051 Alford et al. Apr 2006 B2
7028312 Merrick et al. Apr 2006 B1
7031945 Donner Apr 2006 B1
7061928 Giroti Jun 2006 B2
7062539 Leach Jun 2006 B2
7062642 Langrind et al. Jun 2006 B1
7069446 Wiederin et al. Jun 2006 B2
7072843 Menninger Jul 2006 B2
7072967 Saulpaugh et al. Jul 2006 B1
7113771 Kotzin Sep 2006 B2
7127328 Ransom Oct 2006 B2
7127514 Hunt Oct 2006 B2
7133869 Bryan Nov 2006 B2
7136859 Lucovsky Nov 2006 B2
7136908 Cline et al. Nov 2006 B2
7143118 Eichstaedt et al. Nov 2006 B2
7149806 Perkins et al. Dec 2006 B2
7170857 Stephens et al. Jan 2007 B2
7191236 Simpson-Young Mar 2007 B2
7203906 Abbott Apr 2007 B2
7206788 Horvitz Apr 2007 B2
7207008 Koch Apr 2007 B1
7210147 Hipp et al. Apr 2007 B1
7216287 Colson et al. May 2007 B2
7219163 Robinson May 2007 B2
7222306 Kaasila et al. May 2007 B2
7243130 Horvitz Jul 2007 B2
7246122 Lucovsky Jul 2007 B2
7249159 Horvitz et al. Jul 2007 B1
7250846 Ebling et al. Jul 2007 B2
7260601 Day Aug 2007 B1
7277951 Marriott Oct 2007 B2
7284197 Lucovsky Oct 2007 B2
7284271 Lucovsky Oct 2007 B2
7302402 Callaghan et al. Nov 2007 B2
7302634 Lucovsky et al. Nov 2007 B2
7346668 Willis Mar 2008 B2
7418472 Shoemaker Aug 2008 B2
7457879 Horvitz Nov 2008 B2
7472349 Srivastava et al. Dec 2008 B1
7487233 Iwamoto et al. Feb 2009 B2
7496630 Arellano Feb 2009 B2
7502384 Trossen Mar 2009 B2
7539747 Lucovsky et al. May 2009 B2
7545762 McConnell Jun 2009 B1
7548932 Horvitz et al. Jun 2009 B2
7613702 Horvitz et al. Nov 2009 B2
7613721 Horvitz et al. Nov 2009 B2
7613722 Horvitz et al. Nov 2009 B2
7664724 Lucovsky et al. Feb 2010 B2
7721110 Kouznetsov et al. May 2010 B2
7921155 Harrow et al. Apr 2011 B2
8572576 Elvanoglu et al. Oct 2013 B2
8862736 Tagg Oct 2014 B2
20010000958 Ulrich May 2001 A1
20010023421 Numao Sep 2001 A1
20010029470 Schultz et al. Oct 2001 A1
20010044275 Yamaguchi Nov 2001 A1
20010044827 Zhuk Nov 2001 A1
20010047385 Tuatini Nov 2001 A1
20020010781 Tuatini Jan 2002 A1
20020012327 Okada Jan 2002 A1
20020013711 Ahuja et al. Jan 2002 A1
20020013788 Pennell et al. Jan 2002 A1
20020015042 Robotham et al. Feb 2002 A1
20020016173 Hunzinger Feb 2002 A1
20020019828 Mortl Feb 2002 A1
20020023156 Chujo Feb 2002 A1
20020026426 Bennett Feb 2002 A1
20020029256 Zintel et al. Mar 2002 A1
20020032790 Linderman et al. Mar 2002 A1
20020035533 Mache et al. Mar 2002 A1
20020038455 Srinivasan Mar 2002 A1
20020040369 Multer et al. Apr 2002 A1
20020042846 Bottan Apr 2002 A1
20020049749 Helgeson et al. Apr 2002 A1
20020049817 Drory et al. Apr 2002 A1
20020049902 Rhodes Apr 2002 A1
20020055951 Shigetomi et al. May 2002 A1
20020059342 Gupta May 2002 A1
20020059425 Belfiore et al. May 2002 A1
20020063732 Mansikkaniemi et al. May 2002 A1
20020065881 Mansikkaniemi et al. May 2002 A1
20020065884 Donoho May 2002 A1
20020069298 Birkler et al. Jun 2002 A1
20020073158 Dalal Jun 2002 A1
20020078204 Newell et al. Jun 2002 A1
20020078378 Burnett Jun 2002 A1
20020080156 Abbott et al. Jun 2002 A1
20020080948 Canali Jun 2002 A1
20020083048 Tenorio et al. Jun 2002 A1
20020083073 Vaidya Jun 2002 A1
20020083121 Chang et al. Jun 2002 A1
20020083158 Abbott et al. Jun 2002 A1
20020085579 Sullivan Jul 2002 A1
20020087397 Mazza Jul 2002 A1
20020087740 Castanho Jul 2002 A1
20020090934 Mitchelmore Jul 2002 A1
20020095399 Devine et al. Jul 2002 A1
20020099573 Koguchi et al. Jul 2002 A1
20020099593 Kraft et al. Jul 2002 A1
20020099817 Abbott et al. Jul 2002 A1
20020103661 Albazz Aug 2002 A1
20020104017 Stefan Aug 2002 A1
20020107985 Hwang Aug 2002 A1
20020116232 Rapp et al. Aug 2002 A1
20020116642 Joshi et al. Aug 2002 A1
20020120685 Srivastava et al. Aug 2002 A1
20020120711 Bantz Aug 2002 A1
20020124182 Bacso et al. Sep 2002 A1
20020129000 Pillai et al. Sep 2002 A1
20020129016 Christfort et al. Sep 2002 A1
20020129024 Lee Sep 2002 A1
20020129140 Kawazoe et al. Sep 2002 A1
20020129213 Groudie Sep 2002 A1
20020131428 Pecus et al. Sep 2002 A1
20020133477 Abel Sep 2002 A1
20020133506 Yamato Sep 2002 A1
20020133535 Lucovsky et al. Sep 2002 A1
20020133627 Maes et al. Sep 2002 A1
20020133752 Hand Sep 2002 A1
20020138566 Leach et al. Sep 2002 A1
20020152053 Roy Oct 2002 A1
20020154161 Friedman et al. Oct 2002 A1
20020157007 Sashihara Oct 2002 A1
20020161838 Pickover Oct 2002 A1
20020169876 Curie et al. Nov 2002 A1
20020174125 Lucovsky et al. Nov 2002 A1
20020184092 Cherry Dec 2002 A1
20020184214 Lucovsky et al. Dec 2002 A1
20020184344 Elvanoglu et al. Dec 2002 A1
20020184521 Lucovsky et al. Dec 2002 A1
20030004874 Ludwig Jan 2003 A1
20030014659 Zhu Jan 2003 A1
20030018771 Vinberg et al. Jan 2003 A1
20030023623 Horvitz et al. Jan 2003 A1
20030041000 Zajac et al. Feb 2003 A1
20030041065 Lucovsky et al. Feb 2003 A1
20030041076 Lucovsky et al. Feb 2003 A1
20030046238 Nonaka Mar 2003 A1
20030050911 Lucovsky et al. Mar 2003 A1
20030055897 Brown Mar 2003 A1
20030061081 Kellond et al. Mar 2003 A1
20030061211 Shultz et al. Mar 2003 A1
20030061365 White et al. Mar 2003 A1
20030069887 Lucovsky Apr 2003 A1
20030074247 Dick Apr 2003 A1
20030074423 Mayberry et al. Apr 2003 A1
20030097485 Horvitz et al. May 2003 A1
20030100326 Grube et al. May 2003 A1
20030101190 Horvitz et al. May 2003 A1
20030110234 Egli Jun 2003 A1
20030115228 Horvitz et al. Jun 2003 A1
20030120785 Young Jun 2003 A1
20030123465 Donahue Jul 2003 A1
20030131069 Lucovsky Jul 2003 A1
20030131073 Lucovsky Jul 2003 A1
20030131142 Horvitz et al. Jul 2003 A1
20030133553 Khakoo et al. Jul 2003 A1
20030135411 Ushiki et al. Jul 2003 A1
20030135556 Holdsworth Jul 2003 A1
20030140112 Ramachandran et al. Jul 2003 A1
20030149646 Chen et al. Aug 2003 A1
20030149696 Nelson et al. Aug 2003 A1
20030149781 Yared et al. Aug 2003 A1
20030154476 Abbott et al. Aug 2003 A1
20030165139 Chen et al. Sep 2003 A1
20030167334 Butler Sep 2003 A1
20030169749 Huang et al. Sep 2003 A1
20030177135 Lechowicz et al. Sep 2003 A1
20030177264 Elvanoglu et al. Sep 2003 A1
20030220891 Fish Nov 2003 A1
20030221014 Kosiba et al. Nov 2003 A1
20030223449 Hill Dec 2003 A1
20030229529 Mui et al. Dec 2003 A1
20040002972 Pather Jan 2004 A1
20040002976 Lucovsky Jan 2004 A1
20040003112 Alles Jan 2004 A1
20040006564 Lucovsky et al. Jan 2004 A1
20040006590 Lucovsky et al. Jan 2004 A1
20040010451 Romano et al. Jan 2004 A1
20040015725 Boneh et al. Jan 2004 A1
20040024866 Sundar et al. Feb 2004 A1
20040024875 Horvitz et al. Feb 2004 A1
20040060002 Lucovsky et al. Mar 2004 A1
20040064571 Nuuttila Apr 2004 A1
20040078273 Loeb et al. Apr 2004 A1
20040083291 Pessi Apr 2004 A1
20040098622 O'Neill May 2004 A1
20040133622 Clubb et al. Jul 2004 A1
20040139145 Bar-or et al. Jul 2004 A1
20040156346 O'Neill Aug 2004 A1
20040166834 Omar et al. Aug 2004 A1
20040181550 Warsta Sep 2004 A1
20040193444 Hufford et al. Sep 2004 A1
20040199663 Horvitz et al. Oct 2004 A1
20040199664 Feldman Oct 2004 A1
20040199861 Lucovsky Oct 2004 A1
20040199869 Lucovsky Oct 2004 A1
20040205526 Borodovski et al. Oct 2004 A1
20040205656 Reulein et al. Oct 2004 A1
20040210839 Lucovsky Oct 2004 A1
20040226001 Teegan et al. Nov 2004 A1
20040242322 Montagna Dec 2004 A1
20040243520 Bishop et al. Dec 2004 A1
20040267687 Aschen et al. Dec 2004 A1
20040267763 Aschen et al. Dec 2004 A1
20040267965 Vasudevan Dec 2004 A1
20050013417 Zimmers et al. Jan 2005 A1
20050027741 Eichstaedt Feb 2005 A1
20050065950 Chaganti et al. Mar 2005 A1
20050080865 Leach et al. Apr 2005 A1
20050080911 Stiers Apr 2005 A1
20050097000 Freishtat et al. May 2005 A1
20050100150 Dhara et al. May 2005 A1
20050144266 Antonelli Jun 2005 A1
20050165773 Elvanoglu Jul 2005 A1
20050262434 Soderberg Nov 2005 A1
20050273692 Horvitz et al. Dec 2005 A1
20050278344 Horvitz et al. Dec 2005 A1
20050278366 Horvitz et al. Dec 2005 A1
20050289447 Hadley et al. Dec 2005 A1
20060003780 Mamdani Jan 2006 A1
20060010078 Rezvani et al. Jan 2006 A1
20060036642 Horvitz et al. Feb 2006 A1
20060107251 Boshier et al. May 2006 A1
20060133385 Trossen Jun 2006 A1
20060150140 Elvanoglu Jul 2006 A1
20060161554 Lucovsky Jul 2006 A1
20070026857 Kotzin Feb 2007 A1
20070083561 Lai Apr 2007 A1
20070150903 Hansen Jun 2007 A1
20070198691 Koch Aug 2007 A1
20070216687 Kaasila et al. Sep 2007 A1
20170017529 Elvanoglu et al. Jan 2017 A1
Foreign Referenced Citations (37)
Number Date Country
2428481 Nov 2011 CA
2117811 Oct 1972 DE
925128 May 1963 EP
0147574 Jul 1985 EP
0457920 Nov 1991 EP
0893920 Jan 1999 EP
0917119 May 1999 EP
0952513 Oct 1999 EP
0952513 Oct 1999 EP
0991005 Apr 2000 EP
1021021 Jul 2000 EP
1 376 977 Aug 2007 EP
1376977 Aug 2007 EP
1379971 Feb 2012 EP
228610 Jun 2013 HU
6293904 Oct 1994 JP
11143827 May 1999 JP
2000163345 Jun 2000 JP
2002055896 Feb 2002 JP
329278 Sep 2010 NO
WO-9741654 Nov 1997 WO
WO-9838585 Sep 1998 WO
WO-9917216 Apr 1999 WO
WO-9923591 May 1999 WO
PCTUS0004 Aug 2000 WO
WO-0051031 Aug 2000 WO
WO 0051031 Aug 2000 WO
WO-0184301 Nov 2001 WO
WO-0186486 Nov 2001 WO
WO-02073339 Sep 2002 WO
WO-02073392 Sep 2002 WO
WO-02073442 Sep 2002 WO
WO-02073454 Sep 2002 WO
WO-02073466 Sep 2002 WO
WO-02073472 Sep 2002 WO
WO-02079921 Oct 2002 WO
WO-03096209 Nov 2003 WO
Non-Patent Literature Citations (286)
Entry
Anonymous, International Search Report in Corresponding EP Application No. EP 03 00 9717.
Anonymous, New Zealand Search Report in Corresponding New Zealand Application No. 525694.
Danish Patent and Trademark Office, Search Report and Written Opinion in Application No. SG 200302729-9.
U.S. Appl. No. 60/379,864 “Process Programming Language”, first named inventor—L. Meredith, filed May 10, 2002.
Federal Institute of Industrial Property “Search report” request No. TR 04/508, for Application No. 2003/00769, established by The Russian Patent Office, Date of mailing of the search report Mar. 14, 2005, Authorized officer V. Kirillov.
“Notice of Intention to Grant/Examination Report”, Turkish Application No. 03/769, (dated Jan. 18, 2010),3 pages.
“Russian Search Report”, Turkish Patent Application No. 2003/00769, (dated Nov. 14, 2004),2 pages.
“EP Search Report”, European Patent Application No. 03009717.4, (dated Dec. 2, 2003),4 pages.
“Foreign Office Action”, Polish Application No. P360329, (dated May 25, 2010),3 pages.
“Advisory Action”, U.S. Appl. No. 10/021,316, (dated Apr. 14, 2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/021,563, (dated Sep. 19,2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/209,831, (dated Feb. 14, 2006), 3 pages.
“Advisory Action”, U.S. Appl. No. 11/086,590, (dated Apr. 28, 2009), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/003,750, (dated Jan. 31, 2008), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/017,680, (dated May 8, 2007), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/017,680, (dated Oct. 13, 2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/187,057, (dated Sep. 29, 2006), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/187,057, (dated Oct. 26, 2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/187,210, (dated Oct. 20, 2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/187,216, (dated Dec. 16, 2005), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/213,525, (dated Aug. 23, 2007), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/243,310, (dated Sep. 21, 2006), 3 pages.
“Advisory Action”, U.S. Appl. No. 10/243,310, (dated Oct. 27, 2005), 3 pages.
“COBRA Components—vol. 1”, Object Management Group XP002260124, (Aug. 1999), pp. 1-462.
“Final Office Action”, U.S. Appl. No. 10/003,753, (dated Sep. 23, 2005), 30 pages.
“Final Office Action”, U.S. Appl. No. 10/003,767, (dated May 24, 2006), 21 pages.
“Final Office Action”, U.S. Appl. No. 10/021,264, (dated Dec. 2, 2005),18 pages.
“Final Office Action”, U.S. Appl. No. 10/021,291, (dated Jan. 18, 2006),15 pages.
“Final Office Action”, U.S. Appl. No. 10/021,316, (dated Nov. 30, 2004),13 pages.
“Final Office Action”, U.S. Appl. No. 10/021,316, (dated Dec. 4, 2006),12 pages.
“Final Office Action”, U.S. Appl. No. 10/021,316, (dated Dec. 30, 2005),15 pages.
“Final Office Action”, U.S. Appl. No. 10/021,563, (dated Apr. 7, 2005), 23 pages.
“Final Office Action”, U.S. Appl. No. 10/062,045, (dated Sep. 2, 2005),11 pages.
“Final Office Action”, U.S. Appl. No. 10/187,061, (dated Feb. 22, 2007),15 pages.
“Final Office Action”, U.S. Appl. No. 10/187,061, (dated Mar. 2, 2009),18 pages.
“Final Office Action”, U.S. Appl. No. 10/187,061, (dated Nov. 1, 2007),11 pages.
“Final Office Action”, U.S. Appl. No. 10/209,831, (dated Nov. 9, 2005),14 pages.
“Final Office Action”, U.S. Appl. No. 11/086,590, (dated Mar. 18, 2009),15 pages.
“Final Office Action”, U.S. Appl. No. 11/086,590, (dated Apr. 8, 2008),13 pages.
“Final Office Action”, U.S. Appl. No. 11/086,590, (dated Dec. 18, 2007),13 pages.
“Final Office Action”, U.S. Appl. No. 10/003,750, (dated Feb. 8, 2006),17 pages.
“Final Office Action”, U.S. Appl. No. 10/003,750, (dated Nov. 16, 2007),19 pages.
“Final Office Action”, U.S. Appl. No. 10/003,750, (dated Dec. 12, 2006),17 pages.
“Final Office Action”, U.S. Appl. No. 10/017,680, (dated Jul. 15, 2005),15 pages.
“Final Office Action”, U.S. Appl. No. 10/017,680, (dated Aug. 13, 2007),19 pages.
“Final Office Action”, U.S. Appl. No. 10/033,177, (dated Jan. 4, 2005), 8 pages.
“Final Office Action”, U.S. Appl. No. 10/033,177, (dated Mar. 13, 2006),13 pages.
“Final Office Action”, U.S. Appl. No. 10/186,881, (dated Sep. 5, 2007), 32 pages.
“Final Office Action”, U.S. Appl. No. 10/186,881, (dated Oct. 6, 2006),17 pages.
“Final Office Action”, U.S. Appl. No. 10/187,057, (dated Jun. 23, 2005),10 pages.
“Final Office Action”, U.S. Appl. No. 10/187,057, (dated Jul. 21, 2006),13 pages.
“Final Office Action”, U.S. Appl. No. 10/187,063, (dated Jul. 19, 2006), 9 pages.
“Final Office Action”, U.S. Appl. No. 10/187,190, (dated Jul. 21, 2006),21 pages.
“Final Office Action”, U.S. Appl. No. 10/187,196, (dated Nov. 3, 2005),14 pages.
“Final Office Action”, U.S. Appl. No. 10/187,210, (dated Jul. 12, 2005),14 pages.
“Final Office Action”, U.S. Appl. No. 10/187,210, (dated Aug. 29, 2006),11 pages.
“Final Office Action”, U.S. Appl. No. 10/187,216, (dated Oct. 3, 2005),11 pages.
“Final Office Action”, U.S. Appl. No. 10/213,525, (dated Mar. 6, 2006),14 pages.
“Final Office Action”, U.S. Appl. No. 10/213,525, (dated May 2, 2007),13 pages.
“Final Office Action”, U.S. Appl. No. 10/213,525, (dated Jun. 17, 2008),15 pages.
“Final Office Action”, U.S. Appl. No. 10/243,310, (dated Jun. 28, 2005),14 pages.
“Final Office Action”, U.S. Appl. No. 10/243,310, (dated Jul. 7, 2006),15 pages.
“Final Office Action”, U.S. Appl. No. 11/347,448, (dated Jun. 10, 2010),19 pages.
“Foreign Office Action”, Hungarian Application No. PO301952, (dated Apr. 7, 2011), 3 pages.
“Foreign Office Action”, Indonesian Application No. P00200300319, (dated May 5, 2011).
“International Search Report”, Application No. PCT/US02/08061, (dated Aug. 22, 2002).
“Non Final Office Action”, U.S. Appl. No. 10/003,753, (dated Jan. 12, 2006), 6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/003,767, (dated Jan. 25, 2006), 20 pages.
“Non Final Office Action”, U.S. Appl. No. 10/003,767, (dated Sep. 26, 2006), 25 pages.
“Non Final Office Action”, U.S. Appl. No. 10/003,767, (dated Sep. 26, 2005),18 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,264, (dated Mar. 21, 2005),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,264, (dated Jun. 13, 2006),10 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,264, (dated Oct. 12, 2006), 20 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,291, (dated Mar. 10, 2004), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,291, (dated Sep. 5, 2006),15 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,316, (dated May 10, 2004), 6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,316, (dated Jun. 27, 2005), 9 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,316, (dated Aug. 24, 2006),10 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,563, (dated Jul. 8, 2004), 22 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,563, (dated Dec. 3, 2003),10 pages.
“Non Final Office Action”, U.S. Appl. No. 10/021,563, (dated Dec. 29, 2005), 25 pages.
“Non Final Office Action”, U.S. Appl. No. 10/062,045, (dated Mar. 25, 2005),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/177,470, (dated May 21, 2004), 6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,061, (dated Apr. 14, 2008),16 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,061, (dated May 18, 2007),15 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,061, (dated Sep. 7, 2005),10 pages.
“Non Final Office Action”, U.S. Appl. No. 10/209,831, (dated Mar. 2, 2005),10 pages.
“Non Final Office Action”, U.S. Appl. No. 10/209,831, (dated Apr. 12, 2007),17 pages.
“Non Final Office Action”, U.S. Appl. No. 10/209,831, (dated Jun. 13, 2006),13 pages.
“Non Final Office Action”, U.S. Appl. No. 10/243,310, (dated Feb. 1, 2006),13 pages.
“Non Final Office Action”, U.S. Appl. No. 11/086,590, (dated Oct. 14, 2008),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/003,753, (dated Jul. 8, 2004),29 pages.
“Non Final Office Action”, U.S. Appl. No. 10/003,754, (dated Jan. 31, 2005), 7 pages.
“Non Final Office Action”, U.S. Appl. No. 10/017,680, (dated Jan. 27, 2005),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/017,680, (dated Apr. 6, 2006),15 pages.
“Non Final Office Action”, U.S. Appl. No. 10/033,177, (dated May 10, 2004), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/033,177, (dated Jul. 22, 2005),11 pages.
“Non Final Office Action”, U.S. Appl. No. 10/033.177, (dated Aug. 26, 2003), 6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/099,467, (dated Apr. 7, 2005), 7 pages.
“Non Final Office Action”, U.S. Appl. No. 10/186,881, (dated Jan. 23, 2008), 42 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,057, (dated Jan. 12, 2005), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,057, (dated Jan. 25, 2006),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,057, (dated Nov. 15, 2006), 7 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,063, (dated Jul. 18, 2005), 7 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,063, (dated Dec. 7, 2006), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,190, (dated Feb. 2, 2006),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,190, (dated Apr. 8, 2005),13 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,190. (dated Nov. 3, 2004), 9 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,190, (dated Nov. 13, 2006),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,196, (dated Apr. 5, 2005), 9 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,196, (dated Jul. 14, 2006),14 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,216, (dated Feb. 9, 2007), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,216, (dated Apr. 26, 2005), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,216, (dated Jul. 28, 2006),11 pages.
“Non Final Office Action”, U.S. Appl. No. 10/187,216, (dated Aug. 7, 2006),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/213,525, (dated Aug. 24, 2005),11 pages.
“Non Final Office Action”, U.S. Appl. No. 10/213,525, (dated Nov. 13, 2006),16 pages.
“Non Final Office Action”, U.S. Appl. No. 10/213,525, (dated Nov. 19, 2007),16 pages.
“Non Final Office Action”, U.S. Appl. No. 10/243,310, (dated Mar. 7, 2005),12 pages.
“Non Final Office Action”, U.S. Appl. No. 10/243,310, (dated Dec. 22, 2006),17 pages.
“Non Final Office Action”, U.S. Appl. No. 11/086,590, (dated Jul. 17, 2007),12 pages.
“Non Final Office Action”, U.S. Appl. No. 11/203,482, (dated Oct. 19, 2007), 8 pages.
“Non Final Office Action”, U.S. Appl. No. 11/203,484, (dated Sep. 23, 2008),7 pages.
“Non Final Office Action”, U.S. Appl. No. 11/203,485, (dated Sep. 29, 2008),12 pages.
“Non Final Office Action”, U.S. Appl. No. 11/203,490, (dated Sep. 26, 2008), 9 pages.
“Non Final Office Action”, U.S. Appl. No. 11/276,655, (dated Apr. 3, 2009), 5 pages.
“Non Final Office Action”, U.S. Appl. No. 11/347,448, (dated Apr. 14, 2011), 20 pages.
“Non Final Office Action”, U.S. Appl. No. 11/347,448, (dated Aug. 20, 2009),19 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/003,750, (dated Jun. 6, 2007),13 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/003,750, (dated Jun. 27, 2006),17 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/003,750, (dated Sep. 15, 2005),16 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/099,577, (dated May 21, 2004),11 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/186,881, (dated Mar. 7, 2007), 26 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/186,881, (dated Mar. 24, 2006),15 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/186,881, (dated Sep. 8, 2005),19 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/187,210, (dated Feb. 8, 2005), 9 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/187,210, (dated Feb. 8, 2006),10 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/187,210, (dated Mar. 6, 2007), 6 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/187,210, (dated Nov. 15, 2006), 5 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/177,470, (dated Aug. 6, 2004), 6 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/017,680, (dated Oct. 10, 2007), 8 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/017,680, (dated Aug. 13, 2007),10 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/187,190, (dated Apr. 5, 2007), 7 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/099,467, (dated Aug. 15, 2005), 6 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 11/203,485, (dated Jun. 19, 2009),14 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 11/203,490, (dated Jun. 22, 2009),11 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 11/203,484, (dated Jun. 19, 2009),12 pages.
“Notice of Allowance & Examiner's Amendment”, U.S. Appl. No. 10/186,881, (dated Jul. 29, 2008),10 pages.
“Notice of Allowance and Examiner's Amendment”, U.S. Appl. No. 10/062,045, (dated Dec. 16, 2005), 7 pages.
“Notice of Allowance”, U.S. Appl. No. 10/003,767, (dated Jun. 14, 2007), 6 pages.
“Notice of Allowance”, U.S. Appl. No. 10/003,753, (dated Jun. 30, 2006), 6 pages.
“Notice of Allowance”, U.S. Appl. No. 10/003,754, (dated Jul. 12, 2005), 5 pages.
“Notice of Allowance”, U.S. Appl. No. 10/099,467, (dated Jun. 6, 2005), 4 pages.
“Notice of Allowance”, U.S. Appl. No. 10/099,577, (dated Aug. 6, 2004), 4 pages.
“Notice of Allowance”, U.S. Appl. No. 10/187,210, (dated Jul. 9, 2007), 4 pages.
“Notice of Allowance”, U.S. Appl. No. 10/968,731, (dated Mar. 10, 2006), 6 pages.
“Notice of Allowance”, U.S. Appl. No. 11/203,482, (dated Feb. 29, 2009), 7 pages.
“Notice of Allowance”, U.S. Appl. No. 11/203,482, (dated Apr. 11, 2008), 6 pages.
“Notice of Allowance”, U.S. Appl. No. 11/276,655, (dated Sep. 25, 2009), 7 pages.
“Restriction Requirement”, U.S. Appl. No. 10/017,680, (dated Nov. 4, 2004), 5 pages.
“Restriction Requirement”, U.S. Appl. No. 10/099,467, (dated Dec. 27, 2004), 5 pages.
“Restriction Requirement”, U.S. Appl. No. 10/187,196, (dated Jan. 11, 2005), 5 pages.
“Restriction Requirement”, U.S. Appl. No. 10/187,216, (dated Jan. 26, 2005), 5 pages.
“Restriction Requirement”, U.S. Appl. No. 10/213,525, (dated Jun. 21, 2005), 5 pages.
“SAFFLINK'S JotterSAF E-Wallet & Privacy Software”, PR Newswire, Now available for Consumer Download, (Feb. 7, 2001), 3 pages.
“ScanSoft's New OmniForm Premium 5.0 to Offer Business Powerful Forms Management, Software Converts Paper Forms to Digital for Easy Distribution and Accurate Data Management”, M2 Presswire, Scansoft, (Oct. 1, 2001), 2 pages.
“ScanSoft's New OmniForm Premium 5.0 to Offer Business Powerful Forms Management”, PR Newswire, (Oct. 1, 2001), 4 pages.
“SOAP Version 1.2 Part 1: Messaging Framework”, http://www.w3.org/TR/2001/WD-soap12-part1-20011002, (Oct. 2, 2001), 33 pages.
“SOAP Version 1.2 Part 2: Adjuncts”, http://www.w3.org/TR/2001/WD-soap12-part2-20011002, (Oct. 2, 2001), 45 pages.
“X Marks the Path”, JNJ Online:, (Jan. 3, 2002), 6 pages.
“XML Path Language (XPath)”, http://www.w3.org/TR/1999/REC-xpath-19991116, (Nov. 16, 1999), 33 pages.
Ayers, Bill “XML for Recourse Scheduling / Calendar Management”, xml-dev—list.posting, downloaded from lists.xml.org/archives/xml-dev/199811/msg00165.html, (Nov. 8, 1998), 2 pages.
Barish, Greg “Untangling the Web”, Intelligent Enterprise, (Mar. 27, 2001),1 page.
Bergman, Ruth “XML Technology Enables Redesigned Deep Space Network Operations”, IEEE (Mar. 2000), pp. 493-502.
Box, Don et al., “Simple Object Access Protocol (SOAP) 1.1”, W3C Note, retrieved from <<http://www.w3.org/TR/2000/NOTE-SOAP-20000508/>> on Apr. 8, 2011,(May 8, 2000), 33 pages.
Carroll, Ted et al., “XML for Resource Scheduling / Calendar Management”, xml-dev list posting, downloaded from: lists.xml.org/archives/xml-dev/199811/msg00151.html, (Nov. 6, 1998), 2 pages.
Caswell, Deborah “An Evolution of DCE Authorization Services”, Hewlett-Packard Journal, vol. 46, No. 6, (Dec. 1995), pp. 49-54.
Chandramouli, Ramaswamy “Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks”, ACM Press, (2000), 8 pages.
Chris, Dix “Working with Soap, The Simple Object Access Protocol”, C/C++ Users Journalvol. 19, No. 1, Jan. 2001, (14 pages), Jan. 2001.
Chu, S. et al., “Web-Based Single Sign-On Solutions: An SSO Product Matrix”, Computer Security Journal, CSI Computer Security Institute, XX, vol. 16 No. 1, XP008021056, ISSN: 0277-0865,(Nov. 2000), pp. 39-49.
Cook, Dave “The Win2000 Active Directory”, Issue 119, (Jun. 2000), pp. 3-6.
Eustice, K F., et al., “A Universal Information Appliance”, IBM Systems Journal, vol. 38 No. 4, (1999), pp. 575-601.
Farjami, Peymon et al., “Advance Service Provisioning Based on Mobile Agents”, Computer Communications, (Apr. 2000),11 pages.
Ferreira, Joao et al., “Using LDAP in a Filtering Service for Digital Library”, (1997), pp. 1-5.
Freire, Juliana et al., “WebViews: Accessing Personalized Web Content and Services”, ACM 2001, (2001), pp. 576-586.
Gates, Bill “Hailstorm Announcement”, Bill Gates Speech, www.microsoft.com/billgates/2001/03-19hailstorm.asp, (Mar. 19, 2001), 27 pages.
Jerbic, Mike “Security Requirements for Web-Services”, Position Papers for World Wide Web Consortium (W3C) Workshop on Web Services, Hewlett-Packard Lab, Bristol UK, (2001), pp. 28-33.
Koppen, Eckhart et al., “Active Hypertext for Distributed Web Appliances”, Proceedings of the Eighth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WET-ICE '99), (Jun. 1999), pp. 297-302.
Kormann, David P., et al., “Risks of the Passport Single Signon Protocol”, 2000 Computer Networks, Elsevier Science Publishers B.V., Amsterdam, NL, vol. 33, (2000), pp. 51-58.
U.S. Appl. No. 60/275,809, filed Mar. 14, 2001, 381 pages.
Roussev, Vassil et al., “Integrating XML and Object-based Programming for Distributed Collaboration”, IEEE 9th International Workshops, (Jun. 2000), 6 pages.
Stallings, William “Cryptography and Network Security”, Prentice Hall, Inc. 1998, Chapter 11, (1998), 7 pages.
Vuong, Nathan N., et al., “Managing Security Policies in a Distributed Environment Using eXtensible Markup Language (XML)”, ACM Symposium on Applied Computing—SAC, Retrieved from http://users.cis.fiu.edu/˜smithg/papers/sac01.pdf, (2001), 7 pages.
“Foreign Notice of Allowance”, EP Application No. 02725195.8, (dated Aug. 12, 2011),6 pages.
“Foreign Office Action”, EP Application No. 02707934.2, (dated Jan. 23, 2007),4 pages.
“Foreign Office Action”, EP Application No. 02709753.4, (dated May 9, 2008),5 pages.
“Foreign Office Action”, EP Application No. 02719261.6, (dated May 2, 2008),5 pages.
“Foreign Office Action”, EP Application No. 02721433.7, (dated Aug. 23, 2011),7 pages.
“Foreign Office Action”, EP Application No. 02721433.7, (dated Oct. 16, 2009),5 pages.
“Foreign Office Action”, EP Application No. 02725195.8, (dated Oct. 30, 2009),5 pages.
“Getting Results with Microsoft Office 97”, Microsoft, (1997),pp. 28-31, 345-374 & 470-471.
“International Search Report”, Application No. PCT/US02/06244, (dated Oct. 2, 2002),3 pages.
“International Search Report”, Application No. PCT/0s02/06243, (dated May 7, 2002),1 page.
“International Search Report”, Application No. PCT/US02/06245, (dated May 30, 2002),2 pages.
“International Search Report”, Application No. PCT/US02/06329, (dated Sep. 19, 2002),4 pages.
“International Search Report”, Application No. PCT/US02/07953, (dated Jun. 10, 2002),1 page.
“International Search Report”, Application No. PCT/US02/08061, (dated Aug. 22, 2002),3 pages.
“International Search Report”, Application No. PCT/US02/08063, (dated May 30, 2002),3 pages.
“Supplementary EP Search Report”, EP Application No. 02709743.5, (dated Sep. 5, 2006),3 pages.
“Supplementary EP Search Report”, EP Application No. 02721433.7, (dated Aug. 13, 2009),3 pages.
“Supplementary EP Search Report”, European Application No. 02728381.1, (dated Feb. 5, 2007),3 pages.
“Supplementary European Search Report”, EP Application No. 02707934.2, (dated May 30, 2006),3 pages.
“Supplementary European Search Report”, EP Application No. 02719261.6, (dated Feb. 5, 2007),5 pages.
“Supplementary European Search Report”, EP Application No. 02725195.8, (dated Aug. 4, 2009),4 pages.
“Supplementary European Search Report”, European Application No. 02709753.4, (dated Feb. 13, 2007),3 pages.
Imamura, et al., “Metadata Representation in XML for Internet-Based Electronic Application from Business to Government”, IEEE, (Jul. 2000), pp. 387-392.
Jepsen, Tom “Soap Cleans up Interoperability Problems on the Web”, IT Professional vol. 3, Issue 1, (Feb. 2001),pp. 52-55.
Jingyu, et al., “Object-Oriented Representation for XML Data”, IEEE, (Apr. 2001),pp. 40-49.
Lowry, P. B., “XML Data Mediation and Collaboration: A Proposed Comprehensive Architecture and Query Requirements for Using XML to Mediate Heterogeneous Data Sources and Targets”, System Sciences, 2001. Proceedings of the 34th Annual Hawaii International Conference, (Jan. 3, 2001),pp. 2535-2543.
Magendanz, T “TINA—Architectural Basis for Future Telecommunications Services”, Computer Communications, (Jun. 1996),pp. 233-245.
Morrison, Michael et al., “XML Unleashed”, Sam's Publishing, Indianapolis, IN (Dec. 1999),pp. 26-37, 84-104 & 106-122.
Padwick, Gordon “Using Microsoft Outlook 2000, Special Edition”, Que Corporation, Indianapolis, IN, (May 1999),pp. 370-376, 382-386 & 392-396.
Phelps, Thomas A., et al., “Multivalent Documents: A New Model for Digital Documents”, Division of Computer Science, UC Berkeley, Available at <https://www.eecs.berkeley.edu/Pubs/TechRpts/1998/CSD-98-999.pdf>,(1998),pp. 1-44.
Reinwald, B et al., “Heterogeneous Query Processing Through SQL Table Functions”, Data Engineering, 1999. Proceedings 15th International Conference on Sydney, NSW Austrailia, (Mar. 1999),pp. 366-373.
Reinwald, Berthold et al., “Heterogeneous Query Processing Through SQL Table Functions”, Data Engineering, 1999. Proceedings 15th International Conference on Sydney, NSW Austrailia, (Mar. 1999),8 pages.
Spears, Margery et al., “Microsoft Outlook 2000”, Step by Step, Catapult Inc., (1999),pp. vii-ix, 133-218 & 221-267.
Spencer, et al., “Installing and Configuring Active Directory”, Prentice Hall PTR, (May 2000),pp. 1-13.
Stamoulis, G D., et al., “Efficient Agent-Based Negotiation for Telecommunications Services”, Institute of Computer Science (ICS) Foundation for Research and Technology, (Dec. 5, 1999),8 pages.
Wong, Hao He “A Role-Based Access Control Model for XML Repositories”, Proceedings of the First International Conference on Web Information Systems Engineering, (Jun. 2000),pp. 138-145.
“Final Office Action”, U.S. Appl. No. 11/347,448, (dated Nov. 7, 2011),21 pages.
“Foreign Notice of Allowance”, Canadian Application No. 2428481, (dated Apr. 5, 2011),1 page.
Li, et al., “What You See is What I Saw: Applications of Stateless Client Systems in Asynchronous CSCW”, In Proceeding of the Fourth International Conference on Computer Science and Informatics, 1998, 5 pages.
Ochi, et al., “Network Applications for Mobile Computing”, Fujitsu Sci. Tech. J., 34, 1, Sep. 1998, pp. 41-49.
“Examination Report”, Turkish Application No. 2003/00769, (dated Jun. 13, 2007), 4 pages.
“Examination Report”, Turkish Application No. 2003/00769, (dated Oct. 15, 2008), 5 pages.
“Examiners Report”, AU Application No. 2003204123, (dated Oct. 27, 2008), 2 pages.
“Examiners Report”, CA Application No. 2,428,481, (dated Apr. 2, 2009), 3 pages.
“Examiners Report”, MY Application No. P120031685, (dated Jul. 20, 2007), 3 pages.
“Foreign Office Action”, CN Application No. 03145733.9, (dated Aug. 22, 2008),14 pages.
“Foreign Office Action”, CN Application No. 03145733.9, (dated Nov. 2, 2007),12 pages.
“Foreign Office Action”, CN Application No. 03145733.9, (dated Dec. 30, 2005), 7 pages.
“Foreign Office Action”, EP Application No. 02709743.5, (dated Apr. 21, 2009), 5 pages.
“Foreign Office Action”, EP Application No. 02709743.5, (dated Jun. 13, 2007), 5 pages.
“Foreign Office Action”, Indonesian Application No. P-00200300319, (dated Mar. 3, 2006), 4 pages.
“Foreign Office Action”, JP Application No. 2003-164094, (dated Mar. 17, 2009), 6 pages.
“Foreign Office Action”, JP Application No. 2003-164094, (dated May 23, 2008), 6 pages.
“Foreign Office Action”, JP Application No. 2003-164094, (dated Sep. 18, 2009), 4 pages.
“Foreign Office Action”, KR Application No. 10-2003-42575, (dated May 29, 2009), 7 pages.
“Foreign Office Action”, Norwegian Application No. 20032997, (dated Sep. 28, 2009), 3 pages.
“Foreign Office Action”, Norwegian Application No. 20032997, (dated Dec. 23, 2008), 6 pages.
“Foreign Office Action”, PL Application No. 360329/DP, (dated Feb. 23, 2010), 2 pages.
“Foreign Office Action”, PL Application No. 360329/DP, (dated Aug. 31, 2009), 5 pages.
“Foreign Office Action”, RU Application No. 2003119524, (dated Aug. 15, 2007), 9 pages.
“Notice of Allowance”, U.S. Appl. No. 11/347,448, (dated Apr. 29, 2013),14 pages.
“Search Report”, HU Application No. P0301952, (dated Mar. 30, 2005),1 page.
“Secure Socket Layer (SSL)”, Retrieved at.<<<http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.edge.doc%2Fcp%2Fadmingd35.htm>>, (Jan. 31, 2001),6 pages.
“Summons to Attend Oral Proceedings”, EP Application No. 03009717.4, (Oct. 18, 2006), 6 pages.
Cohen, Edith et al., “Improving End-to-End Performance of the Web Using Server Volumes and Proxy Filters”, ACM, 1998, Retrieved at <<http://delivery.acm.org/10.1145/290000/285286/p241-cohen.pdf>>, (1998),13 pages.
Ding, Chen et al., “Selective Java Applet Filtering on Internet”, IEEE, 1999, Retrieved at <<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=825217>>, 5 pages.
Faensen, D et al., “Hermes—A Notification Service for Digital Libraries”, Proceedings of the ACM/IEEE Joint Conference on Digital Libraries, (Jun. 24, 2001), 8 pages.
Huang, Yongqiang et al., “Publish/Subscribe in a Mobile Environment”, Proceedings of the Second ACM International Workshop on Data Engineering for Wireless and Mobile Access (May 20, 2001), 8 pages.
Miller, Gene et al., “News On-Demand for Multimedia Networks”, Proceedings of the First ACM International Conference on Multimedia, (Aug. 1, 1993),11 pages.
Wang, Yi-Min et al., “The SIMBA User Alert Service Architecture for Dependable Alert Delivery”, Proceedings of the International Conference on Dependable Systems and Networks, (Mar. 26, 2001), 11 pages.
“Notice of Allowance”, U.S. Appl. No. 11/347,448, (dated Jun. 25, 2013),10 pages.
Forte, Marcos et al., “A content classification and filtering server for the Internet”, (Apr. 2006), 6 pages.
Mazouni, Karim R., et al., “Filtering Duplicated Invocations Using Symmetric Proxies”, (1995), pp. 118-126.
Wu, Shyhtsun F., “Sleepy Security Management with Proxy-Based Filtering”, (Apr. 1, 1996), 8 pages.
“Examination Report”, New Zealand Application No. 525694, (dated May 13, 2003), 2 pages.
“Non-Final Office Action”, U.S. Appl. No. 11/347,448, (dated Dec. 20, 2012), 23 pages.
“Search Report”, Danish Application No. 200302729 9, (dated Mar. 15, 2004), 1 page.
“Foreign Office Action”, BR Application No. PI0302014-2, dated Dec. 3, 2015, 2 pages.
“Notice of Allowance”, U.S. Appl. No. 14/045,704, dated Jan. 8, 2016, 8 pages.
Datta,“Proxy-Based Acceleration of Dynamically Generated Content on the World Wide Web: An Approach and Implementation”, ACM—Retrieved at: http://delivery.acm.org/10.1145/570000/564703/p97-datta.pdf, Jun. 2002, 12 pages.
Haviland,“Designing High-Performance Campus Intranets with Multilayer Switching”, Cisco Systems White Paper—Retrieved at: http://ai3.itb.ac.id/˜basuki/private/ITFORUM/BACKBONE/NETWOR˜/HIGH-P˜1.PDF, 1998, 33 pages.
Menon,“Object Replacement using Dynamic Proxy Updates”, Retrieved at: http://ieeexplore.org/stamp.jsp?tp=&arnumber=289933, Mar. 1994, 10 pages.
“Final Office Action”, U.S. Appl. No. 14/045,704, dated Apr. 16, 2015, 26 pages.
“Foreign Office Action”, BR Application No. PI0302014-2, dated May 18, 2015, 11 pages.
Tannenbaum,“Modern Operating Systems”, 2nd Edition, Prentice Hall, 2001, 9 pages.
“Foreign Office Action”, EP Application No. 02719261.6, dated Jun. 24, 2016, 5 pages.
“Notice of Allowance”, U.S. Appl. No. 14/045,704, dated Apr. 1, 2016, 12 pages.
“Technology Primer: Secure Sockets Layer (SSL)”, Retrieved at: <http://bluecoat.com/documents/download/0485e335-7437-4c4e-bfc0-ca5ffc5bfd4d/16f27cf7-5d59-44b4-b17f-fb04acea369f>, 2001, 22 pages.
Cabri,“Supporting cooperative WWW browsing: a proxy-based approach”, <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=746657>, Feb. 1999, 8 pages.
Han,“Websplitter: A Unified XML Framework for Multi-Device Collaborative Web Browsing”, ACM Conference on Computer Supported Cooperative Work, 2000, 10 pages.
“Foreign Office Action”, IN Application No. 740/DEL/2003, dated Jan. 25, 2017, 7 pages.
“Non-Final Office Action”, U.S. Appl. No. 14/045,704, dated Nov. 21, 2014, 25 pages.
Nielsen,“Web Services Routing Protocol (WS-Routing)”, Oct. 23, 2001, 53 pages.
Related Publications (1)
Number Date Country
20040003112 A1 Jan 2004 US