Tuesday, February 23, 2010

eXo Industry Trends Part 6

Salesforce Chatter and VMWare Zimbra

One of the biggest signals of a shift in the market comes when innovative companies make major moves. The two announcements above are a very clear move toward higher level services deployed in a Cloud - the type of architecture that eXo enables.

Salesforce Chatter is
a new layer on the Force.com development platform (sound familiar to the eXo platform running on top of the Java development platform?). This is a major release that offers direct capabilities to Salesforce users. However, the real power is making this a platform for others to extend their own Force.com applications.

Here is how Salesforce describes it: "With the new Chatter platform, collaboration features and capabilities will be available for any application built and run on the platform. Your custom apps will generate real-time feed updates, incorporate user profiles, and encourage dynamic interactions between people and groups." (Geez, this again sounds familiar with eXo for the Java application community).

VMWare made a big move last year in acquiring Spring and Hyperic - demonstrating their understanding that the cloud is more than simply about virtualized machines. Application platforms need to be designed for the web, as I reviewed in my Cloud Characteristics blog in this eXo series. Their recent acquisition of Zimbra gives them a set of "out of the box" services that their partners and service providers can take to market. VMWare's ambitions are clearly large and centered on the future of Cloud architectures, and seen in the diagram.

The Java community has over 4 Million developers. This huge base needs to move toward these new architectures. Their employers need them to be more productive and for their applications and services to reach the market sooner. And their users need and want the type of interactive, content-aware, collaborative, social and knowledge services that the consumer web is bringing. Exactly what these two technology thought leaders are driving to market.

This is a key reason why I think the eXo Platform is so exciting and relevant to the next steps of the Java marketplace. Work should be fun and meaningful, and this is all of that!

eXo Industry Trends Part 5

Relational Databases - No Longer the Key to the Castle

It has been 40 years since Codd published his "A relational model of data for large shared data banks" - ushering in the era of relational databases. Since then, the industry has built applications around relational data at the core. RDB's have become the core asset of many companies.

However, this is changing because of the web. A case could be made that the most valuable database in the world is Google's index of the web - certainly not a relational database. The web's core is built around documents and document linking. Content and new architectures for databases like Big Table and Hadoop are now replacing RDB's as the core of applications.

This has some implications for the Java community and the traditional focus on building RDB-driven applications. The focus of Java middleware has been on EJB's and JDBC and Hibernate and create applications on top of these API's. This has led many Java shops to fall behind what is happening on the consumer web. While the traditional transactional RDB driven apps are fine, they are not as useful as they should be.

eXo offers a platform that fully integrates with traditional Java middleware like Tomcat, JBoss, Spring, WebSphere and others. However, it focuses on content, collaboration, social and knowledge. All of the services offered by eXo focus around the new types of data. At the core is an open content store based on the Java Content Repository specification with open interfaces like WebDAV, CMIS, and back end integration with storage services like S3.

This infrastructure allows Java shops to instantly leap forward to an integrated architecture that encompasses the new data types of the Web.

When people ask us how we have so much functionality in our platform, one of the key reasons is that we did no
t take the typical Java approach of trying to force everything into a traditional RDB view of the world. We matched the architecture to that of the web - around content, collaboration, social and knowledge.

eXo Industry Trends Part 4

Cloud Computing Characteristics

There are so many views and definitions of "Cloud Computing" in the market. Some view it as snake oil like Ken Olsen of Digital dismissed Unix in the 1980's. Some view it as some pure architecture and want to define it by a set of standards or implementations.

I think the more important thing is to see some of the basic concepts and implementations in the market and understand how that could influence building and deploying applications less expensively.

At eXo, we think the Cloud has several key characteristics we are trying to build into our product and allow customers the ability to deploy into various forms of Cloud computing. The five key characteristics we think about are:
  • Elastic
  • Multi-tenancy
  • Agile
  • On Demand
  • Cost Effective
