OpenOffice.org has it's own open database access API called SDBC (Sun DataBaseConnectivity) which is modeled on the architecture of Java's JDBC. SDBC supports several databases and database-like API's via an extensible provider architecture; ODBC 3.0, JDBC, ADO, dBase and CSV are among the databases and database management systems supported. Each SDBC provider is implemented as a UNO component; UNO is OpenOffice.org's component technology.
Mail applications such as Mozilla Messenger and Microsoft Outlook often have a local address-book (contacts) database, as well as enterprise LDAP-based directory access which is often used as a shared address-book. Mozilla extensions are implemented as XPCOM components; XPCOM is Mozilla's cross-platform ("XP") component (object model) technology.
Mozilla - the open-source project and distribution of the Netscape browser
AbZilla - the address-book project for Mozilla
XPCOM - an abbreviation of "cross-platform component object model", XPCOM is Mozilla's in-process component middleware technology
UNO - OpenOffice.org's distributed cross-platform component object model
SDBC - Sun DataBaseConnectivity
JDBC - Java's extensible database API
Outlook - the full-function licensed version of the Microsoft Outlook Express mail client, including group-calendaring and peer-to-peer workflow
Outlook Express - a cut-down mail client based on Microsoft Outlook and bundled with Microsoft Internet Explorer; replaces the MS Mail client
WAB - MS Windows AddressBook files (.wab)
PAB - MS Exchange® PersonalAddressBook
CSV - Comma-SeparatedValues, a generic exchange format for table or other repeating lists of attribute values
COM - Common Object Model, Microsoft's simple object component technology
MAPI - a traditional C API for full-function messaging, calendaring and address-book
Mail
Client |
Address
Book Type |
API |
Any |
LDAP |
Mozilla's LDAP XPCOM component |
Mozilla |
Local address book |
Mozilla address-book XPCOM
component |
Outlook |
Outlook Personal Address Book
(PAB) |
MAPI |
Outlook Express / MS
Mail |
Windows Address Book (WAB) |
WAB API |
As noted above, it was decided to provide open address-book access for both Mozilla's mail client and OpenOffice.org SDBC using a common set of components. Since the integration of new features into Mozilla is achieved using XPCOM, it was decided to develop an adaptor for Outlook and Outlook Express address-books and expose the adaptor using an XPCOM API, and also to support LDAP address-books via an existing XPCOM LDAP component.
OpenOffice.org makes extensive use of it's own UNO object component technology. Similar to the address-book XPCOM component-based provider architecture devised for Mozilla, the SDBC architecture supports providers for many different data sources with each new source having its own adaptor UNO component. To integrate the AbZilla address-book components into OpenOffice.org, an address-book data-source must be exposed via a UNO component.
The architecture chosen was to implement the address-book providers principally using XPCOM to achieve Mozilla integration. These XPCOM interfaces are then wrapped with a private C++ API which is in turn exposed to OpenOffice.org via a UNO interface adaptor. This architecture is summarized in the following diagram:
Figure 1: OpenOffice.org and Mozila, on a common address-book architecture
OpenOffice.org ships two libraries that expose the Mozilla address-book functionality to OpenOffice.org's SDBC framework:
libmozab2.so which implements a UNO-based SDBC provider and uses a (private) C++ API provided by libmozabdrv2.so
libmozabdrv2.so which exposes a (private) C++ API and uses the AbZila address-book XPCOM-based components (and indirectly uses XPCOM and it's dependencies)
Since the PAB, WAB Moz-AB and Moz-LDAP address-book providers expose XPCOM API's, the core XPCOM infrastructure and related dependencies are required to use them.
For OpenOffice.org to make use of the AbZilla XPCOM-based address-book components, OpenOffice.org now ships with a total 50 Mozilla files, comprising:
the essential libraries that implement Mozilla's XPCOM technology
configuration files
some other dependent libraries including JavaScript to access XPCOM's configuration
the library containing the four specific address-book related XPCOM components (PAB, WAB, Mozilla AB, and Mozilla LDAP)
The Mozilla libraries shipped with OpenOffice.org are not entirely built from the normal Mozilla CVS trunk as some required bug fixes developed by the project team have not yet been accepted into the standard Mozilla build. These fixes are listed within a summary bug report at http://www.openoffice.org/issues/show_bug.cgi?id=8239. If these fixes were integrated into Mozilla, it would be possible for OpenOffice.org to use the dependent files from a standard Mozilla installation by pointing a Mozilla environment variable at the Mozilla distribution, but as Mozilla is not completely bundled nor can it be assumed to be pre-installed, the Mozilla dependencies are distrbuted with (and installed by) OpenOffice.org.
AbZilla, the Mozilla address-book project - http://abzilla.mozdev.org
SDBC, OpenOffice.org's database access framework - http://dba.openoffice.org/
XPCOM, Mozilla's object component technology - http://www.mozilla.org/projects/xpcom
UNO, OpenOffice.org's object component technology - http://udk.openoffice.org/
MAPI, Windows Messaging API - http://msdn.microsoft.com/library/?url=/library/en-us/mapi/html/_mapi1book_legal_information_2.asp?frame=true
Size (bytes, on Solaris) | Filename | Solaris (Sparc and Intel) | Linux | Win32 | |
|||
222898 | component.reg | + | + | + | |
|||
|
components/addrbook.dll | - | - | + | |
|||
1247464 | components/libaddrbook.so | + | + | - | |
|||
633624 | components/libmork.so | + | + | - | |
|||
186160 | components/libmozldap.so | + | + | - | |
|||
1957760 | components/libnecko.so | + | + | - | |
|||
195712 | components/libpref.so | + | + | - | |
|||
221204 | components/libprofile.so | + | + | - | |
|||
513568 | components/librdf.so | + | + | - | |
|||
75776 | components/libstrres.so | + | + | - | |
|||
271228 | components/libuconv.so | + | + | - | |
|||
193132 | components/libucvcn.so | + | + | - | |
|||
123644 | components/libucvibm.so | + | + | - | |
|||
264368 | components/libucvja.so | + | + | - | |
|||
202092 | components/libucvko.so | + | + | - | |
|||
753456 | components/libucvlatin.so | + | + | - | |
|||
187316 | components/libucvtw.so | + | + | - | |
|||
257652 | components/libucvtw2.so | + | + | - | |
|||
82180 | components/libunicharutil.so | + | + | - | |
|||
303864 | components/liburiloader.so | + | + | - | |
|||
112548 | components/libvcard.so | + | + | - | |
|||
744852 | components/libxpconnect.so | + | + | - | |
|||
|
components/mork.dll | - | - | + | |
|||
|
components/mozldap.dll | - | - | + | |
|||
|
components/necko.dll | - | - | + | |
|||
524 | components/necko_dns.xpt | + | + | + | |
|||
|
components/profile.dll | - | - | + | |
|||
|
components/rdf.dll | - | - | + | |
|||
|
components/strres.dll | - | - | + | |
|||
|
components/ucharuti.dll | - | - | + | |
|||
|
components/uconv.dll | - | - | + | |
|||
|
components/ucvcn.dll | - | - | + | |
|||
|
components/ucvibm.dll | - | - | + | |
|||
|
components/ucvja.dll | - | - | + | |
|||
|
components/ucvko.dll | - | - | + | |
|||
|
components/ucvlatin.dll | - | - | + | |
|||
|
components/ucvtw.dll | - | - | + | |
|||
|
components/ucvtw2.dll | - | - | + | |
|||
|
components/urildr.dll | - | - | + | |
|||
|
components/vcard.dll | - | - | + | |
|||
|
components/xpc3250.dll | - | - | + | |
|||
2212 | components/xpcom_base.xpt | + | + | + | |
|||
5103 | components/xpcom_components.xpt | + | + | + | |
|||
7890 | components/xpcom_ds.xpt | + | + | + | |
|||
7806 | components/xpcom_io.xpt | + | + | + | |
|||
|
components/xpcom_thread.xpt | - | - | + | |
|||
2513 | components/xpcom_threads.xpt | + | + | - | |
|||
1560 | components/xpcom_xpti.xpt | + | + | + | |
|||
|
components/xppref32.dll | - | - | + | |
|||
8698 | components/xpti.dat | + | + | + | |
|||
8698 | components/xptitemp.dat | + | + | + | |
|||
32621 | defaults/pref/all.js | + | + | + | |
|||
2096 | defaults/pref/config.js | + | + | + | |
|||
3590 | defaults/pref/editor.js | + | + | + | |
|||
2668 | defaults/pref/initpref.js | + | + | + | |
|||
2039 | defaults/pref/inspector.js | + | + | + | |
|||
20741 | defaults/pref/mailnews.js | + | + | + | |
|||
|
defaults/pref/mdn.js | - | - | + | |
|||
1373 | defaults/pref/security-prefs.js | + | + | + | |
|||
14394 | defaults/pref/unix.js | + | + | - | |
|||
|
defaults/pref/winpref.js | - | - | + | |
|||
219 | defaults/pref/xpinstall.js | + | + | + | |
|||
|
js3250.dll | - | - | + | |
|||
352592 | libldap50.so | + | + | - | |
|||
745248 | libmozjs.so | + | + | - | |
|||
103388 | libmozz.so | + | + | - | |
|||
654092 | libmsgbaseutil.so | + | + | - | |
|||
370240 | libnspr4.so | + | + | - | |
|||
36592 | libplc4.so | + | + | - | |
|||
14432 | libplds4.so | + | + | - | |
|||
29284 | libprldap50.so | + | + | - | |
|||
2221260 | libxpcom.so | + | + | - | |
|||
|
mozreg.dll | - | - | + | |
|||
|
msgbsutl.dll | - | - | + | |
|||
|
nsldap32v50.dll | - | - | + | |
|||
|
nsldappr32v50.dll | - | - | + | |
|||
|
nspr4.dll | - | - | + | |
|||
|
nsreg.dll | - | - | + | |
|||
|
plc4.dll | - | - | + | |
|||
|
plds4.dll | - | - | + | |
|||
10244 | res/charsetalias.properties | + | - | - | |
|||
|
xpcom.dll | - | - | + | |
|||
|
zlib.dll | - | - | + | |