28 lutego 2011

BPMN, BPEL4People, WS-HumanTasks i okolice a prace magisterskie

Coraz częściej pytany o tematy prac magisterskich, w moim przypadku rozmowa zwykle schodzi na bardziej techniczny temat Korporacyjnej Javy (JEE6), albo bardziej biznesowy (przynajmniej z nazwy) procesów biznesowych i systemów je wspierających - BPMS (ang. Business Process Management Systems). Oba mają związek z moimi zainteresowaniami, w których pierwszy - JEE6 - jest bardziej kultywowany prywatnie, choć ostatnio to się zmienia, a drugi - BPMS - jest nakręcany przez zainteresowania służbowe.

Tak się składa, że coraz częściej dana technologia "kręci" mnie, kiedy widzę jej zastosowanie do realizowania nawet najdrobniejszego problemu ludzi w mniejszym stopniu, albo całkowicie niezwiązanych bezpośrednio z IT - to, zwykle Ci, którzy posiadają kaskę^H^H^Hbudżet, czyli finansowanie potencjalnego naszego rozwoju technicznego, jeśli nie starczy nam (ludziom IT) czasu na prywatny rozwój...za darmo (przynajmniej na początku).

I to mnie cieszy, że w końcu dojrzałem i widzę powody, dla których należy uczyć się nowych technologii - nie dla samej nauki (co ma tę zaletę, że ćwiczy umysł, który mniej poddaje się później procesom starczym), ale głównie z myślą o możliwych przedsięwzięciach dochodowych - służbowo albo (gorąco polecam) prywatnie. Och, jak ja chciałbym móc się odważyć na krok rozpoczęcia prywatnego przedsięwzięcia...

I napisał do mnie (po wcześniejszej rozmowie) kolega IBMer, któremu zamarzyło się "rozpoznać obszar procesów biznesowych zorientowanych na użytkownika, porównać różne podejścia do tego tematu i opisać najczęściej występujące scenariusze interakcji użytkownika z użytkownikiem i użytkownika z systemem.".

Temat całkiem super...technicznie, ale na szczęście promotor "bardziej orientuje się w urządzeniach mobilnych (Android, iPad, iPhone itd), eksploracji danych tekstowych, www, bezpieczeństwem. Podsuwał mi też ogólne propozycje tematów dotyczących wizualizacji i interfejsów użytkownika (m.in. wizualizacji dużych ilości danych przestrzennych)." I to mnie bardzo ucieszyło, bo spojrzenie przyszłego magistranta, to jedynie nauka kolejnej technologii wierząc, że przyniesie mu korzyść później jako pracownik pewnej korporacji (brrr, cóż za krótkowzroczne myślenie!) Na szczęście na straży dobrego (pragmatycznego?) podejścia stoi promotor, który jakiś taki nieprotechniczny. Możnaby rzec konserwatywny, albo nieprzyszłościowy. Nic bardziej mylnego.

Dzięki owemu promotorowi ów magistrant zobligowany jest do większego ćwiczenia umysłowego i pożenić obie strony, tj. magistrant zabawi się tak z technologią, aby połączyła oba spojrzenia - własne, stricte techniczne oraz bardziej zorientowane^H^H^Hukierunkowane^H^H^Hz naciskiem na użytkownika, czyli...paradoksalnie...dokładnie tak, jak zażyczył sobie tego sam oferent-student w swojej propozycji.

Kiedy kilka dni temu miałem okazję uczestniczyć w niezwykle merytorycznej prezentacji Apache Hadoop prowadzonej przez Marcina Cylke rozkochałem się w obu :-) W pierwszym, Hadoop, dosłownie, za jego możliwości (zarezerwowałem już książki o nim w imieniu Warszawa JUG i rozwiązanie weszło na poziom wyższy mojego zainteresowania) oraz w drugim - Marcinie - za doskonałą prezentację, pozbawioną "efektów specjalnych", ale utrzymującą w napięciu, która ukazała mi piękno (= przydatność) rozwiązania bez dodatkowego chaosu komunikacyjnego (który tak często gości w moich wystąpieniach za co wszystkich poszkodowanych przepraszam). Dokładnie tego życzyłbym sobie na kolejnych spotkaniach i własnych wystąpieniach. Było się czego uczyć.

