Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Srini Penchikala on Jan 18, 2011
The latest version of Java based model-driven development framework OpenXava supports JPA 2.0 and Dependency Injection. OpenXava version 4.0 was released in November and version 4.0.1 was released last week. The new version also includes improvements in Groovy support.
OpenXava framework supports Java application development based on the domain classes written in Java or Groovy classes annotated with JPA. The main components of the framework are:
You can use Dependency Injection (JSR-330) in action classes to inject a session object into a field of the Action class. JPA 2.0 is used for the data persistence. OpenXava version 4.0.1, recently released, also supports callback methods with some new callback annotations (@PreCreate, @PostCreate, @PreDelete) so the developers can use JPA inside the classes. For example, using @PreCreate annotation you can perform logic that will be executed before persisting the object. It allows to perform entity manager operations and queries that are not allowed in JPA callbacks.
The new Groovy support can be used to write different OpenXava components like JPA entities, actions, and the test cases. InfoQ caught up with Javier Paniza of OpenXava project team, to learn more about the new release and future enhancements of the framework.
Can you expand on the new Groovy support?
Since version 4.0 you can write all the code of your OpenXava (OX) application using Groovy instead of Java, you can even mix Java and Groovy code in the same application, so you can start adding Groovy to your existing applications little by little.
Integrating Groovy in OpenXava has been a very easy task, given that Groovy was specially designed to be integrated with Java. However, the added value for the OpenXava developer is very big, because the simplified syntax of Groovy. Until version 2.0, OpenXava used a XML syntax for defining business components, this syntax allowed a short learning curve of OX, even for non-Java programmer. When we started to use Java for defining business components, the flexibility of the framework was improved, but we lost some simplicity. With Groovy we go back to a simpler syntax without losing flexibility.
One important difference between OpenXava with Groovy and Grails is that in OpenXava you write your code using standard Java technologies. That is, you write JPA entities with Groovy, and you use dependency injection (JSR-330) with Groovy. You use Groovy but at the Java style, not at the RoR style. This allows you to take the domain code (the JPA entities) from your existing Java application (even from a Seam or Spring Roo application), put them into an OpenXava application, and get an AJAX application in no time at all. Then you can start to add Groovy little by little in your application.
Responding to a question on the application security support (in the areas of authentication, authorization, auditing etc) by the framework, Javier said OpenXava doesn't directory provide any security support but it has a good support for Java portals (JSR-168/286), including visual style integration. OpenXava generates portlet applications whose portlets have the look & feel of the container portal. So, if you combine OpenXava (the application modules) with Liferay (security and navigation) you get a complete application platform for free. If using a Java portal is not an option for you, just add security to your OpenXava application using the standard techniques, tools and frameworks available for securing Java Web applications.
What is the future roadmap of the project in terms of new features and enhancements?
We have started a new way of incremental improvements, that is, instead of having a 5.0 version in two years, we'll have versions 4.1, 4.2, 4.3, each several months apart. In general we'll continue improving the user interface and adding new features for developers. For 4.1 release, we expect to add HTML5/CSS3 and JSR-303 (Bean validation) support, and possibly some improvements of list search capacities.
Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.
Tutorial: Integrating SQLFire with tc Server and Spring Data
Early Access! Download JBoss Developer Studio 5.0 now, with packages for Mac, Windows or Linux!
Tools to unit test your JavaScript
Introduction to WebSphere Liberty Profile
Introducing SQLFire: a memory-optimized, high performance SQL database
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
AFAIK, current version of OpenXava supports Hibernate Validator and then, JSR-303 (Bean validation).
This support is already included in current 4.0, not the forthcoming 4.1.
current version of OpenXava supports JSR-303 (Bean validation).
The version of Hibernate Validator included in OpenXava 4.0 is 3.1, that does not support JSR-303. OpenXava 4.1 will include Hibernate Validator 3.1 (for backward compatibilty of already written OX applications) and Hibernate Validator 4.1 to use JSR-303 in new code.
Hibernate Validator 4.1 is not backward compatible with Hibernate Validator 3.1, but they are two completely different products, so you can include the two libraries in the same application without problems.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
2 comments
Watch Thread Reply