Mettre en œuvre une architecture SOA

J'ai abordé le sujet de l'aide d'une architecture orientée services (SOA), les services Web et Ajax pour bâtir un client à partir d'un point de vue théorique, mais je n'ai pas aborder les détails pratiques de la manière de mettre en œuvre l'architecture SOA. En cette fête d'un article, je couvre la façon de mettre en œuvre une architecture SOA en utilisant les services Web et Ajax. La solution traite également de la question de savoir comment mettre à niveau une architecture déjà existante vers une architecture SOA. Cet article porte sur les sujets suivants:

  

• Concevoir Representational State Transfer (REST) basé sur des URL pour le contenu qui est décrit comme un ensemble

• Création d'une nouvelle architecture SOA sans jeter l'ensemble de l'architecture d'origine

• La validation et le service AWeb essais

• La cueillette des données en dehors

• Mettre en œuvre une REST-service Web basé sur

• HTML

• Really Simple Syndication (RSS)

• atome de chacun des formats est unique, mais la structure du contenu dans des formats est le même. Du point de vue de la programmation, la solution impliquerait un Modèle-Vue-Contrôleur La demande de ré-architecturé ne dispose que d'une URL et un format de données, Atom , de sorte que le code derrière le Web a besoin de générer un contenu juste pour ce format. Dans le cas de la demande de ré-architecturé, le format Atom est considéré comme service AWeb, l'idée derrière ce qui est de présenter un format universel compris par un large public. Et si le dispositif final ne comprend pas le format, il appartient alors à l'appareil de navigation pour s'y repérer. Bien sûr, en demandant le périphérique fin à déterminer le format peut sembler dur, mais il n'est pas vraiment chaque fois que vous générer une page HTML en utilisant le protocole HTTP, vous demandez au périphérique final pour savoir comment afficher les données.

Si le HTML et HTTP sont quasiment universelles, Pourquoi ne pas produire bien structuré HTML et laissez la fin Atom le découvrir? La réponse est que cela ne fonctionne pas aussi facilement que cela. HTML est une technologie d'interface utilisateur qui n'est pas universellement compris l'ensemble des appareils. Un dispositif de fin Atom pourrait probablement devinestimer la structure de format, mais vous le savez probablement la sueur et la douleur associée à l'écriture de code HTML qui permet d'afficher sur tous les périphériques. AWeb Avec le service de base le format Atom, vous avez une compréhension claire de ce que les données sont et représentent. Pour commencer, le service AWeb dit au serveur: «Voici les données de comprendre comment l'afficher." Si le dispositif final est un lecteur Atom, il est facile d'imaginer ce qu'ils peuvent faire avec les données, mais si le dispositif final est AWeb navigateur, vous avez un défi. La plupart des nouveaux navigateurs ne comprennent Atom services Web, mais une autre option est d'avoir Ajax à main pour l'aider et en particulier le objet XMLHttpRequest, ce qui peut générer une demande d'appeler le service Web. Le service Web fournit les données, qui sont ensuite traitées par l'objet XMLHttpRequest, et parce que la grande majorité des services Web sont basés sur XML: j'essaie de comprendre le format des données transmises par le service Web est trivial. En déléguant les travaux de création d'un GUI loin du serveur, il ya une séparation claire entre le rôle du client et jouer serveur. Cette séparation est absolument essentielle, car elle permet au serveur de développeurs de se concentrer sur les performances, l'évolutivité, de robustesse et de stockage, tandis que le client peut se concentrer sur la convivialité, l'esthétique visuelle et la compréhension. Le concepteur et le programmeur avoir deux ensembles de compétences très différentes, et ils ne doivent pas interférer les uns avec les autres.

Mise en œuvre du serveur

L'architecture modifié a deux processus de base de données, et les deux processus sont connectés en utilisant le mécanisme de synchronisation de la base de données. Du point de vue de l'utilisateur, développeur et administrateur, chaque application utilise sa propre base. Les deux processus de base de données à gérer les tableaux exactement les mêmes, des vues et des procédures stockées. On suppose que cette nouvelle architecture utilise les mêmes tables, vues, et des procédures stockées, mais en réalité ce n'est pas toujours le cas, car une nouvelle application implique généralement l'ajout de tables, colonnes, et les données. La solution à ce problème est d'utiliser l'encapsulation base de données, ce qui est possible avec des vues et des procédures stockées. Synchronisation de base de données réduit la complexité à un minimum absolu. La raison d'utiliser la synchronisation de bases de données consiste à engager le processus de séparation de deux applications sans perdre l'intégrité des données. En l'état de la nouvelle architecture, le wp_authors et tables wp_users sont les dépendances seulement de la base de données originale. Ainsi, quand une synchronisation de base de données est définie, seuls les wp_authors et tables wp_users sont synchronisés. Toute autre table utilisée par l'architecture du blog original n'est pas synchronisé et qu'il n'affecte donc pas l'architecture de la nouvelle application.

