The Web2Kit: Sun's Opensource Web Framework
By BluePrints Editor on Nov 04, 2008
Nick Kloski, Systems Technical Marketing
Today, Sun is launching an initiative centered around building awareness of MySQL on Sun systems. Part of that announcement is a project called, in various forms, “the Web2Kit”, also known as “Olio.” When you peruse Sun's website, you will see reference to Sun Web2Kit, while if you go to Apache's site, you will see a similar kit named “Olio.” Before getting into the nitty gritty details about how to set up Olio, I wanted to make clear how those two terms differ.
To start off, allow me to define what Olio is. The Performance and Applications Engineering team in Sun has developed a framework that allows you to load a complete Web2.0 architecture onto one or more systems that let you (mostly developers I am talking to here) play around with various web technologies to see how the other side works. Here are the components in Olio proper:
- webserver (Apache, Sun WebServer, or any other server you desire to use)
- MySQL as the backend database
- Glassfish / Mongrel as the Application server
- Front-end Applications written in Java, PHP, and Ruby on Rails
In a fully running Olio setup, you basically have a set of application that mimics the common functionality of a social media platform (presentation layer for a new user logging in, account creation, calendar viewing, addition of a calendar entry, etc.) through three different mediums (PHP, Java, RoR). Since each of the interfaces does the same thing, you can compare how, for example, the Java interface differs from the Ruby interface in every level....how the application interact with Apache or Sun's webserver, or lighttpd all the way to how the backend database (which is MySQL or any DB you desire to use as long as you build the table spaces appropriately) reacts to incoming user requests (even in a replicated environment, which Olio is set up to create!). So, all in all, Olio is a testbed for you to play around with commonly used languages, interacting with a back-end database.
I have described Olio in a few different ways, but it is important to understand that Olio is of interest to developers. Think about Olio this way: Olio is a test platform that allows you to compare different application programming languages and tinker with various buttons, within the framework of an open-source and community accepted framework.
You might be thinking that I am describing something of a benchmark, and you would not be far off. Using Olio on one set of machines will give you a number of how many transactions per second your hardware can accommodate. Running the same exact software setup on another set of servers will give you another set of numbers. Poof! You have a hardware benchmark! Alternatively, if you desire to make a software benchmark, then out of the box, you will be able to play around with Ruby and Java (and PHP) application schemas and see what types of application software technologies might better suit your needs.
The Web2Kit and Olio – How Sun will help the community
Now that I have given a brief overview of Olio, how does the Web2Kit come into play? On Sun's website (http://www.sun.com/web2kit) you will not only see Olio, but soon the various Sun-optimized components in the “Web Tools” stack. These will be pre-compiled, open source binaries for PHP, MySQL and a whole host of similar technologies to help you install not only Olio, but any common web related frameworks you desire.
The engineers in the Performance and Engineering group will participate in the community to help Olio grow, and answer questions about deployment scenarios and other technical questions. Use Olio to learn how PHP works, compared to your already existing knowledge on Java, for example. Olio will help you see how the same application is programmed in other languages. As Olio matures, Sun will release other components into the stack to help people see how to intelligently use and integrate new pieces into your own deployments (for example, a memcached piece is being worked on for later inclusion). Some day, if Sun decides that we have the ultimate MySQL Proxy that will revolutionize the way MySQL works, then we will showcase that technology through Olio (NOTE I said “if”, don't believe that this will happen soon, if at all, I was just picking something fanciful to make a point :)
My next blog posting will detail the initial steps on how you set up the Olio base components, and how you would go about setting up test runs and finding out how to gather the resulting data. For more status on the Apache incubation process (within which Olio is currently incubating), refer to: http://incubator.apache.org/olio/