Developed as a pure-perl application, OpenInteract uses many modules from CPAN along with Apache and mod_perl to provide better and more scalable performance. OpenInteract's data abstraction layer can store all of your data in one (or more!) of a number of SQL databases. Generally, if the database is supported by Perl's rock-solid database interface (DBI), it will be supported by OpenInteract. To date it has been tested with Sybase Adaptive Server Enterprise and MySQL, and adaptations for Sybase Adaptive Server Anywhere, PostgreSQL, Oracle, DB2, LDAP and XML are on the way.
OpenInteract provides three primary advantages for developers:
First, a productive environment for web development. OpenInteract provides features needed by all web applications such as authentication, user and group management, session handling, task security, themeable pages and more. The environment also provides a rich templating scheme so you and your content providers can become productive quickly using only their web browser.
"One of the more powerful notions exploited by technology like Wikis and Manilla is the idea that, while viewing a web page or data object, you click a 'Edit this item' link right on the page," says Chris Winters, lead developer of OpenInteract. "This takes you to a form in your browser to edit that content, and changes are made immediately to the data object. OpenInteract gives you this same functionality."
Second, a data abstraction layer. This layer (called SPOPS, for Simple Perl Object Persistence with Security) allows you to use any supported data store to fetch, create, update and remove objects. Current data stores include DBI (which supports most SQL databases), GDBM and configuration files. However, SPOPS can be easily extended to support CORBA objects, LDAP directories or even simple text files.
One of the primary benefits of SPOPS is that in most cases, you don't even need to write any code to implement an object class! Only a simple configuration file is required to not only define objects and their properties, but also the relationships between objects and different behaviors that can be applied to an object.
SPOPS also makes it simple to apply consistent logic and grouping schemes that cut across different types of objects: for example, a full-text search which not only includes web documents, news items and events, but also electronic manuals, uploaded documents or more.
And because SPOPS is object-oriented, it's simple to provide functionality that doesn't currently exist.
According to lead developer Chris Winters, one of the goals for SPOPS is to make it powerful yet non-obtrusive, and not lock developers into an elaborate framework. "SQL databases are becoming more pervasive by the day, and people have desire to link their data more ways than we can imagine. SPOPS exploits the power of perl as a glue language and allows coders to use a common paradigm (object-as-hashref) to perform some amazing tasks."
Finally, a consistent security layer. You can assign security on a per-object basis for a user, group or the entire world. Security rights for groups are inherited by the users who belong to them, making it simple to create secure access to individual objects.
"With OpenInteract, we're trying to make it easy to write web apps, and one of the biggest hurdles is security," says Winters. "When we looked at existing application frameworks, security was a big gap. So we've taken a simple paradigm for security and applied it consistently to both tasks and objects."
Upcoming development of a robust security policy scheme will make it even easier to ensure that the right users and groups have access to the right objects.
Both OpenInteract and SPOPS (which can be used separately from OpenInteract) have been released under the artistic GPL. Both can be found at www.openinteract.org/, along with extensive documentation, frequently asked questions, and more. Intes.net provides support, custom tool development and upgrades in a per installation fee structure."