Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 54cac1c2268db633d66eeff1b4faa585 > files > 162

frepple-doc-0.8.1-3.fc15.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  <title>Tutorial / More for techies</title>
  <link rel='stylesheet' href='../styles.css' type='text/css' />
  <!--PageHeaderFmt-->  
</head>
<body>
<div id="container">

<div id="menubar">
  
<div id="logo" align="center">
<br/><img src='../frepple.bmp' alt="frepple" /><br/>
<a href='http://www.frepple.com/'>
<strong>a Free<br/>Production Planning<br/>Library</strong>
</a></div>
<div id="menu">
<br/>
<h3><a href='../Main/HomePage.html'>Main</a></h3>
<h3><a href='../UI/Main.html'>User Manual</a></h3>
<h3><a href='Main.html'>Tutorial</a></h3>
<h3><a href='../Frepple/Main.html'>Reference Manual</a></h3>
<h3><a href='../Main/FAQ.html'>FAQ</a></h3>
<h3><a href='../reference/index.html'>C++ API</a></h3>
<br/><div>
</div>  
</div>
</div>

<div id="content">
<br/>
<!--PageText-->
<div id='wikitext'>
<p><a class='wikilink' href='../Main/HomePage.html'>Main</a> &gt; <span class='wikitrail'><a class='wikilink' href='Main.html'>frePPLe Tutorial</a> > <a class='selflink' href='Step10.html'>More for techies</a></span>
</p>
<p class='vspace'>This tutorial didn't cover the technical aspects of frePPLe at all.<br />This section explains a little more on the technical implementation.
</p>
<div class='vspace'></div><ul><li>FrePPLe has three different components:
<div class='vspace'></div><ul><li>The <strong>core library</strong> implements the modeling constructs and solver.<br />    This component is written in C++ for optimal performance, and is basically a shared libary and its public API.<br />    The native data format of the core library is XML.<br />    A planning solution is much, much more than only a planning model and solver algorithms: It includes a user interface, data maintenance, reporting, data integration to other systems, workflows, job schedules, etc... Additional layers on top of the core library allow these to be handled efficiently and flexibly.
<div class='vspace'></div></li><li>For flexible <strong>scripting and data integration</strong> frePPLe relies on Python.<br />     <a target='_blank'  class='urllink' href='http://www.python.org' rel='nofollow'>Python</a> is a modern dynamic object-oriented programming language with a rich standard library. FrePPLe provides an interface to this language: python scripts bring data in the core library and extract data from it.  
<div class='vspace'></div></li><li>The <strong>user interface</strong> is based on Django.<br />     <a target='_blank'  class='urllink' href='http://www.djangoproject.com' rel='nofollow'>Django</a> is an impressive high-level web framework , written in Python, that encourages rapid development and clean, pragmatic design. 
</li></ul><div class='vspace'></div></li><li>These frePPLe components can be used in many ways. The deployment architecture varies depending on the problem size, the number of users, data integration to other systems, etc...<br />  See the <a class='wikilink' href='../Frepple/OverviewArchitecture.html'>architecture section</a> in the reference manual for some example configurations.
<div class='vspace'></div></li><li>FrePPLe is designed to be extendible and customizable.<br />  Speaking to developers in their own language, for each of the components above some sample code is shown here to illustrate how customizations can be done. 
<div class='vspace'></div><ul><li>The <strong>core library</strong> can be extended with plugin modules written in c++.<br />    This example shows how a new operation type is introduced for modeling transportation operations easier. The code is compiled to a shared library that is loaded at runtime by the core library.<br />    <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/test/sample_module/sample_module.h?view=markup' rel='nofollow'>sample_module.h</a><br />    <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/test/sample_module/sample_module.cpp?view=markup' rel='nofollow'>sample_module.cpp</a>
<div class='vspace'></div></li><li>The core library supports <strong>scripting using the Python language</strong>.<br />    With the  <a target='_blank'  class='urllink' href='http://docs.python.org/lib/lib.html' rel='nofollow'>rich standard library of Python</a> FrePPLe can thus easily be customized to fit your data formats and integration technology.<br />    The first example shows how we are retrieving data from a database, formatting it in memory to XML and passing it to the core library.<br />   The other examples show how we export data from the core library into a database or csv-formatted files.<br />   <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/contrib/django/freppledb/execute/load.py?view=markup' rel='nofollow'>load.py</a><br />   <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/contrib/django/freppledb/execute/export_database.py?view=markup' rel='nofollow'>export_database.py</a><br />   <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/contrib/django/freppledb/execute/export_file.py?view=markup' rel='nofollow'>export_file.py</a>
<div class='vspace'></div></li><li>Customizing the <strong>user interface</strong> is very easy with the Django web framework. Updating the database model and screens to your specific workflows and business requirements can be done with very efficiently.<br />    The file below is the code required to define the input database schema and configure the data maintenance screens.<br />   <a target='_blank'  class='urllink' href='http://frepple.svn.sourceforge.net/viewvc/frepple/trunk/contrib/django/freppledb/input/models.py?view=markup' rel='nofollow'>models.py</a>
</li></ul></li></ul>
</div>

<!--PageFooterFmt-->
<!--HTMLFooter-->
</div></div>
</body>
</html>