Pages

Wednesday, November 28, 2007

When 'ee' means 'move right'






When 'ee' means 'move right'

SEATTLE: A mouse that can move accurately in response to sounds could mean the difference between dependence and independence for someone with motor impairments.

A University of Washington researcher with a specialty in speech recognition is putting his skills to use teaching computers to do just that.

Jeff Bilmes, the associate professor of engineering leading a team creating the Vocal Joystick with a grant from the National Science Foundation, said most existing controllers are far from ideal.

Some are controlled by the breath or the tongue, but then users can't talk while operating their PC and if the device falls out, someone else has to put it back in.

“The one last bit of independence that such individuals have has been lost,” Bilmes said.

Other solutions, like sensors implanted under the skin or eye-movement trackers, can be invasive or expensive, he noted. Vocal Joystick is neither.

Bilmes said he was inspired by “beatboxers,” people who make a wide array of percussive noises with their mouth.

“The human voice can do much more than what's typically done for a standard language,” said Bilmes, who presented Vocal Joystick at a National Academy of Engineering meeting this week.

His team assigned vowel sounds to correspond to mouse movements: Up is “a” as in cat, right is “aw” as in “Aw, shucks.” There are sounds for more complex movements -- “down and to the right” is “oh” as in bold -- and sliding sounds together sends the mouse on smooth curves around the screen.

Vocal Joystick also gives computer users control over the mouse pointer's speed. A very quiet “ee” as in beet will move the cursor slowly to the right; a loud “oo” as in boot sends it plunging downward.

Once users are accustomed to the commands, they can do sophisticated on-screen work, such as illustration or digital photo restoration.

When he first started thinking about it, Bilmes wondered if people would feel too silly making all the ooooeeeeeuuuuuaahh's for Vocal Joystick to be useful.

“As soon as we built the first prototype and I tried it, I immediately forgot that I was making sounds,” he said. “As soon as you start doing it and see it respond to your voice, something amazing happens.”

Apple's new OS

Apple's new OS




Apple's upgraded Leopard operating system debuted this week as trend-setting iPods and iPhones cause the ranks of Macintosh computer lovers to swell.

Eagerly-awaited by Apple's notoriously cultish followers, Leopard's release was delayed so the company's engineers could devote their time to getting iPhones to market in the United States in June.

Rival Microsoft, whose software powers 90 per cent of the world's computers, released its own new operating system, Vista, in January.


Time Machine



Leopard features include playful “iChat” video-conferencing and a “Time Machine” that resurrects lost data. The 3D Time Machine was inspired by a survey that indicated only 26 per cent of Macintosh users regularly backed up information on their machines to avoid losing it forever in system crashes.

The feature automatically copies music, pictures, applications, files and “absolutely everything” a person puts on their Macintosh, according to Apple vice president of platform experience Scott Forstall.

The operating system enables people to remotely search for files on all computers connected to their network. In the event a file is lost, users can search back through time to find deleted files, applications, photos and other digital media and then instantly restore the file. If required, Leopard can also restore an entire system from the Time Machine data on an external drive.


Widgets



Leopard also has simple tools for people to create “widget” applications that stream feeds such as news or syndicated cartoons from websites onto small windows on computer screens.

It includes improved text-reading, Braille support and closed-captioning for people with disabilities. There's also a dictionary with Wikipedia built in, allowing users to access up-to-date information on any subject.


iChat Theatre




Modifications to iChat allow people linked via Web cameras to share slide show presentations, playfully distort their pictures or insert fake backdrops.

iChat Theater makes it easy to show photos, presentations, videos or files in a video conference; screen sharing which lets users remotely view and operate another Mac; and Photo Booth effects for fun distortions and video backdrops that can instantly make users appear to be anywhere they choose.


Stack-up





Another useful addition to Leopard is Stacks. It is a virtual “stack” of documents that lives in the dock area, giving users one-click access to files.

They can create their own Stack, when a user clicks on it, the Stack will display all the documents in a cascading pile. Downloads too are automatically added to the download Stack to help the user find them easily.


Mail goes new



The new OS also packs some new features in its email programme. There's Data detection software that will spot key words in messages, such as appointments, dates and times.

On running the cursor over these details and it will ask the user if he wants to add them to his calendar application as an event. Not only this, if it senses an address, it will even generate a Google Map. There are also additions like sticky notes and to-do lists.


Parental Controls



Microsoft's Vista boasted it, so how could Apple be behind. Under Leopard's Parental Controls panel, if a user sets up multiple user accounts, including individual ones for children, he can manage and control the amount of time they can spend online (including different allowances for weekends and school nights) and the kind of websites they are allowed to access.

It also has content filters to weed out inappropriate content and activity logging to monitor their web use.


Embraces Microsoft



Crucially, Leopard is the first Apple operating system that will also allow you to install a Windows operating system alongside it. The BootCamp programme has been available for download on some other Apple machines, but it required a level of technical expertise to install and run that some novice users may have found daunting.

In Leopard, it's all built in: you just need to buy a copy of Windows and let the BootCamp assistant guide you through the installation process.


Google Desktop


Google Desktop for Mac has been updated adding support for the new Mac OS X 10.5 Leopard.

In addition to Leopard support, Google Desktop allows indexing of drives where Spotlight has been disabled Desktop no longer tries to index PGP disks; Time Machine won't back up Desktop indexes, nor will Desktop search Time Machine backups; and Desktop preferences pane now supports keyword searching in System Preferences for various settings.

Sunday, November 25, 2007

Richest Indian tech honchos

Richest Indian tech honchos





Indian technology honchos never had it so good. More so now when the stock markets are on fire and their market cap is going up by leaps and bounds. Little wonder then that when the Forbes magazine came out with its list of richest Indians, there are a number of Indian technology entrepreneurs in the list.

We bring you top eight of the list of top 50 richest Indians selected by Forbes.


Azim Premji





The richest Indian techie Azim Premji, Chairman, Wipro Group, ranks fifth on the Forbes list with a net worth of $14.8 billion. A graduate in Electrical Engineering from Stanford University, US, Premji took on the mantle of leadership at Wipro at the age of 21, after the sudden demise of his father in 1966.

Under his leadership, the fledgling $ 2-million hydrogenated cooking fat company has grown to a $1.76 billion IT Services organisation serving customers across the globe. This year Wipro acquired outsourcing firm Infocrossing; bought Southeast Asian personal care products outfit Unza; opened software development center in Mexico. Son Rishad, Harvard Business School graduate, joined Wipro in July this year, setting buzz about a succession plan.

Over the years, Azim Premji has received many honors and accolades. He was adjudged the Business Man of the Year 2000 by Business India and as the Business Leader of the Year 2004 by the Economic Times. Financial Times included him in the list of top 25 billionaires who have done most to bring about significant and lasting social, political or cultural changes (November 2004). Time listed him (April 2004) as one amongst 100 most influential people in the world. He was named by Fortune (August 2003) as one of the 25 most powerful business leaders outside the US, Forbes (March 2003) listed him as one of ten people globally, who have the most "power to effect change".

The Indian Institute of Technology, Roorkee and the Manipal Academy of Higher Education have both conferred honorary doctorates on him. He is also a member of the Prime Minister’s Committee for Trade and Industry in India. In January 2005, the Government of India conferred upon him the Padmabhushan, one of the highest civilian awards in the country.


Sunil Bharti Mittal





With a net worth of $12.5 billion Founder, Chairman and Group CEO of Bharti Enterprises Sunil Bharti Mittal is the second richest Indian techie and sixth richest Indian on the Forbes list. Bharti AirTel, one of the India's leading private integrated telecom company, has been at the forefront of the telecom revolution.

Sunil started his career at a young age of 18 after graduating from Punjab University and founded Bharti, with a modest capital, in the year 1976. Today, he heads a successful enterprise, among the top five in India, with a market capitalisation of over $ 35 billion employing over 30,000 people.

Bharti has grown successfully in partnership with various leading companies of the world - Singapore Telecom, Vodafone, Warburg Pincus, British Telecom to name a few.

The other businesses in the group are communication & media devices (Beetel), life insurance with AXA of France (Bharti AXA), and a joint venture with the Rothschild group to develop Indian horticulture and export fruits and vegetables to the world (FieldFresh).

Bharti has recently entered into a JV with Wal-Mart for setting up supply chain, logistics and cash and carry to support the burgeoning retail market in India.

Sunil is an alumnus of Harvard Business School, MA, USA. He has been conferred one of the highest civilian award - Padma Bhushan. Sunil has been conferred the degree of Doctor of Science (Honoris Causa) by the GB Pant University of Agriculture & Technology.


Shiv Nadar





HCL founder Shiv Nadar is the third richest techie with a net worth of $4.3 billion and ranks 18 on Forbes list. At a time when India had a total of 250 computers, Shiv Nadar led a young team which passionately believed and betted on the growth of IT industry. That vision in 1976, born out of a Delhi garage three decades later in creating a $4.4-billion global enterprise. HCL today employs 51,000 professionals, has a global presence in 18 countries spanning locations in the US, Europe and Japan.

Nadar started US operations in the in 1988. In 1987 ELCINA the body representing the electronic industry in India nominated Nadar as the Man of the Year. In December 1995, Nadar was nominated the Dataquest IT Man of the Year. The scorching pace did not go unnoticed nationally or internationally. Nadar is a member of the Executive Board of Indian School of Business (ISB), Hyderabad.

From modest beginning three decades ago, Shiv Nadar made it to the Forbes List of billionaires for the first time in the year 2000.


NR Narayana Murthy





NR Narayana Murthy, Chairman of the Board and Chief Mentor of Infosys Technologies, is 37th on the Forbes list with a net worth of $1.69 billion. He founded Infosys in 1981 along with six other software professionals and served as the CEO for 21 years before handing over the reins of the company to co-founder Nandan M Nilekani in March 2002. Under his leadership, Infosys was listed on NASDAQ in 1999. He served as the Executive Chairman of the Board and Chief Mentor from 2002 to 2006.

Murthy is the recipient of numerous awards and honors. The Economist ranked him 8th on its list of 15 most admired global leaders in 2005. He was ranked 28th among the world's most respected business leaders by The Financial Times in 2005.

Murthy holds a BE (Electrical) from the University of Mysore (1967) and MTech (Electrical) from the Indian Institute of Technology, Kanpur (1969). He has been conferred honorary doctorate degrees by leading universities across the world.


Anurag Dikshit





Anurag Dikshit is the 40th richest Indian on the Forbes list. Developmental engineer turned online gambling mogul owns 28 per cent of Internet casino company PartyGaming. Company founder, American Ruth Parasol, launched Starluck Casino on the Internet in 1997. Dikshit joined the company in 1998; wrote company's betting software, which enables gamblers around the world to play one another in poker.

Dikshit sold large part of the shares; left the company's board in 2006. The company’s stock has been down 80 per cent since 2005 peak due to new US laws banning financial groups from facilitating online bets.

Dikshit earned degree in computer science and engineering from Indian Institute of Technology, Delhi. Dikshit worked as a software developer in the United States at CMC, as a systems analyst for Websci and later as a consultant for AT&T.


Jignesh Shah





Jignesh Shah is ranked 43 in Forbes richest Indian list with a personal worth of $1.37 billion. Shah is CEO of Financial Technologies Group and has set up India's largest commodities exchange Multi Commodity Exchange.

He founded Financial Technologies in 1995 as a software company with a valuation of $10,000. A decade later, the Mumbai-based company has grown over $2 billion in market capitalisation and is globally recognised as among the top 10 leaders in financial technology infrastructure and commodity exchanges.

The FTIL Group has launched fast growing companies operating in the commodities and exchange sectors. Shah has been recognised as among the youngest first generation Indian billionaires by Forbes Magazine, and was recently honoured with the prestigious Ernst & Young Entrepreneur of the Year Award 2006 for Business Transformation.


Nandan M Nilekani




Nandan M Nilekani is ranked at 45 with a personal wealth of $1.26 billion. Nilekani is the Co-Chairman of the Board of Directors of Infosys Technologies Limited. From March 2002 to June 22, 2007, he served as Chief Executive Officer and Managing Director and has previously held the posts of President and Chief Operating Officer. He is one of the founders of Infosys and has served as a director on the company’s board since its inception in 1981.

In January 2006, Nilekani became one of the youngest entrepreneurs to join 20 global leaders on the prestigious World Economic Forum (WEF) Foundation Board. He is listed as one of the 100 most influential people in the world by Time Magazine, 2006.

Nilekani is the recipient of several awards. He was the Forbes “Businessman of the Year” in 2007. He, along with Infosys founder (and currently non-executive chairman) NR Narayana Murthy, received Fortune magazine's `Asia’s Businessmen of the Year 2003' award. He was named among the `World's most respected business leaders' in 2002 and 2003, according to a global survey by Financial Times and PricewaterhouseCoopers.

In 2006, Nilekani was conferred the Padma Bhushan, one of the highest civilian honors awarded by the Government of India. Nandan received his bachelor’s degree in electrical engineering from the Indian Institute of Technology (IIT) Bombay, India in 1978.
Nandan M Nilekani is ranked at 45 with a personal wealth of $1.26 billion. Nilekani is the Co-Chairman of the Board of Directors of Infosys Technologies Limited. From March 2002 to June 22, 2007, he served as Chief Executive Officer and Managing Director and has previously held the posts of President and Chief Operating Officer. He is one of the founders of Infosys and has served as a director on the company’s board since its inception in 1981.

In January 2006, Nilekani became one of the youngest entrepreneurs to join 20 global leaders on the prestigious World Economic Forum (WEF) Foundation Board. He is listed as one of the 100 most influential people in the world by Time Magazine, 2006.

Nilekani is the recipient of several awards. He was the Forbes “Businessman of the Year” in 2007. He, along with Infosys founder (and currently non-executive chairman) NR Narayana Murthy, received Fortune magazine's `Asia’s Businessmen of the Year 2003' award. He was named among the `World's most respected business leaders' in 2002 and 2003, according to a global survey by Financial Times and PricewaterhouseCoopers.

In 2006, Nilekani was conferred the Padma Bhushan, one of the highest civilian honors awarded by the Government of India. Nandan received his bachelor’s degree in electrical engineering from the Indian Institute of Technology (IIT) Bombay, India in 1978.


S Gopalakrishnan

Infosys Technologies Chief Executive Officer S Gopalakrishnan (Kris to his colleagues) is ranked at 49th on the Forbes list with a net worth of $1.18 billion.

One of the founders of Infosys Technologies Limited, Kris took over from Nandan M Nilekani as the CEO and Managing Director of Infosys Technologies Limited on On June 22, 2007. Kris previously served as Chief Operating Officer (since April 2002), and as the President and Joint Managing Director (since August 2006). His responsibilities included Customer Services, Technology, Investments and Acquisitions.

Kris' initial responsibilities at Infosys included management of design, development, implementation and support of information systems for clients in the consumer products industry in the US. Between 1987 and 1994 he headed the technical operations of KSA/Infosys (a joint venture between Infosys and KSA at Atlanta, USA) as Vice President (Technical). In 1994, Kris returned to India and was appointed Deputy Managing Director of the company.

Kris holds MSc (Physics) and MTech (Computer Science) degrees from the Indian Institute of Technology, Chennai. He began his career with Patni Computer Systems (PCS), Mumbai, as a software engineer in 1979 and quickly rose to become an assistant project manager by 1981. His seminal contribution during his stint at PCS was the development of a distributed process control system for controlling LD converters at Rourkela Steel Plant.

Thursday, November 22, 2007

SXDE 9/07 AVAILABLE NOW


The Solaris Operating System (OS) is already the most stable, feature-rich, robust enterprise operating system on the market. Now Sun Microsystems has made it one of the easiest to install and use.

In the latest update to Solaris Express Developer Edition, SXDE 9/07, Sun has rewritten the GUI front end for the Solaris installer. The changes dramaticallysimplify and streamline the installation process. It's the first major change to the installer since the release of Solaris 8 in 2000, and should drive further adoption of the operating system, particularly among users with no previous Solaris OS experience.

With SXDE 9/07, Sun has thoroughly modernized its installer, presenting a straightforward experience that developers might find in Linux. Indeed, since SXDE is built from source code at OpenSolaris.org, and shares many of the same open-source-based components, Linux developers will make an easy transition to Solaris.

Sun's usability team worked with engineers to develop new simplified installation screens to create a positive experience for users, says McMeekin. "The team focused on removing all the geekiness that used to be a hallmark of the Solaris install process. They zeroed in on minimizing the installation effort and clarity of instructions. The result is fresh, clean, and modern."

With SXDE, the latest developer tools are installed during OS installation. For the 9/07 release that means Sun Studio 12, NetBeans 5.5, and D-Light. Installing the tools during system installation saves developers the time and hassle of installing them separately.

A highlight for developers of the 9/07 release is the inclusion of D-Light, a GUI-based tool that simplifies the use of Solaris Dynamic Tracing (DTrace) technology. Using D-Light developers can write their own monitors, correlate multiple events, plot data any way they need, and there is always a connection from what they monitor back to specific lines of source code. Most importantly, a developer doesn't have to be an expert in DTrace probes to use D-Light. The GUI makes it easy for Solaris and Java developers to monitor application performance.

Supporting Developers

Sun also recognizes that laptops are the system of choice for many developers these days. That's why wireless support is so important to the SXDE program and why new drivers are added to each release, including SXDE 9/07. This new release now includes support for Enhanced Intel SpeedStep Technology (EIST), an important power management feature. EIST support is the latest addition to a growing list of ways in which Sun is broadening its commitment to the x86 architecture, and particularly to laptop computing.

To further ease the installation process for developers, Sun has bundled SXDE installation and configuration support into service subscription offerings for Solaris 10, at no additional cost. Sun also offers Developer Expert Assistance, a developer support program available on a per incident or annual subscription basis.

Early Peek at Solaris

SXDE is freely available and updated quarterly, providing developers with all the tools to build applications for the Solaris OS, Java Application Platform, and Web 2.0. It also is a great way to learn about Solaris futures. This means IT managers can begin testing, training, and integrating key features of Solaris months or even years ahead of the next formal OS release.

The upside is faster time to productivity for critical Solaris OS, Java, and Web 2.0 applications.

With the latest release of SXDE, Sun has turned an IT axiom on its head. That is, if an operating system is easy to use, it must not be robust enough for the most demanding tasks. Solaris is already proven to be among the most battle-tested enterprise operating systems. Now Sun has removed any barriers of entry by making it a snap to install and use.

JavaFX.....The Revolution


JavaFX
The JavaFX family of products comprises a set of runtime environments, widgets, development tools, and scripting environments based on Java technology. There are currently two products in the JavaFX family:

» JavaFX Script Speed development of rich Internet applications with this productive scripting language.

» JavaFX Mobile Streamline mobile ecosystems with a complete middleware and application stack, built around Java and Linux open-source technologies.

Tuesday, November 20, 2007

Tomcat: The Definitive Guide



Defining Version 5.0

Tomcat 5.0 is, of course, the next major refactoring of Tomcat since version 4.1. The major version number of Tomcat is incremented each time the Java Servlet and JSP specifications have a new final release, hence Tomcat 5 corresponds with the final release of the Servlet 2.4 and JSP 2.0 specifications.
All new development will now occur on the Tomcat 5.0 source code branch, or on one of its future sub-branches. The Tomcat committers could decide to apply new code with new features to Tomcat 4.1's source, but that's only likely to be a backport of features that are already implemented in Tomcat 5. If critical security flaws are fixed in Tomcat 5 that also apply to Tomcat 4.1's code, for example, those will probably all be backported.
Tomcat 5.0 goals

Tomcat 5.0 looks great so far. It includes support for the Java Servlet 2.4 and the JSP 2.0 specifications, fixes many performance issues, and adds many new features and other improvements. Below we'll look at the two overall goals of Tomcat 5.0, which were implemented as of version 5.0.16.

Unifying the Two Tomcat Communities

An important goal for Tomcat 5 was to reunify the Tomcat communities under one codebase. A split had occurred in the Tomcat community between the Tomcat 3 branch proponents and the Tomcat Catalina developers. They each worked on their own branches and didn't collaborate much. Eventually, the Jakarta Project Management Committee made the decision that Tomcat Catalina was ready to replace Tomcat 3, and it was dubbed Tomcat 4. But because Tomcat 4 was a different implementation by a mostly different team of developers, migration from Tomcat 3 to Tomcat 4 was difficult.
Despite the committee's sanctioning of Tomcat 4, the community remained split, among developers and users alike. Each branch of Tomcat separately developed various features and performance enhancements. Several of these developments solved some deep problems in elegant ways, but depending on which Tomcat version a user used, only a portion of these solutions were available.
About the time that developers began working on Tomcat 4.1, both Tomcat development teams agreed to work together on the Tomcat connectors, which included the Java side of the JK2 connector, the HTTP connector (a pure-Java web server), as well as other connectors. A connector is a Tomcat core component that channels servlet container requests into Tomcat.
The consolidation of the Tomcat 3 and Tomcat 4 connector code signaled a larger step toward reunification as it led to collaboration on other core performance issues, as well as development of independent servlet-container-version solutions, one of the last hurdles to unification. Tomcat 3 had been implemented as a small servlet container core that could be configured to load and use plug-ins called modules. Proponents of this design believe that keeping the core modular makes it both easier to maintain and more flexible. Tomcat 4's Catalina core was implemented modularly, but didn't offer the feature of generic servlet container modules.
Tomcat 5 includes Tomcat 4.1's core, and it adds the feature of version 3's generic servlet container modules. The developers still have some work to do in this area before it's clear what can and should be built as a module, and how it's generally done, but this work had led to the developer community working together again on all aspects of Tomcat.

Supporting the Java Servlet 2.4 and JSP 2.0 Specifications
The release of Tomcat 5 corresponds with the final release of the Servlet 2.4 and JSP 2.0 specifications, so now let's take a brief look at what's new in each spec, and what impact, if any, there will be on Tomcat 5 development.
The Java Servlet 2.4 Specification
The Servlet 2.4 Specification is only a slight evolution of the Servlet 2.3 Specification, so the API and semantics are almost completely backwards-compatible. With very few exceptions, Servlet 2.3 web applications should work fine in a Servlet 2.4 container.
This is great news for those currently using Tomcat 4 who wish to upgrade to Tomcat 5 -- you probably don't need to modify your web applications. Keep in mind, though, that your server.xml config file isn't part of your web application; it's a Tomcat-specific file, and as such may need some modifications to upgrade it for use with Tomcat 5. Since the syntax of Tomcat 4's server.xml file is almost the same as that of Tomcat 5's server.xml file, this shouldn't be difficult. I recommend that you start fresh with a Tomcat 5 server.xml file and migrate only the XML elements that you added to Tomcat 4's server.xml file. One way to see what you modified is to diff your modified Tomcat 4 server.xml file against the untouched distribution version. When you add those XML elements, look at the Tomcat 5 Configuration Reference pages and verify that each element's attribute exists for Tomcat 5. This is especially important for the and elements, since they have each been modified in Tomcat 5.
The deepest impact that the Servlet 2.4 specification has on Tomcat 5 is the integration of XML Schema. In previous versions of the servlet specification, the deployment descriptors for servlet web applications were defined and validated using an XML DTD. This worked fine, but as it turned out, DTDs aren't quite modular or flexible enough for other technologies to be able to leverage servlet web apps as a framework. To achieve this level of flexibility and modularity, those involved in revising the Servlet 2.4 Specification and other J2EE 1.4 specifications decided to base the deployment descriptor definition and validation on the newer XML Schema, while maintaining backwards-compatibility with the older servlet 2.3 (and lower) DTDs.
The remaining changes to the Servlet API have been small, amounting to clarifications, bug fixes, and omission fixes. This is good news because it shows that the Servlet API is mature. Tomcat 5 fully implements all these new API changes and additions.
The JavaServer Pages 2.0 Specification
This new version of JSP is quite a bit larger due to its many new features, but aims to be backward-compatible with JSP 1.2. The most important addition to JSP 2.0 is the inclusion of the JavaServer Pages Expression Language (EL). Since EL is now part of the JSP container, EL became more useful because it can be used even in the middle of template text as opposed to just within certain custom tags. For Tomcat developers, the main thing to keep in mind with this new addition is that EL is now also part of Tomcat 5, which makes version 5 more featureful and easier to use than Tomcat 4 for developing detailed web applications.
Another new feature that JSP 2.0 includes is "tag files", which are JSP tags that are implemented as JSP fragment files and contain JSP content. Tag files make it easy to develop such things as modular page components, including XML content, which can be included in JSP pages. It's a feature, therefore, that's available only in Tomcat 5, offering web app developers something that Tomcat 4 does not offer.
Also included in JSP 2.0 are improvements to the handling of XML content, which allow developers to write their dynamic XML content as JSP content. The specification has numerous clarifications since version 1.2, and the file extensions .jspx and .tagx have been added. This feature isn't exclusive to Tomcat 5--other servlet container implementations are free to implement JSP 2.0--but this is a feature that Tomcat 4 does not have because it only implements JSP 1.2.

Tomcat 5.0 Features

Now it's time to get to Tomcat 5's major new features.
Performance Refactoring to Reduce Garbage Creation
The first enhancement to look at is Tomcat 5.0's memory-profiling tools. Tomcat 5 has been carefully optimized so that it produces less object garbage for the Java VM's garbage collector to have to clean up.
A typical problem with busy Java servers is that the server software constantly instantiates new objects, and when they're not needed anymore (typically, when a request ends), the objects are not reused but instead thrown out as garbage. The garbage collector must then find and reap all such objects to reclaim the memory they occupy. This takes time and CPU cycles to do, and in the meantime the whole JVM may be paused so that the garbage collector can finish its work. This means the requests currently in process must simply wait until the garbage collector is done, which makes the whole server slow down a little. Usually, this isn't a big problem because the garbage collector is pretty efficient at collecting garbage objects. But in some cases there is so much garbage being produced that it can't keep up, and eventually the amount of free memory gets low because there is a backlog of garbage objects using lots of memory. Or sometimes a web app creates very large objects that take the garbage collector longer to finalize and destroy, so the amount of free memory is lost in large chunks but isn't being replenished quite as fast.
Tomcat 5.0 has had many garbage creation (read performance enhancement) changes since Tomcat 4.1. Tomcat 5.0's single most important garbage-creation refactoring was the new request URI mapper. After some optimization profiling, Tomcat 4.1's request pipeline was found to create excess garbage while mapping a Connector's requests to the proper Container. For Tomcat 5, a whole new mapper was implemented that generates little or no garbage (lots of object recycling is going on in there), and thus Tomcat 5.0's request pipeline performs noticeably better than that of Tomcat 4.1. This also lowers the overall memory usage compared to Tomcat 4.1, which helps to prevent OutOfMemoryExceptions in the web apps it runs, and helps Tomcat 5 to scale higher vertically (i.e. higher scalability on a single machine)
Tomcat 4's configuration system offered some modularity in the form of deployment context fragments. These were XML configuration files that contained a single element and everything nested within it. If the deployer found one in the CATALINA_HOME/web apps directory, it would deploy that context (web app) the same as if it had been configured in Tomcat's server.xml file. This was helpful because any changes to the server.xml cannot be reread until Tomcat is restarted, while context XML fragment files can be reloaded at any time. But, the administrator didn't have any fine-grained way to control which they were deployed into, or which (for those who have multiple s configured -- probably not many).
To add better scoping control of the context fragments, and to consolidate Tomcat's configuration files in the CATALINA_HOME/conf directory, Tomcat 5 now supports placing the context fragments in a CATALINA_HOME/conf/[Enginename]/[Hostname]/ directory. For example, if your Engine is named Catalina, and you have a Host named www.example.com, then you can place context XML fragments into the CATALINA_HOME/conf/Catalina/www.example.com/ directory. If you have multiple s, each of them has its own directory, separating its config files from other s. Reloading the context fragments in Tomcat 5 works the same as in Tomcat 4, they're just in a different file system location.
Many of the deployment attributes have been renamed, or have had their behavior changed in Tomcat 5. Mainly this was to rename ambiguously named attributes, but it was also to make the deployment and redeployment behavior a bit more desirable. For example, the Tomcat 4 attribute named liveDeploy has been renamed autoDeploy in Tomcat 5, and the Tomcat 4 attribute named autoDeploy has been renamed deployOnStartup in Tomcat 5. In short, Tomcat 4's configuration elements in server.xml are not compatible with those of Tomcat 5. Compare the Tomcat 4.1 Host configuration reference page with the Tomcat 5.0 Host configuration reference page in order to migrate your configs.

Standalone Deployer

As of Tomcat 5, a new standalone web app deployer is included. By standalone I mean that it isn't bundled as part of Tomcat but as a separate package released alongside of Tomcat. This deployer is actually just an Apache Ant build file that uses some custom Ant tasks to do things to web applications, like:
• Compile the JSPs
• Validate the deployment descriptor using XML schema validation
• Deploy it into Tomcat
• Redeploy a new version
• Undeploy a web app
• Reload a web app without redeploying it
• Start a web application
• Stop a web application
• List the context paths of all currently installed web applications of a specified virtual host
• List the available global JNDI resources in Tomcat
• List the available roles and their descriptions
But not all of these tasks are used in the deployer's build file. Here's output from the build file showing the public targets that it offers:
$ ant -projecthelp
Buildfile: build.xml
Main targets:

clean Removes build directory
compile Compile web application
deploy Deploy web application
reload Reload web application
start Start web application
stop Stop web application
undeploy Undeploy web application

Default target: compile
Almost all of the custom Ant tasks that come with the deployer were already included in Tomcat 4.1, but they weren't packaged as a component separate from Tomcat. Mainly, this deployer serves as a rough but functional example of how to instrument an Ant build system to perform these functions.
Better Support for JMX
Tomcat 5.0 has substantially better JMX instrumentation than Tomcat 4.1. How much better? I did a direct comparison between the two versions by counting all of the MBeans, attributes of the MBeans, and operations (method calls) exposed by the MBeans in each version of Tomcat. Here are the numbers as of this writing:
Number of items exposed through JMX

Tomcat Version MBeans Attributes Operations
4.1.30 52 282 79
5.1.18 68 391 148

As you can see, Tomcat 5.0 adds a significant number of attributes and operations that are exposed via JMX. Basically all of Tomcat's internal objects are exposed as MBeans in both versions, so both do a great job of exposing enough objects as MBeans. For the purpose of monitoring, the number of attributes is the most important: Tomcat 5.0 exposes 109 more of them than Tomcat 4.1. For the purposes of management/administration and dynamic configurability, operations are the most important. Tomcat 5.0 really shines here, exposing 69 more operations -- almost double that of Tomcat 4.1.
If you download a Tomcat 4.1 binary release, it comes bundled with the open source MX4J version 1.1.1 implementation of the JMX 1.1 Specification. This version of JMX does not include the JMX Remote API (JSR 160), since the JMX Remote API only works with JMX 1.2 implementations. This means that there is no standard network protocol for managing and monitoring Tomcat 4.1 via the network. The Tomcat 5.0 binary release comes bundled with Sun's JMX 1.2 reference implementation, along with Sun's JMX Remote API 1.0 reference implementation (although it could just as easily be bundled with the MX4J 2.0 implementation of JMX 1.2 and the JMX Remote API 1.0 -- it's still in beta but it works great).
As it turns out, both of these versions of Tomcat can be compiled against a JMX 1.2 implementation, and both can run with them. But, if you're not building your own Tomcat (as you'll see in the next section, it's easier to do with Tomcat 5), then Tomcat 4 doesn't come with JMX 1.2 and Tomcat 5 does. But Tomcat 5 doesn't yet offer any way of turning on a JMX Remote API connection server. That's coming soon for Tomcat 5, but as of this writing it isn't included yet.
Improved Tomcat Build System
Tomcat 5's build system is quite a bit more automated than that of Tomcat 4. It has also been cleaned up in many ways.
Anyone who has tried to build Tomcat 4 can tell you that it isn't easy to do -- you have to download and carefully install a swarm of jar files from many different web sites, pull down Tomcat 4's source code either via a source snapshot archive or from CVS, set some paths in a properties file, and then try to build it. Most people do all that only to have the build fail due to either missing jar files or due to improper jar file versions (despite properly following directions from Tomcat 4's BUILDING.txt file). Tomcat's dependencies changed frequently in Tomcat 4; the BUILDING.txt file wasn't always kept up-to-date with the exact version numbers that were necessary; and the paths where the build expected to find them are exact and inconsistent. The Tomcat committers did quite a bit of work to keep everything up-to-date and building cleanly, but assembling a working build environment from scratch was still mainly a manual, error-prone process.
Tomcat 5's build system, on the other hand, has been automated so that it can assemble its own build environment, all except for installing the JDK and Apache Ant (they're using version 1.6). Just download the top-level build file and invoke the default target and away it goes! It will do all the pulling and installing of the jars and Tomcat 5 source code, configure the build, and then start building Tomcat 5. Of course, you may want to make your own custom-build properties file if you have special build-configuration needs -- if you have no special needs then why not just use a binary release? See this page for info on customizing the build. Regardless, the build is so automated it feels like it's on autopilot.

Session Clustering Code as a Module

Tomcat 4 did not implement nor include any servlet session-clustering, except for some old, mainly broken code that was once a valiant attempt at implementing session-clustering via IP multicast. A new implementation of session-clustering was implemented for Tomcat, and worked with Tomcat 4.1 as an add-on feature, but was never included nor bundled with Tomcat 4.1.
Tomcat 5 includes this newer session-clustering implementation as a module. The default server.xml configuration file contains some text about how to configure it, but it is turned off by default as most people only run one instance of Tomcat and do not use session-clustering. But it's included in Tomcat 5 for those who want it.
This session-clustering implementation barely worked for Tomcat 4, but has been significantly refactored for Tomcat 5. Tomcat 5.0.16 included lots of improvements over Tomcat 4, but then many more improvements were made after 5.0.16, and I recommend only using version 5.0.18 and higher if you want to use session-clustering! Many important performance enhancements and serious bug fixes have been applied since version 5.0.16.
For background information about how this kind of session-clustering works, you might want to see our book Tomcat: The Definitive Guide (O'Reilly). In Chapter 10, Tomcat Clustering we go over many details about distributed web applications and how servlet session-clustering works. Also, see the Cluster How-to for information specific to this session-clustering implementation.
This clustering module is the first (and so far the only) Tomcat 5 module included in the distribution. It will be interesting to see what other modules get added to Tomcat 5 in the future.
Increased JSP Tag Library Efficiency via Tag Pooling and Tag Plug-ins
Since JSP is popular, and JSP custom tag libraries are becoming popular, Tomcat needs to keep these features efficient and scalable by implementing ways to speed things up behind the scenes in the implementation of the JSP engine. To avoid unnecessary object instantiation and garbage creation, which are costly in terms of time and memory, two techniques are being used in Tomcat 5 to speed things up: tag pooling and tag plug-ins.
Tag pooling is much like servlet pooling, or any other object pooling, for that matter. The idea is that you may have many request threads at once that each need the same kind of object, and that object does not need to be stateful across more than one request. In that case, the server can instantiate a pool of them that it can draw from instead of instantiating new ones all the time. When a request is done with the object, it gets returned to the pool after any request state is first purged.
Tomcat 5's JSP engine, Jasper 2, can pool JSP tag objects this way, which speeds things up nicely. Tomcat 4.1 also had an early implementation of tag pooling, but the implementation in Tomcat 5 is more mature.

Another feature of Jasper 2 is "tag plug-ins," not to be confused with tag files (discussed earlier in this article). Tag plug-ins are not a JCP standard, but instead something specific to Tomcat 5's JSP implementation. In short, it is a modular way of optimizing the Jasper 2 JSP engine to render a custom JSP tag library as fast as possible. Probably the best explanation about it that I could find on the Net (other than the source code) is the original tomcat-dev mailing list thread where the concept was first introduced.
Tomcat 4 does not implement tag plug-ins. Tomcat 5.0 is the first to do so. This means that Tomcat 5 should be faster at rendering some JSP pages than Tomcat 4, especially when one or more tag libraries being used is accompanied by tag plug-ins.

The Balancer Web App

Also new in Tomcat 5.0 is the Balancer web app, a rules-based load balancer implemented as a web application. Balancer is useful for anyone who doesn't already own a hardware load balancer (or doesn't want to spend the money to buy one), and who needs to load balance across more than one Tomcat instance.
There are many ways to load balance HTTP requests, and not all methods are right for your site. But Balancer is a free, pure-Java implementation of a software load balancer that uses infrastructure that Tomcat users already have running: Tomcat. It doesn't do low-level TCP NAT or TCP tunneling, but instead load balances via HTTP redirects.
In Tomcat 5.0.16, Balancer is a new implementation and lacks many features people will want. And it's probably not a good solution for load-balancing requests for very high-traffic web sites. But the Balancer web app is useful for some people as it existed in Tomcat 5.0.16, and is included in part so that it is possible to install and configure a 100 percent Java cluster using only what comes with Tomcat 5.0. With the inclusion of the Balancer web app, Tomcat alone now implements a clustered servlet and JSP container, implemented in pure Java. See the Balancer How-to for details about how to use it.

Conclusion

Tomcat 5.0 contains many substantial updates and improvements over Tomcat 4.1. Many of the underlying technologies that Tomcat builds upon have been updated, enabling Tomcat 5 to offer a wider range of solutions and features to the administrator and developer. This, combined with many performance enhancements and a smaller memory footprint during heavy loads means that Tomcat 5 does a better job with the same web apps than does Tomcat 4. Tomcat 5 is also more manageable, more easily monitored, and is easier to build. Tomcat 5.0 is production-ready now. The Tomcat community tested many releases of Tomcat 5 before it was voted stable late last year. I recommend you consider upgrading to Tomcat 5.0.

Wednesday, November 14, 2007

Whizlabs SCBCD (J2EE- EJB Certification)



Whizlabs Software announced the release of the first SCBCD (Sun Certified Business Component Developer) certification exam simulator.

Authored by highly experienced and certified professionals, it offers 5 mock exams (350 thought-provoking questions) on the latest pattern in a simulated environment. Its high level of customization features allows you to prepare according to your strengths and more important weaknesses. Not to forget, it also offers the “Use it Anywhere, Anytime!” advantage, by offering a Free “web-based online exam simulator version”; with its unique “percentile-grading” feature.

Coupled with value added offerings like Quick Revision Notes, Interactive Quizzes (with over 150 questions) and Tips N Tricks, it provides an effective learning platform. Last but not the least; it comes with Free Technical Mentoring and “Unconditional Test PASS Guarantee”. Check out the FREE demo version.

After this launch, Whizlabs now offers complete suite of exam simulators for various Sun Java certification exams: SCJP (1.4, 1.2 and Upgrade), SCWCD, SCBCD and SCEA. Whizlabs also offers Instructor-led, Online trainings for SCJP and SCWCD exams.

About Whizlabs
Whizlabs is a leading provider of IT skill assessment and certification exam preparation. Whizlabs' suite of offerings include "IT certification exam simulators and online trainings" for various exams by Sun, IBM, Oracle, Microsoft, BEA, Cisco and other leading IT vendors and "IT skill Assessment Management Solution" for Corporations, Training Institutes and Universities."

Tuesday, November 13, 2007

Sun apologizes to developers of Java on Linux



Sun Microsystems Inc. apologized Wednesday to members of Blackdown, the open-source development group that made the port of Java 2 to Linux possible.

Sun, already under fire for withdrawing Java from standards consideration (see "Sun abandons Java standards effort," link below), sought to put out another fire it and Inprise Corp. started when the companies failed to give Blackdown credit in this week's announcement of the port (see "Sun, Inprise plan to port Java 2 to Linux," link below).

"Our stance is an apologetic one,'' said Rick Schultz, Java 2 standard edition product manager at Sun. The company, he said, values Blackdown's work and wants to continue its relationship with Blackdown.

Blackdown has been porting Sun's Java technology to Linux for years and contributed substantially to the port of Java 2 as well.


It's unclear whether Sun and Inprise need Blackdown's expertise to complete future ports, or whether the Linux community would endorse a Sun/Inprise port that didn't include -- and acknowledge -- help from Blackdown. As an alternative, IBM has ported older Java technology to Linux.

Several Blackdown developers said earlier today they have just about had it with Sun.

"The recent press releases were a slap in our face,'' said Juergen Kreileder. "Sun wants us to continue our work and also to port extensions APIs to Linux. Why should we do this if they don't honor our work?"

Another key Blackdown developer, Kevin Hendricks, resigned from the project in protest, developers said. Schultz said he called Hendricks but Hendricks didn't say that he would reconsider.

Blackdown developer Paul Michael Reilly said: "Having watched the Sun/Blackdown relationship for over three years, my take is that it will die because it will take a major change from Sun to heal this deep wound, on top of hundreds of small cuts. I see this kind of change as very unlikely. Also, there are fast becoming other choices, most notably IBM."

However, Blackdown developer Karl Asha said the dispute might not have a big effect in the long run: "As the Linux community goes, I suspect they'll follow the most stable, most recent, and best-performing JDK [Java Development Kit], regardless of who produces it."

J2SE Version 1.3 ...a great development



Sun has released the newest version of "desktop" Java 2, designed to run faster and use less memory than its predecessor.

Java 2 Standard Edition is a Java implementation intended for client computers. The newest release is Version 1.3. The performance improvements, mainly through use of Sun's Java HotSpot Client Virtual Machine, are vital if Java is to be more viable on client computers.

According to Sun, the new version is 40% faster at start-up compared to the prior release, and uses 25% less memory.

Also new are several security features: RSA-based electronic signing, X.509 certificates and verification of Netscape-signed files.

Sun also added the RMI/IIOP protocol (for communications with back-end systems using the Common Object Request Broker Architecture, and the Java Naming and Directory Interface, for access to enterprise directors that use the Lightweight Directory Access Protocol.

J2SE source code is available free from www.sun.com/communitysource. The software runs on Windows 95/98, Windows NT 4.0 and Windows 2000. Beta test versions for Linux and Sun Solaris are planned for June.

The Java 2 Software Development Kit binary download is at java.sun.com/j2se/1.3/download-windows.html. It also can be downloaded as a bundle with Sun's Forte for Java, Community Edition, which is a development tool set.

Little known PC facts












Little known PC facts
The development of the modern day computer is the result of advances in technologies. How the PCs came to be what they are today is a story of inventions and innovations. Sometimes, these technological advances were driven by the man's need for faster calculations (abacus the first computing machine), sometimes man’s need to telecommute (laptops).

But ever wondered about viruses, crashes and animation, which too form an integral part of computing. The first computer sold commercially, origin of cyberspace… Here’s going down the time machine for some interesting facts that made computing history.

Crash saga begins
On September 9, 1945, Grace Hopper recorded the first actual computer “bug” -- a moth stuck between the relays and logged at 15:45 hours on the Harvard Mark II. Hopper, a rear admiral in the US Navy, enjoyed successful careers in academia, business, and the military while making history in the computer field.

She helped programme the Harvard Mark I and II and developed the first compiler, A-0. Her subsequent work on programming languages led to COBOL, a language specified to operate on machines of different manufacturers.


Machine of the Year
In 1982, Time magazine altered its annual tradition of naming a “Man of the Year,” choosing instead to name the computer its “Machine of the Year.”

While introducing the theme, Time publisher John A Meyers wrote, "Several human candidates might have represented 1982, but none symbolised the past year more richly, or will be viewed by history as more significant, than a machine: the computer."

His magazine, he explained, has chronicled the change in public opinion with regard to computers. A senior writer contributed, “computers were once regarded as distant, ominous abstractions, like Big Brother. In 1982, they truly became personalised, brought down to scale, so that people could hold, prod and play with them.”

At Time, the main writer on the project completed his work on a typewriter, but Meyers noted that the magazine's newsroom would upgrade to word processors within a year.



Animation comes to movies
In 1982, the use of computer-generated graphics in movies took a step forward with Disney's release of "Tron."

One of the first movies to use such graphics, the plot of "Tron" also featured computers -- it followed the adventures of a hacker split into molecules and transported inside a computer. Computer animation, done by III, Abel, MAGI, and Digital Effects, accounted for about 30 minutes of the film.



First PC sold
Engineering Research Associates of Minneapolis built the ERA 1101, which was the first commercially produced computer. The company's first customer was US Navy.

It held one million bits on its magnetic drum, the earliest magnetic storage devices. Drums registered information as magnetic pulses in tracks around a metal cylinder.

Read/write heads both recorded and recovered the data. Drums eventually stored as many as 4,000 words and retrieved any one of them in as little as five-thousandths of a second.

Cyberspace arrives
In 1984, William Gibson coined the term “cyberspace” in his novel “Neuromancer.” He also spawned a genre of fiction known as “cyberpunk” in his book, which described a dark, complex future filled with intelligent machines, computer viruses, and paranoia.

Gibson introduced cyberspace as: “A consensual hallucination experienced daily by billions of legitimate operators, in every nation, by children being taught mathematical concepts... A graphic representation of data abstracted from the banks of every computer in the human system. Unthinkable complexity. Lines of light ranged in the nonspace of the mind, clusters and constellations of data. Like city lights, receding...”


First laurel
In 1988, Pixar's "Tin Toy" became the first computer-animated film to win an Academy Award, taking the Oscar for best animated short film. A wind-up toy first encountering a boisterous baby narrated "Tin Toy." To illustrate the baby's facial expressions, programmers defined more than 40 facial muscles on the computer controlled by the animator.

Founded in 1986, one of Pixar's primary projects involved a renderer, called Renderman, the standard for describing 3D scenes. Renderman describes objects, light sources, cameras, atmospheric effects and other information so that a scene can be rendered on a variety of systems.

The company continued on to other successes, including 1995's "Toy Story," the first full-length feature film created entirely by computer animation.


Computer bombs
In 1941 the first Bombe is completed. Based partly on the design of the Polish “Bomba,” a mechanical means of decrypting Nazi military communications during World War II, the British Bombe design was greatly influenced by the work of computer pioneer Alan Turing and others.

Many bombs were built. Together they dramatically improved the intelligence gathering and processing capabilities of Allied forces


Training bombers
Project Whirlwind begins. During World War II, the US Navy approached the Massachusetts Institute of Technology (MIT) for building a flight simulator to train bomber crews. The team first built a large analogue computer, but found it inaccurate and inflexible.

After designers saw a demonstration of the ENIAC computer, they decided on building a digital computer. By the time the Whirlwind was completed in 1951, the Navy had lost interest in the project, though the US. Air Force would eventually support the project which would influence the design of the SAGE programme.


Pricy PC

In 1960, the precursor to the minicomputer, DEC's PDP-1 sold for $120,000. One of the 50 built, the average PDP-1 included a cathode ray tube graphic display, needed no air conditioning and required only one operator.

Its large scope intrigued early hackers at MIT, who wrote the first computerised video game, SpaceWar! for it. The SpaceWar! creators then used the game as a standard demonstration on all 50 computers.


Happy birthday virus

Regarded as the first virus to hit personal computers worldwide, “Elk Cloner” spread through Apple II floppy disks. The programme was authored by Rich Skrenta, a ninth-grade student then, who wanted to play a joke on his schoolmates.

The virus was put on a gaming disk, which could be used 49 times. On 50th time, instead of starting the game, it opened a blank screen that read a poem that read: “It will get on all your disks. It will infiltrate your chips. Yes it's Cloner! It will stick to you like glue. It will modify RAM too. Send in the Cloner!” The computer would then be infected.

Elk Cloner was though a self-replicating virus like most other viruses, it bears little resemblance to the malicious programmes of today. However, it surely was a harbinger of all the security headaches that would only grow as more people get computers -- and connected them with one another over the Internet.

Sunday, November 11, 2007

A brief comparision between development with Hibernate and Entity beans


I hope to get a rough performance comparison of an enterprise application using entity beans for persistance compared to using Hibernate soon, in the meantime I thought that a brief comparison of the development effort involved in using the two approaches might be in order. Comparisons are based on JBoss 3.2.2 running MySQL.

Installation

JBoss comes as a working EJB environment, therefore no extra installan over and above getting JBoss itself installed is required. For Hibernate, due to a JBoss-related classloader issue you have to deploy the Hibernate jar and related dependencies to the server’s lib directory.
Application development

JBoss requires an application.xml file, and ejb-jar.xml XML file containing the entity and session mean mappings, and a jboss.xml file containing the JNDI mappings. Hibernate requires a single Hibernate config file, and a single XML mapping file per bean – this defines the mapping between JavaBean property and database fields, as well as inter-bean relationships. If you were using Hibernate in a webapp, you would of course require a web.xml, and if you were using it in an normal Enterprise application (for example you we using Session beans to manipulate Hibernate objects) you would need the aforementioned application.xml, ejb-jar.xml and jboss.xml files. For JBoss when adding new entity beans, mappings need to be changed in the ejb-jar.xml and jboss.xml files – Hibernate requires a new bean mapping file and a related entry in the Hibernate config file.
Development

Creating a standard entity bean requires a new Java class to be created, a stub interface that will be used by clients, and a home interface which will be used to access finder methods and creation methods, and optionally 2 more interfaces (if you want both local and remote interfaces) in addition to having to add a JNDI entry and a mapping in the JBoss config files. There are a mass of consistency checks that have to be carried out (often by the developer due to the poor validation provided by many EJB containers) – for example the parameters in your Home interfaces create method must match perfectly with the parameters in your bean implementation’s ejbCreate method, which in turn must match the ejbPostCreate method. Few of these consistency checks can be carried out at compile-time – they have to be confirmed by the container itself. Once created, you’ll have to create the database structure for your new bean.

With Hibernate, you create a single Java class which is a standard JavaBean. You then create a mapping file which maps the JavaBean’s properties to database columns. Hibernate in fact includes tools to either create the JavaBean file from a mapping file, or a mapping file from a JavaBean class. In addition it ships with the SchemaExport program which can read your database mapping and automatically create the database structure (including columns required for mapping relationships).

When it comes to actually persisting data, Entity beans perform this completely transparently. You just have to call the relevant setter method on the bean, and it gets written to the database (depending on your transaction management). With Hibernate a specific call to the session is required.

Defining relationships between objects in both JBoss and Hibernate is done via configuration files, however Hibernate’s method seems much simpler despite being at least as powerfull.
Conclusion

Whilst is probably too soon to say (I’ve been using EJBs for three years now and Hibernate only in my spare time for about a week) I am really warming to Hibernate. I suspect that baring any real problems with its performance or more advanced capabilities my next Enterprise application will use Hibernate for persistence.

Ajax: A New Approach to Web Applications


If anything about current interaction design can be called “glamorous,” it’s creating Web applications. After all, when was the last time you heard someone rave about the interaction design of a product that wasn’t on the Web? (Okay, besides the iPod.) All the cool, innovative new projects are online.

Despite this, Web interaction designers can’t help but feel a little envious of our colleagues who create desktop software. Desktop applications have a richness and responsiveness that has seemed out of reach on the Web. The same simplicity that enabled the Web’s rapid proliferation also creates a gap between the experiences we can provide and the experiences users can get from a desktop application.

That gap is closing. Take a look at Google Suggest. Watch the way the suggested terms update as you type, almost instantly. Now look at Google Maps. Zoom in. Use your cursor to grab the map and scroll around a bit. Again, everything happens almost instantly, with no waiting for pages to reload.

Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web.
Defining Ajax

Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:

* standards-based presentation using XHTML and CSS;
* dynamic display and interaction using the Document Object Model;
* data interchange and manipulation using XML and XSLT;
* asynchronous data retrieval using XMLHttpRequest;
* and JavaScript binding everything together.

The classic web application model works like this: Most user actions in the interface trigger an HTTP request back to a web server. The server does some processing — retrieving data, crunching numbers, talking to various legacy systems — and then returns an HTML page to the client. It’s a model adapted from the Web’s original use as a hypertext medium, but as fans of The Elements of User Experience know, what makes the Web good for hypertext doesn’t necessarily make it good for software applications.

Ajax Overview 1

Figure 1: The traditional model for web applications (left) compared to the Ajax model (right).

This approach makes a lot of technical sense, but it doesn’t make for a great user experience. While the server is doing its thing, what’s the user doing? That’s right, waiting. And at every step in a task, the user waits some more.

Obviously, if we were designing the Web from scratch for applications, we wouldn’t make users wait around. Once an interface is loaded, why should the user interaction come to a halt every time the application needs something from the server? In fact, why should the user see the application go to the server at all?
How Ajax is Different

An Ajax application eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary — an Ajax engine — between the user and the server. It seems like adding a layer to the application would make it less responsive, but the opposite is true.

Instead of loading a webpage, at the start of the session, the browser loads an Ajax engine — written in JavaScript and usually tucked away in a hidden frame. This engine is responsible for both rendering the interface the user sees and communicating with the server on the user’s behalf. The Ajax engine allows the user’s interaction with the application to happen asynchronously — independent of communication with the server. So the user is never staring at a blank browser window and an hourglass icon, waiting around for the server to do something.

Ajax Overview 2

Figure 2: The synchronous interaction pattern of a traditional web application (top) compared with the asynchronous pattern of an Ajax application (bottom).

Every user action that normally would generate an HTTP request takes the form of a JavaScript call to the Ajax engine instead. Any response to a user action that doesn’t require a trip back to the server — such as simple data validation, editing data in memory, and even some navigation — the engine handles on its own. If the engine needs something from the server in order to respond — if it’s submitting data for processing, loading additional interface code, or retrieving new data — the engine makes those requests asynchronously, usually using XML, without stalling a user’s interaction with the application.
Who’s Using Ajax

Google is making a huge investment in developing the Ajax approach. All of the major products Google has introduced over the last year — Orkut, Gmail, the latest beta version of Google Groups, Google Suggest, and Google Maps — are Ajax applications. (For more on the technical nuts and bolts of these Ajax implementations, check out these excellent analyses of Gmail, Google Suggest, and Google Maps.) Others are following suit: many of the features that people love in Flickr depend on Ajax, and Amazon’s A9.com search engine applies similar techniques.

These projects demonstrate that Ajax is not only technically sound, but also practical for real-world applications. This isn’t another technology that only works in a laboratory. And Ajax applications can be any size, from the very simple, single-function Google Suggest to the very complex and sophisticated Google Maps.

At Adaptive Path, we’ve been doing our own work with Ajax over the last several months, and we’re realizing we’ve only scratched the surface of the rich interaction and responsiveness that Ajax applications can provide. Ajax is an important development for Web applications, and its importance is only going to grow. And because there are so many developers out there who already know how to use these technologies, we expect to see many more organizations following Google’s lead in reaping the competitive advantage Ajax provides.
Moving Forward

The biggest challenges in creating Ajax applications are not technical. The core Ajax technologies are mature, stable, and well understood. Instead, the challenges are for the designers of these applications: to forget what we think we know about the limitations of the Web, and begin to imagine a wider, richer range of possibilities.

It’s going to be fun.
Ajax Q&A

March 13, 2005: Since we first published Jesse’s essay, we’ve received an enormous amount of correspondence from readers with questions about Ajax. In this Q&A, Jesse responds to some of the most common queries.

Q. Did Adaptive Path invent Ajax? Did Google? Did Adaptive Path help build Google’s Ajax applications?

A. Neither Adaptive Path nor Google invented Ajax. Google’s recent products are simply the highest-profile examples of Ajax applications. Adaptive Path was not involved in the development of Google’s Ajax applications, but we have been doing Ajax work for some of our other clients.

Q. Is Adaptive Path selling Ajax components or trademarking the name? Where can I download it?

A. Ajax isn’t something you can download. It’s an approach — a way of thinking about the architecture of web applications using certain technologies. Neither the Ajax name nor the approach are proprietary to Adaptive Path.

Q. Is Ajax just another name for XMLHttpRequest?

A. No. XMLHttpRequest is only part of the Ajax equation. XMLHttpRequest is the technical component that makes the asynchronous server communication possible; Ajax is our name for the overall approach described in the article, which relies not only on XMLHttpRequest, but on CSS, DOM, and other technologies.

Q. Why did you feel the need to give this a name?

A. I needed something shorter than “Asynchronous JavaScript+CSS+DOM+XMLHttpRequest” to use when discussing this approach with clients.

Q. Techniques for asynchronous server communication have been around for years. What makes Ajax a “new” approach?

A. What’s new is the prominent use of these techniques in real-world applications to change the fundamental interaction model of the Web. Ajax is taking hold now because these technologies and the industry’s understanding of how to deploy them most effectively have taken time to develop.

Q. Is Ajax a technology platform or is it an architectural style?

A. It’s both. Ajax is a set of technologies being used together in a particular way.

Q. What kinds of applications is Ajax best suited for?

A. We don’t know yet. Because this is a relatively new approach, our understanding of where Ajax can best be applied is still in its infancy. Sometimes the traditional web application model is the most appropriate solution to a problem.

Q. Does this mean Adaptive Path is anti-Flash?

A. Not at all. Macromedia is an Adaptive Path client, and we’ve long been supporters of Flash technology. As Ajax matures, we expect that sometimes Ajax will be the better solution to a particular problem, and sometimes Flash will be the better solution. We’re also interested in exploring ways the technologies can be mixed (as in the case of Flickr, which uses both).

Q. Does Ajax have significant accessibility or browser compatibility limitations? Do Ajax applications break the back button? Is Ajax compatible with REST? Are there security considerations with Ajax development? Can Ajax applications be made to work for users who have JavaScript turned off?

A. The answer to all of these questions is “maybe”. Many developers are already working on ways to address these concerns. We think there’s more work to be done to determine all the limitations of Ajax, and we expect the Ajax development community to uncover more issues like these along the way.

Q. Some of the Google examples you cite don’t use XML at all. Do I have to use XML and/or XSLT in an Ajax application?

A. No. XML is the most fully-developed means of getting data in and out of an Ajax client, but there’s no reason you couldn’t accomplish the same effects using a technology like JavaScript Object Notation or any similar means of structuring data for interchange.

Q. Are Ajax applications easier to develop than traditional web applications?

A. Not necessarily. Ajax applications inevitably involve running complex JavaScript code on the client. Making that complex code efficient and bug-free is not a task to be taken lightly, and better development tools and frameworks will be needed to help us meet that challenge.

Q. Do Ajax applications always deliver a better experience than traditional web applications?

A. Not necessarily. Ajax gives interaction designers more flexibility. However, the more power we have, the more caution we must use in exercising it. We must be careful to use Ajax to enhance the user experience of our applications, not degrade it.

Web Stats

Amazing Web Counter
Pay Roll Advance