A rising tide of content management applications has not yet appeared comparable to that found in relational databases in the late 80's and early 90's. Prior to that time, RDBMS vendors all had proprietary APIs. With the publishing of SQL89 and some level of interoperability, the client-server application industry was launched (including content management). With the creation of SQL92, a usable set of functionality and common language binding driven primarily by Microsoft's ODBC, client-server had yielded a huge increase of applications, SQL-literate developers, the basis for the enterprise application industry, and laid the foundation for the World Wide Web and internet services. That client-server revolution required three elements:
- A common query and data manipulation language
- A common set of language bindings
- A common model for managing queries, results sets, updates, transactions, triggers, procedures, security, data definition and data dictionary elements
Once these were in place, there was a sufficient basis to create data-intensive applications. Legions of developers were trained by universities and corporations to create these applications. The whole database industry continued on an exponential growth curve for the next decade. The creation of a more comprehensive eco-system did not really level the playing field, but opened up the dominance of Oracle, IBM and Microsoft with a much larger market to play in.
A similar opportunity is available now to create a similar revolution in content-intensive applications. An opportunity to create an environment for developers to build applications with confidence and with a common development paradigm that will promote education programs and a whole ecosystem of developer tools and toolkits to emerge. A standard based upon web services can take advantage of the shift toward interoperability, loose coupling and platform and language independence.
It is reasonable to expect the possibility of millions of developers of content management applications in the next 5 years. The following chart indicates what has been accomplished in other areas of development in the last decade or so just in North America:
| Do you spend any development time on any of the following TODAY: |
Population |
Percent of Population |
| Database |
2,415,431 |
86.5% |
| Web/Interent |
2,290,126 |
82.0% |
| Web services (Service Oriented Architecture) |
1,475,858 |
52.9% |
| Open Source |
1,147,490 |
41.1% |
| Embedded Systems |
695,093 |
24.9% |
North American Developer Population Study 2004:©2004 Evans Data Corp
The question is whether JSR-170 creates that opportunity or hinders it. JSR-170 has taken the approach to try to define content management, rather than try to find common ground between the different existing content management systems. Therefore, the common model that was created for SQL doesn't really exist yet for content management. Also, the fact that there is no data model or data definition language, as existed in SQL, means that developers can make no assumptions on what information is being acted upon, which is a critical element in creating packaged applications. There is also a demand for content management interfaces in other than Java. We expect that a web services-based standard that is more inclusive, rather than prescriptive, will emerge soon that will either compete or complement JSR-170.
JSR-170 has some interesting concepts, many of which can be found in the Alfresco system, such as the node and type interface and the JCR query language. However, we felt that the interface itself was inappropriate for building scalable, adaptable applications. Internally, we have taken a more service-oriented approach that allows us to make scalable applications and to keep the connection stateless - absolutely critical in building enterprise systems. Our services-oriented approach also allows us to introduce new Aspects through Aspect-Oriented Programming. This services-based interface does not preclude a JCR interface.
We will be taking our cue from the community on providing a JSR-170 interface. If there is demand for it, the interface will be created. We are actually in a better position to support it than most to support it. We already support the JCR query language, but we don't believe that there will be a huge uptake for an XML and XPath-based query language. Most content management is SQL and relationally oriented.
One standard that is more mature and widely adopted is WebDAV. WebDAV was initially developed in the mid-1990s to simplify the versioning of content over the web. WebDAV provides navigation and locking models and a rudimentary meta-data model. The DeltaV extensions to WebDAV provide a more complete versioning model. File explorers provide interfaces to WebDAV for document navigation, although this interface is not as comprehensive as the Alfresco CIFS support. Microsoft Office, Open Office and most web authoring tools support the WebDAV interface. WebDAV does not yet support a typing mechanism or query language.
|