<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/rest">
  <channel>
    <title>REST</title>
    <link>https://www.linuxjournal.com/tag/rest</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Zato—Agile ESB, SOA, REST and Cloud Integrations in Python</title>
  <link>https://www.linuxjournal.com/content/zato%E2%80%94agile-esb-soa-rest-and-cloud-integrations-python</link>
  <description>  &lt;div data-history-node-id="1243540" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/11550f1.jpg" width="404" height="395" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/dariusz-suchojad" lang="" about="https://www.linuxjournal.com/users/dariusz-suchojad" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Dariusz Suchojad&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
&lt;a href="https://zato.io/docs/index.html"&gt;Zato&lt;/a&gt; is a Python-based platform for integrating applications
and exposing back-end services to front-end clients. It's an ESB (Enterprise
Service Bus) and an application server focused on data integrations. The
platform doesn't enforce any limits on architectural style for designing
systems and can be used for SOA (Service Oriented Architecture), REST
(Representational State Transfer) and for building systems of systems
running in-house or in the cloud.
&lt;/p&gt;

&lt;p&gt;
At its current version of 1.1 (at the time of this writing), Zato supports HTTP, JSON, SOAP, SQL, AMQP,
JMS WebSphere MQ, ZeroMQ, Redis NoSQL and FTP. It includes a browser-based
GUI, CLI, API, security, statistics, job scheduler, HAProxy-based load
balancer and hot-deployment. Each piece is extensively documented from
the viewpoint of several audiences: architects, admins and programmers.
&lt;/p&gt;

&lt;p&gt;
Zato servers are built on top of gevent and gunicorn frameworks
that are responsible for handling incoming traffic using asynchronous
notification libraries, such as libevent or libev, but all of that is hidden
from programmers' views so they can focus on their job only.
&lt;/p&gt;

&lt;p&gt;
Servers always are part of a cluster and run identical copies of
services deployed. There is no limit on how many servers a single
cluster can contain.
&lt;/p&gt;

&lt;p&gt;
Each cluster keeps its configuration in Redis and an SQL database. The
former is used for statistics or data that is frequently updated and
mostly read-only. The latter is where the more static configuration
shared between servers is kept.
&lt;/p&gt;

&lt;p&gt;
Users access Zato through its &lt;a href="https://zato.io/docs/web-admin/intro.html"&gt;Web-based GUI&lt;/a&gt;,
the &lt;a href="https://zato.io/docs/admin/cli/index.html"&gt;command line&lt;/a&gt; or &lt;a href="https://zato.io/docs/public-api/intro.html"&gt;API&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Zato promotes loose coupling, reusability of components and
hot-deployment. The high-level goal is to make it trivial to access
or expose any sort of information. Common integration techniques and
needs should be, at most, a couple clicks away, removing the need
to reimplement the same steps constantly, slightly differently in each
integration effort.
&lt;/p&gt;

&lt;p&gt;
Everything in Zato is about minimizing the interference of components
on each other, and server-side objects you create can be updated easily,
reconfigured on fly or reused in other contexts without influencing
any other.
&lt;/p&gt;

&lt;p&gt;
This article guides you through the process of exposing complex XML
data to three clients using JSON, a simpler form of XML and SOAP, all 
from a single code base in an elegant and Pythonic way that doesn't
require you to think about the particularities of any format or transport.
&lt;/p&gt;

&lt;p&gt;
To speed up the process of retrieving information by clients, back-end
data will be cached in Redis and updated periodically by a job-scheduled
service.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/zato%E2%80%94agile-esb-soa-rest-and-cloud-integrations-python" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 14 Jan 2014 18:50:32 +0000</pubDate>
    <dc:creator>Dariusz Suchojad</dc:creator>
    <guid isPermaLink="false">1243540 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
