niedziela, 8 lutego 2009

Decyzje, jakie należy podjąć przed zaimplementowaniem web serwisu w Javie

Aby zaimplementować web serwis w Javie należy odpowiedzieć na następujące pytania:
  1. Z jakiej wersji Javy zamierzamy korzystać?
  2. Jakiego środowiska developerskiego będziemy używać?
  3. W jaki sposób będziemy budować projekt?
  4. Co będzie punktem wyjścia: kontrakt zapisany w WSDL (top-down) czy kod Javy (bottom-up)?
  5. Jakiej biblioteki użyjemy do zaimplementowania web serwisu?
  6. Na jakim serwerze zamierzamy rozproszyć aplikację?
1. Wersje Javy
Na wybór wersji Javy wpływ mają dwa kryteria: nowoczesne elementy języka (w przypadku web serwisów istotne są adnotacje, których nie ma w Javie 1.4) oraz kompatybilność (z którą są problemy w przypadku Javy 6). Najlepszym wyborem wydaje się Java 5.

2. Środkowisko developerskie
Każde z dostępnych IDE dla Javy posiada własne narzędzia wspierające tworzenie aplikacji webowych i web serwisów: edytory XML, XSD i WSDL, kreatory ułatwiające generowanie kodu na podstawie kontraktu i generowanie kontraktu na podstawie kodu itp. Oczywiście można z tych funkcji nie korzystać i oprzeć się narzędziach budowania projektu, a środowiska developerskiego używać tylko do kompilacji.

3. Narzędzia budowania projektu
Do wyboru: rezygnacja z narzędzi budowania projektu albo skorzystanie z Apache Ant bądź Apache Maven.

Brak narzędzi budowania projektu jest możliwy kiedy korzysta się wyłącznie z możliwości i funkcji środowiska developerskiego. Na dłuższą metę jest to jednak bardzo niewygodne, ponieważ znacznie ogranicza możliwości automatyzacji zadań.

Obecnie Ant jest wypierany przez Mavena, jednak wciąż jest używany w wielu projektach. Maven z kolei wiele rzeczy ułatwia, lecz wprowadza własne problemy.

4. Top-down czy bottom-up
Kod Javy jako punkt wyjścia to rozwiązanie najprostsze. WSDL jako punkt wyjścia to pełna kontrola nad kontraktem web serwisu.

5. Implementacja
Do wyboru całkiem sporo bibliotek: Axis, Axis 2, XFire (CXF), JWSDP i Metro (jax-ws).

Kryteria wyboru: wersja Javy i konieczność komunikowania się z web serwisami, które nie są zgodne z wytycznymi WS-I.

W przypadku Javy 1.4 wybór jest ograniczony do Axis, Axis 2 i JAWSP. Dla Javy 5 i nowszych można skorzystać z najnowszej implementacji, czyli pakietu Metro.

Jeżeli chcemy umożliwić komunikację z web serwisami, które mają interoperability za nic (przykładowo używają rpc/encoded), Axis 2 i Metro odpadają.

6. Wybór serwera
Serwery webowe (np. Tomcat) nie implementują całości specyfikacji JEE (czy też J2EE), więc konieczne jest dodanie do aplikacji bibliotek obsługujących web serwis. W przypadku serwerów aplikacyjnych (np. JBoss, WebLogic) takiej konieczności nie ma.

Brak komentarzy:

Prześlij komentarz