Former Sun CTO Sees Flaws in EJB 3, Hibernate

Peter Yared, former CTO for Sun J2EE app server unit says the newest J2EE technologies - EJB 3.0 and Hibernate - don't go far enough to solve the pain of today's IT staff. See why Yared says that current J2EE initiatives may miss the point -- and the opportunities -- in the next wave of IT build-outs.

Tags: Apps, Server, Java, Open Source, J2EE, Web Services, Hibernate,

Peter Yared, former CTO for Sun J2EE app server unit says Java/J2EE may lose out to Open Source technologies in the future, as IT managers are architects get tired of the time and cost of building in Java.

Yared also says EJB 3.0 and Hibernate just doesn’t go far enough to cure some of Java’s core ills.

Yared, who left Sun and this year found ActiveGrid Inc., a company using Linux and “Open Source stack” technologies to create a next-gen dev-and-deploy platform to extend current Java/J2EE apps, and more easily build new apps and services that will automatically comply with a new host of web services and XML data flow standards, including BPEL (Business Process Execution Language).

Yared contends that devs will need tools to define application flow, XML Schema to represent data sources, XPath to specify queries, and XForms to define dynamic Web pages. Further, he said, all logic should be automatically encapsulated as language-agnostic Web Services, which can be written in Python, PHP, Perl, or Java.

Integration Developer News spoke with ActiveGrid Peter Yared to find out more about why Open Source appdev/deployment options may give Java/J2EE development a run for its money in the coming years.

Integration Developer News Interview
with Peter Yared,
Former CTO, Sun Microsystems Application Server Unit
Current CEO/Founder, ActiveGrid Inc.

