VMware und SpringSource nachdem sich der Staub gelegt hat....
Am Montag abend ist der Kauf von SpringSource durch VMware öffentlich bekannt gegeben worden. VMware ist schon länger Partner von SpringSource. Es gab auch vor dem Kauf technologische Kooperationen zum Beispiel beim der Integration des VMware Lab Manager in die SpringSource Tool Suite. Daher kommt der Schritt für SpringSource-Mitarbeiter nicht überraschend, denn es gab schon lange Beziehungen. Für einige Außenstehende ist der Schritt anscheinend dennoch überraschend -obwohl SpringSource nicht die erste Enterprise-Java-Firma ist, die von einer größeren Firma gekauft wird.
Technisch ist dieser Schritt auf jeden Fall sehr sinnvoll. Mit tc Server und dm Server haben wir innovative Application Server im Angebot, die insbesondere in der Cloud Vorteile bringen. Dazu gehört in tc Server die Möglichkeit, eine Gruppe von Servern zu definieren, auf die man dann Anwendungen deployen kann oder umkonfigurieren kann. Ähnliches wird es in dm Server 2.0 auch geben. Außerdem wird man dort ein zentrales Repository für mehrere dm Serve definieren können, aus dem dann alle Server in der Cloud OSGi Bundles laden können. Und unser Management-Produkt Hyperic ist gerade beim Management von Clouds sinnvoll, weil man nur einen Agent auf jedem Knoten installieren muss - die komplette zu managende Software auf dem Rechner wird automatisch gefunden. Man kann also basierend auf diesen Lösungen leicht einen Cloud von VMs aufbauen, um seine Anwendung skalierbar zu halten und effektiv zu betreiben. Durch VMwares Technologien kann man dann in diesem Cluster einzelne Knoten auf andere physikalische Rechner migrieren, um bei einem Ausfall die Verfügbarkeit zu gewährleisten oder bei Hochlast die Performance zu verbessern.
Ebenfalls wird die Entwicklung vereinfacht, weil man sehr einfach Test-Umgebungen aufbauen kann und auf diesen die Anwendungen mit einem Application Server zusammen deployen kann. Solche Test-Umgebungen kann man auch recht einfach in Produktionskonfigurationen überführen. Ohne Virtualisierung sind diese Aufgaben sehr komplex, dauern sehr lange und sind auch sehr fehleranfällig. Weitere technische Diskussionen dazu finden sich in
Adrian Colyers (CTO SpringSource) Blog Post.
Neben den Technologien ist ein weiterer wichtiger Punkt die Ausrichtung der Firmen. Beide Firmen sind technologie-fokusiert. Beide Firmen haben sich zur Offenheit bekannt. Das ist konsequent: Letztendlich ist der Erfolg der SpringSource-Technologien nur durch ihre Communities möglich. Dafür möchte ich mich bedanken. Wir werden auch weiterhin unsere Communities interessante Technologien anbieten - um so mehr, weil wir nun durch eine direkte Unterstützung von Virtualisierung spannende neue Ansätze anbieten können. Gleichzeitig werden wir auch weiterhin alternative Ansätze unterstützen. Schließlich ist einer der großen Vorteile von Spring schon immer die Plattformunabhängigkeit gewesen und das wird sich nicht ändern.
Labels: SpringSource, VMWare
SpringSource wird von VMWare gekauft
SpringSource wird von VMWare gekauft. Das ist ein sinnvoller Deal, weil wir uns gut ergänzen, es gibt keine Überschneidungen bei den Produkten. Und gleichzeitig haben wir ein recht umfangreiches Produktangebot. Gleichzeitig bietet es uns die Möglichkeit, noch mehr in unsere Technologien zu investieren. Siehe zum Beispiel
http://finance.yahoo.com/news/VMware-to-Acquire-iw-1761113527.html?x=0&.v=1 oder
http://blog.springsource.com/2009/08/10/springsource-chapter-two/.
Labels: SpringSource, VMWare
Spring 3.0: Meta Annoationen
In Spring 3.0 hat mit Meta Annotationen ein neues Feature Einzug gehalten, das den Umgang mit Annotationen vereinfacht. Hier ein Beispiel ohne Meta Annotationen:
@Service
@Transactional(timeout=42, noRollbackFor={ApplicationException.class})
public class EinService {
...
}
Wie man sieht, ist der Service mit zwei Annotationen versehen. Vermutlich sollen alle anderen Services genauso annotiert werden. Der Code drückt aber nicht die eigentliche Intention aus: Jeder Service auch die entsprechenden Transaktions-Regeln haben. Beide Annotationen werden immer nur zusammen vorkommen.
Das könnte man durch AOP lösen, indem man jeden Service per AOP mit einer passenden Transaktions-Regel versieht. Eine ander Möglichkeit sind die Meta Annotationen. Dazu definiert man sich seine eigene Annotation:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Service
@Transactional(timeout=42, noRollbackFor={ApplicationException.class})
public @interface MeinService {
}
Diese Annotation wirkt nun genau wie die Kombination aus @Service und @Transactional. Der obige Code wird also zu:
@MeinService
public class EinService {
...
}
Analog könnte man @MeinRepository usw. definieren. Dabei ist zum Beispiel auch die Nutzung von @Scope für die Definition eines Scopes möglich.
Wie man sieht, bieten Meta-Annotationen interessante neue Möglichkeiten für die Konfiguration mit Spring.
Labels: Meta Annotationen, Spring 3.0
J for Java |
I for Internet, iMac, iPod and iPad |
Me for me