“Mini-Apache” touts security, targets embedded Linux devices
Jan 27, 2004 — by LinuxDevices Staff — from the LinuxDevices Archive — 1 viewsUpdated 7:30 p.m. — Michael O'Brien, who wrote the hugely popular GoAhead Web server, has founded a company called “MBedThis,” which has launched its first product, a “mini-Apache” for embedded devices featuring high security and a small memory footprint. AppWeb is the first in a planned family of web-enabling products from MBedThis.
Security features, first and foremost
“The world's a more hostile place now,” says O'Brien, who wrote GoAhead — probably the world's most popular embedded web server — in 1998. According to O'Brien, AppWeb provides “all the security [needed by] an embedded class device.”
AppWeb's modular design supports basic and digest authentication modules, as well as a number of SSL modules, including Peersec's MatrixSSL, a small, dual-licensed open source SSL library with a memory footprint under 50K that is currently beta testing. “Now you can have SSL on low-end embedded devices, and have an extremely secure web server with digest authentication,” O'Brien notes.
AppWeb is also working with Mocana to get its commercial SSL library supported.
MBedThis offers security consulting and support in conjunction with AppWeb, which can be licensed commercially or with an open source GNU license.
Fast and small
In its most basic configuration, AppWeb has a memory footprint of just 110K. However, “A typical implementation would be 400K-500K,” notes O'Brien.
AppWeb is based on a high-performance, multi-threaded core that outperforms Apache, according to O'Brien, who says AppWeb can deliver about 3.5K pages per second on a Pentium-class system. On the low-powered CPUs typically used in embedded applications, AppWeb's high performance translates into low cpu use. “It's not intrusive at all,” claims O'Brien.
AppWeb's application core is multi-threaded, but requests are not. “You can program your code w/o worrying about locking. The core dispatches multiple threads, but requests are single threaded and can block,” notes O'Brien.
AppWeb can be implemented as a standalone application running as a normal Unix process on an embedded device. Or, it can be embedded into an application. “The code is crossplatform and portable, and supplied with over a dozen samples of how to do this. It's great for dynamic content,” notes O'Brien, because an application can pass data directly to the Web server without the need to use a filesystem. Static pages can also be hard-coded into an application.
Mini-Apache
O'Brien describes AppWeb as a “mini-Apache” in part because it features compatibility with Apache configuration syntax. “One of our customers was able to solve a problem using Apache documentation from the Internet,” O'Brien notes.
AppWeb is not based on the apache codebase, however. “It's a clean implementation,” says O'Brien. “It's really hard to shrink something down.”
Modular design
Another feature reminiscent of Apache is AppWeb's modular design. “AppWeb modules can be loaded dynamically, or compiled in for a smaller footprint, so you can have just the features you want,” O'Brien notes.
AppWeb architecture
AppWeb does not support Apache modules directly, but the implementation is similar, and AppWeb modules analogous to several popular Apache modules have already been written. “Apache module authors have been able to write AppWeb modules pretty easily,” asserts O'Brien.
AppWeb modules are currently under development for perl, python, and server-side Java, although these functionalities are already supported through CGI. “Some features, you just have to have,” notes O'Brien. And, “the open source community recently contributed a PHP module, which is currently undergoing testing.”
Another AppWeb module provides API compatibility with GoAhead, enabling GoAhead modules to be used as-is with AppWeb. “We designed AppWeb for easy migration of existing applications,” notes O'Brien.
AppWeb's support for GoAhead modules includes the GoAhead “Active Server Pages” module, which AppWatch refers to as “Embedded Server Pages” to avoid confusion with a similarly named language from Microsoft.
The name, and the company
Asked about the origins of his new company's name, O'Brien replied, “We wanted a name with a little bit of attitude. We want to position MBedThis as a corporate company, and back up our products with corporate support and service. But, we didn't want to lose the sort of wild nature of open source development. The name just sorta stuck.”
AppWeb has seen about two and half months of pre-release testing at undisclosed customer sites, and is available now under both commercial and an open source GNU licenses. “Our model is similar to MySQL, or JBoss, or Sleepycat,” notes O'Brien.
MBedThis currently comprises six core developers, with a “federation of developers” comprising a dozen programmers distributed around the world working on its projects.
“We'll focus on getting AppWeb out there during the next six months or so, but we've got more products in the wings,” notes O'Brien. “Things are very dyamic in this area, and there's lots of activity behind all of this…”
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.