RISE to Bloome Software
Log In    
r2bsoftware.se r2bsoftware.se
Click to hide navigation tree


Marshal uses harvesters to retrieve data from various sources. Several Harvesters are included in Marshal allowing you to collect data from more or less any database and/or web service. You can combine any of the harvesters in your model to intertwine information from multiple sources. 

For each Query node,  or , in the Marshal model there's a harvester implemeting the actually functionality needed to communicate with the data source and to extract the information needed. Marshal provides a set of built-in harvester for accessing database (see Odbc), files and web content and concept (see Routers) for using external harvesters. 

In order for the harvester to know what to harvest it needs input. There are two sources of harvester input: the configuration of the harvester and the execution of the model. Each harvester provides its own set of configuration properties including information on how to connect to the data source and what type of object, or what table, to harvest. The run-time, or execution, input is passed from the parent node according to the Parent relation property. This property is available to all Query nodes, regardless of the chosen harvester. It's used to pass the parameters that are unique to each call to the harvester. Thus, identifying what instances of the configured object type to harvest or, in the case of a database, what rows to harvest.

In the below example, the top level query will harvest the Site objects. The model will then, for each site object, invoke the harvester connected to the Article node to harvest all articles related to the current site. 

Query node with relation

By default, the root node is assigned to use the ODBC harvester. Any subsequent query node will inherit the harvester of its parent node. To change the harvester of a node simply double-click on the harvester icon.
The ODBC harvester allows Marshal to extract information from any ODBC compliant database including SQL Server, MySQL, DB2, PostgreSQL, Oracle and many more.
Routers (JSON TCP Harvesters) are external harvesting extensions. These allow Marshal to harvest using, for instance, JDBC, SOAP and WCF or through a web crawler.
The Parent harvester moves data within the export. Use this harvester to reorganize information harvested from external sources to get an XML matching the intended schema.
Marshal contains builtin tools for harvesting ReST style web services. Currently, services returning JSON or XML are supported.