Le développeur peut aller de l'avant et de créer sa propre base de données de conception, sans avoir à vous soucier du risque de la conception ancienne base de données. Il va sans dire que la conception ancienne base de données n'est pas modifié, mais cette conception ne s'arrête pas la création de procédures stockées qui pourrait corrompre les données dans la conception de base de données originale. Pour éviter ou du moins minimiser les risques de corruption des données, il est absolument vital que les contraintes de l'utilisation de bases de données de conception et de validation. La plupart des bases de données SQL permettant de définir les contraintes. Prendre du recul et en regardant cette architecture, vous devriez observer qu'il s'appuie sur la capacités de la base de données relationnelle. Il pourrait y avoir des situations où un développeur n'utilise pas une base de données relationnelle. Pour ces situations, je n'ai pas de solution, comme pour la plupart du temps je dois traiter des bases de données relationnelles, et je suis tenté de croire la plupart des lecteurs ont le même problème. S'appuyant sur les capacités de la base de données relationnelle exige que vous compreniez la base de données. Avec l'introduction de mapping objet-relationnel (ORM) les outils, la nécessité de connaître le langage SQL est réduite. Par exemple, utiliser des outils ORM comme Hibernate ne nécessite pas de connaissances de vues ou procédures stockées. Outils ORM créer «vues» dans la forme de hiérarchies d'objets. Grâce à un outil ORM vous permet d'implémenter la même architecture, mais cela signifie que vous ne sera probablement pas en utilisant des procédures stockées et vues.

La vraie différence entre l'utilisation d'un ORM et de la base de données relationnelle procédure stockée et la solution de point de vue est le déplacement du couplage entre le code et la persistance des données. En revanche, la couche de base de données relationnelle utilise des vues et des procédures stockées d'interagir avec les données. Le codeur a besoin de savoir sur les colonnes et les types de base de données relationnelles et doit fournir une correspondance entre son langage de programmation et le langage de programmation SQL. Utilisation de langages de programmation tels Java et C # implique un peu de travail sur le terrain en termes de préparation de commandes et de récupération des données. L'utilisation d'un langage de programmation comme Ruby, Python ou PHP, en interaction avec une base de données relationnelle est insignifiant, puisque les langues précitées n'ont pas à déclarer les types de données. Utilisation d'un ORM, le codeur se lave les mains du problème et met la mettre l'accent sur la couche d'ORM.

Pour les programmeurs Java et C #, un ORM supprime la corvée de l'interaction avec une base de données, avec le seul coût étant l'absence des programmeurs de contrôle des opérations et de manipulations de la base de données bien que dans la plupart des cas que l'absence de contrôle est acceptable au regard du corvée d'écrire le code de base de données relationnelles. La question est, dont l'architecture devrait-vous utiliser? Personnellement, j'utilise tout ce qui est plus facile dans le langage de programmation que je développe dans le temps. Alors quand je suis à écrire du code en Java et C #, j'ai tendance à utiliser ORM, et quand je vous écris du code Python, je accéder à la base de données relationnelle directement. Vous devez vous assurer que la couche ORM ne dicte pas la conception de la base, en aucune circonstance. La conception de base de données est déterminée par la base de données et les données ont persisté, donc cela signifie que vous devez comprendre table, la vue, la contrainte, et la conception de déclenchement. Cela pourrait devenir difficile si l'ORM dicte la conception de base de données, et il pourrait en résulter une base de données ainsi inefficace. N'oubliez pas que dans toute demande, la partie la plus lente sera la base de données. La base de données doit pores par des millions de dossiers, de gérer les transactions, et envoyer ces données à travers un réseau. Si vous concevez une application pour être efficace, au détriment de la conception des bases de données, alors il n'y a pas moyen de magie accélérer les performances de la base.

un article présenté par Sonja Lande


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Mettre en œuvre une architecture SOA, l'architecture" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 364 users browsing the articles directory