Aus persönlichen und universitären Forschungsgründen denke ich über den Aufbau eines einfachen CRM mit einer serviceorientierten Architektur nach. Seine Bedeutung ist nur die Architektur selbst zu erklären, nicht die kommerzielle Nutzung.Vorschläge für serviceorientierte Architektur
Ich dachte an die Implementierung eines CRM, das einen einfachen Analyseservice und Kundenpflege bietet (Benutzerspeicherung, persönliche Kommentare und einige andere Dinge).
Die Architektur, die ich Gestaltung definiert bin: - WebGUI (ein Kunde von den anderen Diensten) - AnalyticsService (ein Dienst, der Daten empfängt, analysiert und sammeln es) - CustomerCareService (ein Dienst, der auf RESTful-APIs verwendet CRUD-Operationen anwenden).
Jeder Dienst hat seine eigene Datenbank und ist völlig unabhängig von anderen. Sie legen eine öffentliche Schnittstelle offen. Die Schnittstelle muss natürlich eine Art von Authentifizierung bereitstellen, um unautorisierte Anfragen zu verweigern. Die Vorteile, die ich in dieser Art von Architektur erklären möchte, sind die Möglichkeit, alle Dinge unabhängig zu machen und sie zu kombinieren, um neue Dienste anzubieten (zum Beispiel, wenn es einen OrderService für die Abwicklung von Bestellungen gäbe, wäre es einfach) um es mit dem Kunden unter Verwendung der öffentlichen APIs zu kombinieren). Der große Vorteil für mich ist, dass es einfach genug ist, andere Clients zu erstellen, die diese Dienste nutzen.
Ich weiß nicht, was ist eine gute Authentifizierungsmethode, das könnte einfach zu implementieren, ich bin mir auch nicht sicher, wie diese APIs (verwenden Sie XML oder plain REST APIs mit GET/POST-Daten). Ich habe mit Amazon, PayPal und anderen Unternehmens-APIs gearbeitet, sie scheinen REST-Dienste zu verwenden (paypal verwendet einen hässlichen _cmd-GET-Parameter, während Amazon eine bessere URI verwendet), um zu wissen, was zu tun ist, aber etwas über SOAs zu lesen XML. Natürlich muss ich auch berücksichtigen, dass die Weboberfläche in der Lage sein muss, den angemeldeten Benutzer zu erkennen, die Berechtigungen (Token oder was auch immer) zu erhalten und diese mit Diensten zum Anzeigen von Informationen zu nutzen. Also ich bin mir nicht sicher, SOA ist die Art von Architektur, die ich wirklich aufbaue ... ist es SaaS statt SOA? Ich denke, es wäre besser, RESTful-Anwendungen zu verwenden, mit JSON oder etwas ähnliches, um es zu implementieren (ich bin kein großer Fan von XML, ich finde es zu ausführlich).
Aus Gründen der Klarheit Ich bin Listing hier meine Fragen:
- Ist diese Art von Architektur genannt SOA oder SaaS (oder beides)?
- Was ist eine gute Implementierung für das, was ich erhalten möchte? (bitte erläutern Sie es so detailliert wie möglich)
- Welche Art von Authentifizierung ist besser geeignet für einen Client (Benutzer-Token vs OAuth oder ähnlich)
- Haben Sie Vorschläge für diese Art von Projekt?
Ich habe ungefähr 3 Monate, um es zu tun, also kann ich etwas wirklich Komplexes nicht tun (neben der Tatsache, dass es für einen einzelnen Programmierer nicht realistisch wäre).
Ich kenne Python (WSGI-Frameworks), Ruby on Rails, C/C++ und andere Sprachen (.net ausgeschlossen) und ich möchte es in einer Linux-Umgebung (MySQL oder Postgres oder sogar ein NoSQL, wenn Sie Haben Sie einen Vorschlag für die richtige Wahl), könnte ich auch mehrere Sprachen kombinieren, die diese Dienste unabhängige Programme sind.
Was ich hier möchte, ist ein guter Standpunkt und ein guter Vorschlag.
Danke!
Danke, tolle Antwort! Du hast es richtig gemacht, dass Ressourcen sehr hilfreich sind, ich habe auch ein paar Bücher gekauft, es ist ein sehr interessantes Geschäft! –