I will join the fray with this attempt to give a crisper product definition to Enterprise 2.0, mapping to Red Hat and JBoss products, and introducing the concept of the "Digital Foundation."
Digital Foundation == (Virtualization + SOA + Web2.0)^OSS.
VIRTUALIZATION. Virtualization of the computing environment is a clear trend in the industry. RHEL5 will provide support for Virtualized Linux. For some Linux system administrators virtualization already means virtualized disk space. Being able to manage your storage independently of your applications or operating system has been the norm in the industry for 15 years. Virtualized partitions are graphically assembled with tools. Configuring RAID support (Redundant Arrays of Inexpensive Disks) is as simple as pressing play in these virtualized environments. If you have played with these tools, you know how intuitive and flexible they are. Virtualization also has impacted development models. Java is based on the availability of virtual machines. Java Virtual Machines (JVMs) provide developers with portability across operating systems. That is one of the biggest benefits. The virtualization of the runtime environment also provides niceties such as advanced programming features such as built in garbage collection or extensible bytecode format. Java is today one of the most successful programming environments because it is built on virtual machines which give it portability, flexibility and the ability to evolve.
SOA. SOA is well understood and past the buzzword stage today. Most large IT shops are doing SOA in one way or another. At one level SOA, technically speaking, is about availability of the data from any point in a network. From another standpoint, it is about business demands and agility in responding to changes. I will focus on the product side here. With SOA, distributed data is available through programmatic interfaces, usually web services but many times in memory with replication underneath. Another very popular approach to SOA, instead of being data- or application-centric, is bus-centric. This view focuses on data distribution through Enterprise Service Buses (ESBs) and messaging, as well as the needed mapping between message formats that integrate the disparate functionality and data in one "computing cloud." SOA usually defines programming models to manipulate the data layer. JBoss ESB, for example, will support various component models. Whether you choose a bus-centric, event-based, or application-centric approach, many of you already use JBoss' suite of products to build these modular and evolutive architectures.
Focusing on the Application Server for a second, we can start with Hibernate. Hibernate works at the data layer and maps databases to memory. You can easily extract data from any database into Java objects and can easily store Java objects in databases without dealing with all the idiosyncrasies of said databases. It is a programmatic luxury that developers have grown used to. Object to Relational mapping (OR mapping) has become a ubiquitous commodity thanks to efforts like Hibernate and EJB3. EJB3 is a lightweight component model on top of a Hibernate-like data extraction layer (Java Persistence API).
You can also use alternative programming styles like rules or business process modeling. We offer JBoss Rules for rules-based applications and JBoss jBPM to model workflow- based applications. In the latter we support industry standard BPEL, our own native JPDL (jBPM Process Definition Language), or even a simple graphical design tool just in case you don't want to learn “yet another dialect of XML.” JBossCache enables easy distribution of datasets across your computing environments. It is based on JGroups and enables clustering and high availability of that data. You may choose to distribute the data with JBoss Messaging to move it where it is needed for computation or event-based programming. Finally, to coordinate all these layers you can use JBoss Transactions, a GPL'ed version of a high-end, previously proprietary transaction monitor. SOA today is a reality for a lot of our customers.
WEB 2.0. Web 2.0 is one of those words that is trying to say “The Web is rapidly growing up.” The Web as we know it, Web 1.0, is about 10 years old. It has had a symbiotic relationship with Open Source. Open source powers most of the Web (Linux, Apache, mySQL, PHP, JBoss, DNS, Bind, SendMail, etc.) and the Web has enabled the open source collaborative development model with tools such as CVS, wikis, forums and mailing lists. The Web has spawned new programming models. If the “Internet is the computer,” then the data is SOA and the application is Web2.0. For some, Web 2.0 means rich user interfaces, where buttons are buttons and widgets behave like real widgets. Like in the good old days when network-enabled meant client-server and we had fancy desktop applications, but with the Internet instead. This is more than lipstick on a pig; this is a true overhaul of the User Interfaces (UI) of the Internet age. We are being more and more clever about where data resides, where computation happens and how it is presented to users on the Net.
JBoss works and invests in many of the engines serving up “rich” content today. Both the Tomcat and APR (Apache Portable Runtime) projects are today led by JBoss employees. By the way, while I am on the topic of innovation, merge Tomcat and APR and you have JBoss Web, one of our latest product introductions. If you are familiar with Tomcat, you should think of JBossWeb as Tomcat on steroids, as it uses the native library in APR. If you are familiar with HTTPD, it is kind of the same but your Java data layer is already integrated in memory with your web engine. This should be a big plus for sys-admins who remember how tricky mod-jk’s configuration really is and for developers that can now deal with one object programming model across the board and in-memory.
Look to JBoss SEAM for a solid and state-of-the-art example of a web framework. For Java web application developers, at a high level, what SEAM does is merge the programming models of JSF and EJB3. SEAM does a neat job of integrating visual web-page flow management with the JBPM state machine. SEAM automatically manages web sessions for you, a source of many bugs with more junior developers. You can now visually describe your web-page flow and not have to worry too much about cleaning up after your session.
Ajax is the final leg of this stack. Ajax delivers data from the server to the browsers and vice versa. The point of Ajax is that it does so asynchronously as in Asynchronous Java Script (AJAX), see?. Your browser can go about the business of being a browser and you don't have to wait on blank pages when you use the Web. You can be proactive or selective about what gets displayed and when. It is one of these trivial features that changes the way you build and look at web applications. Much of the hype around Ajax is well deserved, although it needs a lot of complementary technology to make it actually work.
Finally with efforts like JBoss IDE, based on the Eclipse IDE environment, we are offering a complete and integrated development environment. From the nuts and bolts of transaction processing all the way up to the graphical Web2.0 tools, we focus on simplifying the developer's life as he or she builds modern Web 2.0 applications.
OSS. I am done describing our suite of products. Every large vendor has a stack. Every large vendor likes to talk about their stack, as I have just done. A big piece of the puzzle, in our case, is OSS. If Web 1.0 was OSS, do you want to bet that Web 2.0 will be proprietary? Not very likely! The Digital Foundation of Enterprise 2.0 is the suite of products described above TAKEN TO THE POWER OF OPEN SOURCE. Mathematically speaking, I have seen people mash up OSS and Web 2.0 or SOA in the same sentence by saying SOA + Web 2.0 + OSS, for example. To me they are not the same dimensions. OSS is not, strictly speaking, a product, but rather a methodology, a business model -- a way of delivering software. Some users will build their foundation on proprietary products that implement open standards. We implement open standards in open source. By going with Red Hat, you are bringing an OSS dimension to how you build and maintain your digital infrastructure. A second differentiator is that our open source stack is modular. We are not in the business of forcing the usage of every element in our stack. You pick and choose. Use Linux or JBoss, separately or together, as long as you use us, we are happy. As long as you buy a subscription to AT LEAST ONE of our products, we know we can only grow from there. Eventually a lot end up using JBoss AS as well. Whether you buy our subscription for Linux in order to run Oracle, run JBoss on Windows, or leverage Hibernate on WebSphere, it is all goodness to us.
In conclusion, I hope I have showed you that one way to understand the product dimension of Enterprise 2.0 is to talk about the Digital Foundation. At a minimum, the Digital Foundation comprises product categories such as Virtualization, SOA and Web 2.0. Open source is the methodology by which we develop, market and support our products. To become real, Enterprise 2.0 needs this Digital Foundation and the most-effective and customer-friendly way for it to be built and consumed is in open source.
Remember we love you,
marcf