<?xml version="1.0" encoding="UTF-8" ?>
<!--RDF based XML document generated By OpenLink Virtuoso-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <rss:channel xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/">
  <rss:title>Kingsley Idehen&#39;s Blog Data Space</rss:title>
  <rss:link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/</rss:link>
  <rss:description>I have seen the future and it&#39;s full of Linked Data! :-)</rss:description>
  <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kidehen@openlinksw.com</dc:creator>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2013-05-21T18:20:35Z</dc:date>
  <rss:items>
   <rdf:Seq>
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-07-13#1005" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-06-01#988" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#982" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-05-11#973" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2005-02-25#695" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2005-02-10#680" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-05-17#546" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#499" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#506" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-03-23#482" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-10-31#410" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-08-05#232" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-07-30#209" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-18#282" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-17#279" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#352" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#351" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#319" />
      <rdf:li rdf:resource="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#48" />
   </rdf:Seq>
  </rss:items>
 </rss:channel>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-07-13#1005">
  <rss:title>Object Relational Rediscovered?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-07-14T01:59:15Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Microsoft&#39;s recent unveiling of the next generation of ADO.NET has pretty much crystalized a long running hunch that the era of standardized client/user level interfaces for &quot;Object-Relational&quot; technology is neigh. Finally, this application / problem domain is attracting the attention of industry behemoths such as Microsoft. In an initial response to these developmentsOrri Erling, Virtuoso&#39;s Program Manager, shares valuable insights from past re. Object-Relational technology developments and deliverables challenges. As Orri notes, the Virtuoso team suspended ORM and ORDBMS work at the onset of the Kubl-Virtuoso transition due to the lack of standardized client-side functionality exposure points. My hope is that Microsoft&#39;s efforts trigger community wide activity that result in a collection of interfaces that make scenarios such as generating .NET based Semantic Web Objects (where the S in an S-P-&gt;O RDF-Triple becomes a bona fide .NET class instance generated from OWL). To be continued since the interface specifics re. ADO.NET 3.0 remain in flux...</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Microsoft&#39;s recent unveiling of the next <a href="http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp">generation of ADO.NET</a> has pretty much crystalized a long running hunch that the era of standardized client/user level interfaces for &quot;Object-Relational&quot; technology is neigh. Finally, this application / problem domain is attracting the attention of industry behemoths such as Microsoft.</p>
<p>  

</p>
<p>In an initial response to these developments<a href="http://www.openlinksw.com/weblog/oerling/">Orri Erling</a>, Virtuoso&#39;s Program Manager, shares <a href="http://www.openlinksw.com/weblog/oerling/?id=1002">valuable insights from past re. Object-Relational technology developments and deliverables challenges</a>. As Orri notes, the Virtuoso team suspended ORM and ORDBMS work at the onset of the <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSHistory">Kubl-Virtuoso transition</a> due to the lack of standardized client-side functionality exposure points.</p>

<p>My hope is that Microsoft&#39;s efforts trigger community wide activity that result in a collection of interfaces that make scenarios such as generating .NET based Semantic Web Objects (where the S in an S-P-&gt;O RDF-Triple becomes a bona fide .NET class instance generated from OWL).</p>
<p>To be continued since the interface specifics re. ADO.NET 3.0 remain in flux...</p>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-06-01#988">
  <rss:title>Contd: Ajax Database Connectivity Demos</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-06-02T02:48:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Last week I put out a series of screencast style demos that sought to demonstrate the core elements of our soon to be released Javascript Toolkit called OAT (OpenLink Ajax Toolkit) and its Ajax Database Connectivity layer. The screencasts covered the following functionality realms: SQL Query By Example (basic) SQL Query By Example (advanced - pivot table construction) Web Form Design (basic database driven map based mashup) Web Form Design (advanced database driven map based mashup) To bring additional clarity to the screencasts demos and OAT in general, I have saved a number of documents that are the by products of activities in the screenvcasts: Live XML Document produced using SQL Query By Example (basic) (you can use drag and drop columns across the grid to reorder and sort presentation) Live XML Document produced using QBE and Pivot Functionality (you can drag and drop the aggregate columns and rows to create your own views etc..) Basic database driven map based mashup (works with FireFox, Webkit, Camino; click on pins to see national flag) Advanced database driven map based mashup (works with FireFox, Webkit, Camino; records, 36, 87, and 257 will unveil pivots via lookup pin) Notes: “Advanced”, as used above, simply means that I am embedding images (employee photos and national flags) and a database driven pivot into the map pins that serve as details lookups in classic SQL master/details type scenarios. The “Ajax Call In Progress..” dialog is there to show live interaction with a remote database (in this case Virtuoso but this could be any ODBC, JDBC, OLEDB, ADO.NET, or XMLA accessible data source) The data access magic source (if you want to call it that) is XMLA - a standard that has been in place for years but completely misunderstood and as a result under utilized You can see a full collection of saved documents at the following locations: My Mashups demo directory (Google and Yahoo! demo variants but note these do not work with Safari or IE at the current time. IE7 issues will be resolved in the next day or so) My Pivots demo directory (other Pivots will be added as I build and save them) My Saved Queries (a collection of saved QBE generated queries)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p> Last week I put out a series of screencast style demos that sought to demonstrate the core elements of our soon to be released Javascript Toolkit called OAT (<a href="http://www.openlinksw.com/oat/">OpenLink Ajax Toolkit</a>) and its Ajax Database Connectivity layer. </p> <p> The screencasts covered the following functionality realms: </p> <ol> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=982">SQL Query By Example (basic)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=983">SQL Query By Example (advanced - pivot table construction)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=981">Web Form Design (basic database driven map based mashup)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=985">Web Form Design (advanced database driven map based mashup)</a> </li> </ol> <p> To bring additional clarity to the screencasts demos and OAT in general, I have saved a number of documents that are the by products of activities in the screenvcasts: </p> <ol> <li>   <a href="http://demo.openlinksw.com/public_demos/queries/customer_qry1.xml">Live XML Document produced using SQL Query By Example (basic)</a> (you can use drag and drop columns across the grid to reorder and sort presentation)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/Pivots/employee_sales_by_ship_country_pivot.xml">Live XML Document produced using QBE and Pivot Functionality</a> (you can drag and drop the aggregate columns and rows to create your own views etc..)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/country_flags_google_frm2.xml">Basic database driven map based mashup</a> (works with FireFox, Webkit, Camino; click on pins to see national flag)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/employee_sales_by_ship_country_pivot_google.xml">Advanced database driven map based mashup</a> (works with FireFox, Webkit, Camino; records, 36, 87, and 257 will unveil pivots via lookup pin)</li> </ol> <p> Notes: </p> <ul> <li>“Advanced”, as used above,  simply means that I am embedding images (employee photos and national flags) and a database driven pivot into the map pins that serve as details lookups in classic SQL master/details type scenarios.</li> <li>The “Ajax Call In Progress..” dialog is there to show live interaction with a remote database (in this case <a href="http://virtuoso.openlinksw.com">Virtuoso</a> but this could be any ODBC, JDBC, OLEDB, ADO.NET, or XMLA accessible data source)</li> <li>The data access magic source (if you want to call it that) is XMLA - a standard that has been in place for years but completely misunderstood and as a result under utilized</li> </ul> <p> You can see a full collection of saved documents at the following locations:   </p> <ul> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/">My Mashups demo directory</a> (Google and Yahoo! demo variants but note these do not work with Safari or IE at the current time. IE7 issues will be resolved in the next day or so) </li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/Pivots/">My Pivots demo directory</a> (other Pivots will be added as I build and save them) </li> <li>   <a href="http://demo.openlinksw.com/public_demos/queries/">My Saved Queries</a>  (a collection of saved QBE generated queries)</li> </ul>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#982">
  <rss:title>Screencast: Ajax Database Connectivity and SQL Query By Example</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T21:59:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">AJAX Database Connectivity is the Data Access Component of OAT (OpenLink AJAX Toolkit). It&#39;s basically an XML for Analysis (XMLA) client that enables the development and deployment of database independent Rich Internet Applications (RIAs). Thus, you can now develop database centric AJAX applications without lock-in at the Operating System, Database Connectivity mechanism (ODBC, JDBC, OLEDB, ADO.NET), or back-end Database levels. XMLA has been around for a long time. Its fundamental goal was to provide Web Applications with Tabular and Multi-dimensional data access before it fell off the radar (a story too long to tell in this post). AJAX Database connectivity only requires your target DBMS to be XMLA (direct), ODBC, JDBC, OLEDB, or ADO.NET accessible. I have attached a Query By Example (QBE) screencast movie enclosure to this post (should you be reading this post Web 1.0 style). The demo shows how Paradox-, Quattro Pro-, Access-, and MS Query-like user friendly querying is achieved using AJAX Database  Connect Connectivity</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
  AJAX Database Connectivity is the Data Access Component of OAT (<a href="http://www.openlinksw.com/oat/">OpenLink AJAX Toolkit</a>). It&#39;s basically an <a href="http://www.xmla.org/">XML for Analysis</a> (XMLA) client that enables the development and deployment of database independent Rich Internet Applications (RIAs). Thus, you can now develop database centric AJAX applications without lock-in at the Operating System, Database Connectivity mechanism (ODBC, JDBC, OLEDB, ADO.NET), or back-end Database levels. <br /> <br />XMLA has been around for a long time. Its fundamental goal was to provide Web Applications with Tabular and Multi-dimensional data access before it fell off the radar (a story too long to tell in this post).<br /> <br />AJAX Database connectivity only requires your target DBMS to be XMLA (direct), ODBC, JDBC, OLEDB, or ADO.NET accessible. <br /> <br />I have attached a Query By Example (QBE) screencast movie enclosure to this post (should you be reading this post Web 1.0 style). The demo shows how Paradox-, Quattro Pro-, Access-, and MS Query-like user friendly querying is achieved using AJAX Database  Connect Connectivity<br /> <br />]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2006-05-11#973">
  <rss:title>SPARQL Parameterized Queries (Virtuoso using SPARQL in SQL)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-11T18:54:47Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">SPARQL with SQL (Inline) Virtuoso extends its SQL3 implementation with syntax for integrating SPARQL into queries and subqueries.Thus, as part of a SQL SELECT query or subquery, one can write the SPARQL keyword and a SPARQL query as part of query text processed by Virtuoso&#39;s SQL Query Processor. Example 1 (basic) : Using Virtuoso&#39;s Command line or the Web Based ISQL utility type in the following (note: &quot;SQL&gt;&quot; is the command line prompt for the native ISQL utility): SQL&gt; sparql select distinct ?p where { graph ?g { ?s ?p ?o } }; Which will return the following: p varchar ---------- http://example.org/ns#b http://example.org/ns#d http://xmlns.com/foaf/0.1/name http://xmlns.com/foaf/0.1/mbox ... Example 2 (a subquery variation): SQL&gt; select distinct subseq (p, strchr (p, &#39;#&#39;)) as fragment from (sparql select distinct ?p where { graph ?g { ?s ?p ?o } } ) as all_predicates where p like &#39;%#%&#39; ; fragment varchar ---------- #query #data #name #comment ... Parameterized Queries: You can pass parameters to a SPARQL query using a Virtuoso-specific syntax extension. &#39;??&#39; or &#39;$?&#39; indicates a positional parameter similar to &#39;?&#39; in standard SQL. &#39;??&#39; can be used in graph patterns or anywhere else where a SPARQL variable is accepted. The value of a parameter should be passed in SQL form, i.e. this should be a number or an untyped string. An IRI ID can not be passed, but an absolute IRI can. Using this notation, a dynamic SQL capable client (ODBC, JDBC, ADO.NET, OLEDB, XMLA, or others) can execute parametrized SPARQL queries using parameter binding concepts that are common place in dynamic SQL. Which implies that existing SQL applications and development environments (PHP, Ruby, Python, Perl, VB, C#, Java, etc.) are capable of issuing SPARQL queries via their existing SQL bound data access channels against RDF Data stored in Virtuoso. Note: This is the Virtuoso equivalent of a recently published example using Jena (a Java based RDF Triple Store). Example: Create a Virtuoso Function by execting the following: SQL&gt; create function param_passing_demo (); { declare stat, msg varchar; declare mdata, rset any; exec (&#39;sparql select ?s where { graph ?g { ?s ?? ?? }}&#39;, stat, msg, vector (&#39;http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#int1&#39;, 4 ), -- Vector of two parameters 10, -- Max. result-set rows mdata, -- Variable for handling result-set metadata rset -- Variable for handling query result-set ); return rset[0][0]; } Test new &quot;param_passing_demo&quot; function by executing the following: SQL&gt; select param_passing_demo (); Which returns: callret VARCHAR _______________________________________________________________________________ http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#four 1 Rows. -- 00000 msec. Â  Using SPARQL in SQL Predicates: A SPARQL ASK query can be used as an argument of the SQL EXISTS predicate. create function sparql_ask_demo () returns varchar { if (exists (sparql ask where { graph ?g { ?s ?p 4}})) return &#39;YES&#39;; else return &#39;NO&#39;; }; Test by executing: SQL&gt; select sparql_ask_demo (); Which returns: _________________________ YES</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>SPARQL with SQL (Inline) </h2>

