ORDA – Du débutant à l’expert

ORDA, qui signifie Object Relational Data Access, est une méthode d’accès aux données qui combine les avantages de la programmation orientée objet avec ceux des bases de données relationnelles, ce qui permet aux développeurs de se concentrer sur la résolution des problèmes métier plutôt que sur la gestion de l’accès aux données.

Que vous soyez novice en matière d’ORDA ou que vous en soyez déjà familier et que vous souhaitiez approfondir vos connaissances, considérez cet article de blog comme une feuille de route qui vous guidera tout au long du processus d’apprentissage.

Ce billet de blog comprend les éléments suivants :

Sans plus attendre, passons aux choses sérieuses !

Pourquoi devrais-je m’intéresser à ORDA ?

Avant d’entrer dans les détails techniques, énumérons quelques-uns des avantages d’ORDA :

Tout est un objet

ORDA est un monde où tout est un objet, y compris la base de données.

Cette approche permet d’accéder à l’ensemble de la base de données 4D en utilisant une approche orientée objet, ce qui facilite le travail avec les données et peut aider à réduire la complexité du code. ORDA fait correspondre les données à des concepts du monde réel de sorte que l’utilisation des données devient simple et supprime la nécessité d’une compréhension approfondie de la structure relationnelle.

Code orienté métier avec des classes

ORDA est livré avec des classes dédiées au modèle de données. Grâce aux classes, la complexité de l’implémentation physique des données peut être cachée, et l’application peut facilement exposer des services, être plus facile à gérer, plus facile à maintenir, et s’intégrer de manière transparente avec d’autres applications.

Des performances prêtes à l’emploi

ORDA peut contribuer à améliorer les performances des applications en fournissant plusieurs techniques d’optimisation, telles que les contextes et le chargement minimal. Ces techniques peuvent contribuer à réduire le nombre de requêtes de base de données à exécuter, ce qui permet d’accélérer les temps de réponse des applications. Le meilleur ? Tout est automatique ; contrairement à SQL ou à un outil ORM, aucune programmation n’est nécessaire.

Augmentation de l’évolutivité

ORDA peut contribuer à rendre les applications plus évolutives en prenant en charge les architectures de bases de données distribuées. Cela signifie que les données peuvent être réparties sur plusieurs serveurs de base de données, ce qui peut contribuer à améliorer les performances et à traiter des quantités de données plus importantes.

Ouvert et extensible

ORDA permet de créer une intégration transparente entre différents systèmes. Il peut être combiné avec le serveur REST pour exposer la logique métier avec une API contrôlée (par le biais de vos classes) pour d’autres outils, tels que des frameworks web comme Angular ou React.

Après avoir pris connaissance de certains des avantages d’ORDA et de la manière dont cette technologie peut avoir un impact positif sur votre application, plongeons nous dans les détails techniques.

Aperçu global d’ORDA

Ce schéma présente une vue d’ensemble de l’utilisation d’ORDA :

  • ORDA fournit des APIs pour travailler avec vos données et une couche d’abstraction robuste qui sera exposée en tant qu’APIs métier.
  • Un système complet de permissions est disponible pour filtrer l’accès à vos données.
  • Avec ORDA, vous pouvez travailler avec le serveur REST en utilisant des bases de données distantes ou les API REST.
  • Vous pouvez utiliser ORDA si vous travaillez en mode Client-Serveur.
  • Le code ORDA peut également être utilisé dans une application web (4DACTION, 4D tags).

Ce diagramme devrait vous donner un aperçu de la façon dont ORDA se connecte aux différentes parties de 4D. Une fois que l’idée est claire, suivez les étapes ci-dessous pour commencer votre parcours d’apprentissage.

Que le parcours d’apprentissage commence !

étape 1 – Concepts principaux

Les principaux concepts d’ORDA peuvent être découverts ici.

Tout d’abord, familiarisez-vous avec les termes datastore, dataclass, entité et sélections d’entités. Comprenez la signification de ces concepts, car vous les verrez souvent lorsque vous travaillerez avec ORDA.

étape 2 – Les API ORDA

Ensuite, examinez les API orientées objet d’ORDA et découvrez comment vous pouvez manipuler vos données avec ces APIs.

Par exemple, l’API la plus fréquemment utilisée est query() pour exécuter une requête sur votre base de données.

Pour vous aider à découvrir chaque API, voici une liste d’articles de blog contenant des applications de démonstration avec lesquelles vous pouvez jouer.

  1. Interrogez votre base de données avec une approche orientée objet
  2. Aller et venir entre les sélections actuelles et ORDA
  3. Actions CRUD
  4. Opérations logiques
  5. Manipuler des entités
  6. Travailler avec des objets et des collections
  7. Calculer des statistiques
  8. Ordonner par formule
  9. Interroger avec des formules
  10. Caractères de remplacement nommés pour les chemins d’accès aux attributs
  11. Caractères de remplacement nommés
  12. Sélection d’entités : méthodes extract() et refresh()
  13. Méthodes membres pour obtenir des informations sur la structure
  14. Comparer deux sélections d’entités
  15. Mécanismes de verrouillage optimistes
  16. Verrouillage des entités
  17. Écrire du code générique
  18. Exemple de code générique
  19. Aide-mémoire ORDA

découvrez la puissance des relations avec orda

Comme nous l’avons dit précédemment, ORDA est une méthode d’accès aux données qui combine la programmation orientée objet avec les avantages des bases de données relationnelles.

Si vous voulez aller plus loin et découvrir tous les avantages que vous pouvez tirer des relations avec ORDA, voici une série de démos où vous apprendrez à économiser de nombreuses lignes de code et à construire une interface conviviale.

    1. Episode 1
    2. Episode 2
    3. Episode 3
    4. Episode 4

