Any Business Information System will exhibit a standard assembly of components. To see this one should ignore the domain and go into birdseye view. We might call such assembly a Generic Architecture and embed this view in our System Development, especially for Cobol based Information Systems.
Be it a web enabled application, a CLI oriented or batched system, in Business Information Systems you will need, besides the application itself of course, workflow and persistence. Furthermore you'll need long running tasks like reporting and back up.
The idea is that these components can be implemented in full with Cobol. This is provoking since large systems, among them mainframes, use regularly costly system packages like CICS, Tuxedo, Tibco, and more to support the job of running the Information system in a flexible way when input and output are concerned (read: online users and response times).
It is not so that a 100% Cobol system would be able to compete with these large packages in all aspects. What me wonders is that the effort to develop such components was never undertaken, or else, such "product" was never published in what we now know as Open Source. True, such software operates in high complex environments, but Cobol does to.
So, this picture shows my challenge and endeavor to create such native Cobol components and present them in Open Source. Starting with low complex (and standrad) environments.
When information system's principal role is the capture and maintenance of data and generating more or less intelligent reports on them, than we can distinguish a generic architecture for this information system.
There is a monitor that controls access from the outside and manage the OLTP functionality.
There is a (Enterprise) Bus that is capable of synchronizing transactions, managing long-lasting queries. We know this as BI and OLAP.
There is a Persistence layer that manages the adequate storage of data types. Mostly a database like mySQL or PostGres, DB2 or simply a file system with optional encryption.
There is a Workflow layer that manage the synchronized flow of launches, transactions, batches. This layer can be interactive (menu's), batched (jcl) or hybrid.
There is the Application layer that interfaces with all other components and meanwhile applies busines rules, validation rules, timely signals and more.