Forum .LRN Q&A: Corporate LMS

Collapse
Posted by Jack Ramsey on

My company has been selling an LMS written on the ACS 3.x for 2 years. Recently, I posted a question to the general OpenACS post regarding next steps that my company was considering.

Afer many internal conversations about our past experience, I believe that we have determined that TCL has less to do with customer apprehension than AOLserver. Rewriting the app in JAVA has thankfully been removed from the discussion.

Listen, I know that AOLserver is an incredible tool. I am not debating that. My problem is that I have heard that the people at aD, which were arguably some of the best minds in the business, were not able to effectively sell ACS work because it required IT departments to support AOLServer with which they were not familiar.

Despite the fact the rumor about aD may not be true, we experience this closed mindedness in many IT departments, which makes selling our products to larger companies very difficult.

My questions at this point are regarding portability. Most companies with which we work run Apache on at least some of their servers.

  1. Sorry for the least informed question first, but...Do I understand correctly that mod_nsd acts as the application layer on top of Apache replacing the AOLserver TCL API?
  2. Is the mod_aolserver/mod_nsd stable and proven?
  3. Will a ported solution running on mod_nsd run on Apache for any OS?
  4. Is the mod_nsd ported or being ported to Apache 2.x?
  5. If you do not believe that mod_nsd is an effective solution, what would you suggest as a solution to the portability issue?
Thank you,
Jack
Collapse
2: Response to Corporate LMS (response to 1)
Posted by Don Baccus on
mod_nsd vs. Apache 2.x is the big issue IMO.  AFAIK no one has migrated mod_aolserver to Apache 2.x.
Collapse
3: Response to Corporate LMS (response to 1)
Posted by Michael Feldstein on
I'll answer your direct questions first and then get to the underlying issue afterward. The short answer is that mod_AOLServer, which only runs on Apache 1.3, is not a suitable solution for a production environment. It has major performance problems. There has been a lot of talk about trying to make a version for Apache 2, and I know of at least one person who was talking privately about doing this on his own, but the basic problem is one of resources. We need good C hackers to do this, and it's probably too big to get done unfunded.

But the reason you've asked about portability seems to be motivated a marketing concern, and while enabling OpenACS to run on Apache might solve some of the concerns (although you still have to sell them on Tcl), it's also possible that we can do a better job of selling AOLServer. In particular, now that we have polished vertical apps like dotLRN, it's possible to package up the whole thing and sell it as a unified whole.

I don't think anybody has easy answers, but it's definitely a problem that folks in the community are actively considering.

Collapse
4: Response to Corporate LMS (response to 1)
Posted by Michael Feldstein on
Another thought here more specific to the application you have in mind is that, in my experience, more and more corporate purchasers of LMS's want ASP arrangements anyway. If you're running it, they really don't care what it's written in so long as it just works.
Collapse
5: Response to Corporate LMS (response to 1)
Posted by David Kuczek on
What would be the toughest tasks of a complete oacs 4.5+ port to Apache?

What are the pros & cons?

Collapse
6: Response to Corporate LMS (response to 1)
Posted by Talli Somekh on
Jack, one solution is to just call AOLserver the "application layer" and use Apache as the web server. AOLserver is basically a souped up, kick ass version of Apache + mod_xxx with a whole bunch more.

A lot of these orgs would have no problem using Apache + BEA Weblogic/Jakarta/Websphere + Oracle. Saying that your app is Apache+AOLserver+Oracle might solve your server marketing issue.

To replace AOLserver entirely with Apache+mod_nsd is a massive effort, and one potentially worth doing. But it will probably be via an open source community and require a lot peer review and bug testing. I fear it wouldn't be that much different from just porting the code to Java.

Of course, as always, I could be wrong on that last point.

talli