We'll start from the bottom and work up. Our open source implementation fits well with the promise of cost effectiveness. Customers can use our software for free. And our subscription offerings are very competitive in the market and bring true value to companies. We are also beginning to see some of our partners take our platform to market as a Cloud offering. A very large Service Provider in France is opening up an open source offering as an alternative to Sharepoint to their customers - charging on a usage model that is becoming the dominant method for Cloud and SaaS offerings.

On Demand - The very term implies a loosely coupled service model. When I want my pizza, I will make a call and get it delivered to me. The old model of having control of everything within your own data center is not realistic anymore - but you want to make sure when you make the call for the pizza, it is there and reliable and will deliver exactly what you want. eXo has been built on a services-based architecture. What this means to customers and service providers is that all of the rich functionality of modern web applications is available as a REST-based service call. It does not matter where the service resides - in an Enterprise Cloud server, on an outside service provider, or even on the same machine.

Agile - Speed of development and speed of deployment are really the key value to Cloud computing. Customers flocked to Salesforce.com because of their speed of getting deployed as well as how fast they could customize the application to their needs. As compared to the old alternatives of Siebel as an enterprise deployment or Act as a PC based deployment it just got the job done so much faster. eXo is focused on moving Java shops to this new concept of speed of development with mashups, Gadgets, reusable services, and to deployment by simply putting up the service integrated with existing Java middleware.

Multi-Tenancy - This is probably the most important for how platforms like eXo are architected internally. While each tenant could be sent to a separate VM and an entire environment replicated on each VM, this is hardly efficient. The idea of Multi-tenancy can be looked at across the various layers of the stack, and this is exactly how eXo approached this opportunity. The result is a nice combination of efficiency, scalability and security.

Elastic - Cloud deployments have the potential to scale far greater than "Enterprise" applications. Data requirements are far larger and more complex. Needs for technology like caching and data grid technology is needed here to allow platforms to scale to large size. eXo is doing some interesting work in this area that will hopefully come to market later this year.

eXo is betting our company on Cloud computing. Not whether it will be one Cloud or internal or external - but on the concept that Java shops are going to be driven to this lower cost and faster development and deployment offered by the overall movement to the Cloud.

Monday, February 22, 2010

eXo Industry Trends Part 3

SOA and the Web

I had the fortune of spending time with Yefim Natis of Gartner on Friday. I've known Yefim for years as a very skeptical guy with some usually very good insights. He gave a presentation on Gartner's perspective on the cloud, which really crystallized a couple of things for me. One of his graphics is amazingly simple, as most good things are:

Of course when presented it was in build mode. As discussed in Part 2 of this series on the industry trends behind eXo, Java applications are traditionally just the bottom two images - with a transactional, relational database driven back end application and typically some fairly un-interactive web screens.

Yefim maintains that this is the picture the world is heading to over the next 5 years. Richer interfaces for users, and a mix of traditional enterprise apps and new cloud-based services combined at the user experience level. All driven thru a Services Oriented Architecture.

SOA has been so long associated with traditional EAI vendors, but has had a much bigger impact from a Web perspective. Tim O'Reilly coined "Web 2.0" way back in 2004, and is now a core part of almost all consumer web applications. The problem is that many Java shops are still stuck on SOA meaning EAI and are not leveraging the agility in development and deployment this approach brings.

eXo is built for Java shops as a new level of middleware running on top of Tomcat, JBoss, Spring and others that is designed with a consistent services oriented architecture for delivering on this vision. Of course the "Cloud" can be deployed in the enterprise or on a public implementation. As we deliver the eXo Platform V3.0, this will be our core design philosophy.

eXo Industry Trends Part 2


Java, .Net, and PHP Websites

Generally speaking the list above are the three major languages today for building dynamic websites with huge ecosystems.

Java websites are typically built from a transactional and heavy Relational Database driven set of needs. Large enterprises and governments used Java Application Servers to build scalable, secure and transactional websites.

.Net and PHP have typically been associated with other types of websites where the design is more about the interactions with the users. Facebook would be a posterchild for this generalization as it is built on PHP and has very high interactivity as the big design goal.

