piątek, stycznia 01, 2010

Z Grails-ów też można zrobić ESB

Uproszczona definicja ESB:

  • można podłączyć się do wszystkiego za pomocą wtyczek (grails install-plugin)
  • tą samą usługę możemy wystawić po wielu transportach (WebService: static expose=['cxf'])
  • usługi wewnętrznie wołane są po natywnym protokole szyny (Service.metoda)
  • mamy routing komunikatów (grails install-plugin camel).

Grailsy dodatkowo mają ładny webowy interfejs użytkownika i są tanie (OpenSource + Tomcat + Apache mod_proxy).


A co z szybkością? grails run-app: 29ms, grails prod run-app 25ms.

Na BEA JRockit(R) (build R27.6.5-32_o-121899-1.6.0_14-20091001-2107-windows-ia32, compiled mode) udaje się zejść do 16.5ms pod warunkiem jednej poprawki (Grailsy próbują używać metody, która nie została jeszcze skompilowana do kodu maszynowego - błąd w JVM):

Klasa org.codehaus.groovy.grails.cli.GrailsScriptRunner z grails-bootstrap-1.2.0.jar, metoda private int callPluginOrGrailsScript(String scriptName), workaround:

Project p = antBuilder.getAntProject();
try {
p.setDefaultInputStream(System.in);
}
catch (NoSuchMethodError e) {
try {
Field f = p.getClass().getDeclaredField("defaultInputStream");
f.setAccessible(true);
f.set(p, System.in);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
Przypominam, że właścicielem Grails-ów jest VMware.

Update 03.03.2010: mamy naprawione Grailsy na JRockit-cie. Niestety Oracle zamierza skasować JRockita jako produkt i przenieść GC firmy BEA do SUN JVM.

0 komentarze: