ApacheCon 2000

ApacheCon tends to be more (in their terms) geek-oriented than most other conferences. “The sessions are given by geeks who know their stuff; the presentations themselves may be bad, but the information is first-rate” according to one of the core developers. About 1000 people attended the conference.

This trip report is divided into four sections: Presentations, Plenary Talks, Hot Topics, and the catchall Miscellaneous section.

Presentations

>Design Patterns in Web Programming

Nathan Wallace

This talk ended up being much more interesting than I thought it would. The basic premise is that many problems in web programming have been tackled before, and that process reuse, like code reuse, can be a good thing. Nathan’s idea was to formalize such reuse.

Creating and using patterns for web projects is even more important than other software projects because of the unique user user interface and because rapid development is more critical; “The speed of coding is often more important than the speed of the code.”

Perspectives on the Jakarta Project

Craig McClanahan (on right) and James Davidson

This talk concentrated on the process of releasing a product (Jakarta, and specifically Tomcat) to the Apache Software Foundation, and the ramifications of doing so.

James works for Sun, and was the Sun lead for getting Jakarta to Open Source. James was one of the primary JServ developers.

From Sun’s perspective, part of the reason for releasing Jakarta was to make Java Servlets more ubiquitous, as well as the technologies which support it. Sun had to do quite a bit of work to prepare the code for release to the Apache Software Foundation, such as code cleanups, covert from SCCS to CVS for source control, and working out the necessary legalities.

One thing that James did was to allow for revolutionary changes to the code as well as evolutionary changes. In other words, people should be allowed to check out the code and make radical changes; perhaps these would become the new code base, perhaps not. The main goal was to formalize this process.

Another point was that with any release, you never know what will happen with the different pieces. Sun wanted Jakarta to be buildable on many different platforms which don’t have “make”, so they created a make-like utility called Ant. Much to their surprise, Ant has become very popular, even they only saw it as a small part of the release, and only really necessary to do the build.

From Craig’s perspective, the release process was quite painful, and when it happened, he felt the code was pretty bad. Much work has been done to clean it up, and he has since created his own “fork” of the code to try to make a version with new features he’s been desiring, called Catalina. This follows James’ “revolutionary” model.

The goal is to make Tomcat the reference implementation for Java Servlet engines. It’s quickly becoming commercial quality, and will eventually replace JServ. However, other commercial vendors became concerned that the reference implementation will be competing with their products.

To further the progress of Tomcat, Craig has been hired by Sun to work full-time on the Jakarta project.

Apache and LDAP

Mark Wilcox

Mark is probably the most active person answering questions on LDAP mailing lists.

The University of North Texas uses LDAP modules for authentication and authorization. He’s also talking about cross-system authentication using a cookie mechanism (much like Pubcookie).

I was mostly interested in how LDAP authorization was done, and he does it via mod_perl and the Perl LDAP module.

Mark uses the Netscape LDAP server, which he has found to be the best for speed, partly because the Berkeley DB routines have been tuned for it. It can also scale up to several million entries very efficiently.

HTTP and Apache

Roy Fielding

I always enjoy hearing Roy talk because he’s not afraid to call a spade a spade, and really knows HTTP (he’s one of the people who wrote the spec.)

Roy’s talk concentrated on technical details of Apache’s implementation of HTTP. He began with a description of the HTTP protocol and a code overview of how Apache implements it, including describing chunked mode, which allows persistent connections to be used even though a Content-Length header is not used. He then went into more details about how Apache 2.0’s implementation has evolved from earlier versions.

Plenary Talks

Opening Plenary

Apache Committee

Left-to-right: Paul Sutton, Brian Behlendorf, Tony Finch, Roy Fielding, Danny Lopez, Stefano Mazzocchi, Ben Laurie, Ryan Bloom, Doug MacEachern, Lars Eilebrecht, Mark Cox, Jim Jagielski, Ben Hyde, Ken Coar

This was a sort of free-for-all session, covering many topics. Some highlights:

  • IBM and Apache: IBM, according to Ken (who works for them), is a very well-mannered 900 pound gorilla when it comes to Apache, and they follow the Open Source model very well, as opposed to trying to take over development of Apache. Brian added that IBM came into the project on the Apache Software Foundation terms, mainly following the meritocracy and peer-based models.
  • Java and Servlets: Tomcat, when it’s more stable and has the proper feature set, will replace JServ. Because porting modules from Apache 1.3 to 2.0 is quite easy, 2.0 versions of JServ and Tomcat should show up pretty quickly.
  • Apache 2.0: As with previous versions, the early releases will concentrate on correctness and scalability. Performance tuning will come later.
  • SSL: After the RSA patent expires this year, it’s possible that the SSL module will be bundled into the standard Apache distribution. Netscape will probably be bundling SSL, so the Apache people are waiting to see how that goes before trying to tackle the problem themselves.

The Web and Technology Fusion

Alfred Spector, IBM

One of the points that Alfred really tried to drive home is that IBM is not new to the Open Source field. In the 1960’s and 1970’s, IBM released source code to certain products (such as airline reservations) so programmers at their customers’ sites could improve the code. He sees open source as aggregative innovation.

Alfred also said that IBM has worked hard at developing a public license mechanism. He also thinks that in the future, it will be more important to make building blocks available for use, not just have an open source model. His analogy was that to build a bridge, you have different components (engineering specifications, well-defined construction methods, etc.) but were bridge-building to fall under the open source model, each project would have to begin with creating components from molten steel.

State of the Foundation

Brian Behlendorf, Apache Software Foundation

Brian expanded a bit on some of the topics that came up in the opening plenary. Specifically, part of the uncertainty with distributing SSL isn’t so much the source code, but releasing binaries, and what would be involved with registering to do that.

As for the Apache Software Foundation, Brian expressed the desire to truly keep everything a meritocracy. He also pointed out that many of the projects which fall under the Apache Software Foundation umbrella are language-oriented (Perl, Java, PHP, etc.), but in the future, he hopes that there will be more application-oriented projects.

Brian also talked about http://www.tigris.org, which is an organization which will be working on open source tools for developers. The current Tigris projects are Helm (project management), Joist (a sort-of servlet framework), ArgoUML (CASE tools), and Scarab (bug tracking). Brian’s involvement with Tigris is as the founder of collab.net, which developed much of the technology.

Sun’s Apache Initiative

Patricia Sueltz, Sun Microsystems

Sun, like IBM, is now greatly involved with open source, and Apache in particular. One of Pat’s points is that no matter how bright your employees, there are always people who are brighter; open source lets you take advantage of those resources.

Pat thinks that in the near future, massive scaling will be an issue, and not just hardware and bandwidth scaling, but scaling of service, too. (Aside: this reminds me of the UPS ad showing an e-business just going online. They are nervous at first when nobody connects to their site, but people start connecting and they’re relieved. After a few hundred orders, they’re happy. Few thousand, they’re ecstatic. Few hundred thousand, and they’re worried.)

Pat took the opportunity to announce that Forte (netbeans, a set of IDEs for Java development) is now freely available.

Hot Topics

Apache 2.0

The hottest topic was Apache 2.0, which was released in Alpha form just before the closing plenary (during the session, we watched them post the press release onto slashdot) and I was able to download and start looking at the Alpha just before the session started.

The biggest improvement in 2.0 is thread support. The old preforking method will still be available, as will a hybrid mode which allows multiple threads with multiple processes (which seems to be good because if one child process dies, it only takes out that set of threads; with all threads in one process, the whole server will need to wait for the child to restart if it crashes.)

Another major new feature is layered I/O, which will eventually let modules be linked together.

The module API has been revamped, and the module struct has been replaced by a callback registration mechanism. This makes extending the API much more flexible. Modules will need to be ported, but the claim is that the process won’t be very difficult at all. A quick look at converted modules shows this to be true.

