Plan the Information Architecture

Designing a successful publish and subscribe implementation starts with an understanding of why your organization is implementing the system. You will need to know what type of information needs to be distributed to users and how widely that information needs to be distributed. The two main considerations in planning are efficiency (helping users to avoid information overload) and security (enforcing any site-required content restrictions).
For example, you could start the planning process by understanding that your organization needs to disseminate sales information throughout the marketing organization and inventory data to the production organization. Starting with this knowledge, you can begin the process of breaking down the general categories of information into specific information channels by using a hierarchical model.
How you divide and subset the categories depends on your organization's needs, but you should work toward creating information channels as focused as possible, without making them too tightly focused to be useful. Channels that are broadly defined leave users not knowing whether information that is delivered over the channel will be useful to them. Channels that are too precisely defined force users to subscribe to a long list of channels in order to ensure that they receive the information that they need.
To help focus the information that users receive, set up policies for name/value keywords. Name/value pairs are attributes that are specified when a package is published and that help to identify the package contents. Each subscriber definition can include a name/value filter that allows only packages that meet the subscriber's needs to be delivered.
For example, if you publish a package with a name/value attribute of market=(Mexico), that package is seen only by those subscribers whose name/value filter indicates that they are interested in information about the Mexican market. Although the names and associated values can be anything that your organization finds useful, you must establish a list of acceptable keywords and values for those keywords. This list is essential in order for publishers to be able to provide consistent metadata that identifies published content and for subscribers to be able to filter published content in order to focus on the information that they need.
When you define your information channels, you must also consider the users that will be accessing those channels as well as any restrictions that need to be placed on the channels. Although these aspects of planning are discussed separately, in practice, they are examined at the same time as you are defining your channels. You cannot define an information channel without first knowing who needs to see the information and how that information should be restricted.
The hierarchical model that you use can be based on both subject and access level. For example, it is often appropriate to use group or department-level distinctions. Identify any channels that must be restricted for either who can contribute or who can subscribe. Restrictions are defined on channels, so do not mix access levels within a channel (for example, do not include sensitive and non-sensitive content in a channel). For example, if you plan for a single channel to distribute accounting information throughout your organization, you will encounter a security problem when the accounting department needs to publish sensitive information (such as employee salaries). With only a single, unrestricted channel, you cannot publish the information to a specific set of users. In your consultations with users, you must identify information channels whose access needs to be controlled.