FreshPatents.com Logo
stats FreshPatents Stats
n/a views for this patent on FreshPatents.com
Updated: October 26 2014
newTOP 200 Companies filing patents this week


    Free Services  

  • MONITOR KEYWORDS
  • Enter keywords & we'll notify you when a new patent matches your request (weekly update).

  • ORGANIZER
  • Save & organize patents so you can view them later.

  • RSS rss
  • Create custom RSS feeds. Track keywords without receiving email.

  • ARCHIVE
  • View the last few months of your Keyword emails.

  • COMPANY DIRECTORY
  • Patents sorted by company.

Follow us on Twitter
twitter icon@FreshPatents

Method and system for customizing a user interface to an on-demand database service

last patentdownload pdfdownload imgimage previewnext patent


20120317495 patent thumbnailZoom

Method and system for customizing a user interface to an on-demand database service


In embodiments, methods and systems for customizing a user interface to an on-demand database service. These mechanisms and methods for customizing a user interface to an on-demand database service can enable embodiments to provide a user interface designed by a tenant of the on-demand database service. The customization can include including third party content into the customized user interface, overriding a standard object, and providing content inline at a specified location.

Browse recent Salesforce.com, Inc. patents - San Francisco, CA, US
Inventors: Alan Ballard, Doug Chasman, Eric Bezar, Mary Scotton
USPTO Applicaton #: #20120317495 - Class: 715744 (USPTO) - 12/13/12 - Class 715 
Data Processing: Presentation Processing Of Document, Operator Interface Processing, And Screen Saver Display Processing > Operator Interface (e.g., Graphical User Interface) >For Plural Users Or Sites (e.g., Network) >Interface Customization Or Adaption (e.g., Client Server)

view organizer monitor keywords


The Patent Description & Claims data below is from USPTO Patent Application 20120317495, Method and system for customizing a user interface to an on-demand database service.

last patentpdficondownload pdfimage previewnext patent

CLAIM OF PRIORITY

This application claims the benefit of U.S. Provisional Application Ser. No. 60/828,005 entitled “METHOD AND SYSTEM FOR CUSTOMIZING A USER INTERFACE TO AN ON-DEMAND DATABASE SERVICE,” by Allan Ballard et al., filed Oct. 3, 2006 (Attorney Docket No. 021735-003500US), the entire contents of which are incorporated herein by reference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

FIELD OF THE INVENTION

The current invention relates generally to customizing a user interface, and more particularly to customizing a user interface to an on-demand database service.

BACKGROUND

The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.

In conventional database systems, users access their data resources in one logical database. A user of such a conventional system typically retrieves data from and stores data on the system using the user\'s own systems. A user system might remotely access one of a plurality of server systems that might in turn access the database system. Data retrieval from the system might include the issuance of a query from the user system to the database system. The database system might process the request for information received in the query and send to the user system information relevant to the request.

Changes to the interface with such a conventional interface are typically made by the information systems (IS) department, which maintains the database. However, in an on-demand database service that is hosted by another entity and/or that has multiple tenants, such a model of implementing customized changes does not provide the ease of use and flexibility demanded by today\'s customers.

Accordingly, it is desirable to provide techniques enabling flexible customization of the user interface to improve the ease of use of the on-demand database service.

BRIEF

SUMMARY

OF INVENTION

In accordance with embodiments, there are provided mechanisms and methods for customizing a user interface to an on-demand database service. These mechanisms and methods for customizing a user interface to an on-demand database service can enable embodiments to provide a user interface designed by a tenant of the on-demand database service. The customization can include including 3rd party content into the customized user interface, overriding a standard object, and providing content inline at a specified location. The ability of embodiments to provide customized user interfaces can enable a business (tenant) the freedom to have its employees access data from the on-demand database service in a convenient, robust, and efficient manner suited for the needs of that particular business.

