Anteo Java News: Winter 2006

We appreciate and welcome all of your comments and submissions as we are tailoring the newsletter for you. Please send any comments and/or submissions for future articles to Anteo Group Marketing. To receive Anteo Java News by email, contact us.

Thanks and enjoy!

Spring Framework
By: Bill Siggelkow

I will never forget the first serious J2EE (Java 2 Enterprise Edition) application I built. It was an e-commerce application that allowed businesses to buy and sell their goods and services to other businesses. Though the application’s functional needs were straightforward, the technical details to code, configure, and deploy the application were complicated and convoluted. But the benefits gained were worth the hassle – data was automatically persisted to the database, transaction boundaries were declared instead of hard-coded, and the application could be distributed across multiple servers. Sadly, the application and the company never quite made it – both victims of the dot-com bust. But I learned a great deal about J2EE development from the approaches that worked, and even more from those that didn’t. I was not alone.

Rod Johnson swam in similar waters. A long-time Java developer, he understood the benefits of Java Enterprise development, but knew that there had to be an easier way. In his excellent book, Expert One-on-One: J2EE Design and Development, Rod detailed his practical approach and laid the foundation for a code base that would become the most popular alternative to traditional J2EE design and development.

That code base, originally known as Interface21, evolved into The Spring Framework. Spring, as it’s commonly referred, is an open-source, lightweight, Java-based framework you can use to develop enterprise-level Java applications in less time and with higher quality than using the traditional J2EE approaches.

Spring bills itself as “the leading full-stack Java/J2EE application framework.” With Spring, you can develop applications with reduced development effort and improved quality. Spring reduces the lines of code you have to write, allowing you to focus on the business logic and not on the technical glue. The quality of your applications will improve because Spring reduces your classes’ dependency on J2EE APIs and implementations, making it easier to write unit tests.

I think of Spring as three separate things – an object factory (IOC/DI container), an AOP framework, and a robust class library. At its core, Spring is an intelligent object factory that knows how to glue objects together based on an external configuration (typically an XML file.) When you ask for an instance of a configured object from Spring, it will wire the dependencies into your object based on an external configuration. This benefit may seem trivial at first, but consider the work required of a data access object (DAO) to acquire a JDBC DataSource. Without Spring, your class must call several JNDI methods and catch JNDI checked exceptions. Moreover, to test the DAO you have to deploy and run the entire application in an application server. But with Spring, the DAO only needs to provide a setter method for the DataSource. You then define and configure the DataSource and DAO in the Spring configuration file. The DAO is no longer concerned with JNDI lookups and error handling, and you can unit test the object since it’s not bound to the JNDI API.

Spring leverages its object creation abilities to provide another important feature – support for Aspect-Oriented Programming (AOP). Aspect-oriented programming enables you to define and apply system-wide behaviors, known as cross-cutting concerns, to objects without making any code-level changes to those objects. Spring uses its AOP capability to provide powerful features such as declarative transactions. With Spring you can configure which objects require transactions, how the transaction propagates to other called methods, and how the transaction should react to thrown exceptions. This ability is more robust than EJB container-managed transactions, and it can be applied to any Java object, not just EJBs.

Based on its IOC core and its AOP capabilities, Spring delivers a robust and full-featured class library for building J2EE applications. These libraries include:

Spring MVC – a request-based web framework similar to Struts and Web Work

Spring JDBC – a set of classes that make working with straight JDBC much simpler than the traditional approach

Spring ORM – a set of classes that integrate with some of the best object-relational mapping frameworks including Hibernate, Java Data Objects (JDO), IBatis, and Toplink

Spring Remoting – classes that support remote access via RMI, Web Services, and some other simple protocols

Spring provides all these features in a minimally invasive, a la carte fashion. If you have an investment in Struts and aren’t ready to move to Spring MVC, Spring provides an integration layer that makes your Struts actions Spring-aware. If you’ve got some EJBs that you just can’t afford to rewrite, Spring will make it easier to access those EJBs.

I encourage you to take a serious look at Spring. I think you’ll find that you can save time and money and have a good time doing it!

The Next Generation of Java-Based Portals
By: Garner Andrews

This past year (and for the most part in the last few months) we’ve seen: BEA acquire and release G6 of AquaLogic (formerly Plumtree); Vignette release V7 of their Vignette Application Portal (formerly Epicentric); Sun, Novell, Bea, and Oracle all had major releases of their java-based portal products. With all this portal platform activity, what benefits are we, the consumers, seeing? This article describes a few of the major changes and benefits we are seeing from these Next Generation portals.

Standards Compliance

One of the largest benefits to consumers, especially large corporations, is the dramatic shift towards standards compliance. Prior to this year, a number of the portal server product companies touted their Java and Web Services (WS) compliant products. This meant something, but it has taken a dramatic step forward in the recent past. With the maturing and completion of several WS standards, as well as the adoption, certification and compliance of these Next Generation portal server products with these and other standards (e.g. WS-Policy, WS-Trust, SAML, JSR 168, JSR 170, etc.) includes the following benefits:

  • Broader functionality using the simpler WS interfaces that many resources already know how to develop, resulting in less man-hours of development.
  • Greater portability of portlet-based and WS-interfaced applications, allowing us to choose the best platform for our products more easily and to extend our partnerships and sharing of our portal applications.

Improved Usability

Like most applications, the first iterations of portal server software have been very technical in nature, addressing specific technical and business problems with as functional of software server product as the product developers could produce. Unfortunately, this approach often does not give enough attention to the usability and user interfaces of the applications. Standards have helped (e.g. xml-based configuration files), but the lion-share of this improvement is in each of the portal vendor’s own application interfaces. Their administrative tools provide more functionality (e.g. config, monitoring, etc.) in better organized user interfaces. The configuration files and databases are easier to maintain, even without those tools. The procedures required to maintain the portals are simpler (e.g. PSML and resulting deployment procedures that Apache Jetspeed uses for portlet configuration). All of these benefits generally mean less of a learning curve and less required man-hours to complete portal projects.

And a Bunch of Other Things

There are many more vendors stepping into the portal arena, especially in the open-source category. Vendors are keying on there own expertise and building portals around those strengths (e.g. content management). This increased competition hasn’t seemed to dramatically impact the prices of the larger commercial products much yet, but with the strength of some of the products like Jetspeed, Liferay and JBoss, it’s only a matter of time before they do.

Built-in portal functionality is increasing dramatically. Now most commercial vendors have integrated search engines. This was something that was really bolt-on functionality previously. Now, portal content search functionality is integrated almost seamlessly. In a similar fashion, content management functionality is found in most portal products. You have best-in-class functionality like Vignette who can provide enterprise-class CMS within their portal, but you also have other strong contenders that meet most businesses CMS needs with more limited but easy-to-use content management functionality and workflow.

Platform independence is becoming a big factor. Not only do portlet producers want to be able to go to any portal server and run their code, but the consumers want to be able to run their portal servers on any platform they choose. This generation of portal servers can run on many more app servers, portlet containers, and JVMs than ever before.

Reliability is a much stronger feature of these Next Generation portal servers. Many rely on application server capabilities, but many also have new or much improved caching that helps directly with redundancy of the portal servers themselves. Business continuity planning is becoming much less of a headache for portal server customers because of this.

Conclusion

Just like you should expect with any individual or group of applications, the portal servers are maturing. We’re seeing architectural advances that help with performance and maintainability. We’re getting more tools that make the jobs of the architects, developers, and administrators easier to do. The real impact though will be on what the benefits that the business owners see, like reduced time to implement, reduced maintenance costs, and fewer headaches. All-in-all, this latest generation of Java-based portal servers is head and shoulders above the previous generations. As consumers though, we should still set our expectations bar high for what is yet to come.

Current Openings

For our most current openings, click here.

back to newsletters >

For more information about the Anteo Group, contact us.










"With Spring, you can develop applications with reduced development effort and improved quality. Spring reduces the lines of code you have to write, allowing you to focus on the business logic and not on the technical glue."

Bill Siggelkow




































































"All-in-all, this latest generation of Java-based portal servers is head and shoulders above the previous generations. As consumers though, we should still set our expectations bar high for what is yet to come."

Garner Andrews

Anteo UK Los Angeles Office Dallas Office Atlanta Office