Świat szeroko otwarty

ESB (Enterprise Service Bus)

Za coraz szybszym rozwojem serwerów aplikacyjnych Java idzie poszukiwanie implementacji open source kolejnych elementów stosu warstwy pośredniczącej w przedsiębiorstwie. W ostatnim czasie pojawiło się kilka dojrzałych rozwiązań ESB.

Iona Technologies przekazała do ObjectWeb - na zasadach LGPL - projekt Java ESB o nazwie Celtix. Celtix ma obsługiwać najnowszą specyfikację JBI (Java Business Integration), która określa standaryzowany zasobnik obiektów integracji międzyaplikacyjnej. Ma także obsługiwać WSDL, JMS (Java Messaging Service), SOAP i XML. Narzędzia administracyjne i konfiguracyjne mają opierać się na Eclipse.

Sun Microsystems zapowiedział własne, bezpłatne ESB. Projekt ma nazwę Java Open Enterprise Service Bus i pojawił się rok temu. Sun planuje jego wersję komercyjną. Open ESB opiera się na specyfikacji JBI 1.0. Sun ma udostępniać ten kod na warunkach własnej licencji Common Development and Distribution Licence.

Implementacja open source ESB, sponsorowana przez SymphonySoft i projektowana od roku 2003, jest już dostępna w wersji 1.1. Obsługuje opcje różnorodnego transportu sieciowego: JMS, POP3, TCP, UDP, serwlety i multicast. Bardziej zaawansowane mechanizmy są przewidziane w planach rozwojowych. Projekt jest udostępniany na warunkach własnej licencji SymphonySoft, niezaaprobowanej przez OSI, co może być dla wielu istotną wadą.

Z chwilą gdy powyższe kody staną się dostępne, stanowić będą dobry punkt startowy dla wdrożeń ESB na poziomie wydziałów. Jednak do wdrożeń o dużej skali firmy już inwestujące w serwery JMS klasy enterprise wybiorą raczej produkty ESP dostawców takich serwerów lub bardziej związane z konwencjonalnymi rozwiązaniami warstw pośredniczących niż rozwiązania open source.

Zarządzanie tożsamością

Kompletne rozwiązania zarządzania tożsamością obejmują pewną liczbę komponentów. Są więc trudne do realizacji w ramach pojedynczego projektu open source. Istnieje jednak kilka projektów oferujących komponenty takich systemów, w szczególności w obszarze sfederowanej tożsamości i SSO.

Zaprojektowany na uniwersytecie Yale zestaw serwletów o nazwie CAS (Central Authorization Service), udostępniany w ramach własnej licencji, jest szeroko używanych przez wyższe uczelnie w Stanach Zjednoczonych. Kolejnym zestawem narzędzi jest projekt JOSSO (Java Open Single Sign-On), który oferuje zaczepy programowe dla aplikacji ASP, PHP i Java.

Oba projekty są ukierunkowane na SSO i nie zapewniają szerszych podstaw do budowy kompletnej infrastruktury zarządzania tożsamością. Kilka projektów open source jest obecnie tworzonych z wykorzystaniem standardów sfederowanej tożsamości - SAML, WS-* i proponowanych przez Liberty Alliance.

Ping Identity jest sponsorem zastawu narzędzi sfederowanej tożsamości Source ID, które zapewniają obsługę SAML 1.1 i protokołów Liberty -ID-FF 1.1 zarówno na platformie Java, jak i .Net (z dodatkowym wsparciem Liberty -ID-FF 1.2 w wersji tylko dla Javy). Biblioteki te pozwalają projektantom na implementacje mechanizmów, takich jak międzydomenowe SSO i kwerendy atrybutów. Kod jest dostępny w ramach własnej licencji Source ID. Jest także podstawą PingFederate - komercyjnego serwera sfederowanej tożsamości firmy Ping Identity.

Ambitnym projektem open source w dziedzinie sfederowanej tożsamości jest Shibboleth - projekt Middleware Architecture Committee for Education Internet2. Shibboleth jest kompletnym systemem uwierzytelniania i kontroli dostępu dla zasobów webowych, zbudowany wokół SAML i udostępniany w ramach licencji użytkownika. Oprogramowanie jest stworzone w czystej Javie i jest używane praktycznie przez pewną liczbę uczelni wyższych.

Żadne z rozwiązań oferowanych w ramach open source nie jest kompletne. Wszystkie wymagają pewnego doświadczenia w projektowaniu oprogramowania i dobrego rozpoznania środowiska sieci lokalnej. Kompletnych rozwiązań zarządzania tożsamością należy dzisiaj poszukiwać w ofertach komercyjnych. Jednak w miarę rozwoju projektów open source, takich jak Shibboleth, sytuacja może się zmienić.

