123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <!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/html; charset=utf-8" />
-
- <title>Modelverse components — Modelverse 0.4.0 documentation</title>
-
- <link rel="stylesheet" href="_static/classic.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: './',
- VERSION: '0.4.0',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Modelverse 0.4.0 documentation" href="index.html" />
- <link rel="next" title="How to run" href="howto.html" />
- <link rel="prev" title="Installation" href="installation.html" />
- </head>
- <body role="document">
- <div class="related" role="navigation" aria-label="related navigation">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="howto.html" title="How to run"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="installation.html" title="Installation"
- accesskey="P">previous</a> |</li>
- <li class="nav-item nav-item-0"><a href="index.html">Modelverse 0.4.0 documentation</a> »</li>
- </ul>
- </div>
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body" role="main">
-
- <div class="section" id="modelverse-components">
- <h1>Modelverse components<a class="headerlink" href="#modelverse-components" title="Permalink to this headline">¶</a></h1>
- <p>The Modelverse consists of three individual projects, which are linked together to construct the Modelverse.
- Each of these projects stands alone and has its own concerns.
- A socket interface to communicate with the other components is provided.
- By using sockets, it becomes possible to switch everything about the implementation, even the implementation language, without endangering interoperability.</p>
- <p>The three projects are:
- 1. Modelverse State
- 2. Modelverse Kernel
- 3. Modelverse Interface</p>
- <img alt="_images/overview.svg" src="_images/overview.svg" /><div class="section" id="modelverse-state-mvs">
- <h2>Modelverse State (MvS)<a class="headerlink" href="#modelverse-state-mvs" title="Permalink to this headline">¶</a></h2>
- <p>The Modelverse State implements the data storage features of the Modelverse.
- To the Modelverse State, all data needs to be representable as a graph, which it will manipulate.</p>
- <p>All basic, and some composite, operations are implemented on this graph, such as creating nodes and edges, reading them, and deleting them.</p>
- <div class="section" id="interface">
- <h3>Interface<a class="headerlink" href="#interface" title="Permalink to this headline">¶</a></h3>
- <p>All communication happens through sockets, using XML/HTTP Requests.
- (TODO)</p>
- </div>
- </div>
- <div class="section" id="modelverse-kernel-mvk">
- <h2>Modelverse Kernel (MvK)<a class="headerlink" href="#modelverse-kernel-mvk" title="Permalink to this headline">¶</a></h2>
- <p>The Modelverse Kernel communicates with the MvS and interprets its data.
- The Modelverse Kernel has no way of storing data, except by sending it to the MvS for storage.
- Through this architecture, the MvK becomes completely stateless and easily replacable.</p>
- <p>For the MvK, a set of rules is defined which tell it how to interpret the graph in the MvS.
- Complex programs can be written by encoding the program as a graph, and letting the MvK interpret it.</p>
- <p>To allow for maximal flexibility, the MvK can never expose the users to the internal identifier of the MvS, which the MvK uses.
- This allows the MvS to internally restructure itself without having to worry about stale references elsewhere.</p>
- <div class="section" id="id1">
- <h3>Interface<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
- <p>All communication happens through sockets, using XML/HTTP Requests.
- (TODO)</p>
- </div>
- </div>
- <div class="section" id="modelverse-interface-mvi">
- <h2>Modelverse Interface (MvI)<a class="headerlink" href="#modelverse-interface-mvi" title="Permalink to this headline">¶</a></h2>
- <p>The Modelverse Interface is the part that most users will be using.
- It presents a textual or graphical interface to the Modelverse itself.
- Depending on the interface, the MvK and MvS will serve only as a repository (heavy client), or they serve as the tool itself (thin client).
- Either way, the communication is identical, just the granularity differs, and the place where the algorithms are implemented.</p>
- <p>Traditionally, the MvI is a compiler that compiles some code to either a graph, or operations for the MvK.
- This can, however, be any possible kind of tool, or even combination of multiple tools.
- For example, a graphical tool could serve as an interface to the Modelverse, where it just processes the graphical events and sends the desired operations (such as creating an element) to the Modelverse.</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
- <li><a class="reference internal" href="#">Modelverse components</a><ul>
- <li><a class="reference internal" href="#modelverse-state-mvs">Modelverse State (MvS)</a><ul>
- <li><a class="reference internal" href="#interface">Interface</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#modelverse-kernel-mvk">Modelverse Kernel (MvK)</a><ul>
- <li><a class="reference internal" href="#id1">Interface</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#modelverse-interface-mvi">Modelverse Interface (MvI)</a></li>
- </ul>
- </li>
- </ul>
- <h4>Previous topic</h4>
- <p class="topless"><a href="installation.html"
- title="previous chapter">Installation</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="howto.html"
- title="next chapter">How to run</a></p>
- <div role="note" aria-label="source link">
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/components.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- </div>
- <div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <div><input type="text" name="q" /></div>
- <div><input type="submit" value="Go" /></div>
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related" role="navigation" aria-label="related navigation">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="howto.html" title="How to run"
- >next</a> |</li>
- <li class="right" >
- <a href="installation.html" title="Installation"
- >previous</a> |</li>
- <li class="nav-item nav-item-0"><a href="index.html">Modelverse 0.4.0 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer" role="contentinfo">
- © Copyright 2016, Yentl Van Tendeloo.
- Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
- </div>
- </body>
- </html>
|