OpenACS: What it is and why to use it
OpenACS, the Open Architecture Community System, is a web application platform designed for high traffic community websites.
Overview of Advantages
OpenACS is a web application toolkit in a very crowded field of systems that purport to offer similar features. However, OpenACS offers a number of advantages over competing platforms.
Community in a Box
The OpenACS is a community system that is ready out-of-the-box for collaborative web sites. It provides functionality for discussions, content management, personalization and other mechanisms for users to communicate. In addition, the utilities available to extend this core functionality are easy to learn and to use. p>
The components of the OpenACS have proven themselves in the most demanding of applications. AOLserver is the backbone for AOL's most heavily trafficked sites. Both databases, Oracle and PostgreSQL, have likewise responded with excellent performance in demanding environments. And the OpenACS is in deployment at sites that have upwards of 40K users and is doing swimmingly.
The OpenACS community is full of very professional and committed open-source developers. According to Ohloh.com, OpenACS is one of the most active open source communities in the world. The forums on OpenACS.org are well trafficked with discussions concerning OpenACS enhancements, solutions to bugs, and assistance to newbies, among other things. Help is offered and questions encouraged by gurus, wizards and the odd mortal programmer
There are over a dozen companies dedicated to providing clients with OpenACS development and hosting. In addition to these companies, there are many independent consultants that are available for hire. This collection of commercial providers work together to maintain the OpenACS in addition to competing for clients. In fact, often times the vendors work together for the same client. Most importantly, no client is ever left without support, even if his or her original provider goes out of business.
Unusual among open source projects, the OpenACS is very well documented. Community members are encouraged to document and distribute their new packages as well as address any lack of information in existing documentation.
Commitment of Heavy Hitters
Perhaps the most compelling reference for the OpenACS is the commitment of some very large and prestigious companies, institutions and non-governmental organizations. These include the MIT Sloan School of Management which has initiated and led the development of .LRN, an open-source courseware system build on OpenACS. Recently, the University of Heidelberg, the most prestigious German university, rolled .LRN out for their 40K users. In addition, the OpenACS was used to build the CMS for Greenpeace.org, a site that handles millions of hits per day.
Beyond the advantages listed above, there are a number of enterprise-quality features for developers:
- Automated testing
- Flexible and easy caching, for improving the performance of your websites.
- Extremely high performance and scalable database backed websites. The technology behind OpenACS powers some of the world's busiest web sites, such as AOL.com, Mapquest.com, Netscape.com, and Moviefone.com.
- A mature technology base. OpenACS uses pooled DB connections (which reduces database connection startup and teardown time), much like the technique JDBC uses, but predating it by many years. OpenACS runs on a multi-threaded server, much like Apache 2, but predating it by many years.
- High reliability. OpenACS runs on the Oracle and PostgreSQL relational databases. These databases both pass the ACID test, which is important in insuring the integrity of your data. Both database systems support transactions, referential integrity, and allow operations to be executed via a programming language within the database itself. Oracle and PostgreSQL support native database APIs (JDBC, Perl DBI)
- Component package system for easy installation and upgrading of packages
- Upgrade paths for code and database schemas
- Full internationalization, including an excellent workflow for translating content into new languages.
- Fully functional content repository and content management system.
- A lightweight, simple, extremely fast scripting language that features a clean, easy-to-understand API (Application Programming Interface) for generating websites
from the database.
- Millions of dollars of research and development have been invested in improving the OpenACS API, making OpenACS one of the most mature platforms in the industry, involving years of thought and trial and error going into the design.
- An elegant templating system that separates code from presentation of content.
- An object system that resides on top of the database, permitting site developers to create complex applications using an object API. Examples include an object level permissions system, audit trails, and ability to relate one object to another.
- A vibrant and active community willing to help out people who stumble across any problems. There are multiple dedicated major players in the community that are investing over 3 million dollars per year in the development of OpenACS.
- OpenACS has extensive documentation, both on openacs.org, and included with the toolkit.
- OpenACS is fully open source, with millions of lines of open-sourced applications available to use as examples. There are also pre-written packages for you to use or adapt.
It offers a rich variety of already built, high quality applications:
- Bug/Issue tracker,
- many many many more
When developers discuss OpenACS, they often overlook it because of programming language bias. We think that the most important thing about choosing a web platform is not the language you use, but the maturity and power of the API. In reality, it only takes an hour or two to learn to use Tcl, the language used to program OpenACS. It is a very simple and straightforward programming language. We encourage you to compare OpenACS's API with other platforms, instead of just comparing the programming language. Most of your time is spent using the API rather than the programming language, and you'll find that the OpenACS API is flexible and elegant, saving you significant amounts of time compared to other platforms. You don't often see job postings looking exclusively for language skills, such as "Hiring developer for developer with BASIC skills?". Usually it's the platform which is the most interest, which is why you see job postings looking specifically for "Microsoft Visual BASIC Skills"
So why have you not heard about OpenACS before now? Mostly because of bad marketing, something we're starting to take more seriously lately!
Bottom line: using OpenACS, you can shave 6 months to a year of development time off of your major projects because most of the common, integrated features have already been implemented for you.
For administrators and website operators
OpenACS is moving beyond its developer roots and becoming a platform where administrators and non-programmers can set up an OpenACS website and take full advantage of its benefits without having to program.
The initial installation and set up of an OpenACS website is more demanding than many of its competitors. We consider this a weakness OpenACS, but one that is being addressed in the community. For instance, binary installers are becoming available.
You'll find a huge number of applications available for installation into your OpenACS website. You're able a great deal with your installation by changing configuration parameters with a web browser. If you do run into problems, please share them in our Q&A Forum
as a community, are dedicated to making OpenACS available for non-programmers as well, and you'll find us helpful and friendly.
The OpenACS community
OpenACS is also an international community of developers who develop and
maintain the OpenACS toolkit for building websites. Tracing back to its origins at
MIT, the toolkit incorporates advanced web engineering concepts, suitable
for high traffic websites.
A community of software developers and users maintains the system through bug fixes, security patches, development enhancements and other tasks at the community home site OpenACS.org. This community consists of members that range from independent volunteers to large institutional agencies.
This vibrant community stays active by collaborating on new features for
the core, maintaining contributed software, and at times acknowledges its
academic roots and incorporates cutting edge or theoretical techniques. We also use OpenACS for our web-based collaboration.
The toolkit evolved as an API to deal with the most common issues that developers run into with web sites, such as authentication and user management. You'll find that the years of thought that have gone into the design of the data models and API will make your life easier as a developer.
See our Governance page for information about our decision-making processes, including OpenACS Improvement Proposals.
The OpenACS Technology
OpenACS is built on a completely free and open source foundation. OpenACS runs on AOLserver
and uses either the Oracle
(which is not open-source) or PostgreSQL
relational databases. AOLserver is used in the some of the most demanding, high-traffic web applications in the world. Its use is advised where you want to plan for scalable, demanding websites.
No license fees will be incurred throughout the life of the system. All components, each of which has been tested in extremely high-demand environments, are freely available for download from the Internet. These components are:
GNU/Linux – The most well-known open source software system, GNU/Linux is an enterprise class server operating system. It is highly tested, supremely stable and extremely scalable. In addition, it has an enormous base of knowledge and a wealth of qualified users and administrators. GNU/Linux is currently running sites such as Amazon.com, EBay and Orbitz.com. You can also run OpenACS on Windows or other UNIX variants, of course.
AOLserver – The middle tier of the OpenACS is the high performance web application server AOLserver. Used by America Online to power the busiest sites on the internet such as AOL.com, Netscape.com, Mapquest.com and Moviefone.com. AOLserver is similar in scope to servers such as BEA Weblogic, IBM's Websphere and Apache's Tomcat. The features that make it a strong server include
- a multi-threaded architecture for extremely efficient performance in high demand environments;
- native database APIs for simplified database access
- pooled database connections for fast, readily available database connectivity;
- and an embedded scripting language (Tcl) for rapid development of business logic.
AOLserver is also open source and is freely available from AOLserver.com
PostgreSQL – PostgreSQL is the most advanced open source relational database available and was the first such database to be fully ACID-compliant (the requirements for a database to be called relational.) Begun as a project at the University of California at Berkeley, PostgreSQL has been in development for over 30 years. Until recently it was the database for Source Forge, premier repository of open source projects. Currently is it the database running the .INFO and .ORG registries.
OpenACS – Enterprise class toolkit for community oriented web applications. (See above)