Operating system-specific functions have been replaced by an abstraction layer, to make porting much easier.

Statistics gathering is now more flexible. Each module can register information to be made available to the central statistics gatherer. Modules can then be written to provide an interface to those statistics (mod_status has been rewritten to take advantage of this feature, and the hope is that the stats will also be available via SNMP.)

Beyond 2.0, the Apache team expressed a wish to be able to have a filesystem abstraction layer (to allow content to come from databases or from a WebDAV server, for example.)

SSL

As with every web-related conference I’ve attended, encryption was a much-discussed topic. People are still not clear on the implications of the new export rules, but Netscape is testing the waters by trying to include source for SSL support in the Mozilla project. Many businesses are also waiting until the RSA patent expires so they can use OpenSSL.

Because of the new module API for Apache 2.0, SSL can be offered as a pure module (currently it either requires patches to the core or patches to the module API to add function handlers.)

OpenSSL will soon have more support for hardware acceleration. The developers, however, feel that hardware SSL is too expensive for the amount of improvement you get. In some cases, software can even outperform the hardware accelerators.

Jakarta/Tomcat

Sun did as much as it could to promote Tomcat (the new implementation of a Java Servlets which was recently made into Open Source by Sun.) In addition to free coffee mugs with the Tomcat logo, Pat Sueltz from Sun sported her Tomcat tattoo.

Best T-shirt seen at the conference.

Platforms

In spite of the obvious Unix bias of the conference speakers and attendees, most of the people I saw seemed to be running Windows on their laptops.

IBM has put quite a bit of work into Apache on Windows, and the code has become much more stable.

Apple is stating that Apache will compile out-of-the-box onto MacOS X. And speaking of MacOS X, Apple did a demonstration of the soon-to-be-released operating system. It was running on a PowerBook, which is a G3 (I don’t know how fast the laptop was, but I’m guessing in the 350 or 400Mhz), and it seemed relatively snappy, especially for a beta. Booting took a while, because after MacOS X boots, the MacOS 9 compatibility process needs to boot. The interface really does look and act like a Mac (even considering the significant interface changes that Aqua introduces) but command-line shells will be available.

Miscellaneous

Compared to ApacheCon ’98, this conference had more people interested in business applications of Apache. The strongest corporate presence was from Sun and IBM, both who are contributing a nontrivial amount of resources on Apache development.

As of Apache 2.0, the Windows port will no longer have the warning that the code is not as robust as the Unix ports. An audience member asked if the server had been tested on Windows 2000, it hasn’t to a large extent beyond the fact that it does compile and serve a few test pages.

Best incentive to draw people to a BOF: after exiting the ballroom from the keynote speech, one noticed a T-shirt on the floor, which was just the start of a path of T-shirts leading to the room with the mod_perl BOF. One of the people who called the BOF was tossing T-shirts to each person who walked in.

Internet access was provided by Apple in the form of several G3 systems running MacOS X Server. Unfortunately, it wasn’t clear to most people (if any) that one needed to switch to the Unix side of the system to run SSH. The laptop access was limited to a small section of counter and a hub, without DHCP. Fortunately, I happened to take a WaveLAN card, and Apple had set up an AirPort base station for 802.11 access. The only other person I saw using 802.11 was using it with an iBook. Unfortunately, that seemed to be the only access point; it did work in the main ballroom (where the Plenary and other larger sessions were held) but I couldn’t get a connection from any of the other rooms. Wired access in the conference rooms seemed very spotty.

As with the World Wide Web 8 conference last year, several people had Palm computers (once again I saw no Windows CE devices.) This time, however, there was a mix of Palm III and Palm V systems, along with a Visor.

At the opening Plenary session, the conference coordinator proclaimed a ban on pagers and cell phones going off during sessions. Of course, some people still had theirs set to audible alert. Interestingly enough, the most popular cell phone by far was the Motorola i1000 Plus with Nextel service.

The next ApacheCon will be in October in London, and following that, ApacheCon 2001 will probably be in San Jose.

Leave a Reply