Overview of AMT
Product Suite
The AMT Product Suite consists of three parts, the AMT Transform Engine, the AMT Go Runtime, and the AMT Control Center.
AMT Transform Engine. AMT contains an automated transformation engine that converts legacy mainframe applications to modern Java applications. Mainframe applications are converted in full and maintain a 1:1 functional equivalence.
- COBOL code is converted to Java.
- Mainframe data is migrated to a modern database such as SQL, Oracle, PostgreSQL, and DB2.
- Batch processes are converted to Python JCL.
- Workflows are adapted to native transactions, OPCON, and the AMT Control Center.
- Operations are performed in the AMT Control Center.
- Security models are updated to current standards, OAuth2, ActiveDir, LDAP.
- User interfaces are updated for web access.
AMT Go Runtime. The AMT Go runtime runs the transformed legacy application, accessible through a web interface, mirroring existing functionality.
AMT Control Center. The AMT Control Center allows an administrator to manage and configure the AMT environment, providing operations and monitoring tools.
Tiered Structure
The AMT runtime is based on a three-tier architecture.
- The backend data storage is the first tier, where all necessary information is stored and accessed by other AMT components.
- The logic and processing is done on the second tier, which utilizes data from the backend database in the first tier; after processing, the resulting data is either sent to the third tier for user interaction or returned to the first tier for further storage or retrieval.
- The third tier, the application runtime, handles all end-user interactions via web interfaces or scripts.
AMT Technology Stack
AMT is built in Java and supports various database technologies; PostgreSQL, SQL, Oracle, and DB2. The frontend is built in Angular, and applications are accessed via web browsers such as Chrome, Edge, or Firefox. OpenTelemetry is used for monitoring and observability. Python JCL (Job Control Language) is used to perform batch jobs. AMT is secured with OIDC/OAuth2.
See the image below for a full overview of the AMT Java technology stack.
Actors
On Mainframes, everything runs on one machine or environment. In AMT, actors represent different components that interact within a distributed system, simulating the unified environment of a mainframe. Actor systems can run locally or in distributed environments, and distributed processing is a key benefit of the actor model. The actor model is also designed to support scalability, allowing systems to efficiently manage growing workloads. Scalability means the system can handle increased processing demands by allocating additional resources, maintaining performance as load grows. The actor model excels in distributed processing environments, making it easier to manage tasks across different nodes.
Actors in AMT allow for multiple processes to run concurrently, improving efficiency and performance. Each actor has its own state and behavior, interacting asynchronously to be highly reactive and prevent blocking operations. In AMT generated applications, actors are a powerful tool to keep track of all associated actions that the system undertakes to execute a job or a transaction. For example, by storing the jobId, batchId, and transactionId in the Mapped Diagnostic Context (MDC) (a mechanism for storing contextual information in logging frameworks) at the appropriate points, you can keep track of everything the system does related to that specific job or transaction.
Actors in AMT also make the system more resilient to failures. Failures should not cause side effects and they are handled in isolation through mechanisms such as actor supervision and message passing, which ensure that errors are contained and do not affect other parts of the system. Actor supervision means that if an actor fails, its supervisor can restart it or handle the error without impacting other actors. Message passing allows actors to communicate asynchronously, so failures in one actor do not block others.
The following is a list of actors operating in AMT:
- File Management
- FileManagerActor
- FileTaskActor
- FileObjectManagerActor
- FileObjectActor
- Job Management
- JobManagerActor
- JobHistoryManagerActor
- JobEntryWriterActor
- JobRunnerManagerActor
- JobRunnerActor
- JobStatusManagerActor
- Transaction Management
- TransactionManagerActor
- DisplayChannelManagerActor
- DisplayChannelActor
- TransactionRunnerManagerActor
- TransactionRunnerActor
- TransactionLoggerManagerActor
- DisplayChannelNodeManagerActor
- Support
- PrintManagerActor
- LWWMapActor
- FormManagerActor
- ProgramManagerActor
- ProgramCacheActor
- ScriptScannerActor
