Umsetzung einer SOA-Architektur

Ich berührte das Thema mit einer Service-orientierten Architektur (SOA), Web Services, Ajax und an einen Kunden aus theoretischer Perspektive zu bauen, aber ich habe nicht tauchen Sie ein in die praktischen Details, wie die SOA-Architektur umzusetzen. In diesem Fest ein Artikel beschreibe ich, wie eine SOA-Architektur mit Web-Services und Ajax zu implementieren. Die Lösung berücksichtigt auch die Frage, wie eine bereits vorhandene Architektur in eine SOA Architektur-Upgrade. Dieser Artikel behandelt die folgenden Themen:

  

• Projektierung Representational State Transfer (REST)-basierte URLs auf Inhalte, die als ein Satz beschrieben wird,

• Erstellen eines neuen SOA-Architektur ohne werfen alle von der ursprünglichen Architektur

• Überprüfen und Testen AWeb Service

• Kommissionierung mit Ausnahme der Daten

• Implementierung einer REST-basierten Web-Service

• HTML

• Really Simple Syndication (RSS)

• Jedes Atom der Formate ist einzigartig, aber die inhaltliche Struktur in den Formaten ist die gleiche. Aus Sicht des Programmierers, wäre die Lösung ein Modell einbeziehen-View-Controller Die neu gestaltetes Anwendung ist nur eine URL und ein Datenformat, Atom , so dass der Code hinter der URL muss generieren Inhalte nur für dieses Format. Im Falle der neu gestaltetes Anwendung der Atom-Format gilt als AWeb Service, die Idee es ist, ein universelles Format von einem breiten Publikum verständlich zu präsentieren. Und wenn das Endgerät nicht verstehen, das Format, dann ist es an der Browser-Gerät, um es herauszufinden. Natürlich, fragt das Endgerät herauszufinden, das Format klingt hart, aber es ist nicht wirklich, wenn Sie die HTML-Generierung mit dem HTTP-Protokoll, fragst du das Endgerät, um herauszufinden, wie die Daten angezeigt werden.

Falls HTML und HTTP fast universell sind, warum nicht nur erzeugen, gut strukturierte HTML und lassen Sie die Atom-End-Gerät, das herauszufinden? Die Antwort ist, dass es funktioniert nicht ganz so reibungslos wie. HTML ist ein benutzerfreundliches Interface-Technologie, die nicht universell auf allen Geräten verstanden. Ein Atom-End-Gerät könnte wahrscheinlich guesstimate das Format Struktur, aber Sie wissen wahrscheinlich, den Schweiß und Schmerzen im Zusammenhang mit dem Schreiben von HTML-Code, der Darstellung auf allen Geräten kann verbunden. Mit AWeb dienstleistungsorientierten auf dem Atom-Format, haben Sie eine klare Vorstellung davon, was die Daten und stellt. Für den Anfang, sagt AWeb Service auf dem Server: "Hier sind die Daten herausfinden, wie man ihn anzuzeigen." Wenn das Endgerät ist ein Atom-Leser, ist es einfach, herauszufinden, was mit den Daten tun, aber wenn das Endgerät ist AWeb Browser, müssen Sie eine Herausforderung. Die meisten neuen Browsern nicht verstehen Atom-Web-Services, aber eine andere Möglichkeit besteht darin, Ajax zur Hand haben zu helfen und insbesondere das XMLHttpRequest-Objekt, das eine Anfrage an den Web Service-Aufruf generiert werden kann. Der Web Service liefert die Daten, die dann durch das XMLHttpRequest-Objekt verarbeitet wird, und weil die große Mehrheit der Web Services sind XML-basierte, herauszufinden, das Format der Daten durch die Web-Service ausgeliefert ist trivial. Durch die Übertragung der Arbeiten zur Schaffung eines GUI vom Server entfernt, gibt es eine klare Trennung zwischen der Rolle der Client-und Server zu spielen. Diese Trennung ist absolut entscheidend, denn sie ermöglicht dem Server der Entwickler sich auf die Leistung, Skalierbarkeit, Robustheit zu konzentrieren, und Lagerung, während der Client auf die Benutzerfreundlichkeit konzentrieren können, visuelle Ästhetik und Verständlichkeit. Der Designer und der Programmierer haben zwei sehr unterschiedliche Fähigkeiten, und sie sollten sich nicht gegenseitig stören.

Die Umsetzung der Server

Die modifizierte Architektur hat zwei Datenbank-Prozesse, und die beiden Prozesse sind angeschlossen, die den Mechanismus der Synchronisation der Datenbank. Aus der Sicht der Benutzer, Entwickler und Administrator, nutzt jede Anwendung eine eigene Datenbank. Die beiden Datenbank-Prozesse zu verwalten exakt die gleichen Tabellen, Views und Stored Procedures. Es wird davon ausgegangen, dass diese neue Architektur die gleichen Tabellen, Views verwenden werden, und gespeicherte Prozeduren, aber in Wirklichkeit ist dies nicht immer der Fall, weil eine neue Anwendung in der Regel die Zugabe von Tabellen, Spalten umfasst, und Daten. Die Lösung für dieses Problem ist Datenbank-Verkapselung, die mit Ansichten und gespeicherten Prozeduren möglich ist. Datenbank-Synchronisation verwenden reduziert die Komplexität auf ein absolutes Minimum. Der Grund für die Verwendung von Datenbank-Synchronisation ist es, den Prozess der Trennung von zwei Anwendungen, ohne dass die Datenintegrität zu beginnen. Da die neue Architektur steht, die wp_authors und wp_users Tabellen sind nur die Abhängigkeiten der ursprünglichen Datenbank. So, wenn eine Datenbank-Synchronisation definiert ist, werden nur die wp_authors und wp_users Tabellen synchronisiert. Jede andere Tische, die vom ursprünglichen Blog-Architektur verwendet wird, nicht synchronisiert und daher keine Auswirkungen auf die Architektur der neuen Anwendung.

Der Entwickler kann gehen Sie voran und schaffen seine eigene Datenbank-Design, ohne sich um Beschädigung der alten Datenbank-Design zu kümmern. Es versteht sich von selbst, dass die alten Datenbank-Design nicht verändert wird, aber das Design nicht zu stoppen die Schaffung von gespeicherten Prozeduren, die möglicherweise beschädigte Daten in der ursprünglichen Datenbank-Design. Um zu verhindern oder zumindest zu minimieren das Potenzial der Beschädigung von Daten, ist es absolut unerlässlich, dass die Datenbank-Design verwenden Zwänge und Validierungen. Die meisten SQL-Datenbanken die Definition von Einschränkungen zu ermöglichen. Stepping zurück und betrachtet diese Architektur, sollten Sie feststellen, dass es auf dem stützt Fähigkeiten der relationalen Datenbank. Es könnte Situationen, in denen ein Entwickler nicht mit einer relationalen Datenbank. Für diejenigen Situationen, ich habe keine Lösung zu haben, wie zum größten Teil habe ich, um mit relationalen Datenbanken umgehen, und ich bin versucht zu glauben, die meisten Leser haben das gleiche Problem. Gestützt auf die Fähigkeiten der relationalen Datenbank erfordert, dass Sie die Datenbank zu verstehen. Mit der Einführung der objekt-relationales Mapping (ORM)-Tools, die Notwendigkeit, SQL wissen reduziert wird. Beispielsweise lässt sich mit ORM-Tools wie Hibernate nicht erforderlich, Kenntnis von Views oder Stored Procedures. ORM-Tools zu erstellen "views" in Form von Objekt-Hierarchien. Mit einem ORM-Tool können Sie die gleiche Architektur umzusetzen, jedoch bedeutet dies, dass Sie wahrscheinlich nicht in der Verwendung von gespeicherten Prozeduren und Ansichten.

Der eigentliche Unterschied zwischen der Verwendung eines ORM und der relationalen Datenbank gespeicherten Prozedur und Blick Lösung ist die Verschiebung der Kopplung zwischen den Code und die Persistenz der Daten. Im Gegensatz dazu verwendet die relationale Datenbank-Ebene, Ansichten und gespeicherten Prozeduren mit den Daten zu interagieren. Der Codierer muss über die Spalten und Typen der relationalen Datenbank kennen und muss eine Zuordnung zwischen seiner Programmiersprache und die Programmiersprache SQL bieten. Mit klassischen Programmiersprachen wie Java und C # geht ziemlich viel Kleinarbeit im Hinblick auf die Vorbereitung der Befehle und Abrufen von Daten. Mit einer Programmiersprache wie Ruby, Python oder PHP, die Interaktion mit einer relationalen Datenbank ist trivial, da der vorgenannten Sprachen nicht zu tun, um die Datentypen zu erklären. Mit einem ORM, wäscht die Programmierer den Händen des Problems und stellt die konzentrieren sich auf die ORM-Schicht.

Für Java und C # Programmierer, ein ORM entfernt die Plackerei der Interaktion mit einer Datenbank, mit dem einzigen Kosten werden nicht über die Programmierer die Kontrolle über die Geschäfte und Manipulationen der Datenbank, obwohl in den meisten Fällen, dass der Mangel an Kontrolle ist akzeptabel, wenn gegen einen gewogenen Mühsal des Schreibens der relationalen Datenbank-Code. Die Frage ist, die Architektur sollte man verwenden? Persönlich benutze ich, was am einfachsten in der Programmiersprache ist: Ich bin in der Entwicklung an der Zeit. Also, wenn ich in Java und C # schreibe, neige ich dazu, ORMs verwenden, und wenn ich Python-Code schreiben, ich Zugriff auf die relationale Datenbank direkt. Sie müssen sicherstellen, dass die ORM-Schicht nicht diktieren, das Design der Datenbank, unter keinen Umständen. Die Datenbank-Design wird durch die Datenbank und die Daten beibehalten bestimmt, so dass es bedeutet, dass Sie Tabelle, Sicht-Einschränkung zu verstehen, und Trigger-Design. Dies könnte kompliziert werden, wenn die ORM das Datenbank-Design diktiert, und es könnte zu einer ineffizienten Datenbank resultieren. Beachten Sie, dass in jeder Anwendung, die langsamste Teil der Datenbank sein wird. Die Datenbank wurde durch Millionen von Datensätzen Pore, Transaktionen zu verwalten, versenden und die Daten über ein Netzwerk. Wenn Sie ein Programm gestalten, daß sie auf Kosten der effizienten Datenbank-Design, dann gibt es keine Möglichkeit, auf magische Weise beschleunigt die Leistung der Datenbank.

Ein Artikel eingereicht von Sonja Lande


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Die Implementierung einer SOA-Architektur" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 422 users browsing the articles directory