Dan Farino About MySpace’s Architecture
Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.
Tracking change and innovation in the enterprise software development community
Posted by Andy Roberts on Aug 08, 2007 09:27 AM
Apache Struts, the ubiquitous Java web application framework, received a promising feature that permits hot-deployable plugins. Struts developer, Don Brown, revealed last week that work had begun on allowing plugins to be added, removed and upgraded instantly, without the need to restart the entire application.
Brown mentioned how he was impressed by the plugin systems used by Atlassian's JIRA and Confluence products (Atlassian happens to be Brown's employer) which supports hot-deployable plugins. He wanted to bring something similar to Struts, which would clearly benefit from having such a feature. Thus work began on the OSGi plugin.
On top of the advantages of being able to maintain application uptime, and thus eliminate interruptions to users, there are pluses for the application development side also. Don notes:
This capability is so powerful that internally we are moving more and more functionality into plugins as a way to organise our codebase and keep it tightly-focused and agile.
The new Struts plugin allows the developer to split up applications into discrete jars, or "bundles", which when placed in the appropriate location on the server will be picked up by the OSGi plugin and deployed. Minimal effort is required to get the plugin up and running, and one of Brown's goals is to keep bundle development simple by hiding many of the OSGi complexities from the developer (of course, he's preparing for a small backlash as he admits "OSGi experts would lament" at his decision).
Currently, the OSGi Plugin is in its early stages and has not had sufficient levels of testing to be classed as ready for production. There are several limitations in the current release, namely lack of a GUI administration utility; only Velocity templates are supported; plus certain restrictions on what is permissible within a bundle (no 3rd party jars). The source is publically available via the Apache Struts 2 sandbox, and in true Apache style, community participation is welcome. As of yet, there's no hint that the plugin innovations in Struts 2 will be back-ported to Struts 1.
Rich Internet Applications Project Portal
The Agile Business Analyst: Skills and Techniques needed for Agile
Agile Projects: Five Ways to Fail When You Scale
This is exactly what we need for our applications. We make numerous wesbites, each containing the same modules plus a few custom modules. OSGi is the perfect glue for true modularity. Exciting stuff, I am looking forward to seeing where this leads...
I've found this capability is especially valuable in hosted, or software-as-a-service models, where uptime is paramount. Having the ability to install a new admin tool, report, or nightly job without affecting the site is very useful. Large applications tend to build their own plugin module, so why not make that a standard service in the web framework that even small apps can use?
You're going to see a strong movement in OSGi support for web based applications and SOA. OSGi provides more than just hot deployment, but the ability to deployment multiple versions of a service at one time. This allows for developers to migrate applications over to a newer version when the time and budget allows for it without having to write a bunch of hackish code to do this. Then again, you should also consider an ESB at that point :)
Best Regards,
Richard L. Burton III
Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.
Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.
Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.
The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.
Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.
Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.
InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.
Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.
3 comments
Reply