TNL.net is designed for modern browsers but the content is still readable in older ones. If you want to ensure the best experience, please install a browser that was developed after 2009.

tnl.net

Modular by Design — Software

So far, we’ve talked about the impact of a mod­u­lar approach on exist­ing busi­ness mod­els out­side of the soft­ware indus­try. Today, we delve in on the indus­try most asso­ci­ated with mod­u­lar design: software.

Cer­tain soft­ware com­pa­nies have been suf­fer­ing from the advance of mod­u­lar­ity in soft­ware design. The main one, to date, has been Microsoft with its Win­dows soft­ware plat­form. In the mid-nineties, Microsoft decided to inte­grate a num­ber of Inter­net com­po­nents tightly with its oper­at­ing sys­tems offer­ing. The two most crit­i­cal ones of those com­po­nents have been a web server (IIS) and a web browser (Inter­net Explorer). Leav­ing aside dis­cus­sions relat­ing to the antitrust issues this kind of inte­gra­tion has raised, the inte­gra­tion of those tools with the oper­at­ing sys­tem have left open­ings for alter­na­tive approaches that were more modular.

On the server end, IIS has been the sub­ject of many attacks by hack­ers. Because it is hooked deeply into the oper­at­ing sys­tem, an attack against the web server can have an impact that goes much fur­ther that the web front-end. In most cases, the attacks suc­ceeded not only in tak­ing machines down but also turn­ing them into zom­bie armies that could then turn around and attack other servers. In 2001, the Code Red virus suc­cess­fully infected hun­dreds of thou­sands of machines in less than 24 hours. Sub­se­quent viruses built on this approach and have been respon­si­ble for some of the largest attacks against Inter­net sys­tems to date. The news that the sys­tem had built in back-doors only fur­thered the issue, pre­sent­ing an open­ing for other soft­ware developers.

The open source move­ment exploited this by pre­sent­ing an alter­na­tive with Linux and Apache. The Linux oper­at­ing sys­tem, which is mod­u­lar by design, can be fined tuned and ser­vices can be included or not depend­ing on how one wants to shape their sys­tem. A web server like Apache can be included in the OS but doesn’t have to be. Because of this mod­u­lar approach, Apache (which runs on a num­ber of dif­fer­ent oper­at­ing sys­tems) has gained the high ground in terms of mar­ket­share. The Apache project focused on deliv­er­ing mod­u­lar com­po­nents, which rep­re­sent a tool-set for most web-based application.

The same is true on the desk­top end. While Microsoft decided to tightly inte­grate its web browser with the oper­at­ing sys­tem, mak­ing it eas­ier to cre­ate lock-in for that plat­form, the approach back­fired when hack­ers devel­oped viruses and tro­jans that exploited flaws in the browser soft­ware to get to the oper­at­ing sys­tem. It was only a mat­ter of time before users started get­ting annoyed by the num­ber of attacks and look­ing at alter­na­tive. They found one in the Mozilla foun­da­tion, a group of open source devel­op­ers who cre­ated a mod­u­lar Inter­net prod­uct suite. Because the Mozilla prod­ucts were built in a mod­u­lar fash­ion, the first attack was responded to in less than a week. This quick turn­around in fix­ing the bug was due to the way the code is imple­mented: because it is mod­u­lar, it was much eas­ier to fix and because it does not com­mu­ni­cate deeply with the oper­at­ing sys­tem, it rep­re­sents less of a risk than Inter­net Explorer and has been rec­om­mended by secu­rity experts like CERT.

While the browser and web server rep­re­sent appli­ca­tions that are bun­dled with an oper­at­ing sys­tem, some peo­ple are look­ing to go much fur­ther by mod­u­lar­iz­ing the oper­at­ing sys­tem itself. When bro­ken down to its smaller com­po­nents, an oper­at­ing sys­tem can almost become device-independent, pro­vid­ing inter­ac­tions between dif­fer­ent com­po­nents to cre­ate a whole that is greater than the sum of its part. Future oper­at­ing sys­tems will be able to evolve across mul­ti­ple devices, whether they are com­put­ers, mobile phones, tele­vi­sions, or other devices we have not imag­ined yet.

This kind of dis­trib­uted sys­tem already exists but in a lim­ited fash­ion. Some orga­ni­za­tions have used Linux to cre­ate super­com­put­ers by con­nect­ing mul­ti­ple small machines. The power given to those allows to greatly reduce the over­all cost of build­ing very large machines. Sim­i­larly, one of the largest web-based appli­ca­tion, Google, uses tens of thou­sands of machines which inter­act with each other as a sin­gle system.

The les­son in this approach is that a mod­u­lar approach always wins over an inte­grated one because it reduces costs and increases scal­a­bil­ity, thus ensur­ing greater flex­i­bil­ity. While one can never pre­dict chang­ing mar­kets and future devel­op­ments, a mod­u­lar approach is always more flex­i­ble and eas­ier to evolve over time.

Originally published on August 14, 2004 in Technology . You may find related thoughts pieces under the following terms: , , , , ,