COURS 1 - INTRODUCTION
Vous allez maintenant continuer à appliquer les notions de développement de systèmes de bases de données mais vous utiliserez des outils plus puissants et vous apprendrez à penser en termes de déploiement à grande envergure des systèmes créés.
Avec
MS ACCESS lors du dernier cours, nous avons étudié les techniques de modélisation et de création d'une base de données relationnelle en mode autonome (utilisée par une personne à la fois sur un PC). Cependant, dans la vraie vie les besoins sont beaucoup plus complexes que ça. Dans ce cours nous allons commencer à explorer (notez le mot
commencer) les applications complexes. Nous allons étudier et appliquer les concepts tels que:
l'architecture client-serveur, le développement
"object-oriented", le développement
multi-platformes et
l'interopérabilité. Et nous allons apprendre le
langage SQL, le langage commun à toutes les bases de données relationnelles.
CONCEPTS FONDAMENTAUX
-
CLIENT/SERVEUR
Vous trouverez une excellente description de Client/server architecture dans le FAQ au site C/S FAQ. Cependant, je résume les points principaux au cas ou il y aurait des problèmes de traduction.
L'architecture client/serveur:
L'architecture client/serveur est la suite logique de la programmation modulaire. La programmation modulaire suppose qu'un gros programme est plus efficace s'il est décomposé en modules; il est plus facile à développer et à maintenir. Donc, si on décompose un logiciel en modules, on réalise qu'il n'est pas nécessaire d'exécuter tous les modules dans le même espace-mémoire. On peut créer un module client qui demande un service et un autre module serveur qui fournit le service. En plus, les modules n'ont pas à être sur la même machine ni même sur la même platforme. On peut utiliser la platforme appropriée pour chaque tâche.

Fig. 1 DIFFÉRENTES SAVEUR DE C/S
Le client
Le client est un programme qui envoie un message à un autre programme, le serveur, lui demandant d'exécuter une tâche quelconque, le service. C'est le client qui gère l'interface avec l'utilisateur, valide les données, gère la communication avec le serveur et exécute certaines opérations logiques. Le client est aussi responsable de la gestion des ressources locales: moniteur, clavier et périphériques. Lorsqu'on parle du client on utilise aussi le terme front-end car c'est la partie du système qui est à l'avant, c'est à dire la plus visible à l'utilisateur. Le client fonctionne toujours en mode graphique, GUI, et communique avec l'utilisateur au moyen de fenêtres.
Le serveur
Le serveur reçoit les demandes des clients, exécute les opérations d'extraction et de mise à jour de la base de données, assure l'intégrité des données et retourne les réponses aux clients. Le serveur peut aussi être appellé à exécuter des opérations logique qui peuvent aller du simple au complexe, basées sur les règles d'affaires de l'entreprise. Le serveur pourrait être une autre machine sur le réseau, il pourrait servir aussi de serveur de fichiers sur le réseau. Le serveur est le back-end qui gère les ressources partagées et les tâches communes à différentes applications.
Vous pouvez consulter une autre description de l'architecture client/serveur au site suivant: Client/Server Architecture. Même si le matériel semble un peu complexe pour l'instant, ça vous donne une idée des composantes qu'on doit maîtriser: le client, le serveur et le réseau.
- PROGRAMMATION ORIENTÉE OBJET (OBJECT-ORIENTED PROGRAMMING)
En programmation on a toujours séparé les programmes et les données. La POO regroupe les deux dans des unités réutilisables qu'on appele classes. Une classe contient des procédures (methods) et des données (attributes ou properties). On crée une instance d'une classe comme on déclarerait une variable. L'instance d'une classe est un objet. Puisqu'un objet est facile à dupliquer, il est toujours réutilisable. Aussi, il est facile, à partir d'une classe, de créer des classes similaires qui vont hériter des caractéristiques de la première mais leur ajouter des fonctions ou des données (inheritance).
Vous trouverez une très bonne introduction au sujet dans Object-oriented Software.
- GUI
De nos jours, presque toutes les applications PC sont à base de GUI (Graphical User Interface)). Le GUI permet à l'utilisateur de manipuler des icônes dans un environnement graphique à base de fenêtres (Windows) et offre ne productivité beaucoup plus grande que ce qu'on peut obtenir dans un environnement à base de caractères, ie DOS.
- "EVENT-DRIVEN"
Dans l'environnement traditionnel, le programme est lancé et les instructions s'exécutent en ordre jusqu'à ce qu'il n'y aie plus de données. Mais, dans l'environnement Windows, l'utilisateur contrôle l'exécution. Il doit faire un clic sur un bouton ou choisir une option dans un menu, etc. Le programmeur doit écrire le code en fonction de ces actions (events). Par exemple, "Si l'utilisateur clic sur le bouton, ouvrir formulaire X ......". C'est la responsabilité du programmeur de voir à ce les options soient activées ou désactivées au bon moment afin que les traitements s'exécutent dans l'ordre approprié. En PowerBuilder, tout le codage est fait dans un environnement event-driven.
- SYSTÈMES OUVERTS
Le terme réfère à des systèmes qui ont la capacité de grandir et aussi de se rattacher à des systèmes d'autres fournisseurs. Autrefois, chaque programme était écrit spécifiquement pour une marque d'ordinateur et un logiciel et le partage des données entre applications était totalement impossible. Aujourd'hui, la plupart des logiciels peuvent partager des données et même s'intégrer complètement avec des logiciels de plusieurs fournisseurs indépendents. VB, par exemple, peut intégrer facilement une application client en VB avec la plupart des "back-end" populaires de bases de données.
[ ACCUEIL ]
[ PRÉCÉDENTE ]
[ SUIVANTE ]