LieR ORDA AVEC le code 4D classique

Si vous utilisez toujours le code 4D classique (que nous connaissons et aimons tous), vous pouvez le mélanger avec le code ORDA si nécessaire.

Ceci est utile pour introduire progressivement les concepts ORDA dans votre application.

Consultez cet article de blog pour plus de détails.

Étape 3 – Couche d’abstraction ORDA.

Pour aller plus loin avec ORDA, profitez de la couche d’abstraction.

Dans cette couche, vous implémenterez toute votre logique métier à travers les classes du modèle de données ORDA.

La manipulation des classes va un peu plus loin dans la programmation orientée objet. Chaque classe peut prendre en charge la logique métier dans des fonctions.

Découvrez les avantages des attributs calculés et des alias. Il est facile de mettre en place un attribut calculé définissant sa formule de calcul et toute sa logique métier. Ou de définir un alias comme n’importe quel autre attribut dans votre modèle de données.

Par conséquent, les développeurs utiliseront cette couche d’abstraction au lieu de s’occuper de la couche d’implémentation physique.

  1. Bienvenue dans le monde des classes ORDA
  2. Classes ORDA pour gérer votre modèle de données
  3. Classes de modèle de données ORDA et REST
  4. ASTUCE avec les classes de modèle de données ORDA
  5. Un spectacle magique avec des attributs calculés
  6. Dites bonjour aux alias

 

étape 4 – Travailler à distance

C’est maintenant l’heure de la partie amusante 🙂

client-serveur

Vous pouvez utiliser ORDA en mode client-serveur. Utilisez la commande ds pour obtenir l’objet datastore et commencer à travailler avec vos données.

Voici plus de détails sur les fonctionnalités spécifiques pour travailler en C/S.

  1. Le mot-clé local
  2. Rafraîchir la sélection des entités

le datastore distant

Si vous travaillez en Client Server, vous êtes limité à la base de données actuelle, ce qui nécessite une connexion réseau permanente.

Grâce au remote datastore, une application peut obtenir des données d’une autre base de données 4D exposée sur un serveur 4D !

De nombreux cas d’utilisation sont couverts par cette fonctionnalité :

  • organiser vos applications pour travailler hors ligne et ne synchroniser les données locales que lorsque les données distantes sont accessibles
  • publier vos données sur plusieurs serveurs et passer de l’un à l’autre si nécessaire
  • répartissez votre modèle de données entre différentes bases de données( par exemple, données locales, données internationales). Vous pouvez alors avoir vos données distribuées à différents endroits et toujours accessibles via un seul code client 4D (méthodes de projet et objets de formulaire).

 

Lisez ces articles de blog pour en savoir plus :

  1. Les sources de données 4D multiples, ça vous intéresse ?
  2. Datastores distants, un cas d’utilisation pratique

API REST

Les API de serveur REST reposent sur les concepts ORDA.

Voici quelques articles de blog utiles pour apprendre à utiliser les API REST.

    1. Serveur Rest 4D et Postman
    2. Serveur Rest 4D et ReactJs
    3. Classes de modèles de données ORDA et REST
    4. Le mot-clé exposed

étape 5 – optimisation des requêtes

Lorsque vous travaillez à distance avec ORDA, sachez que les requêtes sont automatiquement optimisées pour demander au serveur uniquement les attributs nécessaires. En plus de cela, vous pouvez également personnaliser vos propres règles d’optimisation pour améliorer les performances.

Pour en savoir plus, étape par étape, voici une liste d’articles de blog.

  1. Utilisez ORDA pour améliorer les performances
  2. Contrôle complet des requêtes REST
  3. Optimisation des requêtes et démo
  4. Journalisation des requêtes

 

Et voici une démonstration vidéo en direct qui a été faite pendant le Sommet 2020

étape 6 – Système de permissions pour filtrer l’accès aux données

Le filtrage de l’accès aux données est une fonctionnalité indispensable pour empêcher tout accès malveillant à votre application.

Depuis la v19R8, vous bénéficiez d’un système puissant et entièrement personnalisable pour protéger vos données des utilisateurs non autorisés. Il s’agit d’un système permettant de protéger vos données en fonction de la personne qui y accède et des données auxquelles elle accède.

Il couvre tous les processus web, comme les requêtes REST, les requêtes reçues sur un datastore distant, et les processus web comme 4DACTION ou 4D tags.

Lisez cet article de blog pour en savoir plus.

Étape 7 – partage des données entre les processus

Vous avez peut-être déjà travaillé avec des objets partagés et des collections partagées. Vous pouvez également partager des sélections d’entités entre plusieurs processus, ce qui augmente les performances.

Lisez ces articles de blog pour en savoir plus :

  1. Partager une sélection d’entités entre des processus
  2. Passer sans heurts aux sélections d’entités partageables

application web

Vous pouvez également utiliser cette méthode lorsque vous travaillez avec des sessions web évolutives. Elles peuvent gérer plusieurs processus en mode préemptif. Cela signifie que les sessions web évolutives peuvent prendre en charge plusieurs requêtes d’agents utilisateurs en même temps.

Ces nouvelles sessions web évolutives peuvent partager des données entre ces processus, même des sélections d’entités.

Ces articles de blog vous seront utiles si vous travaillez avec des sélections d’entités dans des processus web.

    1. Sessions web évolutives pour les applications web avancées
    2. Le partage est source de performances
    3. ORDA easy looping avec 4D tag

Pour conclure

Rappelez-vous, ORDA est un outil puissant qui peut rendre votre processus de développement et l’accès aux données plus rapide et plus efficace.

Nous espérons que cet article de blog vous a aidé. N’hésitez pas à poser vos questions sur le forum.

Nous serons heureux de vous aider avec ORDA !

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.