Wednesday, March 15, 2006

Instrument Apps and Servers

Andrew Wilcox published an interesting article on DeveloperWorks which details the use of the Java 5.0 agent interface combined with aspects to produce an interactive, pure java, profiling tool. The article introduces asm, an interesting byte code manipulation framework, and an eclipse plug-in supporting asm.
Implicitly the article exposes some aspects of the term 'open':
  • Wilcox presents code anyone can use
  • Asm is open source
  • While we can complain that Java is not truly 'open', it is open enough that bytecodes can be manipulated in truly useful ways by independent developers.
  • Eclipse is 'open' not just in the sense its source code is open, but in the sense the resulting ecosystem is open to all manor of contributions
Profiling presents a developer's perspective of instrumentation. Runtime monitoring is another. The approach Wilcox outlines suggests an useful path for making applications (clients and servers) somewhat aware of their footprint.

Monday, March 06, 2006

Eclipse :: Suitable for Server-side Development?

For many Java developers, Eclipse is an IDE. Since Eclipse RCP became popular with the release of Eclipse 3.1 last June, many see it as an IDE for RCP.
But the real strengths of Eclipse stem from its design as a tool integration platform. This has both technical and business implications. Consider the Eclipse Apogée project.
  • The project's technical architecture requires complex integration of many different technologies. Because Eclipse tooling allows rapid development of tools which can work well together because of the eclipse plug-in architecture, it is possible for the project architects to leverage an amazing range of technology. Check out the project proposal.
  • The flexible open source license used by Eclipse also allows a wide range of proprietary and open source projects/organizations to plug into the effort. The most recent example is the decision of db40 to join the project to help with persistence.
On a more modest level, products like myeclipseide and Eclipse projects like WTP illustrate use of Eclipse as a server-side tool box. One can simply spend 15 minutes browsing the rich variety of Eclipse projects to see many more examples of the technical and business ecosystem that is emerging.

An examination of the technical archiecture of Apogée is worth while. Products like db40 and Mylar are far beyond the experience or knowledge of most good developers. They provide knowledgeable developers much a much deeper toolset than most opensource projects utilize. For simple projects this can be overkill, but it makes it possible to address a wider range of problems.