I kolejny raz dostrzegłem, że mimo całego mojego zachwytu nad umiejętnościami Marcina i Hadoopa, na moje pytanie "A gdzie to proponujesz zastosować?" usłyszałem początkowo jedynie wyraźne stęknięcie i prezenter sprezentował nam stan niekoniecznie głębokiej, ale zauważalnej zadumy. Kolejna...wybacz(cie) określenie..."ofiara" poznawania nowego bez kontekstu po co i na co dane narzędzie powstało.

Kiedy więc rozmawiałem o pracy dyplomowej wokół BPMS prowadzoną przez promotora od wizualizacji danych, przypomniałem sobie, że możnaby zaciągnąć wspomnianego Hadoopa, aby połączyć obie strony (a ze mną, to nawet trzy strony, w którą każdy z proponujących ciągnął). Niech Hadoop przetwarza dane zebrane z interakcji użytkownika z procesem biznesowym i wizualizuje je po wcześniejszym ich przetworzeniu. Widzę tutaj nie jedną, ale całą serię magisterek, a na pewno niebagatelny projekt, na którym możnaby zarobić i u nas, w Polsce.

I zmierzając ku podsumowaniu, aczkolwiek poruszając kolejny wątek, wbrew oczekiwaniom, że podsumowanie to w końcu zebranie wszystkiego i wnioskowanie, napiszę, że przejrzałem dziś z rana Sieć w poszukiwaniu informacji nt. czegoś, co zdarzyło mi się spotkać jako zadanie personelu, a dla ludzi z branży brzmiałoby bardziej swojsko jako human taski (od angielskiego human tasks).

Trafiłem najpierw na wpis na blogu IBM's Lombardi Integration Roadmap, z którym zgadzam się bezsprzecznie (pozwoliłem sobie na puszczenie wycinka na mojego twittera). Później trafiłem na Activiti oraz BonitaSoft i pojawiły się specyfikacje BPMN 2.0 oraz SCA 2.0 i pojęcia takie jak executable modeling. Ogólnie dało się wyczuć pewnego rodzaju oczekiwanie na to właściwe rozwiązanie, które pozwoli modelować jak znane produkty skupione wokół BPMS z BPMN, a jednocześnie pozwoli zaimportować artefakty innych rozwiązań bez zbędnych komplikacji (jak to udowodnił, że jest możliwe, projekt Apache OpenEJB, który z należytą uwagą honoruje rozszerzenia innych serwerów aplikacyjnych - Oracle WebLogic, GlassFish i bodajże JBoss AS do własnej konfiguracji).

Tak przyglądając się stanowi obecnemu świata BPMS i różnym próbom stworzenia tego właściwego środowiska, w którym BPMN 2.0 byłby głównym graczem, gdzie modelujący ma możliwość wykonania własnego tworu, chciałoby się powiedzieć, że na tym polu jest wiele do zrobienia i możnaby zaryzykować tezę, że rozpoczęcie projektu od zera wcale nie jest skazane na porażkę. Można się również przyłączyć do istniejących otwartych rozwiązań, ale mam wrażenie, że nauka istniejącego kodu może być tak samo wartościowa, co i stworzenie od zera. Wynik zależy od finansowania i skuteczności zespołu. Pewnym jest, że magisterek to jeszcze wiele na ten temat powstanie. Tylko, czy jest komu je prowadzić, kto nie jest już "umoczony" w projekt i zechciałby? Dostrzegam przynajmniej jedną warszawską firmę tworzącą oprogramowanie, która niekoniecznie duża, ale postawiła dużo, aby temat drążyć dalej. Ufam, że to przełoży się na coś namacalnego i...niedrogiego.