Lotus Domino API Development
Nash!Com provides services on all level of Lotus C-API area. This does include DSAPI (Lotus Webserver API) and specially on Lotus Connector API. Currently we are focused on Win32/Intel, AIX, Linux and Solaris. But can also provide services for most other platforms.
Lotus Domino APIs provide a great opportunity to extend current Lotus Domino Products on Infrastructure Level.
It can specially be helpful if you need a very fast, secure and high available solutions. C-API is the underlaying programming level that is also used by Lotus and Iris to develop Servertasks like Replica, Router, Update, Http and Designer.
Solutions on C-API level are platform dependent but can be coded in a way that helps to port them to different target platforms. We focused on the main Domino platforms to ensure solutions are available for most customers and partners. In case you have a special need for a platform that we do currently not support it depends on the size of your project if it makes sense to port it to platforms like AS/400, OS/2, HP-UX or S/390.
In addition API development helps to understand the underlaying infrastructure in a more detailed way. That helps us to troubleshoot administrative problems and to integrate Domino with external systems.
Below you find a short description about C-API from the C-API documentation.
What Is the Lotus Notes C API?
The Lotus Notes C API is a set of subroutines and data structures that allows you to write programs that access databases. The API subroutines are written in C and can be called from C programs. The Notes C API lets us extend the software with user-written "add-ins." An add-in can be on the Notes workstation and present the user with your own pull-down menu choices, or it can be on the Lotus Domino Server, where it forms a new server task that runs alongside the standard Lotus Domino Server tasks.
Formats for Notes C API Programs
Programs written using the Notes C API may take a variety of formats.
- Stand-alone applications
- Lotus Domino Server add-in tasks
- Notes workstation menu add-ins
- Notes workstation import and export libraries
- Database hook drivers
- Extension manager hook libraries
- Drivers for external (non-Notes) databases
Stand-alone Notes C API applications are main programs that make API calls into the Domino/Notes software. Notes workstation software does not need to be running before you run these programs.
Lotus Domino Server Add-In Tasks
Lotus Domino Server add-in tasks are custom tasks that you write and add to the set of tasks in the Lotus Domino Server software. The Lotus Domino Server software is composed of approximately eight standard tasks that carry out the server's functions. An add-in task is added to this set and can include any of the Notes C API operations.
Notes Workstation Menu Add-Ins
Notes workstation add-ins are custom libraries that you write and add to the Notes pull-down menu structure.
A workstation menu add-in can include any of the Notes C API operations. The add-in can create new options in the Notes pull-down menu structure and receive control when the user selects one of these choices. Workstation menu add-ins also have the ability to place text at the cursor location when the user is composing a Notes document.
Notes Workstation Import and Export Libraries
Notes workstation import/export libraries are custom libraries that you write and add to the set of Notes import or export choices.
The list of import and export choices available through the Notes user interface is controlled by a matching set of libraries. You can create your own import or export library containing the Notes C API code that imports or exports a new type of file or text. After creating the library, you add it to the set of import/export libraries that Lotus supplies with Notes. The new option appears in the Notes user interface in the import or export dialog box.
Extension manager hook libraries
The Extension Manager loads a shared executable library (for example, an OS/2 or Windows DLL) which can then specify a callback routine to be called before or after Domino/Notes performs internal processing. You can use this feature to track the internal activity of Domino/Notes, perform processing in addition to the standard Domino/Notes processing, or extend the operation of Domino/Notes.
Drivers for External (Non-Notes) Databases
External database drivers are custom libraries you write that let you use the Notes @DbLookup and @DbColumn functions to access data in your own non-Notes databases.
Domino Web Server Application Interface (DSAPI)
The Domino Web Server Application Programming Interface (DSAPI) is a C API that lets you write your own extensions to the Domino Web Server. DSAPI extensions, or filters, are notified whenever a particular event occurs during the processing of a request. There are a number events for which a filter can be written for.
- User Authentication
- Group List Construction for a Particular User
- Raw requests
- URL Remapping
Lotus Connector API (LC API)
The Lotus Connector architecture is optimized to support high speed operations with enterprise-scale functionality. The following set of issues were primary considerations during the design of the LC API
- Support high performance. Lotus Connector's top priority is performance relating to both quantity of data and speed of data movement. As a result, LC API support libraries are tuned for performance. Moreover, some of the Connector API entry points are intended to be used within a tight loop from the calling program, and should be developed and used with this in mind.
- Allow product-specific capabilities to be utilized by Lotus Connector. The API allows developers of Connectors to support the specific capabilities of external products. For example, the Notes Connector supports response hierarchies, file attachments, and other Notes-specific functionality, while the Oracle Connector supports Oracle array transfer.
- Independence from platform and locale. Lotus Connectors are platform-independent and is available on multiple server based platforms. The support libraries handling text also have built-in text translation, removing virtually all locale considerations from Lotus Connector developers.
- Independence from format of data being accessed. The LC API allows the development of Connectors which can access not only standard database information (Notes and relational data), but data from other sources such ERP systems, directories, transaction systems, and other data providers.
- Independence from programming language. The API avoids, when reasonable, dependence on programming language specific constructs in order to allow the use of Lotus Connectors from programming languages other than C (for example, LotusScript and Java). "When reasonable" means that this goal is implemented as much as possible while not significantly interfering with other requirements (especially performance). When language-specific constructs are utilized, an alternate language independent method of performing the same operation is always supplied.