Produkty WSO2

WSO2 wstęp - logo

Dzisiaj chcę powiedzieć kilka słów o grupie produktów brandu WSO2. Początkowo środek ciężkości działalności firmy WSO2 leżał w obszarze middleware. Obecnie z komponentów WSO2 „składać” można całe zintegrowane platformy, jak m. in. platforma SOA, Governance, Identity and Entitlement Management, Big Data Analytics, API Management, czy platforma aplikacji mobilnych.

W moim przekonaniu, poważną zaletą produktów WSO2 jest to, że zbudowane są w oparciu o modularną architekturę OSGi, która pozwala w prosty sposób na zwiększanie zarówno możliwości funkcjonalnych, jak i wydajności.

Zacznę od oświadczenia, że nie jestem związany w jakikolwiek sposób z firmą WSO2, a artykuł nie jest sponsorowany. Mówię o tym na wstępie, gdyż moje opinie o ich produktach mogą wydać się stronniczo pozytywne :-). Faktycznie, nie mam problemu z pisaniem dobrze o produktach i firmie WSO2 z kilku podstawowych powodów:

Doceniam kompleksowość proponowanych rozwiązań. Projekty WSO2 ładnie „pokrywają” niemalże każdy element układanki pt. kompletny pakiet SOA. (W dalszej części artykułu postaram się to udowodnić.) Ponadto można je w łatwy sposób wdrożyć zarówno w modelu on-premises, jak i w chmurze. Mam wrażenie, że w ich projektowaniu i planowaniu widać pewną wizję.

Po drugie, mam bardzo dobre doświadczenia w kontaktach z supportem WSO2: od wsparcia pre-sales (prace ofertowe), do warsztatów hands-on z inżynierami. Dokumentacja, w szczególności jak na projekt open source, jest przyzwoita. Z moich informacji wynika również, że trwają intensywne prace nad dalszą poprawą jej jakości.

Po trzecie, sądzę, że sposób instalacji/konfiguracji komponentów został dobrze przygotowany. Możemy zacząć od wybranej funkcjonalności – jak np. ESB czy IdM – i z czasem dodać nowe moduły. Wszystkie produkty zarządzane i konfigurowane są w ten sam, spójny sposób. Slogan „Eclipse dla serwerów” całkiem nieźle oddaje tę ideę.

W końcu (choć w zasadzie powinienem o tym powiedzieć na samym początku), wszystkie produkty WSO2 są w 100% Open Source i oparte są o otwarte standardy.

W tym artykule chciałbym powiedzieć kilka słów o producencie oraz wylistować i zgrubnie opisać przeznaczenie wybranych produktów. W dalszym etapie, mając już ogląd sytuacji, będziemy mogli się skupić na wybranym komponencie (jak np. WSO2 ESB, czy WSO2 Application Server), czy ciekawszych funkcjonalnościach platformy.

WSO2

W całej tej „narracji”, najważniejsze są oczywiście same produkty. Osobom technicznym, jak ja, wystarczy pewnie ich opis – albo lepiej: zobaczenie ich w akcji. Każdy projekt informatyczny prowadzony jest jednak w jakimś otoczeniu biznesowym. Z tego punktu widzenia warto wiedzieć, że dany produkt/platformę technologiczną można śmiało oferować klientom, że producent daje solidne wsparcie, nie zniknie zaraz z rynku, a inżynierowie będą w stanie sprawnie rozwiązywać zgłaszane problemy. Innymi słowy: warto wiedzieć, kto za tym wszystkim stoi.

Firma

WSO2 to firma założona w 2005 roku. Do życia powołali ją eksperci pracujący na rzecz wielu projektów open source (Apache Axis, Apache Synapse, ….), które w ramach WSO2 dalej udoskonalali i zapewniali wsparcie. Współtworzyli oni standardy i normy web service (XML, SOAP, WSDL i wiele innych).

Rysunek 1 The Apache Way

WSO2 współpracują z kluczowymi międzynarodowymi organizacjami i fundacjami standaryzacyjnymi: W3C, OASIS, OpenID Foundation, Infocard Foundation, Microsoft’s Interop Vendor Alliance, AMQP Working Group, oCERT i Cloud Security Alliance. Dzięki takiemu podejściu, produkty WSO2 oparte są o otwarte standardy. Wszystkie kody źródłowe są ogólnie dostępne.

Firmie zaufało wielu klientów z różnych sektorów gospodarki, co ilustruje poniższy diagram.

 

Rysunek 2 Klienci WSO2

 

Firma uznawana jest również w samej branży IT. Świadczyć mogą o tym m. in. nagrody:

  • Kuppinger Cole European Identity Award 2011
  • InfoWorld Best Open Source Software (Bossie) Award
  • SOA World Magazine Readers’ Choice Awards
  • SD Times 100 Award (5 razy z rzędu)
  • National Best Quality Software Awards (NBQSA) – m. in. WSO2 Enterprise Service Bus : Gold Award under Infrastructure & Tools Category and Overall Gold Award.

Gartner pozycjonuje rozwiązania WSO2 w trzech różnych kategoriach jako „Visionary”:

Rysunek 3 Źródło: Gartner (styczeń 2013)

 

Analitycy Forrester oznaczają WSO2 jako „strong performer” w następujących raportach:

  • The Forrester Wave™: Standalone SOA Management Solutions, Q4, 2011
  • The Forrester Wave™: SOA Service Life-Cycle Management, Q1, 2012
  • The Forrester Wave™: Integrated SOA Governance, Q1, 2012

Powyższe wyróżnienia pozwalają sądzić, że WSO2 jest poważnym graczem na rynku produktów middleware.

Koszt wprowadzenia i utrzymania technologii

Jak wspomniałem wcześniej, komponenty WSO2 to czysty open source. Publicznie dostępne źródła, wykorzystanie standardów powoduje, że „próg wejścia” w te technologie jest stosunkowo niski. Z punktu widzenia developmentu, „wystarczy” ogólna wiedza z zakresu SOA (SOAP, REST).

Samą platformę można wykorzystywać darmowo, nieodpłatne są też narzędzia pozwalające na zarządzanie platformą i implementowanie nowych funkcjonalności – usług, procesów integracyjnych, reguł biznesowych, itp.

Dokumentacja deweloperska i administracyjna jest publicznie dostępna, a darmowe wsparcie społeczności open source jest zadawalające. Dostępne jest też płatne wsparcie, usługi szkoleniowe i certyfikacja.

Rysunek 4 Model wsparcia WSO2

Wsparcie może obejmować program QuickStart (konsulting z zakresu utworzenia architektury rozwiązania, szkoleń, stworzenie pilota rozwiązania), support wytwórczy, czy utrzymanie produkcyjne.

Celem tego ostatniego jest zapewnienie, że middleware dostarczany przez WSO2 pozwala na zachowanie wysokiej dostępności (24x7x365) dla krytycznych aplikacji klienta. Klienci tego programu w pierwszej kolejności otrzymują poprawki (nowe funkcjonalności i eliminacja błędów).

Sposób rozliczania wsparcia jest prosty i daje się go łatwo stosować zarówno w środowiskach tradycyjnych, jak i przy wirtualizacji. W dużej mierze oparty jest o liczbę serwerów, które obsługują komunikację produkcyjną (nie ma potrzeby płacenia za środowiska testowe, czy developerskie).

 

Platforma WSO2 Carbon

Carbon to platforma oparta o OSGi, w której skład wchodzi ponad 175 komponentów. Napisana w języku Java pracować może na większości systemów operacyjnych (z zainstalowanym JDK 1.6+), jak np. Windows, Mac OS X, Solaris, Linux.

Framework stanowi bazę dla wszystkich produktów i zawiera wykorzystywane w nich wspólne funkcjonalności, jak zarządzanie użytkownikami, bezpieczeństwo, logowanie, klastrowanie, usługi cache i throttle („przycinanie” pasma, np. ograniczanie liczby obsługiwanych żądań SOAP), wbudowany rejestr czy framework GUI.

