Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud.
We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
EJB 2.0 is testimony to the fact that the J2EE model has come a long way.
You can do a lot of things with 2.0 that were tedious and error-prone in EJB
1.1. The Container Managed Persistence (CMP) relationship management alone
makes it worthwhile. Just define all database access through method calls on
entity beans, configure the deployment descriptors to recognize the method
calls, set the autogeneration of RDBMS tables to "true," start the server,
and you're ready to rumble. No more mucking around with databases. Once your
DBA has set up your relational database, you never have to look at it again.
As far as your application is concerned, you deal in objects, whole objects,
and nothing but objects. Right?
Wrong! While the EJB 2.0 architecture definitely alleviates the pain of
dealing with databases directly, it cannot completely eliminate it. Note
that I'm not making light of database maintenance. On the contrary, the main
point of this editorial is that the moment you use more than what the EJB
model offers, you need to make sure your project has a person who can
synchronize and coordinate between the object and relational worlds. When
you get around to building an application with complex relationships between
entities, there are several factors you need to consider from a programming
perspective. Relationships between entity beans are handled quite cleanly by
CMP, as are cascading deletes at least simple cascades.
However, unless you create foolproof code that perfectly manages data
integrity on the first shot, which you may in a small-to-medium application,
you're bound to get dirty data in your database because of logical errors.
By dirty data I mean data that doesn't necessarily conform to the entity
relationships the way you had intended. Then comes the data cleansing stage,
which can cascade into multiple problems at several levels. This is because
the data cleansing at the RDBMS level may be out of sync with the cleansing
required by the object model.
The alternative is to identify the appropriate constraints in the
database that restrict the entry of inconsistent data from the object model.
If you were programming in JDBC directly, chances are the constraints would
have been a part of your design from the get-go. However, the abstraction
provided by the EJB model lets developers unfamiliar with the intricacies of
databases program complex applications. A developer can more or less exist
in his or her OO world without worrying about low-level SQL queries and
mundane database tasks. However, when things go sour, it's very hard even
for a seasoned DBA to come in and fix things.
The correct approach for a successful project is to make sure you have
at least one person on your team who can deal with these issues at the same
time your EJB developers are designing their object components. In some
cases the RDBMS constraints may conflict with the object model, and
compromises may have to be made at either end. However, the end result will
be that you will have a more robust and maintainable application. A fringe
benefit is that you'll learn about how entity beans work behind the scenes
and how to use them judiciously. Luckily, in our last project we were able
to recruit a very knowledgeable developer who was familiar with both the
object and relational worlds. Although my team started out designing from
the object perspective, and all of us had some experience in RDBMS
applications, his contribution made the difference between succeeding and
failing in a large-scale J2EE project.
About Ajit Sagar Ajit Sagar is a principal architect with Infosys Technologies, Ltd., a global consulting and IT services company. Ajit has been working with Java since 1997, and has more than 15 years experience in the IT industry. During this tenure, he's been a programmer, lead architect, director of engineering, and product manager for companies from 15 to 25,000 people in size. Ajit has served as JDJ's J2EE editor, was the founding editor of XML Journal, and has been a frequent speaker at SYS-CON's Web Services Edge series of conferences, JavaOne, and international conference. He has published more than 125 articles.
Reader Feedback: Page 1 of 1
#6
David McReynolds commented on 12 Oct 2002
Rob Dyas states that these new technologies work against you. I have yet to witness this in anything but a full blown 4GL where business analysts can actually develop a program (255 column tables!!) If there is poor structure it is most likely due to poor technical management. But I must say that I am concerned with the glut of classes, called helpers, with nothing but static methods. This makes the class nothing more than a namespace to hold my 'procedures/functions'.
#5
Ajit Sagar commented on 10 Oct 2002
Rob:
As I mentioned in my reply to Joe, open source and XP are some alternatives that keep things within bounds. I agree with you that the JSP world is a pretty ugly hybrid of different worlds. And you are right in that J2EE faces a serious threat from .NET because of complexity. I think that since IDEs are becoming more standard, some of the complexity is abstracted, and things should get better. And, to your point, that is why stable frameworks are emerging. But if this happens in time for J2EE to retain its following or not, remains to be seen.
#4
Ajit Sagar commented on 10 Oct 2002
Joe:
I'm with you. This is a concern that a lot of smaller vendors have and it is a valid concern. The good news is that a lot of cheaper, yet sophisticated tools are becoming very popular in the J2EE and XP arena. And given the state of the current economy, companies are taking a serious look at these as alternatives for selecting vendors for building their applications. I believe that to develop and application using J2EE, you really need a good IDE that offers a consolidated environment for developing, testing, and deploying J2EE applications. I work for a small company and our products are EJB based. But I rely heavily on my IDE to keep a lot of things in synch.
I agree with others that it has all gotten far too complex. The resources required for what *should* be a simple (or at least reasonable) project just keep growing, with no end in sight. Making the right architecture decisions is getting more difficult, not easier. And a lot of the supposedly great technologies, like JSPs or Servlets, I swear work against you. They seem to encourage poor programming habits and code that is anything but well structured. I say screw it - just use a framework and let the framework vendor deal with the ugly stuff. I'll never go back to hacking this stuff out from the ground up unless somebody holds a gun to my head.
#1
Joe Preston commented on 4 Oct 2002
Ajit, what you described here is exactly what keeps small development houses like us away from J2EE. We just haven't the resources to deal with the complexity. Servlets ok, JSP ok, JMS maybe, EJB forget it. Excluding such a huge market as the small developers comprise is a major failing of this technology. Until it is addressed, it will continue to flounder and be susceptible to the likes of .NET. That's my 2 cents.
David McReynolds wrote: Rob Dyas states that these new technologies work against you. I have yet to witness this in anything but a full blown 4GL where business analysts can actually develop a program (255 column tables!!) If there is poor structure it is most likely due to poor technical management. But I must say that I am concerned with the glut of classes, called helpers, with nothing but static methods. This makes the class nothing more than a namespace to hold my 'procedures/functions'.
Ajit Sagar wrote: Rob:
As I mentioned in my reply to Joe, open source and XP are some alternatives that keep things within bounds. I agree with you that the JSP world is a pretty ugly hybrid of different worlds. And you are right in that J2EE faces a serious threat from .NET because of complexity. I think that since IDEs are becoming more standard, some of the complexity is abstracted, and things should get better. And, to your point, that is why stable frameworks are emerging. But if this happens in time for J2EE to retain its following or not, remains to be seen.
Ajit Sagar wrote: Joe:
I'm with you. This is a concern that a lot of smaller vendors have and it is a valid concern. The good news is that a lot of cheaper, yet sophisticated tools are becoming very popular in the J2EE and XP arena. And given the state of the current economy, companies are taking a serious look at these as alternatives for selecting vendors for building their applications. I believe that to develop and application using J2EE, you really need a good IDE that offers a consolidated environment for developing, testing, and deploying J2EE applications. I work for a small company and our products are EJB based. But I rely heavily on my IDE to keep a lot of things in synch.
Rob Dyas wrote: I agree with others that it has all gotten far too complex. The resources required for what *should* be a simple (or at least reasonable) project just keep growing, with no end in sight. Making the right architecture decisions is getting more difficult, not easier. And a lot of the supposedly great technologies, like JSPs or Servlets, I swear work against you. They seem to encourage poor programming habits and code that is anything but well structured. I say screw it - just use a framework and let the framework vendor deal with the ugly stuff. I'll never go back to hacking this stuff out from the ground up unless somebody holds a gun to my head.
Joe Preston wrote: Ajit, what you described here is exactly what keeps small development houses like us away from J2EE. We just haven't the resources to deal with the complexity. Servlets ok, JSP ok, JMS maybe, EJB forget it. Excluding such a huge market as the small developers comprise is a major failing of this technology. Until it is addressed, it will continue to flounder and be susceptible to the likes of .NET. That's my 2 cents.
Swisscom, the Swiss telecom, is going into the cloud business.
Its subsidiary Swisscom IT Services AG has signed up with Red Hat as a Certified Cloud Provider and launched a public cloud Infrastructure-as-a-Service (IaaS) cloud targeting enterprise-class customers primarily in ...
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP)....
In a surprise move on Tuesday, January 10, Oracle wheeled out its Big Data Appliance.
That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make ...
Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
CloudLinux, Inc., on Thursday released CafeFS 3, a virtualized file system for shared hosters that cages each customer within its own virtualized file system.
CageFS becomes part of CloudLinux OS at no additional charge. CloudLinux OS, the only commercially-supported Linux OS m...