Die Hauptseite der App Engine besagt: "Anwendungscode, der für die Python-Umgebung geschrieben wurde, muss ausschließlich in Python geschrieben werden. Erweiterungen, die in der Sprache C geschrieben sind, werden nicht unterstützt."
Wir müssen eine C / C ++ App auf einen SaaS-Dienst portieren. Kann es mit Google App Engine gemacht werden?
Derzeit sind vier Laufzeiten für Google App Engine verfügbar: Go, Java, Python & amp; PHP.
Dies sind nicht nur die einzigen verfügbaren Laufzeiten, sondern Sie sind auch in den Fähigkeiten der Sprache eingeschränkt. Viele traditionell verfügbare Subsysteme stehen Ihnen nicht zur Verfügung, um die Skalierbarkeit Ihrer Webanwendung zu verbessern. Die primären Beispiele auf der von Ihnen verlinkten Seite erwähnen, dass das Öffnen von Sockets oder das Schreiben in ein Dateisystem nicht erlaubt ist. Threading oder die Durchführung von Berechnungen, die länger als eine Minute Wanduhrzeit dauern, sind eine weitere häufige Einschränkung.
Die Sandbox
Anwendungen werden in einer sicheren Umgebung ausgeführt, die eingeschränkten Zugriff auf das zugrunde liegende Betriebssystem bietet. Aufgrund dieser Einschränkungen kann App Engine Webanforderungen für die Anwendung auf mehrere Server verteilen und Server starten und stoppen, um den Datenverkehrsanforderungen gerecht zu werden. Die Sandbox isoliert Ihre Anwendung in einer eigenen sicheren und zuverlässigen Umgebung, die unabhängig von der Hardware, dem Betriebssystem und dem physischen Standort des Webservers ist.
Beispiele für die Einschränkungen der sicheren Sandbox-Umgebung sind:
- Eine Anwendung kann nur über die bereitgestellten URL-Abruf- und E-Mail-Dienste auf andere Computer im Internet zugreifen. Andere Computer können sich nur mit der Anwendung verbinden, indem sie HTTP- (oder HTTPS-) Anforderungen an den Standard-Ports stellen.
- Anwendungen können in keiner der Laufzeitumgebungen in das Dateisystem schreiben. Eine Anwendung kann Dateien lesen, aber nur Dateien, die mit dem Anwendungscode hochgeladen wurden. Die App muss den App Engine-Datenspeicher, Memcache oder andere Dienste für alle Daten verwenden, die zwischen den Anforderungen bestehen bleiben. Die Python 2.7-Umgebung ermöglicht das Lesen, Schreiben und Ändern von Bytecode.
- Anwendungscode wird nur als Reaktion auf eine Webanforderung, eine Aufgabe in der Warteschlange oder eine geplante Aufgabe ausgeführt und muss in jedem Fall innerhalb von 60 Sekunden Antwortdaten zurückgeben. Ein Request-Handler kann nach dem Senden der Antwort keinen Unterprozess generieren oder Code ausführen.
Der Schwerpunkt von Google App Engine besteht darin, eine Anwendung mit einem einzigen Thread zu schreiben, die auf den von ihnen bereitgestellten skalierbaren Diensten basiert. Es ist ein Paradigmenwechsel gegenüber der herkömmlichen C / C ++ - App-Entwicklung, da Sie den Google-Mechanismus zum Speichern von Daten, zum Zugriff auf andere Ressourcen im Internet, zum Senden und Empfangen von E-Mails und zum Caching verwenden müssen. Der Grund dafür ist, Engpässe in Ihrer Anwendung zu beseitigen, so dass eine große Anzahl von Instanzen Ihrer Anwendung basierend auf Anforderung Anforderungen ausgelöst und abgerissen werden können.
Die Portierung einer herkömmlichen C / C ++ - App auf GAE (und viele andere SaaS) erfordert wahrscheinlich so viel Umgestaltung, dass ein Neuschreiben erforderlich ist, um die Vorteile zu nutzen, die Sie auf einer SaaS-Plattform erzielen können.
Tags und Links google-app-engine