28 lutego 2011

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

5 komentarzy
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.

23 lutego 2011

Darmowy kurs UML Grzegorza Kukawskiego

7 komentarzy
Mój dobry kolega, z którym nie jeden egzamin przyszło mi zdawać podczas studiów - Grzegorz Kukawski zdecydował się na pewną odmianę w sposobie dzielenia się wiedzą i postanowił włożyć trochę wysiłku w stworzenie całkowicie darmowego kursu UML.

Jakby wyczuł moment, bo jeszcze wczoraj (!) rozmawiałem z innym kolegą na temat ukończenia egzaminu Sun Certified Enterprise Architect, który obecnie nazywa się Oracle Certified Master, Java EE 5 Enterprise Architect, którego jeszcze nie mam, a chęć na niego mi nie mija. Już miałem do niego podejście, mam pierwszy etap zdany, ale pozostają te eseje i tu leży sedno sprawy - do kolejnych etapów potrzebuję znajomości UML przynajmniej na poziomie podstawowym, której raczej nie posiadam - coś tam potrafię, ale być może ze względu na niewielkie użycie, a z pewnością zerowe w projektach, nigdy nie miałem możliwości sprawdzenia mojej wiedzy UML w boju. I to chciałbym zmienić! I inni widać również. To może jedynie spotkać się z moim aplauzem.

Kiedy napisał do mnie Grzesiek, stało się jasne, że nie dane mi jest nie skorzystać z okazji "upieczenia dwóch dań na jednym ogniu" - sprawdzę, co tam przygotowano, a dodatkowo pozwoli mi to uzbroić się w konieczną wiedzę z zakresu modelowania z użyciem UML i będzie SCEA5...ekhm...OCEA5. Po prostu bajka! Już widzę morze pieniędzy z tych kontraktów, które będę realizował z Tobą i Tobą, i pewnie z Tobą również :)

Nie czejając długo zapisałem się na kurs i po chwili pojawiła się wiadomość powitalna w mojej skrzynce pocztowej:

Jacku

Z pewnością nie bez powodu zainteresował Cię mój Darmowy Kurs UML.
Chcesz wiedzieć więcej na temat modelowania za pomocą UML i z pewnością interesuje Cię wiedza praktyczna z tego zakresu. Na pewno marzysz również o zwiększeniu Twojej pozycji na rynku pracy. To bardzo dobrze, pomogę Ci w tym.

Jest jednak jedno ale. Widza na temat notacji to jedno, a umiejętność modelowania systemów informatycznych to drugie. Można by to porównać do języka obcego. To, że nauczysz się np. angielskiego nie znaczy jeszcze, że umiesz w rozmowie wzbudzać sympatię anglików. Do tego potrzebujesz poznać ich kulturę, przyzwyczajenia i mentalność. Język angielski jest Ci do tego niezbędny, ale aby go wykorzystać w określonym celu, potrzeba ćwiczyć.

Wiem o tym doskonale i dlatego wierzę, że to czym się zajmuję ma sens. Zawsze staram się uczyć wiedzy praktycznej.

W tym darmowym kursie zobaczysz wiele przykładów użycia języka UML. Będziesz miał zadaną również, po każdej lekcji, pracę domową. Przygotuj się więc i zarezerwuj trochę czasu. Planuję również rozwijać swoją działalność, aby dostarczać jak najwięcej wiedzy praktycznej. Jednak na razie skupmy się nad nauką języka ang.. (przepraszam) UML.

Jeszcze kilka spraw organizacyjnych. Dzisiaj dostaniesz jeszcze wolne. Ale co trzy dni, będziesz dostawał kolejną lekcję, którą będziesz musiał zrozumieć i zrobić do niej ćwiczenia. Przygotuj się na to. Jeśli miałbyś jakieś wątpliwości możesz zajrzeć na forum (http://forum.scire.pl), gdzie ćwiczenia są dyskutowane przez Twoich współkursantów (o ile już na nim nie jesteś).

Wszystkich lekcji (nie licząc dzisiejszego wstępu) jest dziewięć i będę wysyłał je do Ciebie co trzy dni.

Zapraszam Cię na pierwsze wideo, w którym poznasz mój głos i zapoznasz się z zawartością kursu.

Pozdrawiam cię serdecznie ;)
Grzesiek Kukawski
--
http://scire.pl
http://darmowy-kurs-uml.scire.pl
http://forum.scire.pl

21 lutego 2011

78. spotkanie Warszawa JUG - Marcin Cylke z "Apache Hadoop i okolice"

2 komentarzy
Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG)Warszawska Grupa Użytkowników Javy (Warszawa JUG) zaprasza na 78. spotkanie, które odbędzie się w najbliższy wtorek, 22-go lutego o godzinie 18:00 w sali 5440 Wydziału MIM UW przy ul. Banacha 2 w Warszawie.

Temat: Apache Hadoop i okolice
Prelegent: Marcin Cylke

W trakcie spotkania zostanie przedstawiony projekt Apache Hadoop - czyli implementacja MapReduce do rozproszonego przetwarzania danych. Prezentacja "dotknie" podstaw teoretycznych, skupi się na praktycznym wykorzystaniu Hadoopa na świecie. Będą również przykłady działania. Wykład będzie wprowadzeniem do tematu - przykłady będą miały na celu obrazować działanie Hadoopa i nie będą nadmiernie komplikowane.

W czasach kiedy skalowanie procesorów jest coraz trudniejsze, mamy dostępne narzędzia do skalowania środowiska aplikacji. Temat bardzo ciekawy!

Marcin Cylke jest absolwentem Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. Zawodowo, w firmie TouK, zajmuje się integracją na szynie ESB. Swoje zawodowe doświadczenia opisuje na blogu Marcin bloguje. Prywatnie bujający w obłokach fantasta.

Planowany czas prezentacji to 1,5h, po których planuje się 15-30-minutową dyskusję.

Wstęp wolny

Zapraszam w imieniu prelegenta i grupy Warszawa JUG!

07 lutego 2011

Uruchomić zadanie co 5 sekund w EJB 3.1 ze @Schedule(second = "*/5", info="Every 5 seconds")?

13 komentarzy
Pomyślałby kto, że uruchomienie zadania w EJB 3.1 co 5 sekund wymaga jedynie stworzenia bezstanowego ziarna sesyjnego z metodą opatrzoną adnotacją @Schedule(second = "*/5", info="Every 5 seconds") i gotowe. Nic bardziej mylnego! Okazuje się, że domyślne wartości dla atrybutów @Schedule to zerowa sekunda, minuta i godzina, więc brak ich określenia sprawi, że kolejne uruchomienie będzie o północy następnego dnia. Można się nieźle przejechać podczas wdrożenia.

Więcej (kompletny projekt i kilka dodatkowych przemyśleń) w artykule Uruchomienie cyklicznego zadania w EJB 3.1 ze @Schedule.

p.s. Wciąż zastanawiam się nad moim rozdwojeniem językowym - polskojęzycznym (tutaj) i angielskojęzycznym (na http://blog.japila.pl). Głównym motywem był brak interakcji z czytelnikami, co potwierdziła statystyka na blog.japila.pl, gdzie przy 11 wpisach mam 22 komentarze. Inaczej niż tutaj i po cichutku liczę na choć szczątkowy odzew, np. co należałoby usprawnić w artykule, a szczególnie w sekcji dotyczącej testowania. Nie mam lepszego pomysłu na przetestowanie @Schedule niż to, co zaproponowałem w artykule. Dotknął ktoś tego problemu? Jakieś wskazówki na bardziej eleganckie rozwiązanie?

p.s.2. W kolejnych odcinkach dalej o usłudze budzika (ang. timer service) w EJB 3.1. Może jakieś podpowiedzi, np. z jakim kontenerem? Brak traktuję jako zachętę ku IBM WebSphere Application Server V8 lub Apache OpenEJB 3.2.