09 maja 2007

SCA - Service Component Architecture - zaczynam rozpoznanie czegoś całkowicie dla mnie nowego

Do tej pory przyszło mi głównie pracować z technologiami, które w dużej mierze należały do Przemysłowej 5-tki (Java EE 5). Ostatnio jednak coraz bardziej bombardowany zapytaniami o SOA i okolice i odpowiadając pobieżnie, wydaje się, że wreszcie nadeszła pora zajrzeć na inne podwórko. Tym podwórkiem są technologie integracyjne pod łopoczącym sztandarem nazwanym SOA. Sam akronim - Service-Oriented Architecture - oddaje jedynie myśl czy podejście architektoniczne, a mnie potrzeba technologii. Interesują mnie technologie Java, więc postanowiłem sprawdzić czego można się douczyć na innym podwórku i dlaczego wciąż jestem o to pytany. Przyznaję, że samo pojęcie - SOA - nie jest obce, ale kiedy przychodzi do produktów, technologii i konkretnych wdrożeń nie mam wiele do powiedzenia. Na pewno nie tyle, ile mógłbym powiedzieć o Java EE. Jest kilka podobnych obszarów, którymi chciałbym się zająć dokładniej(m.in. OSGi), ale zainteresowanie SCA zeszło się z kilkoma (być może nie-)przypadkowymi wydarzeniami i przeważyło szalę.

Po pierwsze, w mojej komercyjnej działalności postanowiono, abym zajął się tym tematem i związanymi produktami jak IBM WebSphere Integration Developer (WID), IBM WebSphere Process Server (WPS), IBM WebSphere Enterprise Service Bus (WESB) i kilkoma mniej istotnymi z mojego punktu widzenia. Nie, nie zamierzam opisywać tu moich bojów z tymi produktami. Pozostawię to na inną działalność.

Drugim powodem była wiadomość na grupie dyskusyjnej programistów Apache Geronimo, gdzie Raymond Feng z Apache Tuscany napisał w Geronimo/Tuscany integration o planach integracji tych dwóch środowisk.

Trzeci powód, hmmm, nie pamiętam teraz, ale sama chęć zapoznania się z technologiami już przecież wystarczy, nieprawdaż? Pamiętam, kiedy projekt Apache Tuscany był zakładany i od początku go śledziłem, aż do momentu, kiedy ilość wiedzy potrzebnej do zrozumienia poruszanych tam tematów przekroczyła moje możliwości. Teraz wracam do Tuscany, ponieważ jest to jedyna znana mi otwarta implementacja specyfikacji SCA i podobno działa na Apache Tomcat i być może niedługo na Geronimo.

Acha, przypomniałem sobie o trzecim powodzie - nowy członek grupy Warszawa JUG jest zobowiązany do zaproponowania możliwych tematów prelekcji na spotkaniach Warszawa JUG. Ot, kilka pomysłów, co mogłoby być interesujące. I tak się dzisiaj stało, że padło kilka propozycji, m.in. SOA - moda czy realne korzyści oraz ESB w Java (openESB, JBoss ESB, ServiceMix) do czego szybko dorzuciłem podobny temat Specyfikacje SOA - SCA, SDO, BPEL i pojawił się kolejny powód dla rozpoznania SCA.

A, i jakby tego było mało, właśnie dzisiaj otrzymałem zaproszenie na webinar JBoss Enterprise Service Bus (ESB) 4.0 Webinar: Service-oriented architecture middleware is born o produkcie JBoss ESB, którego powstawanie również śledziłem i pamiętam początki (nie było to tak dawno w końcu - bodajże w zeszłym roku), a który jest blisko związany ze wspomnianymi technologiami.

Nie pozostaje, więc nic innego jak zabrać się do pracy i poczytać o SCA i Apache Tuscany. Kilka ciekawych adresów wartych odwiedzenia (materiał w języku angielskim, ale tak to bywa z nowymi technologiami), których odwiedzenie zaplanowałem na dziś:
Zaczynam od prezentacji o Apache Tuscany. Wkładam słuchawki i zabieram się do długiego spania^H^H^Hsłuchania.