To stwarza silną stabilną podstawę dla budowy dużych aplikacji korporacyjnych, a także integrację z istniejącymi aplikacjami oraz systemami, jak niektórzy mówią, zastanymi.

Spójna administracja

Jednym z zadań Carbon jest sprawienie, żeby utrzymanie platformy było sprawniejsze i odbywało się tak samo we wszystkich produktach WSO2. Dlatego dostarczane są tu narzędzia pozwalające na zarządzanie platformą. Każdym produktem można administrować z poziomu konsoli WWW.

W konsolę administracyjną platformy (czyli wszystkich modułów rozwiązania, jak ESB, Application Server, itp.) wbudowane są narzędzia m. in. do monitoringu środowiska, serwera i działających na nim elementów (usług, procesów, przepływów).

 

Rysunek 5 Konsola administracyjna – statystyki serwera usług

Dodatkowo poszczególne moduły udostępniają w konsoli administracyjnej dedykowane narzędzia. Przykładowo, WSO2 Application Server daje możliwość śledzenia komunikacji SOAP, a ESB dostarcza Mediation Message Tracer, czy wizualizację statystyk transportu i mediacji.

Możliwość rozbudowy

Ważną cechą platformy jest to, że pozwala w prosty sposób na zwiększanie zarówno jej możliwości funkcjonalnych, jak i wydajności.

Rozbudowa funkcjonalności może być dokonana w dowolnym momencie (wraz z pojawieniem się potrzeb). Konsola administracyjna pozwala na instalowanie, włączanie i wyłączanie nowych funkcji platformy.

Rysunek 6 Konsola administracyjna – instalowanie nowych modułów

Powyższy obrazek pokazuje zrzut z ekranu instalacji nowych modułów. Tak jak w przypadku pluginów Eclipse, NetBeans, czy IntelliJ, mamy tu możliwość wybrania repozytoriów komponentów, a następnie konkretnych modułów do instalacji.

Skalowanie wydajnościowe osiągnąć można przy pomocy wbudowanych mechanizmów klastrowania oraz load balancing.

Przykładowo, wdrożenie rozpocząć można od 2 serwerów pełniących funkcję ESB, by w momencie przewidywanego wzrostu obciążenia dołączyć nowy serwer, czy doinstalować (przykładowo) moduł silnika reguł biznesowych.

W ofercie WSO2 jest również produkt o nazwie Elastic Load Balancer, który realizuje fail-over i automatyczne skalowanie platformy (tworzenie nowych instancji wraz ze wzrostem obciążenia, czy „wygaszanie” nadmiarowych serwerów).

Produkty WSO2

Firma WSO2 zaprojektowała swoje produkty w taki sposób, że wdrażać można zarówno poszczególne komponenty pracujące samodzielnie, jak i tworzyć całe zintegrowane platformy. Poniższy diagram obrazuje, jak z wybranych modułów WSO2 można utworzyć kompleksowe rozwiązanie.

Rysunek 7 Przykładowa platforma WSO2

Takich konfiguracji może być wiele. Na stronach producenta zobaczyć możemy kilka predefiniowanych platform. Ale zanim będziemy mogli tworzyć takie kompozycje, sprawdźmy, jakie elementy mamy do dyspozycji.

Poniżej lista wybranych modułów WSO2 wraz z ich skróconym opisem.

Komponent odpowiedzialny za udostępnianie logiki biznesowej, danych i procesów w środowisku IT. Dawniej (pod nazwą WSO2 Web Services Application Server) oparty o Apache Axis2 umożliwiał publikowanie usług. Od tego czasu przeszedł długą drogę by umożliwiać:

  • hosting aplikacji web’owych (standardowe pliki WAR dostarczające aplikacje i/lub usługi REST, mechanizm Single-Sign On m. aplikacjami, integracja z LDAP, Googla Auth, OpenID, itd.),
  • hosting web service (wsparcie dla SOAP, JAX-WS, RESTful, JAX-RS, Apache Axis2, Apache CXF, kluczowych standardów WS-*, wielu transportów, itp.),
  • tworzenie tzw. mashup’ów (możliwość łączenia różnych źródeł danych, jak usługi, kanały RSS/Atom, bazy danych by tworzyć nowe usługi),
  • zarządzanie i monitoring (konsola zarządzania, zapewnienie QoS, gromadzenie statystyk wydajnościowych, itd.)
  • tworzenie logiki biznesowej usług w języku Java i JavaScript

Data Services Server umożliwia udostępnienie danych w postaci usług i dzięki temu integrację ich z procesami biznesowymi, mashup’ami, systemami BI czy aplikacjami mobilnymi, zgodnie z zasadami SOA. W zasadzie każde źródło danych (RDBMS, CSV, Excel, ODS, Google Spreadsheets, strony WWW) może zostać zamienione na web service lub zasób REST. Co więcej, development wykorzystuje DSL (domain specific language) i kreatory, dzięki którym nie ma potrzeby kodowania w języku Java – typową usługę bazującą na zapytaniu SQL można „wyklikać” dosłownie w minutę.

Moduł ten zaadresowany jest do obszaru BPM. Zbudowany na Apache ODE (Orchestration Director Engine), silnik procesów biznesowych definiowanych przy pomocy języka BPEL. Pozwala na tworzenie procesów (krótkich/długich, stanowych/bezstanowych) ze wsparciem dla kroków manualnych, z udziałem ludzi (WS-Human Task 1.1, BPEL4People 1.1).

Modelowanie procesów odbywać się może w graficznym środowisku WSO2 Developer Studio, a dzięki publikowaniu zdarzeń do WSO2 Business Activity Monitor zyskujemy monitoring biznesowy, możliwość definiowania i graficznego prezentowania KPI.

System klasy Business Activity Monitoring, zaprojektowany by monitorować metryki SOA, pozwala również na konfigurowanie monitoringu wskaźników biznesowych. Zaletą jego jest duża wydajność i skalowalność (osiągana m.in. poprzez zastosowanie do składowania danych bazy Apache Cassandra). Ma bogate możliwości analizy (wspieranej między innymi technologią Apache Hadoop) i wizualizacji danych, w tym narzędzia do tworzenia kokpitów (ang. dashboard) bez użycia kodu.

WSO2 ESB jest „lekką” szyną integracyjną pozwalającą, według zapewnień producenta, na uzyskanie wysokiej wydajności, dostępności, skalowalności i stabilności. Bogata paleta gotowych konektorów technologicznych daje tu znaczne możliwości integrowania systemów w architekturze SOA (w tym systemów legacy):

  • Media transmisji: HTTP, HTTPS, POP, IMAP, SMTP, JMS, AMQP, FIX, TCP, UDP, FTPS, SFTP, CIFS, MLLP, SMS
  • Protokoły transmisji: JSON, XML, SOAP 1.1, SOAP 1.2, WS-*, HTML, EDI, HL7, OAGIS, Hessian, Text, JPEG, MP4, CORBA/IIOP
  • Adaptery do systemów COTS: SAP BAPI & IDoc, PeopleSoft, MS Navision, IBM WebSphere MQ, Oracle AQ, MSMQ
  • Adaptery do usług SaaS: Salesforce, Paypal, LinkedIn, Twitter, JIRA

WSO2 Message Broker to platforma wzbogacająca istniejącą architekturę o możliwość wymiany komunikatów i zdarzeń. W szczególności, jej zadaniem jest ułatwienie kolejkowania i utrwalania komunikatów oraz dystrybucja zdarzeń w modelu publikuj-subskrybuj. Wspiera m. in. standardy JMS (1.0 i 1.1), AMPQ (0,91), co pozwala na łączenie systemów pisanych w różnych językach (Java, .NET, C, C++, Ruby, PHP, Erlang, Python, itp.).

Ciekawą cechą jest również integracja z usługą Amazon SQS.

