Thursday, November 16, 2006

Microsoft has Operating System Patents; Linux has None

This post was also published in CNET News.

The uproar in the open-source community over Microsoft's embrace of Novell says a lot.

It reveals that many open-source backers fundamentally don't understand the software business. When vendors compete, customers win. This is good.

Contrary to the numerous rants in the open-source community, the recent deal between Microsoft and Novell--in which the companies have agreed to interoperability, reselling and patent protection--is actually an excellent business deal and a good thing for the open-source community.

Microsoft is growing up after its antitrust issues. It is actually listening to its customers. Chief information officers have been telling Microsoft for years that they are sick of interoperability issues and that Microsoft has to stop acting like a big baby and learn to play well with others. The good news here is that Linux is now woven into the business fabric of every major company.

The reality of the technology business is that virtually every deal between big companies includes bilateral patent protection. Company A cross-licenses its patents with Company B. Neither acknowledges that the other is ripping off any intellectual property. Rather, each now has a finger on a legal atomic football that threatens to blow up both businesses if either goes to court to litigate for some bogus market advantage.

What usually keeps these companies from suing each other over patents is this legal notion of mutually assured destruction, since each company has patent libraries that overlap the other's cash cow products. When these companies do deals with each other, it is standard operating procedure to codify this presumptive way of doing business into the agreement--hence bilateral patent protection.

Microsoft's first deal in this new era of cooperation was with Sun Microsystems. Sun dropped its antitrust complaint (accepting a $2 billion check from Microsoft as part of the deal), and the companies pledged interoperability between their products. This deal quite naturally also included bilateral patent protection between Microsoft and Sun.

It did not, however, cover open-source developers. So let's say you download an open-source project like the NetBeans tool from Sun, add some cool features and redistribute your version of the tool. You have now violated hundreds of Microsoft patents on tools, and they can come after you.

It should be of no surprise to anyone that Microsoft holds numerous patents that Linux violates--it's just that polite company in the software industry won't say this aloud. You see, Microsoft hired folks like Dave Cutler out of DEC to build Windows NT, and it is actually an industrial-class operating system.

It originally included things like HAL (the hardware abstraction layer) that let it run on multiple processors including the PowerPC. I'm not a lawyer, and I'm not claiming that Linux violates any specific multiple-processor patent for Microsoft, but the odds are pretty much 100 percent that a good attorney from Redmond could build many different infringement cases that could go a long way in our court system.
In the Novell and Microsoft deal, many industry insiders are whining about commercial implementations, but I don't know what people expect Microsoft to do. Should they indemnify everyone who downloads and extends the Linux kernel from Novell from all of its patents?

If they did that, Red Hat could start getting the Linux kernel from Novell, be indemnified from all Microsoft operating-system patents and then sue Microsoft for the relatively few operating-system patents it has. Many of the whiners overlook what is significant about this deal. For the first time, one of these patent agreements also covers individual open-source developers.

A lot of people are saying Novell is paying "royalties" to Microsoft. Microsoft is paying Novell $108 million for Novell's patents, and Novell is paying Microsoft $40 million for Microsoft's patents. Or if you can do simple math, Microsoft is paying Novell $68 million for the patent agreement and then hundreds of millions more for Novell Suse Linux licenses and marketing expenses. Novell definitely came out on top here.

While the devil will be in the details, this deal is a good thing, and Red Hat should also do a similar deal with Microsoft. The interoperability commitment and bilateral patent protection is a good thing for customers that run Linux and Windows (every large technology customer). The patent protection is a good thing for open-source developers that extend the open-source projects covered under the agreements, since they now get more protection than they had before.

And I predict that this announcement has already forced every other major software company (BEA Systems, IBM, Oracle, SAP and others) to now consider similar deals to offer customers and developers some form of patent protection and indemnification. They have to do something, or the competitors that move first will take business away from them. Whether they announce these deals in public news conferences or offer similar protections quietly in the background to their customers, they'll have to do something.

Linux has won, and it's time to let the next phase begin. The days of kumbaya, where vendors are locked arm in arm singing open-source love songs to "grow the market" through co-opetition are over.

The software business is a ruthless business. Linux is now so important that technology vendors are fighting for competitive advantage over their peers. It's ugly. It's competition. And it's good for customers.

