Posted:September 8, 2006

John Newton (co-founder formerly of Documentum, now of Alfresco) puts a telling marker on the table in his recent post on the Commoditization of ECM. Though noting the term "enterprise content management" did not even exist prior to 1998, he goes on to observe that expansion of the definition of what was appropriate in ECM and the consolidation of the leading players occurred rapidly. He concludes that this process has commoditized the market, with competitive differentiation now based on market size rather than functionality. The platforms from the leading IBM, Microsoft and EMC-Documentum vendors all can manage documents, Web content, images, forms and records via basic library services, metadata management, search and retrieval, workflow, portal integration, and development kits.

If such consolidation and standardization of functionality were Newton’s only point one could say, “ho, hum,” such has been true in all major enterprise software markets.

But, in my reading, he goes on to make two more important and fundamental points, both of which existing enterprise software vendors ignore at their peril.

Poor Foundations and Poor Performance

Newton notes that ECM applications are never bought based on the nature of their repositories, but an inefficient repository can result in the rejection of the system. He also acknowledges that ECM installations are costly to set up and maintain, difficult to use, poorly performing and lack essential automation (such as classification). (Kind of sounds like most enterprise software initiatives, doesn’t it?)

Indeed, I have repeatedly documented these gaps for virtually all large-scale document-centric or federated applications. The root cause — besides rampant poor interface designs — has been in my opinion poorly suited data management foundations. Relational or IR-based systems both perform poorly for different reasons in managing semi-structured data. This problem will not be solved by open source per se (see below), though there are some interesting options emerging from open source that may point the way to new alternatives, as well as incipient designs from BrightPlanet and others.

The Proprietary Killers of Open Standards and Open Source

Service-oriented architectures (SOA), the various Web services standards (WS**), the certain JSRs (170 and 283 in documents, but also 168 and others), plus all of the various XML and semantic derivatives are moving rapidly with the very real prospect of “pluggability” and the substitution of various packages, components and applications across the entire enterprise stack.

In quoting Newton’s case at Alfresco, by aggregating these existing open source components they were able to get their ECM product ready in less than one year:

  • Spring – A framework that provides the wiring of the repository and the tools to extend capabilities without rebuilding the repository (Aspect-Oriented Programming)
  • Hibernate – An object-relational mapping tool that stores content metadata in database and handles all the idiosyncrasies of each SQL dialect
  • Lucene – An internet-scale full-text and general purpose information retrieval engine that supports federated search, taxonomic, XML and full-text search
  • EHCache – Distributed intelligent caching of content and metadata in a loosely coupled environment
  • jBPM – A full featured enterprise production workflow and business process engine that includes BPEL4WS support
  • Chiba – A complete Xforms interface that can be used for the configuration and management of the repository
  • Open Office – Provides a server-based and Linux-compatible transformation of MS Office based content
  • ImageMagic – Supports transformation and watermarking of images.

Moreover, the combination of these components led to an inherent architecture including pluggable modules, rules and templating engines, workflow and business process management, security, and other enterprise-level capabilities. In prior times, I estimate no proprietary-based vendor could have accomplished this for ten times or more the effort.

Similar Trends and Challenges in the Entire Enterprise Space

Newton is obviously well placed to comment on these trends within ECM. But similar trends can be seen in every major enterprise software space. For virtually every component one can imagine, there is a very capable open source offering. Many of the newer open source ventures are indeed centered around aggregating and integrating various open source components followed by either dual-source licensing or support services as the basis of their business models. At its most extreme, this trend has expanded to the whole process of enterprise application integration (EAI) itself through offerings such as LogicBlaze FUSE with its SOA-oriented standards and open source components. Initiatives such as SCA (service component architecture) will continue to fuel this trend.

So, enterprise software vendors, listen to your wake up call. It is as if gold dubloons, pearls and jewels are laying all of the floor. If you and your developers don’t take the time to bend over and pick them up, someone else will. As Joel Mokyr has compellingly researched, the innovation of systems or how to integrate pieces can be every bit as important as the ‘Aha!’ discovery. Open source is now giving a whole new breed of bakers new ingredients for baking the cake.

Posted:September 6, 2006
NOTE: I have posted a major cleanup and update of what is now called the Advanced TinyMCE Editor, tested beginning with WP v. 2.2. Obtain the plug-in download and documentation HERE. The update announcement is now the best place to post new online comments and discussion. Let me know what you think! MKB

Author’s Note: There is a zipped plugin, code and documentation that supports the information in this post, which will allow you to extend the functionality of your TinyMCE rich text editor in WordPress; for immediate instructions see the end of the post below.
Download Extended TinyMCE code file Click here to download the zipped file (101 KB)

My most recent post was about the smooth upgrade to WordPress v. 2.0.4 for my blog software and noted my popular Comprehensive Guide to a Professional Blog Site recounting my own experiences setting up, configuring and maintaining my own blog site. A key aspect of that earlier Guide dealt with (what I perceived to be) an oversight in older versions of WordPress that lacked a bundled WYSIWYG editor. For my own site and installation, I had chosen the Xinha editor, and had devoted a number of entries in the Guide to its configuration and use.

However, as of WordPress version 2x, the developers have now chosen to bundle the proven Javascript rich text editor, TinyMCE, as part of the standard distribution package. Since I had come to rue some of the aspects of Xinha in my earlier implementation (namely, bad HTML for carriage returns and VERY slow times when publishing a post), I decided to give TinyMCE a go as my new replacement editor.

(Actually, this was not such a major shift since we had adopted a sibling TinyMCE application, the Joomla Content Editor (JCE), for the Joomla-based BrightPlanet corporate Web site.)

As implemented, the TinyMCE editor in WordPress is configured more akin to the prior QuickTags feature set, with the few available editing functions being bold, underline, bullets, text alignment, and so forth. Here is a screen shot from my WordPress administration center with TinyMCE as delivered with WordPress v. 2.0.4:

The only problem is that I have become used to editing support for items such as tables, image manipulation, special characters, font types, and so forth. While I (generally) edit and clean up the HTML before final posting, I very much enjoy the productivity benefits of a more full-featured WYSIWYG editor. So, the rhetorical question to myself was: If I’m going to use TinyMCE, how can I extend its functionality?

The Investigations Begin

Having been familiar with other TinyMCE instantiations, I began my investigations with the (as it turns out naive) assumption that upgrading to a full featured TinyMCE would be a snap. Boy, was I wrong.

I first began with the TinyMCE Web site itself checking out the standard distribution package. Like many open source sites, I found the online documentation for TinyMCE to be fragmented, incomplete and hard to navigate. I looked under the ‘Plugins’ tab and found it was documentation for developers in creating a new plugin. My first lead came from the online manual (which can also be downladed for local browsing) and its reference to installation options, specifically these options at the bottom of that page:

Bingo! Clearly, TinyMCE had the advanced features I was seeking and they were packaged as part of the direct TinyMCE distribution to boot! Now I assumed my only needed step was to find how to “turn on” these features in my WordPress installation.

What Was Learned
This line of thinking led me to an unfortunate waste of time in Web search and poking through the forums at both the TinyMCE and WordPress sites. It became clear that the TinyMCE integration in WordPress was both highly tailored and limited to just the simple functionality (Example 00 above). I saw references by others to the “wisdom” of the WordPress developers to making this choice and therefore reducing the overall size of the WordPress download, but I don’t see it that way. It seems rather arbitrary and taking available choices from the user by unilaterally “whittling down” a more fully featured option from Moxiecode. Oh, well.

One dead end among many I pursued was instructions from the TinyMCE staff on integrating Moxiecode’s commercial plugins. That reference — — got me way too into specific WordPress code that I was also unable to modify for my specific plugin purposes (though perhaps more capable programmers could have seen a clear path). I also found many requests but little guidance from the WordPress forums.

The first breakthough occurred on the TinyMCE Wishlist postings on the WordPress forum, which led me to the Advanced WYSIWYG plugin by Assaf Arkin of Labnotes. Part of the problem in finding this in the first place was that the actual plugin file name was misspelled as “advacned-wysiwyg”. So, I followed the instructions for the plugin and, voila, it didn’t work!

Grr! More investigation indicated that the likely problem resided in new version 2x plugins for TinyMCE as NOT working with the Advanced WYSIWYG plugin. As Paul Finch reported on the Labnotes site, reverting back to earlier advanced plugins for TinyMCE in versions 1.45 and earlier, which could be found on the Sourceforge download site, solved the problem.

As indeed it does, as this updated editor on my blog administration panel shows:

These “standard” advanced plugins for TinyMCE provide possible functionality beyond the simple installation (marked with an asterisk [*]) (also, ones I could not get to work — but I did not test all of them! — are shown with double asterisks [**]) for:

Default buttons available in the advanced theme:

* bold
* underline
* strikethrough
* justifyleft
* justifycenter
* justifyright
* justifyfull
* bullist
* numlist
* indent
* undo
* redo
* link
* unlink
* image
* code

Plugins with the button name same as plugin name:


Plugins with custom buttons:

advlink (will override the “link” button)

advimage (will override the “image” button)


  • pastetext
  • pasteword
  • selectall

** searchreplace

  • search
  • replace


  • insertdate
  • inserttime


  • tablecontrols
  • table
  • row_props
  • cell_props
  • delete_col
  • delete_row
  • col_after
  • col_before
  • row_after
  • row_before
  • row_after
  • row_before
  • split_cells
  • merge_cells


  • ltr
  • rtl


  • moveforward
  • movebackward
  • absolute
  • insertlayer

** style

  • styleprops

Early Use Observations

With one major exception — and it is MAJOR! — I have generally been pleased with the new TinyMCE editor in its full functionality version. I have been working with it for nearly a week and have completed four or five published posts. The writing of posts is now much quicker. There are no longer problems with line breaks and paragraph formatting. For most functionality, the editor just feels more “solid” than my previous Xinha editor. For all of that, I am very thankful.

The major issue I have encountered is with long posts (such as this one), particularly when I am toggling between the code (HTML) view and WYSIWYG view. Without warning, I will suddenly lose entire portions of text at the bottom of the post. This appears to be either strictly a TinyMCE issue or perhaps an issue related to my Firefox browser that others have noted on the WordPress forum.

Best practices, as I have reported on elsewhere and as part of my Guide, generally suggest drafting long posts external to WordPress anyway, though the loss of any work is distressing. I will monitor this “long posting” issue carefully, and until I see a resolution I will likely save to the clipboard or take other steps to prevent future losses.

Specific Upgrade Instructions

So, because I have generally been pleased with these extensions, I thought I would package and write them up for others to use, saving you the fits and starts I went through. The download at the top of this post includes the instructions and all files noted below. The instructions are included as the readme.txt file in the package. I also chose to make some minor updates to plugin operation (better sizing of popups, for example) and also corrected the spelling error in the file name and allowed for multi-line bullets for the extended TinyMCE in the Advanced WYSIWYW plugin. All of these changes, plus the vetted TinyMCE ver. 1.45 advanced plugins, are included in the distribution. Please note this information is being provided “as is”; you can also only do this if you have direct file access to your WordPress installation.

1. Download the enclosed zip file and unzip it to a clean subdirectory; these instructions are repeated in the enclosed readme.txt file.

2. If you don’t like the button order shown in the image above, you may remove buttons or change ordering or add or remove separator bars by editing the advanced-wysiwyg.php file:

< ?php
Plugin Name: Advanced WYSIWYG Editor
Plugin URI:
Description: Adds more styling options to the WYSIWYG post editor, updated for multi-line buttons.
Version: 0.3
Author: Assaf Arkin
Author URI:
License: Creative Commons Attribution-ShareAlike
Tags: wordpress tinymce

if (isset($wp_version)) {
add_filter(“mce_plugins”, “extended_editor_mce_plugins”, 0);
add_filter(“mce_buttons”, “extended_editor_mce_buttons”, 0);
add_filter(“mce_buttons_2″, “extended_editor_mce_buttons_2″, 0);
add_filter(“mce_buttons_3″, “extended_editor_mce_buttons_3″, 0);

function extended_editor_mce_plugins($plugins) {
array_push($plugins, “table”, “fullscreen”, “searchreplace”, “advhr”, “advimage”);
return $plugins;

function extended_editor_mce_buttons($buttons) {
return array(
“undo”, “redo”, “separator”, “cut”, “copy”, “paste”, “separator”, “bold”, “italic”, “underline”, “strikethrough”, “separator”,
“bullist”, “numlist”, “separator”, “indent”, “outdent”, “separator”,
“justifyleft”, “justifycenter”, “justifyright”, “justifyfull”, “separator”,
“sub”, “sup”, “charmap”, “hr”, “advhr”,”separator”, “link”, “unlink”, “anchor”, “separator”,
“code”, “cleanup”, “separator”, “search”, “replace”, “separator”, “wphelp”);

function extended_editor_mce_buttons_2($buttons) {
// the second toolbar line
return array(
“formatselect”, “fontselect”, “fontsizeselect”, “styleselect”, “separator”, “forecolor”, “backcolor”, “separator”,”removeformat”);

function extended_editor_mce_buttons_3($buttons) {
// These are the buttons for third toolbar line
return array(
“image”, “separator”, “tablecontrols”, “separator”, “fullscreen”, “wordpress”);

3. Copy the resulting advanced-wysiwyg.php file into your standard WordPress plugins directory (wp-content\plugins)

4. Copy all files from the extracted plugins subdirectory to the TinyMCE plugins subdirectory in your WordPress directory (wp-includes\js\tinymce\plugins)

5. Under ‘Plugins’ in your WordPress administrative center, ‘activate’ the Advanced WYSIWYG Editor plugin

6. Now, when you write or manage posts or pages you will have the extended TinyMCE functionality available

7. Enjoy!

Posted by AI3's author, Mike Bergman Posted on September 6, 2006 at 2:38 pm in Blogs and Blogging, Open Source, Site-related | Comments (78)
The URI link reference to this post is:
The URI to trackback this post is:
Posted:September 5, 2006

Though version 2 was first released to the public on December 31, 2005, I waited until the bugs-worked-out 2.0.4 version was released on July 29 to actually upgrade my blog’s WordPress software (and, then, late at that!). I thank BrightPlanet‘s most able sys admin, Kevin Klawonn, for doing the actual upgrade. As usual, Kevin, much thanks!

As early readers of this blog know, I have been recounting my blogging and software experiences in a series of posts, now distributed as the popular Comprehensive Guide to a Professional Blog Site. It would thus only be fair to congratulate the WordPress folks for a very smooth upgrade installation. Until last week, I had been using version 1.5.2. Kevin threw the switch on the WordPress 2.0.4 ( upgrade last Friday according to the very able instructions in the Detailed Instructions or How to Upgrade in Five Steps.

Like desktop productivity software such as MS Office, I reluctantly and rarely upgrade, and then only to stable versions that have been proven for some time in the marketplace. A six-month time between a major upgrade release such as WordPress 2x and its more stable follow-on is not atypical.

So far, I generally like the new version. (I discuss later the new rich text editor, TinyMCE, and some quirks about how WordPress handled its integration.) I like the posting preview feature and the (apparently better, I haven’t yet pulled the trigger! Yikes, make sure backups exist!) permalinks options. I also like the fact this new version is much cleaner in producing valid XHTML v. 1.0 code.

It truly is amazing the quality of open source software now available, isn’t it? Thanks, WordPress!

Posted by AI3's author, Mike Bergman Posted on September 5, 2006 at 7:50 pm in Open Source, Site-related | Comments (1)
The URI link reference to this post is:
The URI to trackback this post is:
Posted:June 2, 2006


NOTE:  This is an update of an 2005 post.

There has been a massive — but little noticed — shift in enterprise software expenditures and software company revenues in the past decade.  A "typical" enterprise software vendor could expect to obtain 70% or more of its total revenues from software license fees a decade ago.  Today, that percentage is about 35% with statistically significant trends heading toward below 10% within the decade.  These trends have signficant implications on the emerging business models necessary for software companies to be successful.

The Trends and Data

The figure below provides software license revenues as a percent of total revenues for about 120 different software companies over the past decade.  No matter the sample, there has been a steady — and signficantly strong — trend to declining license revenues.

Software Licensing Trends

The three sources for this figure are:

  • Search – my own values for Autonomy and Convera from SEC filings
  • Top 100 – these are listings compiled by Culpeper and Associates[2]
  • MIT – these values are from the MIT Sloan School of Management, using eight leading companies as referenced by Michael Cusumano [3]

The trend lines indicate continued percentage declines in the importance of software licensing. Based on these teyear trends, by 2008 conventional software licenses will account for less than 10% of total revenues for all software companies, and less than 20% for leading enterprise search vendors (Verity [now part of], Autonomy, Convera).  These trends have very high R2 values.  Seven-fold or greater drops from a position of dominance suggests a sea change is taking place in the revenue mix for software companies and the expenditure mix for enterprises.

These trends can vary significantly by software company, as the comparison table I constructed from recent SEC filings below shows:


License Revenue %
Red Hat 0.0% 0.0%
i2 15.0%
Compuware 23.5%
Peoplesoft 23.7%
IBM 24.6%
SAP 31.4%
Oracle 34.9%
Siebel 36.4%
Business Objects 51.1%
Microsoft 76.5%
Adobe 90.0%

These values are derived from the most recent SEC filings (10Ks or 10Qs).  This table shows that companies that can truly "package" shrink-wrapped software can maintain the highest percentages of software license revenues; vendors that rely on the subscription model have the lowest percentage, often going to zero.  Large, traditional software vendors such as IBM or Oracle are below industry averages for the percent of software license percentages.  This trend is remarkable given that these larger vendors obtained 70-80% or more of their total software revenues from license fees a mere decade ago.

The abiding trend appears to be the shift from software to services, but the picture is considerably more complicated than that.

Other Software Licensing Studies

At least two comprehensive studies have been issued in the past year or so regarding software licensing trends.  The first, from IDC that involved Delphi interviews of 100 large customers and 100 major software vendors, was conducted with the support of 11 major vendors and the Software and Information Industry Association (SIIA). [1]  This study sees subscription licenses having increasing importance to vendor revenues.

This study shows that companies today budget 20% for maintenance contracts, 32% for new licenses. IDC projects that maintenance expenditures are likely to increase, license to decline. With an increased reliance on a subscription model, maintenance in fact increases as a source of revenue to the vendor. IDC projects 34% of revenue to come from subscriptions by 2008. Though the worldwide software market was about $200 billion in 2003, growth will continue, with changing fractions of the sources of revenue. Besides subscription models, maintenance fees and consulting and service fees are projected to increase while standard license fees decrease.  Vendor drivers for these trends include the long lead times of traditional enterprise software license sales and the need for more predictable revenue streams.  Customer drivers for these trends are demands for lower overall costs, a better alignment of value, and the requirement for smaller upfront costs.

The second study from Macrovision used a questionnaire methodology directed to a larger group of software executives and a similar number of customers. [4]  This study, too, was conducted in association with SIIA.  This later study, completed in late 2004, also sees subscription licenses increasing. Vendors reported a trend to subscription licensing to become 67% of license revenues, though customers exhibited more reluctance to embrace the subscription model.

Both studies showed maintenance fees to average 20-22% of initial software license fees.

What Changing Business Models are Emerging?

While the trend moving away from standard software licenses is clear, what that means in terms of winning next-generation business models is less clear. The software industry thus appears to be in flux with a period of experimentation with alternative business models prevalent.  It may be a year or three before which of these alternatives begins to emerge as the clear business model winner.

So, what are these alternatives:

  • Services – many large traditional vendors, including Novell, IBM, HP and Oracle, have seen massive percentage shifts from software licenses to consulting and services revenues.  This trend is linked both with related open source trends and the increasing need to engineer and deploy interoperable systems from multiple software vendors
  • Open Source – after steady trends to Linux in the late 1990′s and dominance of open source for Internet servers, most recently there has been an increase in open source applications and interoperable systems.  The general importance of open source trends is documented in many of the current and pending AI3 blog posts
  • Outsourcing – the outsourcing of many traditional IT and backoffice functions is a well-documented phenomenon, and
  • Subscription – though the earlier buzz for application service providers (ASP) has waned in the past two years, a similar model has emerged under the subscription or Web services monikers.  As noted above, there may be a doubling in importance of this revenue model in relation to traditional software licensing within this decade but customer enthusiasm is questionable.

The heyday for complete, turnkey enterprise software systems and the highwater mark for enterprise software budgets appear to have passed. Both customers and vendors are trying to bring more rationality and predictability into the IT software cost equation. The specific mix and nature of these changing models is still unclear.

Some Venture Implications

The major casualty from these trends is the idea of the enterprise "killer app" and its ability to become a virtual money printing press. The dominance of this myth can cause some significant mis-steps and misunderstandings in putting together a successful venture:

  • Waiting to get packaging and configuration right delays time to market and incurs higher development costs in the absence of supporting revenues. There is a need to get customer exposure and input earlier with less developed solutions.  Shattering the myth of the packaged software printing press for money is important to change attitudes and immediate priorities
  • VC support may be deferable with lower needs for upfront development dollars, and, in any case, venture support should shift from packaged "products" to interoperable and modular technologies 
  • As Eric von Hippel points out in his recent book, Democratizing Innovation [5], early and constant involvement of the customers and the market are keys to innovation and suggest business models that are more experimental and open source, and
  • It appears the days — at least for the foreseeable future — of the "killer app" are over in the enteprise setting. Companies and enterprises are demanding more accountability and justification for expenditures; software vendors are realizing that at the enterprise level "cookie cutter" approaches work relatively infrequently.

It is seductive to think that with the right packaging, the right interface, and the right combination of features and functionality that it then becomes possible to turn the crank on the money printing press.  After development and packaging are complete, after all, the cost of the next incremental unit for shipment is close to nil. But enteprises rarely can adopt commodity approaches to unique situations and problems.  Customization is the rule and the environment is never the same.

Understanding these secular trends is important for software entrepreneurs and the angels and VCs that may back them.  The common theme returns: choice of business model in response to market conditions is likely more important than technology or innovation.

A.M. Konary, S. Graham, and L.A. Seymour, The Future of Software Licensing: Software Licensing Under Siege, IDC White
Paper, International Data Corporation, March 2004, 21 pp.  See (requires registration).

Culpepper & Associates, "Software Revenues Continue to Shift from Licenses to Services," September 10, 2002. See

M. Cusumano, "Business Models that Last: Balancing Products and Services in Software and Other Industries," MIT Sloan School of Management Working  Paper 197, December 2003, 22 pp. See

[4] Macrovision Corporation, Key Trends in Software Pricing and Licensing, White Paper for various clients, October 2004, 12 pp.  See

[5] E. von Hippel, Democratizing Innovation, MIT Press, Cambridge, MA, 2005, 220 pp.  Electronic version available via Creative Commons license, see

Posted:February 1, 2006

IBM has announced it has completed the first step of making the Unstructured Information Management Architecture (UIMA) available to the open source community by publishing the UIMA source code to UIMA is an open software framework to aid the creation, development and deployment of technologies for unstructured content. IBM first unveiled UIMA in December of 2004. The source code for the IBM reference implementation of UIMA is currently available and can be downloaded from . In addition, the IBM UIMA SDK, with additional facilities and components, can be downloaded for free from .

UIMA has received support from the Defense Advanced Research Projects Agency (DARPA) and is currently in use as part of DARPA’s new human language technology research and development program called GALE (Global Autonomous Language Exploitation). UIMA is also embedded in various IBM products for processing unstructured information.