Arch2Arch Tab BEA.com

Jim Rivera's Blog

Jim Rivera's Homepage
Jim is a director of technology with BEA Systems. In this role, Jim is responsible for driving adoption of BEA products through technology evangelism. Jim joined BEA in 1999 and was lead Technical Product Manager for the BEA WebLogic Server 6, 7, and 8 releases. In this role, Jim was responsible for the strategy and roadmap for various components of the server including EJB, Web Services, XML, and clustering. He has over 13 years of experience in software development, strategy, marketing, and electrical engineering.

Advancements in Java productivity

Posted by jim_rivera on May 5, 2005 at 5:51 AM | Permalink | Comments (0)

Lately I've been spending some time taking a look at Spring. For those of you not familiar with it, Spring is a popular open source application framework that attempts to address many of the issues that make J2EE application development difficult. It provides a "lightweight container" that helps to simplify development, make testing easier, and encourages best practices to make applications more flexible and maintainable.

An interesting productivity study was recently performed at the 2005 Dutch RAD Race that concluded that developers can be just as productive using Spring and Java as with a 4GL RAD tool. This is very encouraging for the Java community, who have long struggled with developer productivity issues.

What I really like about Spring is that it provides a nice, consistent architectural approach without masking the strengths of the underlying platform. For example, when deploying a Spring applications on WebLogic Server, you still have access to WLS distributed transactions, clustering, high-speed messaging, legacy integration, advanced Web services and advanced application management functionality... not to mention the inherent performance and scalability associated with WebLogic Server.

It's really very similar to what BEA pioneered with the WebLogic Workshop framework, now the core of Apache Beehive. Both frameworks have the same high-level goals of improving developer productivity on J2EE, both can be deployed on multiple platforms, and both leverage the dependency injection pattern to simplify application code (Martin Fowler has written a nice article that defines dependency injection). Of course, both frameworks have their own strengths and weaknesses upon closer examination.

In fact, if you look at the write-up from the Dutch RAD Race you'll see that the biggest issues they ran into during the competition were in developing the Web user interface... hmmmm, perhaps next time they should consider using Beehive PageFlows in the web tier :)

Of Java and Persistence

Posted by jim_rivera on April 13, 2005 at 5:12 AM | Permalink | Comments (1)

Data persistence has been a major pain point for Java developers for years. It is an area that has not been well served by J2EE to date. Past and present versions of EJB persistence leave much to be desired: the programming model is too constrained and overly complex, the query language limiting, and achieving acceptable performance can be difficult (but not impossible as you'll see below!). As a result, alternative persistence technologies have emerged over the years. These include Java Data Objects, Hibernate, and SQL Maps.

I will not go into a deep-dive technical comparison of each of these technologies here. This has been done elsewhere, and frankly, I don't have the expertise to do all of these technologies justice. They all seem to work pretty well and have their own advantages and disadvantages. And while it can be mildly entertaining to witness the various communities debate the technical merits until they're blue in the face on sites like theserverside.com, in the end, you have a job to do which involves reliably saving data from your Java application into relational database. And in the world in which most of us live in, choices of technology are rarely based on technical merits alone.

Take, for example, the issue of investment protection. Enterprise software development requires serious investment, and protecting that investment is not something to be taken lightly. Standards that are implemented by multiple, viable, commercial vendors give most CIOs a warm and fuzzy feeling that the latest wiz-bang features simply cannot provide. Its one of the main reasons why J2EE has seen mass adoption. Fortunately for all of us, the alternative persistence technologies are having a very favorable effect on EJB 3.0 which, in its current state, seems to be heading towards a converged model that promises to address many of the current concerns.

So the future seems promising, but what do we do for applications we're developing today? For those of us who don't have the freedom to experiment with non-standard or unproven technologies, are we left to suffer the consequences of an inadequate specification? Fortunately, no. Sophisticated and mature EJB containers, like the one included WebLogic Server, have extended the standard to address many of the major pain points. Will the use of non-standard extensions compromise the investment projection that led you to EJB in the first place? That depends... obviously, investment protection is not black and white and involves trade-offs. In general, the use of any extension is reasonable and practical when the value of that extension outweighs the risk associated with its adoption.

Here are some things that can help you in developing EJB 2.1 applications:

So in summary, there are a lot of exciting things happening in the Java persistence space. If its an option for you, I encourage you to check out all the alternatives to see what's right for you. For those using EJB 2.1 - for its technical merits or otherwise - rest assured that you have options for making your job easier and your applications more performant.

October 2007

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      


Search this blog:


Archives

May 2005
April 2005

Categories

Product: WebLogic Server
Technology: EJB

Recent Entries

Advancements in Java productivity

Of Java and Persistence

Articles

Interview Series: Lightweight Java
"Lightweight Java is about removing the unnecessary complexities and constraints associated with the traditional J2EE API," says Jim Rivera in this interview with dev2dev. Jim discusses lightweight Java, persistence frameworks, and BEA's take on these technologies. Jun. 20, 2005

Introducing BEA WebLogic Server 7.0
Of the many challenges facing today's IT system architects, two stand out as being the most common and strategic: Integrating disparate applications and platforms to fully leverage data and software investments. Providing an enterprise-class framework that ensures reliable, available, scalable, and secure applications. Jan. 23, 2004

Introducing WebLogic Server 8.1
With WebLogic Server 8.1, we have focused on improvements that simplify interaction with WebLogic Server, with the end goal of raising productivity and reducing costs. Jan. 19, 2004

All articles by Jim Rivera »


Powered by
Movable Type 3.31