• Versions
  • Security Model
  • Whos Job is It
  • Message Store Responsibilities
  • Spooler Responsibilities
  • Transport Provider Responsibilities
  • Background Operations
  • Microsoft Windows Messaging Subsystem Transport Service Provider Interface mapi version 0




    Download 112,17 Kb.
    bet2/5
    Sana02.10.2020
    Hajmi112,17 Kb.
    #11926
    1   2   3   4   5

    Installation


    Someday this section will cover how service providers are installed, where they are installed, etc. Also cover updating and removal.

    When multiple transport providers are installed the user will choose an ordering of the providers to handle cases where multiple providers can handle the same type of delivery (e.g. local FAX provider and server-based FAX connection).

    It is acceptable for each type of provider to have a specialized setup/configure program. For example, a phone-line based transport provider could allow selection of time of day to dial in to retrieve incoming messages.

    Versions


    Service Providers will be able to check the version of the Windows Messaging Subsystem to determine if it is recent enough for their needs. The Windows Messaging Subsystem will check the version of the SPI supported by each installed Service Provider and will only make calls appropriate to that version. If the versions are too different the Windows Messaging Subsystem may refuse to use a service provider.

    This document describes SPI version 1.00.


    Security Model


    Each transport provider is responsible for implementing an appropriate level of security for access to its underlying messaging system. Each incoming or outgoing message that the spooler sends through a transport provider is sent in the context of a "login session" to the transport provider. The transport provider may display a login dialog that prompts for a user's credentials before allowing any message transfer to take place. Alternatively, the transport provider could remember the user's previously entered credentials and use them for access without prompting.

    To assist the transport provider with its requirements for implementing security, the Spooler is capable of storing credential sets for the transport provider, at the transport provider's request. The transport provider can choose what information is retained for each local user. It might be as little as the network address of the server but no name or password, all the way up to a complete credential set. The Spooler will encrypt any information it stores for the transport provider.


    Who's Job is It


    Transport Provider DLLs provide the interface between the Windows Messaging Subsystem Message Spooler and the underlying messaging system(s). The Spooler and the transport provider work together to handle the responsibilities of sending a message. The interface between the Spooler and the provider is called the Transport SPI. The Transport SPI allows multiple installed transports on the same system.

    Message Store Responsibilities


    Store local identity of user in a message when it is marked for sending

    Store date/time that the message was marked for sending

    Maintain priority queue of messages in the order they were marked for sending

    Allow the spooler to "lock" a message once it starts handling it

    The spooler is the only thing that can access a msg after its locked.

    Until a message is locked, the AbortSend() function is internal to the store

    After a message is locked, AbortSend() marks the message for abort.

    Spooler Responsibilities


    Poll message store(s) to locate a message which needs to be handled

    Add recipients to Personal Address Book (if option selected)

    Expand personal distribution lists.

    Obtain Email-Address for each recipient identified only by its Address Book EntryID

    Add message to local Sent Mail folder (if option selected with SentMail-ID property)

    Poll transports to determine which transports handle which recipient types

    Generate Undeliverable message for recipients that no transport will handle

    Maintain status of which recipients have been handled

    Retain transport-specific information about the user as requested by the transport

    Perform character set translation as requested by the transport

    Pass message data to the transport

    Convert ATTACH_BY_REF_RESOLVE attachments into ATTACH_BY_VALUE.

    Delete the message from the Message Store when complete (if specified)

    Generate undeliverable messages as requested by the transport

    Poll transports for incoming messages

    Perform character set translation as requested by the transport

    Accept message data coming from the transport

    Store the message in the Message Store when complete



    Transport Provider Responsibilities:


    Identify which recipient types the transport can handle

    Specify character set translation for the Spooler

    Dialogs for selecting a server and entering credentials

    Perform any login required by the message system

    Translate message format as required by the message system

    Inform Spooler when an incoming message needs to be handled

    Pass incoming message data to the Spooler

    Delete the message from the message system, as appropriate


    Background Operations


    Except for dialogs at initial transport login, the Spooler and transport providers operate in the background. The Spooler does its work and makes its calls to the transport providers when the foreground applications are idle. To reduce disturbance to foreground processing, the transport providers should repeatedly call back to the Spooler to release the CPU whenever they are performing long operations. Current wisdom is that the transport provider should break up any operation that takes more than .2 seconds.

    Since network activity often takes more than .2 seconds, transport providers generally use asynchronous network requests. This allows them to initiate a request, release the CPU by calling back into the Spooler, and then when the Spooler again gives them control they check to see if their network request has completed. If it has not yet completed they again release the CPU by calling back into the Spooler.



    Download 112,17 Kb.
    1   2   3   4   5




    Download 112,17 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Microsoft Windows Messaging Subsystem Transport Service Provider Interface mapi version 0

    Download 112,17 Kb.