Summary
ActiveState is the leading provider of open source based programming products and services for cross-platform development. ActiveState's key technologies are Perl, the Internet's most popular programming language; Python and Tcl, user-friendly scripting languages; PHP, the dynamic Web programming language; and XSLT, the XML transformation language. The ActiveState Programmer Network (ASPN) offers these technologies with the latest information and productivity tools, empowering programmers with the freedom to work with their preferred language and development environment.
Case Facts
ActiveState launched a new service for programmers called the ActiveState Programmers Network (ASPN). ASPN provides various levels of access to ActiveState�s quality-assured language distributions and essential programming information.
Problem
ASPN required a high perfomance, flexible and scalable architecture that was rapid to develop. The project required a robust and flexible solution that is able to adapt to new requirements and technologies.
The database component needed to handle large amounts of data that was constantly being added to and updated. Existing Perl code for the ecommerce and licensing component of the site was in place and ideally needed to be integrated with a minimal amount of work.
Solution
After considering many alternatives Zope was chosen on the strength of a few reasons: through the web management allowed easy group collaboration, flexible user authentication and DTML allows simple yet powerful templating. We used a relational database as the main knowledge data base for the ASPN, connecting through ODBC.
As shown, incoming traffic comes first to load balancer, which decides where to send the request, to IIS or to one of the two load balanced Zope servers. We are utilitizing ZServer directly. Whilst most of the existing ecommerce code was left in Perl to be server by IIS, the Zope-Perl product enabled us able to make simple Perl calls to the existing ecommerce code from Zope.
Since the content is mostly stored in a relational database, there was no need to use ZEO, the front end Zope�s are essentially read-only � all data goes through Zope. Another Zope for internal development provides a staging site for developers to create and test code before putting it live. Objects are moved to the production servers using an xml-rpc client (another of Zope�s benefits). A fourth Zope serves as a management interface for non-developers to manage the articles and documentation.
Zope allowed the project to be developed very rapidly and provides an excellent base for further development.