Collapse
7: Response to Corporate LMS (response to 1)
Posted by Jack Ramsey on
Michael,
<p>
I agree that the ASP solution is the future, but many of the big companies that
we talk to are far from there.
</p>
<p>
We host a majority of our clients, which are medium to small(500-100 users),
but the larger companies all want it inside their firewall.
</p>
<p>
Do any of your corporate clients take advantage of the fact that the code is
open?  The reason I ask is that I don't believe that any of the large companies
with whom we are working or speaking that want to host internally would
customize our product regardless of what language it is written; therefore, I
am not sure that the people with whom I talk care if it is written in TCL.  Do you
have contrary experience?
</p>
<p>
Also, when I am speaking to a purchaser in a fortune 500 manufacturer, all he
cares about is that our system addresses a pain, that it is going to save the
company money, and that his IT people don't have a problem with the
technology.  That is where we run into the AOLServer dilemma.  Although I
am a strong believer in AOLServer, I have unfortunately been unable to
overcome this dilemma in many cases.  If anyone has been consistently
successful selling AOLServer, I would be very eager to understand the sales
approach.
</p>
<p>
If a funded effort was devoted to porting mod_aolserver to Apache 2.x, do you
think that we could ever get  performance comparable to the AOLServer
configuration?
</p>
<p>
How much funding do you believe it would take?
</p>
<p>
Does the Apache community have solutions like the OpenACS and dotLRN?
</p>
Thanks,<br>
Chip
Collapse
8: Response to Corporate LMS (response to 1)
Posted by Jack Ramsey on
Talli,

That is a very interesting point. Is there any documentation on setting a server up with that configuration? Is there any performance issues when running both Apache and AOLserver? Would there be any need for IT staff to understand how to administer AOLServer if it is only working as the application layer?

Thanks,
Chip
Collapse
9: Response to Corporate LMS (response to 1)
Posted by Jon Griffin on
To sell AOLserver:

Tell them, turn it on and forget about it. This isn't apache and I don't think I have spent more than 5 minutes in a year futzing with AOLServer (of course my own experimentation not included).

They don't need a sysadmin that "knows" AOLServer.

Collapse
10: Response to Corporate LMS (response to 1)
Posted by Talli Somekh on
Chip or Jack,

I've had a lot of success pitching AOLserver, but I've never really gone into a Fortune 500 company to do so. But I did just come back from Linux World where I spent a few days talking about AOLserver and here is my basic pitch (I've promised to write this up as a general article). This is the basic 5 minute pitch. (For a more complete discussion see Philg's article which is still quite accurate for most applications)*:

The OpenACS is built mainly around AOLserver, a free and open source web application server that runs some of the largest sites on the internet. These include Moviefone.com, Mapquest.com, DigitalCities.com, home.Nescape.com, search.Netscape.com and, of course, AOL.com. As you may imagine it can handle some pretty serious load.

The reason that we, and AOL, use it is because it provides such a powerful Rapid Application Development platform. It is generally analogous to Apache+mod_xxx, but with features that are far more powerful.

From its beginning, AOLserver has been designed to do one thing and do it very very well. It's designer, Jim Davidson a guru-level C programmer, began building it in the mid-90's. He had a few ideas that still hold true, which were:

  • If it's going to run on Unix, it should be multi-threaded C code AOLserver, from the beginning, has had a multi-threaded architecture taking advantage of one of the best characteristics of Unix. Apache has only recently become multi-threaded, and that's the latest version which is still being tuned.
  • If you're going to build a big website, you're probably going to use a database So AOLserver has a native database API making db calls super easy and efficient. To make matters even better, AOLserver has pooled database connections. AOLserver had this before Websphere (which has pooled JDBC connections) was even a glint in a Java developer's eye.
  • Finally, if you're going to build a database-backed website, you're *not* going to want to build it in C Jim realized that a scripting language is the ideal tool for building websites quickly. As a result, he embedded a tcl interpreter, which was the hot scripting language of the mid-90's, right into AOLserver. AOLserver has .adp pages, which are like .jsp or .asp pages, that make webpage development super fast. And because they call a native DB API from within a multi-threaded unix daemon that also pools the DB connections, the entire process is amazingly efficient.
One other great feature of AOLserver is that it has a *single* configuration file. *Everything* is set up from one place making maintenance a breeze. Any apache systems administrator would find this feature to be a God-send.

