The following U.S. patent applications are incorporated by reference herein in their entirety:
U.S. patent application Ser. No. 09/793,355, entitled QUERY STRING PROCESSING, by Crosbie, et al., filed Feb. 26, 2001;
U.S. patent application Ser. No. 09/998,908, entitled SUPPORT FOR MULTIPLE DATA STORES, by Lee, et al., filed Nov. 30, 2001; and
U.S. patent application Ser. No. 10/682,252, entitled TRANSLATING DATA ACCESS REQUESTS, by Ghatare, filed Oct. 9, 2003.
1. Field of the Invention
The present invention is directed to technology for managing attributes.
2. Description of the Related Art
With the growth of the Internet, the use of networks and other information technologies, Identity Systems have become more popular. In general, an Identity System provides for the creation, removal, editing and other managing of identity information stored in various types of data stores. The identity information pertains to users, groups, organizations and/or things.For each entry in the data store, a set of attributes are stored. For example, the attributes stored for a user may include name, address, employee number, telephone number, email address, user identity (ID) and password.
The Identity System can also manage access privileges that govern what an entity can view, create, modify or use in the Identity System. Often, this management of access privileges is based on one or more specific attributes, membership in a group and/or association with an organization. Some users of Identity Systems also use Access Systems. An Access System provides for the authentication and authorization of users attempting to access resources. For efficiency purposes, there is an advantage to integrating the Identity System and the Access System. For example, both systems can share the same set of data stores.
As markets expand and globalization increases, identity and access management increasingly faces the attendant requirements of such globally diverse environments. Particularly, management must address different language requirements of users accessing the systems. In some systems, the requirements are addressed through the installation of multiple server configurations to handle individual languages. A first server in an Identity Management System may be installed for a first language and a second server installed for a second language. Additionally, multiple data stores may be provided to store configuration and identity data in the different languages. These solutions are costly, present detailed and complex administrative management requirements, and are only scalable by the installation of additional servers.
Accordingly, there is a need to provide multi-language support for diverse environments while addressing the shortcomings of the prior art.
Systems and methods in accordance with embodiments are provided for multi-language support through the management of multi-valued attributes. A data store maintains multi-valued attributes having language components and value components. The value components specify language specific values for the attributes and can be associated with corresponding language components. A server in communication with the data store can provide outputs to requesting users in accordance with a preferred language. For example, a request to access an identity profile maintained by an Identity System can be fulfilled by constructing a page or other output including the requested profile data. An Identity Server can construct the output to include attribute values corresponding to the preferred language associated with the request. Attribute configuration data can similarly be maintained with language components and value components. The configuration of an attribute such as its display name can be included in an output in accordance with a preferred language.
In accordance with one embodiment, a method is provided that comprises maintaining at least one multi-valued attribute at a data store. The multi-valued attribute can include a plurality of language components and value components. Each of the value components can specify a value for the attribute that is associated with a corresponding language component. The method can further comprise receiving a request associated with the attribute at a server. The request can be associated with a preferred language. A multi-valued attribute is accessed and an output generated in response to the request that includes at least one first value for the attribute that corresponds to the preferred language.
In one embodiment, the method further comprises determining the preferred language associated with the request from at least one of a Uniform Resource Locator (URL) associated with the request, a hypertext transfer protocol (HTTP) header variable associated with the request, an identity profile associated with the request, and a cookie associated with the request.
In one embodiment, a method is provided that comprises receiving a request associated with at least one multi-valued attribute. The request is associated with a preferred language. The method further comprises accessing the multi-valued attribute, which includes a plurality of language components and value components. Each of the value components specifies a value for the at least one multi-valued attribute that is associated with a corresponding language component. The method further comprises generating a response to the request, wherein the response includes at least one first value for the at least one multi-valued attribute that corresponds to the preferred language.
In one embodiment, a method is provided that includes providing at least one multi-valued attribute at a data store. The multi-valued attribute includes a plurality of language components and value components and each of the value components specifies a value for the attribute that is associated with a corresponding language component. The method further comprises generating a response to a request associated with the at least one multi-valued attribute, wherein the request is associated with a preferred language and the response includes at least one first value for the multi-valued attribute that corresponds to the preferred language.
In one embodiment, a system for managing attribute information is provided that comprises a data store that includes at least one multi-valued attribute having a plurality of language components and value components, wherein each of the value components specifies a value for the at least one multi-valued attribute that is associated with a corresponding language component. The system further comprises at least one server in communication with the data store. The at least one server accesses the multi-valued attribute to generate a response to a request associated with the at least one multi-valued attribute. The request is associated with a preferred language and the response includes at least one first value for the multi-valued attribute that corresponds to the preferred language.
Systems in accordance with embodiments can be implemented as part of Identity Systems, Access Systems, or integrated Identity and Access Systems. However, embodiments are not limited to Identity, Access, or integrated Identity and Access Systems and can be implemented as part of many other types of systems.
The present invention can be accomplished using hardware, software, or a combination of both hardware and software. The software used for the present invention is stored on one or more processor readable storage devices including hard disk drives, data compact discs (CD-ROMs), digital video disc (DVDs), optical disks, floppy disks, tape drives, random access memory (RAM), read only memory (ROM), flash memory or other suitable storage devices. In alternative embodiments, some or all of the software can be replaced by dedicated hardware including custom integrated circuits, gate arrays, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), and special purpose processors. In one embodiment, software implementing the present invention is used to program one or more processors. The one or more processors can be in communication with one or more storage devices, peripherals and/or communication interfaces.
These and other objects and advantages of the present invention will appear more clearly from the following description in which the preferred embodiment of the invention has been set forth in conjunction with the drawings.
I. Access Management System
The present invention can be used with an Identity System, an Access System, or an integrated Identity and Access System (“an Access Management System”). The present invention can also be used with other systems.
Web Server 18 is a standard Web Server known in the art and provides an end user with access to various resources via network 16. One embodiment includes two firewalls. A first firewall (see dotted lines) is connected between network 16 and Web Server 18. A second firewall (see dotted lines) is connected between Web Servers 18 and 20 and Access Server 34/Identity Server 40.
The Access System includes Access Server 34, Web Gate 28, and Directory 36. Access Server 34 provides authentication, authorization, auditing and logging services. It further provides for identity profiles to be used across multiple domains and for access based on a single web-based authentication (sign-on). Web Gate 28 acts as an interface between Web Server 18 and Access Server 34. Web Gate 28 intercepts requests from users for resources 22 and 24, and authorizes them via Access Server 34. Access Server 34 is able to provide centralized authentication, authorization, and auditing services for resources hosted on or available to Web Server 18 and other Web Servers.
The Identity System includes Web Pass 38, Identity Server 40 and Directory 36. Identity Server 40 manages identity profiles. An identity profile is a set of information associated with a particular entity (e.g., user, group, organization, thing, etc.). The data elements of the identity profile are called attributes. An attribute can be a characteristic, quality or element of information about something. In one embodiment, an attribute may include a name, a value and access criteria. Other embodiments may include more or less information. The Identity Server includes three main applications, which effectively handle the identity profiles and privileges of the user population: User Manager 42, Group Manager 44, and Organization Manager (also called Object Manager) 46. User Manager 42 manages the identity profiles for individual users. Group Manager 44 manages identity profiles for groups. Organization Manager 46 manages identity profiles for organizations and/or can manage any object. Identity Server 40 also includes Publisher 48, an application that enables entities to quickly locate and graphically view information stored by Directory 36. In one embodiment, Web Pass 38 is a Web Server plug-in that sends information back and forth between Identity Server 40 and the Web Server 20, creating a three-tier architecture. The Identity System also provides a Certificate Processing Server (not shown in
User Manager 42 handles the functions related to user identities and access privileges, including creation and deletion of user identity profiles, modification of user identity profile data, determination of access privileges, and credentials management of both passwords and digital certificates. With User Manager 42, the create, delete, and modify functions of user identity management can be set as flexible, multi-step workflows. Each business can customize its own approval, setup, and management processes and have multiple processes for different kinds of users.
Group Manager 44 allows entities to create, delete and manage groups of users who need identical access privileges to a specific resource or set of resources. Managing and controlling privileges for a group of related people—rather than handling their needs individually—yield valuable economies of scale. Group Manager 44 meets a wide range of e-business needs: easy creation, maintenance, and deletion of permanent and ad hoc groups of users who may be allowed or denied access to particular resources; modification and adaptation of groups and their access privileges with minimal disruption to the directory server's underlying schema; efficient addition and deletion of users from established groups; and delegation of administrative responsibility for group membership and subscription requests and approvals.
With Group Manager 44, companies (or other entities) can allow individual users to do the following: (1) self-subscribe to and unsubscribe from groups, (2) view the groups that they are eligible to join or have joined, and (3) request subscription to groups that have access to the applications they need. Multi-step workflows can then define which users must obtain approval before being added to a group and which can be added instantly. Group Manager 44 also lets organizations form dynamic groups specified by an Lightwieght Directory Access Protocol (LDAP) filter. The ability to create and use dynamic groups is extremely valuable because it eliminates the administrative headache of continually keeping individual, static membership up-to-date. With dynamic group management features, users can be automatically added or removed if they meet the criteria specified by the LDAP filter. Dynamic groups also greatly enhance security since changes in user identities that disqualify someone from membership in a group are automatically reflected in the dynamic group membership.
The third application in the Identity System, Organization Manager 46, streamlines the management of large numbers of organizations and/or other objects within an e-business network, including partners, suppliers, or even major internal organizations such as sales offices and business units. Certain infrastructure security and management operations are best handled at the highest organizational unit level rather than at the individual or group level. Like User Manager and Group Manager, this application relies on multi-step workflow and delegation capabilities. Organization Manager handles the following administrative tasks: (1) organization lifecycle management, whereby companies can create, register, and delete organizations in their systems using customizable workflows; (2) maintenance of organization profiles on an attribute-by-attribute basis through self-service, delegated administration and system-initiated activities; (3) organization self-registration, whereby organizations such as business partners, customers and suppliers can self-generate a request to be added to the e-business network; and (4) creation of reusable rules and processes through multi-step workflows.
The various components of
A computing system that can be used for various components of embodiments as depicted in
A computing system implementing an embodiment can further include a mass storage device, a peripheral device(s), a user input device(s), a portable storage medium drive(s), a graphics subsystem and an output display. The components may be connected through one or more buses or data transport means. For example, the processor unit and main memory may be connected via a local microprocessor bus, and the mass storage device, peripheral device(s), portable storage medium drive(s), and graphics subsystem may be connected via one or more input/output (I/O) buses. A mass storage device, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by the processor unit. In one embodiment, a mass storage device stores the system software for implementing embodiments for purposes of loading to main memory.
The portable storage medium drive operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, to input and output data and code to and from the computer system. In one embodiment, the system software for implementing one embodiment is stored on such a portable medium, and is input to the computer system via the portable storage medium drive. A peripheral device(s) may include any type of computer support device, such as an input/output (I/O) interface, to add additional functionality to the computer system. For example, a peripheral device(s) may include a network interface for connecting the computer system to a network, a modem, a router, etc.
A user input device(s) provides a portion of a user interface. A user input device(s) may include an alpha-numeric keypad for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. In order to display textual and graphical information, the computer system of can include a graphics subsystem and output display. The output display may include a cathode ray tube (CRT) display, liquid crystal display (LCD) or other suitable display device. A graphics subsystem receives textual and graphical information, and processes the information for output to the display. Additionally, the system can include output devices such as speakers, printers, network interfaces, monitors, etc.
The components contained in a computer system in accordance with one embodiment are those typically found in computer systems and are intended to include a broad category of such computer components that are well known in the art. Thus, the computer system can be a personal computer, workstation, server, minicomputer, mainframe computer, or any other computing device. The computer can also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems can be used including Unix, Linux, Windows, Macintosh operating system (OS), Palm OS, and other suitable operating systems.
The system of
To understand how the system of
With the system of
Authentication and Authorization decisions are based on policy domains and policies. A policy domain is a logical grouping of Web Server host ID's, host names, URL prefixes, and rules. Host names and URL prefixes specify the course-grain portion of the web name space a given policy domain protects. Rules specify the conditions in which access to requested resources is allowed or denied, and to which end users these conditions apply. Policy domains contain two levels of rules: first level default rules and second level rules contained in policies. First level default rules apply to any resource in a policy domain not associated with a policy.
A policy is a grouping of a URL pattern, resource type, operation type (such as a request method), and policy rules. These policy rules are the second level rules described above. Policies are always attached to a policy domain and specify the fine-grain portion of a web name space that a policy protects. In practice, the host names and URL prefixes from the policy's policy domain are logically concatenated with the policy's URL pattern. The resulting overall pattern is compared to the incoming URL. If there is a match, then the policy's various rules are evaluated to determine whether the request should be allowed or denied; if there is not a match, then default policy domain rules are used.
If the user successfully authenticates for the requested resource (step 62), then the method proceeds to step 74. Otherwise, the unsuccessful authentication is logged in step 64. After step 64, the system then performs authentication failure actions and Web Gate 28 denies the user access to the requested resource in step 66. In step 74, the successful authentication of the user for the resource is logged. The method then performs authentication success actions in step 76. In response to the successful authentication, Web Gate 28 then passes a valid authentication cookie to browser 12 (step 80), which stores the cookie. After passing the cookie in step 80, the system attempts to authorize in step 56.
In step 56, the method determines whether the user is authorized to access the requested resource. If the user is authorized (step 90), the method proceeds to step 92. Otherwise, the unsuccessful authorization is logged in step 96. After step 96, the method performs authorization failure actions (step 98) and Web Gate 28 denies the user access to the requested resource. If authorization is successful (step 90), then the successful authorization of the user is logged in step 92. Authorization success actions are performed in step 94. The user is granted access to the requested resource in step 95. In one embodiment of step 95, some or all of HTTP request information is provided to the resource. In one or more scenarios, the resource being accessed is the Identity System. Other scenarios include accessing other resources.
More information about authorization, authentication, an Access System and an Identity System can be found in U.S. patent application Ser. No. 09/998,908, “Support for Multiple Data Stores,” filed on Nov. 30, 2001, which is incorporated herein by reference in its entirety.
Both the Identity System and the Access System make use of Directory 36.
An entry in the directory may have a set of attributes that are required and a set of attributes that are allowed. For example, an entry describing a person may be required to have a CN (common name) attribute and a SN (surname) attribute. One example of an allowed attribute may be a nickname. In one embodiment, any attribute not explicitly required or allowed is prohibited.
Examples of attributes stored in a user identity profile include: first name, middle name, last name, title, email address, telephone number, fax number, mobile telephone number, pager number, pager email address, identification of work facility, building number, floor number, mailing address, room number, mail stop, manager, direct reports, administrator, organization that the user works for, region, department number, department URL, skills, projects currently working on, past projects, home telephone, home address, birthday, previous employers and anything else desired to be stored by an administrator. Examples of attributes stored in a group identity profile include: owner, name, description, static members, dynamic member rule, subscription policies, etc. Examples of attributes stored in a user organization identity profile include: owner, name, description, business category, address, country, etc. In other embodiments, less or more than the above-listed information is stored.
In one embodiment, each identity profile is based on a logical object class definition. Each logical object class may include single and multi-valued attributes. The attributes can be mandatory or optional. Each attribute can also have a data type and a semantic type. A semantic type is a behavior associated with an attribute. For example, the semantic type of a telephone number is to dial the telephone number.
Configuration data 104 is system and attribute configuration data. Configuration data can include attribute configuration information for the system such as: cardinality—identifying whether one or multiple values are associated with the attribute; display name—identifying a name to be displayed on a graphical user interface to describe the attribute; display type—identifying a display format for the attribute's display name; searchable—indicating whether a user can perform a search, based on the associated attribute; version—identifying the version of the Identity System software; visible—indicating whether the attribute can be viewed; and semantic type—identifying any action or special meaning associated with the attribute.
Group information 108 describes logical relationships and groupings of users having identity profiles 102 on Directory Server 36. A plurality of policies 112, each of which is associated with a policy domain are also stored on Directory Server 36. Revoked user list 110 identifies users previously (but no longer) allowed access to resources on the system. Shared secret(s) 114 are key stored on Directory Server 36 for encrypting cookies set on browsers 12 or 14 after a successful user authentication. Shared secret key(s) 114 can change as often as desired by an administrator. Global sequence number (GSN) 116 is a unique number stored on Directory Server 36 which is assigned to a policy domain change (first level default rules) or policy change (second level resource-specific rules) and updated in response to subsequent policy changes for cache flushing purposes. In one embodiment, the GSN is incremented to the next sequential number after detection of a policy domain or policy change. User attribute list is a list of user identity profile attributes used by cached authentication and authorization rules.
Each entity has a distinguished name (DN), which uniquely identifies the node. In one embodiment, each entry also has a relative name, which is different from all other relevant names on the same level of the hierarchy. In one implementation, the distinguished name (DN) comprises a union of the relative names up the tree. For example, the distinguished name of employee 1 (node 250) is
DN=CN=Empl, OU=OrgA, O=CompanyA, DC=entity, where:
DC=Domain Component
O=Organization
OU=Organizational Unit
CN=common name.
Each node depicted in
In a typical use of the Identity Management System shown in
There are many ways for an entity to access and use the Identity System. In one embodiment, the entity can access the Identity System's services using a browser. In other embodiments, eXtensible Markup Language (XML) documents and API's can be used to access the services of the Identity System. For example, an entity can use a browser by pointing the browser to Identity Server 40. The user will then be provided with a login page to enter the user's ID, password, type of user and application requested (optional). Upon filling out that information, the user will be authenticated and authorized (by the Access System) to use the Identity System. Alternatively, the Access System can be bypassed (or there may be no Access System) and the Identity System authenticates the user.
The user is authorized for access to the Identity Management System at step 306. In one embodiment, authorization is performed as described with respect to step 56 of
After performing attribute access control, Identity Server 40 can generate an output using data from the identity profile and various files maintained at the server (e.g., static HTML files). For example, Identity Server 40 can construct HTML and/or XML page(s) having data from the requested identity profile. The page(s) can be constructed from form-based documents and resources maintained at the Identity Server. The output generated at step 314 can be a simple display of the attribute values from the identity profile which the user is authorized to view. If the user requests modification of one or more attributes, the output can include a user interface adapted to receive modification information from the user. After generating the necessary output, the identity server will pass the output to web server 20 which passes the requested resource(s) to browser 12.
With today's requirements to support globally diverse environments, it is becoming increasingly necessary to provide Identity and Access Systems having information stored and displayable in various languages. Prior art techniques suffer from the attendant shortcomings of installing multiple identity servers, access servers, and/or directories to provide configuration and identity profile data in various languages. Furthermore, these systems have scalability issues because they require the addition of servers and code when new language support is added. Accordingly, embodiments provide for Identity and Access Systems that can store and display configuration data and identity profile data in multiple languages. Moreover, embodiments can ascertain a preferred language associated with requests for Identity and Access Systems in order to provide requesting users with data in the language identified by the user's preference. Embodiments can provide such functionality while utilizing a single Identity and/or Access System. A single system, as provided in embodiments, can allow scalability and manageable maintenance of the system by administrators and other support personnel. The system has the ability to be easily scaled and modified in order to provide additional language capabilities as the needs for such capability arise.
In accordance with one embodiment, a plurality of values, each corresponding to a distinct language, country and/or culture are provided for one or more attributes, as part of configuration data 104.
Configuration data 1041 includes configuration data for three exemplary attributes: CN (commonly referred to as common name); TITLE; and SALARY. Other embodiments may include more or less than three attributes. In order to provide multi-language support capabilities, attribute configuration data 1041 includes a plurality of values for each attribute that provide values for that attribute that correspond to a particular language. Looking at attribute CN for example, a plurality of values for the display name of attribute CN are provided. Each of the values are indexed according to a language and country (also referred to as culture) code by including a language component and a value component. The language component can include a language and/or country designation. In one embodiment, language codes are formatted according to the ISO-639 definitions and country codes are formatted according to the ISO-3166 definitions.
Attribute CN includes a first value having an en-US language component and a “name” value component. Together, the language component and the value component comprise a single value for attribute CN. In this example, the language component en-US designates English as used in the United States. Accordingly, the display name for configuring attribute CN is the English word “name.” A second value for attribute CN is also provided that includes a language component fr-FR and a value component “nom.” This second value includes a language component designating French as used in France and a value component corresponding to the French word for name, or “nom.” A third value is provided that includes a language component de-DE designating German as spoken in Germany and a corresponding value component “namn.” Together, the three values, each comprised of a language component and a value component, make up the display name configuration data for attribute CN. Similar entries are also provided for other attributes within configuration data 1041.
The attribute TITLE includes a first display name value that includes a language component en-US and a value component “title.” A second value includes a language component fr-FR and a value component “titre.” A third value for the attribute TITLE includes a language component de-DE and a value component “berufsbezeichnung.” The SALARY attribute depicted in attribute configuration data 104 also includes three display name values. The first value includes a language component en-US and a value component “salary.” The second value includes a language component fr-FR and a value component “paie.” The final value for the SALARY attribute includes a language component de-DE and a value component “gehalt.”
When multi-valued attributes indexed according to language are provided for multi-language support and capabilities, various languages or language packs can be installed at the Access Server and/or Identity Server. The language pack can include an indication of installed or supported languages. The installed languages correspond to known languages provided for various attributes in Directory 36. Static data such as static XML, HTML, or SQL documents can be maintained for each installed language at the server(s). This data can include form or template pages and files for generating outputs. In one embodiment, a directory or file structure is provided at the server(s) with language specific static data and files maintained by language in the directory structure.
When an output such as an HTML or XML document is to be generated by Identity Server 40 or Access Server 34, such output can be presented in a language corresponding to a preference of a requesting user. When a user requests to view an identity profile for example, Identity Server 40 can construct an output user interface for displaying the data of the requested profile. The user interface can include the values in the identity profile for each of the attributes. In addition, the user interface can include attribute configuration data such as the display name for each attribute. The user interface may include the attribute display name (e.g., “name” for attribute CN) before the actual identity profile value (e.g., “John Smith”) for that attribute. The identity server can determine the preferred language of the requesting user and construct the output to include the display name value(s) that correspond to the preferred language of the requested user. If the user has a preferred language of French as spoken in France, Identity Server 40 can present configuration data to the user in French. If the user requests to view an identity profile and the configuration display name values for attributes CN, title, and salary are to be displayed, Identity Server 40 can construct the output to include the display names “nom” for the CN attribute, “titre” for the TITLE attribute, and “paie” for the SALARY attribute.
The concept of providing multi-valued attributes for configuration data can be extended to identity profiles to provide language-specific identity profile data. In this manner, a user's identity profile can be displayable according to differing language requirements.
The first attribute, CN, includes three values. The first value includes a language component en-US and a value component “John Smith.” The second value includes a language component fr-FR and a value component “Jean Smith.” The final value for the CN attribute includes a language component de-DE and a value component “Hans Smith.” Accordingly, the common name attribute for this user's identity profile includes three language specific versions (English, French, and German) of his common name. The TITLE attribute for this identity profile is also provided with three values. The first value includes a language component en-US and a value component “bank manager.” The second value includes a language component fr-FR and a value component “gerant de banque.” The third value includes a language component de-DE and a value component “bank direktor.” Accordingly, the TITLE attribute for this identity profile includes three values designating three language-specific values for the TITLE attribute.
A final attribute, SALARY, is also provided in identity profile 1021. The salary attribute is not multi-valued. Accordingly, it is simply listed with a single value of 100,000. Each attribute in an individual identity profile or configuration data need not include multi-valued configurations. Moreover, individual attributes within an identity profile or configuration data need not include the same number of values. For example, the CN attribute could include only an English and French version, while the TITLE attribute could include an English, French, and German (or other) versions.
Although not shown in the example of configuration data 1041 or identity profile 1021, multiple values corresponding to the same language can be provided for an attribute's values. One or more additional attribute values having the same language component can be established. The value component(s) for the additional attribute(s) can specify the additional value to be associated with the language component. For example (referring to profile 1021), suppose that John Smith is also a Chief Executive Office (CEO) such that two values need to be specified for the TITLE attribute. To specify the additional title in English, an additional attribute value having an “en-US” language component and a “CEO” value component can be provided and listed in the profile just as the other attribute values. Additional attribute values can also be made to specify the “CEO” title in the other languages as well.
Additionally, the value components of identity profile 1021 corresponding to the fr-FR language components are used to construct the identity profile values included in the output. The value component “Jean Smith” is included in the output for the CN attribute, the “gerant de banque” value component for the TITLE attribute is included in the output, and the single value of 100,000 is included for the SALARY attribute value component.
If two or more values (each comprised of a language component and value component) for an attribute include the same language component, one or more of the corresponding value components can be returned and included in a response when that language component is the preferred language associated with a request. For example, assume again that the TITLE attribute in identity profile 1021 includes a first value of “en-US; bank manager” and a second value of “en-US; CEO.” If the preferred language of a request is en-US, “bank manager,” “CEO,” or “bank manager” and “CEO” could be returned in a response. If the request specifies only a single value, then the first listed entry can be returned (e.g., “bank manager”). If the request specifies two values, specifies all values, or makes no designation, all of the values corresponding to the preferred language can be returned.
As depicted in
After receiving the request, a determination is made as to whether a preferred language of the requesting user matches an installed language at the server at step 404. A requesting user's preferred language can be determined using numerous techniques as hereinafter described. A URL, HTTP header variable, cookie, or identity profile associated with the request, can specify a preferred language. In one embodiment, a hierarchy can be established for determining which of a number of preferred languages associated with a request is to take precedent for a particular request.
If it is determined that no specified languages associated with the request match a language installed at the server, the method proceeds to step 406 where an approximate match is performed. Step 406 can include various techniques for performing an approximate match. In one embodiment, a language component of an attribute value includes a language code as well as a country or culture code. A request may be associated with a preferred language of English and a preferred country of the United Kingdom (en-UK), for example. The server may determine at step 404 that UK English is not installed. The approximate match performed at step 406 can include determining whether any English languages are installed. Accordingly, step 406 can include determining whether there is a match based only on the language code as opposed to the combination of a language and country code. In one embodiment, if an approximate match cannot be made at step 406, a default language is used.
After performing an approximate match or determining that a preferred language matches an installed language, the method proceeds to step 408 where the server determines whether the values for a first attribute associated with the request are cached at the server. As described below, the server may have previously accessed the attribute and cached the multiple values for the attribute at the server. If it is determined at step 408 that the values for the attribute are not cached at the server, the method proceeds to step 410 where the server retrieves the multiple values for the requested attribute. For example, a request to access a user identity profile can be handled by Identity Server 40 which will access directory 36 to retrieve the values for the attribute. Referring to
After retrieving each of the attribute values, the retrieved values are parsed at step 412. Step 412 can include reading each value for the attribute, which will include both a language component and value component, to ascertain the various languages and related values. After parsing the attribute values, an attribute table is built and indexed according to the configured language components at step 414. The table built and indexed at step 414 can include the language component and the value component for each of the attribute values retrieved at step 410. The table can be indexed according to language to provide for increased performance when accessing the table at a subsequent point in time.
After building the attribute table, or after determining that the attribute values have previously been cached, the flow chart proceeds to step 416 where the server reads the attribute value(s) from the table that correspond to the preferred language (or a default language) determined at step 404 or step 406.
After reading the attribute value(s) for the preferred language, the server will construct an output using the preferred language attribute value(s) at step 418. Step 418 can include numerous outputs in accordance with various implementations and embodiments. For example, if the request received at step 402 is to access an identity profile, the output constructed at step 418 can be a user interface including a representation of the identity profile requested at step 402, such as depicted in
If an attribute includes multiple values with the preferred language as a language component, step 418 can include constructing the output to include one or more of the multiple value components as previously described. For example, if the request is only for a single value, then the first listed value with the preferred language component could be included. If the request is for multiple values or makes no designation, each value having the preferred language as a language component could be included.
It will be appreciated by those of ordinary skill in the art that steps 408 through 418 can be performed in parallel or sequence for each of the attributes necessary to fulfill a request. For example, if a user requests an identity profile that includes three attributes, then a determination will be made as to whether the values for each of those three attributes are cached and then each of the three attributes' plurality of values will be retrieved, parsed and used to construct a table, if not cached. In one embodiment, the table constructed at step 414 is a combined table for each of the requested attributes, while in other embodiments, a single table is used for each individual attribute.
Numerous techniques can be used to designate preferred languages associated with requests. Such techniques can include URL-specified languages, cookie-specified languages, custom HTTP header variable-specified languages, identity profile-specified languages, and standard HTTP header variable-specified languages. In accordance with other embodiments, other techniques for specifying preferred languages can be used. Likewise, a server can utilize various techniques for determining a preferred language of a requesting user.
At step 602, the server determines whether a language specified in a URL received from a user's browser matches a language installed at the server. The specified language may be included within query data or a query string of the URL. If the server determines that the specified language of the URL matches an installed language, the server designates the URL-specified language as the preferred language at step 604. If the URL-specified language does not match an installed language, then the flow chart proceeds to step 606 where the server determines whether a cookie-specified language matches an installed language. A cookie transmitted with a requested URL may include a designation of a preferred language. If the cookie-specified language matches an installed language, the server sets the preferred language to the cookie-specified language at step 608. If, however, the cookie-specified language does not match an installed language, the flow chart proceeds to step 610 where the server determines whether a custom HTTP header variable-specified language matches an installed language. A custom HTTP header variable can be used in various implementations. For example, after authenticating and authorizing a user, Access Server 34 can place a custom HTTP header variable into a user's HTTP request when the request is re-directed to Identity Server 40. If the custom HTTP header variable-specified language matches an installed language, then the server sets the preferred language to the custom header variable-specified language at step 612. If the custom header variable-specified language does not match an installed language, the method proceeds to step 614 where the server determines whether an identity profile-specified language associated with the request matches an installed language. An identity profile, such as identity profile 1021, can include an attribute for a preferred language (not shown). The server can check the identity profile to determine whether the attribute value of the preferred language matches an installed language. If it does, the server sets the preferred language to the profile-specified language at step 616. If the profile-specified language does not match an installed language, operation of the method proceeds to step 618 where the server determines whether a standard HTTP header variable-specified language matches an installed language. As known to those of ordinary skill in the art, HTTP requests include a standard header variable that specifies a language. For example, when a user installs and sets up a browser, a preference for a language may be selected. This language preference is then included in a standard HTTP header variable passed with each HTTP request. The server can check that standard HTTP header variable at step 618. If the HTTP header variable matches an installed language then the server sets the preferred language to the standard HTTP header variable-specified language at step 620. If the standard HTTP header variable-specified language does not match the installed language, operation of the method proceeds to step 406 of
The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
Number | Name | Date | Kind |
---|---|---|---|
4484306 | Kulczyckyj et al. | Nov 1984 | A |
4956769 | Smith | Sep 1990 | A |
4961224 | Yung | Oct 1990 | A |
5010478 | Deran | Apr 1991 | A |
5077666 | Brimm et al. | Dec 1991 | A |
5113499 | Ankney et al. | May 1992 | A |
5226143 | Baird et al. | Jul 1993 | A |
5301320 | McAtee et al. | Apr 1994 | A |
5428795 | Johnson et al. | Jun 1995 | A |
5442782 | Malatesta et al. | Aug 1995 | A |
5455953 | Russell | Oct 1995 | A |
5467471 | Bader | Nov 1995 | A |
5499371 | Henninger et al. | Mar 1996 | A |
5530861 | Diamant et al. | Jun 1996 | A |
5557742 | Smaha et al. | Sep 1996 | A |
5581691 | Hsu et al. | Dec 1996 | A |
5596746 | Shen et al. | Jan 1997 | A |
5659616 | Sudia | Aug 1997 | A |
5664154 | Purcell et al. | Sep 1997 | A |
5678041 | Baker et al. | Oct 1997 | A |
5689679 | Jouppi | Nov 1997 | A |
5692125 | Schloss et al. | Nov 1997 | A |
5694598 | Durand et al. | Dec 1997 | A |
5708780 | Levergood et al. | Jan 1998 | A |
5713023 | Hayata et al. | Jan 1998 | A |
5721900 | Banning et al. | Feb 1998 | A |
5724595 | Gentner | Mar 1998 | A |
5732408 | Takahashi | Mar 1998 | A |
5734837 | Flores et al. | Mar 1998 | A |
5745574 | Muftic | Apr 1998 | A |
5754939 | Herz et al. | May 1998 | A |
5757920 | Misra et al. | May 1998 | A |
5764890 | Glasser et al. | Jun 1998 | A |
5764973 | Lunceford et al. | Jun 1998 | A |
5765153 | Benantar et al. | Jun 1998 | A |
5793966 | Amstein et al. | Aug 1998 | A |
5796841 | Cordery et al. | Aug 1998 | A |
5802518 | Karaev et al. | Sep 1998 | A |
5812776 | Gifford | Sep 1998 | A |
5815703 | Copeland et al. | Sep 1998 | A |
5819271 | Mahoney et al. | Oct 1998 | A |
5822454 | Rangarajan | Oct 1998 | A |
5826029 | Gore, Jr. et al. | Oct 1998 | A |
5831975 | Chen et al. | Nov 1998 | A |
5835912 | Pet | Nov 1998 | A |
5842212 | Ballurio et al. | Nov 1998 | A |
5848273 | Fontana et al. | Dec 1998 | A |
5867665 | Butman et al. | Feb 1999 | A |
5867824 | Saito et al. | Feb 1999 | A |
5872969 | Copeland et al. | Feb 1999 | A |
5875461 | Lindholm | Feb 1999 | A |
5878411 | Burroughs et al. | Mar 1999 | A |
5884284 | Peters et al. | Mar 1999 | A |
5889952 | Hunnicutt et al. | Mar 1999 | A |
5892903 | Klaus | Apr 1999 | A |
5893149 | Hagersten et al. | Apr 1999 | A |
5901287 | Bull et al. | May 1999 | A |
5903878 | Talati et al. | May 1999 | A |
5903882 | Asay et al. | May 1999 | A |
5907621 | Bachman et al. | May 1999 | A |
5907837 | Ferrel et al. | May 1999 | A |
5908469 | Botz et al. | Jun 1999 | A |
5924096 | Draper et al. | Jul 1999 | A |
5940394 | Killian | Aug 1999 | A |
5940834 | Pinard et al. | Aug 1999 | A |
5944780 | Chase et al. | Aug 1999 | A |
5944824 | He | Aug 1999 | A |
5960422 | Prasad | Sep 1999 | A |
5961593 | Gabber et al. | Oct 1999 | A |
5966702 | Fresko et al. | Oct 1999 | A |
5974443 | Jeske | Oct 1999 | A |
5978779 | Stein et al. | Nov 1999 | A |
5987457 | Ballard | Nov 1999 | A |
5987471 | Bodine et al. | Nov 1999 | A |
5991768 | Sun et al. | Nov 1999 | A |
5991771 | Falls et al. | Nov 1999 | A |
5991807 | Schmidt et al. | Nov 1999 | A |
5991810 | Shapiro et al. | Nov 1999 | A |
5991881 | Conklin et al. | Nov 1999 | A |
5999911 | Berg et al. | Dec 1999 | A |
6005571 | Pachauri | Dec 1999 | A |
6012059 | Neimat et al. | Jan 2000 | A |
6012098 | Bayeh et al. | Jan 2000 | A |
6026474 | Carter et al. | Feb 2000 | A |
6028605 | Conrad et al. | Feb 2000 | A |
6029195 | Herz | Feb 2000 | A |
6032227 | Shaheen et al. | Feb 2000 | A |
6041306 | Du et al. | Mar 2000 | A |
6041357 | Kunzelman et al. | Mar 2000 | A |
6044462 | Zubeldia et al. | Mar 2000 | A |
6044465 | Dutcher et al. | Mar 2000 | A |
6049776 | Donnelly et al. | Apr 2000 | A |
6058381 | Nelson | May 2000 | A |
6058480 | Brown | May 2000 | A |
6061726 | Cook et al. | May 2000 | A |
6061740 | Ferguson et al. | May 2000 | A |
6061799 | Eldridge et al. | May 2000 | A |
6064656 | Angal et al. | May 2000 | A |
6067548 | Cheng | May 2000 | A |
6073109 | Flores et al. | Jun 2000 | A |
6073174 | Montgomerie et al. | Jun 2000 | A |
6073242 | Hardy et al. | Jun 2000 | A |
6078747 | Jewitt | Jun 2000 | A |
6081518 | Bowman-Amuah | Jun 2000 | A |
6085188 | Bachmann et al. | Jul 2000 | A |
6088679 | Barkley | Jul 2000 | A |
6088796 | Cianfrocca et al. | Jul 2000 | A |
6098056 | Rusnak et al. | Aug 2000 | A |
6104705 | Ismail et al. | Aug 2000 | A |
6105006 | Davis et al. | Aug 2000 | A |
6105063 | Hayes, Jr. | Aug 2000 | A |
6105066 | Hayes, Jr. | Aug 2000 | A |
6112181 | Shear et al. | Aug 2000 | A |
6119167 | Boyle et al. | Sep 2000 | A |
6131120 | Reid | Oct 2000 | A |
6133916 | Bukszar et al. | Oct 2000 | A |
6134634 | Marshall, Jr. et al. | Oct 2000 | A |
6134658 | Multerer et al. | Oct 2000 | A |
6138104 | Marchak et al. | Oct 2000 | A |
6141778 | Kane et al. | Oct 2000 | A |
6145003 | Sanu et al. | Nov 2000 | A |
6151531 | Frankel et al. | Nov 2000 | A |
6154741 | Feldman | Nov 2000 | A |
6154776 | Martin | Nov 2000 | A |
6157925 | Jenkins et al. | Dec 2000 | A |
6157942 | Chu et al. | Dec 2000 | A |
6158010 | Moriconi et al. | Dec 2000 | A |
6163781 | Wess, Jr. | Dec 2000 | A |
6163844 | Duncan et al. | Dec 2000 | A |
6170013 | Murata | Jan 2001 | B1 |
6173311 | Hassett et al. | Jan 2001 | B1 |
6178418 | Singer | Jan 2001 | B1 |
6182086 | Lomet et al. | Jan 2001 | B1 |
6182142 | Win et al. | Jan 2001 | B1 |
6185608 | Hon et al. | Feb 2001 | B1 |
6185650 | Boonie et al. | Feb 2001 | B1 |
6192476 | Gong | Feb 2001 | B1 |
6195689 | Bahlmann | Feb 2001 | B1 |
6195696 | Baber et al. | Feb 2001 | B1 |
6195710 | Borgendale et al. | Feb 2001 | B1 |
6208986 | Schneck et al. | Mar 2001 | B1 |
6212558 | Antur et al. | Apr 2001 | B1 |
6212640 | Abdelnur et al. | Apr 2001 | B1 |
6216199 | DeKoning et al. | Apr 2001 | B1 |
6216231 | Stubblebine | Apr 2001 | B1 |
6219667 | Lu et al. | Apr 2001 | B1 |
6223291 | Puhl et al. | Apr 2001 | B1 |
6226752 | Gupta et al. | May 2001 | B1 |
6230185 | Salas et al. | May 2001 | B1 |
6233576 | Lewis | May 2001 | B1 |
6233618 | Shannon | May 2001 | B1 |
6240360 | Phelan | May 2001 | B1 |
6240414 | Beizer et al. | May 2001 | B1 |
6243816 | Fang et al. | Jun 2001 | B1 |
6253202 | Gilmour | Jun 2001 | B1 |
6253239 | Shklar et al. | Jun 2001 | B1 |
6253248 | Nakai et al. | Jun 2001 | B1 |
6253257 | Dundon | Jun 2001 | B1 |
6256737 | Bianco et al. | Jul 2001 | B1 |
6256739 | Skopp et al. | Jul 2001 | B1 |
6260077 | Rangarajan et al. | Jul 2001 | B1 |
6263332 | Nasr et al. | Jul 2001 | B1 |
6263363 | Rosenblatt et al. | Jul 2001 | B1 |
6266420 | Langford et al. | Jul 2001 | B1 |
6275916 | Weldon, Jr. et al. | Aug 2001 | B1 |
6275944 | Kao et al. | Aug 2001 | B1 |
6278993 | Kumar et al. | Aug 2001 | B1 |
6279001 | DeBettencourt et al. | Aug 2001 | B1 |
6279043 | Hayward et al. | Aug 2001 | B1 |
6282546 | Gleichauf et al. | Aug 2001 | B1 |
6286098 | Wenig et al. | Sep 2001 | B1 |
6289462 | McNabb et al. | Sep 2001 | B1 |
6292833 | Liao et al. | Sep 2001 | B1 |
6295061 | Park et al. | Sep 2001 | B1 |
6301668 | Gleichauf et al. | Oct 2001 | B1 |
6304949 | Houlsdworth | Oct 2001 | B1 |
6311269 | Luckenbaugh et al. | Oct 2001 | B2 |
6314470 | Ward et al. | Nov 2001 | B1 |
6314492 | Allen et al. | Nov 2001 | B1 |
6317783 | Freishtat et al. | Nov 2001 | B1 |
6321338 | Porras et al. | Nov 2001 | B1 |
6323881 | Broulik | Nov 2001 | B1 |
6324656 | Gleichauf et al. | Nov 2001 | B1 |
6330569 | Baisley et al. | Dec 2001 | B1 |
6335927 | Elliott et al. | Jan 2002 | B1 |
6336124 | Alam et al. | Jan 2002 | B1 |
6336214 | Sundaresan | Jan 2002 | B1 |
6338097 | Krenzke et al. | Jan 2002 | B1 |
6339423 | Sampson et al. | Jan 2002 | B1 |
6339826 | Hayes, Jr. et al. | Jan 2002 | B2 |
6343287 | Kumar et al. | Jan 2002 | B1 |
6345266 | Ganguly et al. | Feb 2002 | B1 |
6347312 | Byrne et al. | Feb 2002 | B1 |
6347374 | Drake et al. | Feb 2002 | B1 |
6349306 | Malik et al. | Feb 2002 | B1 |
6353929 | Houston | Mar 2002 | B1 |
6356892 | Corn et al. | Mar 2002 | B1 |
6356996 | Adams | Mar 2002 | B1 |
6357010 | Viets et al. | Mar 2002 | B1 |
6366913 | Fitler, Jr. et al. | Apr 2002 | B1 |
6366987 | Tzeinic et al. | Apr 2002 | B1 |
6367013 | Bisbee et al. | Apr 2002 | B1 |
6374359 | Shrader et al. | Apr 2002 | B1 |
6381579 | Gervais et al. | Apr 2002 | B1 |
6385653 | Sitaraman et al. | May 2002 | B1 |
6389589 | Mishra et al. | May 2002 | B1 |
6393569 | Orenshteyn | May 2002 | B1 |
6397232 | Cheng-Hung et al. | May 2002 | B1 |
6401101 | Britton et al. | Jun 2002 | B1 |
6401138 | Judge et al. | Jun 2002 | B1 |
6408336 | Schneider et al. | Jun 2002 | B1 |
6415321 | Gleichauf et al. | Jul 2002 | B1 |
6415368 | Glance et al. | Jul 2002 | B1 |
6421682 | Craig et al. | Jul 2002 | B1 |
6421768 | Purpura | Jul 2002 | B1 |
6430688 | Kohl et al. | Aug 2002 | B1 |
6434531 | Lancelot et al. | Aug 2002 | B1 |
6438690 | Patel et al. | Aug 2002 | B1 |
6442567 | Retallick et al. | Aug 2002 | B1 |
6453342 | Himmel et al. | Sep 2002 | B1 |
6457047 | Chandara et al. | Sep 2002 | B1 |
6457066 | Mein et al. | Sep 2002 | B1 |
6460141 | Olden | Oct 2002 | B1 |
6463418 | Todd | Oct 2002 | B1 |
6463509 | Teoman et al. | Oct 2002 | B1 |
6466932 | Dennis et al. | Oct 2002 | B1 |
6470386 | Combar et al. | Oct 2002 | B1 |
6487600 | Lynch | Nov 2002 | B1 |
6487663 | Jaisimha et al. | Nov 2002 | B1 |
6490655 | Kershaw | Dec 2002 | B1 |
6493702 | Adar et al. | Dec 2002 | B1 |
6493731 | Jones et al. | Dec 2002 | B1 |
6499023 | Dong et al. | Dec 2002 | B1 |
6499107 | Gleichauf et al. | Dec 2002 | B1 |
6507847 | Fleischman | Jan 2003 | B1 |
6507857 | Yalcinalp | Jan 2003 | B1 |
6513056 | Copeland et al. | Jan 2003 | B1 |
6519571 | Guheen et al. | Feb 2003 | B1 |
6519643 | Foulkes et al. | Feb 2003 | B1 |
6519648 | Eyal | Feb 2003 | B1 |
6519767 | Carter et al. | Feb 2003 | B1 |
6523022 | Hobbs | Feb 2003 | B1 |
6523027 | Underwood | Feb 2003 | B1 |
6526438 | Bienvenu et al. | Feb 2003 | B1 |
6526447 | Giammaria | Feb 2003 | B1 |
6529941 | Haley et al. | Mar 2003 | B2 |
6536037 | Guheen et al. | Mar 2003 | B1 |
6539021 | Kennelly et al. | Mar 2003 | B1 |
6539379 | Vora et al. | Mar 2003 | B1 |
6539382 | Byrne et al. | Mar 2003 | B1 |
6539396 | Bowman-Amuah | Mar 2003 | B1 |
6540142 | Alleshouse | Apr 2003 | B1 |
6542515 | Kumar et al. | Apr 2003 | B1 |
6542993 | Erfani | Apr 2003 | B1 |
6549941 | Jaquith et al. | Apr 2003 | B1 |
6557039 | Leong et al. | Apr 2003 | B1 |
6564370 | Hunt | May 2003 | B1 |
6571216 | Garg et al. | May 2003 | B1 |
6571279 | Herz et al. | May 2003 | B1 |
6574675 | Swenson | Jun 2003 | B1 |
6578147 | Shanklin et al. | Jun 2003 | B1 |
6584548 | Bourne et al. | Jun 2003 | B1 |
6584569 | Reshef et al. | Jun 2003 | B2 |
6587856 | Srinivasan et al. | Jul 2003 | B1 |
6591260 | Schwarzhoff et al. | Jul 2003 | B1 |
6591347 | Tischler et al. | Jul 2003 | B2 |
6598058 | Bird et al. | Jul 2003 | B2 |
6606644 | Ford et al. | Aug 2003 | B1 |
6609198 | Wood et al. | Aug 2003 | B1 |
6609205 | Bernhard et al. | Aug 2003 | B1 |
6611840 | Baer et al. | Aug 2003 | B1 |
6615218 | Mandal et al. | Sep 2003 | B2 |
6618806 | Brown et al. | Sep 2003 | B1 |
6629132 | Ganguly et al. | Sep 2003 | B1 |
6632251 | Rutten et al. | Oct 2003 | B1 |
6636891 | LeClair et al. | Oct 2003 | B1 |
6640307 | Viets et al. | Oct 2003 | B2 |
6643661 | Polizzi et al. | Nov 2003 | B2 |
6647383 | August et al. | Nov 2003 | B1 |
6647393 | Dietterich et al. | Nov 2003 | B1 |
6655593 | Alleshouse | Dec 2003 | B2 |
6668322 | Wood et al. | Dec 2003 | B1 |
6671695 | McFadden | Dec 2003 | B2 |
6671745 | Mathur et al. | Dec 2003 | B1 |
6675261 | Shandony | Jan 2004 | B2 |
6678733 | Brown et al. | Jan 2004 | B1 |
6678828 | Pham et al. | Jan 2004 | B1 |
6680942 | Mead et al. | Jan 2004 | B2 |
6691232 | Wood et al. | Feb 2004 | B1 |
6697849 | Carlson | Feb 2004 | B1 |
6701368 | Chennapragada et al. | Mar 2004 | B1 |
6704807 | Mathur et al. | Mar 2004 | B1 |
6704873 | Underwood | Mar 2004 | B1 |
6708170 | Byrne et al. | Mar 2004 | B1 |
6711632 | Chow et al. | Mar 2004 | B1 |
6718328 | Norris | Apr 2004 | B1 |
6721804 | Rubin et al. | Apr 2004 | B1 |
6728685 | Ahluwalia | Apr 2004 | B1 |
6732178 | Van Horne et al. | May 2004 | B1 |
6741853 | Jiang et al. | May 2004 | B1 |
6741992 | McFadden | May 2004 | B1 |
6742126 | Mann et al. | May 2004 | B1 |
6745221 | Ronca | Jun 2004 | B1 |
6745327 | Messing | Jun 2004 | B1 |
6748374 | Madan et al. | Jun 2004 | B1 |
6748447 | Basani et al. | Jun 2004 | B1 |
6748569 | Brooke et al. | Jun 2004 | B1 |
6751797 | Desgranges et al. | Jun 2004 | B1 |
6754696 | Kamath et al. | Jun 2004 | B1 |
6754702 | Kennelly et al. | Jun 2004 | B1 |
6757720 | Wechsler, Jr. | Jun 2004 | B1 |
7708131 | Craig et al. | Jun 2004 | |
6760750 | Boneh et al. | Jul 2004 | B1 |
6763370 | Schmeidler et al. | Jul 2004 | B1 |
6765864 | Natarajan et al. | Jul 2004 | B1 |
6768988 | Boreham et al. | Jul 2004 | B2 |
6769000 | Akhtar et al. | Jul 2004 | B1 |
6772214 | McClain et al. | Aug 2004 | B1 |
6775704 | Watson et al. | Aug 2004 | B1 |
6775782 | Buros et al. | Aug 2004 | B1 |
6779120 | Valente et al. | Aug 2004 | B1 |
6782379 | Lee | Aug 2004 | B2 |
6785686 | Boreham et al. | Aug 2004 | B2 |
6785726 | Freeman et al. | Aug 2004 | B1 |
6791949 | Ryu et al. | Sep 2004 | B1 |
6804221 | Magret et al. | Oct 2004 | B1 |
6816871 | Lee | Nov 2004 | B2 |
6823513 | McNally et al. | Nov 2004 | B1 |
6839680 | Liu et al. | Jan 2005 | B1 |
6839701 | Baer et al. | Jan 2005 | B1 |
6842863 | Fox et al. | Jan 2005 | B1 |
6851054 | Wheeler et al. | Feb 2005 | B2 |
6854016 | Kraenzel et al. | Feb 2005 | B1 |
6859783 | Cogger et al. | Feb 2005 | B2 |
6859823 | Nishihara et al. | Feb 2005 | B1 |
6859834 | Arora et al. | Feb 2005 | B1 |
6868406 | Ogg et al. | Mar 2005 | B1 |
6879995 | Chinta et al. | Apr 2005 | B1 |
6880086 | Kidder et al. | Apr 2005 | B2 |
6886170 | Bahrs et al. | Apr 2005 | B1 |
6901433 | San Andres et al. | May 2005 | B2 |
6901588 | Krapf et al. | May 2005 | B1 |
6948135 | Ruthfield et al. | Sep 2005 | B1 |
6957237 | Traversat et al. | Oct 2005 | B1 |
6959415 | Soderberg et al. | Oct 2005 | B1 |
6968503 | Chang et al. | Nov 2005 | B1 |
6970862 | Kwan | Nov 2005 | B2 |
6985912 | Mullins et al. | Jan 2006 | B2 |
6986138 | Sakaguchi et al. | Jan 2006 | B1 |
6999956 | Mullins | Feb 2006 | B2 |
7003587 | Battat et al. | Feb 2006 | B1 |
7013435 | Gallo et al. | Mar 2006 | B2 |
7013469 | Smith et al. | Mar 2006 | B2 |
7035926 | Cohen et al. | Apr 2006 | B1 |
7039871 | Cronk | May 2006 | B2 |
7069330 | McArdle et al. | Jun 2006 | B1 |
7080077 | Ramamurthy et al. | Jul 2006 | B2 |
7107260 | Nakamura et al. | Sep 2006 | B2 |
7107526 | Weller | Sep 2006 | B1 |
7114037 | Agarwal et al. | Sep 2006 | B2 |
7120914 | Manthos et al. | Oct 2006 | B1 |
7124203 | Joshi et al. | Oct 2006 | B2 |
7124354 | Ramani et al. | Oct 2006 | B1 |
7134137 | Joshi et al. | Nov 2006 | B2 |
7185364 | Knouse | Feb 2007 | B2 |
7194764 | Martherus | Mar 2007 | B2 |
7213249 | Tung Loo et al. | May 2007 | B2 |
7216163 | Sinn | May 2007 | B2 |
7231661 | Villavicencio | Jun 2007 | B1 |
7249369 | Knouse | Jul 2007 | B2 |
7266595 | Black et al. | Sep 2007 | B1 |
7340447 | Ghatare | Mar 2008 | B2 |
7349912 | Delany et al. | Mar 2008 | B2 |
7363339 | Delany et al. | Apr 2008 | B2 |
7380008 | Teng et al. | May 2008 | B2 |
7398311 | Joshi et al. | Jul 2008 | B2 |
20010002485 | Bisbee et al. | May 2001 | A1 |
20010007133 | Moriconi et al. | Jul 2001 | A1 |
20010023440 | Franklin et al. | Sep 2001 | A1 |
20010027439 | Holtzman et al. | Oct 2001 | A1 |
20010037469 | Gupta et al. | Nov 2001 | A1 |
20010049770 | Cai et al. | Dec 2001 | A1 |
20010054153 | Wheeler et al. | Dec 2001 | A1 |
20020023132 | Tornabene et al. | Feb 2002 | A1 |
20020026563 | Chamberlain et al. | Feb 2002 | A1 |
20020032684 | Kobayashi et al. | Mar 2002 | A1 |
20020038306 | Griffin et al. | Mar 2002 | A1 |
20020049749 | Helgeson et al. | Apr 2002 | A1 |
20020053023 | Patterson et al. | May 2002 | A1 |
20020062435 | Nemirovsky et al. | May 2002 | A1 |
20020065701 | Kim et al. | May 2002 | A1 |
20020066033 | Dobbins et al. | May 2002 | A1 |
20020067370 | Forney et al. | Jun 2002 | A1 |
20020073180 | Dewhurst et al. | Jun 2002 | A1 |
20020078032 | Shi et al. | Jun 2002 | A1 |
20020078307 | Zahir | Jun 2002 | A1 |
20020082881 | Price et al. | Jun 2002 | A1 |
20020083178 | Brothers | Jun 2002 | A1 |
20020091745 | Ramamurthy et al. | Jul 2002 | A1 |
20020091798 | Joshi et al. | Jul 2002 | A1 |
20020091836 | Moetteli | Jul 2002 | A1 |
20020099671 | Mastin Crosbie et al. | Jul 2002 | A1 |
20020099822 | Rubin et al. | Jul 2002 | A1 |
20020103785 | Harvey | Aug 2002 | A1 |
20020103819 | Duvillier et al. | Aug 2002 | A1 |
20020107828 | Harvey | Aug 2002 | A1 |
20020108003 | Ellis et al. | Aug 2002 | A1 |
20020112083 | Joshi et al. | Aug 2002 | A1 |
20020112155 | Martherus et al. | Aug 2002 | A1 |
20020112185 | Hodges | Aug 2002 | A1 |
20020116642 | Joshi et al. | Aug 2002 | A1 |
20020120599 | Knouse et al. | Aug 2002 | A1 |
20020129024 | Lee | Sep 2002 | A1 |
20020129116 | Humphrey | Sep 2002 | A1 |
20020129135 | Delany et al. | Sep 2002 | A1 |
20020129177 | McGuire et al. | Sep 2002 | A1 |
20020133516 | Davis et al. | Sep 2002 | A1 |
20020138543 | Teng et al. | Sep 2002 | A1 |
20020138572 | Delany et al. | Sep 2002 | A1 |
20020138577 | Teng et al. | Sep 2002 | A1 |
20020138763 | Delany et al. | Sep 2002 | A1 |
20020143865 | Tung Loo et al. | Oct 2002 | A1 |
20020143943 | Lee et al. | Oct 2002 | A1 |
20020143949 | Rajarajan et al. | Oct 2002 | A1 |
20020147746 | Lee | Oct 2002 | A1 |
20020147801 | Gullotta et al. | Oct 2002 | A1 |
20020147813 | Teng et al. | Oct 2002 | A1 |
20020152244 | Dean et al. | Oct 2002 | A1 |
20020152254 | Teng | Oct 2002 | A1 |
20020156879 | Delany et al. | Oct 2002 | A1 |
20020161766 | Lawson et al. | Oct 2002 | A1 |
20020165960 | Chan | Nov 2002 | A1 |
20020166049 | Sinn | Nov 2002 | A1 |
20020169767 | Harvey | Nov 2002 | A1 |
20020174238 | Sinn et al. | Nov 2002 | A1 |
20020184444 | Shandony | Dec 2002 | A1 |
20030014442 | Shiigi et al. | Jan 2003 | A1 |
20030028752 | Fu et al. | Feb 2003 | A1 |
20030037052 | Kitain et al. | Feb 2003 | A1 |
20030046266 | Mullins et al. | Mar 2003 | A1 |
20030055762 | Holt | Mar 2003 | A1 |
20030055806 | Wong et al. | Mar 2003 | A1 |
20030061272 | Krisnamurthy et al. | Mar 2003 | A1 |
20030065558 | Shaw et al. | Apr 2003 | A1 |
20030065921 | Chang | Apr 2003 | A1 |
20030074580 | Knouse et al. | Apr 2003 | A1 |
20030083908 | Steinmann | May 2003 | A1 |
20030088708 | Lewallen | May 2003 | A1 |
20030097380 | Mulhern et al. | May 2003 | A1 |
20030105654 | Macleod et al. | Jun 2003 | A1 |
20030105733 | Boreham et al. | Jun 2003 | A1 |
20030105742 | Boreham et al. | Jun 2003 | A1 |
20030110376 | Wiener et al. | Jun 2003 | A1 |
20030115196 | Boreham et al. | Jun 2003 | A1 |
20030115548 | Melgar | Jun 2003 | A1 |
20030120593 | Bansal et al. | Jun 2003 | A1 |
20030120601 | Ouye et al. | Jun 2003 | A1 |
20030144982 | Reulein et al. | Jul 2003 | A1 |
20030145074 | Penick | Jul 2003 | A1 |
20030149737 | Lambert et al. | Aug 2003 | A1 |
20030158897 | Ben-Natan et al. | Aug 2003 | A1 |
20030191846 | Hunnicutt et al. | Oct 2003 | A1 |
20030204481 | Lau | Oct 2003 | A1 |
20030208397 | VanDusen | Nov 2003 | A1 |
20030217101 | Sinn | Nov 2003 | A1 |
20030217127 | Sinn | Nov 2003 | A1 |
20030217333 | Smith et al. | Nov 2003 | A1 |
20040002903 | Stolfo et al. | Jan 2004 | A1 |
20040003351 | Sommerer et al. | Jan 2004 | A1 |
20040010514 | Agarwal et al. | Jan 2004 | A1 |
20040010519 | Sinn et al. | Jan 2004 | A1 |
20040010520 | Tsang et al. | Jan 2004 | A1 |
20040010591 | Sinn et al. | Jan 2004 | A1 |
20040010606 | Delaney et al. | Jan 2004 | A1 |
20040010607 | Lee et al. | Jan 2004 | A1 |
20040010665 | Agarwal et al. | Jan 2004 | A1 |
20040010791 | Jain et al. | Jan 2004 | A1 |
20040024762 | Agarwal et al. | Feb 2004 | A1 |
20040044623 | Wake et al. | Mar 2004 | A1 |
20040049675 | Micali et al. | Mar 2004 | A1 |
20040064356 | Saito et al. | Apr 2004 | A1 |
20040153509 | Alcorn et al. | Aug 2004 | A1 |
20050015340 | Maes | Jan 2005 | A1 |
20050080766 | Ghatare | Apr 2005 | A1 |
20050080791 | Ghatare | Apr 2005 | A1 |
20050080792 | Ghatare | Apr 2005 | A1 |
20050240490 | Mackey | Oct 2005 | A1 |
20060159109 | Lamkin et al. | Jul 2006 | A1 |
20060195575 | Delany | Aug 2006 | A1 |
Number | Date | Country |
---|---|---|
WO 0070507 | Nov 2000 | WO |
WO 0207396 | Jan 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20060074894 A1 | Apr 2006 | US |