An increasing number of APL systems serve business logic as services, in addition to providing a user interface. Some recent APL applications have no user interface at all, and are only available as services.
For this reason, Dyalog’s web service framework, Jarvis, features prominently in Brian Becker’s overview of the current state of tool development at Dyalog Ltd. Brian is the APL Tools Architect, and the author of both Jarvis and HttpCommand, our tool for making web requests (Jarvis provides server functionality, while HttpCommand provides client functionality).
Jarvis is the foundation of many new APL projects, two of which are featured this week. First, Finn Flug from Dittrich & Partner Consulting GmbH (DPC) tells the story of an application that started its life as a COM service implemented in APL+Win, was converted to a web service using Jarvis, and was then deployed as a docker container. Docker containers are also the execution platform for Claus Madsen’s talk. For decades, Claus has been writing software in APL for pricing financial instruments; he is one of Denmark’s leading experts in this field. Claus is not a software engineer, so when a new client wanted a pricing application as a web service, he needed a little help from his friends at Dyalog Ltd. He wanted to replace the binary workspaces that he had been using to hold his source code with docker containers, and for these docker containers to be rebuilt and published on Amazon Web Services every time he committed a change to one of his APL source files (managed on GitHub). To his surprise, since making this change he has found that he feels more in control of his APL development workflow than ever before – without having lost any flexibility.
The only talk that doesn’t mention Jarvis is Stig Nielsen’s talk on “Worker Bees”, where he demonstrates a mechanism which is similar to Dyalog APL’s isolates. The difference is that where the isolate workspace launches separate processes to host isolates, Stig makes use of a .NET class that allows a single process to launch multiple Dyalog interpreters that all run within the same process. This mechanism has only been made available to selected clients because some features of Dyalog (like file holds and locks or the use of DLLs) are restricted in this mode – but it has the advantage that data can be shared in-process, between multiple APL interpreters and components written in C#.
——————————————
This week’s videos:
- D09: Dyalog Tools Update (Brian Becker)
- U05: Converting a COM Server to a Jarvis-based Web Service (Finn Flug)
- U01: APL Worker Bees – Another Way to Run APL Tasks in Parallel (Stig Nielsen)
- U06: Dyalog, AWS, Jarvis, Docker…What’s Not to Like? (Claus Madsen)
Materials for all presentations can be downloaded from the Dyalog ’23 webpage.