SlideShare a Scribd company logo
1 of 33
Metamorfosi
di un sistema
informatico
Roma, 4 Aprile 2019
Un approccio pragmatico e sostenibile alla
modernizzazione di un sistema realizzato
con tecnologia Oracle
Speaker
Andrea Ferroni
Solution Developer Senior
Tech Lead, Analyst, Developer
ITOUG board member
Email: andrea.ferroni@itoug.it
2
ORACLE
FORMS
Una strategia di
migrazione, ma
non solo
3
Metamorfosi
Il bruco
Il sistema esistente
La crisalide
Evoluzione del back-
end
La farfalla
Un’ alternativa
per la UI
4
1.
Il bruco
Il sistema
esistente
5
Vasto
Ecosistema
applicativo di
ampie
dimensione
3.000FORMS
1.300Package
5.000Tabelle
6
Eterogeneo
Tecnologie diverse
coesistono
7
UIORACLE FORMS
BLEXE PRO*C
PACKAGE PLSQL
Operatività
Due modalità
8
Interattiva
Applicazioni Table Based e
data entry
Batch
Processi elaborativi
massivi automatici non
presidiati
Change
Oracle Forms 6.0
Oracle Forms 11g
9
Riutilizzare EXE core
Riutilizzare BL (Package)
Supporto processi (BATCH)
Vincoli
2.
La crisalide
La metamorfosi
ha inizio
10
SCHEDULERORACLE SCHEDULER 11g
SDKFRAMEWORK PLSQL
11
TASK
12
TASK
Parametri IN #1..#n
Log Report #1
Report #n
Parametro OUT #1..#n
CLASS TASK
Package PLSQL
EXE Pro*C
Parametri IN #1..#N
TASK CALL
13
Form
FRAMEWORK
PLSQL
ORACLE
SCHEDULER
idTask :=FRAMEWORK.TaskAdd(‘<CLASS_TASK>’);
FRAMEWORK.TaskRun(idTask);
PROCEDURE FRAMEWORK.TaskRun(task IN tTask) IS
DBMS_SCHEDULER.CREATE_JOB('BEGIN <PACKAGE.PROCEDURE>(' || task.id ||') END');
END;
Modulo di
Elaborazione
Form
PLSQL CALL
Modulo di
Elaborazione
Implement TASK
CREATE OR REPLACE PACKAGE ORDER_PCK AS PROCEDURE
PRINT(taskId IN VARCHAR2);
END;
/
CREATE OR REPLACE PACKAGE BODY ORDER_PCK AS PROCEDURE PRINT(taskId IN
VARCHAR2)IS
log FRAMEWORK.tLog;
file FRAMEWORK.tFile;
paramList FRAMEWORK.tParam;
BEGIN
FRAMEWORK.NOTIFY('OrderPrint BEGIN');
log := FRAMEWORK.LOG_OPEN(taskId, 'ORDER_PCK_' || taskId || '.LOG');
paramList := FRAMEWORK.PARAM_LIST_LOAD(taskId, log);
FRAMEWORK.PARAM_PRINT(taskId, log);
file:= FRAMEWORK.FILE_NEW(taskId, log);
--Print Order param.OrderID
FRAMEWORK.FILE_PRINT(taskId, 'OrderId:' || paramList(‘ORDERID’) , log);
FRAMEWORK.FILE_CLOSE(file,log);
FRAMEWORK.LOG_CLOSE(log);
FRAMEWORK.NOTIFY('OrderPrint END');
END;
/
14
Procedura PLSQL che implementa un TASK
FORM Dialog
Modalità di esecuzione TASK
15
FORM Monitor
Monitoraggio esecuzione TASK
16
XFORM
17
18
TASK CHAIN
API PLSQL
FRAMEWORK_PROCESS
STEP #B
[2]
STEP #C
[2]
STEP #D
[2]
MASTER
STEP #A
[1]
STEP #E
[3]
19
TASK-BOT
◎ TASK schedulato per essere eseguito in modo
ripetitivo con una certa periodicità
◎ Abilita all’automazione di processi di business
File Transfer Service
◎ FTS Servizio Windows C#
◎ Trasporto di FILE
◎ TASK-BOT per l’acquisizione o la generazione automatica di FILE
20
FILE TRANSFER
SERVICE DATABASE
FILE SYSTEM
PRO
◎ Storicizzazione elaborazioni
◎ BL incapsulata in moduli componibili
◎ Disaccoppiamento UI/BL
◎ Componenti UI centralizzate e minimizzate
◎ Censimento dei moduli di BL
◎ Focus funzionale
21
CONTRO
◎ Centralità del FRAMEWORK
◎ Occupazione di spazio DB
3.
La farfalla
La metamorfosi
compiuta
22
Architettura
23
json-RPC 2.0 {...}
WEB API
PlSQL
execute
{ }
Interactive & Batch
24
WEB API
PlSQL
FRAMEWORK
PlSQL
ORACLE SCHEDULER
Modulo di
Elaborazione
4.
Futuro
Ulteriori possibili evoluzioni
25
◎ Un sistema reattivo composto da numerosi TASK-BOT
◎ TASK che cooperano tra loro attraverso una coda di
messaggi
◎ PRO
○ Semplice da disegnare
○ Vicino alla semantica dell’analisi:
◉ “quando arriva un ordine viene automaticamente
verificato, stampato”
◉ “ogni volta che viene generato un documento
viene notificato al sistema integrato di contabilità”
◎ CONTRO
○ Delicato
○ Deploy complicato
Sistema ad eventi
26
5.
Riflessioni
Qualche considerazione
27
Longevità
La longevità di un
sistema dipende più
dell’architettura che
dalla tecnologia
28
Architettura
L’architettura di
sistema può essere
abilitante a livello
applicativo
29
UI
La UI invecchia più
velocemente della BL perciò è
fondamentale disaccoppiarle.
30
Grazie!
31
Innovazione frugale: l’arte di escogitare
soluzioni ingegnose usando strumenti
semplici.
Domande
32
andrea.ferroni@itoug.it
Quanto è longevo
il tuo sistema ?
Credits
◎ Template presentazione Cordelia da SlidesCarnival
◎ Foto da https://pixabay.com
33

More Related Content

Similar to Metamorfosi di un sistema informatico

Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...confluent
 
Octobus enterprise management system
Octobus enterprise management systemOctobus enterprise management system
Octobus enterprise management systemFoedus
 
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...Giacomo Russo
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaProfesia Srl, Lynx Group
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRSManuel Scapolan
 
What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...Emanuele Della Valle
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsIgor Antonacci
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveEmanuele Della Valle
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Alberto Lagna
 
Il Cloud Infrastrutturale
Il Cloud InfrastrutturaleIl Cloud Infrastrutturale
Il Cloud InfrastrutturaleMarco Lombardo
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
 

Similar to Metamorfosi di un sistema informatico (20)

Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
Kotlin hexagonal-architecture
Kotlin hexagonal-architectureKotlin hexagonal-architecture
Kotlin hexagonal-architecture
 
Octobus enterprise management system
Octobus enterprise management systemOctobus enterprise management system
Octobus enterprise management system
 
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
 
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole Italia
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Connext ita
Connext itaConnext ita
Connext ita
 
What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)
 
Il Cloud Infrastrutturale
Il Cloud InfrastrutturaleIl Cloud Infrastrutturale
Il Cloud Infrastrutturale
 
Scenario Framework
Scenario FrameworkScenario Framework
Scenario Framework
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 

Metamorfosi di un sistema informatico