1. Technical Field
The present invention relates generally to the field of Web-based applications, and more particularly to a method of and system for controlling access to private data used in web-based applications, such as mashups and software-as-a-service (SaaS) applications.
2. Description of the Related Art
A mashup is typically a web-based application that combines two or more sources of content and services into a single application. A mashup can be composed of public data, private data, and logic capabilities that either operate on the data or provide a specialized view into the data. The various components of the mashup are then wired together based on the needs of the mashup creator. Examples of mashups include those that combine one or more databases with mapping services to provide a geographical view of the location of items in the database. However, the types of applications that can be formed using mashups are limited only by the imagination of mashup creators.
With the growing popularity of mashups and other situational applications that combine Web services and/or content with private data, the issue of control over data used in the mashups needs to be addressed. As more and more data sources are made accessible, mashups will become more useful and more personal. The reason mashups will become more personal is that more personal, proprietary, and potentially confidential data sources can be leveraged to construct interesting and relevant situational applications.
Most mashups are web-based in that they use a browser as a universal client. Accordingly, mashups are hosted outside the user's personal domain. This architecture simplifies the process of sharing mashups and allows access to the mashups from any browser equipped device. Currently, this architecture requires the mashup creator to upload and store private data on the mashup server. However, relinquishing control over a copy of private data may cause several problems. For example, if data is changed in the mashup, then that data will need to be synchronized with the original source of the data. Additionally, moving data outside the user's direct control and having multiple copies of the data increases the possibility of exposure and loss of private or sensitive data.
The present invention provides a method of and system for providing content and services with a web-based application, such as a mashup hosted on a mashup server. The application according to the present invention includes Web-provided services and private data. The private data is contained in a data source. The application includes a place holder for the private data rather than a copy of the data itself. The place holder is tagged with the data type, format, and data elements required for the application.
The system of the present invention includes a personal syndication manager that is associated with an application user. The personal syndication manager is in communication with the server. The personal syndication manager is also in communication with data sources registered with the personal syndication manager by the user. The personal subscription manager is configured to convert the private data to a content syndication format required by the application. The personal subscription manager is also configured to terminate a subscription upon the occurrence of an event, such as the expiration a subscription period.
When a user wants to use an application hosted on the server, the user requests the application from the server. The server determines if the requested application requires private data. If not, the server provides the mashup to the requesting user. If the application does require private data, the server determines if the requesting user is associated with a personal syndication manager and the data source of the private data is registered with the personal syndication manager. If not, the server prompts the requesting to install a personal syndication manager and/or register the data source with the personal syndication manager. If the data source is registered with a personal syndication manager associated with the requesting user, the server subscribes to the data source, through the personal syndication manager, and provides the application to the requesting user. Upon the occurrence of an event, such as the expiration a subscription period, the personal subscription manager terminates the server's subscription to the data source.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
Referring now to the drawings, and first
Mashup creator computer 107 and user computer 109 may be personal computers, notebook computers, personal digital assistants, or any other computing devices. Mashup creator computer includes a Web browser 108 that enables a mashup creator to access mashup maker 103. User computer 109 includes a web browser 111 that allows it to access mashups from mashup server 101 as well as other Web content. User computer 109 also includes a personal syndication manager 113. The operation of personal syndication manager (PSM) 113 will be discussed in detail hereinafter. Generally, PSM 113 provides data from a private data source 115 to mashup server 101.
After converting the data to the content syndication format required by the mashup, at block 503, the PSM generates a temporary end point for the subscription, as indicated at block 505, according to a predetermined policy. The temporary end point may be a time at which the subscription will expire. The temporary end point may also be based on geography or some other criteria. After generating the temporary end point, at block 505, the PSM provides the data to the mashup server, as indicated at block 507. When the temporary end point generated at block 505 is reached, the PSM terminates the subscription, as indicated at block 509. The PSM may perform auditing, logging, and management controls on registered data sources, as indicated at block 511.
Referring now to
Peripheral devices and input/output (I/O) devices can be attached to various interfaces or ports coupled to ISA bus 617. Such interfaces or ports may include a parallel port 623, a serial port 625, an infrared (IR) interface 627, a keyboard interface 629, a mouse interface 631, and a hard disk drive (HDD) 633.
A BIOS 635 is coupled to ISA bus 617. BIOS 635 incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions. BIOS 635 can be stored in any computer readable medium, including magnetic storage media, optical storage media, flash memory, random access memory, read only memory, and communications media conveying signals encoding the instructions (e.g., signals from a network). In order to couple computer system 600 to another computer system to copy files or send and receive messages over a network, LAN card 613 may be coupled to PCI bus 611. Similarly, a Fibre Channel card may be coupled to PCI bus 613. Additionally, a modem 639 may be coupled to ISA bus 617 through serial port 625 to support dial-up connections.
While the computer system described in
One of the preferred implementations of the invention is an application, namely, a set of instructions (program code) in a code module that may, for example, be in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
From the foregoing, it will be apparent to those skilled in the art that systems and methods according to the present invention are well adapted to overcome the shortcomings of the prior art. While the present invention has been described with reference to presently preferred embodiments, those skilled in the art, given the benefit of the foregoing description, will recognize alternative embodiments. Although invention has been illustrated and described in detail with respect to mashups, those skilled in the art will appreciate that embodiments of the present invention are applicable to other web-based applications. Accordingly, the foregoing description is intended for purposes of illustration and not of limitation.