In meinem Unternehmen werden wir Flex3 für die Präsentationsschicht einer neuen Finanz-Webanwendung und Spring für die Business-Schicht verwenden, aber es wird immer noch über die beste Messaging-/Remoting-Technologie diskutiert. Können Sie Ihre eigenen Erfahrungen in Bezug auf Vor- und Nachteile der Nutzung der einen oder anderen Technologie teilen?Pro und Kontra der Verwendung von BlazeDS oder Web Services als Remoting- und Messaging-Technologie zwischen Flex View Layer und Spring Business Layer?
Antwort
Nach meiner Erfahrung verwenden Sie BlazeDS, es sei denn, Sie müssen Webdienste verwenden, auf die eine Vielzahl von Technologien zugreifen können.
BlazeDS
Vorteile: Weniger Server intensiv, weniger Client-Parsing-Zeit, kleinere Datenpaket (es ist binär), ein schneller Anruf insgesamt ist es bedeutet. Kann veröffentlichen/subskribieren sowie Methodenaufruf.
Nachteile: Nicht kompatibel mit Nicht-Flex-Frontends (. Obwohl es Open Source ist, so in der Theorie, könnte es sein)
Webservices
Pro: Etablierte, so ziemlich Cross-Plattform. Einfach zu lesen und zu übersetzen Probleme.
Nachteile: Viel ausführlicher. Wenn Sie die interne Übersetzung von XML zu AS Objects verwenden, muss der Client einige intensive Parsing durchführen. Wenn Sie die Objekte als XML verwenden, wird die Kapselung geschwächt (Objekte außerhalb des Aufrufs müssten detaillierte Informationen über das XML-Objekt kennen, was ein Refactoring problematisch machen könnte.)
Für einen guten Vergleich der tatsächlichen Datenbanken mit den tatsächlichen Zahlen Siehe James Ward's Census application.
BlazeDS unterstützt Echtzeit-Nachrichten-Streaming über AMF und HTTP. Die Anzahl der zulässigen Clients ist jedoch geringer als die des effizienteren RTMP von Adobe LiveCycle ES. Sie können jederzeit zu LiveCycle wechseln, wenn Sie die Leistungssteigerung benötigen, aber es ist ein Preisschild beteiligt (ich weiß nicht, wie teuer es ist).
Meine größten Nachteile gegenüber Flex im Vergleich zu regulären HTML/CSS/JavaScript-Entwicklung ist die zusätzliche Kompilierungsphase. Jede zusätzliche Sekunde, die benötigt wird, um das Ergebnis zu sehen, ist ein großer Nachteil in der Frontend-Entwicklung. – rlovtang
Ich stimme mit stevko. Und danke für die Verknüpfung mit meiner Census App. :) Normalerweise empfehle ich, dass Sie nur Webdienste verwenden, wenn Sie die Server-Seite nicht steuern, und alles, was es anbietet, sind Webdienste. Ansonsten ist BlazeDS die klare Wahl. Auch weil Sie AMF-Remoting verwenden, bedeutet dies nicht, dass Sie auch keinen Web-Services-Endpunkt für Integrationen von Drittanbietern bereitstellen können. –
In der Tat, wenn Sie gut definierte Service-Layer haben, können Sie Teile von beiden mit BlazeDS und einer Web-Service-Engine wie CXF leicht aussetzen. –