- Z jakiej wersji Javy zamierzamy korzystać?
- Jakiego środowiska developerskiego będziemy używać?
- W jaki sposób będziemy budować projekt?
- Co będzie punktem wyjścia: kontrakt zapisany w WSDL (top-down) czy kod Javy (bottom-up)?
- Jakiej biblioteki użyjemy do zaimplementowania web serwisu?
- Na jakim serwerze zamierzamy rozproszyć aplikację?
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