Video streamVideo streamVideo stream
Question indexQuestion indexQuestion index

Emmanuel Cecchet - Chief Architect for ObjectWeb

Emmanuel received his engineering degree in Computer Systems and Networks from ISIAL in 1997 and Ph.D. degree in Computer Science from INPG in 2001. During his Ph.D, he has been working on cluster computing, distributed shared memories and memory mapped networks such as SCI. Emmanuel was postdoctoral research associate in the DynaServer project at Rice University for one year in 2002. In September 2002, Emmanuel joined INRIA as a research scientist in the Sardes project and was elected ObjectWeb's Chief architect in 2004. Emmanuel lead the C-JDBC, LeWYS and Tribe open source projects and started the JMOB initiative that includes the RUBiS benchmark. In 2005, Emmanuel joined Emic Networks as a Java architect.

Discuss this Interview


Welcome, Emmanuel, could you introduce yourself to the community?

My name is Emmanuel Cecchet. I am a full-time research scientist at INRIA, which is a French research institute in Computer Science and Control in France and I am the chief architect of the ObjectWeb consortium, which is a consortium for Strings development of open source middleware mainly in Europe and trying to grab some more visibility in the US right now.

What is ObjectWeb and how was it formed?

ObjectWeb was created in 2001 by France Telecom, Bull, and INRIA and it was to put together people from academia and industry to build the next generation of open source middleware.

What is it like bridging the worlds of academia and industry?

Nice thing is that for resource prototypes that are produced by research groups in academia, we can test and experiment those technologies in real production usage by our industrial partners and industrial partners provide input to those research groups for the new research topics and the new architectural challenges to address. ObjectWeb tries to provide usable components that addresses architectural issues and provides those inputs from industry and academia to solve this problem and provides framework and reusable components to address those issues.

How do you accept projects into ObjectWeb and what is the life cycle like?

In ObjectWeb, we have a board of directors, which is made of corporate partners, co-founders and also representatives of the users, the executive committee and the College of architects. The College of architects is responsible for addressing the whole code base and accepting new projects, so when you want to join ObjectWeb or submit a new project to ObjectWeb, the College of Architects reviews the project proposal and see how it will fit within the code base, identify the value synergies and the College is made of experts of different fields, different standouts and we try to identify the value synergies and contribution and overlaps between the value of the project and part of the architectural meetings, where our people meet and discuss those issues, so that we can rally build reusable components and that the overall code base is coherent and that people can pick pieces and assemble pieces using the systematic way and have it carried on also based on ObjectWeb components.

What are the different parts and pieces under ObjectWeb?

One of the most well-known ObjectWeb components is JOnAS J2EE server which is kind of a EJB container plus a set of other ObjectWeb components like the JOTM transaction managers, such as web servers used for the Geronimo J2EE server from Apache. We have a JDO implementation, which is Speedo. We have JMS bus, which is JORAM. We have other products attached to database connectivity like the Clustered JDBC project, RmiJdbc or persistence layer like MEDOR for mapping objects to databases. We have also projects from the Enhydra community like the Enhydra server. We have a CORBA platform, which is upon CCM. We have an OSGi platform, which is Oscar and people from different projects are also part of the different standards bodies related to those technologies. We have also more application components closer to the end user and we have for example a content management system like the former Red Hot CCN, which is now called Byline. We have a portlet container for J2EE side. We have a set of benchmarks and benchmarking activities. Some of our benchmarks like RUBiS are well known now by the community and also load injector like replacement for LoadRunner, which are open source. We have a wide range of components and hardware, many topics in open source middleware.

In Europe, how does JOnAS compare with other J2EE servers? Why should a develop and use JOnAS versus something else?

JOnAS now is a quite mature J2EE server and he was the first to get the scholarship for J2EE certification license and we are very close to certification right now and JOnAS has been there for a long time, so compared to other open source J2EE servers or compared to Geronimo for example, it is a much more mature project. We have strong synergies with the Apache group. We have components that are used in JOnAS like JOTM or the ASM bytecode manipulators that are reused by the Geronimo team and JOnAS integrated Apache components like Tomcat or Axis for web services and so we have kind of a strong collaboration with them. JOnAS is much more mature than Geronimo. In terms of license, the big difference is that JOnAS is LGPL and compared to others like JBoss, I would say that JOnAS is much more of a community effort where its not backed by only a single company. Already a lot of people like we have in Europe, France Telecom or Bull have already various projects around the world and a lot of external committers contributing to this project, some things that could live, even if the original committer would leave or would stop working on JOnAS.