Business Rules Server stanowi operacyjne repozytorium reguł biznesowych pozwalające na łatwiejsze odzwierciedlanie zmian organizacyjnych (bez konieczności kodowania). Pozwala na wyrażanie tych reguł w sposób prostszy, językiem lepiej zrozumiałym dla analityków biznesowych pozwala im lepiej wpływać na kształt IT.

WSO2 BRS domyślnie instalowany jest z Drools, ale pozwala na wymianę silnika reguł na dowolny zgodny z JSR 94 API.

Jak wspomniano w opisie platformy Carbon, wszystkie komponenty można łatwo ze sobą zintegrować. W szczególności, WSO2 Business Process Server pozwala na osadzanie aktywności odpowiedzialnej za wykonywanie reguł BRS. Ponadto BRS udostępnia reguły biznesowe różnymi mediami (w tym HTTP/S, JMS i SMTP). Jako usługi (REST, SOAP) mogą być one wykorzystywane w dowolnym motorze workflow.

API management to proces publikowania, wspieranie i nadzorowanie interfejsów programowania aplikacji (API) w bezpiecznym, skalowalnym środowisku. Rosnąca liczba otwartych API, za którymi stoją tacy giganci jak Facebook, Google, czy Twitter oraz możliwość wykorzystania takich interfejsów przy budowie aplikacji (w szczególności mobilnych) spowodowały duże zainteresowanie takim podejściem do tworzenia aplikacji.

WSO2 API Manager to kompleksowe rozwiązanie do publikowania i zarządzania API (w Intranecie i Internecie). Oparte jest o komponenty WSO2 zapewniające integrację, bezpieczeństwo i governance (WSO2 ESB, WSO2 Identity Server, WSO2 Governance Registry). Przy budowaniu platformy, której założeniem jest dostarczanie API i tworzenie aplikacji na podstawie API, komponent ten jest szczególnie ciekawy. Pozwala m. in. na wyszukiwanie i przeglądanie istniejących API w modelu zbliżonym do Android Marketplace, czy Apple App Store. Produkt posiada również wbudowaną obsługę bezpieczeństwa (dostęp do API w oparciu o role, podział na publiczne i prywatne API, itp.). Możliwy jest monitoring wykorzystania i wydajności poszczególnych usług.

WSO2 Governance Registry to system do składowania, zarządzania i dostępu do informacji potocznie zwanych metadanymi. Jego przeznaczeniem jest jednak nie tylko „klasyczny” SOA Governance (składowanie i organizacja metadanych wykorzystywanych przy wyszukiwaniu, wywoływaniu usług, zarządzaniu ich cyklem życia). WSO2 GREG został zaprojektowany tak, aby móc pracować z dowolnymi obiektami i ich metadanymi. Dostarcza gotowe struktury dla zarządzania (governance) konfiguracją, cyklami życia, procesami wytwórczymi, projektowaniem i współpracą zespołu, ale możliwości konfiguracji i customizacji pozwalają na wiele innych zastosowań.

WSO2 CEP to wydajny (producent chwali się przetwarzaniem 2.5 miliona zdarzeń na sekundę na pojedynczej maszynie), łatwy w użyciu serwer do przetwarzania zdarzeń (informacji z sensorów, informacje o wykonaniu transakcji, kroków procesu biznesowego, akcji w aplikacji) zgodnie z techniką Complex Event Processing. Na podstawie wniosków z tego narzędzia automatycznie wywoływane mogą być odpowiednie aktywności w systemach informatycznych.

WSO2 CEP skupia się nie tyle na przetwarzaniu pojedynczych zdarzeń, co raczej na analizie w czasie rzeczywistym zależności między wieloma zdarzeniami – korelacji czasowej, przyczynowo-skutkowej. Taka analiza pozwala zrozumieć wzorce zdarzeń, aby w przyszłości ich unikać (np. sekwencja zdarzeń prowadząca do wyłudzenia pieniędzy, sekwencja zdarzeń prowadząca do rezygnacji klienta z usług) lub wykorzystać do uzyskania wartości biznesowych.

