|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-59217FA7-3078-53CA-88B3-78D6FB788271" xml:lang="en"><title>Message |
|
13 Type Module Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <p>Message Type Modules (MTMs) are polymorphic DLL plug-ins that implement |
|
15 the interfaces defined by the Message Server framework to handle various message |
|
16 types—such as, IMAP4, POP3, SMTP, SMS and MMS. </p> |
|
17 <section><title>Purpose</title> <p>Client applications can access different |
|
18 types of message and every message type must handled in a specific way. To |
|
19 support a new message type within the client applications, MTMs to implement |
|
20 that type must be provided. The following points are specific to each message |
|
21 type, and so must be implemented in an MTM: </p> <ul> |
|
22 <li id="GUID-B47F5D1A-1C45-56FE-8074-D48F8B72AA58"><p>Message structure </p> </li> |
|
23 <li id="GUID-39DEC177-3210-5ED2-8095-32728E33EF7A"><p>User interface requirements </p> </li> |
|
24 <li id="GUID-3BA20B3C-0922-515D-8E11-B5A7336CE263"><p>Addressing mechanism </p> </li> |
|
25 <li id="GUID-3ADE85A9-3BF2-50F0-9A94-01002A440CF9"><p>Error handling mechanism </p> </li> |
|
26 <li id="GUID-E0E95CA4-EB36-5D90-8313-CC608ED2ABF1"><p>MTM DLL information </p> </li> |
|
27 </ul> <p>A Message Server abstraction that is used to locate and load particular |
|
28 MTM components. </p></section> |
|
29 <section><title>Description</title> <p>The MTM architecture is the plug-in |
|
30 scheme provided by the Messaging Framework to integrate different message |
|
31 transports to the Message Server. The plug-in scheme consists of four interfaces, |
|
32 the UI MTM, UI Data MTM, Client MTM and Server MTM. </p> <ul> |
|
33 <li id="GUID-A2763364-A20D-52B4-99FB-5D08747C22B4"><p>Client MTM manages the |
|
34 message type’s data model, providing the UI MTM and client applications with |
|
35 interfaces to access and to search for messages. </p> </li> |
|
36 <li id="GUID-BCF8AD0F-42D9-55D3-92DE-998FBD97E5E9"><p>User Interface (UI) |
|
37 Data MTM provides icons, menu text and a list of capabilities for a message |
|
38 type. </p> </li> |
|
39 <li id="GUID-66AFF19F-1ED2-5AF4-A079-5C8B5344E557"><p>User Interface (UI) |
|
40 MTM implements the user interface required for the message type, including |
|
41 a viewer, editor and dialog settings. </p> </li> |
|
42 <li id="GUID-6C73D1B2-A6F6-5F26-A814-6BD38F43DE3B"><p>Server MTM provides |
|
43 message transport over the network and manages a queue of outstanding client |
|
44 requests, and ensures that more than one message of a given type is sent simultaneously. </p> </li> |
|
45 </ul> <p>Each of the MTM DLLs is a polymorphic DLL that exports an instance |
|
46 of a system-defined base class. The Message Server and client applications |
|
47 use these base class interfaces to access MTM functionality in a generic and |
|
48 extensible way. The MTM in turn implements a specialized version of the class |
|
49 to provide specific message type functionality. </p> <p>Client applications |
|
50 can load and use the UI MTM, UI Data MTM and Client MTM DLLs. The DLLs are |
|
51 loaded within the client’s process space. The Server MTM DLLs are loaded within |
|
52 the Message Server process. The Messaging Middleware architecture allows clients |
|
53 to access the combined functionality of the Message Server and the Server |
|
54 MTMs through a single server interface. The following figure shows the MTM |
|
55 architecture. </p> <fig id="GUID-D9869871-08F2-5601-8A9C-1871D2AB4E1B"> |
|
56 <title> MTM architecture </title> |
|
57 <image href="GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e281776_href.jpg" placement="inline"/> |
|
58 </fig> </section> |
|
59 <section><title>Message Server and MTMs</title> <p>The following figure shows |
|
60 the relationship between the Message Server and MTMs. The grey classes are |
|
61 realisations of the MTM interfaces defined by the Messaging Framework. The |
|
62 Message Server depends on the Server MTM interface and controls access to |
|
63 message data and delegates protocol-specific requests to Server side MTMs. |
|
64 Messaging clients depend on the Client, UI and UI Data MTM interfaces and |
|
65 the Message Server client API. </p> <fig id="GUID-F743115B-6934-5026-9D15-8DA5BE3A2D6F"> |
|
66 <title> Relationship between Message Server and MTMs |
|
67 </title> |
|
68 <image href="GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e281792_href.jpg" placement="inline"/> |
|
69 </fig> </section> |
|
70 <section><title>MTM class summary</title> <p>Messaging Middleware provides |
|
71 the following base classes, which defines the component interfaces for MTM |
|
72 implementations. </p> <ul> |
|
73 <li id="GUID-B72EC9B2-DC51-502F-A23C-303597405B13"><p>The base class for UI |
|
74 MTMs is <xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref>. </p> </li> |
|
75 <li id="GUID-5549337B-621D-52F0-A19F-A0EA61816486"><p>The base class for UI |
|
76 Data MTMs is <xref href="GUID-899C6D87-5712-34A7-902C-EA452894700C.dita"><apiname>CBaseMtmUiData</apiname></xref>. </p> </li> |
|
77 <li id="GUID-D2E07F67-69DF-54A8-A7E2-3EA64FD74D3C"><p>The base class for Client |
|
78 MTMs is <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref>. </p> </li> |
|
79 <li id="GUID-42B1BC77-0D29-5627-93C2-CDCC02417B2F"><p>The base class for Server |
|
80 MTMs is <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita"><apiname>CBaseServerMtm</apiname></xref>. </p> </li> |
|
81 </ul> <p> <b> Important:</b> MTMs can also provide message type-specific functionality |
|
82 that is not defined by the base class interfaces. For example, for IMAP4, |
|
83 perform a full synchronization with a remote service; for POP3, connect to |
|
84 a remote server and download messages. The APIs for the client interfaces |
|
85 are extensible through run time type information provided by the <xref href="GUID-B3B2885E-DB79-3047-BCD9-C2A9BF08F5FD.dita"><apiname>QueryCapability</apiname></xref> API, |
|
86 and the <xref href="GUID-41E5C23D-CD5A-3DD3-BFCE-F8C576CE2149.dita"><apiname>InvokeAsyncFunction</apiname></xref> and <xref href="GUID-88DEB665-B4B1-3F73-A2A9-44E72C8514B4.dita"><apiname>InvokeSyncFunction</apiname></xref> APIs. </p> <p>For |
|
87 information on how to implement the base classes, see the <xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">Implementing |
|
88 MTMs</xref>. </p> </section> |
|
89 <section><title>MTM functions</title><p>The MTM DLLs provide the following |
|
90 functions. MTMs implement them according to the requirements for the message |
|
91 type: </p><ul> |
|
92 <li id="GUID-56E24547-DA0C-5B01-B68C-4A928D07802F"><p>Querying functionality </p> <p>Allow |
|
93 the client applications to query the supported functionality for the message |
|
94 type. For example, the maximum message size or whether attachments are supported. </p> </li> |
|
95 <li id="GUID-110AFD4C-09D8-585D-B078-6DCD1A4525B4"><p>Message management functionality </p> <p>Allow |
|
96 the client applications to manage the messages, for example, to send, reply |
|
97 and forward messages. </p> </li> |
|
98 <li id="GUID-92F32F80-8E5F-56F9-B35B-99A2934C50E5"><p>Attachment management |
|
99 functionality </p> <p>Allow the client applications to handle attachments. |
|
100 For example, to add, remove or create an attachment for a particular message. </p> </li> |
|
101 </ul></section> |
|
102 </conbody><related-links> |
|
103 <link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server |
|
104 and Store</linktext></link> |
|
105 <link href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita"><linktext>Types of |
|
106 MTM</linktext></link> |
|
107 <link href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita"><linktext>Implementing |
|
108 MTMs</linktext></link> |
|
109 </related-links></concept> |