You develop services and applications using Python, a very high-level, full featured and highly productive, programming language, that allows you to implement any solution of any scale and size, from tiny ones to the very largest.

Code you develop is hot-deployed or installed statically on servers running in high-availability clusters.

You have access to a browser-based web admin which aids you with development and maintenance.

Your code can both invoke or accept connections through the most commonly used protocols and transports - Plain HTTP, SOAP, JSON, AMQP, JMS WebSphere MQ, ZeroMQ, SQL, and FTP(S).

Services can invoke each other and other Python applications can use a convenience client to access your services programmatically.

At your disposal are also Redis key/value database and a built-in scheduler which is used for executing recurring tasks.

Servers know how to secure and to make use of resources secured with HTTP Basic Auth, WS-Security and technical accounts.

Zato’s SimpleIO (SIO) mechanism allows you to write code once while still being able to expose it through multiple protocols and interfaces without any code change nor restarts.

You are supported in writing code that is easy to test and document.

While technically possible, you’ll rarely, if ever, use HTML or CSS. Zato is a middleware and backend server. Consider using Django or a similar technology for frontend programming.

What is a service

A service is a piece of reusable code which does something interesting and useful for its users. Think of it as an atomic building block of the Zato-based solution you want to develop.

For instance, if you are writing a CRM system you will need services that are to do with customer details - returning a customer’s addresses, fetching their products, getting their details, these are all typical services you’ll have to develop.

In another scenario, when integrating multiple applications in a SOA, you may want want to create a composite service that will invoke lower-level services of applications being integrated, aggregate their output and present a unified view to applications that invoke your service.

From another point of view, a service is like a function or method in your programming language, only catapulted to a much higher level - instead of exposing API to other classes or modules, you operate with services and data-sources dispersed across many applications and systems.

Reusability is the key to creating successful services. Services should be reusable across multiple applications, regarding of programming languages they’re implemented in or particulars of any specific data format they may use internally or when connecting to Zato.

What is an application

An application is simply a set of services you, as a human being, attach a special meaning to.

There is no custom application packaging format nor does Zato know that what you call an application is more than just one or more services that are logically grouped together.

Programming examples

Click here to visit a chapter with programming examples.