In an embodiment and by way of example, a method for customizing a user interface to an on-demand database service that is subscribed to by a plurality tenants is provided. Each tenant has one or more users. One or more definitions of a customization of a user interface are received from a first of a plurality of tenants. At least one of the definitions includes a reference to content not stored in the on-demand database. The definitions are associated with information that is specific to the first tenant and that is stored in the on-demand database. A request for at least a portion of the information is received from a user of the first tenant. A user interface modified according to the definitions is sent to the user such that a customized user interface that includes a combination of the referenced content and the requested information is displayed to the user. In one embodiment, the referenced content is retrieved and combined with the tenant-specific information to form the modified user interface.

In another embodiment and by way of example, a method includes receiving, from a first of a plurality of tenants, one or more definitions of a customization of a user interface; and associating the definitions with information that is specific to the first tenant and that is stored in the on-demand database. At least one of the definitions defines an action on data in the on-demand database service. The at least one definition defining an action on data in the on-demand database service is bound to a pre-defined object that is standard to the user interface and that is displayed as part of the user interface when at least a portion of the information is displayed. The binding overrides a previous functionality of the pre-defined object. A request for at least a portion of the information is received from a user. A user interface modified according to the definitions is sent to the user. An activation of the pre-defined object is received. The defined action is then performed on the data. In one embodiment, the action is a query on the data in the on-demand database service.

In another embodiment and by way of example, a method includes receiving, from a first of a plurality of tenants, one or more definitions of a customization of a user interface. At least one of the definitions includes a reference to content. The definitions are associated with information that is specific to the first tenant and that is stored in the on-demand database. An indication of a location where the referenced content is to appear on a particular page of the user interface is received. A request for at least a portion of the information is received from the user. A user interface modified according to the definitions is sent to the user such that a customized user interface that includes a combination of the referenced content and the requested information is displayed to the user. The referenced content is displayed at the indicated location. In one embodiment, the indication of the location is received from a pointing device.

Other embodiments of the invention are directed to systems and computer readable media associated with methods described herein, as well as methods for transmitting program code for creating the computer readable medium and/or cause one or more processors to perform methods described herein.

According to one aspect of the present invention, a method is provided for customizing a user interface to an on-demand database service. The method typically includes receiving at least one definition of a user interface customization embodied as an Scontrol, associating the at least one definition with user specific information in the on-demand database service, and presenting a user interface modified according to the at least one definition when a user having access to the user interface customization accesses the user interface.

Reference to the remaining portions of the specification, including the drawings and claims, will realize other features and advantages of the present invention. Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.

BRIEF DESCRIPTION OF THE DRAWINGS

In the following drawings, like reference numbers indicate identical or functionally similar elements. Although the following figures depict various examples of the invention, the invention is not limited to the examples depicted in the figures.

FIG. 1 illustrates a block diagram of an environment wherein an on-demand database service might be used.

FIG. 2 illustrates a block diagram of an embodiment of elements of FIG. 1 and various possible interconnections between these elements.

FIG. 3 is a flowchart of a method for customizing a user interface to an on-demand database service in an embodiment.

FIG. 4 is a block diagram illustrating the operation of the on-demand database service when customizing a user interface in an embodiment.

FIG. 5 shows a window for defining an Scontrol in an embodiment.

FIG. 6 illustrates examples of how an Scontrol may be applied to customize a user interface in an embodiment.

FIG. 7 is a flow diagram illustrating a method for overriding a functionality of a standard button to provide a customized user interface for an on-demand database service in an embodiment.

FIG. 8 is a flow diagram of a method for providing an inline customization of a user interface for an on-demand database service in an embodiment.

FIG. 9 is a block diagram illustrating the operation of the on-demand database service when customizing a user interface to combine external content in an embodiment.

FIG. 10 is a block diagram 1000 illustrating the interaction of an on-demand database service with a user system that creates a customized user interface in an embodiment.

FIG. 11 shows a user interface for tracking Scontrols in an embodiment.

DETAILED DESCRIPTION

OF THE INVENTION General Overview

Systems and methods are provided for controlling access to custom objects in a database system. These techniques for customizing a user interface allow each tenant of an on-demand database service according to their own needs.

