

{"id":385,"date":"2012-12-20T17:46:58","date_gmt":"2012-12-20T16:46:58","guid":{"rendered":"https:\/\/project.inria.fr\/plasma-lab\/?page_id=385"},"modified":"2015-03-12T17:08:01","modified_gmt":"2015-03-12T16:08:01","slug":"plasma-structure","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/plasma-lab\/architecture\/plasma-structure\/","title":{"rendered":"PLASMA Structure"},"content":{"rendered":"<p><\/p>\n<h3>Plasma Lab main architecture<\/h3>\n<p>PLASMA Lab includes three main types of components. A <strong>User Interface<\/strong>, a<strong> Controler<\/strong> and a set of <strong>Plugins<\/strong>.<\/p>\n<ul>\n<li>Plugins can be of three types: <strong>SMC Algorithm<\/strong>, <strong>Checker<\/strong> and <strong>Simulator<\/strong>. They are loaded by the Controler from a <em>plugins<\/em> directory at startup.<\/li>\n<li>The Controler is responsible for the communications between the user (UI or an external tool) and the plugins layer. It provides the methods of our <a href=\"https:\/\/project.inria.fr\/plasma-lab\/plasma-lab-api\/\"><strong>PLASMA Lab API<\/strong>.<\/a><\/li>\n<li>The User Interface is the main entry point of Plasma Lab. It is the standard way of using Plasma Lab, but we also provides a documentation <a href=\"https:\/\/project.inria.fr\/plasma-lab\/plasma-lab-api\/\"><strong>to let you embed Plasma Lab in your program<\/strong>.<\/a><\/li>\n<\/ul>\n<div id=\"attachment_374\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/plasma-lab\/files\/2012\/12\/architecture5.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-374\" class=\"alignnone size-medium wp-image-971\" alt=\"architecture5\" src=\"https:\/\/project.inria.fr\/plasma-lab\/files\/2012\/12\/architecture5-300x169.png\" width=\"300\" height=\"169\" srcset=\"https:\/\/project.inria.fr\/plasma-lab\/files\/2012\/12\/architecture5-300x169.png 300w, https:\/\/project.inria.fr\/plasma-lab\/files\/2012\/12\/architecture5-1024x580.png 1024w, https:\/\/project.inria.fr\/plasma-lab\/files\/2012\/12\/architecture5.png 1029w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-374\" class=\"wp-caption-text\">PLASMA Lab architecture diagram<\/p><\/div>\n<hr \/>\n<h3>Plasma Core and the plugin system<\/h3>\n<p>As we can see on the architecture diagram, Plasma Lab uses an interface that we call <strong>Plasma Plugins<\/strong>. This is were all the computations are done.<\/p>\n<ul>\n<li>A <strong>Simulator<\/strong> is responsible for executing models and generating traces of these executions.<\/li>\n<li>A <strong>Checker<\/strong> tests the validity of a property on these traces.<\/li>\n<li>An <strong>Algorithm<\/strong> decides if enough tests were made to satisfy the confidence and the precision parameters of the algorithm and in the end computes the results.<\/li>\n<\/ul>\n<div class=\"alert alert-success\" role=\"alert\"><p class=\"printonly\"><strong>Important!<\/strong><\/p>\n<p class=\"first-p\">We used the <a href=\"http:\/\/code.google.com\/p\/jspf\/\"><strong>Java Simple Plugin Framework<\/strong><\/a> to implement our Plugin System. If you want to use your own Simulator or Checker, please refer to the <strong><a title=\"Plasma Book\" href=\"http:\/\/sparika.gitbooks.io\/plasma-lab-book\/content\/\">Plasma Book<\/a><\/strong> documentation.<\/p>\n<p><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>Plasma Lab main architecture PLASMA Lab includes three main types of components. A User Interface, a Controler and a set of Plugins. Plugins can be of three types: SMC Algorithm, Checker and Simulator. They are loaded by the Controler from a plugins directory at startup. The Controler is responsible for\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/project.inria.fr\/plasma-lab\/architecture\/plasma-structure\/\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":234,"featured_media":0,"parent":60,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-385","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/users\/234"}],"replies":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/comments?post=385"}],"version-history":[{"count":30,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/385\/revisions"}],"predecessor-version":[{"id":1778,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/385\/revisions\/1778"}],"up":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/60"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/media?parent=385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}