Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2e9c43658e374d290a2de15d25134ac8 > files > 844

db4o-doc-8.0-1.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:lastBlockDepth="2" MadCap:lastHeight="120" MadCap:lastWidth="624" MadCap:disableMasterStylesheet="true" MadCap:tocPath="Product Philosophy|db4o Position" MadCap:InPreviewMode="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" MadCap:PathToHelpSystem="../../" MadCap:HelpSystemFileName="index.xml" MadCap:SearchType="Stem">
    <head><title>db4o Applications</title>
        <script type="text/javascript">/* <![CDATA[ */
window.onload = function(){
	var pathToFlash = $('html').attr('MadCap:PathToHelpSystem') + 'Content/Resources/Code/ZeroClipboard.swf';
	ZeroClipboard.setMoviePath(pathToFlash);
			
	function bindToClipBord(element,content){
		var clip = new ZeroClipboard.Client();
		clip.setText(content);
		clip.glue(element);
	};
		
	if(location.protocol==='file:'){
		$('.copylink-marker').remove();
	} else{
			$('.copylink-marker').each(function(){
				var text = $(this).parent().parent().children('.prettyprint').html();
				$(this).hover(function(){
					bindToClipBord(this,text);
				},
				function(){});
			});	
	}		
	prettyPrint();	
};
                /* ]]> */</script>
        <link href="../SkinSupport/MadCap.css" rel="stylesheet" />
        <link href="../Resources/Stylesheets/OnlineStyle.css" rel="stylesheet" />
        <script src="../SkinSupport/MadCapAll.js">
        </script>
        <script src="../Resources/Code/prettify.js">
        </script>
        <script src="../Resources/Code/lang-vb.js">
        </script>
        <script src="../Resources/Code/jquery.min.js">
        </script>
        <script src="../Resources/Code/ZeroClipboard.js">
        </script>
    </head>
    <body>
        <p class="MCWebHelpFramesetLink" style="display: none;"><a href="../../index_CSH.html#product_philosophy/db4o_applications.htm" style="">Open topic with navigation</a>
        </p>
        <div class="MCBreadcrumbsBox"><span class="MCBreadcrumbsPrefix">You are here: </span><a class="MCBreadcrumbsLink" href="../product_philosophy.htm">Product Philosophy</a><span class="MCBreadcrumbsDivider"> &gt; </span><a class="MCBreadcrumbsLink" href="db4o_position.htm">db4o Position</a><span class="MCBreadcrumbsDivider"> &gt; </span><span class="MCBreadcrumbs">db4o Applications</span>
        </div>
        <p>
            <script type="text/javascript">/*<![CDATA[*/document.write('<a href="' + location.href +'">');
				document.write("Direct Link");
			document.write('</a>');/*]]>*/</script>
        </p>
        <p>
        </p>
        <h1>db4o Applications</h1>
        <p>db4o can be used in a wide range of production and
educational software. The primary focus is on embedded usage, like mobile
systems (phones and handhelds), device electronics (printers, cars, robots),
SCADA systems etc. The following table provides many (but not all) possible
implementations with an explanations of the benefits of db4o in the selected
environment:</p>
        <table border="1" cellpadding="0" cellspacing="0">
            <tr>
                <td valign="top">
                    <p><b>Environment</b>
                    </p>
                </td>
                <td valign="top">
                    <p><b>Benefits</b>
                    </p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Educational systems</p>
                </td>
                <td valign="top">
                    <p>One-line persistence, Object-oriented model, intuitive
  programming interface make db4o an ideal educational tool. It is easy to use
  and it provides a meaningful example of object-oriented world. It is also
  native to most widely used OO languages: Java and .NET</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Prototypes</p>
                </td>
                <td valign="top">
                    <p>Using db4o to build a prototype system is much quicker
  than using an <span class="MCTextPopup"><a href="javascript:void(0);" class="MCTextPopupSpot" onclick="FMCTextPopup( event, this ); return false;">RDBMS<img style="border: none;margin-left: 5px;" src="../SkinSupport/ExpandingClosed.gif" MadCap:altsrc="../SkinSupport/ExpandingOpen.gif" class="MCExpandingIcon" onload="if ( typeof( FMCPreloadImage ) == 'function' ) { FMCPreloadImage( '../SkinSupport/ExpandingOpen.gif' ); }" /></a><span class="MCTextPopupBody" style="display: none; ">Relational Database Management System</span></span>. In case of db4o you do not need to create a data model.
  Further there is no need to map your object model to the database. The
  general persistence mechanism is almost transparent and requires minimum
  effort to adapt to. Automatic refactoring allows rapid change of classes
  without the necessity to update the database.</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>SCADA</p>
                </td>
                <td valign="top">
                    <p>Using db4o in SCADA systems allows to achieve high
  performance in caching and replay of the events. Another benefit is a small
  footprint and easy integration with Java and .NET programming languages. db4o
  can also be run as a memory database, providing better performance though
  minimizing disk access.</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Mobile applications</p>
                </td>
                <td valign="top">
                    <p>Mobile applications can benefit from in-process database,
  which requires zero-administration. Synchronization with the main server can
  be done with the help of <span class="MCTextPopup"><a href="javascript:void(0);" class="MCTextPopupSpot" onclick="FMCTextPopup( event, this ); return false;">dRS<img style="border: none;margin-left: 5px;" src="../SkinSupport/ExpandingClosed.gif" MadCap:altsrc="../SkinSupport/ExpandingOpen.gif" class="MCExpandingIcon" onload="if ( typeof( FMCPreloadImage ) == 'function' ) { FMCPreloadImage( '../SkinSupport/ExpandingOpen.gif' ); }" /></a><span class="MCTextPopupBody" style="display: none; ">db4o Replication System</span></span>. Automatic refactoring can be another valuable
  factor, which allows to skip the job of updating the databases when a new
  version of object model is implemented.</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Device applications</p>
                </td>
                <td valign="top">
                    <p>Device applications enjoy the same benefits as Mobile applications. In addition, smaller footprints
  can be achieved by using the minimal Micro edition.</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Open-source software</p>
                </td>
                <td valign="top">
                    <p>GPL, open-source compatibility licence. Native to Java and
  .NET. Easily integrates with any Java and .NET open-source products.</p>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    <p>Web-applications</p>
                </td>
                <td valign="top">
                    <p>open-source, reporting support from several Java
  open-source reporting frameworks and .NET reporting API</p>
                </td>
            </tr>
        </table>
        <p>However, other applications might not be well suited for db4o.</p>
        <p>For example, in situations where you have increasing amounts of data ( over 10 Gigabytes ) and high concurrency ( over 20 concurrent users/processes ) along with your complex models.  In these cases, the <a href="http://www.versant.com/en_US/products/objectdatabase?referrer=vsnt1">Versant database</a> is likely a more appropriate choice.  Versant's customer applications span a wide range of use including those exhibiting 1000's of current transactions ( 100's of thousands of concurrent tx per second ) to 100's of gigabytes with some Versant customers in the 25T+ sized database.    For more information visit <a href="http://www.versant.com/en_US/products/objectdatabase?referrer=limits1">http://www.versant.com/</a></p>
        <p>Another case is when you have simple and flat data model, primarily used for reporting.  Simple table-like models of tuple records may be better supported by an RDBMS.  In this case, adhoc data access would be more important to your application than well defined use cases using an object model.  Typically this is complimented with the need let your users to be able to grab one of the plethora of commercial tools to poke at the database in an adhoc fashion.  </p>
        <script type="text/javascript" src="../SkinSupport/MadCapBodyEnd.js">
        </script>
    </body>
</html>