Przetwarzanie danych przychodzących

Przetwarzanie zdarzeń przychodzących jest operacją asynchroniczną. Adapter odpytuje serwer FTP, pobiera zdarzenia z serwera FTP, przekształca informacje w obiekty biznesowe i wysyła obiekty biznesowe do skonfigurowanego punktu końcowego.

Adapter odpytuje pliki znajdujące się w katalogu zdarzeń serwera FTP w regularnych odstępach czasu, które są zależne od ustawienia właściwości FTPPollFrequency. Gdy plik znajdzie się w katalogu zdarzeń, adapter odczytuje cały plik i pobiera go do lokalnego katalogu zdarzeń na serwerze adaptera. Po pobraniu pliku adapter archiwizuje ten plik na serwerze FTP w katalogu archiwum określonym we właściwości FTPArchiveDirectory lub usuwa go (jest to zależne od konfiguracji użytkownika). Parametrami, które można skonfigurować, są: katalog zdarzeń, katalog archiwum, okres odpytywania i liczba odpytywań (liczba plików do odpytania w pojedynczym cyklu odpytywania).

Po pomyślnym wysłaniu obiektów biznesowych do punktu końcowego, zdarzenia są archiwizowane w katalogu archiwum w lokalnym systemie plików lub są usuwane (jest to zależne od konfiguracji użytkownika). Adapter musi zarchiwizować lub usunąć zdarzenia, ponieważ w przeciwnym przypadku będą one odpytywane ponownie.

Adapter wysyła obiekt biznesowy do punktu końcowego za pośrednictwem selektora funkcji. Selektor funkcji wybiera operację, która ma zostać wywołana względem komponentu, i wiązanie danych.

Operacja przetwarzania zdarzeń przychodzących składa się z następujących kroków:
  1. Serwer FTP generuje zdarzenia w postaci plików.
  2. Adapter FTP odpytuje pliki znajdujące się w katalogu zdarzeń.
  3. Pliki są w całości pobierane na serwer adaptera.
  4. Pliki są dzielone na podstawie wartości właściwości SplittingFunctionClassName i SplitCriteria.
    • Jeśli konieczne jest wykonanie operacji dzielenia na podstawie separatora, udostępniana jest klasa wykonująca tę operację i kryteria podziału.
    • Jeśli konieczne jest wykonanie operacji dzielenia na podstawie wielkości pliku, udostępniana jest nazwa klasy wykonującej tę operację.
    Użytkownik może zaimplementować niestandardową klasę zawierającą logikę dzielenia plików. Adapter udostępnia interfejs Java dla takiej klasy. Szczegóły interfejsu zostały przedstawione poniżej.
    public interface SplittingFunctionalityInterface extends Iterator{
    	public int getTotalBOs(String filename) throws SplittingException;
    public void setBODetails(String filename, int currentPosition, int totalBOs,
     boolean includeEndBODelimiter) throws SplittingException;
    	public void setSplitCriteria(String splitCriteria);
    	public void setEncoding(String encoding);
    	public void setLogUtils(LogUtils logUtils);
    public boolean isSplitBySize()
    }
    1. public int getTotalBOs(String filename) throws SplittingException

      Ta metoda zwraca łączną liczbę obiektów biznesowych znajdujących się w pliku zdarzeń określonym przez zmienną filename.

    2. public void setSplitCriteria(String splitCriteria)

      Ta metoda pobiera właściwość splitCriteria, która jest oparta na liczbie obiektów biznesowych znajdujących się w pliku zdarzeń. Każdy obiekt biznesowy jest zwracany podczas wywołania metody next().

    3. public void setLogUtils(LogUtils logUtils)

      Ta metoda jest używana do ustawiania obiektu LogUtils, którego klasy użytkownik może używać do zapisywania komunikatów śledzenia i rejestrowania w plikach.

    4. public void setEncoding(String encoding)

      Ta metoda jest używana do ustawiania kodowania treści pliku zdarzeń. To kodowanie jest używane podczas odczytywania treści pliku. To kodowanie jest także używane w przypadku właściwości SplitCriteria.

    5. public void setBODetails(String filename, int currentPosition, int totalBOs, boolean includeEndBODelimiter) throws SplittingException

      Ta metoda jest używana do ustawiania numeru bieżącego obiektu biznesowego. Dzięki temu przy każdym wywołaniu metody next() jest zwracany numer obiektu biznesowego ustawiony we właściwości currentPosition. Jest także pobierany parametr includeEndBODelimiter, który (jeśli jest ustawiony na wartość true) powoduje dołączenie właściwości SplitCriteria na końcu treści obiektu biznesowego. Ta metoda musi być wywoływana przed każdym wywołaniem metody next() po to, aby metoda next() zwracała treść obiektu biznesowego ustawionego w tej metodzie.

    6. Iterator ma trzy metody (hasNext(), next i remove()), które również muszą zostać zaimplementowane. Metoda next() zwraca treść obiektu biznesowego, którego pozycja jest ustawiona za pomocą metody setBODetails(). Jeśli pozycja obiektu biznesowego nie jest ustawiona, wywołanie metody zakończy się niepowodzeniem. Metoda hasNext() wskazuje, czy istnieje pozycja obiektu biznesowego ustawiona za pomocą metody setBODetails(). Przed wywołaniem metody hasNext() należy wywołać metodę setBODetails(). Metoda remove() jest wywoływana w przypadku każdej pozycji obiektu biznesowego, która jest usuwana z tabeli EventPersistence. Za pomocą tej metody nie należy usuwać pliku zdarzeń. Służy ona tylko do czyszczenia zasobów, które są używane.
    7. public boolean isSplitBySize()

      Ta metoda wskazuje, czy plik zdarzeń jest analizowany na podstawie wielkości, czy na podstawie separatora.

  5. Adapter wysyła obiekt biznesowy do punktu końcowego za pośrednictwem selektora funkcji, w którym jest wywoływane skonfigurowane wiązanie danych i rekord tekstowy jest przekształcany w obiekt biznesowy. Obiekt biznesowy jest wysyłany do punktu końcowego.

Warunki używania |


(c) Copyright IBM Corporation 2005, 2006.
To Centrum informacyjne jest oparte na technologii Eclipse (http://www.eclipse.org)