7 komentarzy:

  1. Z SOA jest taki problem, że łatwiej znaleźć jedną rzecz której nie zawiera niż powiedzieć z czego się składa, więc technologii pewnie znajdzie się bez liku:) i będzie o czym pisać.

    Właściwie analizując aplikacje oparte o AJAX łatwo natrafić na SOA w postaci usług sieciowych (na ogół wywoływanych w trybie RPC) opartych o SOAP (WSDL i czasem UDDI).
    Biorąc pod uwagę, że Apache Axis (1 i 2) to implementacje usług sieciowych i są zintegrowane z Geronimo, to można powiedzieć, że spotkałeś się z nimi na swoim podwórku.

    Co do informacji to cenną jest zapewne pozycja "Java i usługi sieciowe" wydawana przez oficynę ReadMe (na licencji O'Relly). Są w niej dobrze omówione protokoły SOAP, WSDL i UDDI.

    A jeżeli chodzi o ESB, to jednym z systemów przesyłania wiadomości dla Javy jest w nim JMS, więc programiści J2EE w wersji 4 powinni czuć się swojsko.

    OdpowiedzUsuń
  2. ESB? A czy ktoś tego w rzeczywistości w używa? Moim sceptycznym okiem już sam Message Broker jest dostarcza możliwość kowersji typów komunikatów w locie i udostępnianie ich za pomocą, np. komunikatów MQ czy WSDL. Czy stawianie kolejnej warstwy jest uzasadnione? Sama SOA jak najbardziej ale ESB? To nie jest lekki przerost formy nad treścią?

    OdpowiedzUsuń
  3. Witam,

    Od pewnego czasu jestem zmuszony do zapoznawania się z technologią BPEL. W związku z tym, zacząłem wgryzać się w OpenESB oraz NetBeansIDE 6. Projekt rozwija się dość intensywnie. Wygląda to na prawdę ładnie. Jednak SOAP jest technologią dość ciężko i generuje wiele problemów.
    Po wakacjach chętnie wygłoszę jakąś prelekcję na ten temat używania BPEL, OpenESB i NetBeans IDE 6.

    Pozdrawiam.

    OdpowiedzUsuń
  4. Kolego "uszychaha" :) Przecież Message Broker to jest ESB. ESB to taki sam niby-byt jak i SOA, można to zrealizować na wiele sposobów, np. WebSphere Message Broker.

    Co do prezentacji o BPEL, OpenESB i NetBeans IDE 6. Nie mogę się doczekać! Czekam!

    OdpowiedzUsuń
  5. >Przecież Message Broker to jest ESB.
    no właśnie nie! Pierwszy powód to ze sama 3literowa niebieska firma rozdzieliła te produkty. Po drugie broker jest dostawcą usług do szyny (esb) której zadaniem jest tylko w sposób łatwy i prosty korzystanie z tych informacji dostarczanych przez dostawców.
    Moje pytanie jest proste. Jaką trzeba osiągnąć masę krytyczną (posiadania wielu różnych dostawców - systemów) aby istniał sens użycia esb?
    Jak sam frodo2000 zauważył i tak "wszyscy" korzystają z SOAP, WSDL czy UDDI.
    Przecież nawet w życiu kupowanie bez pośredników jest tańsze (wydajniejsze) niż z nimi (nie mylić z prostsze).

    OdpowiedzUsuń
  6. Nie do końca jest tak, że używanie ESB jest bezcelowe. Message Broker co prawda pozwala na pracę bez użycia standardów zdefiniowanych w ESB, ale w 3literowej firmie, jak to nazwałeś stanowi rozszerzenie standardu.
    Czy warto korzystać z pośredników? Myślę, że tak. ESB w sumie nie jest pomysłem nowym. Kiedyś istniała CORBA, jednak jej wykorzystanie na heterogenicznych środowiskach było utrudnione. ESB daje Ci wygodę tworzenia usług sieciowych bez spędzania godzin nad pisaniem poprawnych plików WSDL, kodowaniem SOAP czy umieszczaniem usług w repozytoriach UDDI.
    Problem ogranicza się wówczas do opakowania Twojej aplikacji niezależnie czy napisałeś ją w COBOLu, C, Javie czy innym języku.

    Co do wykładu to chętnie i ja posłucham. Ogólnie od kilku miesięcy przymierzam się do nauki BPELa, ale jakoś nie mogę się porządnie za to zabrać:)

    OdpowiedzUsuń
  7. Wlasnie skonczylem ESB projekt:
    Uzwyalismy BEA AquaLogic Service Bus.
    Poza tym JRockt to bardzo dobra JVM

    Dwa lata temu bylem na prezentacji IBM-u, gdzie mowili ze ESB to pattern a nie produkt. Ale coraz ciezej wciskac ludziom MQ :)

    OdpowiedzUsuń