IDN: So, why do you see a move away from Java/J2EE development and toward Open Source?
Yared: There is a shift underway that we call “traditional development cycle” versus a “services-driven” development cycle. In traditional appdev, applications get written by Java and mostly by hand, and devs have to pick out the exact server architecture they want ( and whether it will include stateless session beans, Hibernate or whatever. Then, they hand-code to that [architecture] directly. With ActiveGrid’s approach, developers can be 10X faster than J2EE, and that means changes and updates they need to do to their code can be done in much less than the year or 2 it can take today. And, we can make updates 10x less expensive than J2EE because integration and deployment costs are reduced.

What’s interesting when you talk to the business people or upper management, they want to lightweight servers on commodity machines. They are seeing some pretty heavy-duty mission-critical apps using this approach, from companies like Google and E-Trade, and they want those kind of benefits from commodity hardware and software too.

IDN: Can you give an example of where you see this new non-Java pattern for quick development/quick deployment emerging?
Yared: E-Trade just switched their infrastructure to use 160 commodity [Linux] machines running Tomcat, and they didn’t even buy maintenance. So, today, I think the challenge is that a lot of folks are trying to build mission-critical applications for these low-cost, light-weight [Linux] servers using the same methods and approaches they used to build applications for their heavy-weight servers, and so it’s not just the deployment [environment] that’s a cost issue. It’s also in the application development. Unless the dev changes their approach to application development for light-weight [Linux] servers, they will still face 2-year development cycles and lost of expense.

IDN: You mentioned Hibernate earlier. What about Hibernate? That’s geared toward taking complexity out of Java development. Are you saying that Hibernate should not be a target for Java developers? And, they should spend time learning more about composite app development?
.Yared: That’s exactly it! Hibernate is an extension of the past, and Hibernate belongs to that yesterday column. Hibernate is a better way to do object/relational mapping, but it’s really juts band-aids. It’s dealing with development in the old way. Java developers have a huge list APIs, and now they are going to all more. It’ll make the ‘EJB stack’ look more like the yellow pages more than the whitepaper.

IDN: How do devs escape from this growing complexity of J2EE and get on the road to composite apps?
Yared: At the end of the day, there is not a single high-level tool for J2EE that is useable or clean. They are all either code generators or generate proprietary metadata, There is nothing that’s clean. So, there is no high level development tool. That means you have people hand coding to these [Java] APIs, and that limits the number of people that can build these kind of new [composite] apps.

IDN: So, is that where ActiveGrid comes in? To offer devs a lighter-weight alternative to conventional, and complex J2EE app development?
Yared: In the future, the way to build is lightweight servers that scale horizontally. Many in the Java community, for instance, have switched away from using J2EE and are now using Spring or lately Hibernate.

With our approach, developers develop through XML schema and deploy separately and we see this as a pretty cool way to build quickly and deploy easily. So, our approach lets developers or architects take a variety of enterprise backend systems , including SAP, all sorts of J2EE EJBs from BEA or IBM and make a new app that ties all these together. You can run it locally, or deploy to an ISP or a datacenter. We will make it such so that decision can be left to IT, but all the capabilities to support that decision are pre-packaged.
IDN: That sounds simple enough. But it is always easy to figure out how granular the components of a lightweight app should be?
Yared: It is self-evident. That’s because you start to think of services the way you used to think of database calls. In a database, you would never call a database with ‘get me the first name,’ then ‘get the last name’ and then ‘get the address line 1’. Instead, you would say, ‘get me the data on this person.’

So, for developers, services are really not that unfamiliar because they are not that different from what they’ve used in the past. The real problem is that developers are coding to Hibernate. And, it’s Hibernate that says ‘get first name’ and then ‘get last name’ etc.

IDN: It sounds like ActiveGrid is using Open Source/LAMP to form a new apps platform to make it easier to update and even integrate legacy apps (Java, C, or even VB/ASP apps). Is that right?
Yared: What we’re doing is building a next gen application server, releasing the server and the [application] builder. Then, we’re tying together three (3) emerging trends in the enterprise: (1) an applications grid on commodity machines, (2) Open Source LAMP ,and (3) XML to make it easier for devs to build apps. For us, the key differentiator is that the development and deployment are decoupled. So, I can take a variety of enterprise backends, including commercial and Open Source software, and make a new application that ties these together

IDN: Give that vision, how does your approach change the way developers and architects work today?
Yared: The first thing to recognize is there is a shift away from running heavyweight application servers on larger machines, especially for “Greenfield” projects. The Java community is starting to grasp this. No one at the design point says they want to run on 4 8-way [CPU] servers anymore. It’s expensive, hard to build applications for, and hard to deploy. And, in the end you end up with really complicated software [because] EJBs are hard to do correctly.

IDN: Is your approach that we should treat the app server like the way the Java treated the mainframe?
A lot of tools and services companies that advising to get the nirvana of SOA you have to re-architect plan where you re-service your tightly coupled assets. That’s unrealistic. You never Java-ized the mainframe; you just figured out how to get [requests for data and rules] there and back.

We know customers have J2EE applications they haven’t touched at 2 years. When they need to update their apps, they will build new ones with all those old ones, and use adaptive transactions. ActiveGrid makes it so you don’t have to call the backend all the time. You have your existing J2EE server and you open a web services ‘pipe’ into it. It will get millions of requests, so that won’t scale. To address that issue, we let you set policy – such as ‘responses from this EJB are good for 15 hours,’ and so on.

IDN: So, are you saying there are a lot of CIOs and even developers out there getting J2EE fatigue?
Yared: We shift computing architectures every 5-10 years, from mainframes, to minis to client/server and to the Internet. Now, we are in the beginning of a new shift to a grid architecture. With each shift transaction volumes have increased. People are already doing all their numeric computations on the grid, and provisioning apps on the grid. The next step, which is coming now, is to do ‘transactions grids’ which can run mainstream applications on large clusters of machines. This is where ActiveGrid’s opportunity lies, in the move to what we call the ‘transaction grid’ and bringing Open Source platforms to mainstream app development and deployment.

IDN: Hmm, so you don’t need Java’s platform independence?
Yared: That’s the irony. You know you’re running on Linux ‘x86, you don’t need platform portability at the language level anymore. We all spent a long time in Java to make sure developers were no longer locked into an operating system or chipset. That was what made Java successful. When it took off in 96-97-98 when it moved from the browser to the server, you weren’t locked in to Solaris or HP-UX or AIX or whatever. Linux does the same thing. So, if you know what operating system you are running on, in this case Linux, do you need layer in between? We think the answer is no. So, developers should be very comfortable running C++ again.

IDN: But today, aren’t there plenty of Java standards, and even Java standards for web services to help developers?
Yared: That’s the problem, in fact. There are too many. Today, there are Java web service standards for many different things, but there are still many different [standards].

When you want to go to a database, you use JDBC, going to a transaction monitor, you use JTA, go to a legacy system, you use JCA. And, the web service things are even worse. We see the integration developer using XML. And, that’s it – only XML. It’s XML in and XML out. All data sources should look like a web service and represented as an XML schema. In ActiveGrid, all that done in declarative XML. All schema and the data sources are accessed in the exact same way.

Inside ActiveGrid's Architecture, Offerings
ActiveGrid’s offering also includes an Application Builder deployment platform, based on the Open Source LAMP stack. It provides wizards and other UI abstractions to help devs build apps and/or services that need to interact with other resources. It also includes a Web server, database, and debugger to let devs run demo apps, test, and perform iterative development against their early codesets.

Yared sees that his coupled Application Builder/Applications Builder design-develop-deploy platform will set the stage for the next-gen in enterprise appdev, where composite apps and web services will displace a lot of appdev, traditionally done via hard-coding J2EE. The reason? Yared says it because ActiveGrid marries “procedural” and “declarative” coding technologies in a easy-to-use way (Open standards/Open Source and UIs) to help devs apply the new range of composite appdev techniques, including integration, caching and asynchronous communications.

For more on ActiveGrid 1.0.