So in total, AOLserver is a system that provides massively rapid development that provides rapid app development, trusted performance and simple configuration and maintenance.

talli

* = Excuse any marketroidisms

Collapse
11: Response to Corporate LMS (response to 1)
Posted by Talli Somekh on
Chip/Jack,

For a better and more complete Apache vs AOLserver explanation, allow me to repost something Ben wrote that I think is a fantastic explanation. It comes from this thread (https://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=000545&topic_id=11&topic=OpenACS)

talli

AOLserver and Apache are not equivalent pieces of the application stack

Trying to replace AOLserver with Apache is like trying to replace Zope with Apache or WebLogic with IIS. They're two completely different things. You cannot replace AOLserver with Apache because they play completely different roles in the architecture. AOLserver is an application platform with a Tcl interpreter, a powerful database API, and a really fast threaded architecture. Apache is a web listener with a standardized API for adding different means of processing web requests.

If you want to compare AOLserver to something else, compare it to mod_perl. You might run Apache, mod_perl, and PostgreSQL as one architecture. You could also run Apache, mod_proxy-to- AOLserver, and PostgreSQL as another architecture. AOLserver is your *application server*. Now it just so happens that AOLserver is a darn good web listener, too. So you can take out the Apache layer and keep just AOLserver and PostgreSQL.

When Don says there's a solution in the works for Apache 2.0, what he means is that there is a mod_* solution in the works that will allow the easy layering of Apache 2.0 on top of AOLserver (or onto an AOLserver-like component that also does Tcl evaluation in a threaded environment with all the AOLserver APIs).

Now take a step back. If you have two architectures, one of which requires 2 components to function, the other one of which requires these same 2 components to function *plus* a third one.... which one presents less risk, increased simplicity, and generally a more sane platform?

AOLserver is not a web server. It is an application server. Layer all the web servers you want on top of it if it helps solve a marketing problem, but it will only make your technology platform that much more complicated.

Collapse
12: Response to Corporate LMS (response to 1)
Posted by Jack Ramsey on
Talli,
<p>
That was a great pitch! Especially for developers.
</p>
<p>
Ben's post was very good, but recalls one of my initial question.  Is mod_nsd
an application layer that sits on top of Apache?  Wouldn't it only be two layers
(Apache and mod_nsd) ?  Isn't AOLServer just like Apache and mod_nsd
bundled as one install, neglecting the obvious superiority of the AOLServer
HTTP server to Apache prior to 2.x?
</p>
<p>
I hope these are not stupid questions.  I may not fully understand what
mod_nsd is supposed to be.
</p>
Thanks,<br>
Chip
Collapse
13: Response to Corporate LMS (response to 1)
Posted by C. R. Oldham on
Let me bring up one other reason why we ended up going with AOLserver+OpenACS--it was **really** easy to setup a pair of boxes to to be our production and development systems, and we could run more than one copy of AOLserver on our development system.  That way when a developer was working he had his own sandbox to test things in and he didn't have to worry about messing other people's stuff up.  With Apache+mod_perl+mason (our previous setup) this was not possible.  There was just too much stuff to keep track of.  If anyone is interested in how we made all that work feel free to email me.
Collapse
14: Response to Corporate LMS (response to 1)
Posted by Talli Somekh on
AFAIK, mod_nsd would have to implement the DB API, pooled DB connections and much of the embedded Tcl calls that the ACS relies on. Even then, you wouldn't get the efficiency of AOLserver since everything is so well integrated.

So I think that Apache + mod_nsd is kinda like souped-up Honda to AOLserver's Ferrari. The souped-up Honda might be fast and have good performance, but it's not quite like driving a Ferrari that's been designed from the ground-up to burn rubber.

That being said, you wouldn't use a Ferrari to go to the grocery store. AOLserver is built for high performance, databased-back websites and that's what it does. Apache is a great tool, but it was designed to pretty much do everything.

Wait, I take that back. Apache was never designed. Maybe 2.0 is different, though.

talli

Collapse
15: Response to Corporate LMS (response to 1)
Posted by Don Baccus on
Talli ... a minor nit on the History Channel documentary you're scripting ...

NaviServer (AOLserver) was originally developed for Windows.  That's why the old-style initialization files look just like Windows .ini files.  They *were* originally.

As the people doing the native PG for Windows stuff have pointed out, multiprocessing programs for Windows are much easier to develop using threads rather than processes.

So going multithreaded on Windows wasn't really a stroke of genius, it's just the right way to do things in that environment.

Likewise in the Unix environment threading has been a PITA with everyone and his uncle inventing their own mode, while the multiprocessing model based on "fork()" has been around and standardized in Linux forever.  Thus the decision by Apache and (long ago) PG developers to use processes not threads makes some sense, it reduces the maintenance effort.

Now ... every other decision made by Jim was truly brilliant and insightful :)