The .Net and PHP worlds have further benefited from enhanced platforms to make building websites even faster with Sharepoint and Drupal. These platforms include features to help build websites, have a focus on content in addition to relational data, allow collaboration, and provide a robust set of templates and applications that can be simply added. Sharepoint has over $1B per year of revenue and is one of Microsoft's fastest growing businesses.

In the Java world, Portals have been around for 10 years to enable faster and more collaborative website development. While they have had success, they are not nearly as flexible, agile or broadly featured as the Sharepoint and Drupal platforms. In fact, the term Portal is no longer found in the .Net and PHP world.

This all puts Java shops in an difficult position. End users of Java applications are increasingly demanding more than most Java shops can deliver in terms of website agility. Java websites are typically built around a set of critical business applications, which deliver value. However they have fallen way behind the consumer web.

Rather than going to PHP or .Net, Java shops needing to expand beyond their traditional Relational Database driven applications can now leverage eXo. eXo is built entirely in Java and has a full services based architecture. This gives Java shops the ability to use eXo Services like Content, Collaboration, Social and Knowledge as well as core website services on a Java API level, REST service interface or nearly a dozen other standard interfaces (WebDAV, JCR, CMIS, etc.). Additionally, eXo offers a unique capability to quickly create mashups - leveraging Gadget and REST-based services in a web-based development tool for fast deployment.

eXo is clearly trying to help the Java community stay at the forefront of technology. Our existing partnership with Red Hat on the GateIn Community Portal project is just a glimpse of our overall strategy that we will roll out over the coming year.

eXo Market Positioning


Before I start the eXo Industry Trends Series, I may as well give our current perception of how eXo fits into the market landscape and how we can help certain organizations.

Java middleware like JBoss, Spring and WebSphere have become the standard for web applications built by enterprises. However it has been totally focused on scalability and efficiency of controlled, self-hosted relational database applications. Meanwhile, Cloud Services and the consumer web has driven much richer user environments with very fast development and deployment. These services provide not just better interactivity but a combination of features like mixing content and data, enabling collaboration and social features, and offering much more personal control and empowerment. The .Net and PHP communities have the Sharepoint and Drupal frameworks to bring this new rich web environment to those communities.

The eXo Platform is focused on making Java relevant again by building on the solid existing Java middleware infrastructure with a next generation framework and set of Core and Extended Services and applications that provide the benefit of rapid development and deployment. The architecture runs on Tomcat, JBoss, Spring, and other Java environments. It enables Java developers to easily, quickly and consistently expand existing applications – bringing the types of features users see daily on Facebook, Google Maps and Amazon to existing database applications. Additionally, the services based architecture is designed for the modern web environment enabling SaaS and Cloud based services and deployment flexibility and efficiency.

The powerful set of REST-based Core Services provide common services for rapid website development, Content Management, User Management and modern Gadget-based development and deployment. There is a large set of Extended Services for Social, Collaboration, Content Management, and Knowledge Management. Cloud Service Applications provide reusable services for building rich applications as well as pre-built applications including content Explorer, Email, Calendar, Activity Streams, Directories, Gadgets and Mashups. All of this is provided in the type of powerful, consistent, modular framework that Java developers are used to. This brings great efficiencies for giving java developers a simple transition and smooth roadmap from the traditional custom database driven applications to cutting edge user-centered web applications.

Finally, the eXo Platform fits into existing management frameworks like the JBoss Operations Network and Spring’s TCServer Application Management. In addition, the eXo Platform will provide innovative management and monitoring that focus on what the user is doing – providing the type of feedback the enterprise needs to understand their current and future investments on the web.

eXo Industry Trends Series Part 1


In September Sacha Labourey, the former CTO of JBoss, introduced me to Benjamin Mestrallet, the founder and CEO of eXo. Since then we have been working on an enhanced plan to take eXo forward.

There are a lot of shifts happening in the market that are probably bigger than the impact of Open Source was in the first half of the last decade. I am hoping to write a series of blogs this week to give my perspective on these shifts and how eXo can have an impact on organizations looking to capitalize on these shifts.

So hopefully a week from now I will have pontificated on things like Cloud, SOA for the web, the state of Java, the future of data and databases, and the rise of consumer web technologies and their impact on enterprises.