WSO2 IS pozwala na zarządzanie bezpieczeństwem i tożsamością aplikacji webowych, usług i API. Produkt obejmuje wszystkie aspekty zarządzania użytkownikami w korporacyjnym środowisku IT — tworzenie kont użytkowników w wielu systemach (w tym aplikacji typu cloud), składowanie danych na ich temat, udostępnianie tych informacji, przydzielanie praw dostępu, kontrolę i zarządzanie dostępem do aplikacji, śledzenie i raportowanie zdarzeń związanych z dostępem.

Identity Server integruje się z takimi źródłami informacji o użytkownikach, jak LDAP, Microsoft Active Directory, Apache Cassandra, czy w końcu dowolną bazą danych dostępną po JDBC. Zarządzanie dostępem możliwe jest m. in. z wykorzystaniem podejść RBAC (role-based access control), WS-Trust, XACML, OpenID. Realizacja Single Sign-On przewidziana jest poprzez OpenID, SAML2 i Kereberos.

Jednym z ciekawszych zastosowań IS jest implementacja bezpieczeństwa usług REST – możliwa z użyciem OAuth 2.0 i XACML.

Wykorzystując WSO2 UES użytkownicy mogą tworzyć dashboardy czy tzw. microsite’y prezentujące, w sposób atrakcyjny dla użytkowników, dane gromadzone w aplikacjach środowiska IT.

W zamyśle producenta autorami komponentów wizualnych mają być nie tylko developerzy, ale również użytkownicy biznesowi.

Narzędzia dostarczane przez UES pozwalają na graficzne komponowanie dashboardów, tworzenie logiki biznesowej po stronie serwera (przy pomocy webowego IDE), składowania i reużywania komponentów (dashboard, microsite, biblioteka js) z wykorzystaniem tzw. Enterprise Store (analogia do Apple App Store).

WSO2 SS to serwer dla administratorów i developerów do łatwego tworzenia i zarządzania bazami relacyjnymi, bazami kolumnowymi i systemami plików HDFS. Upraszcza on zarządzanie cyklem życia aplikacji (tworzenie bazy danych, inicjacja, migracja danych, backup, przywracanie), zarządzanie użytkownikami bazodanowymi i ich uprawnieniami.

Roadmapa produktu ma na celu doprowadzenie do tego, by Storage Server był podstawą do świadczenia usług typu Database as a Service. Już teraz wspiera multi-tenancy, a docelowo ma zawierać funkcjonalności takie jak elastyczna skalowalność, monitoring wykorzystania miejsca i przepustowości, modele bilingowe oparte na za faktycznym zużyciu zasoby, czy możliwość „samoobsługi” (self-service provisioning).

W chwili obecnej wspierane są następujące storag’e: Casandra, HDFS, bazy relacyjne (MySQL, PostgreSQL, SQL Server, Oracle).

 

Podsumowanie

Podsumowując, WSO2 oferuje pakiet ciekawych produktów adresujących wiele obszarów środowiska IT. Możliwość wdrażania rozwiązań opartych na WSO2 na własnej infrastrukturze, w chmurze prywatnej, jak i w chmurach publicznych to kolejny atut.

Myślę, że warto przyglądać się samej firmie – w zeszłym roku chwaliła się 220% wzrostem liczby nowych klientów i pozyskaniem finansowania w wysokości 10 milionów dolarów – ale przede wszystkim jej produktom.

Do czego zachęcam!

 


O Karol Brejna

Pracuję w branży IT od roku 2000. W tym czasie brałem udział w wielu złożonych i wymagających projektach, w których pełniłem szereg ról (m. in. programista, główny projektant, architekt). Jako architekt, szczególnie lubię wzbogacanie naszego "zestawu narzędzi" o nowe technologie i produkty - poczynając od baz danych NoSQL (np. MongoDB, Redis, Neo4j), na kompletnych pakietach SOA kończąc (np. WSO2).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *