Previous Page Table of Contents Next Page


4. The approach


In order to tackle the problems described in Section 2 we proposed a lightweight approach based on Web services and related XML technologies. The approach was developed in a way that can be implemented on multiple vendor platforms, with minimal effort and disruption to existing systems.

The main goal of the approach is to create an environment where new web-based information systems can be developed quickly and easily, using any technology platform, by accessing information from any of the existing 200 information systems at the FAO, and supporting the multilingual characteristics of the institution in which documents are expressed in five official languages as well as Russian and other local variations. Other objectives included the implementation of dynamic report generator and development of an XML document repository to handle metadata and language variants in a generic way.

In the next subsections we describe the information bus approach proposed to support data exchange and dynamic report generation.

4.1. Information bus

Figure 2 presents an overview of the architecture of the information bus being proposed to support interoperability of various information sources. The approach consists of wrapping the various data sources with Web service interfaces in which information inputs and outputs are passed as XML structures.

The concept of the information bus is that all data passed through it is represented in standard XML formats. These formats can be imposed in a regulated fashion by publishing the XML schemas being used and validating instances of messages. Regardless of the formats used by the existing systems, the same XML syntax is used for input and output parameters on the Web services. For example, all data related to country, language or currency is represented in a single XML format, which uses (a) ISO 3166 country code (3 letter), (b) ISO 639-1 language code (2 letter), (c) ISO 4217 currency code, respectively. With Web services it is not necessary to re-engineer existing systems to new XML standards. However, it is necessary to enforce XML standards in the Web services interfaces. For example, the parameters for operations involving language codes always use the 2-character ISO 639-1 code.

The Web services were developed for systems containing information about statistics, documents, maps, news and events. These systems are:

The management of information, including handling of multilingual variants is also based on XML. We propose to move structured information out of database fields and represent them in XML documents to allow a more generic model, which is easier to administer and to extend to new languages (e.g. there is a growing need to support Russian, in addition to the five existing official languages). Whereas existing systems use own (non-standard) database structures to model multilingual data, the XML approach provides a generic way to manage structured information to any schema. The XML documents are stored in an XML repository, as shown in Figure 2.

It is foreseen with the project proposal for the handling of metadata also to be based on XML and stored in the XML repository, which can be used as the exchange model throughout the FAO. The metadata would be represented as RDF [21], RDF Schema [7], Dublin Core elements version 1.1 [11], and XML Topic Maps [26]. RDF would be used to specify metadata on resources, i.e. values of properties for the resources. RDF Schema would be used to define classes of resources and the properties that instances of each class can take. In addition, RDF Schema, Dublin Core, and XML Topic Maps would be used to define ontologies, which capture the relationship between classes, resources, and properties that compose a vocabulary. XML Schemas [14] would also be used to define vocabulary range of values contained in a property.

The assignment of constraint metadata would be based on standard ontologies published or developed in-house, also represented in XML. This would facilitate importing and exporting of all XML metadata held in participating systems.

The XML repository stores resources (documents) in a relational database, using a Java interface based on an extended version of the XML:DB API [32] that caters for document variants (e.g. different language variants of the same document) and metadata associated with documents. The repository is also wrapped as a Web service to allow access of documents by metadata and/or language.

The FAO currently has a web application called FAO Country Profiles [15], which draws information from a variety of systems on the internal network and presents an aggregated view, sorted by country. Within each country profile, information is structured according to the main functional areas of the FAO - sustainable development, economic situation, agriculture sector, forestry sector, fishery sector, technical cooperation. We developed an application for the Country Profiles using the information bus architecture (see Section 5 for an example).

The architecture can contain two Universal Discovery, Description, and Integration (UDDI) registries to support discovery of information. One UDDI registry is internal to the FAO and assists with share and exchange of information between the data sources internal to the organization. The other UDDI registry is used to support share and exchange of data between the data sources external to FAO. In the initial deployment of the architecture, only the internal registry was active.

Figure 2: Information bus architecture

An example of the XML structure passed in the information bus is shown in Figure 3. It consists of a SOAP [8] message enriched with metadata from ontologies represented in RDF [21]. In this example, the XML structure represents a query about documents containing information of forestry (Keyword), in Senegal (Country - SEN), written in English (Language - EN). The transformation from the standard XML representation used in as the input parameters of the Web service, to the native input parameters of the system is implemented in the Web Service code itself. This is achieved using mapping structures from the native input parameters of the application (strings, integers) to the ISO representations outlined in the information bus.

In the approach, we propose to use three different types of Web services based on their functionality, named: support, relevance, and content. The support Web service type contains utilities to return standard representations of countries, metadata categories, and language translations. An example of the information returned by the support service is shown in Figure 4. The relevance Web service type is used to identify the Web service that is related to a particular application context and the setting of parameters necessary to call the identified Web service, as illustrated in Figure 5. In this example Web service with ID 900 contains description of general maps and should be accessed by using parameters such as Country, Language, and Category.

<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/">
<soap:Body>
<Query xmlns="http://tempuri.org/">
<Country>SEN</Country>
<Language>EN</Language>
<Keyword>Forestry</Keyword>
</Query>
</soap:Body>
</soap:Envelope>

Figure 3: Example of XML structure passed in the information bus

The content Web services type is invoked to return XML content from existing information sources, through Web services interfaces with parameters for language, country, subject, and others. Figure 6 shows an example of the content service returned from the BBC News Online information source (external to the FAO).

<FSCollectionChoices xmlns="http://tempuri.org/CollectionChoices.xsd">
<Country diffgr:id="Country231" msdata:rowOrder="230">
<COUNTRY>Zimbabwe</COUNTRY>
<FSCOUNTRYCODE>181
</FSCOUNTRYCODE>
<ISOCODE>ZWE</ISOCODE>
</Country>
<Item diffgr:id="Item1" msdata:rowOrder="0">
<ITEM>Abaca (Manila Hemp)</ITEM>
<FSITEMCODE>809</FSITEMCODE>
</Item>
<Element diffgr:id="Element1" msdata:rowOrder="0">
<ELEMENT>Seed</ELEMENT>
<FSELEMENTCODE>111
</FSELEMENTCODE>
</Element>
<Year diffgr:id="Year1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<YEAR>1961</YEAR>
</Year>
</FSCollectionChoices>

Figure 4: Example of information returned from support service

<ServiceDetails xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://tempuri.org/ServiceDetails.xsd">
<ServiceDetail d2p1:ServiceName="GeneralMaps" d2p1:ServiceID="900"
xmlns:d2p1="http://tempuri.org/ServiceDetails.xsd">
<ServiceDescription>Description for GeneralMaps</ServiceDescription>
<Param d2p1:name="Country">
<value>GBR</value>
</Param>
<Param d2p1:name="Language">
<value>EN</value>
</Param>
<Param d2p1:name="Category">
<value>16</value>
<value>19</value>
</Param>
</ServiceDetail>
</ServiceDetails>

Figure 5: Example of information returned from relevance service

<BBCNewsDS xmlns ="http://www.fao.org/waicent/cpmis/BBCNewsDS.xsd">
<BBCNews>
<headline>Blair blasts green pacesetters</headline>
<intro>In 1997 Labour undertook to be the &amp;#34;first truly green government&amp;#34;,
but has that promise been fulfilled?</intro>
<newsdate>23/10/2000</newsdate>
<link>http://news.bbc.co.uk/hi/english/sci/tech/newsid987000/987400.stm</link>
</BBCNews>
<BBCNews>
<headline>Labour: A green government?</headline>
<intro>In 1997 Labour undertook to be the &amp;#34;first truly green government&amp;#34;,
but has that promise been fulfilled?</intro>
<newsdate>23/10/2000</newsdate>
<link>http://news.bbc.co.uk/hi/english/sci/tech/newsid986000/986532.stm</link>
</BBCNews>
</BBCNewsDS>

Figure 6: Example of information returned from content service

4.2. Country Profile report

Our approach also supports dynamic report generation based on data extracted from the various information sources. The reports are assembled as XML and rendered as PDF, by using XML Stylesheet Language: Formatting Objects - XSL:FO [1] and the open source FO Processor from Apache [4]. The reports are generated based on information content selected by the user.

When the user chooses a country and language from the support Web services this sets the state of the client and the relevance Web service is used to define the information available to the user in that context. Then when the user chooses to generate a dynamic report they are presented with the option to invoke different Web services, depending on the context. These Web services create the different sections of the report, according to the preference of the user.

Once the user has chosen the services to invoke in the creation of the report, the report generator calls all the Web services simultaneously using multi-threading. The report is built in memory in an order that depends on which Web service returns results first; the final report, in the correct order is compiled and generated once the last Web service returns results. The whole process takes approximately 60 seconds from invoking the services to report generation; a normal report will involve between 30 and 50 different Web services.


Previous Page Top of Page Next Page