Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

And the Scales Fell From Java's Eyes


April, 2006: And the Scales Fell From Java's Eyes

Software Development

April 2006

Ever since JDK 1.2, "Java" and "slow" have been synonyms to only a few diehard C hackers. But hard-pressed developers and administrators are always looking to scale up, squeezing out more performance. Once server CPUs hit the beer-and-pretzels price range, parallelization suddenly became attractive—but as anyone who's tried it knows, splitting up an enterprise application is fraught with enough complexity to make a developer long for the days of a single Java virtual machine, free of RMI, database contention or J2EE hoo-hah.


[click for larger image]
Terracotta DSO scales up Java applications by distributing plain Java objects across multiple servers. Here, the administration console monitors cache performance.

But what if you could virtualize that JVM—spreading Plain Old Java Objects (POJOs) across multiple application servers—without having to modify the applications? Scaling would simply be a matter of purchasing and provisioning more hardware, without sending developers back to the whiteboard. Terracotta's solutions do exactly that, transparently managing access to Java objects and your relational database to pump up performance without requiring you to rewrite your existing Java code.

Terracotta's research identified two big bottlenecks: database calls and inter-object communications. For the former problem, they offer Terracotta JDBC, which intercedes between applications and the database, caching query results to eliminate redundant reads and offering write-through of updates. A Listener component centralizes cache invalidation when the database changes. The company addresses the latter issue with Terracotta Distributed Shared Objects, which makes all your POJOs across your servers available to each other, as if they were running in a single JVM with the biggest heap in the universe. Bob Griswold, a senior VP at Terracotta, notes that this happens at the infrastructure level, without requiring you to wedge yet another API into your applications. If it's a correctly coded multithreaded app, it's ready to scale across multiple servers, he says. For example, a Singleton remains a Singleton even when the app is running on many CPUs.

Terracotta is also coming out with a line of products aimed at niche applications. Terracotta for Sessions distributes HTTP sessions across application servers with automatic failover. Terracotta for Spring, scheduled for release in May (at press time), will give applications built on the lightweight Spring framework clustering capability, as well as a significant performance boost.

Pricing for the latter two hadn't been fixed at press time (but would be "aggressive," said Griswold). As for the flagship JDBC and DSO products, a typical 2-node cluster runs about $55,000. Contact Terracotta for details.

Terracotta Inc., 650 Townsend St., Suite 325, San Francisco, CA 94103, Tel: (415) 738-4000, http://www.terra cottatech.com

—Rick Wayne

Web Apps, WYSIWYG

Despite the inevitable tooth-gnashing among Java tool vendors, it's best to answer this one up front: A Java development environment? Why not Eclipse? Well, for one thing, Java Studio Creator 2 (hereinafter "JSC2") is aimed at Web developers, not the kind of code geeks who read Java Puzzlers and keep saying "Yeah, I knew that one." For another, JSC2 is a highly visual, drag-and-drop experience. And the price is the same--that is, free-as-in-beer if you join the Sun Developer Network, which is also free.


[click for larger image]
Java Studio Creator 2 is a free download that radically streamlines Web application development for J2EE.

You can use JSC2 for straight Java development--it incorporates a full-featured Java code editor with code-completion pop-ups and the usual bells and whistles. But where it really shines is building Web applications (including portlet-enabled ones) out of Java Server Faces, databases and Enterprise Java Beans in a WYSIWYG manner, and deploying them to your application servers. JSC2 includes plenty of components and code clips to drop into your applications, so development is less a matter of construction and more a matter of design and connection. Version 2 also lets you import and edit HTML and CSS elements into your project and edit them "live," complete with code-assist features. New wizards also make consuming Web services a drag-and-drop operation.

Speaking of projects, the new version adds a task manager to let developers keep their to-do lists right in the project and a project manager and version-control support to keep track of all project resources. Sun Microsystems Inc., 4150 Network Cir., Santa Clara, CA 95054, Tel: (800) 555-9786, http://developers.sun.com/prodtech/javatools/jscreator/

--RW

Gird for the Grid

While in-house server virtualization is the hot topic du jour, grid computing is quietly moving out of the hype-lab and into the mainstream. Virtualization certainly holds promise for coupling resources flexibly to "normal" unmodified applications, but the greatest performance benefits will still accrue to developers who build parallelism into their applications from the get-go, and run them on a big processor farm. To that end, Grid Computing For Developers (Charles River, 2005) seeks to equip you with the tools and techniques needed to leverage the grid infrastructure already in place. Vladimir Silva starts off with a much-needed intelligent-newbie's guide to grid computing, explaining the core concepts and technologies, as well as popular implementations like Sun's N1 grid scheduler and (shameless plug) the University of Wisconsin's Condor. The heart of Grid Computing explores the Globus Toolkit, which Silva cites as the "de facto standard."

Grid Computing for Developers lists for $49.95, and includes a CD of sample code.—RW



Beat Back Attackers

Ed Skoudis' Counter Hack (Prentice Hall PTR, 2001) was a must-read for anyone concerned with IT defense, just as Skoudis and Zeltser's Malware (Prentice Hall PTR, 2003) is the definitive resource for dissecting worms, viruses, Trojans and other uglies. But the security world never stands still, and now Skoudis and Tom Liston bring you Counter Hack Reloaded (Prentice Hall, 2005).

Skoudis opens the new edition by comparing the anecdote that led off the previous book—a website defacement incident—with real-life examples of today's security threats: A manifesto from a terrorist urging his colleagues to target information infrastructure, and a credit-card rip-off involving over a million numbers. He notes that that there used to be an almost whimsical aspect to digital security, a game between young hackers looking for bragging rights and admins just trying to keep systems working. That's gone now—attackers are after serious money or even lives, and it behooves us all to pay attention. Skoudis and Liston cover the basic technologies (Chapter 2 is subtitled "Pretty Much Everything You Need to Know About Networking to Follow the Rest of This Book"), then take you on a tour of com-mon tools, attack methods and how to defend against them. They strive for depth rather than breadth, preferring to cover the most popular tools and techniques in detail rather than attempting to encompass the entire (rapidly evolving) field.

Counter Hack Reloaded lists for $49.99.—RW




Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.