<p>Virtuoso extends its SQL3 implementation with syntax for integrating SPARQL into queries and subqueries.Thus, as part of a SQL SELECT query or subquery, one can write the SPARQL keyword and a SPARQL query as part of query text processed by Virtuoso&#39;s SQL Query Processor.</p>

<h4>Example 1 (basic) : </h4>
<p>Using Virtuoso&#39;s  Command line or the Web Based ISQL utility type in the following (note: &quot;SQL&gt;&quot; is the command line prompt for the native ISQL utility): </p>
<pre>SQL&gt; sparql select distinct ?p where { graph ?g { ?s ?p ?o } };</pre>
<p>Which will return the following: </p>
<blockquote>
  <pre>	  p varchar
     ----------
     http://example.org/ns#b
     http://example.org/ns#d
     http://xmlns.com/foaf/0.1/name
     http://xmlns.com/foaf/0.1/mbox
     ...   </pre>
</blockquote>
<h4>Example 2 (a subquery variation):</h4>

<pre>SQL&gt; select distinct subseq (p, strchr (p, &#39;#&#39;)) as fragment
 from (sparql select distinct ?p where { graph ?g { ?s ?p ?o } } ) as all_predicates
 where p like &#39;%#%&#39; ;</pre>
<blockquote>
  <pre>
     fragment varchar
     ----------
     #query
     #data
     #name
     #comment
     ...</pre>
</blockquote>
<h3>Parameterized Queries:</h3>
 <p>You can pass parameters to a SPARQL query using a Virtuoso-specific syntax extension. &#39;??&#39; or &#39;$?&#39; indicates a positional parameter similar to &#39;?&#39; in standard SQL. &#39;??&#39; can be used in graph patterns or anywhere else where a SPARQL variable is accepted. The value of a parameter should be passed in SQL form, i.e. this should be a number or an untyped string. An IRI ID can not be passed, but an absolute IRI can.
Using this notation, a dynamic SQL capable client (ODBC, JDBC, ADO.NET, OLEDB, XMLA, or others) can execute parametrized SPARQL queries using parameter binding concepts that are common place in dynamic SQL. Which implies that existing SQL applications and development environments (PHP, Ruby, Python, Perl, VB, C#, Java, etc.) are capable of issuing SPARQL queries via their existing SQL bound data access channels against RDF Data stored in Virtuoso. </p>
 <p>Note: This is the Virtuoso equivalent of a <a href="http://seaborne.blogspot.com/2006/05/parameterized-queries_07.html">recently published example using Jena </a>(a Java based RDF Triple Store).</p>
 <h3>Example:</h3>

<p>Create a Virtuoso Function by execting the following: </p>

<pre>SQL&gt; create function param_passing_demo ();
 {
 	declare stat, msg varchar;
 	declare mdata, rset any;
 	exec (&#39;sparql select ?s where { graph ?g { ?s ?? ?? }}&#39;,
 			stat, msg,
 			vector (&#39;http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#int1&#39;,
 		  		   4 ),	-- Vector of two parameters 
			10,			-- Max. result-set rows
			mdata, 		-- Variable for handling result-set metadata
 		 	rset   		-- Variable for handling query result-set
		 ); 
     return rset[0][0];
 }

</pre>
Test new &quot;param_passing_demo&quot; function by executing the following: <br />
<pre>SQL&gt; select param_passing_demo ();
</pre>
<p>Which returns: </p>
<blockquote>
  <pre>
callret VARCHAR
 _______________________________________________________________________________</pre>
  <pre>http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#four</pre>
  <pre>1 Rows. -- 00000 msec.</pre>
</blockquote>
<h3>Â </h3>

<h3>Using SPARQL in SQL Predicates:</h3>

<p>A SPARQL ASK query can be used as an argument of the SQL EXISTS predicate.</p>

<pre>create function sparql_ask_demo () returns varchar
  {
 		if (exists (sparql ask where { graph ?g { ?s ?p 4}})) return &#39;YES&#39;;
 		else return &#39;NO&#39;;
   };
</pre>

<p>
<br />
    Test by executing: </p>
<pre>SQL&gt; select sparql_ask_demo ();
</pre>
<p>Which returns:</p>
<pre>_________________________
YES</pre>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2005-02-25#695">
  <rss:title>Cognitive Dissonance</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-02-25T00:58:21Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Cognitive dissonance is how Dare Obasanjo aptly describes the emergence of some of the Smart Tags concepts previously introduced by Microsoft and now emulated by the new google toolbar&#39;s autolink feature (Greg Linden explains the problem with clarity). Anyway, back to cognitive dissonance. Could this be the reason for the following? Open Source products are increasingly database specific even though they could be database independent via Open Source ODBC SDK efforts such as iODBC and unixODBC. We increasingly narrowing our choices down to database specific &quot;Closed Source&quot; or database specific &quot;Open Source&quot; solutions and somehow deem this to be progress The prevalent use of free standards compliant data access drivers (ODBC, JDBC, and ADO.NET) or their native counterparts that remain vulnerable to simple password hacks (there are databases behind those dynamic web sites!!) as none of these have any notion of &quot;rules based&quot; authentication and data access policy The time-tested fallacy that: &quot;select * from table&quot; defines a viable RDBMS engine since Transaction Atomicity, Concurrency, Isolation, and Durability (ACID) mean zip! Ditto scrollable cursors, stored procedures, and other presumably useless aspects of any marginably decent RDBMS engine Failing to comprehend that a Weblog is your property (if you have a personal blog) not the property of the vendor hosting your service (that important issue of separating data ownership and data storage again). You may have heard about, or experienced, total loss of weblog and/or weblog archives arising from weblog engine or blog service provider changeovers Failing to see the synergy between personal/group/corporate information stores (aka infobase) such as Wikis, Weblogs, and the burgeoning semantic web. Jon Udell for instance, is trying to get the point across via his tireless collection of XQuery/XPath based queries aimed at the blogosphere section of the burgeoning semantic web. Here are some of mine (scoped to this weblog): Security related posts to date (XPath query) Infobase related posts to date (Free Text search) And more...</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://www.answers.com/main/ntquery?s=definition+cognitive+dissonance&method=2&gwp=13">Cognitive dissonance</a> is how <a href="http://blogs.msdn.com/dareobasanjo/archive/2005/02/17/375367.aspx">Dare Obasanjo</a>&nbsp;aptly describes the emergence of some&nbsp;of the <a href="http://www.answers.com/main/ntquery?s=smart+tags&method=2&gwp=13">Smart Tags </a>concepts previously introduced by Microsoft and now emulated by the new google toolbar's autolink feature&nbsp;(<a href="http://glinden.blogspot.com/">Greg Linden</a> explains the problem with <a href="http://glinden.blogspot.com/2005/02/autolink-in-google-toolbar.html">clarity</a>).</p>
<p>Anyway, back to cognitive dissonance. Could this be the reason for the following?</p>
<ol>
<li>Open Source products are increasingly database specific even though they could be database independent via Open Source ODBC SDK efforts such as <a href="http://www.iodbc.org">iODBC</a> and <a href="http://www.unixodbc.org">unixODBC</a>. We increasingly&nbsp;narrowing our choices down to database specific "Closed Source" or database specific "Open Source" solutions and somehow deem this&nbsp;to be&nbsp;progress<br></li>
<li>The prevalent use of free standards compliant data access&nbsp;drivers (<a href="http://en.wikipedia.org/wiki/ODBC">ODBC</a>, <a href="http://en.wikipedia.org/wiki/JDBC">JDBC</a>, and <a href="http://en.wikipedia.org/wiki/ADO.NET">ADO.NET</a>) or their native counterparts that remain vulnerable to simple password hacks (there are databases behind those dynamic web sites!!) as none of these have any notion of "rules based" authentication and data access policy<br></li>
<li>The time-tested fallacy that: "select * from table" defines a viable <a href="http://en.wikipedia.org/wiki/RDBMS">RDBMS</a> engine since Transaction Atomicity, Concurrency, Isolation, and Durability (ACID) mean zip! Ditto scrollable cursors, stored procedures, and other presumably useless aspects of any marginably decent RDBMS engine<br></li>
<li>Failing to comprehend that a <a href="http://en.wikipedia.org/wiki/Weblog">Weblog</a> is your property (if you have a personal blog) not the property of the vendor hosting your service (that important issue of separating data ownership and data storage again). You may have&nbsp;heard about, or experienced,&nbsp;total loss of weblog and/or weblog&nbsp;archives arising from weblog engine or blog service provider changeovers<br></li>
<li>Failing to see the synergy between personal/group/corporate information stores (aka <a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=infoBase&type=text&output=html">infobase</a>)&nbsp;such as Wikis, Weblogs, and the burgeoning semantic web. <a href="http://weblog.infoworld.com/udell/2005/02/22.html#a1183">Jon Udell</a>&nbsp;for instance, is trying to get the point across via his tireless collection of&nbsp;<a href="http://en.wikipedia.org/wiki/XML_query_language">XQuery</a>/<a href="http://en.wikipedia.org/wiki/XPath">XPath</a> based queries aimed at the blogosphere section of the burgeoning semantic web. Here are some of mine (scoped to this weblog):<br></li>
<ul>
<li>Security related posts to date (<a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=//p[contains%28.%2C%27security%27%29]&type=xpath&output=html">XPath</a> query)<br></li>
<li>Infobase related posts to date (<a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=infoBase&type=text&output=html">Free Text</a> search)<br></li></ul></ol>
<p>And more...</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2005-02-10#680">
  <rss:title>Email As A Platform</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-02-10T17:01:57Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Email As A Platform It looks like more people are starting to realize that email is more than it seems. Especially given the drastic increase in storage size of web-based email applications, more people are realizing that email is basically a personal database. People simply store information in their email, from contact information that was emailed to them to schedule information to purchase tracking from emailed receipts. Lots of people email messages to themselves, realizing that email is basically the best &quot;permanent&quot; filing system they have. That&#39;s part of the reason why good email search is so important. Of course, what the article doesn&#39;t discuss is the next stage of this evolution. If you have a database of important information, the next step is to build useful applications on top of it. In other words, people are starting to realize that email, itself, is a platform for personal information management. [via Techdirt]   Yep! And this is where the Unified Storage vision comes into play. Many years ago the same issues emerged in the business application realm, and at the time the issue at hand was: separating the DBMS engine from the Application logic. This is what the SQL Access Group (SAG) addressed via the CLI that laid the foundation for ODBC, JDBC, and recent derivatives; OLE DB and ADO.NET.   Most of us live inside our email applications and the need to integrate the content of emails, address books, notes, calendars with other data sources (Web Portal, Blogs, Wikis, CRM, ERP, and more) as part of our application interaction cycles and domain specific workflow is finally becoming obvious.  There is a need for separation of the application/service layer from the storage engine across each one of these functionality realms. XML, RDF, and Triple Stores (RDF / Semantic Data Stores) collectively provide a standards based framework for achieving this goal. On the other hand so does WinFS albeit total proprietary (by this I mean none standards compliant) at the current time.   As you can already see there are numerous applications (conventional or hosted) that address email, address books, bookmarking, notes, calendars, blogs, wikis, crm etc. specifically, but next to none that address the obvious need for transparent integration across each functionality realm - the ultimate goal.   Yes, you know what I am about to say! OpenLink Virtuoso is the platform for developing and/or implementing these next generation solutions. We have also decided to go one step further by developing a number of applications that demonstrate the vision (and ultimate reality); and each of these applications (and the inherent integration tapestry) will be the subject of a future Virtuoso Application specific post.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><a href="http://techdirt.com/articles/20050209/1329235_F.shtml">Email As A Platform</a> It looks like more people are starting to realize that email is more than it seems. Especially given the drastic increase in storage size of web-based email applications, more people are realizing that <a href="http://news.bbc.co.uk/2/hi/business/4167633.stm">email is basically a personal database</a>. People simply store information in their email, from contact information that was emailed to them to schedule information to purchase tracking from emailed receipts. Lots of people email messages to themselves, realizing that email is basically the best "permanent" filing system they have. That's part of the reason why good email search is so important. Of course, what the article doesn't discuss is the next stage of this evolution. If you have a database of important information, the next step is to build useful applications on top of it. In other words, people are starting to realize that email, itself, is a <i>platform</i> for personal information management. </p></blockquote>
<div align="right">[via <a href="http://www.techdirt.com/">Techdirt</a>]</div>
<div align="left">&nbsp;</div>
<div align="left">Yep! And this is where the Unified Storage vision comes into play. Many years ago the same issues emerged in the business application realm, and at the time the issue at hand was: separating the DBMS engine from the Application logic. This is what the SQL Access Group (SAG) addressed via the CLI that laid the foundation for ODBC, JDBC, and recent derivatives; OLE DB and ADO.NET. </div>
<div align="left">&nbsp;</div>
<div align="left">Most of us live inside our email applications and the need to integrate the content of emails, address books, notes, calendars with other data sources (Web Portal,&nbsp;Blogs, Wikis, CRM, ERP, and more)&nbsp;as part of our application interaction cycles and domain specific workflow is finally becoming obvious.&nbsp; There is a need for separation of the application/service layer&nbsp;from the storage engine across each one of these functionality realms. XML, RDF, and Triple Stores (RDF / Semantic Data Stores) collectively provide a standards based framework for achieving this goal. On the other hand so does WinFS albeit total proprietary (by this I mean none standards compliant) at the current time.</div>
<div align="left">&nbsp;</div>
<div align="left">As you can already see there&nbsp;are numerous applications (conventional or hosted) that address email, address books, bookmarking, notes, calendars, blogs, wikis, crm etc. specifically, but next to none that address the obvious&nbsp;need&nbsp;for transparent integration across each functionality realm&nbsp;- the ultimate goal.</div>
<div align="left">&nbsp;</div>
<div align="left">Yes, you know what I am about to say! <a href="http://virtuoso.openlinksw.com">OpenLink Virtuoso</a> is the platform for developing and/or implementing these next generation solutions. We have also decided to go one step further by developing a number of applications that demonstrate the&nbsp;vision (and ultimate reality);&nbsp;and each of these applications (and the inherent integration tapestry) will be the&nbsp;subject of a future Virtuoso Application specific&nbsp;post.</div>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-05-17#546">
  <rss:title>Preventable SQL DBMS Vulnerabilities</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-05-18T00:42:08Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Here are some excerpts (inlined) with my comments (outlined) from an interesting article on SQL DBMS exploits and vulnerabilities by Aaron C. Newman, for DB2 Magazine titled &quot;6 Security Secrets Attackers don&#39;t want You To Know&quot;. How secure is your data? Looking at your information management resources through a would-be intruder&#39;s eyes can help you find (and fix) vulnerabilities. Naturally :-) When E. F. Codd developed his relational data model in 1970, the business world was a different place. Almost 35 years after his seminal work appeared, RDBMSs that sprung from Codd&#39;s ideas are the standard for storing corporate information. And, with government and industry regulations dictating what kinds of information companies have to store, manage, and audit (and for how long), protecting this information is more important than ever. Unfortunately, it&#39;s also more challenging Even in 1985, when Dr. Codd published 12 guidelines for RDBMSs, there was little concern for data security. In those days, gaining access to a database was so difficult that advanced security features on the database were irrelevant. Today, RDBMSs carry the lifeblood of every organization. Note the use of the plural: Organizations now have many databases that are decentralized in terms of use and security controls. E-business demands that data access be extended to customers, partners, suppliers, and other parties who were rarely considered in the early data management days. With all this availability ? not to mention pressure from an array of government and industry regulations (see the sidebar, &quot;Security and Compliance&quot;) ? the need to control exactly who can access or modify data is becoming paramount. Absolute facts, that are still partially understood at best. For instance we are still in a so called &quot;Information Age&quot; in which standards based data access remains an issue of contempt instead of absolute necessity. There are a number of prevailing myths about standards based data access that continue to cloak reality: ODBC, JDBC, ADO.NET, OLEDB all deliver poor performance (compared to their native, proprietary, and database specific counterparts; native interfaces) You can&#39;t really right generic database applications with these standards due to inconsistencies in the DBMS implementations of SQL (not true! there are many aspects of the specs that address these concerns if only a majority of driver vendors would implement these features, and the application developers actually used them by seeking drivers with full implementations). Even if the above were true (which I refute strongly), how about the general security vulnerabilities that affect both Native, and Standards compliant, data access interfaces? Aaron&#39;s article does a good job of highlighting 6 areas of vulnerability: DBMS Defaults (usernames and passwords) Authentication (at connect time) Database Privileges Fixpaks Buffer Overflows SQL Injection What I have been able to do very quickly (thanks to blogging, and the power of a blog engine that supports WebDAV), is write a tabulated response to each of the items (bar Fixpaks) indicating how the OpenLink Multi-Tier Data Access Drivers (for ODBC, JDBC, ADO.NET, and OLEDB) protect corporate databases from each of these vulnerabilities. To cut a long story short, we are increasingly living a contradiction where the terms &quot;simple&quot; and &quot;free&quot; are supposed to lead us to products that can adequately handle the challenges of an increasingly sophisticated grid of inter-connecting point. I have been asked on numerous occassions, &quot;How can you build a company and business based on data access technology?&quot;. My reply is the same as usual, &quot;because everything comes down to data&quot;. If the data is compromised in anyway, then kiss Information, Knowledge, and everything else goodbye!  </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Here are some excerpts (inlined) with my comments (outlined)&nbsp;from an <a href="http://www.db2mag.com/showArticle.jhtml?articleID=18901175">interesting article</a>&nbsp;on SQL DBMS exploits and vulnerabilities by <a href="http://www.appsecinc.com/">Aaron C. Newman</a>, for <a href="http://www.db2mag.com/show">DB2 Magazine</a>&nbsp;titled "6 Security Secrets Attackers don't want You To Know".</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>How secure is your data? Looking at your information management resources through a would-be intruder's eyes can help you find (and fix) vulnerabilities.</p></blockquote>
<p dir="ltr">Naturally :-)</p>
<p></p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>When E. F. Codd developed his relational data model in 1970, the business world was a different place. Almost 35 years after his seminal work appeared, RDBMSs that sprung from Codd's ideas are the standard for storing corporate information. And, with government and industry regulations dictating what kinds of information companies have to store, manage, and audit (and for how long), protecting this information is more important than ever. Unfortunately, it's also more challenging</p>
<p>Even in 1985, when <a href="http://www.databaseanswers.com/codds_rules.htm">Dr. Codd published 12 guidelines for RDBMSs</a>, there was little concern for data security. In those days, gaining access to a database was so difficult that advanced security features on the database were irrelevant. </p>
<p>Today, RDBMSs carry the lifeblood of every organization. Note the use of the plural: Organizations now have many databases that are decentralized in terms of use and security controls. E-business demands that data access be extended to customers, partners, suppliers, and other parties who were rarely considered in the early data management days. With all this availability ? not to mention pressure from an array of government and industry regulations (see the sidebar, <a href="http://www.db2mag.com/showArticle.jhtml?articleID=18901175#sidebar">"Security and Compliance"</a>) ? the need to control exactly who can access or modify data is becoming paramount. </p></blockquote>
<p dir="ltr">Absolute facts, that are still partially understood at best. For instance we are still in a so called "Information Age" in which standards based data access remains an issue of contempt instead of absolute necessity. </p>
<p dir="ltr">There are a number of prevailing myths about standards based data access that continue to cloak reality:</p>
<ol dir="ltr">
<li>
<div>ODBC, JDBC, ADO.NET, OLEDB all deliver poor performance (compared to their native, proprietary, and database specific counterparts; native interfaces)<br></div></li>
<li>
<div>You can't really right generic database applications with these standards due to inconsistencies in the DBMS implementations of SQL (not true! there are many aspects of the specs that address these concerns if only a majority of driver vendors would implement these features, and the application developers actually used them by seeking drivers with full implementations).</div></li></ol>
<p>Even if the above were true (which I refute strongly), how about the general security vulnerabilities that affect both Native, and Standards compliant, data access interfaces?</p>
<p>Aaron's article does a good job of highlighting 6 areas of vulnerability:</p>
<ol>
<li>
<div>DBMS Defaults (usernames and passwords)</div></li>
<li>
<div>Authentication (at connect time)</div></li>
<li>
<div>Database Privileges</div></li>
<li>
<div>Fixpaks </div></li>
<li>
<div>Buffer Overflows</div></li>
<li>
<div>SQL Injection</div></li></ol>
<p>What I have been able to do very quickly (thanks to blogging, and the power of a blog engine that supports <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=543">WebDAV</a>), is write a <a href="http://www.openlinksw.com/blog/~kidehen/articles/uda_rule_book_sql_attacks.htm">tabulated response to each of the items </a>(bar Fixpaks) indicating how the <a href="http://www.openlinksw.com/info/mtproduct.htm">OpenLink Multi-Tier Data Access Drivers </a>(for ODBC, JDBC, ADO.NET, and OLEDB) protect corporate databases from each of these vulnerabilities.</p>
<p>To cut a long story short, we are increasingly living a contradiction where the terms "simple" and "free" are supposed to lead us to products that can adequately handle the challenges of an increasingly sophisticated grid of inter-connecting point. </p>
<p>I have been asked on numerous occassions, "How can you build a company and business based on data access technology?". My reply is the same as usual, "because everything comes down to data". If the data is compromised in anyway, then kiss Information, Knowledge, and everything else goodbye!</p>
<table align="right" border="0" cellpadding="5" cellspacing="0" width="336">
<tbody>
<tr>
<td></td></tr></tbody></table>
<p>&nbsp;</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#499">
  <rss:title>Customer demand for a ubiquitous InfoPath runtime</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-04-06T18:55:04Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS? So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow! How about InfoPath emitting XForms compliant forms? Even better, what about</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS?</p>
<p dir="ltr">So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow!</p>
<p dir="ltr">How about InfoPath emitting XForms compliant forms? Even better, what about</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#506">
  <rss:title>Customer demand for a ubiquitous InfoPath runtime</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-04-06T18:55:04Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS? So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow! How about InfoPath emitting XForms compliant forms? Even better, what about</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS?</p>
<p dir="ltr">So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow!</p>
<p dir="ltr">How about InfoPath emitting XForms compliant forms? Even better, what about</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2004-03-23#482">
  <rss:title>Demo Hell and back</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-03-23T20:04:04Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">This piece links to a great Mono presentation (bar the reference placement of MySQL/PostgreSQL in a box somewhat adjacent to ADO.NET (see slide 7). When ADO.NET should have be associated with Data Providers for ODBC, MySQL, PostgresSQL, and others for clarity (the natural goal of the presentation). We have got to take time to understand the Data Access Layer, if we don&#39;t we will utlimately pay a hefty price (IMHO). This blog post is also hillarious, especially if you have encountered the mercurial &quot;Murphy&quot; during live product demos. So, today I went to hell. And then I came back. It was a short trip. This year, I am giving a presentation on Mono at Brainshare in Salt Lake City, an intro to Mono for developers. I got a pretty good turnout with a few ximian people in the back (including Joe whom I saw for the first time without a hat).   So I plug in my PowerBook 12&quot; as I always do but for some reason I have a hard time getting the projector to display its output. After struggling a little I resort to using the desktop provided by Novell, running Ximian Desktop 2 (and some version Suse Linux). So I upload my presentation to www.frenchguys.com from my mac and then download it back to the desktop. Now I can make my presentation, which goes well. Then I get to a slide that just says : DEMO. Hmmm. Demo. I don&#39;t have Mono installed on that generic machine I was just given. I am going to need magic. So to magic I resort. [via Monologue]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This piece links to a great <a href="http://www.frenchguys.com/temp/Mono.ppt">Mono presentation</a>&nbsp;(bar the reference&nbsp;placement of&nbsp;MySQL/PostgreSQL in a box somewhat adjacent to ADO.NET (see slide 7). When ADO.NET should have be associated with Data Providers for ODBC, MySQL, PostgresSQL, and others for clarity (the natural goal of the presentation).</p>
<p>We have got to take time to understand the Data Access Layer, if we don't we will utlimately <a href="http://www.securityfocus.com/archive/1/358200">pay a hefty price </a>(IMHO).</p>
<p>This blog post is also hillarious, especially if you have encountered the mercurial "Murphy" during live product demos.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>So, today I went to hell. And then I came back. It was a short trip.</p>
<p>This year, I am giving a presentation on Mono at Brainshare in Salt Lake City, an intro to Mono for developers. I got a pretty good turnout with a few ximian people in the back (including Joe whom I saw for the first time without a hat).</p></blockquote>
<p dir="ltr">&nbsp;</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>So I plug in my PowerBook 12" as I always do but for some reason I have a hard time getting the projector to display its output. After struggling a little I resort to using the desktop provided by Novell, running Ximian Desktop 2 (and some version Suse Linux).</p>
<p>So I upload my <a href="http://www.frenchguys.com/temp/Mono.ppt" target="_blank">presentation</a> to <a href="http://www.frenchguys.com/" target="blank">www.frenchguys.com</a> from my mac and then download it back to the desktop. Now I can make my presentation, which goes well. Then I get to a slide that just says : <b>DEMO</b>. Hmmm. Demo. I don't have Mono installed on that generic machine I was just given. I am going to need magic. So to magic I resort.</p></blockquote>
<p align="right">[via <a href="http://go-mono.com/monologue">Monologue</a>]</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-10-31#410">
  <rss:title>Replace and defend -- Contd</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-10-31T20:58:52Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Reading the Longhorn SDK docs is a disorienting experience. Everything&#39;s familiar but different. Consider these three examples: [Full story: Replace and defend via Jon&#39;s Radio] &quot;Replace &amp; Defend&quot; is certainly a strategy that would have awakened the entire non Microsoft Developer world during the recent PDC event. I know these events are all about preaching to the choir (Windows only developers), but as someone who has worked with Microsoft technologies as an ISV since the late 80&#39;s there is something about this events announcements that leave me concerned. Ironically these concerns aren&#39;t about the competitive aspects of their technology disruptions, but more along the lines of how Microsoft (I hope inadvertently) generates the kinds of sentiments echoed in the comments thread from Scobles recent &quot;How to hate Microsoft&quot; post. As indicated in my response to this post, I don&#39;t believe Microsoft is as bad or evil as is instinctively assumed in many quarters, but I can certainly understand why they are hated by others which is really unfortunate, especially bearing in mind that they have done more good than harm to date (in my humble opinion) . Anyway, back to my concerns post PDC which I break down as follows: Disruptive assaults on existing standards with the only benefit being Microsoft platform centricity. Jon Udell addressed this in his &quot;Replace and Defend&quot; post (which kicked of this post), and I see exactly what he sees here, and I don&#39;t see any reason for this approach whatsoever. Even if one of these standards was deficient what stops the Microsoft from addressing these deficiencies, and then should the W3C&#39;s standards acceptance and ratification process bogs things down at least let the industry know you gave it openness a chance but have to move on etc.. Gradual obsolescence of existing Microsoft standards which used to provide interfaces for 3rd party ISV partners, and replacing these with totally closed infrastructure implementations that bind to Microsoft products only.  A good example is WinFS, I believe in the unified data storage concept, it&#39;s a vision that I&#39;ve believed in for many years, but there is no notion from any PDC presentation or Blog that I have read so far (I aggregate a serious number of feeds) that Microsoft is committed to an architectural strategy that enables 3rd party ISVs to hook their data stores and data sources into this storage infrastructure - it&#39;s simply about Yukon (SQL Server) and that&#39;s basically it. WinFS needs to architecturally separate the System Provider from the Data Provider (pretty much the OLE-DB architecture) with Microsoft naturally providing reference System Provider (pretty much what was demonstrated at PDC) and Data Provider (ADO.NET, OLE DB, and ODBC) implementations. Third parties can choose to produce custom WinFS Service or Data Providers which serve their data access needs. It&#39;s impractical to want to force every non SQL Server customer over to SQL Server in order them to exploit WinFS, and I certainly hope this isn&#39;t the definitive strategy at Microsoft.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P dir=ltr style="MARGIN-RIGHT: 0px">Reading the Longhorn SDK docs is a disorienting experience. Everything's familiar but different. Consider these three examples: </P>
<P dir=ltr style="MARGIN-RIGHT: 0px">[Full story: <A href="http://weblog.infoworld.com/udell/2003/10/31.html#a836">Replace and defend</A> via <A href="http://weblog.infoworld.com/udell/">Jon's Radio</A>]</P></BLOCKQUOTE>
<P dir=ltr style="MARGIN-RIGHT: 0px">"Replace &amp; Defend" is certainly a strategy that would have awakened the entire non Microsoft Developer world during the recent PDC event. I know these events are all about preaching to the choir (Windows only developers), but as someone who has worked with Microsoft technologies as an ISV since the late 80's there is something about this events announcements that leave me concerned. </P>
<P dir=ltr style="MARGIN-RIGHT: 0px">Ironically these concerns aren't about the competitive aspects of their technology disruptions, but more along the lines of how&nbsp;Microsoft (I hope inadvertently) generates the kinds of sentiments echoed in the <A href="http://longhornblogs.com/scobleizer/posts/345.aspx#FeedBack">comments thread </A>from <A href="http://longhornblogs.com/">Scobles</A> recent <A href="http://longhornblogs.com/scobleizer/posts/345.aspx">"How to hate Microsoft"</A> post. As indicated in my response to this post,&nbsp;I don't believe&nbsp;Microsoft is as bad or evil as is instinctively assumed in many quarters, but I can certainly understand why they&nbsp;are hated by others which is really unfortunate, especially&nbsp;bearing in mind that they have done more good than harm&nbsp;to date&nbsp;(in my humble&nbsp;opinion)&nbsp;. </P>
<P dir=ltr style="MARGIN-RIGHT: 0px">Anyway, back to my concerns post PDC which I break down as follows:</P>
<OL dir=ltr>
<LI>
<DIV style="MARGIN-RIGHT: 0px">Disruptive assaults on existing standards with the only benefit being Microsoft platform centricity. <A href="http://weblog.infoworld.com/udell/2003/10/31.html#a836">Jon Udell addressed this in his "Replace and Defend" post </A>(which kicked of this post), and I see exactly what he sees here, and I don't see any reason for this approach whatsoever. Even if one of these standards was deficient what stops the&nbsp;Microsoft from addressing these deficiencies, and then should the W3C's standards acceptance and ratification process bogs things down at least let the industry know you gave it openness a chance&nbsp;but have to move on etc.. <BR><BR></DIV></LI>
<LI>
<DIV style="MARGIN-RIGHT: 0px">Gradual obsolescence of existing Microsoft standards which used to provide interfaces for 3rd party ISV partners, and replacing these with totally closed infrastructure implementations that bind to Microsoft products only.&nbsp; A good example is <A href="http://msdn.microsoft.com/longhorn/default.aspx?pull=/msdnmag/issues/04/01/WinFS/default.aspx">WinFS</A>, I believe in the unified data storage concept, <A href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=406">it's a vision that I've believed in for&nbsp;many years</A>, but there is no notion&nbsp;from any PDC presentation or Blog that I have&nbsp;read so far (I aggregate&nbsp;a serious number of feeds)&nbsp;that Microsoft is committed to an architectural strategy that enables 3rd party ISVs to hook their data stores and data sources into this storage infrastructure -&nbsp;it's simply about <A href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=407">Yukon (SQL Server)</A> and that's basically it.</DIV></LI></OL>
<P style="MARGIN-RIGHT: 0px">WinFS needs to architecturally separate the <STRONG>System Provider</STRONG> from the <STRONG>Data Provider</STRONG> (pretty much the OLE-DB architecture)&nbsp;with Microsoft&nbsp;naturally providing reference System Provider (pretty much what was demonstrated at PDC)&nbsp;and Data Provider (ADO.NET, OLE DB, and ODBC) implementations. Third parties can choose to produce custom WinFS Service or Data Providers which serve their data access needs. It's impractical to want to force every non SQL Server customer over to SQL Server in order them to exploit WinFS, and I certainly hope this isn't the definitive strategy at Microsoft.</P>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-08-05#232">
  <rss:title>Howl is Rendezvous for Windows and Linux</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-08-05T19:18:55Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Very interesting, we have basically ported Zeroconfig as released by Apple (in Open Source) too, and used it in both our Virtuoso 3.x and UDA 5.x products. Howl is Rendezvous for Windows and Linux. [via Scripting News] In the case of UDA you can configure ODBC and JDBC consumable data source names that are hosted on the server. Users can nownbspsimply picknbspDSNs from anbspcombo box and they are ready to make connections to remote databases from any ODBC, JDBC, OLE DB, or ADO.NET application.nbspAnother benefit ofnbspZeroconfignbspis that it facilitates centralized server side configuration which further enhances our server side session rules book;nbspwhich serves all our Multi-Tier data access drivers. In the case of Virtuoso you are able to bind to pre-configured Virtuoso instances in exactly the same way. Our Zeroconfig support has beennbspimplemented across Solaris, AIX, Digital UNIX, IRIX, HP-UX amongst others, but this is a project of interest all the same, and we may end up contributing to this effort.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr">Very interesting, we have basically ported Zeroconfig as released by Apple (in Open Source) too, and used it in both our <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> 3.x and <a href="http://www.openlinksw.com/product.htm">UDA</a> 5.x products.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><a href="http://www.swampwolf.com/products/">Howl</a> is Rendezvous for Windows and Linux. [via <a href="http://www.scripting.com/">Scripting News</a>]</p></blockquote>
<p dir="ltr">In the case of UDA you can configure ODBC and JDBC consumable data source names that are hosted on the server. Users can nownbspsimply picknbspDSNs from anbspcombo box and they are ready to make connections to remote databases from any ODBC, JDBC, OLE DB, or ADO.NET application.nbspAnother benefit ofnbspZeroconfignbspis that it facilitates centralized server side configuration which further enhances our server side session rules book;nbspwhich serves all our Multi-Tier data access drivers.</p>
<p dir="ltr">In the case of Virtuoso you are able to bind to pre-configured Virtuoso instances in exactly the same way.</p>
<p dir="ltr">Our Zeroconfig support has beennbspimplemented across Solaris, AIX, Digital UNIX, IRIX, HP-UX amongst others, but this is a project of interest all the same, and we may end up contributing to this effort.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-07-30#209">
  <rss:title>VSIP program free of charge</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-07-30T21:46:48Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Microsoft just made the VSIP program free of charge. Awesome. [via The Scobleizer Weblog] Now this is good news from Microsoft! This means that products like Virtuoso can now compete head-on with Yukon (on a level playing field when it arrives) as far as Visual Studio.NET integration goes. Hopefully I will no longer have to rant about any of the following: Missing Data Access Controls and Wizards for ODBC (we already have annbsp interesting Generic ADO.NET Provider en route to GA release) Tightly bound integration between Visual Studio.NET (&quot;Whidbey&quot; or &quot;Orcas&quot;)nbspand Yukon (next release of SQL Server), it&#39;s up to us (OpenLink) to get the same degree of integration re. Virtuoso (via VSIP), but most importantly Visual Studio&#39;s future will not be inextricably linked to Yukon&#39;s (let&#39;s hope the same applies to IE and Longhorn) I wonder if the same degree of openness could extend to Web Matrix? That would be something indeed!</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr">Microsoft just made the <a href="http://www.vsipdev.com/">VSIP program free of charge</a>. Awesome.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p dir="ltr">[via <a href="http://radio.weblogs.com/0001011/">The Scobleizer Weblog</a>]</p></blockquote>
<p>Now this is good news from Microsoft! This means that products like <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> can now compete head-on with Yukon (on a level playing field when it arrives) as far as Visual Studio.NET integration goes. Hopefully I will no longer have to rant about any of the following:</p>
<ol>
<li>Missing Data Access Controls and Wizards for ODBC (we already have annbsp interesting Generic ADO.NET Provider en route to GA release)</li>
<li>Tightly bound integration between Visual Studio.NET <a href="http://www.microsoft.com/presspass/press/2003/Jul03/07-29InnovationListPR.asp">("Whidbey" or "Orcas")</a>nbspand Yukon (next release of SQL Server), it's up to us (OpenLink) to get the same degree of integration re. Virtuoso (via VSIP), but most importantly Visual Studio's future will not be inextricably linked to Yukon's (let's hope the same applies to IE and Longhorn)</li></ol>
<p>I wonder if the same degree of openness could extend to Web Matrix? That would be something indeed!</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-18#282">
  <rss:title>What&#39;s new in Web Matrix ?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-18T12:02:22Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">I had been anticipating the release of Web Matrix 2.0, but was pretty disappointed with the blatant attempts to lock users into SQL Server and ACCESS (of course I know that manual imports are possible re. my .net provider for non Microsoft databases, but that&#39;s beside the point). From the feature list: Easy Data UI Generation.  Web Matrix makes it easy to create data bound pages without writing code. Drop SQL/MSDE or Access tables on your page to create data-bound grids, or start with Data Page templates for reports or Master/Detail pages. Code builders help you generate code to select, insert, update and delete SQL/MSDE or Access data.  [via WebLogs @ ASP.NET] It only makes it easy for two databases which are both Microsoft owned? What really baffles me is why they don&#39;t use ADO.NET, by the way this is their own data abstraction technology. The same approach has also been applied to InfoPath and this is certainly a disturbing trend for unsuspecting end-users, developers, systems architects, and decision makers. Before you know it you lose your database choices.   Could this be an oversight on the part of Microsoft? I don&#39;t think so somehow, we are taking a very interesting journey here from database independence to database specificity ( ODBC-&gt;OLEDB-ADO.NET-[SQL Server|Acces] ), all in a quest to covertly reduce choices (I think I&#39;ve seen this movie before! And I might have to rewrite the script).  </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P>I had been anticipating the release of Web Matrix 2.0, but was pretty disappointed with the blatant attempts to lock users into SQL Server and ACCESS (of course I know that manual imports are possible re. my .net provider for non Microsoft databases, but that's beside the point). From the feature list:</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><STRONG>Easy Data UI Generation</STRONG>.&nbsp; Web Matrix makes it easy to create data bound pages without writing code. Drop SQL/MSDE or Access tables on your page to create data-bound grids, or start with Data Page templates for reports or Master/Detail pages. Code builders help you generate code to select, insert, update and delete SQL/MSDE or Access data.&nbsp;<BR><FONT face=Verdana size=2>&nbsp;</FONT>[via <A href="http://weblogs.asp.net/">WebLogs @ ASP.NET</A>]</P></BLOCKQUOTE>
<DIV>It only makes it easy for two databases which are both Microsoft owned? What really baffles me is why they don't use ADO.NET, by the way this is&nbsp;their own data abstraction technology. The same approach has also been applied to InfoPath and this is certainly a disturbing trend for unsuspecting end-users, developers, systems architects, and decision makers. Before you know it you lose your database choices. </DIV>
<DIV>&nbsp;</DIV>
<DIV>Could this be an oversight on the part of Microsoft? I don't think so somehow, we are taking a very interesting journey here from database independence to database specificity ( ODBC-&gt;OLEDB-ADO.NET-[SQL Server|Acces] ), all in a quest to covertly reduce choices (I think I've seen this movie before! And I might have to rewrite the script).</DIV>
<DIV>&nbsp;</DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-17#279">
  <rss:title>Ingres - A Forgotten Database, the untold story</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-17T11:18:57Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Ingres - A Forgottent Database The Untold Story Ingres (technically, Advantage Ingres Enterprise) is, arguably, the forgotten database. There used to be five major databases: Oracle, DB2, Sybase, Informix and Ingres. Then along came Microsoft and, if you listened to most press comment (or the lack of it), you would think that there were only two of these left, plus SQL Server. [From IT-Director] Oracle, Microsoft, and IBM would certainly like the illusion of a 3 horse race, as this is the only way they can induce Ingres, Informix, and Sybase users to jump ship, and this, even though database migrations are by far the most risk prone and problematic aspects of any IT infrastructure. Here is the interesting logic from the self-made big three, if you want to take advanatage of new paradigms and technologies such as XML, Web Services, and anything else in the pipeline you have to move all your data out of these databases, and then get all the mission critical applications re-associated with one of these databases, and by the way when you do so it is advisable that you use native interfaces (so that sometime in the future you have no chance whatsoever of repeating this folly at their expense). The simple fact of the matter (which the self-made big three do not want you to know) is that you can put ODBC, JDBC, even platform specific data access APIs such as OLE DB and ADO.NET atop any of these databases, and then explore and exploit the benefits of new technologies and paradigms as long as the tool pool supports one of more of these standards. Unfortunately the no-brainer above appears to be the more difficult of the choices before decision makers. In other words, many would rather dig themselves into a deeper hole (unknowingly i can only presume) that ultimately leads to technology lock-in. The biggest challenge before any RDBMS based infrastructure today isn&#39;t which of the self-made big three to migrate to wholesale, rather, how to make progressive use of the pool of disparate applications, and application databases that proliferate the enterprise. This is another way of understanding the burgeoning market for Virtual Databases, which in my opiion present the new frontier in database technology.  </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P><A href="http://www.it-director.com/article.php?articleid=10951">Ingres - A Forgottent Database The Untold Story</A></P>
<P><EM>Ingres (technically, Advantage Ingres Enterprise) is, arguably, the forgotten database. There used to be five major databases: Oracle, DB2, Sybase, Informix and Ingres. Then along came Microsoft and, if you listened to most press comment (or the lack of it), you would think that there were only two of these left, plus SQL Server</EM>. [From <A href="http://www.it-director.com/article.php?articleid=10951">IT-Director</A>]</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Oracle, Microsoft, and IBM would certainly like the illusion of a 3 horse race, as this is the only way they can induce Ingres, Informix, and Sybase users to jump ship, and this, even though database migrations are by far the most risk prone and problematic aspects of any IT infrastructure. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Here is the interesting logic from the self-made big three, if you want to take advanatage of new paradigms and technologies such as XML, Web Services, and anything else in the pipeline you have to move all your data out of these databases, and then get all the mission critical applications re-associated with one of these databases, and by the way when you do so it is advisable that you use native interfaces (so that sometime in the future you have no chance whatsoever of repeating this folly at their expense).<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The simple fact of the matter (which the self-made big three do not want you to know) is that you can put ODBC, JDBC, even platform specific data access APIs such as OLE DB and ADO.NET atop any of these databases, and then explore and exploit the benefits of new technologies and paradigms as long as the tool pool supports one of more of these standards.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Unfortunately the no-brainer above appears to be the more difficult of the choices before decision makers. In other words, many would rather dig themselves into a deeper hole (unknowingly i can only presume) that ultimately leads to technology lock-in.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The biggest challenge before any RDBMS based infrastructure today isn't which of the self-made big three to migrate to wholesale, rather, how to make progressive use of the pool of disparate applications, and application databases that proliferate the enterprise. <o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This is another way of understanding the burgeoning market for Virtual Databases, which in my opiion present the new frontier in database technology.<o:p></o:p></SPAN></P>
<P>&nbsp;</P></BLOCKQUOTE>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#352">
  <rss:title>Borland, Microsoft Move Closer on Databases</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-02T23:49:19Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Borland, Microsoft Move Closer on Databases Borland, Microsoft Move Closer on Databases The two competitors put differences aside to push a new environment on the .NET Framework. [via Internet Product News] Ah! Now I get it, let&#39;s be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don&#39;t realize that ADO.NET pretty much ensures some degree of DB independence (ODBC delivers the real thing for SQL. but that&#39;s old hat! Not!).     [via Kingsley Idehen&#39;s Weblog]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://demo2.usnet.private:8890/blog/kidehen@openlinksw.com/blog/index.vsp?date=2003-06-02#81">Borland, Microsoft Move Closer on Databases</A> 
<P><A href="http://redir.internet.com/rss/prod-news/www.internetnews.com/infra/article.php/2215361">Borland, Microsoft Move Closer on Databases</A> The two competitors put differences aside to push a new environment on the .NET Framework. [via <A href="http://ipw.internet.com/news.html">Internet Product News</A>]</P>
<P><EM>Ah! Now I get it, let's be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don't realize that ADO.NET pretty much ensures some degree of DB independence (ODBC delivers the real thing for SQL. but that's old hat! Not!).</EM></P>
<P><EM></EM>&nbsp;</P>
<P>&nbsp;</P>
<DIV></DIV>
<DIV align=right>[via <A href="http://demo2.usnet.private:8890/blog/kidehen@openlinksw.com/blog">Kingsley Idehen's Weblog</A>]
<DIV></DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#351">
  <rss:title>Borland, Microsoft Move Closer on Databases</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-02T17:37:45Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Borland, Microsoft Move Closer on Databases The two competitors put differences aside to push a new environment on the .NET Framework. [via Internet Product News] Ah! Now I get it, let&#39;s be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don&#39;t realize that ADO.NET pretty much ensure some degree of DB independence (ODBC delivers the real thing for SQL. but that&#39;s old hat! Not).    </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P><A href="http://redir.internet.com/rss/prod-news/www.internetnews.com/infra/article.php/2215361">Borland, Microsoft Move Closer on Databases</A> The two competitors put differences aside to push a new environment on the .NET Framework. [via <A href="http://ipw.internet.com/news.html">Internet Product News</A>]</P>
<P><EM>Ah! Now I get it, let's be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don't realize that ADO.NET pretty much ensure some degree of DB independence (ODBC delivers the real thing for SQL. but that's old hat! Not).</EM></P>
<P><EM></EM>&nbsp;</P>
<P>&nbsp;</P>
<DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#319">
  <rss:title>&lt;big&gt;SQL Injection FAQ &lt;/big&gt;</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-21T22:27:45Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">SQL Injection FAQ Â http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3Â  Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection? Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. http://www.owasp.orgWhat is SQL Injection and why is all this information not included in the regular FAQ? SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer. Â  Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ.Â  In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers.Â  However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted. What causes SQL Injection? SQL injection is usually caused by developers who use &quot;string-building&quot; techniques in order to execute SQL code.Â  For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown): Set myRecordset = myConnection.execute(&quot;SELECT * FROM myTable WHERE someText =&#39;&quot; &amp; request.form(&quot;inputdata&quot;) &amp; &quot;&#39;&quot;) The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation.Â  We are trusting that user has not entered something malicious - something like the innocent looking single quote (&#39;).Â  Let&#39;s consider what would happen if a user entered the following text into the search form: &#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39; -- Then, when the query string is assembled and sent to SQL Server, the server will process the following code: SELECT * FROM myTable WHERE someText =&#39;&#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39;--&#39; Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database.Â  If this application were running as &#39;sa&#39; and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine.Â  Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer&#39;s code. More Very intresting that these are all Native Interface based exploits.Â  So the security issue isn&#39;t ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p align="center"><font color="#0080c0" size="2"><big><strong><big>SQL Injection FAQ </big></strong></big></font></p>
<p align="center">
</p><p align="center"><strong><font color="red"></font></strong></p><strong><font color="red">Â </font></strong><a href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=3"><strong><font color="red"><a href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3">http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3</a><br /></font></strong></a><strong><font color="red">Â </font></strong> <br />
<div align="center">
<center>
<table width="80%" border="0">
<tbody>
<tr>
<td width="100%">
<p><big><strong><font size="2">Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection?</font></strong></big></p>
<p><font size="2">Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. </font><a href="http://www.owasp.org/" target="_blank"><a href="http://www.owasp.org/"><font size="2">http://www.owasp.org</font></a></a></p><font size="2"><b>What is SQL Injection and why is all this information not included in the regular FAQ?</b> </font>
<p><font size="2">SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer. Â  Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ.Â  In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers.Â  However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted.</font></p>
<p><big><strong><font size="2">What causes SQL Injection?</font></strong></big></p>
<p><font size="2">SQL injection is usually caused by developers who use &quot;string-building&quot; techniques in order to execute SQL code.Â  For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown):</font></p>
<p><font face="Courier New" color="#ff0000" size="2">Set myRecordset = myConnection.execute(&quot;SELECT * FROM myTable WHERE someText =&#39;&quot; &amp; request.form(&quot;inputdata&quot;) &amp; &quot;&#39;&quot;)</font></p>
<p><font size="2">The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation.Â  We are trusting that user has not entered something malicious - something like the innocent looking single quote (&#39;).Â  Let&#39;s consider what would happen if a user entered the following text into the search form:</font></p>
<p><font size="2">&#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39; --</font></p>
<p><font size="2">Then, when the query string is assembled and sent to SQL Server, the server will process the following code:</font></p>
<p><font face="Courier New" color="#ff0000" size="2">SELECT * FROM myTable WHERE someText =&#39;&#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39;--&#39;</font></p>
<p><font size="2">Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database.Â  If this application were running as &#39;sa&#39; and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine.Â  Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer&#39;s code.</font></p>
<p><a href="http://www.sqlsecurity.com/faq-inj.asp"><font size="2">More</font></a></p>
<p><em><font color="#000000" size="2">Very intresting that these are all Native Interface based exploits.Â  So the security issue isn&#39;t ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</font></em></p></td></tr></tbody></table></center></div>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#48">
  <rss:title>&lt;big&gt;SQL Injection FAQ &lt;/big&gt;</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-21T22:27:45Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">SQL Injection FAQ  http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3  Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection? Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. http://www.owasp.orgWhat is SQL Injection and why is all this information not included in the regular FAQ? SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer.   Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ.  In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers.  However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted. What causes SQL Injection? SQL injection is usually caused by developers who use &quot;string-building&quot; techniques in order to execute SQL code.  For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown): Set myRecordset = myConnection.execute(&quot;SELECT * FROM myTable WHERE someText =&#39;&quot; &amp; request.form(&quot;inputdata&quot;) &amp; &quot;&#39;&quot;) The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation.  We are trusting that user has not entered something malicious - something like the innocent looking single quote (&#39;).  Let&#39;s consider what would happen if a user entered the following text into the search form: &#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39; -- Then, when the query string is assembled and sent to SQL Server, the server will process the following code: SELECT * FROM myTable WHERE someText =&#39;&#39; exec master..xp_cmdshell &#39;net user test testpass /ADD&#39;--&#39; Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database.  If this application were running as &#39;sa&#39; and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine.  Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer&#39;s code. More Very intresting that these are all Native Interface based exploits.  So the security issue isn&#39;t ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P align=center><FONT color=#0080c0 size=2><BIG><STRONG><BIG>SQL Injection FAQ </BIG></STRONG></BIG></FONT></P>
<P align=center>
<P align=center><STRONG><FONT color=red></FONT></STRONG></P><STRONG><FONT color=red>&nbsp;</FONT></STRONG><A href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;tabid=3"><STRONG><FONT color=red><A href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3">http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&amp;;tabid=3</A><BR></FONT></STRONG></A><STRONG><FONT color=red>&nbsp;</FONT></STRONG> <BR>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=0>
<TBODY>
<TR>
<TD width="100%">
<P><BIG><STRONG><FONT size=2>Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection?</FONT></STRONG></BIG></P>
<P><FONT size=2>Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. </FONT><A href="http://www.owasp.org/" target=_blank><A href="http://www.owasp.org/"><FONT size=2>http://www.owasp.org</FONT></A></A></P><FONT size=2><B>What is SQL Injection and why is all this information not included in the regular FAQ?</B> </FONT>
<P><FONT size=2>SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer. &nbsp; Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ.&nbsp; In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers.&nbsp; However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted.</FONT></P>
<P><BIG><STRONG><FONT size=2>What causes SQL Injection?</FONT></STRONG></BIG></P>
<P><FONT size=2>SQL injection is usually caused by developers who use "string-building" techniques in order to execute SQL code.&nbsp; For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown):</FONT></P>
<P><FONT face="Courier New" color=#ff0000 size=2>Set myRecordset = myConnection.execute("SELECT * FROM myTable WHERE someText ='" &amp; request.form("inputdata") &amp; "'")</FONT></P>
<P><FONT size=2>The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation.&nbsp; We are trusting that user has not entered something malicious - something like the innocent looking single quote (').&nbsp; Let's consider what would happen if a user entered the following text into the search form:</FONT></P>
<P><FONT size=2>' exec master..xp_cmdshell 'net user test testpass /ADD' --</FONT></P>
<P><FONT size=2>Then, when the query string is assembled and sent to SQL Server, the server will process the following code:</FONT></P>
<P><FONT face="Courier New" color=#ff0000 size=2>SELECT * FROM myTable WHERE someText ='' exec master..xp_cmdshell 'net user test testpass /ADD'--'</FONT></P>
<P><FONT size=2>Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database.&nbsp; If this application were running as 'sa' and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine.&nbsp; Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer's code.</FONT></P>
<P><A href="http://www.sqlsecurity.com/faq-inj.asp"><FONT size=2>More</FONT></A></P>
<P><EM><FONT color=#000000 size=2>Very intresting that these are all Native Interface based exploits.&nbsp; So the security issue isn't ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</FONT></EM></P></TD></TR></TBODY></TABLE></CENTER></DIV>]]></content:encoded>
 </rss:item>
</rdf:RDF>