Kommunikation zwischen den PHP Web App Server-Layern in Amazon Web Services

9

Ich bin dabei, eine Web-Anwendung zu entwickeln, die auf Amazon Web Services gehostet wird, und ich habe eine Frage bezüglich der Architektur.

Wenn Sie sich das Diagramm unten von Amazon ansehen, haben sie 3 Ebenen; ein Webserver, der Benutzer über HTTP bedient, ein Anwendungsserver, der Geschäftslogik verarbeitet, und ein Datenbankserver. Dies ist perfekt für unseren Einsatz und die Trennung von Web- und Anwendungslogik ist großartig, allerdings habe ich eine Frage bezüglich der Kommunikation zwischen den Schichten.

Der Code der App wird in PHP geschrieben. Die Kommunikation zwischen dem Anwendungsserver und dem Datenbankserver kann durch die mysqli-Erweiterung von PHP erfolgen (standardmäßig über den Port 3306 zum Host-DB-Server). Das ist in Ordnung, aber ich bin mir nicht sicher, wie die Kommunikation zwischen dem Webserver und dem Anwendungsserver während der HTTP-Anfrage eines Benutzers erfolgen würde und wie dies am besten funktioniert.

Ich habe über XML / RPC oder möglicherweise JSON / RPC gelesen, aber ist das das Richtige, wonach ich suche? Oder ist die Kommunikation zwischen verschiedenen PHP-Server-Layern normalerweise auf andere Weise möglich?

Jeder Rat würde sehr geschätzt werden.

    
Steve 10.04.2011, 12:23
quelle

3 Antworten

2

Es besteht eine große Chance, dass die Schnittstellen, die Sie für Ihre Anwendungsebene entwickeln müssen, für verschiedene Anwendungen unterschiedlich sein werden. Eine Möglichkeit, einen generischen Ansatz dafür zu haben, ist das Erstellen von mehr Abstraktion.

Es kann auf viele Arten implementiert werden, in PHP oder vielleicht einer anderen Technologie dazwischen. Sie können sich über Webservices informieren (WSDL, SOAP, WSO2.org PHP-spezifisch), REST , RPC-Stil (Sie haben es erwähnt), RMI (Java), Corba , JAXB , mehrere Projekte der Apache Foundation, Google Protokollpuffer , oder implementieren Sie Ihr eigenes Protokoll; Staging-Datenbanken könnten in einigen Fällen auch hilfreich sein.

Ich denke, deine Frage ist zu allgemein, um sie wirklich zu "beantworten". Es ist eine der ersten Fragen, die Sie beantworten müssen, wenn Sie eine Architektur wie diese einrichten.

    
Robert de W 18.04.2011, 19:48
quelle
2

Wenn Sie PHP als Backup verwenden, dann werden Sie wahrscheinlich Ihre Webserver und "Anwendungs" -Server auf demselben Rechner (Apache + PHP) haben, so dass das Diagramm von Amazon in diesem Fall nicht wirklich zutrifft. Eine Sache, die Sie untersuchen möchten, ist eine Maschine vor Ihre Webserver (Nginx oder dergleichen) zu setzen, um die Anfragen zurück zu Ihren Webservern zu reproxy, oder vielleicht in ELB von Amazon zu schauen.

    
Matt 25.04.2011 03:27
quelle
0

Sie könnten auch REST in Erwägung ziehen, das http für die Kommunikation zwischen der Webschicht und der App-Schicht verwendet.

    
Josnidhin 10.04.2011 13:28
quelle