The invention will be described by reference to the preferred and alternative embodiments thereof in conjunction with the drawings in which:
The description herein should be understood to describe only one preferred embodiment of the invention. Those skilled in the art will recognize, for example, that the described embodiment is just one simplified example of the novel system and method of automatically generating and maintaining email lists. The simplified example is all that needs to be described in detail in order to enable the more general system and method that the invention comprises.
Attribute data include an attribute type and one or more attribute values associated with the attribute type and may be any data that characterizes or is associated with an individual. Examples of such attribute data include a person's status (having values of employee, contractor, vendor, etc.), title (manager, director, etc.), location (region, city, building, floor, etc.), P&L group, and relationship to company assets such as owner or manager of a specific database or software application. The variety and number of attributes is only limited by the attributes and relationships maintained by the authoritative data sources.
The aggregator module 130 allows users to query, update, and create email groups based on the characteristics of the group. Examples of groups based on member attributes include a group of all employees of a company, a group of all managers of an Oracle database, a group of all people located in a particular building in a specified city, or a group associated with a specific project.
The aggregator module 130 is configured to automatically update an existing group when one of the authoritative data sources is updated. For example, the aggregator module may be configured to pull or query attribute information every night after ADb has performed its daily update. Alternatively, the aggregator module may be configured to receive automatically an update feed that is generated by the authoritative data source during its regular update cycle. Similarly, the attribute loader may be configured to update the group database after the aggregator module has updated the email groups in LDAP and Active Directory. The automatic update or synchronization with the authoritative data source keeps each existing group current without having to edit each member of the group individually as the member's status changes.
In some embodiments, access to the aggregator module is restricted using a delegated security model that prevents unauthorized persons from creating or modifying the groups. New groups may be created by specifying a group name and one or more attributes that characterize the group. The new group definition is loaded into the aggregator module by an authorized user. Once the group definition is loaded into the aggregator module, the new group is generated in the same manner as the pre-existing groups.
The generated email groups may be written to one or more directory services on the company's network. Examples of such services include Active Directory or an LDAP database. In the example shown in
An attribute loader 150 receives or requests group information from the LDAP database and stores the email group name and its associated attributes in a group database 160. The information stored in the group database 160 is used to populate a custom user interface 180 that allows a user to select an email group. Interface module 170 populates and presents the custom user interface and receives and handles user queries. Interface module 170 is preferably implemented using standard technologies such as, for example, Java servlets, JavaBeans, ResourceBundles, and XML with a framework such as, for example, the Struts open source framework.
The custom user interface 180 is preferably a web page that may be displayed and viewed on a company's intranet. In a preferred embodiment, the user interface may be invoked directly as a web page. In other embodiments, the user interface may be invoked from an email client application.
Embodiments of the present invention comprise computer components and computer-implemented steps that will be apparent to those skilled in the art. For ease of exposition, not every step or element of the present invention is described herein as part of a computer system, but those skilled in the art will recognize that each step or element may have a corresponding computer system or software component. Such computer system and/or software components are therefore enabled by describing their corresponding steps or elements (that is, their functionality), and are within the scope of the present invention.
Having thus described at least illustrative embodiments of the invention, various modifications and improvements will readily occur to those skilled in the art and are intended to be within the scope of the invention. Accordingly, the foregoing description is by way of example only and is not intended as limiting. The invention is limited only as defined in the following claims and the equivalents thereto.