
Alla fine di marzo la nuova versione della piattaforma dati InterSystems IRIS 2020.1. Anche la pandemia di coronavirus non ha impedito il rilascio.
Tra le novità di questo rilascio — maggiore velocità del nucleo, generazione di applicazioni REST secondo la specifica OpenAPI 2.0, sharding per oggetti, un nuovo tipo di Portale di Gestione, supporto MQTT, cache universale delle richieste, un nuovo framework per la creazione di elementi di prodotto in Java o .NET. L'elenco completo delle modifiche e l'Upgrade Checklist in inglese possono essere trovati su . Maggiori dettagli — sotto il cat.
InterSystems IRIS 2020.1 è un rilascio con supporto esteso. InterSystems rilascia due tipi di versioni di InterSystems IRIS:
- Rilasci di Continuous delivery. Vengono pubblicati tre-quattro volte all'anno in forma di immagini Docker. Sono destinati allo sviluppo di applicazioni e al deployment in cloud o container Docker.
- Rilasci con supporto esteso. Vengono pubblicati meno frequentemente, ma per essi vengono rilasciate versioni con correzioni. Vengono pubblicati su tutte le piattaforme supportate da InterSystems IRIS.
Tra i rilasci con supporto esteso 2019.1 e 2020.1 sono usciti soltanto rilasci in immagini Docker — 2019.2, 2019.3, 2019.4. Tutte le nuove funzionalità e le correzioni di questi rilasci sono state incluse nel 2020.1. Alcune delle possibilità sotto elencate sono apparse per la prima volta in uno dei rilasci 2019.2, 2019.3, 2019.4.
Dunque.
Sviluppo di applicazioni REST secondo la specifica
In aggiunta a , supportato dalla versione 2019.1.1, nella versione 2020.1 è stata introdotta la possibilità di generare uno scheletro di codice per un servizio REST secondo la specifica nel formato OpenAPI 2.0. Maggiori dettagli sono disponibili nella sezione della documentazione "».
Conversione dell'installazione di Caché o Ensemble
Questa versione consente, durante l'installazione, di convertire l'installazione di Caché o Ensemble in InterSystems IRIS. La conversione stessa potrebbe richiedere modifiche al codice sorgente, alle impostazioni o ad altri script, ma nella maggior parte dei casi sarà semplice.
Prima di eseguire la conversione, leggere la guida InterSystems IRIS In-Place Conversion Guide e la guida InterSystems IRIS Adoption Guide. Questi documenti sono disponibili sul sito del Centro di supporto globale di InterSystems nella sezione “».
Linguaggi client
InterSystems IRIS Native API per Python
Accesso rapido a basso livello da Python a array multidimensionali, in cui InterSystems IRIS memorizza i dati. Maggiori dettagli — "».
InterSystems IRIS Native API для Node.js
Accesso rapido a basso livello da Node.js a array multidimensionali, in cui InterSystems IRIS memorizza i dati. Maggiori dettagli — "».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Comunicazione bidirezionale nei gateway Java e .NET
Le connessioni tra .NET e i gateway Java sono ora bidirezionali. Cioè, un programma in .NET o Java, chiamato da IRIS tramite il gateway, utilizza questa stessa connessione per comunicare con IRIS. Maggiori dettagli — «».
Miglioramenti nell'API nativa per Java e .NET
L'API nativa di IRIS per Java e .NET supporta le liste $LIST e il passaggio dei parametri per riferimento.
Nuovo tipo di Portale di Gestione
In questa release sono state apportate le prime modifiche al Portale di Gestione. Queste riguardano solo l'aspetto estetico e non influiscono sulla funzionalità.
SQL
Cache universale per le query. Dalla versione 2020.1, tutte le query, comprese le query incorporate e quelle delle classi, verranno memorizzate come query in cache. In passato, l'uso delle query incorporate richiedeva la ricompilazione del programma per generare nuovo codice di query, ad esempio se veniva creato un nuovo indice o se le statistiche della tabella erano cambiate. Ora tutti i piani delle query vengono memorizzati in una singola cache e vengono svuotati indipendentemente dal programma in cui viene utilizzata la query.
Un numero maggiore di tipi di query è ora parallelizzabile, comprese le query DML.
Le query su una tabella suddivisa in shard possono ora utilizzare un join implicito "->".
Le query eseguite dal Portale di gestione ora vengono eseguite in un processo in background. Le query lunghe non verranno più abbandonate a causa del timeout della pagina web. Le query prolungate possono ora essere annullate.
Capacità di integrazione
Nuovo framework per la creazione di elementi di prodotto in Java o .NET
Questa release include un nuovo framework PEX (Production EXtension), che offre una scelta aggiuntiva del linguaggio per l'implementazione dei componenti del prodotto. In questa release, PEX supporta Java e .NET per lo sviluppo di servizi aziendali, processi aziendali e operazioni aziendali, oltre che per adattatori in entrata e in uscita. In passato, era possibile creare solo servizi aziendali e operazioni aziendali, e occorreva chiamare il generatore di codice nel Portale di Gestione. Il framework PEX fornisce strumenti più flessibili per includere codice in Java e .NET nei componenti del prodotto, spesso senza dover programmare in ObjectScript. Il pacchetto PEX include le seguenti classi:
Maggiori dettagli — «».
Monitoraggio dell'utilizzo delle porte nelle produzioni.
L'utility Port Authority monitora le porte utilizzate dai servizi e dalle operazioni aziendali. Con essa è possibile identificare le porte disponibili e prenotarle. Maggiori dettagli — «».
Adapter per MQTT
Questa versione include adapter che supportano il protocollo MQTT (Message Queuing Telemetry Transport), frequentemente utilizzato nelle applicazioni per l'Internet delle Cose (Internet of Things — IoT). Maggiori dettagli — «».
Sharding
Architettura semplificata
Questa versione presenta un modo più semplice e comprensibile per creare un cluster basato su server individuali (node level), invece che su aree, come nelle versioni precedenti. Nuovo API — . Il nuovo approccio è compatibile con il vecchio — un cluster basato su aree (namespace level) — e non richiede modifiche alle installazioni esistenti. Maggiori dettagli — «" e "».
Altri miglioramenti nello sharding:
- Ora è possibile co-shardare (distribuire su shard comuni parti frequentemente collegate di due tabelle) qualsiasi coppia di tabelle. In precedenza, ciò era possibile solo con tabelle che avevano una chiave shard comune. A partire da questa versione, la sintassi COSHARD WITH si applica anche a tabelle con ID di sistema. Maggiori dettagli — «" e "».
- In precedenza, era possibile contrassegnare una tabella come cluster solo tramite DDL, ora è possibile farlo anche nella descrizione della classe — nuova parola chiave Sharded. Maggiori dettagli — «».
- Il modello a oggetti ora supporta lo sharding. I metodi %New(), %OpenId e %Save() funzionano con oggetti di classe i cui dati sono distribuiti su più shard. Si prega di notare che il codice viene eseguito sul server a cui è connesso il client, e non su quello dove è memorizzato l'oggetto.
- È stato migliorato l'algoritmo per l'esecuzione di query su cluster. Il gestore di coda delle richieste (Unified Shard Queue Manager) mette in coda le richieste per l'esecuzione a un pool di processi, anziché avviare nuovi processi per ogni richiesta. Il numero di processi nel pool è automaticamente determinato in base alle risorse del server e al carico.
Infrastruttura e distribuzione nel cloud.
Questa versione include miglioramenti nell'infrastruttura e nella distribuzione nel cloud, tra cui:
- Supporto per Tencent Cloud. InterSystems Cloud Manager (ICM) ora supporta la creazione di infrastrutture e la distribuzione di applicazioni basate su InterSystems IRIS in Tencent Cloud.
- Supporto per volumi nominati (named volumes) in Docker, oltre al montaggio di cartelle (bind mount).
- ICM supporta una scalabilità flessibile: le configurazioni possono ora essere ridimensionate, ovvero ricreate con un numero maggiore o minore di nodi. Maggiori dettagli — «" e "».
- Miglioramenti nella creazione di container personalizzati.
- ICM supporta una nuova architettura di sharding.
- L'utente predefinito nei container non è più root.
- ICM supporta la creazione e il dispiegamento di reti private, in cui un nodo bastione collega la rete privata a quella pubblica e fornisce un'ulteriore protezione contro gli attacchi Denial-of-Service.
- Supporto per la scoperta dei servizi tramite RPC protetto.
- ICM supporta il dispiegamento in più regioni. Questo garantisce un'alta disponibilità del sistema, anche se l'intera regione smette di funzionare.
- Possibilità di aggiornare ICM mantenendo le informazioni sui sistemi già dispiegati.
- Modalità senza container: ICM ora può dispiegare direttamente, senza container, configurazioni cluster su Google Cloud Platform, oltre a installare Web Gateway su Ubuntu o SUSE.
- Supporto per la fusione dell'iris.cpf da due file. Questo consente a ICM di eseguire InterSystems IRIS con diverse configurazioni a seconda della modalità in cui l'installazione opera. Questa funzionalità semplifica l'automazione e il supporto per diversi strumenti di gestione delle configurazioni, come Kubernetes.
Analitica
Ricostruzione selettiva del cubo
A partire da questa versione, InterSystems IRIS Business Intelligence (precedentemente conosciuto come DeepSee) supporta la costruzione selettiva del cubo: solo un singolo indicatore o dimensione. È possibile modificare la descrizione del cubo e ricostruire solo ciò che è cambiato, mantenendo la disponibilità dell'intero cubo durante la ricostruzione.
Connettore PowerBI
Microsoft PowerBI ora supporta il lavoro con tabelle e cubi di InterSystems IRIS. Il connettore è fornito con PowerBI, a partire dalla release di aprile 2019. Maggiori dettagli — «».
Anteprima dei risultati della query
In questa versione è stata introdotta una nuova modalità di anteprima durante la creazione delle tabelle pivot in Analyzer. Questo permette di valutare rapidamente la correttezza della query senza attendere i suoi risultati completi.
Altri miglioramenti
- L'iterazione del globale tramite la funzione $ORDER in ordine inverso (direction = -1) è ora veloce come quella in ordine diretto.
- Migliorata la performance della registrazione.
- Aggiunto supporto per Apache Spark 2.3, 2.4.
- Aggiunto supporto per il client WebSocket. Classe %Net.WebSocket.Client.
- La classe di controllo delle versioni ora gestisce gli eventi in caso di modifiche alla pagina del prodotto.
- Liste bianche per filtrare le richieste consentite a CSP, ZEN e REST.
- Supporto per .NET Core 2.1.
- Migliorata la performance ODBC.
- Log strutturato per facilitare l'analisi di messages.log.
- API per il controllo degli errori e degli avvisi. Classe %SYSTEM.Monitor.GetAlerts().
- Il compilatore delle classi ora verifica che il nome del global nello storage non superi la lunghezza massima (31 carattere) e restituisce un errore se non è così. In precedenza, il nome del global veniva tagliato a 31 caratteri senza alcun avviso.
Dove trovare
Se hai supporto, scarica il pacchetto dalla sezione sito wrc.intersystems.com
Se desideri solo provare InterSystems IRIS —
Ancora più semplice tramite Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
Il 7 aprile alle 17:00 ora di Mosca si svolgerà un webinar dedicato al nuovo rilascio. Sarà condotto da Jeff Fried (Direttore, Product Management) e Joe Lichtenberg (Direttore Marketing di Prodotto e Settore). Il webinar sarà in inglese.
Fonte: habr.com
