Esecuzione del generatore di codice
Utilizzare il generatore di codice per generare i servizi API e il relativo codice necessario per implementare le partizioni consigliate.
Prima di iniziare
Accertarsi di soddisfare i requisiti di sistema e i seguenti requisiti di generatore di codice.
Inoltre, personalizzare il processo di generazione del codice in base alle necessità. Il file app.config.txt nella directory cardinal ha due parametri personalizzabili.
- ApplicationName
- Il nome dell'applicazione di cui è stato eseguito il refactoring. Il valore viene utilizzato come prefisso per codice generato, URL e annotazioni.
- CardinalOutPath
- La posizione nella struttura ad albero del codice di origine in cui viene generato il codice della classe del programma di utilità.
Procedura
Eseguire il generatore di codice per generare il codice di refactoring per le partizioni consigliate.
Risultati
Un corretto completamento del generatore di codice determina una struttura di directory simile alla seguente struttura di directory Daytrader.
trasformare l'ingresso ├─── cardinale │ ├── app_config.txt │ ├─── cardinale-codegen │ │ ├── Cardinal-Utility-report.txt │ │ ├── Cardinal-partition0-report.txt │ │ ├── Cardinal-partition1-report.txt │ │ ├── Cardinal-partition2-report.txt │ │ ├── Cardinal-partition3-report.txt │ │ ├── Cardinal-partition4-report.txt │ │ ├── CardinalFileSummary.json │ │ ├── CardinalFileSummary.txt │ │ └── CardinalSings.json │ ├── cardinal_graph.json │ ├── class_run.json │ ├── instrumenter-config.json │ ├── partition.txt │ ├── refTable.json │ └── symTable.json ├── daytrader7-source ├── daytrader7-source-Utility ├── daytrader7-source-partition0 ├── daytrader7-source-partition1 ├── daytrader7-source-partition2 ├── daytrader7-source-partition3 └── daytrader7-source-partition4
In questo esempio, la partizione daytrader-source-Utility contiene classi di applicazioni monolitiche Java identificate come potenziali classi di utilità. È possibile trattare questa partizione come qualsiasi altra partizione insieme al codice IBM Mono2Micro generato, oppure si possono impacchettare queste classi applicative come un file di utilità .jar con tutte le altre partizioni che dipendono dalle classi.
Le directory evidenziate vengono create dal generatore di codice. La directory cardinal-codegen contiene diversi report e diverse partizioni vengono scritte nelle directory xxx-partition_n , dove xxx è il valore ApplicationName e n è il numero di partizione. Per l'esempio, le partizioni sono denominate daytrader7-source-partition_n (dove 0 < = n < = 4). Per ulteriori informazioni, consultare Creazione di viste personalizzate.
Ognuna di queste directory xxx-partition_n contiene le porzioni del codice sorgente appropriate prese dal monolite in esame. L'output include, ma non è limitato a, wrapper di trasformazione, servizi API, codice per la gestione degli oggetti distribuiti e la raccolta di dati inutilizzati. Tutto lo spostamento e la generazione del codice vengono eseguiti automaticamente dal componente di generazione del codice di Mono2Micro. Al momento il generatore di codice considera solo i file di origine .java ; non copia né genera alcuna informazione di configurazione o distribuzione dal monolite. Per la distribuzione effettiva delle partizioni come microservizi, è necessario fornire le informazioni di configurazione appropriate.
Il contenuto della cartella cardinal-codegen interna generata è costituito da vari report. I file Cardinal-partition_n-report.txt (dove 0 <= n <= 4) sono i rapporti di analisi delle invocazioni Java per le singole partizioni in forma di testo, come mostrato in figura per il file partition_3 partition. È possibile specificare l'opzione html durante l'esecuzione del generatore di codice per generare una versione HTML consolidata del report. Per ulteriori informazioni, consultare Cardinal-Report.

Il componente di creazione del codice di Mono2Micro genera il file CardinalFileSummary.txt , che descrive in dettaglio tutte le operazioni eseguite per generare il codice. Il report viene utilizzato per il debug, per una comprensione più profonda del processo di generazione del codice e per la ricerca del codice generato. Il report è solo per uso di riferimento e non è utilizzato da alcun componente di Mono2Micro.
Per ogni partizione sono disponibili cinque categorie di report nel report CardinalFileSummary.txt. Un breve report di esempio viene mostrato nella figura successiva.

Proxy- Un prospetto che contiene le classi stub per ogni partizione che deve accedere agli oggetti non locali e che appartengono ad altre partizioni.
Service- Un report che contiene le API create per gli oggetti delle partizioni a cui si accede dall'esterno della partizione.
Original- Un prospetto che contiene i file Java originali intatti dal monolite. A questi file si accede solo localmente all'interno della partizione.
Dummy- Un report che contiene i file raccolti durante l'analisi del codice sorgente statico non utilizzati in runtime.
Cardinal Exceptionsvengono aggiunti a questi file per garantire che le eccezioni di runtime appropriate vengano generate se vengono eseguite. Questa categoria di report informa anche gli sviluppatori sulle dipendenze potenziali su questi file. Helper- Un prospetto che contiene il codice generato che gestisce funzioni quali la serializzazione e le eccezioni per le partizioni consigliate e le interfacce corrispondenti.
Copied- Un prospetto che contiene classi che non hanno una logica di programmazione ma sono necessarie per la compilazione delle partizioni, come le interfacce e le classi astratte.
Il report finale nella directory cardinal-codegen è CardinalSings.json. Questo file è destinato all'utilizzo da parte degli sviluppatori. Questo report elenca il contenuto seguente:
- Elenca le ubicazioni in cui è necessario modificare il codice o in cui è necessaria un'ispezione dettagliata per implementare le partizioni come potenziali microservizi.
- Elenca gli elementi di azione per gli sviluppatori, con chiave
CARDINAL_TODO_T<number>, che devono essere indirizzati o che sono della varietàWARN. Queste avvertenze danno indicazioni agli sviluppatori per l'ispezione e l'aggiornamento del codice, come necessario. Le attività sono raggruppate in livelli di classe e file. Il seguente report mostraWARN TODOsdurante il refactoring dell'applicazione Daytrader di esempio. Il generatore di codice fornisce commenti dettagliati e autoesplicativi per ogni task diCARDINAL_TODO_T<number>.