Montag, 23. August 2010

Java EE 5 Zertifizierung (SCDJWS 5)

Die Zertifizierung zu Java SE 6 und Java EE 5 war absolviert und ich dachte, die Story sollte weitergehen. Ich überlegte deshalb entweder das Zertifikat zum Sun Certified Enterprise Architect (SCEA) oder das von Sun Microsystems™ (nun Oracle) angebotene Zertifikat für Java Web Services zu absolvieren.

Eine starke Tendenz war zunächst für den SCEA vorhanden. Ich habe deshalb das Buch “Sun Certified Enterprise Architect for Java EE Study Guide (Second Edition)” von Mark Cade und Humphrey Sheil gelesen. Das Buch lässt sich flüssig lesen und beschreibt den Weg und Prüfungsinhalt zum SCEA. Das Buch dürfte allerdings mit knapp unter 200 Seiten nicht ausreichend sein, um das Examen erfolgreich zu absolvieren. Dennoch ist es als Einstiegswerk durchaus empfehlenswert, weil es einen sehr guten Eindruck über den Prüfungsinhalt des SCEA vermittelt.

Der nächste Schritt wäre die Anmeldung bei Whizlabs für das SCEA-Examen gewesen. Ich hatte mich aber vor diesem Schritt bereits anders entschieden und wollte meine Erfahrung im Java Web Services und SOA-Bereich fundieren.

Die Entwicklung von Java Web Services ist mit JAX-WS und den I-Stack Technologien wesentlich einfacher geworden. SOAP und RESTful Web Services lassen sich mit annotierten Klassen als Servlet- oder EJB-basierter (Stateless Session Bean) Endpoint implementieren. Aufwändige Konfigurationen im Deployment Deskriptor und Mappings wie bei JAX-RPC können nun optional entfallen und vollständig durch Annotations ersetzt werden.

Der Entwicklungsansatz Java2WSDL ist deutlich einfacher geworden. Zwar ist der Ansatz ausgehend von den Java Quellen einen Web Service aufzubauen aus Sicht der Interoperabilität nicht immer der beste Ansatz, doch bringt er den Vorteil aus bereits bestehenden Geschäftskomponenten leicht einen Web Service generieren zu können.

Die Komplexität des Ansatzes WSDL2Java wird sehr gut durch Generierungswerkzeuge unterstützt, die Komplexität der WSDL und XML-Schema Programmierung bleibt allerdings erhalten. JAXB 2.0 als Teil des I-Stacks ist eine standardisierte und leistungsfähige „Binding Technology“, die ebenfalls mit Annotations die Anzahl der Generate und damit zu pflegenden Klassen reduziert.

StAX als klassische Pull-Parser Technologie ist als Iterator oder Cursor API einsetzbar. StAX ist eine gute Lösung zum Parsen von XML Dokumenten für die weder DOM noch SAX geeignet erscheinen. Die Parser und deren APIs wurden mit JAXP vereinheitlicht und können mit entsprechenden „Factories“ instanziiert werden. Java SE 6 beinhaltet JAXP und JAXB 2.0, sodass der XML-Verarbeitung im Kontext von Java SE nichts mehr im Wege steht. JAXP kann auch zur Transformation von XML-Dokumenten mittels XSLT verwendet werden. In JAXP ist mit TrAX eine entsprechende Transformationsprogrammierschnittstelle vorhanden.

Java SE 6 beinhaltet einen Endpoint-Publisher für Web Services. Der Endpoint-Publisher erlaubt es, WebService Endpoints unabhängig von einer gemanagten Umgebung zu publizieren und anzusprechen.

All diese vielen schönen Funktionalitäten haben mich dazu bewogen das Zertifikat zum SCDJWS 5 zu erwerben. Das Aufbautraining konnte beginnen.

Die ersten Schritte beim Aufbautraining waren es, den genauen Prüfungsinhalt abzufragen und die entsprechenden Spezifikationen zu lesen. Angefangen bei der JAX-WS Spezifikation bis hin zur „Web Services for Java EE“ Spezifikation. Wichtig sind darüber hinaus die Spezifikation zum WS-I Basic Profile 1.1 und WSDL. Kenntnisse über SOAP 1.1 und SOAP 1.2 insbesondere zu SOAP-Messages und Faults sollte man sich ebenfalls aneignen.