Tuesday, November 14, 2006

GPL Java: Thank You, Sun!

Eight months ago, I wrote an open letter to Jonathan Schwartz asking him to open source Java. Of course this instigated the typical reactionary troll war on blogs and such. A lot has changed since then. Jonathan went from being the COO of Sun to the CEO of Sun. And now Jonathan has decided to release Java under the GPL license. As many of you know, I am not a big fan of the GPL license, but GPL makes a lot of sense for core platforms such as operating systems and virtual machine layers directly above those operating systems, since GPL enforces that no one can own that layer or extend it in proprietary ways.

When I left Sun in 2003, it was a lumbering, rudderless ship that was taking on a lot of water. In just the past year we have seen a commitment to AMD x64 chips in addition to SPARC chips, endorsement of scripting languages on the Java platform, and now a GPL Java. For those of us that are Sun alum that left as part of the brain drain of 2002-2005, we are seeing a lot of the ineffective middle and upper management that caused us all to leave in the first place getting ejected from the company.

There is even talk of GPL'ing Solaris, which would enable the best Solaris features to be ported over to Linux and create a hybrid operating system. I would not be surprised if there is a movement away from NetBeans to Eclipse and further adoption of x64 chips over SPARC chips (perhaps even a SPARC to x64 microtranslator!).

Sun could have easily gone the way of SGI and is changing itself instead. By fixing its core problems of competing with commodity technologies, it is freeing itself to compete with innovation on top of those technologies. So while many may continue to snipe, I offer kudos to Jonathan Schwartz and Sun. Well done!

Thursday, November 02, 2006

Googlology - Avoiding the Steamroller

This post was also published in VentureBeat.

It used to be de rigueur in Silicon Valley to stay out of the way of Microsoft’s product road map – even areas Microsoft hinted they might pursue. Nowadays, venture folks more commonly ask, “What are you going to do about Google?”

The reality of the marketplace is that unless a startup builds a huge community, Google pays only around $50 million for a company (if you’re lucky) and then only if they want to jumpstart a feature by buying a startup.

At this point, Google has trounced Yahoo with consumers. Google expanded its offerings by acquiring several YAW2 (Yet Another Web 2.0) companies with no viable business models, such as wiki software producer JotSpot, Upstartle (maker of the online word-processing program Writely) and of course YouTube. As a result, almost no gaps are left in Google’s consumer portfolio… and no $50+ million opportunities remain for startups other than in “Social Networking,” where Google might buy an existing community such as Facebook (estimates vary between $1 billion and $2 billion).

Google has clearly figured out that the advertising market is not big enough to justify its stock market valuation. The entire U.S. advertising market is $140 billion a year – that’s less than Google’s current market cap of $151 billion.

Which takes us to the Small-to-Medium Business (SMB) market. To grow, Google clearly is going after Microsoft’s SMB business. The chart below describes Google’s current product offerings, many of which have been filled by small acquisitions, with an educated guess as to where they are going in both the consumer and SMB markets.

Why is Microsoft vulnerable in SMB? Late to the Internet, Microsoft never really caught up. Its proprietary technology is archaic in a Web 2.0 world where systems can be easily “mashed up,” or tied together with lightweight integration techniques, using open technologies. Microsoft’s Windows Live is a nonstarter.

Within a year or two, companies with fewer than 100 employees will have no need to buy anything from Redmond other than perhaps Windows XP Home; within five years, the same will go for firms with under 1,000 employees.

The critical play for Google, in my opinion, is to acquire Intuit (current market cap of $12 billion). That would give Google a channel to a hosted accounting and inventory system and a majority of small businesses. In particular, the inventory functionality can tie directly into the local business search and mapping engine, Google Local. Also affordable to Google would be (current market cap of $5 billion), though that’s more of a stretch due to the personalities involved.

Web 2.0 consumer and SMB startups that do not have large communities will be valued at a build vs. buy (i.e. an acquisition that doesn’t cost much) and have a maximum upside of $50 million. After Google’s failed Enterprise Search product, the consumer search giant will leave the enterprise alone for quite a while as it target its guns on the SMB market.

The clearest short-term opportunity for startups to avoid the steamroller is in the enterprise space, which commands relatively high valuations (e.g., 25 times annual revenues for open source companies like JBoss).

