Maturity is one of the main themes in the 5.0 Eupho release. We've added capabilities around code-less integrations using our new Leap Entities and Andriod deployments for our User Interface among other great improvements. There are a lot of great things going on in the Eupho Release.
Leap CoreAs Leap gets into more implementers' hands we took some feedback regarding creating 1) better performance and 2) a more consistent and usable execution lifecycle. A great deal of work was spent on 'cleaning up' the flow and streamlining it. Additionally, we saw the need to add additional handlers in the area of Implementation selection (a feature allowing us to dynamically choose an implementation). This is a very important feature for implementers operating in multi-vendor sites. See the Execution Lifecycle below:
Data acquisition, and some of the associated data actions, is core to any system. Many systems permit minor flow changes with table settings, configurations, and exit points. However, changing settings, policies, and configuration only gets you so far. Sometimes, you might just need to get access to some additional bit of data to avoid a lot of extra keystrokes on the floor. So, being able to create abstract entities, even entities exposed from other systems, and augment or reshape them can produce more desirable results in a system.
A new feature to the Leap Framework, called Leap Entities, provides a whole new set of capabilities in this regard. Leap Entities permit you to define an abstract, vendor aware, entity (data item or action) which has some defined attributes:
Below is an example of the Entity configuration for a data service for interfacing with robots. The base taxonomy is BY2019 Warehouse Management System, and the destinations are Locus Robotics and 6 River Systems. Note the highlighted differences in the configuration: TransformationConfiguration, ProjectionFileName (both extracted from a Swagger file), and a TaxonomyFileName.
Locus Robotics Entity Configuration:
6 River Systems Robotics Entity Configuration:
See a short view of doing a codelsss integration to these two vendors in the video below.
As we were developing our entity framework, we found that not all vendors had their APIs completely fleshed out, had implemented important variations with custom filters or ODATA queries, or were just missing important elements. To handle this, we create the idea of a Super Entity. This is a concept like a Superclass in object-oriented programming. We can abstractly redefine the Entity via configuration. This permits us to retrieve data from multiple services, or even multiple disparate systems and return the data in a single entity request. Once again, this uses the core capabilities of the Leap architecture to define, in XML content, a set of flows that are bound under one Super entity.
Leap Execution Activity Framework (LEAF)
The Leap Execution Activity Framework (or LEAF) provides the framework for a distributed, cloud/hybrid, multi-site, activity-based coordination, and streaming processing. LEAF allows you to define the activities, but not necessarily how they will be accomplished; to define the requirements of an action or activity without knowing who or what will execute it.
We started thinking about this idea about 3 years ago as we were helping one of our software partners abstract robotics and machine/human interaction for automation. Very tactical, specific, and proprietary software packages, generally called Warehouse Execution Systems (WES) have been doing some of this work since the 1990s. But to them, everything seemed like a new problem, one which they have to create integrations for – almost as if starting from scratch with each new system.
Frankly, it seems a fruitless effort to just consider this an interface problem without addressing the coordination challenges these sorts of systems, inevitably, face. So, we came up with a strategy for modeling interactions instead of interfaces to de-couple the functional/coordination challenges from any specific technology. The idea of creating a set of general, reusable services, to coordinate the execution and aggregation of activities, emerged. We call this concept Execution Activity Stream (EAS) systems.
Using the concept of Actors, Activities, and abstract data elements, an EAS-based System would contain an extensible set of verbs and the payload that describe activities and observations.Using LEAF you can create the verbs within an EAS-based system to:
The basic flow of LEAF is shown below:
The Leap FORM User Experience team has really outdone themselves. The big shift in the Eupho Release is the ability to render an Android App (Android versions 6-8) in addition to a Web Application. This brings a series of additional, on-board, capabilities including the use of Bluetooth audio, accelerometer data, location data, etc. Some of the other highlights of the changes include:
Android Apps – Content-driven Applications
Leap FORM now supports both Web-based and Android deployments. Now, for example, with the new generation of Android devices making their way to the warehouse floor, we can put great Apps onto this new hardware. But one of the big problems with this is the fact that the Apps might require regular updates to get bug fixes or enhancements to the floor.
Managing Apps on 250 industrial mobile devices, which are used constantly 2-3 shifts per day, is a much bigger problem than worrying about downloading the newest version of Uber Eats to your phone every few months. It can be a difficult and time-consuming coordination problem. Our solution? Separate the App on the mobile device from content yielded by the App. In other words, the forms and flow the users see running within their App (the look of the forms and the flows) are content. In our case, we define them in XML, store them as resources, and fetch them at run-time to render the App. It can then be managed and distributed like content - and not EXE or APK files which require installation on every device. Here is the breakdown of how we did this.
Basic Screen Definition:
Basic screen configuration is stored in XML and rendered on-the-fly by the ElasticUI Form Engine. Note the tags for I18N (Internationalization) configuration. At the time of writing this document, the ElasticUI supports 13 of the most commonly used languages including multi-byte languages like Hindi. An example of a screen definition is below.
Example of Adding some Advanced Features:
To demonstrate some of the more advanced features of the ElasticUI, we teamed the UI framework with the smallest (easy to holster), least expensive, industrialized mobile device we could find (Zebra TC-20 – about $500/USD) for this example.
See the very short (one minute) video of our ElasticUI below, showing voice cues and a tightly-coupled integration with a unique wearable product called the ProGlove Display.
The behavior of both the ProGlove Display and the voice cues were added to the cycle count flow by a pair of simple tags in the form definition XML.
In the case of the ProGlove tags, they look like this* on the first from:
And this on the second form:
* For example only, in a projection application the DATA would be coming from the application dynamically
Similarly, the voice cues are configured in the XML and are Internationalized.
Lots of new thinking went into another big release from Attuned Labs – Leap 4.0, Drum Kit. We tackled one of the big things we've been wanting to do for years – write a better context engine which improves upon our previous work in the MOCA context processor. Leap Advanced Context Engine, or LACE, is the next generation context processor. Learn More
Massive upgardes all round. Scale run, heavily during beta by an IoT company. Forms got Angular 2/4, Ionic Framework, custom components abilities. Leap got a full set of eclipse plugins, database support for Oracle, SQL Server, MySQL, PortressSQL in addition to Cassandra and Hbase. Currently used by an IoT company in our early adopter program.
Lots of performance improvements, Form support for CE-based industrial devices back to CE-5 devices (1990's devices). This is the first release to get wider deployments. Dozens of WMS systems.
Our initial release, used in a couple of Warehouse Management System(WMS) sites white-labeled under a Transportation Management System (TMS).