Data Virtualization features allow the application engine's language environment and service framework to access external Database Tables, Service, Files and Directories as though they were local resources.  Virtualization allows users to develop <wrap hi>data-centric services</wrap> such as those that access relational databases easily and provides <wrap hi>cross-database query</wrap> capabilities.

<WRAP group>
<WRAP third column>
<WRAP round box center>
  * <html><a href="" x-desc="x" title= 
         "Application Dataspaces™ now support Virtual Tables 
          that allow for mapping of tables and/or queries from
          relational databases such as Oracle, Sybase, Microsoft
          or MySQL to entities in the Table Space.  This allows 
          app engine components to perform CRUD operations on 
          underlying tables, call stored procedures, functions or
          execute queries via the engine's database connections. &#013;
          
          This powerful capability allows service authors and RPL
          developers to query remote databases, perform cross-
          platform JOIN operations and cache results for reuse in 
          the application fabric.">
    Virtual Table Support (RDBMS)
    </a>
    </html> 
  * [[ External SQL Query Support ]]
  * [[ Cross-Resource (Distributed) Queries ]]
  * [[ INSTEAD OF Trigger Support ]]
  * [[ SELECT INTO Support ]]
</WRAP> 
</WRAP>
<WRAP third column>
<WRAP round box center>
  * [[ Salesforce.com SOQL Query Support ]]
  * [[ FUNCTION TABLE Support ]]
</WRAP> 
</WRAP>
</WRAP>

<html>
<head>
  <script>
  jQuery(function() {
    jQuery( "a[x-desc]" ).tooltip({
      position: {
        my: "center bottom-20",
        at: "center top",
        using: function( position, feedback ) {
          jQuery( this ).css( position );
          jQuery( "<div>" )
            .addClass( "arrow" )
            .addClass( feedback.vertical )
            .addClass( feedback.horizontal )
            .appendTo( this );
        }
      }
    });
  });
  </script>
  <style>
  .ui-tooltip, .arrow:after {
    background: black;
    border: 2px solid white;
  }
  .ui-tooltip {
    padding: 10px 20px;
    padding-top: 50px;
    padding-bottom: 20px;
    color: white;
    border-radius: 10px;
    font: bold 12px "Helvetica Neue", Sans-Serif;
    box-shadow: 0 0 7px black;
    background-image: url(/dokuwiki/_media/icons_large/dbx.png);  
    background-repeat: no-repeat;
    background-size:   32px 32px;
    background-position: 16px 10px; 
    white-space: pre-line;
    min-width:320px;
    max-width:320px;
  }
  .arrow {
    width: 70px;
    height: 16px;
    overflow: hidden;
    position: absolute;
    left: 50%;
    margin-left: -35px;
    bottom: -16px;
  }
  .arrow.top {
    top: -16px;
    bottom: auto;
  }
  .arrow.left {
    left: 20%;
  }
  .arrow:after {
    content: "";
    position: absolute;
    left: 20px;
    top: -20px;
    width: 25px;
    height: 25px;
    box-shadow: 6px 5px 9px -9px black;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    tranform: rotate(45deg);
  }
  .arrow.top:after {
    bottom: -20px;
    top: auto;
  }
  </style>
  
</head>
</html>  