niedziela, 16 marca 2014

PLOUG znowu w akcji


Dobre wieści – po dwuletniej przerwie powraca do swojej aktywności Polish Oracle Users Group. W nieco zmienionej formule, już 10 kwietnia 2014 w Warszawie odbędzie się XVIII Konferencja po hasłem „20-lecie PLOUG i Oracle 12c”.
Mnie cieszy to tym bardziej, że wśród szacownego grona prelegentów znalazła się i moja skromna osoba.
Konferencja oprócz sesji plenarnej podzielona będzie na 2 równoległe seminaria:
  • Administrowanie Oracle Database 12c
  • Tworzenie aplikacji biznesowych dla baz danych Oracle Database 12c
Tematy zapowiadają się wyjątkowo ciekawie – z abstraktami można zapoznać się już na stronie domowej konferencji.
W swoim i organizatorów imieniu, serdecznie zapraszam do rejestracji wszystkich, którzy na co dzień mają do czynienia z oprogramowaniem giganta z Redwood.

niedziela, 16 czerwca 2013

Oracle ADF Design & Architecture Principles Training – moje subiektywne wrażenia

W tym tygodniu miałem przyjemność uczestniczyć w 5-cio dniowym szkoleniu zorganizowanym przez Oracle dla swoich pracowników i partnerów. Ta się składa, że mój obecny pracodawca jest jednym z  partnerów Oracle w Polsce, w związku z czym, nie omieszkałem wykorzystać okazji i wraz z kolegą z naszego Oracle Competence Center udaliśmy się do stolicy. Już same nazwiska prowadzących zapowiadały wysoki poziom zajęć. Szkolenie prowadzili sami mistrzowie ze szkoły Jedi :) - Frank Nimphius i Chris Muir. Z oboma panami znam się od ładnych paru lat z community,  ale nigdy nie mieliśmy okazji poznać się osobiście. Tym bardziej więc nie mogłem się doczekać, bo co innego dyskutować mailowo lub na forum, a co innego wymienić opinie bezpośrednio.
Pierwsze co zaskoczyło mnie na wejściu to nieobecność programistów z polskich partnerów Oracle - trochę to dziwne. Zjechali się natomiast ADF'owcy z całej Europy i to było super, ze względu na możliwość wymiany doświadczeń.
Ale do rzeczy. Szkolenie miało formę prezentacji tematycznych i dyskusji. Nie było hands-on lab'ów i dobrze, bo ilość materiału z jaką przyjechali prelegenci byłaby nie do przekazania w 5 dni. Omawiane zagadnienia nie dotyczyły problemów typu how-to. Advanced i complex to były słowa klucze do wszystkich omawianych problemów.
Tematy, o których poniżej, to subiektywny wycinek całości, zasługujący na szczególną uwagę. Aczkolwiek muszę podkreślić - nie było zagadnień niepotrzebnych czy o charakterze marketingowym - czyste techniczne tematy.

Budowanie zespołu Application Development Framework

Tutaj wszyscy mieli podobne doświadczenia i byli zgodni co do jednego. Jest problem z doświadczonymi programistami, którzy przychodzą ze świata Hibernate i Spring. Zamiast szukać rozwiązań w ramach frameworka implementują własne rozwiązania. Konkluzja na koniec była taka, że chyba lepiej brać niedoświadczonych ludzi do zespołu :). To co powinni umieć na początek to SQL (dobrze), Java (na poziomie podstawowym), podstawy JEE (oczywiście JSF obowiązkowo).


ADF Architectural Patterns

Temat bardzo ważny z punktu widzenia architekta aplikacji. Chris omawiał różne podejścia do budowy struktury projektu, wszystkie za i przeciw. Część omawianych zagadnień można odsłuchać i obejrzeć na jego screancaście "Angels in the ADF Architecture".

Task Flow Data Control Scope Options and Task Flow Transaction Options


Temat rzeka i naprawdę złożony. Widoczne na pierwszym obrazku lista rozwijalna i checkbox, w różnych kombinacjach całkowicie zmieniają mechanizm zarządzania transakcjami i połączeniami do bazy danych. Ja wreszcie dowiedziałem się co to jest Current Data Control Frame :). Zagadnienie z kategorii absolutely must know. Dokumentacja jak przyznał sam prowadzący jest niestety słaba jak herbata w akademiku. Na szczęście główne problemy opisał na "Oracle ADF Architecture Square".

Task Flow Communication Patterns

Temat zaawansowany. Nie jest obowiązkowy ale warto i wypada znać. Jedyne czego zabrakło mi w zakresie to omówienie wzorca "Dynamic Tabs UI Shell Template Functional UI Pattern". Zainteresowanych odsyłam do artykułów Franka na OTN. Jest tam większość omawianych zagadnień.

ADF Region Interaction Functional Pattern
Contextual Events Introduction
Master- commander: reusable contextual event solution
Contextual Events: Callback pattern
Parent view initializing region navigation

Service Integration Architectures and ADF Service Architectures

Jeden z najbardziej interesujących mnie tematów. Jak budować aplikację ADF opartą o usługi Web Services. Tak naprawdę ścierają się tutaj dwie koncepcje i możliwości. Można zawrapować proxy w komponenty biznesowe i pracować tak jakby pod spodem była baza danych. Można też wygenerować ADF Data Controls dla Java Beanów. Nie mam zdania co jest lepsze. W pierwszym wypadku zyskujemy łatwość tworzenia GUI. Należy jednak pamiętać, że BC to framework stworzony do komunikacji z bazą danych z nie bezstanowymi usługami. Trzeba dysponować zaawansowaną wiedzą, żeby dostosować działanie BC do Web Service'ów. Obszerna dyskusja nad właściwym podejściem toczyła się już zresztą wcześniej na ADF  Enterprise Methodology Group (Best practices for ADF Frontend on top of OSB or SOA Suite). Konkluzja Franka była następująca: Oracle używa obu podejść. On osobiście preferuje podejście POJO Proxy, szczególnie, że można tam zapiąć Coherence.
To zagadnienie potraktowałem jako ciekawostkę. ADF Business Components mają możliwość wystawiania w postaci SDO Web Services. Podobno zostało to już dopracowane i nie ma błędów.

Więcej o ADF i WS można poczytać i posłuchać tutaj:

Oracle Magazine "Service Please" By Frank Nimphius
Oracle Magazine "Consume Early, Consume Often" By Frank Nimphius
Best Practices for Integrating SOAP and REST services into Oracle ADF

Application Customization and MDS


Temat kastomizacji aplikacji z wykorzystaniem Metadata Services (MDS) został potraktowany przez Franka bardzo obszernie i kompleksowo. Okazało się jednak, że w rzeczywistości nikt tego nie używa w praktyce poza WebCenter. Cóż, obawa o performace? Dodatkowe koszty projektu w stosunku do tego co się zyskuje? Ja osobiście widzę pewne istotne zastosowanie ale może o tym przy innej okazji.

Architecting for ADF Mobile Integration

ADF Mobile to chyba najmłodsze dziecko Oracle. Zagadnienie w zasadzie na osobne szkolenie. Tak, da się w ADF robić aplikacje mobilne. Co więcej jest do dość łatwe dla ludzi ze znajomością framework'a. Chris pokazał to na żywo w 10 min. (jedyne demo przez całe 5 dni). Zagadnienie w zasadzie na osobne szkolenie.

Error Handling

Gruby temat jeśli chce się to zrobić porządnie. W zasadzie obowiązkowe do zapoznania się: Oracle Magazine "Catch Me If You Can" By Frank Nimphius

Programming Best Practices

Wzorce, wzorce i jeszcze raz wzorce. Wrócił temat pisania kodu obok framework'a i zakresu umiejętności developerów. Dziedziczenie vs. klasy narzędziowe. W zasadzie tematy obowiązkowe dla każdego ADFowca.

Afterpaty :)

Goście zafascynowani byli Warszawą i polskim jedzeniem. Potwierdziła się też teoria, że nasze piwo i Żubrówka likwidują wszystkie bariery językowo-kulturowe :).


Podsumowanie

To było super 5 dni. Chyba jedno z najlepszych i najbardziej merytorycznych szkoleń na jakich byłem.

poniedziałek, 24 września 2012

Oracle ADF Essentials - wreszcie za darmo

Stało się. Po wielu latach nacisków ze strony community Oracle wypuściło darmową wersję swojego framework'a. Okrojona (niezbyt mocno) wersja nosi nazwę Oracle ADF Essentials. Od tej chwili używając GlassFish'a (bądź innego serwera, na którym zadziała ADF) nie potrzebujemy żadnych licencji.

Co mamy za darmo 
  • ADF Faces Rich Client components - kompletny zestaw komponentów (ponad 150) JSF 2.0 w implementacji Oracle 
  • ADF Controller – rozszerzenie standardowego kontrolera JSF
  • ADF Binding - warstwa abstrakcji pomiędzy serwisami dostarczającymi dane a warstwą widoku (brak odpowiednika w innych frameworkach) 
  • ADF Business Components - lekki framework do komunikacji z bazą danych i definiowania logiki biznesowej

  

Czego nie ma w wersji darmowej
  • ADF Mobile 
  • ADF Desktop Integration 
  • ADF Security (OPSS) 
  • ADF Web service data control 
  • ADF remote taskflows 
  • ADF Business Component’s Service Interfaces
  • ADF Data Controls dla BI, Essbase, and BAM 
  • Integracja z MDS, OWSM, Enterprise Manager i MBeans 
  • High Availability and Clustering 

Jak widać powyżej nie są to kluczowe elementy ADF i praktycznie w niczym nie uszczuplą one funkcjonalności aplikacji ani nie wprowadzą istotnych zmian w podejściu do developmentu.

Wspierane serwery Oracle WebLogic 11g, WebSphere i GlassFish 3.1 (Full Platform). Swoją drogą szkoda, że Oracle w dalszym ciągu nie wspiera Tomcata.

ADF Essentials dostępny jest z wersją JDevelopera 11.1.2.3.0, ale w najbliższych planach jest także pełne wsparcie w ramach Enterprise Pack For Eclipse, oczywiście w tym przypadku zamiast Business Components używamy EJB/JPA.

Oracle nie poszło niestety o krok dalej i nie opublikowało kodów źródłowych. Są one dostępne jedynie dla posiadaczy asysty technicznej na My Oracle Support.

Czy dzisiejszy krok spowoduje zwiększenie popularności framework'a - cóż pożyjemy - zobaczymy :)