Po Java Developers Days 2008 w Krakowie, kilka osób uczestniczących w prowadzonej przeze mnie sesji o programowaniu aplikacji zdarzeniowych wykorzystujących Complex Event Processing (CEP), zwróciło mi uwagę, że moja sesja była trochę zbyt "hardcore'owa", tzn. zbyt szczegółowa i zawierała zbyt dużą ilość materiału. Rzeczywiście, ponieważ uczestnicy konferencji to przede wszystkim deweloperzy Java, to chciałem, aby to wystąpienie miało bardzo techniczny charakter i - zgodnie z modnym dzisiaj wśród deweloperów stylu Unconference - zaplanowałem taki mały eksperyment, że pokażę tylko jeden slajd (tytuł wystąpienia), a następnie będzie się odbywać już tylko programowanie. Mówiąc kolokwialnie chyba troszkę przegiąłem i zabrakło bardziej czytelnego wyjaśnienia kodu, który wypływał spod moich rąk...
W każdym razie, mimo dosyć długich przygotowań, nie zaliczę tego wystąpienia do udanych... Męczy mnie to, więc postaram się przynajmniej częściowo naprawić swój błąd i w dalszej części - mam nadzieję już trochę bardziej przystępnie - wyjaśnić, co robiłem i dlaczego. Chyba lepiej po konferencji niż wcale...
Spisałem więc w postaci kilku dokumentów przebieg przeprowadzonych przez mnie demonstracji, dodając również opis przygotowania sobie własnego środowiska do eksperymentów z CEP, tak, aby osoby zainteresowane budową aplikacji zdarzeniowych w Javie, mogły w pełni samodzielnie wykonać (już w trochę spokojniejszym tempie) demonstrowane przeze mnie przykłady.
Wprowadzenie do tematu Complex Event Processing jest zawarte w załączonej prezentacji w PDF. Oprócz tego, na stronach JDD, czyli http://08.jdd.org.pl, będą dostępne wszystkie materiały z konferencji (w tym nagrania wideo z wystąpień). Jeśli ktoś nie lubi slajdów, a woli krótki opis, to poniżej jest link do opisu tego, co mniej więcej starałem się powiedzieć o aplikacjach zdarzeniowych i Complex Event Processing przed zademonstrowaniem sposobu ich programowania: http://jdn.pl/node/1583
W dalszej części, zademonstruję jak buduje się aplikacje zdarzeniowe korzystające z CEP. Użyję tutaj jednego z pierwszych zdarzeniowych serwerów aplikacyjnych Java - technologii Oracle CEP Server (dawniej BEA WebLogic Event Server).
Zacznę od budowy przykładowego "interfejsu użytkownika" (front-end'u) aplikacji zdarzeniowej. Będzie to aplikacja webowa, poprzez którą będę tworzył zdarzenia, które następnie będą wysyłane do właściwej aplikacji zdarzeniowej (back-end'u). Wewnątrz tej aplikacji zdarzeniowej zdefiniuję reguły CEP, które w sposób ciągły będą przetwarzać przychodzące zdarzenia. W razie pojawienia się określonej korelacji w strumieniu przychodzących zdarzeń - czyli gdy reguła CEP zwróci wynik - utworzone będą nowe zdarzenia. Te nowe zdarzenia będą ponownie przekazane do front-end'u (aplikacji web), która wyświetli je na ekranie. Oprócz tego, zdarzenia będą także wyświetlane na konsoli serwerowej.
Czyli demonstracja składa się z dwóch części:
Poniższy schemat przedstawia elementy demonstrowanej aplikacji:
Natomiast ten schemat przedstawia komponenty aplikacji zdarzeniowej (back-end'u). Za pomocą strzałek oznaczyłem także przepływ zdarzeń pomiędzy komponentami:
Aby samodzielnie wykonać przedstawione tu demo, należy wcześniej zainstalować stosowne oprogramowanie (serwery aplikacyjne: Oracle WebLogic Server 10.3 oraz Oracle CEP Server 10.3) i przygotować sobie środowisko pracy. Czynności z tym związane opisałem krótko we wpisach, do których linki są poniżej:
Miłej zabawy z Complex Event Processing w Java !
Pozdrawiam,
Waldek Kot
Najnowsze komentarze
3 weeks 1 dzień ago
4 weeks 4 days ago
4 weeks 6 days ago
6 weeks 2 days ago
6 weeks 5 days ago
7 weeks 4 hours ago
7 weeks 1 dzień ago
7 weeks 2 days ago
8 weeks 7 hours ago
9 weeks 9 hours ago