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.