Sometimes with open source solutions, they don't go the full way with tool support and things like that. What tool support do you have with JOnAS?

We have a very good relationship with the Eclipse group and the ObjectWeb was a leader on the Eclipse web tool project proposal and so we have an Eclipse planning for J2EE development which is Lomboz, which is the basis for this Eclipse web tool project and we have a lot of tooling mainly around Eclipse and the Eclipse community. We can use web tool project initiative to provide all the tools that we already have been providing for JOnAS and all the xdoclet stuff, Lomboz and we have also plug-ins for JDO and an Eclipse JDO plug in and that makes JOnAS also integrate very nicely with those IDEs.

You mentioned that you are getting pretty close to J2EE certification. Why is it important to be J2EE 1.4 certified?

I think if open source servers like JOnAS want to get into place, it is what is seen as a community component and should be users that there is no vendor lock-in, that if you are compliant with these specifications like I take this piece of software and replace it by another compliant piece of software that would run smoothly and they don't have vendor locking, they can use JOnAS today, use JBoss tomorrow or use JBoss today and JOnAS tomorrow, that ensures parity in terms of your investments and in the long run, it is very good to show that open source products can have exactly the same quality as commercial products. I think we still have to convince a lot of users that open source is as good or even better than commercial products and certification is part of that and I think that could be a strong thing to show that we are not just doing open source but we do professional open source products.

I've heard a lot of good things about JORAM, what are the major JMS features and how does it compare to other solutions?

Server JORAM is a fully JMS 1.1 compliant JMS server and it has quite unique features in open source that can be both used as standalone and it's very tightly integrated within JOnAS. It means that from your message driven bean you can have access to all the high availability features like list of topics and list of queues directly from JOnAS server. The underlying technology under JORAM is a distributed bus technology that as very nice scalability and deployment features that allows you to run on very large scale environments and also interface very well with JCA for enterprise application integration.

What is the clustered JDBC project?

Clustered JDBC is a middleware to transparently cluster databases. It means that you take your existing application running in whatever application server you like and it's kind of a smart proxy at the JDBC level that takes the query coming into the JDBC pipe and balances them on a set of back ends, database back ends and replicates those databases and providing high availability and scalability features by load balancing those queries and providing check pointing, backing up, JMX administration so that it can integrate within any application server environment or Java environment in general.

Why and when would an enterprise developer use this in their architecture?

Either they start from scratch and they just want to provide more reliability to their database and instead of having a single backend, especially for small solutions who are using open source products you just want to cluster the database and have a second replicate in case one fails, you have maintenance to do on the backend and each time you just want to scale the application then you have to add new backends to this cluster. Usages, if you have a main Oracle database and you want to make this database scalable, but you don't have the money to buy new Oracle license or a larger SMP machine, you can put a bunch of small open source databases on the site and make a heterogenous cluster of a main Oracle database and set up a virtual database to offload this main Oracle database. That can make a lot of sense to make the existing infrastructure to evolve and move smoothly to open source not by just replacing existing legacy databases by a cluster of open source databases but having a mix of heterogenous things and moving smoothly to open source.

Could you take Hibernate data application written using the Oracle dialect and plug in clustered JDBC, how would that work?

We use JDBCs to both Hibernate and we have demos available on the web site running with Hibernate and to handle the value SQL dialect, C-JDBC comes with rewriting that allows you to rewrite, for example Oracle specific queries into new queries that would run and execute on MySQL orPostgres or whatever databases you are on and we are also working on extensions to rewrite tools, which will talk to us and which are much more complex, not just single queries so that we can redefine work flow of queries that you would like to execute and also backend those.

Where do your envision grid computing fit in into the J2EE world?

