ORDA – Dal principiante all’esperto

Tradotto automaticamente da Deepl

ORDA, acronimo di Object Relational Data Access, è un metodo di accesso ai dati che combina i vantaggi della programmazione orientata agli oggetti con quelli dei database relazionali, consentendo agli sviluppatori di concentrarsi sulla soluzione dei problemi aziendali piuttosto che sulla gestione dell’accesso ai dati.

Sia che siate alle prime armi con ORDA, sia che lo conosciate già e vogliate ampliare le vostre conoscenze, considerate questo post del blog come una mappa per guidarvi nel processo di apprendimento.

Questo blog post include quanto segue:

Senza ulteriori indugi, andiamo al sodo!

Perché dovrei interessarmi a ORDA?

Prima di passare ai dettagli tecnici, elenchiamo alcuni dei vantaggi di ORDA:

Tutto è un oggetto

ORDA è un mondo in cui tutto è un oggetto, compreso il database.

Questo approccio consente di accedere all‘intero database 4D utilizzando un approccio orientato agli oggetti, che facilita il lavoro con i dati e può contribuire a ridurre la complessità del codice. ORDA mappa i dati a concetti del mondo reale, in modo che l’uso dei dati diventi semplice ed elimini la necessità di una comprensione approfondita della struttura relazionale.

Codice orientato al business con le classi

ORDA è dotato di classi dedicate al modello dei dati. Grazie alle classi, la complessità dell’implementazione fisica dei dati può essere nascosta e l’applicazione può esporre facilmente i servizi, essere più gestibile, più facile da mantenere e integrarsi perfettamente con altre applicazioni.

Prestazioni fuori dagli schemi

ORDA può contribuire a migliorare le prestazioni delle applicazioni fornendo diverse tecniche di ottimizzazione, come i contesti e il caricamento pigro. Queste tecniche possono contribuire a ridurre il numero di query al database che devono essere eseguite, con conseguenti tempi di risposta più rapidi per le applicazioni. La parte migliore? È tutto automatico; a differenza di SQL o di uno strumento ORM, non è necessaria alcuna programmazione.

Maggiore scalabilità

ORDA può contribuire a rendere le applicazioni più scalabili grazie al supporto di architetture di database distribuite. Ciò significa che i dati possono essere distribuiti su più server di database, il che può contribuire a migliorare le prestazioni e a gestire quantità di dati più significative.

Aperto ed estensibile

ORDA consente di creare una perfetta integrazione tra sistemi diversi. Può essere combinato con il server REST per esporre la logica aziendale con un’API controllata (attraverso le vostre classi) per altri strumenti, come framework web come Angular o React.

Dopo aver appreso alcuni dei vantaggi di ORDA e di come questa tecnologia possa influire positivamente sulla vostra applicazione, passiamo ai dettagli tecnici.

Panoramica globale di ORDA

Questo schema mostra una panoramica globale dell’utilizzo di ORDA:

  • ORDA fornisce API per lavorare con i dati e un robusto livello di astrazione che sarà esposto come API aziendali.
  • È disponibile un sistema completo di autorizzazioni per filtrare l’accesso ai dati.
  • Con ORDA è possibile lavorare con il server REST utilizzando archivi di dati remoti o API REST.
  • È possibile utilizzare ORDA se si lavora in modalità client-server.
  • Il codice ORDA può essere utilizzato anche in un’applicazione web (4DACTION, 4D tags).

Questo diagramma dovrebbe fornire una panoramica del modo in cui ORDA si collega alle diverse parti di 4D. Una volta che l’idea è chiara, seguite i passaggi seguenti per iniziare il vostro viaggio di apprendimento.

Che il viaggio di apprendimento abbia inizio!

Fase 1 – Concetti principali

I concetti principali di ORDA possono essere scoperti qui.

Innanzitutto, bisogna familiarizzare con i termini datastore, dataclass, entity e entity selections. Comprendete il significato di questi concetti, poiché li vedrete spesso quando lavorerete con ORDA.

passo 2 – API ORDA

In secondo luogo, si esaminano le API orientate agli oggetti di ORDA e si scopre come è possibile gestire i dati con tali API.

Ad esempio, l’API più utilizzata è query() per eseguire una query sul database.

Per aiutarvi a scoprire ogni API, ecco un elenco di post del blog con applicazioni demo con cui potete giocare.

  1. Interrogare il database con un approccio orientato agli oggetti
  2. Andare avanti e indietro tra le selezioni correnti in ORDA
  3. Azioni CRUD
  4. Operazioni logiche
  5. Gestire le entità
  6. Lavorare con oggetti e collezioni
  7. Calcolo di statistiche
  8. Ordinare per formula
  9. Eseguire query con formule
  10. Segnaposto denominati per i percorsi degli attributi
  11. Segnaposto denominati
  12. Selezione delle entità: metodi extract() e refresh()
  13. Metodi membri per ottenere informazioni sulla struttura
  14. Confronto tra due selezioni di entità
  15. Meccanismi di blocco ottimistici
  16. Bloccare le entità
  17. Scrivere codice generico
  18. Esempio di codice generico
  19. Scheda informativa ORDA

scoprire il potere delle relazioni con orda

Come abbiamo detto in precedenza, ORDA è un metodo di accesso ai dati che combina la programmazione orientata agli oggetti con i vantaggi dei database relazionali.

Se volete approfondire e scoprire tutti i vantaggi che potete trarre dalle relazioni utilizzando ORDA, ecco una serie di dimostrazioni in cui imparerete a risparmiare molte righe di codice e a costruire un’interfaccia user-friendly.

    1. Episodio 1
    2. Episodio 2
    3. Episodio 3
    4. Episodio 4

Collegamento con il codice 4D classico

Se utilizzate ancora il codice 4D classico (che tutti conosciamo e amiamo), potete mescolarlo con il codice ORDA, se necessario.

Questo è utile per introdurre progressivamente i concetti di ORDA nella vostra applicazione.

Per maggiori dettagli, consultate questo post del blog.

Fase 3 – Strato di astrazione ORDA.

Per andare avanti con ORDA, si può sfruttare il livello di astrazione.

In questo livello, si implementa tutta la logica aziendale attraverso le classi del modello di dati ORDA.

La gestione delle classi rappresenta un passo avanti nella programmazione orientata agli oggetti. Ogni classe può accogliere la logica aziendale in funzioni.

Scoprite i vantaggi degli attributi calcolati e degli alias. È facile impostare un attributo calcolato definendo la sua formula di calcolo e tutta la sua logica di business. Oppure definire un alias come qualsiasi altro attributo del modello di dati.

Pertanto, gli sviluppatori consumeranno questo livello di astrazione invece di gestire il livello di implementazione fisica.

  1. Benvenuti nel mondo delle classi ORDA
  2. Classi ORDA per gestire il modello di dati
  3. Classi del modello di dati ORDA e REST
  4. SUGGERIMENTI con le classi del modello di dati ORDA
  5. Uno spettacolo magico con gli attributi calcolati
  6. Salutate gli alias

passo 4 – Lavorare in remoto

Ora è il momento della parte divertente 🙂

client-server

È possibile utilizzare ORDA in modalità client-server. Utilizzate il comando ds per ottenere l’oggetto datastore e iniziare a lavorare con i dati.

Ecco ulteriori dettagli sulle caratteristiche specifiche per lavorare in C/S.

  1. La parola chiave locale
  2. Aggiorna la selezione delle entità

datastore remoto

Se si lavora in Client Server, si è limitati al database corrente, che richiede una connessione di rete permanente.

Grazie al datastore remoto, un’applicazione può ottenere dati da un altro database 4D remoto esposto su un server 4D!

Questa funzione copre molti casi d’uso:

  • organizzare le applicazioni per lavorare offline e sincronizzare i dati locali solo quando i dati remoti sono raggiungibili
  • pubblicare i dati su più server e passare da uno all’altro quando necessario
  • suddividere il modello di dati in diversi database( ad esempio, dati locali e dati internazionali). In questo modo è possibile avere i dati distribuiti in luoghi diversi e comunque accessibili attraverso un unico codice client 4D (metodi di progetto e oggetti modulo).

Leggete questi post del blog per saperne di più:

  1. Sorgenti di dati multiple in 4D, siete interessati?
  2. Archivi di dati remoti, un caso d’uso pratico

API REST

Le API del server REST si basano sui concetti di ORDA.

Ecco alcuni preziosi post del blog per imparare a usare le API REST.

    1. Server 4D Rest e Postman
    2. Server 4D Rest e ReactJs
    3. ORDA Classi di modelli di dati e REST
    4. La parola chiave exposed

fase 5 – ottimizzazione delle richieste

Quando lavorate in remoto con ORDA, sappiate che le richieste vengono ottimizzate automaticamente per chiedere al server solo gli attributi necessari. Inoltre, è possibile personalizzare le proprie regole di ottimizzazione per migliorare le prestazioni.

Per saperne di più passo dopo passo, ecco un elenco di post del blog.

  1. Utilizzare ORDA per aumentare le prestazioni
  2. Controllo completo sulle richieste REST
  3. Ottimizzazione delle richieste e dimostrazione
  4. Registrazione delle richieste

Ed ecco una dimostrazione video dal vivo realizzata durante il Summit 2020

passo 6 – Sistema di permessi per filtrare l’accesso ai dati

Filtrare l’accesso ai dati è una funzione indispensabile per impedire l’accesso di malintenzionati alla vostra applicazione.

Dalla v19R8, potete usufruire di un sistema potente e completamente personalizzabile per proteggere i vostri dati da utenti non autorizzati. Si tratta di un sistema per proteggere i dati a seconda di chi vi accede e di quali dati vi accedono.

Copre tutti i processi web, come le richieste REST, le richieste ricevute su un datastore remoto e i processi web come 4DACTION o 4D tag.

Leggete questo post del blog per saperne di più.

Passo 7 – condividere i dati tra i processi

Forse avete già lavorato con oggetti condivisi e collezioni condivise. È anche possibile condividere le selezioni di entità tra più processi, aumentando le prestazioni.

Leggete questi blog post per saperne di più:

  1. Condividere una selezione di entità tra processi
  2. Passare alle selezioni di entità condivise senza problemi

applicazione web

È possibile utilizzare questo metodo anche quando si lavora con sessioni web scalabili. Esse possono gestire diversi processi in modalità preemptive. Ciò significa che le sessioni web scalabili possono accettare diverse richieste dell’utente-agente allo stesso tempo.

Queste nuove sessioni web scalabili possono condividere i dati tra questi processi, anche le selezioni di entità.

Questi post del blog vi saranno utili se lavorate con le selezioni di entità nei processi web.

    1. Sessioni web scalabili per applicazioni web avanzate
    2. La condivisione porta alle prestazioni
    3. Il looping semplice di ORDA con il tag 4D

Per concludere

Ricordate che ORDA è uno strumento potente che può rendere il vostro processo di sviluppo e l’accesso ai dati più veloce ed efficiente.

Ci auguriamo che questo post vi sia stato utile. Non esitate a porre domande sul forum.

Saremo felici di aiutarvi con ORDA!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.