Although some may be happy with $50 million paydays after a seed and A round, if you want a shot at making some real money, best to stay out of Google’s way.

Tuesday, October 31, 2006

Google's Web 2.0 - Taking the SMB Market from Microsoft

In my previous blog posting, I highlighted the fact that Google's advertising-based revenue model does not justify its market cap. Clearly, the folks at Google are wise to this and are looking for other growth opportunities, and have Microsoft right in the crosshairs. Microsoft offers archaic technology relative to web technologies and there is a lot of revenue ripe for the plucking.

Google has just done another build vs. buy acquisiion (ie, acquisition that did not cost that much) by buying JotSpot. JotSpot is a YAW2 (yet another Web 2.0) company with no viable business model but some interesting features around a structured Wiki that help people easily build intranet features such as holiday calendars and expense management.

Google Office currently offers mail, calendaring, word processing, spreadsheets, and search. It has now added an extensible wiki comparable to SharePoint. Missing are PowerPoint, Access, and Project equivalents but these will be pretty cheap for Google to pick up (DabbleDB, Coghead, Backbase, etc.).

Google Office is not going to target enterprises, at least initially. However, it is clear at this point that Google is going to own at least the "S" in SMB. Small businesses with <50 people no longer need to buy a thing from Microsoft except for Windows XP at an OEM price. What they give up in some individual features will be more than made up with the collaboration and data backup features of using hosted applications in addition to the cost savings of not buying licenses to bloated software and not maintaining software on desktops.

Monday, August 14, 2006

Web 2.0 is Dead, Long Live Web 2.0

According to TNS Media, the entire U.S. advertising market including everything from newspapers to network TV to online advertising is roughly $140B/year. What is interesting about this number is that if all advertising dollars shifted to the web overnight rather than gradually as it has been, the total market would be $140B. What is alarming about this number is that the valuations of advertising-based "Web 2.0" companies, supposedly based on their potential, far exceeds the valuation they would have if they won all the advertising dollars available! If Google right now had all of the current and future advertising advertising business in the U.S. at its current growth rate, its market cap would be the same.

A lot of people are saying you can't compare Web 2.0 to the dot com, or Web 1.0, since the companies are run by technologists, it is cheaper to start a company, etc. Yes, agreed, you can start a company today without having to buy the Sun/Oracle/Cisco troika of yesteryear, and you do not have to have a massive advertising budget. But what is remarkably similar is the complete lack of business model beyond acquisition by Yahoo/Google/etc.

Yes, the companies that started a few years ago have/will do pretty well. Everything else is a bit of yawner. Point in fact, how many "Web 2.0" sites do YOU use? Does your Mom use? I was on a Web 2.0 panel a couple of months ago at a VC conference for its institutional investors. Reid Hoffman, CEO of LinkedIn, was on the panel and gave a very amusing response when asked a good time to invest in a Web 2.0 company: 2003.

What "Web 2.0" has changed is people's expectations regarding user experience. Sites today need to be easy to navigate, able to tie together data from multiple sources, and support users generated content or tagging. So while in my opinion "Web 2.0" is dead, the effects of "Web 2.0" will live for quite a while as enterprises upgrade their infrastructures to match their customer's expectations. As the CIO of a bank recently told me, they have realized that their website is a bigger channel than their branches, yet they invest far more in their branches than their websites. This is something that is going to change, and Web 2.0 technologies will accelerate that shift.

Monday, June 26, 2006

LAMP + Java = Enterprise Web 2.0

A few months ago, I posted an open letter to Jonathan Schwartz, then President and COO of Sun, asking him to open source Java so that the JVM would attract the PHP, Python, and Perl open source communities and bring the Java and LAMP worlds together with a single VM.

Sun announced at JavaOne last month that they would open source Java. While no one is quite sure what the license will be, we at ActiveGrid have taken this to heart and have started contributing to the Jython project, mainly by updating Jython to Python 2.3 (from Python 2.1, where it had been languishing ever since Microsoft hired Jim Hugunin to make Python run better on the .net CLR).

With ActiveGrid Studio v2 and ActiveGrid Server v2, our LAMP-based technology will run within a Java server. All of our customers have found it incredibly easy to build new, Web 2.0 style applications that integrate with their enterprise backends, but have found it challening to get new server technologies approved within their IT deployment organizations.

We are excited that Java is joining the open source community and to contribute towards making Java a better home for dynamic languages.

Tuesday, June 13, 2006

Why Corporate Web Sites Stink

This post was also published in BusinessWeek.

There's a raft of new tools for improving the way sites interact with users — but many businesses have yet to learn how to use them

Why are so many new consumer Web sites so cool while business sites just sit in the Internet ether, flat and lifeless like old magazines stacked up in a dentist's waiting room?

It has a lot to do with some tools with names like LAMP, AJAX, and enterprise mash-ups. More on these in a moment. First, sit down while I explain why these new sites are hot, and your site is not.

In case you haven't noticed, consumer Web-site features and functionality have evolved dramatically over the last few years. Industry wags have labeled the new Web-development craze as "Web 2.0," and point to the likes of Google Maps, MySpace, and Zillow as examples of where the consumer Web experience is headed.

These new Web sites rock. They have rich user interfaces. You can move maps around with a mouse click. Menus and data just pop up right where you need them. And they somehow magically pull together information from all kinds of different sources on the fly, from current assessor's-office land valuations to the song list of a new band posted last night by your best friend.

Disconnect 2.0

Meanwhile, corporate Web sites and internal systems creak along. Blow off the dust and they look like relics from the mid-1990s. Customers wait for new pages to load when they click on links. When customers call corporate service centers, they are forced to wait while the person on the other end toggles between all sorts of different systems and reenters account information just to answer a simple question.

We have had this type of disconnect in the past. When "Web 1.0" happened in the late '90s, consumers could use the Internet to buy plane tickets, check the weather, and buy books. But when they went to work, if they wanted to change their health plan, they had to call HR. If they wanted to find the latest price of a part, they had to call their supplier and have a price sheet faxed to them. This disconnect between home and work life very quickly evaporated, and now virtually all information that people need at work is available online.

The current crop of Web applications offers the ability to integrate data from multiple sources in new and useful ways, including user-contributed data., for example, "mashes up" different data sources (including craigslist and Google Maps) and allows the apartment hunter to focus on desired neighborhoods, and easily peruse all the info they need regarding the available properties. allows users to post their own movies and blogs and all sorts of cool stuff about themselves.

The list goes on and on — Flickr, Friendster, BaseCamp. Sites that popped up overnight are pushing the envelope on how data is delivered, and on the quality of the user experience.

Instant Info

Yet most Global 2000 Web sites (both consumer-facing and internal systems) still use technology that was developed in the late '90s. Blue-chip companies with $200 million annual marketing budgets are being put to shame by Web upstarts with a fraction of the money. Consumer sites regularly integrate data from numerous systems, whereas in business, integrating multiple systems causes a lot of heartache, takes an eternity, and makes IT budgets skyrocket.

So I'm going to fill you in on a few secrets that the Global 2000 executive crowd seems to have missed during the recent wave of Web-development innovation.

First is AJAX, which stands for "asynchronous JavaScript in XML." It's a technology that allows the Web browser to get data without having to refresh the page. One example you might be familiar with is online DVD-rental store Netflix (NFLX). It used to be that as you went through their list of movies, you would have to click on each one to read the description, and toggle back and forth between the descriptions and the list. That's no longer the case. Now, with AJAX, you can just hover over a particular title and up comes a little pop-up window that shows you the details.

Cheaper, Better Cornerstone

Next, there's LAMP, which makes these sites run. In case you're one of the corporate blue hairs that's behind the times, Java is no longer the "cool" developer language for Web sites. The Yahoo!'s (YHOO) and MySpaces of the world are writing their Web sites with the LAMP open-source stack, which stands for the "Linux operating system, Apache web server, MySQL database, and PHP/Perl/Python scripting languages." The LAMP software stack is fast, free, easy to use, and contains best-of-breed components that have been hardened for years by thousands of engineers working for free.

And the new crop of Web sites aren't signing huge checks to IBM (IBM) and BEA Systems (BEAS) — they're managing farms of inexpensive commodity hardware running this open-source stack. No one is saying run your back-end, transaction-processing systems on open source, or any other new technology for that matter. Rather, the LAMP stack is a quick and flexible tool for tying together your existing systems with a rich, interactive user interface.

And finally, there are "Enterprise Mash-Ups" (aka "composite applications"). Just like consumer-facing Web sites that "mash up" multiple data sources, businesses can mash up business applications. For example, a business could integrate data from CRM (customer relationship management ) and ERP (enterprise resource planning) systems, as well as from FedEx, so that a customer-service rep can see all the necessary info in one place when dealing with a customer.

Communicating Apps

That means no more forcing customers to wait while the service rep scrolls through a bunch of screens drawing information from different systems and applications (that's the clicking sound you hear when you call your airline for a reservation). And what's really cool is that some of the cutting-edge software vendors are opening up their applications' programming interfaces, making them easier to customize and better able to communicate with other types of applications and data sources.

Salesforce (CRM) recently kicked off its AppExchange Developer Network, which is basically its effort to fuel the development of new ways to integrate services and customize Salesforce services. There's no question the software industry is moving away from applications that run in silos, all by themselves (for example, without any interoperability between sales and manufacturing), to applications that communicate with each other (even if delivered from different vendors), giving businesses the ability to bring the same degree of customization and functionality that we're seeing today with the consumer-facing Web 2.0 applications.

So not only are these new sites fast, fun, and more interesting to visitors, they're also cheaper to build, deploy, and maintain. Some get built literally in days for less than your business pays a system administrator in salary. Isn't it about time to take your big company Web site out of the Ice Age? Jump on board. The Web 2.0 train is leaving the station.

Wednesday, May 24, 2006

Big Company Open Source Behavior Patterns

This post was also published in InfoWorld.

Open source has definitely challend the business models of existing infrastructure software players. Following is an ontology of different types of big company reactions to open source, and an example of each type of behavior pattern.

Join the Party - IBM

"Join the Party" open source players contribute extensively to existing open source projects, even those that are competing with their proprietary products. IBM has regularly made major contributions to open source technologies that compete with their own products. Examples include IBM's support of Linux, which competes with their AIX UNIX operating system, and Geronimo and PHP, which compete with its WebSphere business. IBM is clearly the most sophisticated large player in the open source space - IBM follows its customers, and if the customers want open source, IBM is going to be the one to deliver it to them, and make money with services along the way.

Run like Hell - Oracle

"Run like Hell" open source players move out of rapidly commoditizing open source areas and into new markets. Oracle knows more than anyone that databases are quickly becoming a commodity. That's why they are moving into applications, snapping up Peoplesoft and Siebel to build marketshare in a growing, high margin business.

Screw with It - SCO, Oracle

"Screw with It" companies inherently dislike open source and do what they can to sabotage it. Some people like to kick puppies that can one day grow into big dogs. Which is why SCO sued IBM over Linux, and Oracle buys little companies that MySQL depends on. None of this will do much, but it makes the folks running the companies feel a little better about their respective declining UNIX and database futures.

We're Open, Too - Sun

"We're Open, Too" players open source their competing proprietary products long after a successful open source project has eclipsed their proprietary alternatives. Sun open sources their products in this way to much fanfare, but not much avail, examples include Solaris vs. Linux, NetBeans vs. Eclipse, SunONE Application Server vs. JBOSS, SPARC vs. x86, etc. This strategy is a stark contrast to the IBM "join the party" strategy, where IBM takes the best of their proprietary products and adds it to existing successful open source project like Linux.

Buy Your Way In - Novell

"Buy Your Way In" players acquire successful open source technologies and attempt to sell and service them through their existing channels. Novell has aggressively acquired open source technologies, including Ximian and SuSe. While their stock has been stagnant, it is not as stagnant as if they had still been selling Netware all along.

Open Source Trashcan - BEA, SAP

"Open Source Trashcan" companies are completely tone-deaf to open source software, regularly state that open source is insecure and not going anywhere, and basically have no open source strategy beyond orphaning failed products into open source, like BEA's Beehive and SAP Database.

Tuesday, April 25, 2006

Three Simple Things Sun Should Do to Win

This post was also published in InfoWorld.

The industry trends around Linux, x86 processors, and scripting languages are clear. Unfortunately, Sun is swimming against the tide on all three of these trends, in fear that it could cannibalize its existing business. Following is a simple, three step strategy for Sun to swim WITH the tide, while still maintaining its revenue.

#1 - Migrate Solaris to Linux

Operating systems are a commodity. The Unix wars are over, and they have been won by Linux. IBM is migrating AIX to Linux. Digital Unix is dead. SGI Irix is dead. HP-UX is dead. Sun should announce a long term strategy of moving to Linux and start migrating Solaris features like DTRace to Linux, just like IBM contributed SMP and journaling code to Linux. Sun is unique in that it has a full Unix System V license from AT&T, so it can sell an indemnified Linux.

Proof point: IBM has a long term strategy of migrating AIX to Linux, and it has not cannibalized AIX/Power sales.

#2 - Migrate SPARC to Opteron

Processors are a commodity. Sun should provide binary translation so that customers can easily move their applications from Solaris SPARC to Solaris x86. A decent binary translator will run SPARC machine code on an Opteron almost as fast as anything on the SPARC roadmap. And native Opteron code will scream compared to SPARCs. Either Sun can provide this migration to their Galaxy Opteron servers, or Dell and HP will continue their "Visine" customer programs where they migrate customer Solaris boxes to commodity Linux x86 boxes. And with its Fujitsu SPARC partnership, Sun can continue to extract revenue from SPARC on the very high end.

Proof point: IBM has a very strong, coherent Linux/x86 strategy and it has not cannibalized AIX/Power sales.

Proof point: Sun has successfully made such a transition from Motorola 68K to SPARC. Apple has has successfully made such a transition from Motorola 68K to Power to Intel.

#3 - Endorse LAMP and integrate it with Java

Java is great on the back-end, but LAMP is great on the web tier (as Google, Amazon, Yahoo!, Flickr, MySpace, Friendster, etc. have shown). Sun should endorse PHP and go one step forward and make sure the "P" languages run great on the JVM by open sourcing Java. Sun doesn't make much money on Java anyways.

Proof point: IBM and Oracle have strongly both endorsed PHP into their architectures and it has not cannibalized their Java middleware sales.

So there you have it. Three simple things Sun can do which would give it a coherent strategy relative to industry trends. Sun could then focus its energy on finding new revenue streams rather than protecting declining revenue streams.

Tuesday, March 28, 2006

An Open Letter to Jonathan Schwartz

This post was also published in InfoWorld.

Dear Jonathan,

Long time no see! The same way you enjoy writing open letters to IBM and others in your blog -- I wanted to write an open letter to you and Sun, and see if I can get a little clarity about your open source software strategy. As I am sure you have noticed, there has been quite a bit of momentum around LAMP in the industry, ranging from innovators like Google, Yahoo!, and Amazon, to the "Web 2.0" crowd like Friendster, MySpace, and Flickr. In addition, LAMP has increasing usage in the enterprise.

The "P" languages in LAMP -- PHP, Python, and Perl -- are all open source, and each provide their own virtual machine. It would be ideal if the Java JVM was open source so that open source projects like PHP could join up with the Java Virtual Machine. In turn, Java would be much more competitive with .Net, which supports numerous languages out of the box. Initiatives like adding dynamic language support in the JVM will not go far if Java can not meet existing languages on a common ground of open source.

What is unfortunate about Sun's open source strategy is that it is very unclear. Can you please answer the following question with a single coherent sentence that people can remember and repeat? If I ask five Sun employees this question, I get five different answers, so having simple answers to these questions will clearly help your own workforce as well as your customers and prospects!

"Why is it good to open source OpenSolaris and OpenOffice and bad to open source Java?"

We all know the standard Sun answer that Java will get fractured and that the JCP is great. However, OpenSolaris and OpenOffice have not been fractured since being open sourced. And most of the Java innovation nowadays comes from open source projects like Spring and Hibernate, not the JCP, which then has to recreate all of these open source projects. Some of the biggest supports of Java, including IBM and BEA and others in the JCP executive committee, have long asked for Java to be open sourced.

So what's up? Can you guys let go a bit and let us all share a single, open source virtual machine? It would be good for Java, good for LAMP, and good for customers. Combining two of the three leading development platforms would make them both more competitive against .Net.



Tuesday, March 14, 2006

Confounding: Sun vs. Scripting Languages

This post was also published in InfoWorld.

During my five year tenure at Sun, Graham Hamilton, the Java CTO, killed every initiative to run scripting languages on the Java Virtual Machine. These include 1999's "javab", which would have run Visual BASIC syntax on the JVM, and 2003's "Java 3", which would have supported optional typelessness for Java objects.

Clearly, the industry trend towards scripting languages like PHP and Ruby has finally had an effect, since Graham has recently sponsored JSR 292: Supporting Dynamically Typed Languages on the JavaTM Platform. The time lag here is similar to the time lag it took Graham to support SOAP in favor of RMI after a ton of resistance, which Sun paid for dearly when they had minimal impact in the development of the web service standards we use today.

It's great that Sun has finally decided to support scripting languages in some way in the next couple of years. However it is clear that this change was done in a very begrudging way, considering that Sun's James Gosling and Tim Bray have recently taken it upon themselves to start publicly slamming scripting languages!

James Gosling, March 12: There have been a number of language coming up lately," noted James Gosling today at Sun's World Wide Education & Research Conference in New York City when asked if Java was in any kind of danger from the newcomers. "PHP and Ruby are perfectly fine systems," he continued, "but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems.

Tim Bray, February 21: So here’s my problem, based on my limited experience with PHP (deploying a couple of free apps to do this and that, and debugging a site for a non-technical friend here and there): all the PHP code I’ve seen in that experience has been messy, unmaintainable crap. Spaghetti SQL wrapped in spaghetti PHP wrapped in spaghetti HTML, replicated in slightly-varying form in dozens of places. Everyone agrees on PHP’s upsides: it’s written for the web, it’s easy to deploy and get running, and it’s pretty fast. Those are important advantages. And I’m sure that it’s possible to write clean, comprehensible, maintainable, PHP; only apparently it’s real easy not to.

Yet in January, James Gosling states in a interview that "LAMP has certainly become quite viable."

What would be much more helpful is if Sun finally open sourced the Java Virtual Machine so that scripting languages could organically adopt a common JVM. With some leadership on Sun's part, Java and LAMP could merge onto a common virtual machine, and both would benefit greatly.

Wednesday, February 08, 2006

Integrate on the Front End with Lightweight Architecture

This post was also published in InfoWorld.

"Integration" is the third rail of enterprise IT. The mere mention of the word raises terrifying thoughts of huge budgets, endless meetings, and extremely complicated software.

But the days where each enterprise application is an island are coming to an end--even things as simple as an employee directory now need to integrate the HR systems of multiple divisions, accommodate cross-reporting and virtual teams, and integrate outsourced third parties. Like it or not, essentially every enterprise application today requires integration.

Naturally, enterprises have taken notice of the rise of "mash-up" applications on the Internet that integrate data from a variety of sources in new and useful ways. The trend was kicked off with sites like, which displays Craigslist housing listings on Google Maps, and has now reached quite a pinnacle with a conference called Mashup Camp where numerous people demonstrated useful mash-up applications.

Front-end integration has become the enterprise equivalent to the mash-up movement. It works by integrating Web services and databases at the web tier, using lightweight technologies like LAMP. With lightweight architecture, it is very simple to integrate data from a variety of internal and external sources and present the data with a rich AJAX user interface. One example of front-end integration is a call center application that integrates data from CRM and ERP systems as well as FedEx, so that customers are not waiting as call center reps are endlessly typing lookups into three different systems.

Remember, however, that back-end integration is still necessary to create non-user facing services that require multi-phase commits or long-lived processes. Multi-phase commits involve coordinating across multiple data stores to ensure that data is updated on all of them or none of them, most commonly for financial types of transactions where money is being moved. Long-lived processes involve coordinating multiple steps across many systems, such as handling exceptions in supply chain management where a shipment needs to be diverted automatically to a new plant. These types of projects are very expensive and cumbersome, and the most popular technology for back-end integration is of course J2EE servers and their Integration Server offshoots from vendors like IBM and BEA.

But as evidenced by the growing use of mash-ups on the Internet, very useful integration projects can be delivered quickly and economically on the front-end, using lightweight architecture.

Wednesday, February 01, 2006

Enterprise SOA Apps Take Off on Lightweight Architecture

This post was also published in InfoWorld.

At the last InfoWorld SOA Executive Forum, I asked the audience for a show of hands on the following question: "Who thinks it's easier to build an app that communicates to a web service than it is to write an app that communicates to a database?" Of this very sophisticated audience of senior IT architects and managers only two people raised their hands.

After having spent countless amounts of time and money implementing service-oriented architectures, enterprises are finding that it's still incredibly difficult to build new user-facing applications that tie services together. Why? Because enterprises are trying to build composite apps with traditional technologies such as J2EE.

It's hard enough using this approach to build a basic HTML application that talks to a single database. It is nearly impossible when you're using the same tools to create applications with rich interfaces that integrate with multiple services including RSS, SOAP, REST and database stored procedures. Java is great for doing certain kinds of applications, including things like ERP systems and transaction orchestration. It is not ideally suited to line-of-business IT types of developers trying to rapidly develop rich new applications that integrate services from an SOA infrastructure.

On the Internet, composite applications are commonly called "Web 2.0" or "mashup" applications, and feature rich AJAX user interfaces that integrate data from multiple data sources. If you look at Web 2.0 companies that are having success, such as Facebook, flickr, Friendster, and MySpace, they're all running a lightweight architecture, the open source LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack on large clusters of commodity machines.

When "Web 1.0" happened, consumers could use their computers to buy plane tickets, check the weather, and buy books. But when they went to work, if they wanted to change their health plan, they had to call HR. If they wanted to find the latest price of a part, they had to call their supplier and have a price sheet faxed to them. This disconnect between home and work life very quickly evaporated, and now virtually all information that people need at work is available online.

Large organizations need to quickly deliver composite apps, like CRM applications that integrate services. That way they can show, for example, that a customer's last five orders have been delayed before they make a sales call and get ambushed by an irate person on the other line. Before the web, the user facing applications within an enterprise were usually written with scripting languages like Visual Basic and Powersoft's PowerScript. By using the next generation of scripting languages PHP, Python, and Perl -- instead of Java, line of business IT can create applications much more rapidly that integrate diverse services, bringing Web 2.0 style applications to the enterprise.

Thursday, January 05, 2006

Doing Big Things with Lightweight Architecture

This post was also published in InfoWorld.

Quite a few folks are beginnning to realize that most big websites, including Yahoo!, Google and, run on lightweight architecture. To define lightweight architecture, it is helpful to define its opposite:

Heavyweight architecture means you are running complicated infrastructure software like J2EE with complicated API's on a small cluster of expensive SMP machines.

Lightweight architecture means you are running straightforward, open source software stacks with service oriented API's on large clusters of commodity machines.

There are four common ways of achieving a lightweight architecture. Three of them are open source solutions, and the fourth is Microsoft's attempt:

  1. LAMP - As many of you know LAMP is my favorite lightweight stack.
    LAMP runs a vast majority of the massively scalable websites out there, and is also the favorite deployment stack for most of the "Web 2.0" crowd, including Friendster, Facebook, MySpace, and Flickr. Both IBM and Oracle announced support for PHP in 2005, and there has been an upswing of enterprise adoption of the LAMP stack.

  2. Open Source Java - A lot of Java developers are moving away from full blown J2EE to lightweight Java, which includes Tomcat, Spring, and Hibernate, among other open source Java projects. There are some big websites running this architecture, including E*TRADE and EBay. Lightweight Java is built on open source projects, which are a very different set of Java APIs than J2EE and are not officially sanctioned by Sun or the JCP.

  3. Ruby on Rails - RoR has gotten quite a bit of traction with the intelligenzia but none yet from enterprise customers or massively scalable websites. They only just shipped version 1.0 of the Rails framework in December and some people are complaining because it is a code generator. However, it is a cool scripting lanuage and a nice framework and a nice addition to the lightweight trend.

  4. Skinny .Net - Companies like JetBlue and Charles Schwab are starting to make very selective use of .Net so that it is more lightweight. Windows was always meant to run on commodity machines, but it is challenging to get it to run on large clusters or grids of commodity machines. On the other hand, .Net offers the best tools in the business and great XML support.

Each of these four approaches differ with each other, but they are remarkably consistent when when contrasted with the old way to do things. Clearly lightweight architecture is building in momentum and helps you do some very big things that can't be accomplished with older technology!