Iron - POI Excel Serwer to serwer usług wspierających czytanie plików w formacie MS Excel (*.xlsx) na potrzeby aplikacji procesowych tworzonych za pomocą narzędzia IBM BPM (IBM Business Process Manager). Implementacja oparta między innymi o biblioteki Apache POI (Poor Obfuscation Implementation).

Iron powstał on w odzewie na potrzebę przetwarzania dużych ilości danych składowanych w plikach MS Excel. Dotychczasowe rozwiązania polegały na budowaniu integracji Java, które zaczytywały dane do pamięci serwera IBM BPM, co często powodowało wyjątki „Out Of Memory” samego serwera. Aby zapobiegać tego rodzaju wyjątkom przeprowadza się odpowiednią konfigurację użycia bardzo dużej puli pamięci, co z kolei powoduje problemy wydajnościowe oczyszczania tej przestrzeni przez mechanizmy maszyny wirtualnej Java (JVM).

Nowe rozwiązanie pozwala na wydzielenie mechanizmów odczytu plików Excel poza serwer IBM BPM, a nawet umieszczenie serwera usług Iron na osobnej maszynie. Jednocześnie do instancji procesów przesyłana jest minimalna, przetworzona liczba danych, jaka jest niezbędna do kontynuacji procesu. Do komunikacji z serwerem przygotowana została biblioteka narzędziowa MS Office Toolkit (IBOOT), pozwalająca na szybką integrację z aplikacjami procesowymi. Do przetwarzania dokumentów Excel możemy wykorzystać dowolną liczbę instancji Iron, co powoduje, że całościowe rozwiązanie charakteryzuje się wysoką skalowalnością, pozwalającą na masowe przetwarzanie plików.

Wraz z rozwojem produktu zaimplementowano również mechanizmy związane z generacją raportów. Generację oparto o rozwiązania dostępne w JasperReports® Library. Dzięki integracji z Mercury DB 3.0 (HgDB), który został jest zdefiniowany jako źródło danych, można generować raporty i dokumenty definiowane w szablonach, te zaś można tworzyć i edytować za pośrednictwem oprogramowania Jaspersoft Studio.


Architektura integracji z IBM BPM

Poszczególne elementy architektury integracji z systemem IBM BPM:

  1. Instancja serwera usług Iron POI Excel Serwer
  2. Instancja serwera IBM BPM (serwer zarządzania procesami)
  3. Portal IBM BPM – warstwa prezentacyjna obsługująca formularze zadań procesowych
  4. Komunikacja z serwerem za pomocą komponentów biblioteki narzędziowej. Zaczytywanie danych zawartych w plikach za pośrednictwem wystawionych na serwerze Iron POI Excel Serwer usług REST. W komunikacji pośredniczy integracja klienta HTTP/HTTPS.
  5. Bezpośrednia komunikacja komponentów formularza zadania z serwerem Iron Iron POI Excel Serwer za pośrednictwem usług REST. Usługi pozwalają na ładowanie danych do tabeli, ich filtrowanie i zaznaczanie wierszy bez pośrednictwa serwera IBM BPM.
  6. Za pomocą integracji przesłanie tylko niezbędnych danych do instancji procesu Aplikacji procesowej.

API (REST)

Iron - POI Excel Serwer ma zaimplementowane następujące usługi REST:

  1. Pobranie danych z pliku Excel metodą GET. W wyniku otrzymamy listę wierszy odpowiadającą zdefiniowanej stronie wyników.
  2. Pobieranie unikalnych wartości znajdujących się w danej kolumnie pliku Excel wraz z możliwością ich filtrowania (możliwość użycia tzw. porównywania ‘wildcard’, gdzie znak ‘*’ reprezentuje dowolny ciąg znaków, a znak ‘?’ dowolny pojedynczy znak).
  3. Filtrowanie wierszy pliku Excel na podstawie zadanych kryteriów
  4. Pobieranie wskazanych (zaznaczonych) wierszy z pliku Excel.
  5. Zapis danych do plików Excel.

W ramach usług związanych z generacją raportów i dokumentów opartych o szablony zostały udostępnione:

  1. Usługa ładowania/aktualizacji plików z szablonami utworzonymi za pośrednictwem Jaspersoft Studio.
  2. Przegląd aktywnych transakcji związanych z generacją dokumentów.
  3. Możliwość zatrzymania (zabicia) aktywnej transakcji z generacją dokumentów.

Dystrybucja oprogramowania Iron

Dystrybucją oprogramowania komercyjnej wersji Iron zajmuje się firma IBPM.


Iron - POI Excel Serwer w akcji

Poniżej prezentacja działania usług produktu Iron - POI Excel Serwer w integracji z oprogramowaniem IBM BPM: