teknorati

Tuesday, December 28, 2004

Dynamic PDF Generation with JasperReports, Struts and a Database

This tutorial is aimed at the beginner JR user who is happy with J2EE web application development. It will show you how JR was used to deliver the requirement described and should convince you that it is a truly fantastic piece of kit.


For info : http://www.adcworks.com/blog/index.php/archives/2004/11/16/dynamic-pdf-generation-with-jasperreports-with-struts-and-a-database/

Why IBM is open sourcing Cloudscape as Derby

Why IBM is open sourcing Cloudscape as Derby
IBM Vice President Jon Prial reveals why

Jon Prial
Vice President, Marketing, Information Management Software, IBM
14 Oct 2004

At LinuxWorld in San Francisco, IBM® announced that it was releasing Cloudscape ™, a fully relational Java™database as open source to the Apache Software Foundation, which has established it as an incubator project under the name "Derby." This is the latest in a long series of commitments that IBM has made to the open source community. To find out more about the database, and how it fits into both IBM's strategy and the Java application stack, we talked to Jon Prial, IBM Vice President, Marketing, Information Management Software. Here's what he had to say.

Q: At LinuxWorld, IBM announced that it is contributing Cloudscape to the Apache Software Foundation. What is Cloudscape?

A: Cloudscape is a Java-based, fully transactional relational database technology. It's a purely embedded database that can either be used within an application, or as the database for a more traditional client-server application. It has a very small footprint, and there's no need for a database administrator; you just write the application. You make your database calls, and Cloudscape is there for you.

Q: What's the difference between the open source and IBM commercial version?

A: We've contributed the Cloudscape code to the Apache Software Foundation [ASF]. The project at Apache is called "Derby" and future commercial versions of IBM Cloudscape will be based on the Derby code base.

Derby is an incubator project, the usual way external projects become a part of the ASF. But developers can contribute to and download the code under the Apache license now, and we are actively working with our partners and Apache to grow and build the community working on Derby.

For our Cloudscape product, IBM will take snapshots of the Derby code and provide full support as the IBM Cloudscape offering. You can get a free download of the IBM Cloudscape code as well, and you can purchase support for it from IBM, but we do not intend to charge a license fee for Cloudscape.

Q: Why did IBM decide to open source Cloudscape?

A: By open sourcing Cloudcape, IBM hopes to accelerate development of Java-based applications and drive more innovation around Linux and Java. So expanding this market expands the market for high-value IBM middleware, hardware, and services. We think it will especially create new business opportunities in areas such as embedded database applications, small business solutions, and Java and Web-based applications.

Developers recognize good code. When we acquired Cloudscape code along with Informix®, our internal development community started talking about it and working with it. So much so, in fact, that today there are already 70 projects within IBM -- many shipping to marketplace, such as WebSphere® Application Server, WebSphere Portal, and IBM Workplace -- using Cloudscape within their offerings. So we knew we had an interesting technology that could become part of the Java stack. We saw a linkage between the Java database and the Java work being done by Apache, and came to realize this is a tremendous project to open source.

Now, IBM has a long-standing commitment to the open source community. Part of the reason that we've been able to build that relationship is because we know that you don't open source code just for the sake of open sourcing code, or to make things easier for yourself.

IBM understands that it must find the right way to build a community and encourage innovation, and we have done this in a number of different ways, such as supporting the creation of Eclipse.org. By working with Apache, we can build a community of developers who use Derby and also help to make it even better. In fact, we're hoping to see the Derby database become as ubiquitous as the Apache HTTP server.

Q: What sort of things can you do with Cloudscape?

A: One of the most interesting uses for Cloudscape is as a Java data store, tying the database directly to the Java application. As I mentioned, the Cloudscape database is very small; it's just a 2-MB .jar file. And with a Java database, when a Java application wants to use it, there's no work to be done at all. No administration. It just makes the JDBC calls and accesses the data, and it does that because it happens to be sitting out there as a .jar file.

Cloudscape technology is actually very versatile -- I think it's important for people to recognize that other types of applications can be used here as well. I mentioned that IBM Workplace uses Cloudscape on the client side for automatic replication back to the server. We provided a technology preview of the "IBM Workplace Data Access" scriptable desktop database -- a business user tool for creating client side databases, queries, and reports -- at LinuxWorld.

And people can use the Cloudscape network server feature to access it as a server-based data store. So Cloudscape can also be used as a client-server database, although we expect to see most of the initial usage around Java applications.

Q: What kind of Eclipse tools will IBM be providing?

A: We have plug-ins for Eclipse that will allow you to access the database. In addition, we have tools for people who use Cloudscape and would like to migrate to a more enterprise-class database. They can migrate from Cloudscape to DB2®, for example.

Q: You mentioned "IBM Workplace Data Access." Could you talk about that some more?

A: IBM Workplace Data Access is a tool for business users to create and query database applications that will run on different desktop environments – including both Windows® and Linux. We used the Eclipse framework to develop the GUI and Cloudscape for the underlying database.

We think IBM Workplace Data Access will open up new opportunities all by itself. But it's also a great example of what you can do when you combine a lightweight, cross-platform database like Cloudscape or Derby with a cross-platform client-side framework for application development like Eclipse.

Q: How does Cloudscape fit into the DB2 database portfolio?

A: Cloudscape meets the need of a new and growing market. As a Java-oriented database, it fills a niche -- which complements our other databases very nicely: DB2 Universal Database™, Informix Dynamic Server, DB2 Express, and so on. And because it's built on open standards, any applications written to Cloudscape can easily move to run on DB2 UDB or other databases as needed for more enterprise-class solutions.

Q: How does Derby differ from other open source databases?

A: No other open source database is as well suited as Derby for extending the Java stack like this, and driving innovation through community involvement. IBM is very focused on meeting this need. We've seen other companies toss databases into open source without a real program to build a community. Many of the open source databases have restrictive licenses. Sometimes ISVs actually have to pay for the right to redistribute open source databases. Sometimes they're not fully relational or transactional.

So Derby is unique compared to other open source databases. It's a truly rich functional relational data store. And, it's available without these kinds of commercial licensing restrictions.

Q: Is there anything else you'd like to add?

A: Cloudscape technology is an extension of IBM's larger data product strategy. Our vision is to integrate heterogeneous data stores -- from zSeries® all the way to pervasive devices -- to support structured and unstructured data, from IBM and non-IBM data sources. We think information integration is the key to tying this together, and our DB2 products provide customers with a framework to do this.

A common and a consistent framework for accessing information enables people to do more things -- to leverage data, to gather more insights, and to become more of an on demand business. We see Cloudscape as a key part of that.


About the author
Jon Prial heads the worldwide marketing and business strategy for IBM’s DB2 Information Management Division. Prior to his current position, Jon held numerous positions at IBM, including most recently Vice President of Business Development and Sales for IBM’s Pervasive Computing Division, and Director of Integrated Solutions and Linux Marketing for IBM’s Software Solutions Division with worldwide marketing responsibility for IBM’s cross-platform software strategy. He joined IBM in 1978, and has a BS in Mathematics, and an MS in Computer Science from Rensselaer Polytechnic Institute.

Monday, December 27, 2004

jUDO : Java Universal Data Objects

jUDO is short for "java Universal Data Objects" and speeds up development/maintainence and remove database-vendor dependency for applications using databases. You should use jUDO whenever you don't want to use EJB's. It will also work for .NET in a near future.
You don't write ANY database-code ,you only have to specify the container classes and the Interfaces for the Models and then jUDO creates the implementation for you runtime, no source is generated!!! It derives all info need to by your Interfaces method names ,that follows name-pattern rules. In case you need some special access method you either add a plugin for this or simply go directly against the database.

For more: http://judoo.sourceforge.net/

CLOUDSCAPE : An Open Source-based Java RDBMS

About Cloudscape

IBM Cloudscape V10.0 is a pure, Open Source-based Java™ relational database management system that can be embedded in Java programs and used for online transaction processing (OLTP). A platform-independent, small-footprint (2MB) database, Cloudscape V10.0 integrates tightly with any Java-based solution.

Features

  • Runs on any standard Java Virtual Machine (JVM).
  • Embeddable inside Java applications on the server, desktop or in pervasive devices.
  • Includes Cloudscape Network Server -- providing multi-user connectivity to IBM Cloudscape databases within a single system or over a network using standard Distributed Relational Database Architecture(TM) (DRDA®) protocol.
  • Delivers zero-administration functionality.
  • Downloads fast, easy to learn and use.

Friday, December 24, 2004

Adding Charts to Web-Based J2EE Applications

Adding Charts to Web-Based J2EE Applications
December 23, 2004

Easily add grapical charts to any Java-based Web applications. Using two popular
open-source projects, Cewolf and JFreeChart, developers can provide users a way to
visually analyze data through a web browser.

For more:
http://nl.internet.com/ct.html?rtr=on&s=1,1awf,1,g09p,lbr7,aknd,24uf


Adding Charts to Web-Based J2EE Applications

Adding Charts to Web-Based J2EE Applications
December 23, 2004

Easily add grapical charts to any Java-based Web applications. Using two popular
open-source projects, Cewolf and JFreeChart, developers can provide users a way to
visually analyze data through a web browser.

For more:
http://nl.internet.com/ct.html?rtr=on&s=1,1awf,1,g09p,lbr7,aknd,24uf


Thursday, December 23, 2004

X-develop - an IDE supporting C#, Java, J# and VB.net

X-develop is a multi-language IDE for the .NET and Java platforms. It supports the C#, Visual Basic.NET, Java and J# programming languages. Productivity-enhancing features such as on-the-fly error checking of all files, refactoring and smart code templates are supported for all languages.

Feature highlights:

Instant detection of errors throughout all files
No need to compile in order to find out if there are errors. X-develop checks all files in the solution on-the-fly in the background and displays errors in an instant.

Refactoring
X-develop includes refactoring support for renaming variables, methods, classes, changing method signature, extracting methods and more. Cross-language refactoring is supported: If for example a method defined in a C# source file is renamed invocations of this method in Visual Basic source files are automatically updated.

Productivity features
Coding tools such as Organize imports, Usage search, Code formatting, Smart templates, Go to class, Go to symbol and more increase productivity.

Compatibility with Visual Studio .NET 2005
X-develop is fully compatible with Visual Studio .NET 2005 solutions and project files. There is no need for importing/exporting projects, just work with existing VS.NET solutions.

Support for C# 2.0
X-develop fully supports the latest C# 2.0 language features such generic types, partial classes, Nullable, etc.

Language plugins
Programming language support in X-develop is realized with a language plugin API. The plugin API makes it possible to bring advanced features including refactoring and error checking to any desired language.

A preview version is now available for download from www.x-develop.com.


Linux Has 985 Bugs

Five ex-Stanford computer researchers now with a start-up called Coverity Inc chartered to develop a better way to build software have analyzed 5.7 million lines of Linux source code over the last four years and say the 2.6.9 production kernel contains only 985 bugs, well below the industry average for commercial enterprise software.

For more : http://www.linuxbusinessweek.com/story/47542.htm

Tuesday, December 21, 2004

USE SWT FOR DATA ENTRY

USE SWT FOR DATA ENTRY


Client-side GUIs can be powerful and speedy:

http://www.javaworld.com/javaworld/jw-05-2004/jw-0531-swt.html

Friday, December 17, 2004

MOZILLA THUNDERBIRD

Mozilla Thunderbird is a powerful open-source mail and news client, supporting advanced junk mail detection and other useful features.

Features

  • E-mail and Newsgroups
  • Support for multiple accounts
  • Junk Mail detection
  • Message Filters
  • HTML message support
  • Address Book
For product information, visit the Thunderbird Product Page.




Thursday, December 16, 2004

How to extract maximum performance from your J2EE Web applications

How to extract maximum performance from your J2EE Web applications

Summary
In this article, Rahul Kuchhal demonstrates how to identify and resolve bottlenecks in a J2EE application. This article covers all the steps required for performance tuning—bottleneck identification, application server and/or Web server tuning, optimal database configuration, database query optimization, and Java code analysis for best performance. The article also briefly introduces the tools that assist in this process. To limit the scope, this article does not cover EJB (Enterprise JavaBeans).

For more: http://www.javaworld.com/javaworld/jw-05-2004/jw-0517-optimization.html

Wednesday, December 15, 2004

Jakarta POI - Java API To Access Microsoft Format Files

Jakarta POI - Java API To Access Microsoft Format Files


The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java. In short, you can read and write MS Excel files using Java. Soon, you'll be able to read and write Word files using Java. POI is your Java Excel solution as well as your Java Word solution. However, we have a complete API for porting other OLE 2 Compound Document formats and welcome others to participate.

OLE 2 Compound Document Format based files include most Microsoft Office files such as XLS and DOC as well as MFC serialization API based file formats.

As a general policy we try to collaborate as much as possible with other projects to provide this functionality. Examples include: Cocoon for which there are serializers for HSSF; Open Office.org with whom we collaborate in documenting the XLS format; and Lucene for which we'll soon have file format interpretors. When practical, we donate components directly to those projects for POI-enabling them.


For more: http://jakarta.apache.org/poi/

I.E. vs. FireFox

------------------------------------------------------------
CNET Community Hot Topics Newsletter December 14, 2004
-------------------------------------------------------------

Dear CNET Members,

Happy Tuesday! Well folks, here it is, the first edition to
our Community Hot Topics Newsletter. We hope you enjoy it as
much as we enjoyed putting it together for you.

The words on everyone's lips lately: Firefox, baby! Some of
you love it, some of you hate it--but nearly all of you were
talking about it. Thanks to CNET's Security Watch column,
"Dear IE, I'm leaving you for good" and the Sunday Smackdown,
"Firefox vs. IE," the TalkBack sections were ringing in with
fascinating opinions as well as helpful hints on how to live
with both browsers. More than 1,000 of you have also
submitted user opinions on the new browser, with an amazing
95 percent giving Firefox the green light. Keep the opinions
coming!

Dear IE, I'm leaving you for good
http://ct.com.com/click?q=4f-Iad4IIUN_gCgGoSQwAlQw8E2n0I1

Sunday Smackdown: Firefox vs. IE
http://ct.com.com/click?q=ae-jOq6QMB3EJrG16NiXLUf1d8ZkuQl

Firefox user opinions
http://ct.com.com/click?q=27-z9imIqIA4snMdcr_Vw9Zy24CjBnt

Cheers!
Lee Koo
CNET Community
_____________________________________________________________

Linux: Fewer Bugs Than Rivals

Linux advocates have long insisted that open-source development results in better and more secure software. Now they have statistics to back up their claims.

According to a four-year analysis of the 5.7 million lines of Linux source code conducted by five Stanford University computer science researchers, the Linux kernel programming code is better and more secure than the programming code of most proprietary software.

Full story: http://www.wired.com/news/linux/0,1411,66022,00.html

Tuesday, December 14, 2004

PeopleSoft Capitulates, Falls to Oracle

PeopleSoft Capitulates, Falls to Oracle
by Maureen O'Gara

(December 13, 2004) - The PeopleSoft board, reports Maureen O'Gara, has agreed that the company be sold to Oracle for $10.3 billion $1.5 billion more than Oracle's now-famous "best and final" offer. "They came to a definite agreement last night," she writes, "hours before PeopleSoft was supposed to show up in Delaware Chancery Court today to explain what was wrong with Oracle's previous $24-a-share bid.".


Ellison Announces "There Will Be Job Losses"
As Oracle Gets PeopleSoft At Long Last - For $10.3 Billion
December 13, 2004, http://www.linuxworld.com/story/47415.htm

Summary
In an all-cash deal worth approximately $10.3 billion, Oracle is going to acquire 100% of PeopleSoft's shares, at a newly-increased price of $26.50, a $2.50 increase on its "best and final" offer which expired in November. PeopleSoft's board has approved the deal. "We believe this revised offer provides good value for PeopleSoft stockholders and represents a substantial increase in value from October," says the chairman of PeopleSoft's transaction committee, George "Skip" Battle. Says Oracle's Ellison: "Today we announced both a great quarter and the agreement to acquire PeopleSoft. This merger gives Oracle even more scale and momentum."

Oracle buys PeopleSoft for $10.3B

Agence France-Presse

WASHINGTON, District of Columbia, United States of America -- (UPDATE) Software giant Oracle has sealed a deal to buy rival PeopleSoft for 10.3 billion dollars, Oracle said early Monday after a bitter 18-month battle.

The deal calling for Oracle to acquire PeopleSoft for 26.50 dollars per share ends one of the bitterest takeover fights in the history of Silicon Valley and gives a big victory for Oracle founder Larry Ellison, one of the world's richest men.

FULL STORY: http://news.inq7.net/infotech/index.php?index=1&story_id=21128

Sunday, December 12, 2004

The Open CD

Saturday, December 11, 2004

IBM Design Guidelines

Friday, December 10, 2004

Business Acccounting for Linux

Business accounting for Linux
By: Laurent Duperval

Can you run your entire company on Linux only? To find out, I tested three promising accrual-basis accounting packages: GnuCash 1.8.9, SQL-Ledger 2.4.0, and Quasar 1.2.4. All were installed on a Gentoo system.

My evaluation criteria are as follows:

* Installation and setup:
Click Here
the simpler, the better. 20% of final score.
* Ease of use: 35% of final score.
* Multilingual support: I need to produce invoices in English and in French. 10% of final score.
* Reporting: Plenty of reports that look good when printed. 25% of final score.
* Support: Mailing list or newsgroup support. 15% of final score.

READ Entire Story: http://applications.linux.com/article.pl?sid=04/12/04/0215221

Thursday, December 09, 2004

Struts best practices
Build the best performing large applications

Multiple options are available for solving problems with Struts. When deciding among these alternatives, the choice must be based on parameters such as the scale of work and availability of time. However for large applications and the best quality-of-service needs, every decision becomes crucial and extra efforts are required to choose the appropriate solution. To help you make these decisions, Puneet Agarwal discusses some of the best practices for developing Struts-based applications.


For more : http://www.javaworld.com/javaworld/jw-09-2004/jw-0913-struts_p.html

To Software Architects: Serve End Users, Not Your Egos

To Software Architects: Serve End Users, Not Your Egos

When the architect job title slipped into the software development lexicon, software engineers became more concerned with building ego-driven monuments than functional skyscrapers.
by David Talbot

The Software Architect is a great job title. It looks great on business cards. When someone asks you what you do for a living, you can say you're a Software Architect. It sounds so much better than Software Engineer. The problem arises when this job title leads to the all-too-common behavior of excessive diagrams, rewriting libraries that are available off the shelf, writing wrappers for everything, and instrumentation so excessive that its performance penalties exceed the resource utilization of the actual program's functions. These behaviors are transforming software development from the practical exercise of delivering what the customer needs into the academic endeavor of building gold-plated monuments to our egos.

Without a doubt, building any piece of software more complex than a few hundred lines of code requires careful planning. Larger projects require a division of work among teams, which in turn requires even more planning to ensure that as the pieces come together in the finished product they will work as expected. The person who does this type of planning is the software architect. He or she decides where one chunk of the application ends and the next one begins, determines the contract between that function and the rest of the system, and then hands it off to developers to write the code.

Unfortunately, the majority of software architects don't stop there. Fondly thinking of software development as an academic pursuit, they go on to produce an endless array of diagrams and force fit into them as many design patterns—complete with obscure names like "Tombstone", "Memento", and "Decorator"—as possible. Architects then feel the need to make their own marks on history by inventing a few more patterns, diagramming them, and bestowing them with new names.

The development teams then try to figure out the endless arrays of diagrams and force fit what the architect demands, which leads them to deliver over-budget, yet underperforming systems to the end users. This isn't just conjecture; I've seen it repeatedly at many organizations.
Diagramming is about communicating what you're building, not about conveying your ability to memorize obscure names for common solutions.
At one organization, they had a diagram on one wall that was 14 feet long and 4 feet high with tiny print. The architect was so proud of his masterpiece, his brilliance, his grand work. Minor amounts of investigation revealed that none of the team leads had the slightest clue what this massive diagram really meant, but it sure looked cool and impressed the executives when they visited the development area.

Individual developers had received smaller diagrams, filled with blocks and arrows, that told them exactly how to build their piece of the application. While attempting to interpret the diagrams, they had to resort to Googling the obscure patterns referenced and were made to feel incompetent for not knowing what a "Grafter" pattern was. Diagramming is about communicating what you're building, not about conveying your ability to memorize obscure names for common solutions.

The "Academication" of Software Development
Many in the software industry seem virtually obsessed with trying to make software development as academic as possible. They want to invent new disciplines. The "high priests" of software such as Grady Booch and the Gang of Four (GoF) are all looking to elevate development to a scholarly exercise as opposed to a practical problem-solving endeavor.

Did people make diagrams to describe software before Booch? Sure they did. But since Booch christened diagramming as the Unified Modeling Language (UML), we now have an item to add to our resumes. Did the GoF invent the patterns described in their book? No, software developers have been using them for years. The GoF just gave them names and created yet another meta language for describing what developers do. Meanwhile, countless new programs that could solve all kinds of problems are just waiting to be written and all these scholastic endeavors have produced nothing new in terms of writing innovate code.

Software development is not an academic exercise. It has more in common with the blue-collar "build me a house" ethic than it does with ivory tower research. So let's quit treating it as if it's university research. It's not. Define, design, build, test, deploy—that's what we do.

The "high priests" of software are all looking to elevate development to a scholarly exercise as opposed to a practical endeavor.

Deliver code that does what the end users of the code need or want. No more, no less. From Web sites to database applications to games, it's all about what your code will do for the end user and not about how you did it. Your end users don't care if you used a Booch diagram or anointed blocks with arrows and written descriptions to communicate to the development team how you were going to build the software. They care only that the software works the way they expect it to.

By no means am I suggesting that you shouldn't document your work or plan it out up front. Failing to plan or document is foolish—plain and simple. Turning this planning into an opportunity to show everyone how bright you are is equally foolish and typically much more expensive.

If you're in charge of the software architecture, whether or not you've been bestowed the holy title, keep the focus on designing a system that works. Keep your diagrams simple and understandable. Don't pay too much attention to whether or not it is a proper Booch diagram or whether it utilizes GoF patterns. Don't try to micro-design every developer's piece of the whole, just where it integrates into the whole. Build the system to do what it needs to do, don't gold plate what the users will never see nor care about.

Just build good software on time and within budget.

David Talbot is the Vice President of Development for Data Systems International, a company that develops case-management software for the social services industry. His experience ranges from license-plate recognition using neural networks to television set-top boxes to highly scalable Web applications.

Source: http://www.devx.com/opinion/Article/22649/1954?pf=true

PERSISTENCE AND HIBERNATE

Understanding the Complexities of Persistence
One of the most complicated and time-consuming tasks of developing an enterprise
application is writing the code to store and load data from a database at
the appropriate times.

At some point, the state of your application must be persisted — most likely to a relational database. Following are some obstacles to overcome with this:

· Mapping an object model to a relational schema — The types of relationships exhibited differ between the two types of models. For example, relational databases model one-to-many and many-to-many relations; whereas, object models model association, aggregation, composition, multiplicity, and inheritance.

· Keeping your object model and database schema in sync — Why should you have to? If you define a Person class with all its fields, you shouldn’t have to duplicate your effort by defining the same structure in a table. What happens when you change the class but you forget to change the schema?

· Persisting and retrieving an object from a database — Writing SQL for all the fields is very tedious and error-prone. It is another thing that also has to be updated when the model changes.

· Maintaining relationships — When an object is retrieved that is associated with a second object, where should the code go that retrieves this second object? When should it be called?

· Querying data — Where do you write code to find all Person objects who are born in a particular year?

· Performance — Executing an SQL hit for every single operation is slow and puts a lot of overhead on the server. Techniques such as caching, lazy loading, and eager loading must be employed to improve performance.

The actual work required to achieve all this is possible but very repetitive, which adds to development time. However, like all repetitive tasks, tools can be of assistance.

Hibernate is one of those.

Persisting Objects with Hibernate 2
Hibernate version 2, which will be referred to from here on as Hibernate, is a free and Open Source Object-Relational Mapping (ORM) framework available from http://hibernate.sourceforge.net.

Hibernate is not an abstract, high-level persistence framework like JDO or EJB
CMP. Unlike those frameworks, it doesn’t try to abstract away completely to a
generic persistence framework that is applicable to mapping to relational, objectbased,
or mainframe databases. It specializes only in transparent persistence of
objects in relational databases and, thereby, has an API that is more intuitive
for working with relational databases. Also note that, unlike those standards,


Hibernate is not currently an implementation of any industry standard. Hibernate tries to accomplish what is known as Transparent Persistence in its best and most realistic form. Transparent Persistence means that, in order to add the persistence functionality to classes, you don’t have to modify the classes to adapt to the persistence mechanism. Some frameworks, such as JDO, use byte-code modification to accomplish this. So, in those systems, the compiled classes are enhanced by some persistence-specific bytecode. Hibernate, on the other hand, does essentially the same thing but in runtime.

The advantage of this approach is smoother development cycles because no extra step is added to the build process of the application to enhance the compiled classes
with persistence code.


Hibernate works with many different database brands, such as Oracle, DB2,
Sybase, PostgreSQL, and MySQL, to name a few. It understands different SQL
dialects of these databases and tries to take advantage of all optimizations possible
in the SQL dialect of each of these databases. It’s worth mentioning that

Hibernate is independent of any application server and works on any of them. It even works in environments other than J2EE application servers. For example, you can easily use it in a client-server Swing application or in JUnit test cases.

Hibernate comes with a framework for storing objects in relational tables. It provides an API to load those objects back in memory, either directly by using the primary keys or by using a sophisticated query language called Hibernate Query Language (HQL). It provides other services such as caching and database schema generation, too.



Monday, December 06, 2004

PhilNITS : The new JITSE

THE JAPANESE IT Standard Examination Philippine Foundation Inc (JITSE Philippines) has changed its corporate name to the Philippine National IT Standards Foundation (PhilNITS) Inc.

Maricor Akol, president of PhilNITS, said the change in the corporate name is intended to correct the misconception that the IT standard exams being implemented are only for the Japanese market.

PhilNITS is a non-stock, non-profit, non-government organization that is implementing an internationally recognized certification program from the Japan Information Technology Engineers Examination Center (JITEC) of the Ministry of Economic, Trade and Industry (METI) of Japan without necesarrily limiting the use only for the Japanese market.

For more info, check out JITSE/PhilNITs at http://www.jitse.org





Sunday, December 05, 2004

MYTH: IT DOESN'T SCALE by Jon Udell

MYTH: IT DOESN'T SCALE by Jon Udell
(on Friendster's choice of PHP over JSP)

Source: http://www.infoworld.com/article/04/08/13/33FEmyth6_1.html

At one time or another, nearly every kind of information technology has been judged and found wanting. The failures are often summed up in that most damning of epithets: “It doesn’t scale.” The reason, of course, is that at one time or another, for one reason or another, every kind of information technology has failed to scale.

Unfortunately for the victims tarred with that brush, scalability is a wildly imprecise term. Applications may be expected to scale up to massive server farms or scale down to handsets. And size is only one axis of scalability. Others include bandwidth, transactional intensity, service availability, transitivity of trust, query performance, and the human comprehensibility of source code or end-user information display.

There is no magic bullet that will slay all of these demons, but that doesn’t stop us from trying to find one.

Case in point: the recent furor that erupted when Friendster, a social-networking service, switched from J2EE to PHP and improved its response time dramatically. Reacting to a long history of allegations that “scripting languages don’t scale,” advocates of PHP could now gleefully assert, “Java doesn’t scale.”

The debate generated a lot of heat but also shed some light on what PHP’s inventor, Rasmus Lerdorf, calls its “shared nothing” architecture. Because PHP is stateless, he explains, potential bottlenecks are pushed out of the Web tier and into the database tier. If you’re using Oracle, Lerdorf says, scalability is proportional to “how big a check you write to Oracle every year,” and if you’re using MySQL or PostgreSQL, “it comes down to whether you have configured replication correctly and have a nicely architected tree of database machines.”

Of course, Java can be used in a similar way. When eBay made its widely publicized switch to J2EE, the statelessness of the new architecture was cited as a critical success factor. “Part of the mandate of EJB is to be stateless,” says Sun Distinguished Engineer John Crupi, whose team helped redesign eBay. The revised
architecture used stateless session beans, avoided clustering, and focused on a set of business objects backed by eBay’s highly customized database tier.

In the end, scalability isn’t an inherent property of programming languages, application servers, or even databases. It arises from the artful combination of ingredients into an effective solution. There’s no single recipe. No matter how mighty your database, for example, it can become a bottleneck when used inappropriately. Many dot-com-era Web publishers learned that lesson the hard way when their database-driven sites were crushed by the Slashdot horde.

The current blogging revolution represents, among other things, a more optimal balance between two synergistic methods: serving dynamic content from a database and serving cached, static content from a file system.

It’s tempting to conclude that the decentralized, loosely coupled Web architecture is intrinsically scalable.

Not so. We’ve simply learned — and are still learning — how to mix those ingredients properly. Formats and protocols that people can read and write enhance scalability along the human axis. Caching and load-balancing techniques help us with bandwidth and availability.

But some kinds of problems will always require a different mix of ingredients. Microsoft has consolidated its internal business applications, for example, onto a single instance of SAP. In this case, the successful architecture is centralized and tightly coupled.

For any technology, the statement “X doesn’t scale” is a myth. The reality is that there are ways X can be made to scale and ways to screw up trying. Understanding the possibilities and avoiding the pitfalls requires experience that doesn’t (yet) come in a box.

Thursday, December 02, 2004

TAMING TIGER (Java 1.5)

Wednesday, December 01, 2004

WELL-BEHAVED JETSPEED PORTLET

A well-behaved Jetspeed portlet

Writing Jetspeed portlets is somewhat like writing servlets. Portlets need to function well in a framework and on a page full of HTML elements. In this article, you follow along as Bob Fleischman constructs the LinkFarm portlet for Jetspeed 1.5 and examine techniques for coding a portlet that doesn't interfere with other portlets.

Check out:
http://www.javaworld.com/javaworld/jw-11-2004/jw-1129-jetspeed_p.html