W-JAX am 12.11.

Auch am 12.11. durfte ich noch einen Tag an der W-JAX in München verbringen. Der Tag war recht angenehm, wenn auch einige des Sessions nicht das gehalten haben, was ich mir davon versprochen habe.

Session 1 : JSON in the real World

Die erste Session des Tages wurde bereits um 08:30 von Scott Davis (Groovy Veteran) gehalten mit dem Titel „JSON in the Real World“. Ich kannte zwar JSON, habe aber bisher nie damit gearbeitet und dachte mir deshalb, „in the Real World?“ – Kann nicht schaden. Scott ist ein begnadeter Speaker und es macht richtig Spass ihm zuzuhören (vor allem weil er gerne ab und an einige Jokes einbaut, die echt recht amüsant sind).

Zunächst mal JSON (Javascript Object Notation) ist nichts weiter, als eine Möglichkeit, Javascript Objekte sinnvoll als Objekt-Strukturen zu speichern (das ganze ist prinzipiell nicht mehr als eine Map). „Erfunden“ bzw. eingeführt wurde das ganze massgeblich von Douglan Crockford.

Aussehen tut das Ganze prinzipiell so:

var blogEntry = {
Blog: „Splitshade“,
Host: „WordPress“,
Topic: „Json“,
Location: „W-JAX“
}

var blogEntryArr = [blogEntry,blogEntry,blogEntry]

Scott hat in seinem Vortrag versucht, anhand eines konkreten Beispiels den Einsatz von JSON und dessen Vorteile gegenüber beispielsweise Javascript herauszuarbeiten. Scott hat den Webservice „Boss@yahoo“ verwendet, der es erlaubt, programmatisch die Suchfunktion anzusprechen und als Ergebnis u.a. auch JSON liefern kann.

Scott hat hierbei auch auf die XSS-Problematik hingewiesen, die sich durch die SOP (Single Origin Policy) von Javascript ergibt. Prinzpiiell heisst das, wir können von jedem beliebigen entfernten Server Javascript (und somit auch JSON) laden, aber eben nur einmal, mehrmals geht das nicht. Hier gibt es nun mehrere Möglichkeiten, wie man das Problem umgehen kann („Sign your Javascript“, Proxy auf unserem eigenen Server oder einen Hack (man gibt direkt eine lokale Javascript-Methode als Callback an, die als Ergebnis mit rausgerendert wird. Anhand von obigem Beispiel wäre das, wenn die CallbackMethode render() heissen würde folgender Rückgabewert: „render(blogEntryArr)“ statt nur „blogEntryArr“. D.h. die Funktion wird direkt aufgerufen, das wird beispielsweise auch bei GoogleMaps gemacht.

Zu guter Letzt hat Scott noch auf sein kommendes Buch hingewiesen (Getting Started with Grails , kostenlos!!).

Bean Validation

Im zweiten Vortrag ging es um das Thema „Bean Validation“ und den JSR 299. Gehalten wurde der Vortrag von Emmanuel Bernard (JBoss) und gleichzeitig Spec Lead für die Implementierung.

Die Referenzimplementierung für Bean Validation ist Hibernate Validator 4.03.

Prinzipiell gestatt die BeanValidation-API, ValidationConstraints als Annotations zu deklarieren und auf allen Schichten einer EnterpriseAnwendung einzusetzen, d.h. sowohl im Frontend, als auch im Middletier und sogar im Backend und der Datenbank können die Regeln geprüft werden und zwar normalerweise automatisch.

Die API definiert schon eine ganze Menge Constraints (@NotNull, @MaxLength etc.) und kann sehr einfach erweitert werden, indem beispielsweise CompositeConstraints aus den vorhandenen zusammengebaut werden. Zusätzlich bietet die API eine sehr weitreichende Integration in die JEE-Welt (beispielsweise die Integration in JSF 2.0 geht ad-hoc ohne eine Konfiguration). Emmanuel hat hier gezeigt, das die Constraints auf den ManagedBeans angegeben werden und automatisch beim Zugriff durch einen JSF-PropertyResolver ausgewertet werden. Coole Sache.

Weiterhin können die definierten Constraints automatisiert an ein Javascript-Frontend durchgereicht werden oder auch automatisiert in ein Datenbankschema gespielt werden. Find ich persönlich jetzt nicht sooo wichtig, aber das das so einfach geht ist schon erstaunlich. Nachteil ist auf jedenfall, das man die Anwendung der Regeln nicht so einfach auf eine Schicht begrenzen kann.

Insgesamt lohnt sich der Blick darauf wohl, ich werde mir das in nächster Zeit auf jedenfall mal reinziehen.

Keynote Cloud Computing

Puh, was soll ich dazu sagen, sehr theoretisch und langweilig, ich habe beinahe die ganze Note damit verbracht, eine kleine Ajax-Anwendung zu basteln, damit ich ein wenig mit JSON rumspielen konnte;-).

Keynote Scala

Interessanter Vortrag, in dem Martin Odelsky (Scala Mitbegründer) sich zu den nächsten 5 Jahren in Scala äusserte. Wenig technisch, aber durchaus interessant anzusehn. Ich persönlich habe bislang relativ wenig bis keine Erfahrung in Scala und ich persönlich find auch, das sich der Code nicht besondern einfach liest, aber evtl. kommt das ja mit der Zeit, ich habe mir auf jedenfall vorgenommen, hier durchaus mal einen Blick zu wagen.

OSGI Best practices

Vortrag von Martin Lippert und Matthias Lübken.  War recht amüsant, doch leider wenig technisch und ging nicht wirklich ins Detail, mich hätten einige Praxistipps noch interessiert.

Die Folien des Vortrags kann man sich hier anschauen.

GUI Security

In diesem Vortrag von Michael Wiesner ging es prinzipiell darum, wie Security schon in der GUI realisiert werden kann.
Diese Frage hat durchaus ihre Berechtigung (Beispiel war, das in heutiger Software eigentlich Security nur dadurch realisiert ist, das ein Button zwar vorhanden ist und angezeigt wird, aber erst beim Drücken wirkliche SecurityContsraints im Backend abgefangen werden).

Folgende Tipps hatte „Mike“ für uns:

  1. Berechtigungskonzept am Client – hier sollte nicht mit Rollen sondern vielmehr mit Rechten gearbeitet werden
  2. Die Constraints sollten direkt ins Domänenmodell mit Hilfe von AspectJ eingewoben werden

Insgesamt interessanter Vortrag, wenn auch die Ansätze für die PRaxis nicht besonders relevant sein dürften.

Das wars von mir von der W-JAX, mehr als zwei Tage „durfte“ ich leider nicht. Ich hoffe, alle Beteiligten hatten ebensoviel Spass wie ich.

 

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s