API за интегриране с Domino

Аз съм сравнително начинаещ в света на Lotus/Domino и ми беше възложена следната задача на Domino.

Достъп до пощенската кутия на Domino на потребителя (от сървър на междинен софтуер) и изтриване на определени злонамерени имейли от същата.

Допълнителна информация: Има външен инструмент/процес за сигурност, който анализира всички входящи имейли и може да маркира имейла като злонамерен. В случай, че бъде маркиран като злонамерен, искам да изтрия този имейл от входящата кутия на съответния потребител.

Моето решение ще бъде внедрено на собствен сървър за междинен софтуер (базиран на Linux) и ще получава входящи известия за това какви имейли трябва да бъдат изтрити.

Domino сървърът, внедрен в моята среда, е Lotus/Domino 9.

За предпочитане искам да внедря тази функционалност с помощта на Java.

Проучих и намерих потенциалните опции за мен за достъп до входящата кутия на потребителя на Domino сървър.

1) Видях, че има IBM C/C++ API инструментариум за Domino. C API ми изглежда доста сложен на пръв поглед. Също така ще трябва да инсталирам клиента на Notes (на моя сървър за междинен софтуер), за да мога да извикам C API дистанционно?

2) Има ли Java API, който мога да използвам за свързване/достъп до Domino? Намерих:

Те изглежда показват, че има някакъв Java/REST API интерфейс, но не съм сигурен дали мога да използвам това за достъп до данни за входяща/пощенска кутия. Изглежда, че показва данни от „Календар“, но нищо за данни за имейл/пощенска кутия като такива.

3) Попаднах на проекта OpenNTF Domino API докато проучвате и изглежда, че има Java API. Трябва ли да използвам това?

Кой е най-добрият начин за достъп до Domino от гледна точка на външен сървър? Заседнал ли съм с C/C++ API или има относително (по-лесен за разбиране и използване) REST/Java API, който мога да използвам ? Също така ще трябва ли да имам инсталиран клиент на Notes на моя сървър за междинен софтуер, за да мога да извикам API (C/C++ или Java)?


person user3873843    schedule 11.06.2015    source източник
comment
Както предсказа Ричард Шварц, някои от връзките вече са прекъснати, а именно тези на IBM. Ревизирах ги с web.archive.org, където е възможно. За съжаление връзката IBM Knowledge Center - IBM Domino Designer 9.0.1 - API Documentation не работи и не е архивирана   -  person xlm    schedule 09.04.2020


Отговори (1)


  1. You should avoid the Notes C and C++ APIs unless:
    • You know Lotus Notes and Domino really, really well (or are willing to learn a lot very quickly) and
    • Вие определяте, че единственият начин да разрешите проблема си е да напишете сървърна задача или разширение на Domino. Тези API работят с данни на Lotus Notes/Domino на много ниско ниво.
  2. Yes, there is a Java API. It's been around for years. There is also a REST API that can be accessed from Java (or from any other language that can make HTTP connections) but that's only been around for a few years.
    • The Java API is richer and can get to a lower level than the REST API.
    • REST API може да е подходящ за това, от което се нуждаете, но има много голям шанс сървърът да трябва да бъде настроен специално, за да му позволи достъп до пощенските кутии. Това няма да е непременно така, ако използвате Java API.
    • Използването на Java API ще зависи от това дали можете да изпълнявате своя Java код на машина, която има инсталиран основния код на Lotus Notes/Domino. Също така ще трябва да проучите техническите и лицензионните въпроси за това.
    • Един добър начин да се образовате относно Java API е да прочетете книгата на Bob Balaban. Той е стар и неактуален, но покрива повечето от това, което трябва да знаете за целта, която описахте. Едно предупреждение е, че е написано толкова рано, че не покрива необходимостта от извършване на recycle() повиквания. Но той публикува главите тук за безплатно изтегляне. След като вече знаете за recycle(), сигурен съм, че можете да намерите информация защо и кога имате нужда от него.
  3. OpenNTF Domino API е заместител с отворен код на официалния Java API. Създаден е за решаване на много наистина неприятни проблеми (като recycle()!) и се натъква на ограниченията при използването на официалния API.

Re: инсталиране на клиента на Notes, за което споменах, когато споменах основния код на Lotus Notes/Domino под точка 2. Имате две опции за официалния Java API:

  1. Local:
    • This uses the core Notes/Domino code to make Notes RPC calls to the server, so you will have to install a licensed version of the Notes client or Domino server code to get the core code.
    • Обърнете внимание, че ако сте обвързани с 64-битова JVM, имате нужда от 64-битов код и това означава, че трябва да инсталирате Domino сървъра вместо клиента на Notes, тъй като няма 64-битов клиент на Notes.
  2. Remote:
    • You don't need to install any Notes or Domino code but this uses CORBA/IIOP instead of Notes RPC to talk to the server. This requires enabling IIOP on the Domino server.
    • Последният път, когато проверих, OpenNTF API поддържа само „Локален“ модел.

Все пак трябва да спомена: това е почти извън темата поради следната причина:

Въпросите, които ни карат да препоръчаме или намерим книга, инструмент, софтуерна библиотека, урок или друг ресурс извън сайта, не са по темата за Stack Overflow, тъй като обикновено привличат упорити отговори и спам. Вместо това опишете проблема и какво е направено досега за разрешаването му.

Въпреки че съществуването на Java API може лесно да бъде потвърдено чрез търсене тук в StackOverflow, трябва да призная, че намирането на основни препратки за Domino е доста по-трудно. Има буквално 25-годишна информация за него, която е там, но често е на фрагменти и е остаряла. Наистина е трудно да се намери информация за инструменти, API и библиотеки, които са налични и актуални днес. Опциите наистина са доста ограничени.

Като такъв смятам, че този въпрос заслужава отговор, тъй като всъщност не се свежда до мнение. Няма да правя препоръка обаче, защото това наистина би било мнение.

person Richard Schwartz    schedule 12.06.2015
comment
Ричард – Благодаря за вашите насоки и насоки. Планирам да прегледам книгата Програмиране на Domino с Java и да се образовам и запозная с Domino Java API - person user3873843; 15.06.2015