High-level Design - APIs

Messaging Team
12-Sept-96


This section describes the API for the Message Oriented Service(MOS) integrated with DCE. MOS-API supports a message queuing model. In a message queuing model, a source peer application sends messages to a queue manager/queue regardless if the destination peer application is available.

MOS-API is used by senders, recipients, and system administration interfaces. The APIs are categorized as follows:

The following table describes a high-level list of functions by category and the services offered. Note that the APIs related to messaging specifically begin with "mos_".

API Control

This group of interfaces performs general initialization and cleanup of messaging and queuing facilities. They are called at the beginning and end of applications.

Naming

This group of interfaces manipulates the namespace where clients advertize or find messaging and queuing services.

In DCE, naming is achieved via the RPC Naming Service Interface(NSI). MOS-API provides an interface to attach and detach to resources as well as creating groups of resources. A resource is a name in the namespace that may be a queue, a Q-mgr, a destination peer application, a specific NSI entry, group, or profile name.

In MOS-API, name syntaxes are hardcoded as "rpc_c_ns_syntax_default".

For seasoned DCE application writers, the RPC-API may be used for manipulating NSI entries, groups, and profiles. For example, if a messaging application requires to work with profiles, then the RPC-API may be used.

Conversation Management

This group of interfaces do the actual work of getting messages from senders to recipients. Also, interfaces to send messages to groups of recipients are provided.

Security

MOS-API adheres to the model specified in DCE Security AES. MOS-API provides an interface for an end-to-end protection level and a means to identify initial senders to recipients.

In MOS-API, the authorization service is hardcoded as "rpc_c_authz_dce". The authentication service is hardcoded as "rpc_c_authn_dce_secret".

DCE Security may be used for manipulating acls on queues or queue managers, creating security groups of queue managers, and so forth.

Marshalling

At the lowest level, hidden from the programmers, simple arrays of bytes are sent from sender to recipient processes. We provide straightforward mechanisms to employ IDL-generated serialization functions so structured data can be sent via the messaging services.

Message Attributes Utilities

This group of interfaces allow manipulation of attributes on messages. There are separate interfaces to set and get each attribute.

Once a message and its corresponding message attributes are sent, neither the message nor its message attributes can be modified.

Message Selection Utilities

This group of interfaces allow manipulation of selection criteria on messages to be retrieved.

Queue Attributes Utilities

This group of interfaces allow manipulation of attributes on queues themselves. There are separate interfaces to set and get each attribute.

Queue Management Utilities

This group of interfaces allow administration of queues.


[ High-level Design TOC | Messaging | Main OSF ]