If CR were to write up a comparison of what it took to do what he describes in the Apache world vs. AOLserver world it would be a useful thing to shove at techies.  Not IT managers, though.

Collapse
16: Response to Corporate LMS (response to 1)
Posted by Talli Somekh on
Damn.

Well, it made good copy, at least.

talli

Collapse
17: Response to Corporate LMS (response to 1)
Posted by Michael Feldstein on

Chip wrote:

I agree that the ASP solution is the future, but many of the big companies that we talk to are far from there.

We host a majority of our clients, which are medium to small(500-100 users), but the larger companies all want it inside their firewall.

That's not consistent with my experience. I'm going to meet with a client tomorrow that has roughly 7,000 users and hosts with an ASP. Now, that's certainly not to say that all or even most of the largest organizations are looking for an ASP model. However, by and large, training departments starting to discover what a PITA it is to have to depend on IT to keep their apps running.

Do any of your corporate clients take advantage of the fact that the code is open? The reason I ask is that I don't believe that any of the large companies with whom we are working or speaking that want to host internally would customize our product regardless of what language it is written; therefore, I am not sure that the people with whom I talk care if it is written in TCL. Do you have contrary experience?

First, to answer you question, none of my clients take advantage of the open code because none of them are using dotLRN yet. There isn't even an official dotLRN release yet AFAIK, so it's been just about impossible to market. That's all changing now, though. But in terms of customization, it's tricky. It's absolutely true that many training departments don't think they would be interested in customization per se, and the biggest companies have access to the internals of even closed source programs. So ease of customization is probably not a good selling point for this market (yet). The better argument is that dotLRN is built on a far better technology platform than the competitors. Nearly all current online learning server-side programs are basically unusable. Part of that is because we're still learning how to do this stuff in a way that's useful, but much of it is also because these apps are designed by bad programmers working in capital-starved closed source companies and supervised by marketing drones. The stuff is just plain bad. Heck, WebCT wasn't even backed by a real database until very recently. I know folks who have to restart Saba practically on a weekly basis.

Beyond that, the appeal of Open Source here is that e-learning apps are not close to being mature yet and the closed source world has shown no sign that they can innovate in this area. Even if you aren't going to customize, the fact that others are is a huge win. I read somewhere recently that, on any given Open Source project, the number of people who submit bugs far outweighs the number of people actually writing significant amounts of code. These organizations can contribute simply by banging on the code and telling the community what breaks. And they'll get far more satisfying response time for fixing the app than they will with some shrink-wrapped product made by a vendor that barely makes enough money to keep it's doors open.

Also, when I am speaking to a purchaser in a fortune 500 manufacturer, all he cares about is that our system addresses a pain, that it is going to save the company money, and that his IT people don't have a problem with the technology. That is where we run into the AOLServer dilemma. Although I am a strong believer in AOLServer, I have unfortunately been unable to overcome this dilemma in many cases. If anyone has been consistently successful selling AOLServer, I would be very eager to understand the sales approach.

Like you, I also believe that AOLServer is possibly the biggest barrier to wider adoption. Up until now, that hasn't been a problem because the natural market for OpenACS has historically been hosted apps. But the market is changing. Still, my perception is that the community has some time to wrestle with this issue and come up with the best solution, whether that's better packaging and marketing or an eventual migration.

