Posted by fabriziogiudici
on June 4, 2009 at 1:52 AM PDT
I met Dennis Reedy five years ago (boys, how fast time flows!) when he participated in one of the most interesting projects I've done so far, the Real Time Telemetry Service (RTTS) for Formula 1 cars , by Magneti Marelli Motorsport and Sun Microsystems Italy. Dennis' contributions were fundamental for the success of the project, both because he is the author of Rio , a platform based on Jini (now Apache River ) that we used for building RTTS, and also thanks to his great experience as an architect of â€œcritical systemsâ€. If you look at Dennis' CV, you'll find quite a deal of â€œcool stuffâ€ (yet real-world projects).
Just for putting things in context with today's trends (everybody is talking about clouds at CommunityOne and JavaOne), I learned for the first time concepts such as â€œgridâ€ and â€œdynamic provisioningâ€ thanks to Dennis. Actually, Dennis is going to have a BoF at JavaOne, named â€œCloud Computing and NetBeansâ„¢ IDE Enable Army Research Labâ€™s Next-Generation Simulation Systemâ€, BOF-4638 , Wednesday, June 3, 7:45PM, at Esplanade 300.
I'm going to mitigate a bit the pain of not being in San Francisco and having a drink with Dennis by interviewing him on my blog.
Q. For people that don't know you, Dennis, please introduce yourself.
A. Fabrizio, thanks for giving me the opportunity to tell you about what we are presenting out here at JavaOne. I am presenting with Ron Bowers from the Army Research Laboratory in Aberdeen, MD. Ron is the lead architect for MUVES3.
Q. Well, Dennis, I see that you're still involved in cool stuff. Tell us something about this project.
A. The MUVES3 project is a simulation environment for evaluating the survivability of US Army systems to ballistic threats (bullets, artillery rounds â€“ things that basically go boom), and the lethality of US Army weapons against enemy vehicles.
Q. Which are the key technologies used to build the cloud infrastructure behind MUVES 3?
A. The MUVES3 project uses a dynamic distributed architecture built on top of the Rio project. Rio provides the core service's architecture, real time provisioning, management and deployment for MUVES3. We rely quite heavily on service associations and the policy approach that Rio brings.
MUVES3 also generates a tremendous amount of data. We have a persistent management approach that allows the representation of data in different states as it moves through the system; for fast access to in-flight data, JavaSpaces is used (we use the stock Outrigger service from Apache River); Long Term storage is accomplished using Derby, and for data that has not been committed to long term storage we use Apache Active MQ.
For moving to the cloud we are using Elastic Grid (EG) (LINK). While we cannot run MUVES3 in the public cloud, we are Cloud Bursting the testing clusters to EC2 using EG. EG provides the fabric that enables the on-demand provisioning of the application in the cloud seamlessly.
Q. Glad to see that Rio still rocks. MUVES 3 is related to national security, so it clearly runs on some private US Army network; but Amazon's Elastic Compute Cloud / Elastic Grid were chosen for the test deployment. What challenges have you faced in pursuing cloud computing for this effort?
A. First was getting management approval :) Besides that, we have organized the project to have the application infrastructure from the sensitive algorithms and code. This organization has produced a project called Gomez (on java.net as a sub-project of the Rio project). This allows us to verify and validate the key infrastructure capabilities and scalability.
Although we achieved architectural separation, we faced some hurdles of being able to run in the cloud.
We did not want to build an Amazon Machine Image (AMI) every night. This would have been a real administrative burden.
We wanted to avoid developing special code and testing framework for cloud deployment/orchestration. Ideally, transparently switch from LAN-based deployment to the cloud.
We absolutely needed preserve the dynamic distributed semantics architected in the system: Service selection strategies and Dynamic discovery semantics are a key part of the system.
Elastic Grid builds on the capabilities that Rio provides for LAN based deployments and really eased the move to the cloud. With the current approach we can cloud burst using the EG AMI, deploy and run the system across multiple concurrent testing clusters on EC2.
Q. The US Army is a very peculiar customer; should people really start studying clouds seriously, for more â€œmundaneâ€ customers?
A. ARL has actually been a leader in computing for decades, ever hear of the ENIAC? ;) All kidding aside, cloud computing approaches seem to be a key element of programs going forward in the public sector.
I do think that cloud computing approaches should be assessed for use. From a cost-cutting perspective it's really a no-brainer. However, you really need to assess what the real impacts of running your application in the cloud are.
Q. Well, I see that you used NetBeans RCP (a.k.a. NetBeans Platform ) as the framework for the desktop clients. You know that I'm a big fan of the NetBeans Platform, so I'm happy to see it ;-) What is your experience with this product? Why did you choose it over alternatives?
A. NetBeans RCP is used as the framework for UI development and aggregation of visual components. As the standard bearer of IDEs in the Java community (java.net) NetBeans provides a standardized and accepted platform to base development on.
One of the reasons the project chose NetBeans was the fast form development and easy deployment via JNLP. The project team really loves that NetBeans is extremely well supported by the community as well.
Q. Will you work further on MUVES 3? What are the next things you're going to do?
A. I have really enjoyed my time spent with the MUVES3 project team to date. I do hope for continued involvement and success with the project, there are a number of significant and interesting things to do.
Now that we have begun the effort to use a cloud computing approach we still need to look at ways to aggregate and visualize the system both from a real time view and also from a post-mortem aspect. Being able to view how the system is operating, what it's boundaries are and where bottlenecks are (or may occur) are key elements to the survivability of the system.
Thank you Dennis. Let's hope to meet for JavaOne/WhateverWillBe 2010.