As used herein, the term multi-tenant database system refers to those systems in which various elements of hardware and software of the database system may be shared by one or more customers. For example, a given application server may simultaneously process requests for a great number of customers, and a given database table may store rows for a potentially much greater number of customers. As used herein, the term query plan refers to a set of steps used to access information in a database system.

Next, mechanisms and methods for providing controlling access to custom objects in a database system will be described with reference to example embodiments.

System Overview

FIG. 1 illustrates a block diagram of an environment 10 wherein an on-demand database service might be used. Environment 10 may include user systems 12, network 14, system 16, processor system 17, application platform 18, network interface 20, tenant data storage 22, system data storage 24, program code 26, and process space 28. In other embodiments, environment 10 may not have all of the components listed and/or may have other elements instead of, or in addition to, those listed above.

Environment 10 is an environment in which an on-demand database service exists. User system 12 may be any machine or system that is used by a user to access a database user system. For example, any of user systems 12 can be a handheld computing device, a mobile phone, a laptop computer, a work station, and/or a network of computing devices. As illustrated in FIG. 1 (and in more detail in FIG. 2) user systems 12 might interact via a network 14 with an on-demand database service, which is system 16.

An on-demand database service, such as system 16, is a database system that is made available to outside users that do not need to necessarily be concerned with building and/or maintaining the database system, but instead may be available for their use when the users need the database system (e.g., on the demand of the users). Some on-demand database services may store information from one or more tenants stored into tables of a common database image to form a multi-tenant database system (MTS). Accordingly, “on-demand database service 16” and “system 16” will be used interchangeably herein. A database image may include one or more database objects. A relational database management system (RDMS) or the equivalent may execute storage and retrieval of information against the database object(s). Application platform 18 may be a framework that allows the applications of system 16 to run, such as the hardware and/or software, e.g., the operating system. In an embodiment, on-demand database service 16 may include an application platform 18 that enables creation, managing and executing one or more applications developed by the provider of the on-demand database service, users accessing the on-demand database service via user systems 12, or third party application developers accessing the on-demand database service via user systems 12.

The users of user systems 12 may differ in their respective capacities, and the capacity of a particular user system 12 might be entirely determined by permissions (permission levels) for the current user. For example, where a salesperson is using a particular user system 12 to interact with system 16, that user system has the capacities allotted to that salesperson. However, while an administrator is using that user system to interact with system 16, that user system has the capacities allotted to that administrator. In systems with a hierarchical role model, users at one permission level may have access to applications, data, and database information accessible by a lower permission level user, but may not have access to certain applications, database information, and data accessible by a user at a higher permission level. Thus, different users will have different capabilities with regard to accessing and modifying application and database information, depending on a user\'s security or permission level.

Network 14 is any network or combination of networks of devices that communicate with one another. For example, network 14 can be any one or any combination of a LAN (local area network), WAN (wide area network), telephone network, wireless network, point-to-point network, star network, token ring network, hub network, or other appropriate configuration. As the most common type of computer network in current use is a TCP/IP (Transfer Control Protocol and Internet Protocol) network, such as the global internetwork of networks often referred to as the “Internet” with a capital “I,” that network will be used in many of the examples herein. However, it should be understood that the networks that the present invention might use are not so limited, although TCP/IP is a frequently implemented protocol.

User systems 12 might communicate with system 16 using TCP/IP and, at a higher network level, use other common Internet protocols to communicate, such as HTTP, FTP, AFS, WAP, etc. In an example where HTTP is used, user system 12 might include an HTTP client commonly referred to as a “browser” for sending and receiving HTTP messages to and from an HTTP server at system 16. Such an HTTP server might be implemented as the sole network interface between system 16 and network 14, but other techniques might be used as well or instead. In some implementations, the interface between system 16 and network 14 includes load sharing functionality, such as round-robin HTTP request distributors to balance loads and distribute incoming HTTP requests evenly over a plurality of servers. At least as for the users that are accessing that server, each of the plurality of servers has access to the MTS\' data; however, other alternative configurations may be used instead.

