Odpowiedź brzmi...JXTA!

Mimo udanego startu Microsoftu w zakresie wprowadzenia spójnej architektury wspierającej inicjatywy e-commerce, batalia o dominację na tym polu jeszcze się nie skończyła. Do walki przystępuje najsilniejszy rywal giganta z Redmond - firma Sun Microsystems, znana m.in. z wypromowania języka Java.

Mimo udanego startu Microsoftu w zakresie wprowadzenia spójnej architektury wspierającej inicjatywy e-commerce, batalia o dominację na tym polu jeszcze się nie skończyła. Do walki przystępuje najsilniejszy rywal giganta z Redmond - firma Sun Microsystems, znana m.in. z wypromowania języka Java.

Podczas prac nad platformą .NET wiadomo było, że nieuniknione będą porównania nowej inicjatywy Microsoftu z platformą programistyczną Java. Mimo iż Microsoft obecnie nie deklaruje chęci przeniesienia podstawowego środowiska uruchomieniowego (które stanowi główny element architektury .NET) na inne niż Windows platformy systemowe, nie wyklucza też definitywnie takiego scenariusza. Ponadto model wymiany informacji zaproponowany w ramach .NET zapewnia możliwość współpracy między usługami pracującymi w różnych środowiskach (dzięki standardom XML i SOAP). Trudno więc się dziwić konsternacji programistów na całym świecie, zmuszonych do podjęcia decyzji - co lepsze: .NET czy Java? Wstępne oceny proponowanego przez Microsoft rozwiązania są raczej przychylne. Wszyscy zgadzają się, że nowy język C# (zaprojektowany pod kątem usług .NET) stanowi poważną konkurencję dla Javy, przewyższając ją pod wieloma względami, zwłaszcza w kwestiach bezpieczeństwa i wydajności (opinię tę potwierdzają nawet twórcy Javy). Teraz jednak sytuacja skomplikowała się jeszcze bardziej. Firma Sun ogłosiła bowiem zamiar rozwijania platformy programistycznej o nazwie JXTA (twórcy proponują wymawiać ten skrót jak słowo "juxta", zgodnie z angielską wymową). Środowisko to ma być częścią platformy rozwojowej Suna o nazwie ONE (Open Network Environment), zbliżonej koncepcyjnie do rozwiązań zaproponowanych przez Microsoft w ramach .NET. JXTA korzysta z zalet języka Java i w założeniach ma wspomagać implementację modelu programowego peer-to-peer (P2P).

Paradygmat P2P

W odróżnieniu od przyjętego dotychczas, na potrzeby aplikacji internetowych, modelu oprogramowania rozproszonego, gdzie przetwarzanie danych odbywało się na osi klient/serwer (lub "cienki" klient/serwer, jak zwykło się określać współpracę przeglądarki internetowej z serwerem HTTP), w przypadku modelu P2P nie można tak łatwo ustalić tego typu zależności. Zamiast prostego, dwukierunkowego przepływu informacji (zorganizowanego w postaci żądań i odpowiedzi kierowanych do takich usług, jak HTTP), model ten przewiduje wymianę danych z wieloma różnymi ośrodkami zlokalizowanymi w Internecie (lub sieci podobnej, o zdecentralizowanej, heterogenicznej strukturze). Ośrodki te zwane ogólnie usługami odpowiadają za realizację prostych, spójnych kontekstowo zadań, takich jak publikowanie określonych informacji, autoryzacja dostępu czy wykonywanie obliczeń (np. finansowych). Dostęp do funkcjonalności eksponowanej przez usługę odbywa się za pomocą standardów - XML i SOAP. Ich zaletą jest relatywnie prosta struktura oraz duża elastyczność i możliwość dostosowania do konkretnych wymagań. Taki model przetwarzania informacji pozwala na składanie (ulubioną metaforą większości programistów i analityków zajmujących się tą tematyką są klocki lego) funkcjonalności oferowanej przez serwis internetowy (np. portal lub sklep online) z wielu odrębnych fragmentów działających na różnych maszynach (pod kontrolą różnych systemów operacyjnych czy wręcz korzystające z urządzeń, takich jak telefon komórkowy czy sprzęt AGD). Skrajny przypadek ilustrujący działanie aplikacji zbudowanej zgodnie z wytycznymi modelu P2P wyklucza nawet istnienie "procesu centralnego", kontrolującego przepływ informacji i ustanawiającego reguły działania aplikacji. Działające przykłady ilustrujące takie podejście od dawna można wskazać w sieci. Należą do nich ICQ czy okryte złą sławą Gnutella i Freenet. Nietrudno dostrzec zalety, jakie oferuje model P2P. Do najważniejszych można zaliczyć dużą niezawodność aplikacji i znacznie mniejsze obciążenie sieci wykorzystywanej do przesyłania danych.

Usługi sieciowe - propozycja firmy Sun

Główny element architektury Sun ONE stanowią właśnie usługi sieciowe - konsekwentnie określane przez twórców jako "otwarte i inteligentne". Ich zaletą jest duża elastyczność oraz małe wymagania sprzętowo-systemowe. Usługi implementowane zgodnie ze specyfikacją JXTA będą mogły działać zarówno na dużych wieloprocesorowych maszynach, jak i w przenośnych urządzeniach, takich jak telefon komórkowy czy Pocket PC. Łatwo zauważyć, że założenia te są bardzo zbliżone do tych, jakie przyświecały twórcom platformy Jini. Wszystko jednak wskazuje na to, że to przedsięwzięcie Suna nie spełniło pokładanych w nim oczekiwań, dlatego jego rolę w znacznym stopniu ma przejąć ONE i JXTA. Tym, co odróżnia obie platformy: Jini i ONE, jest dobre przygotowanie tej ostatniej do współczesnych realiów internetowej infrastruktury, zwłaszcza w kategoriach biznesowych. Podobnie jak produkt Microsoftu, ONE ma być doskonałym środowiskiem do tworzenia rozwiązań biznesowych funkcjonujących w mediach elektronicznych: nie tylko Internecie, ale również w sieciach komórkowych nowej generacji, rozwiązaniach typu iDTV i innych. Aby zapewnić użyteczność serwisów JXTA na potrzeby e-biznesu, usługi tworzone zgodnie z tym modelem charakteryzują się dwiema cechami niezbędnymi do stworzenia skutecznej i wydajnej wymiany informacji. Pierwszą z nich jest kontekstowość. Aplikacje JXTA powinny aktywnie wykorzystywać informacje dostarczone razem z żądaniem usługi, takie jak rola, jaką pełni dany komponent w aplikacji, położenie geograficzne (i topologiczne w sieci), posiadane uprawnienia i ograniczenia itp. Dzięki tym danym (określanym mianem kontekstu) program eksponujący usługę może wybrać optymalny sposób komunikowania czy dalszego przetwarzania danych. Taka strategia ma zapewnić szybszą i wydajniejszą pracę poszczególnych elementów, stanowiących np. serwis internetowy. Drugim warunkiem skutecznej integracji usług jest opisanie eksponowanej przez nie funkcjonalności (w aspekcie zarówno gospodarczym czy biznesowym, jak i programistycznym). Obecnie istnieją dwa główne standardy wspomagające ten proces: UDDI oraz ebXML (electronic business XML). Architektura ONE wyraźnie faworyzuje ten drugi format, jako bardziej elastyczny i pozwalający na większą swobodę opisywania funkcjonalności usług. Istnieje jednak możliwość korzystania z dowolnego formatu (wszystkie obecne tego typu standardy opierają się na powszechnie akceptowanej specyfikacji XML).

Sun zamierza rozwijać platformę programistyczną JXTA. JXTA korzysta z zalet języka Java i w założeniach ma wspomagać implementację modelu peer-to-peer (PZP). Środowisko to będzie częścią platformy rozwojowej ONE zbliżonej koncepcyjnie do rozwiązań zaproponowanych w ramach MS.NET

Plany na przyszłość

Zdaniem przedstawicieli Suna zaproponowane przez tę firmę rozwiązanie nie stanowi odpowiedzi na inicjatywę .NET Microsoftu, lecz jest efektem trwających od kilku lat starań firmy o stworzenie i wypromowanie skutecznego modelu tworzenia i łączenia istniejących szeroko rozumianych usług e-commerce. Aby zapewnić silne wsparcie ze strony środowisk programistycznych oraz szybki rozwój standardu, inicjatywa ONE ma mieć charakter otwarty. Szczegóły implementacyjne mechanizmów, takich jak JXTA, będą dostępnie publicznie, podobnie jak kod źródłowy środowiska (dotyczy to głównie warstwy middleware serwera). Trudno jednak obecnie odpowiedzieć na pytanie, które rozwiązanie: .NET czy ONE ma większą szansę na powodzenie. W sytuacji, gdy tworzeniem wyspecjalizowanego oprogramowania do wspierania rozwiązań programistycznych miałyby się zająć firmy trzecie (w przypadku .NET wszystkie komponenty architektury dostarcza Microsoft), możliwość dostarczenia kompletnego rozwiązania dla większych firm w relatywnie krótkim czasie stoi pod znakiem zapytania. Dlatego prawdopodobnie nastąpi podział rynku: duże firmy potrzebujące wydajnych, skalowalnych (i relatywnie drogich) rozwiązań oraz producenci aplikacji o bardzo krótkim czasie wytworzenia i wprowadzenia na rynek (time-to-market) wybiorą platformę .NET, zaś firmy mniejsze korzystające obecnie z rozwiązań bazujących na Linuksie i Javie zdecydują się na środowisko Sun ONE. Niepowodzenia wiążące się z próbami wdrożenia Javy jako uniwersalnego i niedrogiego narzędzia do obsługi rozwiązań bazujących na WWW mogą świadczyć o tym, że Sun stracił szansę na nadrobienie zaległości w dziedzinie e-biznesu.


Zobacz również