If a funded effort was devoted to porting mod_aolserver to Apache 2.x, do you think that we could ever get performance comparable to the AOLServer configuration?

The truth is that nobody knows. Several of the uber-hackers in the community are on record as saying that they think Apache would be slower, but I'm not sure if anybody has a deep enough working knowledge of the Apache 2 internals to know just how much of a difference there would be without investing some time in tests and experimentation.

How much funding do you believe it would take?

Personally, I have no idea. I would think that the first step would be to fund a partial port that would (a) give us a better sense of what we'd be up against and (b) give us some benchmarks on representative functions that would give us a clue as to eventual performance.

Does the Apache community have solutions like the OpenACS and dotLRN?

No, not that I know of.

Collapse
18: Response to Corporate LMS (response to 1)
Posted by Jack Ramsey on
Thank you Michael. That was very helpful.

I have been selling customized and boilerplate training delivered through other LMS or our LMS to companies for the last 2 years. I believe that the sales and marketing of our product is going to be very similar to what you will experience with dotLRN. I have not been selling aspects of the community functionality found in the OpenACS; therefore, I can only comment on what I believe you will experience with dotLRN.

In my experience, many of the large companies want to host their training internally, because the training may contain sensitive information that they want to keep secure internally.

Most of these companies run Apache on some of their servers and have never heard of AOLServer. Their IT people are scared about supporting another HTTP server, because they have corporately dictated configurations that adhere to specific security criteria. They want us to plug into their current systems.

In July of 2002, the Netcraft Web Server Survey of 35,991,815 sites determined that 65.21% were running Apache. Our company can not ignore that kind of number. If there is no solution like OpenACS or dotLRN for Apache, an efficient mod_nsd could be a tremendous opportunity.

If it is impossible to create a mod_nsd that wll perform well, then it is not an issue, but I believe that it would be the most effective way to sell dotLRN development, implementation, or support work.

I would think that the first step would be to fund a partial port that would (a) give us a better sense of what we'd be up against and (b) give us some benchmarks on representative functions that would give us a clue as to eventual performance.

What representative functions do you believe would be the best to port first?

-CR
Collapse
19: Response to Corporate LMS (response to 1)
Posted by Michael Feldstein on

What representative functions do you believe would be the best to port first?

I am far from qualified to answer this. Anybody else want to take a crack at this question? In the meantime you might find the following discussion to be relevant:

https://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=0005pP&topic_id=OpenACS&topic=

Collapse
20: Response to Corporate LMS (response to 1)
Posted by Rafael Calvo on
Another problem I found was with a research partner that has
highly confidential data.
I wanted to build an application that uses this data using OACS,
but they require the webserver to be CERT certified, I will try to
find out more, but apparently some servers are "certified" as
secure by CERT. I don't know how you get it certified, it might be
a matter of  $ .
Anyway, AOLserver is not.
Collapse
21: Response to Corporate LMS (response to 1)
Posted by Jon Griffin on
Business rule #1
Not every prospect is a client you want or need.
Collapse
22: Response to Corporate LMS (response to 1)
Posted by Alfred Essa on
Jack, You raise excellent points about marketing dotLRN and OpenACS-based applications. I have also encountered the "closed mindedness" of IT departments when it comes AOL webserver. However, I have concluded that the FIRST order of business is to build a kick-ass vertical app in the learning space which sets the standard for functionality and innovation. If the functionality is world-class and the users want it, the IT departments will come along.

BTW. On Friday, Berklee demonstrated the Learning Management System (LMS) and Content Management System (CMS) that they are developing. As Tracy Adams likes to say: "It rocks!" It would be fabulous if we were able to extend their work and incorporate it in dotLRN as a full-blooded LMS package.

Collapse
23: Response to Corporate LMS (response to 1)
Posted by Alfred Essa on
Talli, I like your "pitch" of AOL WebServer. It would be great if you could write that up into a more general white paper on the AOL architecture. We need something like it on the dotLRN web site.