Die SCDJWS 5 Study Notes von Ivan A Krizsan und das SCDJWS 5 Quiz mit detaillierten Erläuterungen zu den einzelnen Fragen von Mikalai Zaikin sind absolut zu empfehlen. Danke an dieser Stelle an Ivan und Mikalai für die nutzvollen Informationen.

Als Prüfungsvorbereitung habe ich zunächst die ePractices von Oracle für den SCDJWS 5 genutzt. Die ePractice besteht aus zwei Blöcken mit jeweils 60 Fragen. Whizlabs bietet noch keinen SCDJWS 5 (CX-310-230) Prüfungssimulator an. Ich habe deshalb den Prüfungssimulator für SCDJWS (CX-310-220) bei Whizlabs gebucht und grundsätzlich Fragen zu vorherigen Prüfungsinhalten (zum Beispiel JAX-RPC) ausgeklammert. Die Erläuterungen bei Whizlabs waren auf jeden Fall hilfreich.

Parallel zum Studium der Literatur habe ich praktische Übungen beigemischt. Ich programmierte deshalb SOAP und REST Web Services (Servlet und EJB Endpoints) mit Ansprache der Services durch unterschiedliche Clients (generisch mit dem Dispatch Interface und Web Service Proxies auf Basis der WSDL) .

Geschrieben habe ich Unit-Tests in denen ich XML-Dokumente mit SAX, DOM und StAX parste, XML-Dokumente mit TrAX transformierte und umfangreiche JAXB Funktionalitäten programmierte. In diesem Kontext ist es auch sinnvoll SOAP-Messages mit SAAJ zu erzeugen und entsprechende Attachment-Funktionalitäten zu programmieren. Kleinere XPath Testroutinen und Schema Validierungen sollten ebenfalls programmiert werden.

Als Entwicklungsumgebung habe ich das JBoss Developer Studio 2.1 GA und den JBoss AS 6 (Milestone 3) eingesetzt.

Mein Trail zum SCDJWS 5 war:

Online ePractice zum SCDJWS 5 von Oracle
Online Training bei Whizlabs (vorheriges SCDJWS Examen)
Offline SCDJWS 5 Quiz von Mikalai Zaikin
Durcharbeiten der SCDJWS 5 Study Notes von Ivan A Krizsan
Lesen der WS-I Basic Profile und WSDL 1.1 Spezifikation
Tutorials zu Java EE 5 Web Services und Interoperabilität mit dem Microsoft™ .NET Framework

Nützlich im Vorfeld sind:

SOA Using Java™ Web Services von Mark D. Hansen
Java SOA Cookbook von Eben Hewitt
Java Web Services; Up and Running von Martin Kalin

Zur Zertifikatsprüfung bin ich diesmal relativ relaxed gegangen und konnte deshalb, wie schon in den anderen beiden Zertifikatsprüfungen, gerade wegen der gründlichen Vorbereitung, die Prüfung im ersten Anlauf bestehen.

Momentan noch im Beta-Prüfungsstadium befindet sich die Zertifizierung zum “Sun Certified Developer for the Java Web Services for the Java EE6 Platform“. Die Prüfung kann kostenreduziert absolviert werden. Es sind allerdings mehr Prüfungsfragen und Fragen zur Prüfung selbst zu beantworten.

Das Zertifikat zum SCDJWS 5 ist, obwohl bereits Java EE 6 Zertifizierungen anstehen, eine gute Basis für die Web Services Programmierung mit der Programmiersprache Java. Deutliche Unterschiede wird es sicherlich im Bereich der RESTful Web Services durch die neue JAX-RS API geben. Diese Unterschiede zu Lernen sind aber auch ohne konkrete Prüfungsabsicht interessant.

Statement von Oracle am 23. August 2010 im Anschreiben des Zertifikates

Thank you for demonstrating your excellence on the Java platform.