strolch/li.strolch.website/www.strolch.li/index.html

176 lines
7.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="CPhbjooaiTdROm7Vs4E7kuHZvBfkeLUtonGgcVUbTL8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="ico/favicon.ico">
<title>Strolch: Overview</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script><![endif]-->
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="index.html">Strolch</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="index.html">Overview</a></li>
<li><a href="api.html">API</a></li>
<li><a href="documentation.html">Documentation</a></li>
<li><a href="tutorial.html">Tutorial</a></li>
<li><a href="downloads.html">Downloads</a></li>
<li><a href="development.html">Development</a></li>
<li><a href="blog.html">Blog</a></li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
<div class="container">
<div class="page-header">
<h1 class="page-title">Strolch Overview</h1>
<p class="lead page-description">A short introduction to Strolch.</p>
</div>
<div class="content">
<h2>Strolch in short</h2>
<p>Strolch is framework for developing Software. It's main features are:</p>
<ul>
<li>Complete persisted <a href="documentation-model.html">data model</a>:
<ul>
<li>Parameters and values by time</li>
<li>Resources, Orders with arbitrary parameter grouping</li>
<li>Activity/Action hierarchy with arbitrary depth</li>
<li>Policies for delegation</li>
<li>JSON as well as XML transformation</li>
<li>Locator API</li>
</ul>
</li>
<li><a href="documentation-transactions.html">Transactions with pessimistic locking and optional
read-locking</a></li>
<li><a href="documentation-searches.html">Search API</a></li>
<li>Component based</li>
<li><a href="documentation-privileges.html">Deeply integrated privilege handling</a></li>
<li>Fully in-memory</li>
<li>Persisted auditing, versioning, operations log</li>
<li>DAOs for file system or PostgreSQL, easily extended</li>
<li>Execution framework</li>
<li><a href="documentation-services-and-commands.html">Service / Command oriented</a></li>
<li><a href="documentation-reports.html">Reporting API configured by Resource objects</a></li>
<li>REST API for data access</li>
<li>WebComponents UI for
<ul>
<li>Inspector</li>
<li>Users</li>
<li>Roles</li>
<li>Operations Log</li>
<li>Login Screen</li>
<li>Jobs</li>
</ul>
</li>
<li>runs on plain old Java SE</li>
</ul>
<h2>Strolch Intro</h2>
<p>It is a different framework to Spring and other similar type of Java frameworks, as the model is defined as
an abstract model, where you always have the same three types of objects: Resources, Orders and Activities.
The fields are mapped as Parameter objects, of which the important primitives are available.</p>
<p>The nice part about this framework is, that you can be up and ready in a matter of minutes, and start
building your project immediately in that you open your favourite XML editor and start modelling your
data.</p>
<p>Once your data is defined, you write your business logic in the form of Services, Commands and Searches.
There are many predefined services and commands to manipulate the object model, so that you write your own
services when you need to enforce special business rules.</p>
<p>Through the use of Policy objects, you decouple algorithms from your object model, so that at runtime you can
change the behaviour, or easily implement different behaviour depending on your use-case. For instance you
might have a simple billing service which performs a few preparatory steps, and then calls the configured
billing policy to execute the billing depending on the customer, the warehouse, etc.</p>
<p>And of course persistence is as simple as configuring the persistence handler, pointing to your RDBMS and
then setting the mode to CACHED. For you as a developer there is no more thinking in terms of SQL etc., as
this is completely hidden from the developer. There is even a simple file persistence layer if you are
running IoT devices.</p>
<p>The runtime can be just about anything. Usually it is run inside an Apache Tomcat instance as a webapp, as a
WEB UI has been required for all current Strolch projects. You could just as well use a main class. Accessing
the Strolch Agent remotely is usually done through REST.</p>
<p>Strolch is being actively developed, and customers constantly give us reasons to improve and extend the
framework. There is a Polymer Inspector component which makes it easy to see and manipulate the actual data.
The new Search API makes it really easy to query your data.</p>
<p>Yes, Strolch is different, but the concept has come out of the planning and execution segment, and has been
refined over the years until it has become what it is today.</p>
<h2>API</h2>
<p>Check out the <a href="api.html">API page</a> to see how to use Strolch.</p>
<a href="history.html">More to motivation etc.</a>
</div>
<!-- /.content -->
<div id="footer">
<div class="container">
<p class="text-muted">&copy; Strolch / <a href="mailto:eitch@eitchnet.ch">Robert von Burg</a> / Hosting by
<a href="http://www.eitchnet.ch">eitchnet.ch</a></p>
</div>
</div>
</div>
<!-- /.container -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual xsd as needed -->
<script src="js/bootstrap.min.js"></script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = (("https:" == document.location.protocol) ? "https" : "http") + "://piwik.eitchnet.ch/";
_paq.push(['setTrackerUrl', u + 'piwik.php']);
_paq.push(['setSiteId', 2]);
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.defer = true;
g.async = true;
g.src = u + 'piwik.js';
s.parentNode.insertBefore(g, s);
})();
</script>
<noscript><p><img src="http://piwik.eitchnet.ch/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</body>
</html>