You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Wiki/ENG_Guide/html/Orchestrator/01_Orchestrator.html

308 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>1. Description &mdash; pyOpenRPA v1.2.0 documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="2. Defs" href="02_Defs.html" />
<link rel="prev" title="2. How to use" href="../Studio/02_HowToUse.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> pyOpenRPA
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">GENERAL</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../01_HowToInstall.html">1. How to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../02_RoadMap.html">2. Roadmap</a></li>
<li class="toctree-l1"><a class="reference internal" href="../03_Copyrights_Contacts.html">3. Copyrights &amp; Contacts</a></li>
</ul>
<p class="caption"><span class="caption-text">ROBOT</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Robot/01_Robot.html">1. Description</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/02_Defs.html">2. Defs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/03_HowToUse.html">3. How to use</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_Dependencies.html">4. Dependencies</a></li>
</ul>
<p class="caption"><span class="caption-text">STUDIO</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Studio/01_Studio.html">1. Description</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Studio/02_HowToUse.html">2. How to use</a></li>
</ul>
<p class="caption"><span class="caption-text">ORCHESTRATOR</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">1. Description</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#global-settings-dict-concept">Global settings dict concept</a></li>
<li class="toctree-l2"><a class="reference internal" href="#orchestrator-how-to-configure">Orchestrator how to configure</a></li>
<li class="toctree-l2"><a class="reference internal" href="#orchestrator-architecture">Orchestrator architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="#component-processor">Component Processor</a></li>
<li class="toctree-l2"><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="02_Defs.html">2. Defs</a></li>
<li class="toctree-l1"><a class="reference internal" href="03_gSettingsTemplate.html">3. gSettings Template</a></li>
<li class="toctree-l1"><a class="reference internal" href="04_HowToUse.html">4. How to use</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_UAC.html">5. UAC - User Access Control</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">pyOpenRPA</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>1. Description</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/Orchestrator/01_Orchestrator.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="description">
<h1>1. Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h1>
<p>pyOpenRPA Orchestrator is the executable process.</p>
<p>The features of the orchestrator is:
- Centralized/decentralized user control interface (applicable and for business users and for technical users). Web based, support desktop, tablet, phone.
- Automatized robots control (customized algorithms, robots scheduling)
- Source code mega flexibility: Light Orchestrator architecture is good for own customization</p>
<div class="section" id="global-settings-dict-concept">
<h2>Global settings dict concept<a class="headerlink" href="#global-settings-dict-concept" title="Permalink to this headline"></a></h2>
<p>pyOpenRPA project is complex tool which consist of several executable modules such as Robot, Orchestrator, Studio,</p>
<p>Because of module compexity, we use 1 init arg - inGSettings
inGSettings is a complex dictionary which has all reqired parameters for the module execution.</p>
<p>The description of the GSettings you can find in executable module details.</p>
</div>
<div class="section" id="orchestrator-how-to-configure">
<h2>Orchestrator how to configure<a class="headerlink" href="#orchestrator-how-to-configure" title="Permalink to this headline"></a></h2>
<p>To init pyOpenRPA Orchestrator instance use script:</p>
<p>from pyOpenRPA import Orchestrator # Import orchestrator main
gSettings = SettingsTemplate.Create(inModeStr=”BASIC”) # Create GSettings with basic configuration
Orchestrator.Orchestrator(inGSettings=gSettings) # Call the orchestrator def</p>
<p>gSettings structure</p>
</div>
<div class="section" id="orchestrator-architecture">
<h2>Orchestrator architecture<a class="headerlink" href="#orchestrator-architecture" title="Permalink to this headline"></a></h2>
<p>Orchestrator has several source code components:
- User/robot activity consolidated queue single thread (Processor)
- User/robot activity asynchonus many threads (Processor)
- Scheduler single thread (main)
- RDP keep active many thread
- Autocleaner single thread
- GUI keep active single thread
- HTTP web server single thread (create user socket threads)
-</p>
<p>Below you can find more information about all of the component.</p>
</div>
<div class="section" id="component-processor">
<h2>Component Processor<a class="headerlink" href="#component-processor" title="Permalink to this headline"></a></h2>
<p>Sync - Append activity list to consolidated processor queue. Execution goes sequency by the activity list order</p>
<p>Async - Create New thread to execute the activity list</p>
<ul class="simple">
<li><p>Activity list</p></li>
</ul>
<p>List of the activity item</p>
<ul class="simple">
<li><p>Activity item</p></li>
</ul>
<p>Activity item is universal mechanism to execute different algorythms from any sources.
The core feature of the Activity is to call python defs with args and kwargs.
If you need to init do some activity you can write some python def, then create Activity item with current def.
ATTENTION: In some cases (such as web transmition), when you cant transmit python def as object you can use symbolic names for python defs. It is apply you to init all of you want from the web UI.</p>
<p>?Why i cant transmit python def from the web
Because the WEB space is not the Python executable space. Interaction between it spaces create by JSON protocol. So, we know than JSON apply int, float, str, bool, None, list, dict - that is all.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Example
{</p>
<blockquote>
<div><p>“Def”:”DefAliasTest”, # def link or def alias (look gSettings[“Processor”][“AliasDefDict”])
“ArgList”:[1,2,3], # Args list
“ArgDict”:{“ttt”:1,”222”:2,”dsd”:3}, # Args dictionary
“ArgGSettings”: None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
“ArgLogger”: None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)</p>
</div></blockquote>
<p>}# Pay attention! Do not left comma symbol after the end of the dict - it can be interpretated like a turple..</p>
</div>
</div>
<div class="section" id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h2>
<p><a href="#id1"><span class="problematic" id="id2">`Python-sphinx`_</span></a></p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="02_Defs.html" class="btn btn-neutral float-right" title="2. Defs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../Studio/02_HowToUse.html" class="btn btn-neutral float-left" title="2. How to use" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2021, Ivan Maslov.
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>