The Windward Studio

Windward Blog Home

What is the RESTful Engine and what does it do?

Posted on 08/23/2016

Please Share This


Let’s start at the beginning.

Engine 280pxWhat are the Windward Engines and who needs them? 

Our Engines are libraries of code that communicate between MS Office, your data source, and your organization’s application. When you install AutoTag, connect to your data, design your template, and insert your tags, nothing really happens until you click Output. That’s when the Engine starts “working.”

Here’s the basic idea:

  1. The user clicks Output to “start” the Engine by sending a request for it to process.
  2. The Engine uses all the code from Microsoft (everything about your template), and looks for all of your AutoTag Tags and collects all the ‘instructions’ (the select statements) from the tags.
  3. It sends requests to your data source for the data you want.
  4. It creates a new document out of the Microsoft code for your template and the new data from your data source.

When does an organization need an Engine?

Well, everyone needs a Windward Engine, it just varies as to what kind, and even what quantity. If you download a single instance of AutoTag, it would work on your machine without an engine only because it has a smaller built-in engine, but this demo engine is not capable of normal (not to mention heavy) commercial use.

When would an organization choose the RESTful Engine over the .NET or Java Engines?

If your app is written in .NET or Java, then those are likely what you would need. However, if your app is written in other languages, such as Ruby, Python, PHP, C#, or Typescript/Javascript, RESTful is what you’ll need. Initially, Windward offered two engines written in .NET and Java. If your organization writes in languages other than .NET or Java, you would have to figure out how to write a patch, or rewrite elements to work with one of those two languages. This was a huge barrier to many groups who were excited about AutoTag. The RESTful Engine is our solution for everyone.

Engines Comparison Chart

The following was adapted from our wiki page, Get Started with the RESTful Engine:

RESTful Comparison Chart

The RESTful Engine can also be useful for licensing; clients can run multiple projects with documents and reports from one RESTful Engine server.

What’s the deal with threads and cores?

The code for the Engines makes use of multiple CPUs (it has to do with threading, or the ability to simultaneously process multiple code commands at a time as opposed to one command at a time). This makes our processing speed incredibly fast. Because you need to host the engine on a separate server, the RESTful Engine requires a minimum of 4 cores.

Got it.  So what is REST?

For those who aren’t familiar, REST is an acronym (REpresentational State Transfer), but don’t let that confuse you. What’s important to understand is that REST is a style of API (application program interface) where the organization of the information is more important than the language it was initially written in.  Instead of needing to write or rewrite everything in one programming language, you simply need to make sure that your code and data source are each using a RESTful structure.

For comparison, our .NET and Java Engines have APIs as well, but they don’t need to be hosted online — the Engines (or code libraries) are embedded into your code and don’t make calls outside your application to other servers.

So then, what exactly is a RESTful Engine?

Putting it all together, the RESTful Engine is a set of code libraries that take advantage of REST structures and HMTL (via an API) to help facilitate requests between your company’s code and Windward’s code.

For the purpose of this post, Windward’s RESTful Engine has two main parts: the engine and the API.  When you install the RESTful Engine, you install the libraries on a server, but you also create a website to host our RESTful API. When you create your finalized report or document (whether by clicking Output from a template, running a report from the command line, or running from within your application) you are sending a request to the API which then sends the request to the RESTful Engine. The Engine retrieves the requested information from your data source and combines it with the template formatting to create a new document; you can retrieve this document from the browser or have it sent to a new location.

Here’s the breakdown in Steps (note that there’s one extra step when compared to the other two Engines):

  1. You send a set of instructions (your template format and your Tags) to the RESTful API by clicking Output or using your own code.
  2. The API sends the instructions to the Engine.
  3. The Engine requests…
  4. and retrieves the data from your Data Source.
  5. It creates a new document from your data and your template.
  6. The new document can be retrieved from the browser, or can be retrieved and saved to a local machine.

Have any more questions?

To learn more , head on over to our documentation wiki’s RESTful Engine Guide.

Please Share This

Author: Beth Billington

Beth enjoys using her writing and graphic design background for writing easy-to-follow help content. She loves learning – whether at work or at home – and spends her free time hiking, doing landscape photography, playing music, baking and pursuing all kinds of hand crafts.

Other posts by