How We Help You Modernize

A unique approach plus powerful tools

The Twin Oak Approach

The Twin Oak approach uses automated translation to migrate your code and data to a modern platform. This approach allows us to preserve your existing data and the business rules in your existing code — both important business assets.

We support these translated assets with specialized run-time libraries and build/deploy them with common devops automation. The devops automation should be familiar to most modern cloud developers. The run-time libraries allow us to generate code with a style and organization similar to your existing software, making it easy for your existing staff to understand and maintain the converted solution. It's still C# and you're still using modern development tools and running on a modern platform, but with some helpful guard rails to keep you on track and make your team feel at home.

Once you are ready to write your own applications from scratch you can still use our data connection library to access your data. You can mix and match translated code with brand new code, accessing the same data, and choose the right balance for your development team and the rest of your business.

The Conversion Process

A simplified version of the translation process

We normally handle almost all of the conversion process for you. This is fairly straightforward and progresses roughly as follows:

  • Data files, indexes, and catalogs are converted to a cloud-friendly format
  • Programs are converted to C# classes that use our run-time program logic cycle (PLC) to interact with the converted data files
  • Procedures are translated to interaction state machines to manage the step-by-step nature of running multiple programs and returning results
  • Other digital assets are converted to JSON description files which are used by Twin Oak utilities to display menus, forms, DFUs, etc.
  • The solution is published to an Azure cloud host including data files, version control, and an appropriate build pipeline. You have the option of publishing to a standard Windows IIS server.
  • We work with you to QA the migrated solution.
  • When you're ready, you take full ownership and control of your modern solution

An Overview of Our Implementation

A simplified diagram of your new system's architecture

Our solution uses common web technologies that should be familiar to many modern developers. Our single-page application (SPA) client runs in a web browser. This SPA uses HTTP to communicate with several backend APIs on the server. These APIs are used to execute your translated procedures and programs.

Twin Oak created several support libraries and a specialized Run-Time Engine that together enable your translated code to run in this environment. They provide data access, manage program and procedure state, enforce security, among other things.

Many of the features like menus and forms of our SPA are dynamically generated from JSON files provided by our WebAPIs. These JSON files are initially translated from your original AS400 files and then are maintained on the your server from there on.

Client

Our client application is based on your Web Browser, React, Typescript

Server

Our server environment is based on C#, .Net Core, Web API, Azure web host, Azure File storage, Azure Blob storage, Azure Active Directory. If you have chosen to target an (on- or off-premises) windows server instead of Azure, then the hosting and storage are done by that server.

DevOps Pipeline

Our current solution provides web-based Azure pipelines to build, test, and deploy all of the code. In addition to the Azure tooling we include some YAML and powershell scripting. If you choose to host and run your solution outside of the cloud, our Azure pipeline can still be used to deploy your server.