In a dynamic cloud environment, distributing JAR files can become a bit of a pain. SSH key-swapping, scp, and rsync work okay, but wouldn't it often be better to load those class files dynamically? J. Brisbin's virtual private cloud utilities, Apache licensed and available on Github, have a new component for handling just such ticklish situations. It's a distributed ClassLoader that uses RabbitMQ to asynchronously load Java bytecode from a provider configured to expose certain class files to the cloud. This would also allow you to secure your bytecode by providing it to runtimes, which cache it in memory, but never having to write that bytecode to a disk, among many other possibilities. The blog post announcing it is on JBrisbin.com: Cloud-friendly Classloading with RabbitMQ
- Posted by: J. Brisbin
- Posted on: July 01 2010 10:47 EDT
Very cool - although a lot of cloud providers already support some of this. Definitely worth looking at, though.
Joseph you forgot to add that most mature enterprise customers staffed with operations not hired directly from kindergarden school immediately disable such dynamic classloading over the wire (or messaging channel). They might use a similar offline push mechanism to install (on the file) & deploy new versions of libraries but rarely do they opt for this to be done magically and completely out of the control of those responsible for change/control management.
Not mentioning the fact that when you start using it you completely give away the control of class versioning and dependency wiring. This is were things start to get really messy.