The invention generally relates to data distribution lists, and more particularly to intersecting a distribution list with an exclusion list to determine a temporarily modified distribution list used to distribute data.
As time passes, increasing numbers of people and machines obtain access to the Internet or other network to allow the people or machines to easily exchange data with other people and/or machines. A side-effect of the increasing number of potential data recipients is the difficultly in coordinating data delivery to a wide audience, e.g., a large number of recipients. Towards this end, distribution lists, or “mailing lists” in an electronic document context such as E-mail, have been developed to facilitate grouping and tracking recipients.
Creating distribution lists is often a tedious and/or complex manual task, since there may be many list members requiring processing for entry on to the list. Further, in some circumstances, such as in advanced environments, a list may be automatically defined based on characteristics of an environment, e.g., a “customers” list may refer to all customers of a computing system. However, regardless of how the list is created, on occasion it may be useful to send data to only some members of a particular distribution list, rather than all members or class of members of the list. Similarly, it may be useful to aggregate several distribution lists which may have been manually or automatically determined, and then exclude some members or class of members from the combination of lists. Since member(s) to exclude from distribution lists or combinations thereof may vary each time an exclusion is performed, performing such an exclusion is not available with current distribution list technology.
The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
Illustrated is a subtraction list 102 which, in the illustrated embodiment, is used to identify a portion 104 of the mailing list 100 that should be skipped when a message is addressed to the mailing list. Thus, for example, assume a user of an electronic document distribution program, such as an “e-mail” program or other application that allows distributing data to one or more addressees, where an addressee may be a single recipient or a mailing list identifying multiple recipients. Assume further that it is desirable to distribute a message to all but a few members of the mailing list, such as to send out a surprise birthday notification to all list members except those having the birthdays that are the subject of the surprise, or to staff members except for the boss/head staff member.
Rather than being required to manually create a special list including only those members not having a birthday, instead, as illustrated, the subtraction list 102 may be defined to include the members having birthdays. A message may then be addressed to the mailing list, which includes the members having birthdays, along with identification of the subtraction list to prevent their receiving the birthday notification. It will be appreciated that various techniques may be applied to implement the subtraction list. For example, in an e-mail application program, just as there are TO, CC, BCC, etc. address fields, one may implement ADD and SUB fields to allow identifying one or more additive (not illustrated) or subtractive lists 102 to modify addressed recipients.
Alternatively, some sort of set notation may be used in the address fields to indicate additive or subtractive mailing lists. For example, a minus symbol “−” may be used to identify a subtractive operation, while a plus symbol “+” may be used to identify an additive operation. It will be appreciated that various manual and automatic mailing lists may be combined, and therefore there may be conflicts between the lists, e.g., an additive list may identify a member also identified in a subtractive list. It will be appreciated that various local policies may be applied to determine how to resolve conflicts; for simplicity it may be assumed a subtractive list overcomes an additive one.
It will be appreciated by one skilled in the art, that adjusting mailing lists is presented for exemplary purposes only, and that the disclosed additive and subtractive principles may be applied to other data distributions as well. In addition, it will be appreciated the illustrated embodiments may be applied at a high level, such as by an application program as discussed above, or at a low-level, such as for determining packet distribution in, for example, a broadcast or simulcast to multiple recipients.
Assume data, such as an e-mail message, is addressed for delivery to the members of both the manual and automatic mailing lists 200, 202. As with
For example, as illustrated, there are first and second mailing lists 300, 302 having an overlap region 304, e.g., duplicate list members in both mailing lists. Applied to this combination of lists is a subtraction list 306 that overlaps the mailing lists in three areas 308, 310, 312. However, unlike in
If Mail Client 404 addresses a message to the mailing list 412 and also identifies the subtractive list 414, then as discussed above with respect to
In this embodiment, there is no dedicated mail server or other central machine through which communication is channeled. Instead, devices 602-608 are assumed to be employing a peer-to-peer or other decentralized protocol allowing the peers to send and receive messages between themselves. However, when sending data, as illustrated, the Data Sender 602 operates to modify the distribution List 610 to temporarily remove members of the Subtraction List 612 from the data distribution. Thus, only Recipients A and C receive the distribution, since the Subtraction List identifies Recipient B as being excluded. It will be apparent to one skilled in the art, without going into the details herein, that protocol modifications appropriate to a particular transmission environment may be required to effect exclusion.
Typically, the environment includes a machine 700. The term “machine” is intended to broadly encompass a single machine, or a system of communicatively coupled machines or devices operating together. Exemplary single machines include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, e.g., Personal Digital Assistant (PDA), telephone, tablets, etc., as well as transportation devices, such as private or public transportation, including automobiles, trains, cabs, etc. The machine 100 may embody various devices, such as a machine attempting to send an e-mail message or perform another data distribution as discussed above with respect to
Typically within the machine 700 are a system bus 702 to which is attached processors 704, memory 706, e.g., random access memory (RAM), read-only memory (ROM), or other state preserving medium, storage devices 708, a video interface 710, and input/output interface ports 712. The machine may be controlled, at least in part, by input from conventional input devices, such as keyboards, mice, etc., as well as by directives received from another machine, interaction with a virtual reality (VR) environment, biometric feedback, or other input source or signal. It will be appreciated that the machine may have embedded controllers, such as programmable or non-programmable logic devices or arrays, Application Specific Integrated Circuits, embedded computers, smart cards, and the like.
As discussed above with respect to
Thus, With respect to
The invention may be described by reference to or in conjunction with associated data including functions, procedures, data structures, application programs, etc. which when accessed by a machine results in the machine performing tasks or defining abstract data types or low-level hardware contexts. Associated data may be stored in, for example, volatile and/or non-volatile memory 706, or in storage devices 708 and their associated storage media. Associated data may be delivered over transmission environments, including network 722, in the form of packets, serial data, parallel data, propagated signals, etc., and may be used in a compressed or encrypted format. Associated data may be used in a distributed environment, and stored locally and/or remotely for access by single or multi-processor machines.
Having described and illustrated the principles of the invention with reference to illustrated embodiments, it will be recognized that the illustrated embodiments can be modified in arrangement and detail without departing from such principles. And, though the foregoing discussion has focused on particular embodiments, other configurations are contemplated. In particular, even though expressions such as “in one embodiment,” “in another embodiment,” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments.
Consequently, in view of the wide variety of permutations to the embodiments described herein, this detailed description is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto.