Rationale for the ACE+TAO Commercial Support Model
As ACE+TAO have matured over the years, a number of companies around the world began to
support it commercially. This document describes why it's important
for open-source projects like ACE+TAO to be associated with companies
that provide commercial support.
Pros and Cons of University R&D Open-Source Projects
As we all know, ACE+TAO have emerged from a university-based R&D
environment. This has many great benefits for the open-source
software community since
All of these factors have contributed to the success of ACE+TAO, which
are both doing quite well and have gained a great deal of acceptance
in both adademia and industry.
- It is an inherent part of the mission of universities to promote
the open dissemination of knowledge (including software);
- There are a lot of very bright and motivated people who enjoy
working in a university environment;
- There are also a large number of people, i.e., the ACE+TAO
community at large, who enjoy helping university projects to
succeed (for which we are eternally grateful and without whose
help we could never have created such useful frameworks,
components, and patterns);
- The cost structure of a university is typically much lower than
that of a "normal" company.
There are also some key challenges that must be overcome, however, in
order to produce open-source software that will remain viable over the
long-term. One of the most important of these is understanding the
reward structure in a university. Historically, faculty at research
universities (such as Washington University and UC Irvine) have been
rewarded for the following activities:
You'll note that "creating great software framework, tool, and pattern
artifacts" has not historically been rewarded in most research
universities. However, one of the fundamentally important changes
that we've helped to shepherd over the past 5 years, is to change the
reward structure at many universities so that it also rewards having
an "impact", which can be interpreted by tenure committees to mean
"creating great software framework, tool, and pattern artifacts",
publishing papers in top journals and conferences about these
artifacts, and obtaining lots of external funding in order to keep the
whole R&D organization afloat. Here again, we've been very fortunate
that our many sponsors have had the vision and motivation to support
our R&D efforts on ACE+TAO. Likewise, I've been fortunate to find a
cadre of very bright and hard working students and staff who have been
motivated to bring my vision of great open-source middleware to
- Publishing papers in top journals and conferences
- Getting grants
"So what's the challenge then?", you may ask. Well, there are several
Thus, you cannot continue to be a "member in good standing" in this
community if you don't keep focusing on advanced *research* topics.
The penalties for not meeting these expectations are harsh, i.e.,
funding disappears, papers are rejected, grad students no longer
apply, and eventually the projects die out. The history of university
systems software R&D is littered with projects that ended up like
- The reward structure at a university values technical papers in top
journals and conferences infinitely more more than documentation.
No one ever got tenured, or promoted to a higher rank, or received
their Ph.D. or MS degree by writing a developer's manual ;-(.
- The research establishment (i.e., the people who review grants,
papers, write letters for promotion cases, and serve as external
reviewers on doctoral committees) get bored quickly if they
perceive researchers are "building products" rather than conducting
Of course, there have also been many success university-based
projects, as well, such as BSD UNIX, TCP/IP, X-windows, many parts of
the GNU project, and lots of Web-related technology (such as Mosaic
and the WWW itself). My goal is for ACE+TAO to follow this path,
rather than to die out over time due to an inability to sustain itself
solely within the context of the university reward system.
Why Open-Source Projects Need Commercial Support
Given the context above, I realized many years ago that for ACE+TAO to
succeed over the long-run, it was essential for there to be a gradual
transition away from university-based R&D to a commercially-viable
business model. If you examine successful university-based projects I
listed above, you'll note that all of them have evolved from a
university-based reward system to a more commercially-based reward
system, i.e., there are commercial companies that provide a wide range
of services and support for these products. I believe this is all
healthy and good since the success of these products provides
credibility for other projects, such as ACE+TAO, emanating from a
university-based environment where open-source efforts thrive.
It is also clear to me that there is not just one open-source
community, but several, each with their own needs and cost drivers.
The difference, as I see it, boils down to "means" vs. "ends", i.e.,
some members of our community view open-source as a means to an end
(i.e., as a facilitator to a business model), whereas others view it
as an end in itself (i.e., as a way of fundamentally improving
software development). Neither view is "right" or "wrong", and in
fact, I believe that both views must co-exist in order for open-source
to florish. Below, I tease out some of the issues with each group of
- Open-Source as An End In Itself -- For some people,
e.g., university-based researchers, grad students, and the FSF,
open-source is an end in itself. For instance, I personally believe
that an open-source development model is generally superior to
traditional development models since it helps to leverage expertise in
the user community and allows users and developers to participate
together to improve software quality. One of the key strengths of
this model is that it scales well to large user communities, where
application developers and end-users can assist with much of the
quality assurance, documentation, and support.
As a general rule, software development does not scale up as the
number of developers increases. The main problems stem from the
increased human communication and coordination costs associated with
large projects. Thus, a team of 10 good developers can typically
produce much better quality software systems with much less effort and
expense than a team of 1,000 developers.
In contrast, however, software debugging does scale up as the number
of developers helping to debug the software increases. The main
reason for this, of course, is that all other things being equal,
having more people test the code will identify the "error-legs" much
more quickly than having just a few people testing code. Thus, a team
of 1000 testers will typically find many more bugs than a team of 10
Moreover, open-source development efforts tend to have very short
feedback loops between the point when a bug is discovered and the bug
is fixed. This increases the incentive for the user community to help
with the debuggging process since they are "rewarded" by rapid
feedback and fixes once bugs are identified. In addition, because the
source code is open, when developers in the user community find bugs,
they can often help fix them, which further amortizes the overall
debugging effort and improves software quality rapidly.
Of course, the big kicker in this beatific vision is that sufficient
funding and personal time investment must exist in order for the "end
in itself" model to persist. This leads to the next perspective.
- Open-Source as a means to an end -- In this model,
which forms the basis of various Linux vendors and the ACE+TAO commercial
providers, open-source is more of a business model than a
technology model, i.e., it's a way of being able to reduce engineering
costs while still providing a high quality product to consumers.
open-source software is typically sold at very little cost since there
are generally no developer or run-time licensing fees. Therefore,
companies that are providing open-source business models are based on
making money using other means, such as support, consulting, training,
and general "shrink wrapping" of open source products to make them
"look and feel" just like conventional commercial products that *do*
charge developer and/or run-time licenses. (BTW, for more insights on
this perspective, I recommend that you read Michael Tiemann's article
on "Future of Cygnus Solutions: An Entrepreneur's Account" in the book
"OpenSources: Voices from the Open-Source Revolution").
Now, here's where the tension comes in. From a pure "open-source is
an end in itself" perspective, charging money for products and
services associated with open-source seems almost heretical. However,
from the "open-source as a means to an end" perspective, it's just
about the only way to stay in business. Moreover, if we as a
community don't help to "grow" companies that are supporting open
source, the long-term impact will be that software like ACE+TAO that
originates in an university-based R&D environment will not be
sustainable in the commercial marketplace.
Reconciling Conflicting Forces
So, what can we do to reconcile the different needs of different
segments of the open-source community? Here are several suggestions:
My ultimate goal is to see ACE+TAO firmly established in the pantheon
of wildly successful open-source software projects. Therefore, I
think it's essential that we collectively devise a technology transfer
process that ensures ACE+TAO succeed not just for today, but for many
years to come.
- First and foremost, we need to continue to
improve the online documentation for ACE+TAO. As I pointed out
earlier, however, this is not something that fits well within the
reward structure of university-based R&D. However, it's definitely
something that can be provided by members of the ACE+TAO user
community. Therefore, I encourage people who feel strongly about
improving the quality of ACE+TAO documentation to work together.
The Linux community has done this very successfully and there's no
reason we can't do it, as well.
For example, it would be nice to have better documentation for the
various ORB services. As you can see from looking at the existing
TAO web site and following the on-line mailing lists and newsgroup,
we endeavor to integrate all useful contributions of documentation
into our software tree very quickly.
- I also encourage ACE+TAO users to work with the commercial
providers to help them
better serve the needs of various constituents in the ACE+TAO open
source community. They are still in the process of "tuning" their
open-source business models, and feedback is important to help them
understand the requirements and constraints of their market. I'm
very appreciative of the fact that the ACE+TAO commercial providers
have committed themselves to providing support and services.
- I encourage people to take a longer-term view on this than simply
"ACE+TAO source code are freely available, therefore, everything else
should be essentially free, as well." Although this is an
intellectually and emotionally appealing position, it's important to
understand that it's not economically feasible in the long-run. As
with most things in life, there are economic tradeoffs.
Thus, for open-source to work in the long-run, developers of
open-source software must be able to "scale-up" their effort in a
manner that does not require large amounts of capital to fund
activities that are usually associated with software vendors in
non-open-source models. In particular, if you go out and spend $5k to
$50k to license non-open-source ORBs, you'll expect that the ORB
vendor will provide you with an "out-of-the-box" solution, plus plenty
of "hand-holding" in return for your monetary investment (sometimes
this happens in practice, sometimes it doesn't... ;-)).
With open-source, however, there not necessarily any direct investment
by many users back to the developers. Therefore, it's simply not
feasible for developers of open-source/freely-available ORBs to
provide the same degree of "hand-holding" as is (or should be) the
case for non-open-source/licensed products, i.e., part of the
engineering and maintenance costs must be passed along to the
end-users in order for the model to work.
A good analogy here is "full-service stock brokers" vs. "discount
stock brokers." You simply don't expect that a discount broker is
going to give you the same "personalized" attention that a
full-service broker will. It may be worthwhile to use the discount
broker, however, if you're experienced enough, or willing to put in
sufficient time, to research the market and make the trades yourself.
Having said all this, of course, I believe that the ACE+TAO do provide
a *very* high-level of support for the software we develop. However,
if people start expecting us to provide them individualized
"hand-holding" for free, that's simply not going to work because we
won't have sufficient time and personnel resources to get anything
else done. That's why it's so important that the ACE+TAO user
community start migrating towards the commercial
providers for many aspects of hand-holding and individualized
If you have any questions or comments please feel free to respond to
either me or the mailing lists.
Back to Douglas
C. Schmidt's home page.
Last modified 18:06:18 CST 25 January 2019