New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Ryan Slobojan on Jun 19, 2008
As part of the upcoming Eclipse Ganymede release which is scheduled for June 25th, InfoQ will cover a series of Eclipse subprojects. Today, the subproject is RAP (Rich Ajax Platform), which is releasing version 1.1. InfoQ spoke with Jochen Krause to learn more about RAP and what it provides.
In describing the capabilities that RAP brings to Eclipse, Krause first divided the Eclipse user base into two parts - those who use the Eclipse IDE and tooling for development, and those who use Eclipse Platform-based applications. Krause said that for IDE/tooling users only the RAP tooling itself would be exposed, so they will not see RAP functionality in their development tools. However, users of Eclipse Platform-based applications will now have the ability to build rich, AJAX-enabled web applications using the Eclipse OSGi-based Plugin development model, JFace and a web-enabled version of SWT. RAP is intended to be very similar to the Eclipse Rich Client Project (RCP), with the major differences being a reduced API and some allowances for the multi-user nature of web applications. Compared to RAP 1.0, 1.1 extends the API to include new features such as MouseEvents for SWT, ImageDecorators for JFace and several wrkbench enhancements -- it also incorporates new Eclipse 3.4 capabilities such as enhanced security and alpha-shading for widgets.
when asked how RAP fits in alongside other AJAX frameworks such as Dojo, GWT and OpenLaszlo, Krause said:
RAP is a AJAX framework with a server-side focus and a strong tie into OSGi, Equinox and the Eclipse Platform. It is not easy to compare RAP to the other frameworks because the focus is different. Dojo, GWT and OpenLazlo do a great job with their widget toolkits, but do not have a broad application platform to offer. We do not see those frameworks as competition, in contrast they may become additional options for the client side rendering in future RAP version. Today, the client side rending for RAP is based on qooxdoo, also a powerful AJAX framework. RAP and GWT both enable developers to code in Java, but the runtime model is quite different. GWT is executed entirely in the browser, RAP execution is split between server and browser.
Krause also spoke about the RAP ability to compile a single codebase to either an AJAX or an RCP application, saying that it wasn't as complicated as it might first seem. Compilation is done against the same Workbench, JFace and SWT APIs, but when running as a web application web-enabled versions of these libraries are substituted for the usual ones. At runtime, the application code is run primarily on the server, with a JavaScript-based UI that sends events to the server and sends back results to the client. However, Krause did point out three things that RAP developers need to keep in mind:
As part of the next-generation version of SWT, RAP plans to provide a fully AJAX-based implementation of SWT. Krause pointed out that not every platform supports all of the SWT APIs, and that SWT was designed for desktop applications. Although most of the SWT API can be implemented, some things such as drawing on the canvas or detection of mouse movement will have to await further browser enhancements in these areas. Other currently-absent APIS such as drag-and-drop and key listeners are planned for the next RAP release, with technologies from other teams such as SWT's Java/Flex cross-compiler being used for complex components such as the StyledText widget.
With respect to future plans for RAP, Krause indicated that there are two main areas of focus: Extending the RAP APIs to implement more of the RCP API, and providing a user experience which utilizes the Eclipse platform and also feels natural from a web perspective. Krause expanded upon the second idea, explaining that RAP is addressing the usability challenge by working with usability experts and analyzing user interactions. Krause also saw the convergence of web and desktop applications through AJAX and RIAs as another area of interest, and said that research has indicated that it is feasible to provide graphical editors based on the Eclipse Draw2D API in a web environment.
When asked how RAP would be integrated into or affected by e4, Krause said:
Running an IDE in a browser is a use case that does not have a big appeal to me. JDT does a great job on my computer and I think most developers feel the same way. That does not mean that there are no use cases where web technology comes in handy. Just look at requirements, task management or development process management. Those are areas where I see RAP playing a role in the future. But back to the question. The Eclipse platform team and the RAP team have jointly announced e4 at EclipseCon 2008 and both teams will start working on this platform right after the Ganymede release. RAP will be in the technology mix to web-enable applications, but it will not be the only possibility to do so. We also want to enable other web / JavaScript technologies to attach to the Eclipse platform. I expect a lot of cross fertilization happening. The RAP team can provide implementations and know how around multi-user enabling the platform, the SWT team has researched cross compiling widgets for RIA platforms like Flex / Silverlight. Better styling is another focus area of our joint work. There are so many more things to talk about, but e4 probably warrants an interview in its own right.
Mobile and the New Two-Tiered Web Architecture
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
SCM best practices for multiple processes, releases & distributed teams
Dear InfoQ Reader,
Because there was no good documentation on RAP, I tried to write a book about it. Want to have a look at the contents, source and other stuff? Visit rap-book.com
If you consider this as advertising, I apologize and ask for removal of this comment. I just wanted to provide further reading about this great framework.
Fabian
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
1 comment
Watch Thread Reply