If I start from the database tier, we already in C-JDBC have a few ports to interconnect database clusters together and I think the vision I have at least of grid computing in J2EE is quite different from the vision we have in academia in general where it is used for large scale computing like meteorology or very large scale computing. It is much more I think interconnecting J2EE servers, let's say you are someone like Amazon and you have a web site in U.S. and there is one in Europe and you want to integrate and interconnect those technologies, I think I already see grid computing much more as an interconnection of J2EE cluster versus a big global solution to run kind of a crowd of J2EE components or J2EE servers and probably the interaction with the grid J2EE are interconnecting J2EE would be through web services which will be a common interface and integration of the various implementation in vendors.

Where do you see web services fitting in?

I really see web services as kind of a wrapper on top of J2EE and we were just talking about grids in J2EE and there are still many issues on how you interconnect those servers, how you deploy them, how you handle such large configurations and I really see web services as a standard interface to interconnect those different J2EE servers and a standard protocol to interact with different J2EE servers, but no more than that and we still have so many issues to solve underneath that web services is kind of just sugar on top of J2EE, but if you want to interoperate with .NET or other application server, probably web services would be the way to go and you can see that with major web sites like MSN or eBay that provides those web services and you don't have to care about the technology underneath that way to interacting with connected servers, which could probably make a lot of sense even though it's a very ____ environment.

You mentioned Object Web has tools for XML synchronization? What exactly are you are doing?

There is a project, very popular project called Sync4j, which is based on the SyncML protocol and that is really to exchange data in an XML format for example synchronizing your mobile phone with any repository and we have also a lot of tools like the XML C engine provided by Enhydra community which is an XML engine that works on top of JOnAS to manipulate XML data and we have also a new project called Active XML and old projects related to ESB and BPEL engines that are related to these kind of technologies.

What is the vision that you see for ObjectWeb?

In the short term, we are working on new emerging technologies and looking at things like enterprise service bus initiative that we started this year. We are looking at all the upcoming challenges like deployment, monitoring of those clusters, not tracking anymore, a config file where a node is working and just do redeploy in another node but have all these things happen dynamically, have self-healing, self-configurable application servers. I think in the more long term we have a component model that we call "fractal" that ends up providing a common infrastructure to deploy, integrate, package all the middleware that we have so that people who want to take pick any ObjectWeb middleware component could assemble it always with systematic tools and provide easily larger tools or integrated solutions from ObjectWeb components and deal with administration, deployment, consistency and all you can imagine about what open source middleware should provide.

What do think is aiding ease of use in the ObjectWeb products?

I think right now we have the current technology, we are putting a lot of effort in providing the tools like integration within the IDE, like the Eclipse web tool project again and I think now that people have access to technology, we have to do a lot of effort in both education, providing good documentation, which is often a problem with open source project. So we are putting a lot of effort in having good documentation, translating your thoughts. We have a very active community in Asia for Chinese and Japanese translations. We are working with the Eclipse community on all the tools and also with other IDE. I think we definitely need to provide tutorial and we have also a web ring with teaching material provided by various universities so that people get used to this technology and have a better understanding on how to use it and I think we definitely need to make efforts on that side and that is what currently the ObjectWeb initiative is doing.

Could you explain the ESB initiative and benefits that it gives developers?

I really see ESB as a good solution for all integration problems within enterprises. We have all the building blocks that are necessary tools to build such ESB bus. I already see JMS as being the foundation for that and JORAM components are the right candidate to build an ESB. We have apparently all the different parts of the ObjectWeb trying to put the pieces together or to have an ESB offer and I think what will make the success of ESB is mainly the connectors that will be provided so that anybody can connect to the standard bus and exchange data with any legacy system or standard application server. I really think that the success of ESB right now is tied to those connectors.

Thanks a lot for the interview. Do you have any final words for the community?

I would like to invite the community to join ObjectWeb, at least browse the web site, become a member, it's free. We have a lot of projects who are looking for contributors. Even if it is documentation or just feedback, you like it or you don't like it, just provide feedback on the mailing list. We are eager to see how we can improve and how we can make progress. It is a lot of fun to be part of this community and we also have a lot of collaboration with other communities like Apache or Eclipse, so it is even begin part of larger community and we have our quarterly architectural meetings. If you have questions about some architectural issues or problems you would like to solve like clustering, persistence, transactions whatever, we organize workshops every quarter and everybody is free to join them. It is moving around Europe and sometimes outside Europe, so feel free to join and we have our annual conference in January. I would like to invite everybody to attend this great event.


News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map