In one embodiment, system 16, shown in FIG. 1, implements a web-based customer relationship management (CRM) system. For example, in one embodiment, system 16 includes application servers configured to implement and execute CRM software applications as well as provide related data, code, forms, web pages and other information to and from user systems 12 and to store to, and retrieve from, a database system related data, objects, and Webpage content. With a multi-tenant system, data for multiple tenants may be stored in the same physical database object, however, tenant data typically is arranged so that data of one tenant is kept logically separate from that of other tenants so that one tenant does not have access to another tenant\'s data, unless such data is expressly shared. In certain embodiments, system 16 implements applications other than, or in addition to, a CRM application. For example, system 16 may provide tenant access to multiple hosted (standard and custom) applications, including a CRM application. User (or third party developer) applications, which may or may not include CRM, may be supported by the application platform 18, which manages creation, storage of the applications into one or more database objects and executing of the applications in a virtual machine in the process space of the system 16.

One arrangement for elements of system 16 is shown in FIG. 1, including a network interface 20, application platform 18, tenant data storage 22 for tenant data 23, system data storage 24 for system data 25 accessible to system 16 and possibly multiple tenants, program code 26 for implementing various functions of system 16, and a process space 28 for executing MTS system processes and tenant-specific processes, such as running applications as part of an application hosting service. Additional processes that may execute on system 16 include database indexing processes.

Several elements in the system shown in FIG. 1 include conventional, well-known elements that are explained only briefly here. For example, each user system 12 could include a desktop personal computer, workstation, laptop, PDA, cell phone, or any wireless access protocol (WAP) enabled device or any other computing device capable of interfacing directly or indirectly to the Internet or other network connection. User system 12 typically runs an HTTP client, e.g., a browsing program, such as Microsoft\'s Internet Explorer browser, Netscape\'s Navigator browser, Opera\'s browser, or a WAP-enabled browser in the case of a cell phone, PDA or other wireless device, or the like, allowing a user (e.g., subscriber of the multi-tenant database system) of user system 12 to access, process and view information, pages and applications available to it from system 16 over network 14. Each user system 12 also typically includes one or more user interface devices, such as a keyboard, a mouse, trackball, touch pad, touch screen, pen or the like, for interacting with a graphical user interface (GUI) provided by the browser on a display (e.g., a monitor screen, LCD display, etc.) in conjunction with pages, forms, applications and other information provided by system 16 or other systems or servers. For example, the user interface device can be used to access data and applications hosted by system 16, and to perform searches on stored data, and otherwise allow a user to interact with various GUI pages that may be presented to a user. As discussed above, embodiments are suitable for use with the Internet, which refers to a specific global internetwork of networks. However, it should be understood that other networks can be used instead of the Internet, such as an intranet, an extranet, a virtual private network (VPN), a non-TCP/IP based network, any LAN or WAN or the like.

According to one embodiment, each user system 12 and all of its components are operator configurable using applications, such as a browser, including computer code run using a central processing unit such as an Intel Pentium® processor or the like. Similarly, system 16 (and additional instances of an MTS, where more than one is present) and all of their components might be operator configurable using application(s) including computer code to run using a central processing unit such as processor system 17, which may include an Intel Pentium® processor or the like, and/or multiple processor units. A computer program product embodiment includes a machine-readable storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the embodiments described herein. Computer code for operating and configuring system 16 to intercommunicate and to process web pages, applications and other data and media content as described herein are preferably downloaded and stored on a hard disk, but the entire program code, or portions thereof, may also be stored in any other volatile or non-volatile memory medium or device as is well known, such as a ROM or RAM, or provided on any media capable of storing program code, such as any type of rotating media including floppy disks, optical discs, digital versatile disk (DVD), compact disk (CD), microdrive, and magneto-optical disks, and magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data. Additionally, the entire program code, or portions thereof, may be transmitted and downloaded from a software source over a transmission medium, e.g., over the Internet, or from another server, as is well known, or transmitted over any other conventional network connection as is well known (e.g., extranet, VPN, LAN, etc.) using any communication medium and protocols (e.g., TCP/IP, HTTP, HTTPS, Ethernet, etc.) as are well known. It will also be appreciated that computer code for implementing embodiments of the present invention can be implemented in any programming language that can be executed on a client system and/or server or server system such as, for example, C, C++, HTML, any other markup language, Java™, JavaScript, ActiveX, any other scripting language, such as VBScript, and many other programming languages as are well known may be used. (Java™ is a trademark of Sun Microsystems, Inc.).

