Data sources are pointers to any external source of data that OpenWGA is able to process in some way. These may be other databases that do not match the content store schema, data sources on the web like RSS feeds or web services, directory servers and many more. Data sources are the OpenWGA metaphor to generally process available data of any source or kind, as long as their support was implemented for the platform.
Data sources, just like content stores, are assigned a database key by which the source can be referenced.
Though data sources are no complete content stores OpenWGA tries to emulate them just like they were and abstracts the nature of the concrete backend data. Therefor data sources also serve virtual "content documents" which offer the data as items and metadata fields and represent the individual data rows of the backend. These documents may be retrievable by query or by browsing some virtual "page hierarchy", depending on the level of support that the backend and data source implementation offers.
While this sounds complicated using data sources in practice normally isn't, and that is mostly because OpenWGA emulates them as content stores. Because of that data sources in WebTML can be mostly used just like content stores. They can be queried using <tml:query> - of course using an appropriate query language for the backend - and their results iterated via <tml:foreach>. Their data can be retrieved via <tml:item> and <tml:metadata>.
Support for data sources of some types is included with OpenWGA Community Edition:
- Custom JDBC databases on MySQL, PostgreSQL and HSSQLDB servers
- A "Bean Adapter" which is able to access custom data served by a Java Bean
- RSS/ATOM feeds
Support for more sources is available in the OpenWGA Enterprise Edition:
- Custom JDBC databases on Microsoft SQLServer, Oracle and IBM DB2
- Custom Lotus Domino databases
- Content Management Interoperability Services (CMIS)
- Directory servers