2008 is going to be an
important year for Rich
Internet Applications.
Most organizations are
delivering or planning to
deliver Rich Internet
Applications; however, at
the same time, most IT
managers are facing a
dilemma: which Rich
Internet Application
technology and platform
to use? The number of
different frameworks and
libraries is too vast to
even consider evaluating
a fraction of them.
A slow receiver is a node
in a distributed system
that can't process
incoming messages due to
network bandwidth issues,
CPU issues, I/O issues or
a combination of these
factors. In all cases,
the slow receiver either
fails to pick up data
from its incoming network
buffers, causing the
system to bottleneck, or
fails to send
application- or
protocol-level
acknowledgements that
would let the sender
proceed.
The Java Platform,
Enterprise Edition, or
Java EE, is the most
popular middleware
platform for developing
and deploying enterprise
applications. Java EE
offers developers a
choice of vendors,
portability, scalability,
and robustness. However,
it has been criticized
for its complexity and
its need for a lot of
redundant and procedural
code. In addition,
lightweight frameworks
such as Spring and
scripting platforms such
as Ruby on Rails have
emerged to challenge the
platform's supremacy in
the middleware world.
In the first part of this
article you learned how
Java EE 5 has simplified
enterprise application
development by adopting a
POJO programming model
and making use of Java 5
metadata annotations. You
also discovered how the
Spring Framework version
2.0 integrates with Java
Persistence API (JPA) and
makes it simple to use
from enterprise Java
applications.
WebLogic Server 9.x
provides database
connectivity with data
sources. A data source is
a pool of database
connections from which a
connection can be
obtained. A data source
can be configured
separately or as a
multi-datasource. A
multi-data source is
collection of data
sources. A data source is
configured with a JNDI
binding. A DataSource
object is obtained with a
JNDI lookup. A Connection
object can be obtained
from a DataSource object
with the getConnection()
method. WebLogic Server
provides an
administration console to
configure a data source.
WebLogic Server 9.x
includes Type 4 JDBC
drivers from DataDirect
for DB2, Informix,
Microsoft SQL Server,
Sybase, and Oracle
databases. JDBC drivers
for other databases can
be incorporated in the
server by including the
JAR files for the JDBC
drivers in the server
classpath.
Don't you love looking at
a good piece of code? I'm
talking about the kind of
code where the design is
so sound that the code
practically wrote itself,
where there were no nasty
surprises at
implementation, where it
was 100% feature complete
and bug-free, and you
didn't have to patch it
up a bunch of times.
Maybe I'm squarely in the
land of Santa Claus and
the Easter Bunny, but I
believe, deep down, all
developers want to write
that perfect piece of
code. Unfortunately, real
life has other ideas.
Deadlines, unclear or
conflicting requirements,
ridiculous scope, being
human - all these things
keep us from the promised
land of perfect code.
Even experienced Java Web
developers are often
surprised by how big a
leap it is to develop a
portal. The simple, slick
interface that end users
see belies the deep power
and complexity provided
by commercial products
like BEA WebLogic Portal.
This makes it extremely
challenging to diagnose
performance issues when
portal applications go
into production.
I'd like to share some of
the design highlights of
a large-scale content
distributing system I
worked on a while back.
Some of the highlights
may seem trivial; some
may be a little more
complicated. To me,
software design is a
matter of finding a
balance between applying
available technologies
and fulfilling real-world
requirements and
constraints. The goal of
design is always to
ensure both the runtime
and development-time
quality of the software.
To make a good
impression, one needs to
have a good vocabulary.
Management Professionals,
University Professors, or
GRE/GMAT aspirants - we
all benefit from a decent
set of words in this
competitive world. There
are different ways we can
improve our vocabulary,
such as reading novels,
articles, dictionaries
and so on, but we often
find very little time to
do so.
In my earlier article
'Moving to SOA in J2EE
1.4' published in the
February issue of JDJ I
introduced you to the new
object distribution model
based on Web Services
that became available to
Enterprise Java
applications with the
advent of Java EE 1.4. In
this article I want to
look at the security
features available in
Java EE SOA.
Finding and buying Java
books online is
great...as long as you
know what to look for.
The thing is in many
cases it's not obvious
from the book title what
the book about (I'll give
you some examples below).
So visiting a real
bookstore can be a much
better experience. I'm
lucky to work right by a
large bookstore, so I
have the luxury of
visiting this store a
couple of times a week.
This is how it goes. You
slowly move your eyes
along the
bookshelf...Stop, let me
open this one. No hurry.
I believe in the
chemistry between books
and readers: either you
like it or not. This very
moment. Without even
reading it. No rush. Do
you know that books are
not put on the shelves
randomly?
Tangosol, Inc., the
leading provider of
reliable data grid
solutions, today
announced the Coherence
Data Grid Solution Set,
which cost effectively
extends enterprise access
to the data grid with
three new client
connectivity options,
each addressing unique
business needs.
Parasoft has released
Jtest, 8 which takes
testing to a whole new
level, well beyond any
other testing solution,
stated Luis Barbier,
Software Consultant for
ISO.
Service Data Objects
(SDOs) have become a
foundation technology for
Service Oriented
Architecture (SOA).
Recently, BEA, IBM,
Oracle, SAP, Iona,
Siebel, and Sybase
announced their support
for an SOA-enabling
framework specification
named Service Component
Architecture (SCA). SD O
provides the primary data
representation in this
framework.
Today's topic is how to
lead offshore
programmers. To make this
discussion a bit more
interesting, let's go
back in time into the
first half of the 19th
century.
I recently evaluated the
use of Acegi as the
security framework for a
Web development project.
In the end, we decided to
move forward with Acegi
but in the beginning it
took a couple days to
come to that decision.
The amazing thing is:
once you get over the
initial learning curve,
it's smooth sailing.
Hence, I wanted to share
my experiences with it
because first, I wanted
to expose the Acegi
security framework to JDJ
readers and, second, I
wanted to make it easier
for JDJ readers to get
over the initial learning
curve. Once you're over
that, you should be well
on your way with Acegi.
Javelin is a compiler
framework written
entirely in Java. It lets
developers support new
languages or extend
current languages. It
also provides interfaces
to the parsing and
compilation process. For
instance, an IDE's editor
can take advantage of
Javelin to support syntax
highlighting, code
completions, and
refactoring. Javelin
could be extended to
compile languages like
XSLT, XQuery, and PHP. It
already contains a Java
compiler and an XML
Schema compiler, which is
fully integrated into BEA
Workshop and provides
support for various
editing and compiling
tasks. The JSP compiler
also uses the Javelin
framework.
This major Java event was
one of the largest
conferences ever. Sun
Microsystems deserves a
lot of credit for
accommodating the needs
of thousands and
thousands of people so
efficiently and smoothly.
The electronic
registration for the show
and receiving a special
badge with an embedded
chip took less than a
minute. The auditoriums
in which the technical
sessions were held were
huge - each holding
between 700 to 1,000
people. How long did it
take to check enrollment
and let all these people
into the room? Less than
10 minutes. This is
clearly registration 2.0.
For the most popular
sessions, meeting
planners arranged
so-called overflow rooms
in which people could
watch a live video
broadcast of the session
on two huge screens.
Serving lunch was another
wonder. Fast food chains
can only dream of being
this efficient. Imagine
hundreds of people moving
into a huge food court
non-stop. The entire
lunch process took 10
minutes, unless you
wanted to network with
other people.
Due to the benefits of
each, J2EE and .NET have
penetrated most markets
and companies to the
point where 95% of medium
and large-scale
enterprises support both
.NET and J2EE, and 30% or
more of new application
development will include
both by 2009, according
to a study published by
Gartner. Data centers of
these companies rarely
work in 'silo' mode where
J2EE and .NET work
independently and don't
need to interoperate with
each other, but instead
form a mesh of
applications in what is
termed a 'mixed-mode'
deployment. These
deployments have driven
the emergence of
standards such as Web
Services to ease their
integration.
We've all experienced it
- the 'get it out the
door' mentality that
seems to be the driving
force behind many
software application
deliveries - a prime
example of the software
industry's immaturity
that favors completion
over quality, and an end
user's preference for hot
new features over stable,
reliable systems.
Deferring the QA process
is an expensive way to
operate and corporations
are taking a financial
hit for these software
errors. According to the
Washington, D.C.,
National Institute of
Standards and Testing
(NIST), software errors
cost the U.S. economy $60
billion per year. This
report was issued back in
2002 and, since then, the
software industry has
done little to improve
the situation.
Robert F. Kennedy once
said, 'There is a Chinese
curse which says, 'May he
live in interesting
times.'' The enterprise
Java space is
'interesting.' Not too
long ago, folks like
Bruce Tate, Gavin King,
and Rod Johnson were
pushing lightweight
frameworks such as Spring
and Hibernate, and there
is still a lot of true
innovation going on with
AspectJ, Spring,
Hibernate, WebWork, JBoss
(method invocation
handlers), and more. This
lightweight POJO
revolution shook the
enterprise Java world.
Most non-trivial
applications involve high
degrees of concurrency
and many layers of
abstraction. Concurrency
is associated with
resource contention and
an increase in deadlock
conditions. The multiple
layers of abstraction
make it more difficult to
isolate and fix the
deadlock conditions.
Today's web developers
have a lot of choices
when it comes to web
application platforms.
Among them, Java EE has
always stood out as a
'scalable' solution -- it
may not be the easiest
platform to prototype a
web site, but it protects
your software investment
over longer terms. For
instance, Java EE is a
cross platform solution
supported by many
vendors. That means you
can choose from many
hardware, software,
services vendors to
accommodate the current
and future needs of your
applications. Java is
also an OO language with
well designed application
frameworks / libraries,
and a large pool of
qualified developers.
That makes your
application cheaper to
maintain over the long
term. However, when it
comes to enterprise
features, the single most
important differentiators
between Java EE and
competing solutions
(e.g., from Perl, PHP,
.NET, to the latest hype
such as Ruby On Rails),
is that Java EE servers
are easy to cluster. You
can simply add more
hardware to handle more
requests, without
re-coding the
application.
The University of
Southern California has a
student body of about
40,000 people and a
fairly large main campus.
Around registration and
graduation times, it
often happens that
parents or future
students stop me asking
for directions to
buildings where they want
to go. There are several
large maps installed at
key points on the campus
and map leaflets are
available at the
Information Booths and
are distributed during
the orientation sessions.
Although these maps are
quite detailed, a visitor
can be put off by the
large number of buildings
and, if the distance to
the destination is long,
people can get lost.
After one of my recent
Java talks, a woman from
the audience came to me
and said, 'I'm being
displaced. But that's
okay; the company gave me
enough time for
retraining. I've been
working with Java , but
would you recommend that
I learn .NET?'
The new EJB 3.0
specification supports
some notion of dependency
injection via
annotations. As an avid
Spring user, I'm used to
configuring fine-grained
beans with Spring bean
factories and XML. How
does EJB 3.0 compare?
More importantly, can we
use EJB 3.0 POJOs and
Spring POJOs side-by-side
in applications? In this
article, I'll try to
answer those questions
based on my own
investigations and
experiences. As it turns
out, using a versatile
application server like
the JBoss Application
Server (AS), Spring and
EJB 3.0 POJOs can
co-exist in harmony in
your applications.
This past year the J2EE
1.4 specification enjoyed
increased adoption by the
industry, with most major
application server
vendors having released
their J2EE 1.4 products
and more and more
enterprises upgrading
their application servers
and production
applications to comply
with it.
Your manager Frank
started the meeting by
saying that the budget
for the new project had
been approved, but half
of the project will be
outsourced to a great
team from overseas. Can
you imagine, their rates
for Java programmers can
go as low as $15 an hour!
Since 2001 when Java
Authentication and
Authorization Service
(JAAS) was formally
included in the Java 2
Platform Enterprise
Edition (J2EE) 1.3
platform specification,
the J2EE community has
been grappling with the
issue of JAAS/J2EE
integration. On the
surface, JAAS seems to be
an excellent complement
to J2EE: JAAS defines a
pluggable Application
Programming Interface
(API) for authentication
modules and a
fine-grained
Subject-based
authorization model,
which are both lacking in
the existing J2EE
security model. Since
JAAS is officially part
of the J2EE platform
specification, it's not
unreasonable to expect
that you can now leverage
the JAAS framework to
build portable enterprise
applications that have
advanced authentication
and authorization
requirements.
Recently I got an e-mail
with the following
header: 'Your nomination
to Sun Java Champions.'
My Java-intoxicated brain
immediately started
several parallel threads.
Since I now use the
Callable interface
instead of Runnable, my
threads can return
results and throw
exceptions.
JasperReports is a
valuable and viable
reporting solution for
Java Web applications. It
simplifies report
generation through the
use of XML report
templates that are then
compiled using the
JasperReports engine for
use in reporting modules.
These compiled report
templates can be filled
by data received from a
variety of sources
including relational
databases. JasperReports
can be integrated into
Web applications and
create reports in several
file formats including
PDF and XLS.
A lot depends on J2EE
applications - your
company's future, for
instance. Ensuring the
performance of complex
enterprise applications
built on the J2EE
architecture can be
difficult. To meet that
challenge, managing these
strategic assets needs to
be looked at as a process
that spans the J2EE
application life cycle.
As the complexity of
enterprise applications
grows with the increased
offerings in the Java
platform, the management
of the different building
blocks that constitute
the application also
becomes very complex. The
challenge in managing
applications in the
enterprise is posed from
many fronts.
Organizationally, the
corporation has to decide
whether they manage all
the IT services for the
applications in-house, or
leverage the benefits of
outsourcing to meet the
needs of their
environment. Typically
the hosting of
applications and the
management of the lowest
tier of the stack - the
hardware - is outsourced.
Next comes the management
of the OS itself -
administration of
releases, patches,
configuration, etc.
Three times in recent
years I've joined an
organization that was
relatively new to Java
development and missing
some basic infrastructure
elements that I'd relied
on in previous
development efforts.
These elements include
utility classes,
standards and
conventions, and build
and quality control tools
that help you produce a
higher quality product
with less risk. If you're
involved in a development
effort, whether it's new
or ongoing, that's
lacking any of these
elements, you should
consider incorporating
them into your project
infrastructure.
Decades ago, when we were
all computing on
mainframes, the
application stack was
pretty simple. Programs
were all running in core
memory on the same
machine as the operating
system and the data
store. There was
typically one
transactional log for
activity and one for
errors - not too many
places to look for
evidence of what had gone
wrong and why.
As developers or system
administrators, we all
have common tasks that
must be replicated again
and again. A few examples
might be creating a new
feature test, populating
a test database with
data, copying data from a
file system to a
database, or creating new
user accounts.... You get
the idea.
The Eclipse Open Source
Integrated Development
Environment (IDE) (see
http://eclipse.org) is
rapidly gaining
popularity among Java
developers primarily
because of its excellent
Java Development Tools
(JDT) and its highly
extensible plug-in
architecture.
Extensibility is, in
fact, one of the defining
characteristics of
Eclipse. As the Eclipse
home page says, 'Eclipse
is a kind of universal
tool platform - an open
extensible IDE for
anything and nothing in
particular.'
Highway and Java
enterprise application
projects have much in
common. Both can suffer
from design flaws,
stalled flow, and
unforeseen performance
glitches. But in the case
of Java enterprise
applications, performance
management tools can help
developers highlight
potential problems before
they derail these
critical projects.
We've all heard about the
simplicity and power of
the EJB 3.0
specification. And
because this has proven
to be true, we can't help
but think that
performance must be
rather poor. After all,
all that simplicity must
come at a price.
I took the advice of a
friend of mine and
steered clear of the
'normal' movie theaters
and went a little out of
the way to go to a DLP
movie theater. The
experience
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