Utilizzo dell'ambiente linguistico per i programmi di " CICS "
Language Environment®, fornito come elemento di z/OS®, fornisce un insieme comune di librerie di runtime. Language Environment consente di utilizzare un solo ambiente di runtime per le applicazioni, indipendentemente dal linguaggio di programmazione o dalle esigenze di risorse di sistema, poiché la maggior parte delle dipendenze di sistema è stata rimossa.
- È possibile combinare tutte le lingue supportate da CICS® in un unico programma.
- Gli stessi servizi richiamabili dell'Ambiente linguistico sono disponibili per tutti i programmi. Ad esempio:
- Un elenco collegato creato con una memoria ottenuta utilizzando i servizi richiamabili del Language Environment in un programma PL/I può essere elaborato successivamente e la memoria liberata utilizzando i servizi richiamabili di una routine COBOL.
- Il simbolo di valuta utilizzato in una serie di report può essere impostato in una routine Assembler, anche se i report stessi sono prodotti da programmi COBOL.
- I messaggi di sistema di programmi scritti in lingue diverse vengono inviati tutti alla stessa destinazione di output.
CICS supporta programmi applicativi compilati da diversi compilatori; per un elenco dei compilatori supportati in questa versione di CICS Transaction Server for z/OS, vedere Modifiche al supporto di CICS per i linguaggi di programmazione delle applicazioni.
La maggior parte dei compilatori supportati da CICS e da Language Environment sono compilatori conformi a Language Environment, il che significa che i programmi compilati da questi compilatori possono sfruttare tutte le strutture di Language Environment disponibili per una regione CICS. CICS e Language Environment supportano anche i programmi compilati da alcuni compilatori precedenti a Language Environment, che non sono conformi a Language Environment. Tuttavia, CICS non supporta tutti i compilatori pre-Language Environment che sono supportati da Language Environment.
Le applicazioni compilate e collegate con compilatori precedenti a Language Environment possono essere eseguite con successo utilizzando il supporto runtime fornito da Language Environment. Queste applicazioni potrebbero non richiedere la ricompilazione o la modifica del link. In alcune circostanze, potrebbe essere necessario regolare le opzioni di runtime dell'ambiente linguistico in modo che le applicazioni vengano eseguite correttamente. Vedere la Guida alla migrazione delle applicazioni in fase di esecuzione ( z/OS Language Environment ) e la Guida alla migrazione del compilatore e in fase di esecuzione (Compiler and Run-Time Migration Guide) per il linguaggio in uso.
Le librerie di runtime fornite con i compilatori pre-Language Environment non sono supportate. Non includete librerie di lingua diverse da quelle dell'ambiente linguistico nel JCL di avvio di CICS.
Quando si modificano programmi applicativi esistenti o si scrivono nuovi programmi, è necessario utilizzare un compilatore supportato da Language Environment. I programmi applicativi devono essere collegati utilizzando la libreria SCEELKED dell'ambiente linguistico, il che significa che il modulo di caricamento dell'applicazione risultante può essere eseguito solo nell'ambiente linguistico.
In CICS è anche possibile creare programmi Assembler MAIN conformi all'Ambiente linguistico. Per ulteriori informazioni sui programmi Assembler, vedere Sviluppo di applicazioni in linguaggio Assembler.
L'architettura dell'ambiente linguistico
- Gestione programma
- Gestione delle condizioni
- Servizi di messaggistica
- Gestione del magazzino.
- Gestione programma
- La gestione del programma definisce i costrutti di esecuzione del programma di un'applicazione e la semantica associata all'integrazione di vari componenti di gestione di tali costrutti. Tre entità, processo, enclave e thread, sono al centro del modello di gestione del programma Language Environment:
- Processo
- Il componente di livello più alto del modello di programma Language Environment è il processo. Un processo è costituito da almeno un enclave ed è logicamente separato dagli altri processi. L'ambiente linguistico generalmente non consente la condivisione di file di lingua tra enclave né fornisce la possibilità di accedere a raccolte di dati memorizzati esternamente.
- Enclave
- Un insieme di routine che costituiscono un'applicazione. L'enclave è l'equivalente di uno dei seguenti:
- Un'unità di esecuzione, in COBOL
- Un programma, composto da una funzione C principale e dalle sue sottofunzioni, in C e C++
- Una procedura principale e tutte le sue subroutine, in PL/I
- Thread
- Ogni enclave è costituita da almeno un thread, l'istanza di base di una particolare routine. Durante l'inizializzazione dell'enclave viene creato un thread con il proprio stack di runtime, che tiene traccia dell'esecuzione del thread, oltre a un contatore di istruzioni univoco, registri e meccanismi di gestione delle condizioni. Ogni thread rappresenta un'istanza indipendente di una routine in esecuzione sotto le risorse di un enclave.
- Modello di gestione delle condizioni
- La libreria runtime Language Environment fornisce una funzione di gestione delle condizioni coerente e prevedibile. Non sostituisce la gestione delle condizioni linguistiche di alto livello, ma consente invece a ciascuna lingua di rispondere al proprio ambiente unico e a un ambiente linguistico misto. I servizi richiamabili possono segnalare condizioni e consentire di interrogare informazioni su tali condizioni. Fornisce inoltre funzioni per la diagnosi degli errori, la creazione di report e il ripristino.
- Modello di gestione dei messaggi e supporto per le lingue nazionali
- Un insieme di servizi comuni di gestione dei messaggi che creano e inviano messaggi informativi e diagnostici in fase di esecuzione. È possibile utilizzare il token di condizione restituito da un servizio richiamabile o da qualche altra condizione segnalata, formattarlo in un messaggio e inviarlo a un dispositivo di output definito o a un buffer. I servizi attivabili di supporto per le lingue nazionali consentono di impostare una lingua nazionale che influisce sulla lingua dei messaggi di errore e sui nomi del giorno, della settimana e del mese. Consente inoltre di modificare l'impostazione del Paese, che influisce sul formato predefinito di data, ora, simbolo di valuta, separatore decimale e separatore delle migliaia.
- Modello di gestione del magazzino
- I servizi di gestione dell'archiviazione comuni sono forniti per tutti i linguaggi di programmazione conformi a Language Environment; Language Environment controlla l'archiviazione stack e heap utilizzata in fase di esecuzione. Le applicazioni possono accedere a un insieme centrale di strutture di gestione dell'archiviazione. Offre un modello di memorizzazione multi-heap per i linguaggi che attualmente non ne hanno uno. Il modello di archiviazione comune elimina la necessità che ogni lingua mantenga un gestore di archiviazione unico ed evita le incompatibilità tra diversi meccanismi di archiviazione.