MagRabbit Understands Java Frameworks History

MagRabbit’s Understanding of Java Frameworks History Prepares Team for Leading Edge Web Development Projects

In the early years of the 21st century, websites developed on the Java platform were dominated by JSP/Servlet and EJB (Enterprise JavaBean) for distributed systems that were all developed by SUN.

In the Data Access Layer, every business created for them a class adapter to control and manage connections to their database and data mapping privately. Some of them publicized their source codes and they became popular open source frameworks such as Torque, Cayenne, iBatis, Hibernate which were quickly inherited by many developers. In 2003, with the support of JBOSS, Hibernate was upgraded to version 2.0 and that was the configuration revolution in ORM (Object Relationship Mapping) via XML (eXtensible Markup Language) flexibly and it really started to take over the Data Access Layer.

In the Business Logic Layer, EJB seems to have no competitor in distributed systems and enterprise systems. In 2001, IBM and Microsoft together embarked upon defining WSDL (Web Services Description Language) to communicate via SOAP (Simple Object Access protocol); and WSDL 2.0 in 2003 was officially recognized by the W3C organization. This opened a new trend for distribution issue, which was really a threat of SUN’s EJB and Microsoft’s DCOM.

As for the Presentation Layer, there was competition between two frameworks: Struts 1.x supported by Apache and JSF (Java Server Faces) developed by SUN. Struts overwhelmed JSF on the battlefield because of its large community, so JSF had to accept second place due to its libraries such as MyFace or Tomahawk, which were not really eye-catching.

In late 2004, JDK 1.5 or J2SE 5.0 came into the world. This was a real revolution and led to many changes on the Java technology platform in 2005.

Thanks to the development of annotation, SUN launched JPA (Java Persistence API) which supported ORM configuration easily and obviously through annotation. And this made iBatis, Torque, etc retire. EJB was also upgraded to version 3.0 to a mass of confusing configurations of the version 2.x, EJB Home for lookups, as well as removed Service Locator in J2EE Design Pattern.

Hibernate was forced to have JPA integrated into and provide more support  with many other features for programmers including ehCache, Lucene  as well as released version 3.0. And this was the marker for the recession time of Hibernate when developers prefered to use JPA for ORM rather than a cumbersome old platform.

Struts was struggling with changing the configuration that was cumbersome to use XML by annotation and finally they decided to coordinate with another framework called WebWork, and then Struts 2.x was born.

At this point, backed by BEA, Spring was a new approach to get rid of the traditional programming model. It was Spring that made the unpopular technique to be the favorable one in a very short period of time. Among them, IoC (Inversion of Control) was the most famous technique that many developers concerned and followed and it also inspired AOP (Aspect-oriented programming) to be developed afterward. As more and more developers and software development centers used Spring; SpringSource was created to support and develop Spring and related projects and expanded into many other technologies.

– Spring MVC together with IoC support could be configured on XML or annotation. And with Spring Security which works in the application layer having its own authentication API that was very good and didn’t need to use JAAS (Java Authentication and Authorization Service) of SUN, it defeated Struts 2.x over Presentation Layer.

– Spring JDBC Data joined Data Access Layer, using JPA and the way it rendered explicit data drew attention of developers who were interested in Spring. However, it hadn’t had the complete domination over this layer because of the shadow of Hibernate.

– Groovy on Grails, benefiting from the experience of Ruby on Rails (RoR), offers the same benefits to Java developers without impediments to use in the enterprise that face RoR. SpringSource also embraced Groovy and Grails with the acquisition of G2One, started investing in dynamic languages.

In early 2006, AJAX (Asynchronous JavaScript XML) targeted web applications since Google introduced them into services like Gmail and Google Maps. As the penetration of high-speed and broadband Internet access increases, the RIA (Rich Internet Application) is another step in the Web technologies evolutionary process to deliver new user experiences and increase application utility.

In mid 2011, JSF 2.0, released with AJAX functionality; offered the ability to create a series of beautiful and fun to use UI components that helped to develop beautiful applications efficiently, promptly and brought the convenience to users including Richfaces, Primefaces or ICEfaces. Another Java web application framework designed for RIA, Vaadin without any plugins, HTML, XML or JavaScript necessary and all Java libraries and tools are at one’s disposal to enable developers to build web applications as desktop ones.

Nowadays, the race of java based frameworks is still going on and not likely to end soon. If there is no change in the trend, Spring and Vaadin will continue growing well while Hibernate and Struts fall behind, JSF still pursues its own road with the support of SUN (overtaken by Oracle) and Tapestry, Wicket communities are hunting talents to develop these frameworks.

MagRabbit continues to master the latest skills and technologies needed to provide customers with the best possible solution for their development project. If you have questions about web, mobile, or e-commerce projects on your company’s horizon don’t hesitate to contact us at or +1 (512) 310-9903.