According to one embodiment, each system 16 is configured to provide web pages, forms, applications, data and media content to user (client) systems 12 to support the access by user systems 12 as tenants of system 16. As such, system 16 provides security mechanisms to keep each tenant\'s data separate unless the data is shared. If more than one MTS is used, they may be located in close proximity to one another (e.g., in a server farm located in a single building or campus), or they may be distributed at locations remote from one another (e.g., one or more servers located in city A and one or more servers located in city B). As used herein, each MTS could include one or more logically and/or physically connected servers distributed locally or across one or more geographic locations. Additionally, the term “server” is meant to include a computer system, including processing hardware and process space(s), and an associated storage system and database application (e.g., OODBMS or RDBMS) as is well known in the art. It should also be understood that “server system” and “server” are often used interchangeably herein. Similarly, the database object described herein can be implemented as single databases, a distributed database, a collection of distributed databases, a database with redundant online or offline backups or other redundancies, etc., and might include a distributed database or storage network and associated processing intelligence.

FIG. 2 also illustrates environment 10. However, in FIG. 2 elements of system 16 and various interconnections in an embodiment are further illustrated. FIG. 2 shows that user system 12 may include processor system 12A, memory system 12B, input system 12C, and output system 12D. FIG. 2 shows network 14 and system 16. FIG. 2 also shows that system 16 may include tenant data storage 22, tenant data 23, system data storage 24, system data 25, User Interface (UI) 30, Application Program Interface (API) 32, PL/SOQL 34, save routines 36, application setup mechanism 38, applications servers 1001-100N, system process space 102, tenant process spaces 104, tenant management process space 110, tenant storage area 112, user storage 114, and application metadata 116. In other embodiments, environment 10 may not have the same elements as those listed above and/or may have other elements instead of, or in addition to, those listed above.



Download full PDF for full patent description/claims.

Advertise on FreshPatents.com - Rates & Info


You can also Monitor Keywords and Search for tracking patents relating to this Method and system for customizing a user interface to an on-demand database service patent application.
###
monitor keywords



Keyword Monitor How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Method and system for customizing a user interface to an on-demand database service or other areas of interest.
###


Previous Patent Application:
User interface (ui) control for attestation process
Next Patent Application:
Website object-request method and system
Industry Class:
Data processing: presentation processing of document
Thank you for viewing the Method and system for customizing a user interface to an on-demand database service patent info.
- - - Apple patents, Boeing patents, Google patents, IBM patents, Jabil patents, Coca Cola patents, Motorola patents

Results in 0.72265 seconds


Other interesting Freshpatents.com categories:
Computers:  Graphics I/O Processors Dyn. Storage Static Storage Printers

###

Data source: patent applications published in the public domain by the United States Patent and Trademark Office (USPTO). Information published here is for research/educational purposes only. FreshPatents is not affiliated with the USPTO, assignee companies, inventors, law firms or other assignees. Patent applications, documents and images may contain trademarks of the respective companies/authors. FreshPatents is not responsible for the accuracy, validity or otherwise contents of these public document patent application filings. When possible a complete PDF is provided, however, in some cases the presented document/images is an abstract or sampling of the full patent application for display purposes. FreshPatents.com Terms/Support
-g2-0.1747
     SHARE
  
           


stats Patent Info
Application #
US 20120317495 A1
Publish Date
12/13/2012
Document #
13590067
File Date
08/20/2012
USPTO Class
715744
Other USPTO Classes
International Class
06F3/01
Drawings
12



Follow us on Twitter
twitter icon@FreshPatents