Welcome to the first
installment of JDJ Labs.
Our goal is to introduce
you to commercial (and
open-source) products and
technologies that will
help you, the Java
developer, work more
efficiently. We expect
our testing to provide
you with a starting point
for your own testing and
analysis. In this column
we’ll be looking at
common market trends that
affect the commercial
products and services in
the Java space.
FrontierSuite is a single
tool that can help you
design, develop, and
deploy your e-business
Java applications from
start to finish. You can
start your project with
UML-based object modeling
using Frontier Modeler
and move on to generate
EJB entities and deploy
using Frontier Deployer.
ePersistJ serves as CMP
(container-managed
persistence) and BMP
(bean-managed
persistence).
As the Internet continues
to grow as a viable
medium for
enterprise-class
applications, the tools
and technology for
developing these
applications continue to
advance at a frenetic
pace. The state of the
technology now allows for
a multitiered application
that involves anything
from simple scripting to
complex objects. Such
technological advances
have created an
environment in which
multiple developers can
work together on a single
“logical”
application.
Anyone who has used the
Java 2 Platform,
Enterprise Edition (J2EE)
has to be impressed with
how quickly it’s
matured and become a
robust programming model.
Besides the ability to
build new applications,
developers can use J2EE
to connect to third-party
software, legacy systems,
and Java-based e-business
application engines and
deploy them across a
distributed computing
environment. As powerful
as the various
technologies supporting
this platform are,
efficiently managing and
using them all in a
development environment
can be problematic.
Providing an IDE to
manage this complexity is
what Oracle has set out
to accomplish – and
in my opinion, has very
successfully – with
its new Oracle9 i
JDeveloper product.
In Parts 1 and 2 of this
article (JDJ, Vol. 6,
issues 1 and 7) I
discussed how to use a
JTable with a table model
and showed how much work
is involved getting a
JTable to work with data.
This is quite a departure
for veterans of other
fourth-generation
languages who may be used
to developing in Visual
Basic or PowerBuilder.
Both these languages have
intelligent controls that
keep track of the data as
the user is manipulating
it.
A contagious disease that
results in oddly colored
teeth? A South Seas
pirate with a penchant
for eating toxic sea
food? Or perhaps a
superhero with really
unhelpful superpowers? If
you answered yes to any
of these questions,
chances are you've had
your Java blinkers on and
haven't been paying
attention to the rest of
the industry.
As an industry we used to
consider mobile/wireless
computing to be the next
frontier. Now it has
become part and parcel of
critical, enterprise
applications ranging from
Customer Resource
Management to Enterprise
Resource Planning. Many
of the early mobile
computing efforts that
I've run across were
built around external
application service
providers (ASPs) and
relied on gateway
technology. From an
investment perspective it
made perfect sense to
approach the problem in
this manner.
It's often said that 'a
picture is worth a
thousand words' - and
I've generally found this
to be true. In fact, it's
often easier for users to
digest numeric data when
it's displayed in picture
form, such as with a
chart or graph. Business
analysts have long
understood this concept
and often choose to
display raw data in
graphic form to make it
easier to understand.
With the popularity of
Java servlets and
JavaServer Pages, it's
now possible to
dynamically display this
very same data on the
Web. Sitraka Software is
one of the premier
software vendors in the
Java components market.
They market a powerful
dynamic-charting
component called JClass
ServerChart, which is
perfect for generating
colorful charts and
graphs for the Web.
Before we get started,
it's worthwhile noting
that I'm not a big fan of
WAP. Well, not the
protocol itself exactly,
but WML-based Web sites -
the whole idea of
browsing the Web on your
mobile seems somewhat
flawed when your screen
real estate is minimal
and you probably have
only one more color than
Henry Ford wanted for his
cars. So when
4thpass offered me a look
at their KBrowser for
MIDP and Palm devices, I
wasn't expecting to be
that enthused. Sure, it's
written in Java - feel
free to clock me over the
back of the head with a
large shoe if I ever turn
up my nose at a look at a
good Java application -
but it's WAP. If you've
ever used a WAP phone (or
know someone who has) you
undoubtedly know the
rhyme that goes along
with it: WAP is crap.
Okay, so maybe you
haven't heard it, and I
hang out with some really
unimaginative people.
Despite the 'slowdown' in
technology, the
developers and project
managers who I speak with
continue to be under
enormous pressure to
deliver new applications
and technology at a
frenetic pace. It can be
incredibly difficult to
juggle all the various
development tasks when
team members are working
on multiple projects.
In June 2001, Borland
released the latest
version of the JBuilder
series. Borland is an
ever-popular presence in
the Java IDE market, but
with most IDEs now
offering the same
functionality, is there
anything to set JBuilder
apart?
Convergence. A word loved
by PR companies and
feared by nontechnical
consumers. If you believe
industry pundits, we'll
all be carrying
combination mobile
phone-PDA-TV-toasters in
the next few years.
You'll be able to make a
phone call, write a memo,
watch the morning news,
and cook your breakfast
all at the same time
while on your way to
work. How close reality
comes to the dream (or
nightmare, depending upon
your point of view) is
anyone's guess, but the
first devices that might
fit a definition of
'convergence' are
emerging on the market.
Nokia's 9210 Communicator
is one such combination -
a mobile phone and PDA.
Tag libraries were
introduced into the Java
specification to solve
many of the limitations
of using scriptlets (bits
of Java code) as part of
a JSP page. The main
limitation is that
advanced page design may
require the designer to
understand Java to
perform tasks such as
constructing a loop,
if/else blocks, and
sending an e-mail, and so
on. Art designers and
HTML developers are
creating many pages in
today's Web development
environment, making this
approach less than
optimal. Tags provide a
mechanism that will allow
a non-Java developer to
utilize Java
functionality without
having to learn the
language.
Sometimes finding hosting
for your well-crafted
pieces of code can be
more work than the coding
itself. Locating a
service that does it free
of charge is a real
challenge; however,
www.mycgiserver.com is a
service that meets both
criteria. The site
started life as a CGI
server that could run
user's Perl scripts, PHP,
and Java servlets, but in
November 2000 they made
the decision to
concentrate on Java
deployment.
In my opinion there have
always been two types of
Java application
developers. The first
type prefers to use a
text editor, compiler,
and debugger to get the
job done. Once upon a
time, this was the only
way to write code, from
COBOL and Fortran all the
way through C. The age of
the fourth-generation
language introduced the
concept of a specialized
developer 'coding tool,'
which we now refer to as
an integrated development
environment (IDE).
New-car buyers often fear
that they're getting a
'Friday afternoon'
vehicle - a car built by
the last shift at the end
of a tough week.
Manufacturers have spent
an untold number of
man-years trying to
prevent such defects.
This month I review two
books, both of which are
valuable sources for
developers and architects
building enterprise
applications using J2EE
technologies. If
you're familiar with the
J2EE Blueprints from
Sun,Designing Enterprise
Applications with the
Java2 Platform,
Enterprise Edition is the
official 'Java Series'
book from Addison-Wesley
on them. It's a part of
the Java Series
Enterprise books from
Sun. J2EE Blueprints are
still available for a
free download from Sun's
Java site, but if you
like to have the
professionally bound
book, this is it.
Founded in the U.K. in
1986, Insignia started
out developing technology
that enabled non-Intel
computers to run DOS and
Windows applications.
Twelve years later, after
a shift in focus, the
first beta versions of
the Jeode platform and
Jeode Embedded Virtual
Machine emerged.
According to Insignia's
statistics, more than 35
million runtime units of
Jeode technology have
been contracted by OEMs,
OS, and middleware
suppliers.
This is the first in a
series of reviews of
devices that are capable
of running Java 2 Micro
Edition - be it
PersonalJava, MIDP, or
any other new profile
that comes along. In this
and future issues of JDJ,
we'll try to provide a
rundown of the various
kinds of handheld,
embedded, and mobile
devices, and how well
they run your favorite
language. First up is
Compaq's iPAQ.
When Sun Microsystems
rings you up and asks
whether or not you'd be
interested in playing
with a new desktop system
they've just announced
that's aimed at Java
developers, amongst many,
what can you do but nod
affirmatively. After much
paperwork to allow the
machine to leave the
shores of the U.S., it
arrived here in Scotland
where it was immediately
unpacked and fired up.
That was two months ago.
In a recent editorial
meeting with the JDJ
staff I broached the
subject of open source
software with
editor-in-chief, Alan
Williamson. I freely
admit that I was baiting
him - but Alan was
favorable towards it.
It's a touchy subject for
any technical person,
sort of a motherhood and
apple-pie thing.
iPlanet recently
announced some updates to
their family of Web and
application server
products that help
consolidate the overall
product line. The new
product positioning won't
surprise iPlanet
enthusiasts as it
positions iPlanet as a
superior solution for a
broader range of the
application server
marketplace. The core of
these announcements is a
new release of the Web
server software and new
packaging for the
application server
lineup:
In my travels I've run
across lots of bad Java
code (some of which I've
written myself). Usually
it's due to unrealistic
project deadlines, bad
estimates for how long
something will take, no
architecture in place,
and developers' not
really understanding the
subtleties of the
language.
Development of enterprise
applications using Java
technologies is not for
the faint-hearted.
Writing to the J2EE specs
is proving to be complex,
difficult, and tedious -
slowing down advanced
Java developers and
creating a barrier to
entry for many mainstream
developers.
Bill Coleman, Edward
Scott, and Alfred Chuang
must be looking at their
September 1998
acquisition of WebLogic
as the best money they
ever spent. WebLogic's
Tengah product was a
little-known, Java-based
application server when
BEA made the decision to
buy their way into the
growing market for Java
application servers way
back when. Since those
early days the J2EE
specification has matured
and BEA has made great
strides with the WebLogic
product line. Their most
recent effort is WebLogic
Server 6.0 - a product
that was touted with much
fanfare at BEA's eWorld
conference in Dallas,
Texas.
Most companies have a
large investment in
legacy systems for ERP,
transaction processing,
and database
applications. Everyone's
talking about how they
can leverage these
systems and integrate
them into their modern,
multitier, e-business
application
architectures.
ZeroCode is a Web-based
development environment
that allows a team to
graphically develop a
Web-based database
application with minimal
handwritten code. The
development environment
is Web-based and housed
on zeroCode servers.
Developers build the
application via the Web
interface and when
complete, the entire site
is downloaded and
installed on servers in
the production
environment.
Last month in JDJ (Vol.
6, issue 4) I introduced
the topic of
object/relational
mapping. Databases such
as Oracle8i or DB2 store
data in tables and
columns. Thus, customer
data is stored in a
'customer' table and
information relevant to
the customer such as ID,
name, and address are
stored as columns. All
the data for a single
customer within the
customer table is
equivalent to a 'record.'
From the EJB perspective
customer data is
represented by a customer
'class' and the data
elements are represented
by 'attributes.' Con-
ceptually, the mapping
process is a simple one.
Each database table is an
EJB class (CMP or BMP),
and each and every column
in the table becomes an
attribute. Individual
customer records are
instantiated as EJB
objects as necessary.
In this new era of rapid
application development
(RAD), there's an
ever-increasing push to
get applications into
production without
adequate testing. This
methodology does meet
deadlines, but it can
also lead to serious
implications for your
business's future. For
example, many Internet
companies deploy
applications that lack
the ability to handle
high loads, or their
applications aren't
scalable enough to grow
with the increasing
demands of the business.
With a little testing
these simple mistakes can
be caught before an
application goes into
production.
In Part 1 of this article
(JDJ, Vol. 6, issue 2) we
discussed the problems
associated with J2EE's
Servlet/JSP container. In
Part 2 we'll discuss
Cybelink's Jlink
architecture and how it
solves those problems.
The year 2000 saw J2EE
compliancy move out of
the realm of marketing
and into nine shipping
products. The threat of
commoditization of J2EE
application servers
forced vendors to switch
gears in 2001 toward
leveraging J2EE servers
as platforms for Web
services, wireless, and
EAI development.
Application servers are
the one category of
software product that
seems to be on everyone's
mind these days. No
longer is there any doubt
in my mind that n-tier
applications are the
future. Certain
applications will benefit
from a heavy-client
architecture, such as
desktop publishing, but
most will have at least
some portion of their
logic running on the
middle tier.
By Steve Francisco; Ellen Matheson McKay; Tim deBoer
Using a software
configuration management
(SCM) system is an
integral part of any
development project.
Source code is your most
valuable resource and
must be protected.
However, with the large
number of products
available from many
different vendors, it's
essential that you choose
an SCM system that will
work with your favorite
development tools.
Let's start by getting
the naming business out
of the way! First there
was a company named
Borland. Then, for
apparently no good
reason, they changed
their name to Inprise.
The Inprise name was
supposed to encompass the
Enterprise products (such
as VisiBroker, Entera,
etc.) and the Borland
name was kept for the
tools (JBuilder, Delphi,
C++Builder, etc.). Well,
all the name change did
was confuse everyone.
One of the more
complicated issues that
J2EE application
developers face is the
process of mapping
relational data to EJBs.
The J2EE specification
provides EJBs as the
mechanism to persist
objects into a database.
They certainly solve lots
of problems for
developers, especially in
the areas of transaction
management and
distributed computing.
DeployDirector provides a
comprehensive environment
for maintaining Java
applications across the
enterprise. It consists
of several modules,
including a server-based
repository, an
administrative interface,
and a client-side agent.
The administrative tool
allows you to configure
and deploy new or updated
versions of an
application to thousands
of client desktops across
the enterprise.
For software developers
source code is more than
just files on a disk -
it's the result of hours
of thought and work and
must be protected. If you
look at the number of
software tools available
to help developers track
and store their source
code, you'll see that
code protection is a key
part of any serious
software development
effort.
In the increasingly
fast-paced world of the
Internet, myriad new Web
sites seem to arrive
daily, intent on gaining
market share. Whether
your site is involved in
business-to-consumer
sales, online services,
or portal services, the
name of the game is the
same: try at all costs to
retain users and give
them the best customer
service experience.
This is my first book
review for Java
Developer's Journal. As
coauthor of a competing
book, I figured I'd be
very critical of the
author's writing and the
book's content. I must
admit I'm pleasantly
surprised; this is a
really good book and, in
many ways, better than
the book I coauthored.
There are 8,909 books
listed on Amazon.com with
the word 'Investing' in
the title; there are(!)
27,146 books with the
word investment in the
title. Without having lo
This book is an update of
an earlier version that
was written for SQL
Server 2000. It employs
the Murach approach of
dual pages that repeat
and enhance the concepts
Reviewers overuse the
phrase 'required
reading,' but no other
description fits the new
book 'Ajax Security'
(2007, Addison Wesley,
470p). This exhaustive
tome from B
In my many years of
programming, almost 20
years now, I have used
countless integrated
development environments
(IDEs). I have used
everything from a simple
text edi
It's hard to overestimate
the importance of having
a good logging facility
when you develop
distributed applications.
Did the client's request
reached the server-sid