Features > Data-driven programmation

Data-driven programmation Data-driven programmation

XMLRAD uses XMLGram to extract and manipulate data. An XMLGram contains XMLInstructions, which let developers perform the most common tasks, such as a database extraction or a SOAP invocation, without writing a single line of code ! The result of an XMLGram execution is an XML document called OutputDoc. An XSL stylesheet will then be applied on this OutputDoc in order to display the web page (Fig. 1).





XMLService Execution
Figure 1 - XMLService Execution





Here is a short list of the XMLInstructions you can use.

  • Copy: take a field from the context and create the element and its value in the XML document (similar to the block PARAMS in the master files)
  • DBExtract: opens a SQL statement and creates an XML element containing each field of the query, for each record (very similar to the master file behavior)
  • DBBatch: executes a SQL statement. Parameters are coming from the context. (Very similar to XMLSQL)
  • FileExtract: extracts from an XML file a set of XML elements and copy them to the XML OutputDoc
  • FileBatch: updates an XML file with the values from the Context
  • SMTP: send email to SMTP server or directly to the remote host. Asynchronous and multi-thread support
  • Messenger: send instant messages using MSN Messenger. This features is integrated to transfer application pages between users
  • Chart: displays very simply sophisticated charts and graphs over the web. Fully JPEG compliant (no activex, no applet required)
  • CIExtract: performs full text search using Indexing Server Service provided with Windows NT/2000/XP
  • Progress: instruction provides all mechanisms to display a live progress bar on the client browser
  • Cache: powerfull XML caching instruction which can be application global or per param value specific.
  • GenID: generates an ID using a specified generator of the application.
  • Invoke: reuse existing XMLServices in your XMLGram
  • HTTPInvoke: get XML documents over HTTP
  • SoapInvoke: invoke WebServices from your XMLGram
  • ComInvoke: invoke COM and DCOM objects, reuse existing business objects, XML output is added automatically to the XML document
  • LibInvoke: invoke functions in native libraries such as .DLL and .so (Shared Objects on Linux), XML document is added automatically to the Output
  • CorbaInvoke: invoke CORBA objects registered over the network
  • Basic Kernel XMLInstructions for Delos7G (Universal Data Model): KInsert, KUpdate, KDelete, K2Insert





You also can extend the existing XMLInstructions of the XMLGram, and create your own XMLInstructions. (Just take a look at XMLGram.pas)

XMLGram can process an XML InputDoc to update thousands of records with master-detail relationships. (Look at the Import demo)

XMLGram supports multiple datasources to extract data from multiple databases (ORACLE+MSSQL+...)





Of course, XMLRAD also lets developers program business rules and business modules with a wide variety of languages: C#, VB.Net, JScript.Net, JScript, VBScript, Delphi, C++ Builder, Perl, Python, REXX, TCL, etc...

Indeed, event handlers let you program your business rules at many levels of the XMLService execution :

XMLService Execution Diagram

Event handlers (in bold) are invoked during the process of the XMLService by the framework:

XMLService.Execute
BeforeXMLService
:  XMLGram.Process
:  :  BeforeXMLGram
:  :  XMLGram.ProcessXMLInstructions
:  :  :  for-each XMLInstructions do XMLInstruction.Process
:  :  :  :  BeforeInstruction
:  :  :  :  Open Query
:  :  :  :  for-each record do
:  :  :  :  :  BeforeInternalInstruction(@Skip)
:  :  :  :  :  Build an XML Element for every field of current record
:  :  :  :  :  AfterInternalInstruction
:  :  :  :  :  XMLGram.ProcessXMLInstructions // process sub-instructions
:  :  :  : AfterInstruction
:  :  AfterXMLGram
: BeforeXSL
: AfterXSL
: AfterXMLService

In any event handlers, programmer has access to 5 global object references.
These objects are protected for the current http request, and are isolated from concurrent request processing.
These objects are accessible in all languages C#, VB.Net, JScript.Net, JScript, VBScript, Delphi, C++ Builder, Perl, Python, TCL, REXX...





 Back to Features

 Back to Top



 
Related Links
 White papers
Description of the XMLRAD solution.
 Architecture
Description of the applicative architecture.
 Benchmark
Servers can handle up to 1000 simultaneous users.


XMLRAD for .NET