What if all web apps could be integrated?
There are many open source web applications and frameworks available to speed up development for websites. For example, PHP applications include WordPress (blogging), Drupal (content management), Elgg (social networking), Moodle (virtual learning environment), and Mediawiki (collaborative document management). Each of these applications has its own strengths and weaknesses.
It is tempting to combine several of these applications to take advantage of these strengths to build the best possible website. Unfortunately, the developers of each application or framework often appear to assume that their code base is the only one being used. Each has its own authentication system, profile data, theme system, roles and permissions, and search system. Combining these applications is a major challenge.
Nevertheless, it is worth exploring how this could be done. If web applications were better structured to promote integration, there would be many advantages:
- Application developers could focus on the strengths of each application and not try to do everything, avoiding a waste of valuable and limited development time.
- Website developers could easily snap together different applications much like pieces of Lego to quickly build the best possible sites for their clients.
- Applications could easily be replaced, allowing website operators to drop applications that are no longer under active development or do not meet changing needs with new applications that may be under more active development or are better suited to current needs.
A key part of integration is to remove duplicate functionality. This can be done by restricting this functionality to one application (for example, letting Elgg handle profile pages) or by removing the functionality from the integrated applications all together in favour of using a specialised application (for example using LDAP for authentication).
The eight directions of web development described in the Introduction gives us a useful framework to analyse the issues involved in application integration. Some of these directions can be handled by special applications (eg. authentication, profile exchange, search, notifications and feeds), and others using new, innovative languages or protocols. For example, a SASS-based theming engine could handle look and feel and OAuth or SASL could handle roles and permissions.
Obviously developing this "glue" software would take considerable effort. But once built, it could be used to integrate a large variety of applications, much like railways or highways can unite diverse cities into one thriving country.
Kevin Jardine is available for software development projects and can be contacted here:
Wouldn't it be wonderful if a large institution or funder stepped forward to make such app glue possible?