Punkty sprzedaży (POS)

Z punktem sprzedaży POS (Point Of Sale), czy inaczej punktem kasowym (cash register), jest związanych kilka zagadnień funkcjonalnych, takich jak: obsługa różnorodnego sprzętu, dostosowywane gromadzenie danych i eksploracja danych zaplecza.

Dobrym przykładem dojrzałej aplikacji POS jest PHP Point of Sale. Oparty na PHP i MySQL, licencjonowany na zasadach GPL, zawiera zestaw mechanizmów dla podstawowych scenariuszy POS. Integruje się ponadto z osCommerce - aplikacją e-commerce open source, co oznacza możliwość używania go zarówno dla transakcji online, jak i w środowiskach tradycyjnych. Oprogramowanie zostało udostępnione w roku 2003. Projektowana jest wersja 9.0, która ma zawierać udoskonaloną sprzedaż i bardziej elastyczne funkcje dyskonta, a także ulepszony system raportów.

Innym przykładem jest Tina POS, dystrybuowany na zasadach GPL i zawierający szerokie wsparcie dla sprzętu, w tym czytników kodów paskowych, ekranów dotykowych i różnych drukarek. Z bazą danych łączy się poprzez JDBC i zapewnia dobrą integrację z zapleczem biurowym.

Jak na razie nie ma kompletnego rozwiązania POS, oferującego wszystkie niezbędne funkcje. Do włączania wewnętrznych rozwiązań dostosowawczych można wykorzystać jPOS - strukturę biblioteczną kompatybilną z J2EE. JPOS obsługuje znaczny zakres sprzętu i ochronę opartą na rolach. Pozwala na zaprojektowanie własnego systemu POS. Minusem tego rozwiązania jest specyficzna licencja jPOS, nieznajdująca się w wykazie OSI.

Portale

Obsługa standardów jest tu ważnym kryterium dla większości projektów klasy enterprise. W obszarze serwerów portali oznacza to motor zgodny z J2EE, obsługujący takie standardy, jak portlety (JSR 168) i WARP (Web Services for Remote Portlets). Istnieje spora liczba projektów open source konkurujących w tej dziedzinie.

Wyróżniającym się jest platforma eXo. Projekt ten już w fazie produkcyjnej został pomyślany jako dostosowywany portal i CMS (Content Management System) dla przedsiębiorstwa. Zasobnik portletu jest zgodny z JSR 168 i został wyposażony w pamięć podręczną, wyszukiwanie połączeń i mechanizm sesji dzielonych. Sam portal wykorzystuje technologie JavaServer Faces (JSR 127). Oprogramowanie to przewidziane jest w ramach dwóch licencji - komercyjnej i GPL. Zespół eXo może zapewniać zarówno wsparcie online, jak i szkolenia.

Apache Software Foundation od dłuższego czasu interesowała się oprogramowaniem portalowym i prowadzi kilka projektów z tego zakresu. Oprogramowanie Jetspeed-1 jest podstawowym systemem portalowym zbudowanym na technologiach JSP i XML. Jetspeed-2 w większym stopniu wykorzystuje komponenty i jest bardziej ukierunkowane na portlety. Apache oferuje także referencyjną implementację kontenera portletu o nazwie Pluto. Wszystkie te projekty są dostępne w ramach licencji Apache.

JBoss oferuje JBoss Portal - element zestawu projektowego aplikacji Java JEMS (JBoss Enterprise Middleware System). Jest to kolejny zasobnik portletu zgodny z JSR 168, który zapewnia możliwość dostosowania rozwiązania poprzez JavaServer Faces, MyFaces i Spring oraz dodatkowo zarządzanie zawartością i administrację. JBoss oferuje portal zarówno w ramach licencji komercyjnej, jak i LGPL, a także profesjonalne wsparcie serwisowe oraz usługi konsultingu i szkolenia.

Na koniec - GridSphere, serwer portalowy zgodny z JSR168, obsługujący także JavaServer Faces. Zapewnia dodatkowy API portalowy, który jest kompatybilny z IBM WebSphere. Wsparcie serwisowe, konsultacje i szkolenia oferowane są przez Gridwise Technologies. Udostępniany na zasadach własnej licencji GridSphere, niezatwierdzonej przez OSI.

To tylko kilka przykładów; należy pamiętać, że w tej kategorii dostępnych jest jeszcze wiele innych.


TOP 200