现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.
Cliquez pour accéder au répertoire des séries d'articles
Compétences avancées en conception d'architecture système · Architecture Web
- 1. Introduction à l'architecture Web
- 2. Équilibrage de charge
-
- 2.1 Présentation de l'équilibrage de charge
- 2.2 Technologie d'équilibrage de charge
- 2.3 Équilibrage de charge de la couche application
- 2.4 Équilibrage de charge de la couche de transport
- 2.5 Algorithmes d'équilibrage de charge statiques et dynamiques
- 2.6 Mécanisme de partage de session
- 2.7 Avec état et apatride
- 3. Technologie de persistance-ORM
- 4. Technologie de base de données
- 5. Technologie de mise en cache
-
- 5.1 Utiliser la mise en cache pour soulager la pression sur la base de données
- 5.2 Comparaison des capacités de Redis et Memcache
- 5.3 Base de données en mémoire - une manière courante de découper les clusters Redis
- 5.4 Base de données en mémoire - Solution de stockage distribué Redis
- 5.5 Solution de partage de données Redis
- 5.6 Types de données Redis
- 5.7 Deux méthodes de persistance Redis
- 5.8 Mécanisme d'élimination de Redis
- 5.9 FAQ Redis
- 5. Déchargement simultané-CDN
- 6. Encodage des données
- 7. Serveur d'applications Web
- 8. REPOS
- 9. Conception Web réactive
- 10. Étape intermédiaire
- 11. Informatique en nuage
- 12. Informatique de pointe
- 13. Superposition du système Web
- 14. Architecture de l'Internet des objets
- 15. Architecture des mégadonnées
- 15. Conception de systèmes de détection d'équipements industriels-cadre SSM
- 16. Conception d'un système de gestion des véhicules logistiques
- 17. Conception du système d'information bancaire
- 18. Conception d'une nouvelle plateforme de trading de matières premières
1. Introduction à l'architecture Web
L'architecture Web offre des performances élevées, une haute disponibilité, une maintenabilité, une adaptabilité et une sécurité .
1.1 L'architecture Web implique la technologie
1.2 Séparer un seul serveur de la base de données et du serveur Web
1.3 Cluster de serveurs d'applications
Le cluster de serveur d'applications entraînera les problèmes suivants :
- Qui transmet la demande de l'utilisateur au serveur d'applications spécifique.
- Si les utilisateurs accèdent à des serveurs différents à chaque fois, comment maintenir la cohérence des sessions (équilibrage de charge et problèmes d'état).
Alors comment le résoudre ? Ce problème peut être résolu en utilisant la technologie d’équilibrage de charge.
2. Équilibrage de charge
2.1 Présentation de l'équilibrage de charge
2.2 Technologie d'équilibrage de charge
2.3 Équilibrage de charge de la couche application
2.3.1 Redirection HTTP
La redirection HTTP est un transfert de requête au niveau de la couche application . La demande de l'utilisateur a effectivement atteint le serveur d'équilibrage de charge de redirection HTTP. Le serveur demande à l'utilisateur de rediriger en fonction de l'algorithme. Une fois que l'utilisateur a reçu la demande de redirection, il demande à nouveau le cluster réel.
Caractéristiques : Simple à mettre en œuvre, mais performances médiocres.
2.3.2 Serveur proxy inverse
Lorsque la demande de l'utilisateur atteint le serveur proxy inverse (a atteint la salle informatique du site Web), le serveur proxy inverse la transmet au serveur spécifique selon l'algorithme. Apache et Nginx, couramment utilisés, peuvent servir de serveurs proxy inverses.
Caractéristiques : Simple à déployer, mais le serveur proxy peut devenir un goulot d'étranglement en termes de performances.
2.4 Équilibrage de charge de la couche de transport
2.4.1 Équilibrage de charge de résolution de nom de domaine DNS
L'équilibrage de charge de résolution de nom de domaine DNS signifie que lorsqu'un utilisateur demande au serveur DNS d'obtenir l'adresse IP correspondant au nom de domaine, le serveur DNS donne directement l'adresse IP du serveur avec équilibrage de charge.
Caractéristiques : Elle est plus efficace que la redirection HTTP et réduit le coût de maintenance des serveurs d’équilibrage de charge. Cependant, si un serveur d'applications tombe en panne, le DNS ne peut pas être averti à temps et le contrôle de l'équilibrage de la charge DNS incombe au fournisseur de services de noms de domaine, de sorte que le site Web ne peut pas apporter davantage d'améliorations ni une gestion plus puissante.
2.4.2 Équilibrage de charge basé sur NAT
L'équilibrage de charge basé sur NAT mappe une adresse IP externe à plusieurs adresses IP et convertit dynamiquement chaque demande de connexion en adresse de nœud interne.
Caractéristiques : La technologie est relativement mature, généralement au niveau de la passerelle, et peut être mise en œuvre via le matériel. Les commutateurs de couche 4 utilisent généralement cette technologie.
2.5 Algorithmes d'équilibrage de charge statiques et dynamiques
-
Algorithme statique (ne prend pas en compte la charge dynamique)
(1) Algorithme round-robin , qui planifie les demandes de service (tâches) vers différents nœuds (c'est-à-dire : serveurs) à tour de rôle.
(2) L'algorithme de rotation pondéré prend en compte les différences de capacités de traitement des différents nœuds.
(3) Algorithme de hachage d'adresse source , basé sur l'adresse IP source demandée, utilisé comme clé de hachage pour trouver le nœud correspondant dans la table de hachage allouée statiquement.
(4) Algorithme de hachage d'adresse cible, hachant l'adresse IP cible demandée pour trouver le nœud correspondant.
(5) Algorithme aléatoire, allocation aléatoire, simple mais incontrôlable. -
Algorithme dynamique (en tenant compte de la charge dynamique)
(1) Algorithme du nombre minimum de connexions , lorsque chaque nœud a la même capacité de traitement, les nouvelles requêtes sont attribuées au nœud avec le plus petit nombre de requêtes actives actuelles.
(2) Algorithme du nombre minimum de connexions pondéré : compte tenu des différentes capacités de traitement des nœuds, l'allocation est basée sur le nombre minimum de connexions.
(3) Algorithme de pourcentage pondéré : en tenant compte de l'utilisation des nœuds, de la vitesse du disque dur, du nombre de processus, etc., l'utilisation est utilisée pour exprimer la capacité de traitement restante. -
Équilibrage de charge matérielle : F5
-
Équilibrage de charge logiciel : LVS, Nginx, HAprox
2.6 Mécanisme de partage de session
2.7 Avec état et apatride
-
Le traitement d'une seule demande par un service apatride ne dépend pas d'autres demandes, c'est-à-dire que toutes les informations nécessaires au traitement d'une demande sont soit incluses dans la demande, soit peuvent être obtenues de l'extérieur (comme une base de données) . ), le serveur lui-même ne stocke aucune information.
-
Le service avec état (stateful service) , au contraire, sauvegardera certaines données en lui-même, et les requêtes successives sont liées.
Déterminez si les composants suivants sont des services avec état ou sans état :
(1) Bean ldentification (composant d'authentification d'identité) avec état
(2) Bean ResPublish (composant de publication de ressources) sans état
(3) Bean ResRetrieval (composant de récupération de ressources) sans état
(4 ) bean onlineEdit ( composant d'édition en ligne) avec état
(5) Statistics Bean (composant d'analyse statistique) sans état
3. Technologie de persistance-ORM
ORM (Object Relational Mapping), le mappage entre objets et données relationnelles.
Tableau de mappage
orienté objet | base de données relationnelle |
---|---|
classe | Table de base de données (tableau) |
objet | enregistrement (enregistrement, données de ligne) |
Attributs d'objet | champ |
Tableau comparatif des technologies de mise en œuvre
DimensionsHibernate | MonBatis |
---|---|
Contraste puissant, complexe, indirect, indépendant de SQL (instructions HQL) | Petit, simple, direct, lié à SQL |
Bonne portabilité (ne se soucie pas de la base de données spécifique) | Médiocre (écrit selon la base de données SQL) |
Association multi-tables complexe | pas de support |
4. Technologie de base de données
- Caractéristiques de la structure de la base de données maître-esclave :
1. Général : un maître et plusieurs esclaves, ou plusieurs maîtres et plusieurs esclaves.
2. La bibliothèque maître effectue des opérations d'écriture et la bibliothèque esclave effectue des opérations de lecture. - Étapes de réplication maître-esclave :
1. Avant que la base de données maître (Maître) termine la mise à jour des données, écrivez l'opération dans le fichier journal binlog.
2. La bibliothèque esclave (Salve) ouvre le thread d'E/S pour se connecter à la bibliothèque principale, effectue le processus de vidage du journal binaire et écrit les événements dans le journal du relais.
3. La bibliothèque esclave exécute les événements du journal de relais et reste cohérente avec la bibliothèque maître.
Pour une explication détaillée de la technologie des bases de données, veuillez consulter →Cliquez sur Conception de base de données
5. Technologie de mise en cache
5.1 Utiliser la mise en cache pour soulager la pression sur la base de données
Technologies de mise en cache courantes :
-
MemCache : Memcache est un système de mise en cache d'objets à mémoire distribuée hautes performances utilisé dans les applications Web dynamiques pour réduire la charge de la base de données. Memcache maintient en mémoire une énorme table de hachage unifiée, qui peut être utilisée pour stocker des données dans divers formats, notamment des images, des vidéos, des fichiers et des résultats de récupération de bases de données.
-
Redis : Redis est une base de données open source de type journal et de valeurs clés écrite en langage ANSIC, prend en charge le réseau, peut être basée sur la mémoire et persistante et fournit des API dans plusieurs langues.
-
Squid : Squid est un serveur de mise en cache proxy hautes performances. Squid prend en charge les protocoles FTP, Gopher, HTTPS et HTTP.
Collaboration entre cache et base de données :
- Lecture des données
1. Lire dans le cache selon la clé
2. Si elle n'est pas dans le cache, rechercher dans la base de données selon la clé
3. Après avoir lu la "valeur", mettre à jour le cache - Écriture des données
1. Écrire dans la base de données en fonction de la valeur de la clé
2. Mettre à jour le cache en fonction de la clé
5.2 Comparaison des capacités de Redis et Memcache
5.3 Base de données en mémoire - une manière courante de découper les clusters Redis
5.4 Base de données en mémoire - Solution de stockage distribué Redis
5.5 Solution de partage de données Redis
5.6 Types de données Redis
5.7 Deux méthodes de persistance Redis
Il existe deux méthodes principales de persistance dans Redis : RDB et AOF.
- RDB : L'idée des instantanés dans les bases de données traditionnelles. Prenez un instantané des données à des intervalles spécifiés.
- AOF : L'idée des journaux dans les bases de données traditionnelles est d'ajouter chaque commande qui modifie l'ensemble de données à la fin du fichier AOF. Si quelque chose ne va pas, vous pouvez réexécuter la commande dans le fichier AOF pour reconstruire l'ensemble de données. .
5.8 Mécanisme d'élimination de Redis
5.9 FAQ Redis
5.9.1 Avalanche de cache
Solution :
1. Utilisez des verrous ou des files d'attente : assurez-vous qu'il n'y aura pas un grand nombre de threads lisant et écrivant la base de données en même temps, évitant ainsi qu'un grand nombre de requêtes simultanées ne tombent
sur le système de stockage sous-jacent en cas de panne.
2. Définissez différents délais d'expiration du cache pour les clés : en fonction d'un temps de cache fixe + un temps aléatoire comme délai d'expiration du cache.
3. Cache de deuxième niveau : configurez un cache à durée limitée + un cache à durée limitée illimitée. Évitez l’accès aux bases de données à grande échelle.
5.9.2 Pénétration du cache
La requête ne renvoie aucune donnée -> interroge directement la base de données
Solution : 1. Si le résultat de la requête est vide, définissez
directementait une valeurla deuxième fois qu'elle sera récupérée du cacheDéfinissez un délai d'expiration ne dépassant pas 5 minutes afin que le cache puisse être mis à jour normalement. 2. Configurez un filtre Bloom pour hacher toutes les données possibles dans un bitmap suffisamment grand.Les données qui n'existent certainement pas seront interceptées par ce bitmap, évitant ainsi la pression des requêtes sur le système de stockage sous-jacent.
5.9.3 Préchauffage du cache
Une fois le système mis en ligne, les données mises en cache pertinentes seront directement ajoutées au système de cache.
Solution :
1. Supposons que vous écriviez directement une page d'actualisation du cache et que vous le fassiez manuellement lorsque vous vous connectez.
2. Lorsque la quantité de données n'est pas importante, elles peuvent être chargées automatiquement au démarrage du projet.
3. Actualisez le cache lors du réglage.
5.9.4 Mises à jour du cache
En plus de la stratégie d'invalidation du cache fournie avec le système Redis, les deux stratégies suivantes sont couramment utilisées :
1. Nettoyer régulièrement les caches expirés.
2. Lorsqu'un utilisateur fait une demande, il sera jugé si le cache utilisé par la demande a expiré. S'il a expiré, accédez au système sous-jacent pour obtenir de nouvelles données et mettre à jour le cache.
5.9.5 Rétrogradation du cache
Le but du déclassement est de garantir que les services de base sont disponibles , même s'ils sont endommagés, et que certains services ne peuvent pas être déclassés (comme les processus d'achat en ligne, etc.);
avant le déclassement, le système doit être trié pour trier ce qui doit être protégé et ce qui peut être déclassé.
5. Déchargement simultané-CDN
Le nom complet de CDN est Content Delivery Network , qui est un réseau de distribution de contenu. L'idée de base est d'éviter autant que possible les goulots d'étranglement et les liens sur Internet qui peuvent affecter la vitesse et la stabilité de la transmission des données, afin que le contenu puisse être transmis de manière plus rapide et plus stable.
Réseau de distribution de contenu CND
6. Encodage des données
6.1 XML
Extensible Markup Language (XML) est un langage de balisage utilisé pour marquer des documents électroniques afin de les rendre structurels. Il peut être utilisé pour marquer des données et définir des types de données. C'est un langage source qui permet aux utilisateurs de définir leur propre langage de balisage.
-
Avantages :
(1) Le format est unifié et conforme aux normes.
(2) Il est facile d’interagir à distance avec d’autres systèmes et le partage de données est plus pratique. -
Inconvénients :
(1) Les fichiers XML sont énormes, le format de fichier est complexe et la transmission consomme de la bande passante.
(2) Le côté serveur et le côté client doivent dépenser beaucoup de code pour analyser XML, ce qui rend le code côté serveur et côté client extrêmement complexe et difficile à maintenir.
(3) Les méthodes d'analyse XML entre les différents navigateurs côté client sont incohérentes et une grande partie du code doit être écrite à plusieurs reprises.
(4) Le serveur et le client consacrent plus de ressources et de temps à analyser XML.
6.2JSON
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire rapidement. L'échange de données entre différentes plateformes est possible.
-
Avantages :
(1) Le format des données est relativement simple, facile à lire et à écrire, les formats sont compressés et consomment peu de bande passante.
(2) Facile à analyser, JavaScript côté client peut simplement lire les données JSON via eval().
(3) Prend en charge plusieurs langages, notamment ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby et d'autres langages côté serveur pour faciliter l'analyse côté serveur.
(4) Étant donné que le format JSON peut être directement utilisé par le code côté serveur, il simplifie grandement le développement de code côté serveur et côté client, et la tâche reste inchangée et est facile à maintenir. -
Inconvénients :
(1) XML est plus polyvalent dans certains domaines.
7. Serveur d'applications Web
Les serveurs d'applications Web peuvent avoir deux significations :
(1) Le serveur WEB a une fonction relativement unique, qui est de renvoyer la requête Request envoyée par le navigateur vers la page Html.
(2) Serveur d'applications, traitement de la logique métier.
-
Apache : serveur Web, avec une part de marché d'environ 60%. Il peut fonctionner sur presque toutes les plates-formes système Unix, Windows et Linux.
-
IIS , un des premiers serveurs Web, est encore utilisé sur des sites à petite échelle.
-
Tomcat est un conteneur d'applications Web open source basé sur Java qui exécute des applications Web Servlet et JSP.
-
JBOSS , JBOSS est un serveur d'applications open source basé sur J2EE. Généralement utilisé en conjonction avec Tomcat ou Jetty.
-
WebSphere , un serveur d'applications Web ouvert et entièrement fonctionnel, est un environnement d'applications basé sur Java permettant de créer, de déployer et de gérer des applications Web Internet et Intranet.
-
WebLogic , BEA WebLogic Server est un serveur d'applications Web multifonctionnel basé sur des normes qui fournit une base solide permettant aux entreprises de créer leurs propres applications.
-
Jetty , Jetty est un conteneur de servlets open source qui fournit un environnement d'exécution pour le contenu Web basé sur Java, tel que JSP et les servlets.
8. REPOS
REST (Representational State Transfer) est une technologie qui utilise généralement HTTP et XML pour la communication Web, ce qui peut réduire la complexité du développement et améliorer l'évolutivité du système.
5 principes du REST :
(1) Tout sur le réseau est résumé en ressources.
(2) Chaque ressource correspond à un identifiant de ressource unique.
(3) Exploiter les ressources via des interfaces de connecteur communes.
(4) Diverses opérations sur les ressources ne modifieront pas l'identification de la ressource.
(5) Toutes les opérations sont apatrides.
9. Conception Web réactive
La conception Web réactive est une sorte de mise en page de conception de page Web . Son concept est de créer de manière centralisée la taille de la mise en page de l'image de la page et peut effectuer intelligemment la mise en page correspondante en fonction du comportement de l'utilisateur et de l'environnement de l'appareil utilisé. Par exemple, il peut répondre à toutes les exigences des téléphones mobiles, tablettes, PC et autres appareils.
Méthodes et stratégies :
(1) Adoptez une mise en page fluide et une conception flexible : utilisez des unités relatives et définissez la taille des éléments de la page en définissant des pourcentages au lieu de valeurs spécifiques.
(2) Images réactives : non seulement l'image doit être mise à l'échelle d'une année sur l'autre, mais la résolution de l'image elle-même doit également être réduite sur les petits appareils.
10. Étape intermédiaire
Le middle office est un ensemble de structures d'entreprise qui combinent la technologie Internet et les caractéristiques de l'industrie pour précipiter les capacités de base des entreprises sous forme de services partagés afin de former un mécanisme organisationnel et commercial de « grand middle office et petit front office » que les entreprises peuvent réaliser. mettre en œuvre des innovations commerciales rapidement et à faible coût. La plate-forme intermédiaire peut être subdivisée en une plate-forme intermédiaire commerciale, une plate-forme intermédiaire de données et une plate-forme intermédiaire XX. Il s’agit essentiellement d’une accumulation de capacités générales d’entreprise à différents niveaux et ouvertes aux capacités externes.
Supercell, un praticien de la plateforme intermédiaire
, est un géant finlandais du jeu mobile. En 2015, il occupait 5 des 10 meilleurs jeux au monde et ne comptait que plus de 200 employés. Parce qu'il utilisait une plateforme intermédiaire et avait la capacité de se développer rapidement avec une petite équipe, elle a ensuite été acquise par Tencent pour 8,6 milliards de dollars américains.
Alibaba a visité Supercell en 2015 et a ensuite promu Zhongtai.
-
Centre d'affaires : fournit des services réutilisables, tels que des fonctionnalités réutilisables prêtes à l'emploi, telles qu'un centre étudiant et un centre de cours.
-
Plateforme intermédiaire de données : fournit des capacités d'intégration et d'analyse de données pour aider les entreprises à apprendre et à s'améliorer à partir des données et à ajuster leur direction.
-
Plateforme intermédiaire technologique : fournit des capacités de composants de réutilisation technologique pour aider à résoudre la réutilisation des plates-formes technologiques de base. Par exemple, middleware, stockage distribué, IA, équilibrage de charge et autres infrastructures.
Plateforme intermédiaire d'entreprise vs plate-forme intermédiaire de données
(1) Plusieurs canaux de commerce électronique utilisent un seul service de commande et une interface de commande fournit des services pour plusieurs systèmes frontaux en même temps.
(2) Plusieurs systèmes frontaux obtiennent le portrait et les balises utilisateur correspondantes en fonction du numéro de téléphone mobile d'un utilisateur.
(3) Résumez plusieurs canaux de paiement dans une API de paiement et exposez-la au système commercial frontal.
(4) Obtenez une liste de recommandations de produits possibles via un numéro de commande pour réaliser des ventes croisées.
Quatre compétences clés nécessaires pour un data center :
(1) Capacités d'agrégation et d'intégration de données
(2) Capacités de purification et de traitement des données
(3) Visualisation des services de données
(4) Réalisation de la valeur
11. Informatique en nuage
Le cloud computing est une architecture de traitement distribué qui intègre un grand nombre d'appareils et de ressources informatiques et protège les utilisateurs des différences sous-jacentes. Ses utilisateurs sont séparés des ressources informatiques qui fournissent des services réels.
Avantages : ultra-grande échelle, virtualisation, haute fiabilité, haute évolutivité, services à la demande, faible coût [faible investissement initial, faible coût d'utilisation globale].
-
Classification selon le type de service :
(1) Saas (Software as a Service) , basé sur une technologie multi-tenant, fournit directement des applications.
(2) Paas (Platform as a Service) , serveur middleware virtuel, environnement d'exploitation et système d'exploitation.
(3) laas (infrastructure en tant que service) , y compris les serveurs, le stockage et les services réseau. -
Classé selon les modalités de déploiement :
(1) Le cloud public , orienté vers les besoins des internautes, fournit des services de cloud computing via des réseaux ouverts.
(2) Cloud privé , qui fournit des services de cloud computing au sein des entreprises.
(3) Cloud hybride , un service de cloud computing qui prend en compte les deux situations ci-dessus. Le cloud public et le cloud privé interagissent avec les données et les applications via le réseau.
Le schéma d'architecture est le suivant :
(1) Couche de gestion , qui fournit des fonctions de gestion pour tous les niveaux de services de cloud computing.
(2) Couche d'accès utilisateur , qui permet aux utilisateurs d'utiliser divers services de support requis par les services de cloud computing. Des interfaces d'accès correspondantes doivent être fournies pour chaque niveau de services de cloud computing.
(3) La couche application fournit des services logiciels, tels que la gestion financière, la gestion de la relation client et la business intelligence.
(3) La couche plate-forme fournit aux utilisateurs l'encapsulation des services de la couche ressources afin que les utilisateurs puissent créer leurs propres applications.
(4) La couche de ressources fournit des ressources virtualisées pour masquer la complexité des ressources physiques. Tels que : serveur, stockage.
12. Informatique de pointe
L'Edge Computing fait référence à une plate-forme ouverte qui intègre les capacités de base du réseau, du calcul, du stockage et des applications du côté proche de la source des objets ou des données pour fournir les services finaux les plus proches. Son essence est la localisation des fonctions de traitement informatique.
13. Superposition du système Web
14. Architecture de l'Internet des objets
(1) Couche d'application , terminal intelligent de service d'application.
(2) Couche plate-forme , la plate-forme de gestion des équipements de développement de logiciels du système d'exploitation est connectée à la plate-forme de gestion.
(3) Couche réseau , réseau d'accès au réseau central, réseau d'entreprise, normes/protocoles de communication réseau propriétaires.
(3) Couche de perception , module de communication à puce de capteur, équipement/dispositif intelligent de perception.
15. Architecture des mégadonnées
15. Conception de systèmes de détection d'équipements industriels-cadre SSM
Spring est un framework léger de développement d'applications au niveau de l'entreprise. La version 1.0 a été publiée par Rod Johnson en 2004. Après des années de mise à jour et d'itérations, il est progressivement devenu le premier framework du monde open source Java. Le framework Spring est connu comme celui -stop pour les applications Java EE. C'est une solution qui peut être intégrée de manière transparente à divers excellents frameworks MVC tels que Spring MVC, Struts 2, JSF, etc., et peut également être connectée de manière transparente à divers frameworks ORM tels que Hibernate, My Batis , JPA, etc. Diverses autres technologies peuvent également être L'existence de Spring facilite l'intégration dans le développement de projets, comme l'intégration Redis, l'intégration Log4J, etc. Spring MVC est un module MVC complet du système-cadre Spring. Spring MVC est un framework Web léger basé sur le langage Java qui implémente le modèle de conception MVC. L'objectif est de modulariser le développement Web et de simplifier le code. Il fournit le contrôleur frontal Dispatcher Servlet pour distribuer les demandes, et fournit également un mappage flexible du gestionnaire de configuration, une analyse des vues et prend en charge le téléchargement de fichiers. Il est actuellement le leader parmi de nombreux frameworks MVC. Le prédécesseur de MyBatis est iBatis, un projet open source de la communauté Apache, rebaptisé MyBatis en 2010. My Bat est un excellent framework de couche de persistance qui prend en charge le SQL personnalisé, les procédures stockées et le mappage avancé. Il évite presque tout le code JDBC et la configuration manuelle des paramètres et l'obtention d'ensembles de résultats, permettant aux développeurs de prêter plus d'attention au SQL lui-même et à la logique métier. Non besoin de passer du temps à se concentrer sur l'ensemble du processus d'exploitation complexe de JDBC.
Attributs de qualité pris en compte dans l'architecture de conception :
1. Performances La
performance fait référence à la réactivité du système, c'est-à-dire au temps qu'il faut pour répondre à un événement ou au nombre d'événements que le système peut gérer dans une certaine période de temps. nombre.
2. Fiabilité La
fiabilité est la capacité fondamentale d'un système logiciel à maintenir ses caractéristiques fonctionnelles face à des erreurs d'application ou de système et à une utilisation accidentelle ou incorrecte.
3. Disponibilité
La disponibilité est la proportion de temps pendant laquelle le système peut fonctionner normalement. Souvent exprimé en termes de temps entre les pannes ou de rapidité avec laquelle un système peut revenir à la normale en cas de panne.
4. Sécurité La
sécurité (sécurité) fait référence à la capacité du système à empêcher les tentatives d'utilisateurs non autorisés d'utiliser ou de refuser un service tout en fournissant des services à des utilisateurs légitimes. La sécurité peut être divisée en caractéristiques telles que la confidentialité, l'intégrité, la non-répudiation et la contrôlabilité.
5. Modifiabilité La modifiabilité
(modifiabilité) fait référence à la capacité d'apporter rapidement des modifications au système avec un rapport performance-prix élevé. La modifiabilité est généralement mesurée sur la base de certains changements spécifiques et en examinant les coûts de ces changements.
6. Facilité d'utilisation
Les outils de développement de logiciels doivent avoir une interface utilisateur très conviviale que les utilisateurs sont heureux d'utiliser ; les outils doivent pouvoir être adaptés et personnalisés pour répondre aux besoins d'utilisateurs spécifiques ; les outils doivent être capables d'inviter les utilisateurs à effectuer des opérations interactives et fournir des méthodes d'exécution simples et efficaces ; les outils doivent également être capables de vérifier les erreurs opérationnelles des utilisateurs et de les corriger automatiquement dans la mesure du possible.
Ce système de détection d'équipements industriels prévoit d'utiliser un mécanisme d'accès aux données unifié dans le domaine du contrôle industriel pour réaliser une interaction des données avec divers appareils différents. Expliquez les raisons de l'utilisation d'un mécanisme d'accès aux données standard ?
Le système de détection des équipements industriels doit interagir avec différents appareils pour les données et utilise un mécanisme d'accès aux données standard pour établir un ensemble complet de règles entre les fournisseurs de matériel et les développeurs de logiciels. Tant que cet ensemble de règles est suivi, l'interaction des données est transparente pour les deux parties. Le fournisseur de matériel n'a qu'à prendre en compte les multiples exigences et protocoles de transmission de l'application, et le développeur de logiciels n'a pas besoin de comprendre l'essence et le processus de fonctionnement de Le matériel pour réaliser le contrôle de l'appareil.Gestion unifiée de la collecte de données.
16. Conception d'un système de gestion des véhicules logistiques
Une entreprise envisage de développer un système de gestion de véhicules logistiques capable de prendre en charge la surveillance de l'emplacement en temps réel de chaque véhicule, la gestion de la trajectoire historique des véhicules, la gestion des enregistrements d'infractions, la gestion
des immobilisations dont vous avez besoin. Ses exigences non fonctionnelles sont les suivantes :
(1) Le système doit prendre en charge les demandes simultanées de plus de 50 terminaux ;
(2) Le système doit être capable de reconnaître les plaques d'immatriculation en temps réel et le temps de reconnaissance doit être inférieur à 1. deuxième ;
(3) Le système doit fonctionner 24 heures sur 24, 7 jours sur 7 ;
(4) Possède une interface utilisateur conviviale ;
(5) Peut résister aux attaques par injection SQL courantes ;
(6) Le temps de réponse des opérations de transaction indépendantes doit être inférieur à 3 secondes ;
(7) Le système doit récupérer dans un délai d'une heure en cas de panne ;
(8) Apprentissage des nouveaux utilisateurs Utilisez le système pendant moins d'une heure.
Face aux exigences du système, l'entreprise a organisé une réunion de discussion de l'équipe de projet pour formuler un plan de conception du système, et a finalement décidé de mettre en œuvre le système de gestion des véhicules logistiques basé sur une conception d'architecture distribuée, et a appliqué Kafka, la mise en cache des données Redis et d'autres technologies pour mettre en œuvre la logistique. données propres au véhicule et données commerciales. Traitement rapide et efficace.
Une analyse du plan de conception architecturale du système montre que le système de gestion des véhicules logistiques doit être conçu sur la base d'un style architectural hiérarchique. La figure de bas en haut représente la couche de stockage de données, la couche de traitement des communications distribuées, la couche de traitement logique et la couche de présentation. Ensuite, les technologies pertinentes sont sélectionnées pour prendre en charge les tâches requises par chaque couche.
Schéma d'architecture de conception du système de gestion des véhicules logistiques, comme le montre la figure :
Il existe six attributs de qualité logicielle : la convivialité, la modifiabilité, les performances, la sécurité, la testabilité et la facilité d'utilisation.
La disponibilité se concentre sur la possibilité d'une panne du système et sa capacité à se remettre d'une panne ;
les performances se concentrent sur le temps de réponse du système aux événements ;
la sécurité se concentre sur la capacité du système à empêcher les utilisateurs légitimes d'utiliser le système normalement et à empêcher les utilisateurs illégaux d'attaquer le système. ;
La testabilité se concentre sur la capacité du système à détecter les erreurs ;
la convivialité se concentre sur la facilité avec laquelle les utilisateurs peuvent effectuer une tâche souhaitée et le type d'assistance utilisateur fournie par le système.
Le système de gestion des véhicules logistiques doit résister aux attaques par injection SQL courantes. Que sont les attaques par injection SQL ? Et énumérez les moyens de résister aux attaques par injection SQL.
Les attaques par injection SQL sont l'un des moyens couramment utilisés par les pirates pour attaquer les bases de données. Avec le développement du développement d'applications en mode B/S, de plus en plus de programmeurs utilisent ce mode pour écrire des programmes d'application. Cependant, en raison du niveau et de l'expérience inégaux des programmeurs, un nombre considérable de programmeurs ne jugent pas la légalité des données saisies par l'utilisateur lors de l'écriture du code, ce qui entraîne des risques de sécurité dans les applications. L'utilisateur peut soumettre un code de requête de base de données et obtenir certaines données qu'il souhaite connaître en fonction des résultats renvoyés par le programme. C'est ce qu'on appelle l'injection SQL, c'est-à-dire l'injection SQL. Les attaques par injection SQL sont l'un des moyens d'attaques contre la sécurité des bases de données. Une protection efficace peut être obtenue grâce aux technologies de protection de la sécurité des bases de données. Les technologies de protection de la sécurité des bases de données comprennent : l'analyse des fuites de base de données, le cryptage de la base de données, le pare-feu de la base de données, la désensibilisation des données et le système d'audit de sécurité de la base de données. Afin de résister aux attaques par injection SQL, vous pouvez utiliser les méthodes suivantes : utiliser des expressions régulières, utiliser des instructions de filtrage paramétrées, vérifier la légalité des entrées de l'utilisateur, chiffrer les données relatives à l'utilisateur, stocker les procédures pour exécuter toutes les requêtes et utiliser des outils professionnels d'analyse des vulnérabilités. etc.
Les attaques par injection SQL sont effectuées en insérant des commandes SQL dans des soumissions de formulaires Web ou en saisissant des chaînes de requête pour des noms de domaine ou des demandes de pages, incitant finalement le serveur à exécuter des commandes SQL malveillantes.
Les attaques par injection SQL peuvent être défendues des manières suivantes :
· Utiliser des expressions régulières ;
· Utiliser des instructions de filtrage paramétrées ;
· Vérifier la validité des entrées de l'utilisateur ;
· Chiffrer les données relatives à l'utilisateur ;
· Procédures stockées pour exécuter toutes les requêtes ;
· Utiliser la vulnérabilité Professional outil de numérisation.
17. Conception du système d'information bancaire
Une banque envisage d'intégrer pleinement le système d'information bancaire avec les succursales comme organe principal dans un système d'information bancaire géré et maintenu par le siège social pour parvenir à une gestion unifiée des comptes d'utilisateurs, des transferts et des envois de fonds, des paiements en libre-service, des investissements financiers, de la gestion des prêts, paiement en ligne et états financiers.Analyse et autres fonctions commerciales. Cependant, étant donné que dans le système d'information bancaire d'origine, dont les succursales constituent le corps principal, plusieurs systèmes commerciaux utilisent des plates-formes, des bases de données et des middlewares hétérogènes, et que les normes d'échange de messages et les protocoles de communication utilisés sont également différents, il est impossible d'utiliser les solutions EAI traditionnelles. l’interaction et l’intégration entre des systèmes hétérogènes dans le cadre de nouveaux modèles commerciaux ne peuvent pas être réalisées. Par conséquent, afin d'intégrer les systèmes commerciaux bancaires existants basés sur différentes technologies avec des améliorations système minimales, la banque prévoit d'adopter une solution d'intégration d'architecture orientée services (SO A) basée sur ESB pour réaliser l'intégration commerciale.
Qu'est-ce que l'architecture orientée services (SOA) et le rôle et les caractéristiques de l'ESB dans SOA ?
Définie du point de vue des applications, la SOA peut être considérée comme un cadre d'application qui se concentre sur les applications métier quotidiennes et les divise en fonctions et processus métier distincts, appelés services. SOA permet aux utilisateurs de créer, déployer et intégrer ces services sans dépendre des applications et de leurs plates-formes d'exécution, améliorant ainsi la flexibilité des processus métier. Cette agilité commerciale permet aux entreprises de se développer plus rapidement, de réduire le coût total de possession et d'améliorer l'accès à des informations précises et opportunes. La SOA permet de réutiliser davantage les actifs, de faciliter la gestion et d'accélérer le développement et le déploiement.
A partir de la définition des principes de base du logiciel, on peut considérer que SOA est un modèle de composants qui relie différentes unités fonctionnelles d'une application (appelées services) via des interfaces et des contrats bien définis entre ces services. L'interface est définie de manière neutre et doit être indépendante de la plateforme matérielle, du système d'exploitation et du langage de programmation sur lesquels le service est implémenté. Cela permet aux services intégrés dans une variété de systèmes de ce type d'interagir de manière unifiée et commune.
SOA est un modèle de composants qui connecte différentes unités fonctionnelles d'une application (appelées services) via des interfaces et des contrats bien définis entre ces services. L'interface est neutre en gaz et en langages de programmation. Cela permet aux services intégrés dans divers systèmes de ce type d'avoir un rôle unifié et fonctionnel, de connecter et d'intégrer divers services ; d'avoir la capacité de changer et de prendre en charge certains modes résumés dans la pratique, tels que le mode synchrone, le découplage du mode asynchrone. Demandeurs de services et fournisseurs de services. . Des fonctionnalités plus avancées incluent la définition de méthodes de support sécurisées, qui doivent interagir de manière commune indépendamment de la plate-forme matérielle et du système d'exploitation qui implémente le service.
Fonctions et caractéristiques de l'ESB :
1. Une méthode d'implémentation de SOA. L'ESB fonctionne comme un bus dans une architecture orientée services.
2. Métadonnées décrivant les services et la gestion de l'enregistrement des services ;
3. Transfert entre les demandeurs de services et les fournisseurs. Données et transformation de ces données. 4.
La capacité de découvrir, d'acheminer, de faire correspondre et de sélectionner pour prendre en charge l'interaction dynamique entre les services, l'assurance qualité du service, la gérabilité et l'équilibrage de charge, etc.
Les besoins réels des systèmes d'information bancaires sont visibles : dans le processus d'intégration de l'information, les banques utilisent des plates-formes de services d'entreprise pour créer une plate-forme d'intégration pour l'ensemble des systèmes d'application de la banque. Verticalement, il connecte différents systèmes du siège social et des succursales ; horizontalement, il connecte divers systèmes d'applications métier et systèmes d'entreprise. La plateforme de services d'entreprise adopte une méthode de déploiement hiérarchique et se compose de deux parties : l'une est la plateforme de services d'entreprise déployée parmi les systèmes du siège social ; l'autre est la plateforme de services d'entreprise déployée parmi les systèmes des succursales. Les deux plates-formes de services d'entreprise sont interconnectées et forment un cadre global pour l'intégration des applications d'entreprise. Dans le modèle d'architecture SO A du système d'information bancaire, la connexion et l'intégration via ESB peuvent bien prendre en charge divers processus métier. Dans la gestion opérationnelle de la relation client, les informations client sont dispersées dans divers sous-systèmes commerciaux et ne peuvent pas être partagées. Après intégration via une architecture basée sur ESB, une gestion client complète peut être réalisée. Le gestionnaire de compte peut vérifier les informations de base du client cible, les informations du compte produit, les informations de contact, les informations sur les événements, les informations sur les ressources, les informations sur les relations, les informations sur les risques, les informations d'analyse statistique, etc. en une seule fois via le système intégré de gestion de la relation client. Il s'agit véritablement d'un processus de transformation centré sur le client et de l'élimination du précédent modèle partiel centré sur le compte.
Sur la base des besoins réels d'intégration du système d'information, l'équipe du projet a réalisé le plan de conception de l'architecture du système d'information bancaire basé sur SOA. Le schéma d'architecture du système est le suivant :
Compte tenu des exigences de sécurité des interactions avec les données des systèmes d'information bancaires, énumérer les mesures permettant d'assurer la sécurité des systèmes d'information ?
Dans l'environnement SOA, les problèmes de sécurité qui doivent être résolus comprennent :
(1) Confidentialité : la confidentialité, également connue sous le nom de confidentialité, fait référence aux utilisateurs illégaux et non autorisés qui accèdent aux données, entraînant une fuite de la confidentialité des données.
La confidentialitéLes exigences sont différentes et le cryptage des données peut être utilisé pour garantir la confidentialité des données.
(2) Intégrité : fait référence à l'exactitude, à la cohérence et à la compatibilité des données. Garantir l’intégrité des données peut être obtenu grâce aux signatures numériques.
(3) Auditabilité : l'audit est une mesure de post-surveillance qui suit les activités d'accès au système, découvre les accès illégaux et atteint l'objectif de prévention de la sécurité. Différents
systèmes peuvent nécessiter différents niveaux d'audit.
(4) Gestion de l'authentification : il s'agit en fait du fait que le demandeur de service et le fournisseur de services s'authentifient mutuellement lorsqu'ils appellent des services, empêchant ainsi les
entités non autorisées et illégales d'obtenir des services, ce qui constitue la première barrière de sécurité pour la sécurité du système.
(5) Gestion des autorisations : le but de la gestion des autorisations est d'empêcher toute utilisation non autorisée des services Web.
(6) Gestion des identités : dans l'architecture SO A, la gestion des identités est similaire à celle des systèmes traditionnels. L'identité du demandeur de service et du fournisseur de services est cruciale pour les deux, sinon des utilisateurs illégaux transmettront des messages entre le demandeur de service et le fournisseur de services, ce qui entraînera facilement des fuites et des falsifications de données.
Énumérez les mesures qui peuvent assurer la sécurité des systèmes d'information :
1. Introduire le protocole https ou utiliser la technologie de cryptage pour crypter les données avant de les transmettre
2. Utiliser la technologie de synthèse des informations pour vérifier l'intégrité des informations importantes
3. Système de pare-feu
4. Détection de sécurité
5. Numérisation réseau
18. Conception d'une nouvelle plateforme de trading de matières premières
En raison du bon développement d'une entreprise de commerce électronique, le nombre de clients a progressivement augmenté et les activités de l'entreprise ont continué de se développer, de sorte que sa plateforme initiale de commerce de matières premières B2C ne peut plus répondre aux besoins commerciaux existants. Par conséquent, l’entreprise a chargé un éditeur de logiciels de redévelopper une plateforme de trading de matières premières. L'entreprise exige que la nouvelle plate-forme soit capable de s'adapter à l'accès des clients au système à partir de différents terminaux tels que les téléphones mobiles, les tablettes, les ordinateurs, etc., et en même temps de répondre aux besoins d'un accès simultané élevé au système. où les sociétés de commerce électronique réalisent régulièrement des « ventes flash », des « promotions à durée limitée » et d'autres activités. Face aux exigences du système, l'éditeur de logiciels a organisé une réunion de discussion de l'équipe de projet pour formuler un plan de conception du système. Lors de la réunion de discussion, Wang Gong a proposé que la conception Web réactive puisse être appliquée pour répondre aux besoins des clients en matière d'accès correct au système à partir de différents appareils. Dans le même temps, des méthodes telles que l'ajout de sites miroirs et la distribution de contenu CDN sont utilisées pour résoudre les problèmes causés par un nombre élevé de visites simultanées. Li Gong a ajouté à la proposition de Wang Gong que s'appuyer uniquement sur la technologie d'accélération de réseau externe mentionnée ci-dessus ne peut pas résoudre complètement le problème de l'accès simultané d'utilisateurs élevés. Si le nombre de visites continue d'augmenter, le système peut encore planter. Li Gong a proposé que l'architecture du système soit conçue simultanément avec des méthodes telles que l'équilibrage de charge, les serveurs de cache, les serveurs d'applications Web, les systèmes de fichiers distribués et les bases de données distribuées. Après discussion au sein de l'équipe du projet, il a finalement été décidé d'intégrer les idées de Gong Wang et Gong Li pour compléter la conception architecturale du nouveau système.
Qu’est-ce que le « responsive web design » et quelles sont les méthodes de mise en œuvre du responsive web design ?
Une conception Web réactive signifie que les pages que nous concevons et développons peuvent répondre en conséquence en fonction du comportement de l'utilisateur (comme la modification de la taille de la fenêtre du navigateur) et des différents environnements de l'appareil (tels que la plate-forme système, la résolution de l'écran, les écrans horizontaux et verticaux, etc.). disposition de la page pour offrir aux utilisateurs une expérience de lecture et de fonctionnement perceptible et fluide. Le responsive design suit généralement le principe « le design d’abord, le contenu d’abord, le mobile d’abord ». Autrement dit, si une page veut répondre aux PC et aux terminaux mobiles, y compris certains comportements des utilisateurs, etc., alors le concepteur doit concevoir au moins deux ensembles de dessins de conception pour la page (un pour le PC et un pour le PC). terminal mobile), et le concepteur d'interaction doit également concevoir. Il est nécessaire d'abord de réaliser une conception d'interaction basée sur le terminal et d'afficher le contenu le plus important dans les exigences sur le petit écran mobile, puis l'ingénieur front-end concevra et développer un cadre réactif en conséquence.
La conception Web réactive signifie que les pages que nous concevons et développons peuvent ajuster la mise en page en réponse au comportement de l'utilisateur et aux différents environnements d'appareil pour offrir aux utilisateurs une expérience de lecture et d'exploitation perceptible et fluide.
Méthode de mise en œuvre :
(1) Disposition en streaming
(2) Disposition flexible (telle que des images flexibles)
(3) Requête multimédia
Sur la base des suggestions de Wang Gong et Li Gong, l'équipe du projet a achevé la conception de l'architecture système de la nouvelle plateforme de trading de matières premières. Le nouveau schéma d'architecture du système est le suivant :
Selon la proposition de Li Gong, la nouvelle plateforme de commerce de matières premières B2C a introduit un mécanisme de réplication maître-esclave. Sur la base des caractéristiques de la plateforme de trading de matières premières B2C, veuillez décrire brièvement les avantages de l'introduction de ce mécanisme ?
1. Améliorer les performances.
La plateforme de trading nécessite une concurrence élevée. La méthode de réplication maître-esclave est un maître et plusieurs esclaves. Différentes demandes d'utilisateurs peuvent lire les données de différentes bases de données esclaves pour améliorer la concurrence.
2. Meilleure évolutivité
Si un seul serveur de base de données est utilisé, lorsque le nombre de visites continue d'augmenter, le goulot d'étranglement de la base de données sera exposé et le problème ne pourra pas être résolu rapidement. La structure maître-esclave permet d'augmenter rapidement le nombre de serveurs esclaves pour répondre à la demande.
3. Améliorer la disponibilité.Avec
un maître et plusieurs esclaves, la panne d'un serveur esclave n'affectera pas le fonctionnement normal de l'ensemble du système.
4. Équivalent à l'équilibrage de charge :
un maître et plusieurs esclaves partagent des tâches, ce qui équivaut à l'équilibrage de charge.
5. Améliorer la sécurité des données.Les
données du système sont stockées en plusieurs copies de manière redondante et les données ne seront pas perdues en raison d'une panne matérielle d'une certaine machine.