sql >> Databáze >  >> RDS >> Mysql

Přístup k databázi GWT bez RPC

Existuje 2,5 důvodů, proč nemůžete použít gwt pro přímý přístup k MySQL.

Důvod #1.GWT je zkompilován do Javascriptu. Musíte otevřít soket pro databázový server. GWT neumožňuje otevřít zásuvku. Ve skutečnosti žádný nerozšířený prohlížeč (před příchodem html5) není schopen otevřít soket. Soket však můžete otevřít pomocí Actionscriptu Flash nebo HTML 5 javascriptu.

Důvod č. 2. Dobře, řekněme, že jste použili HTML5 sockety. A strávili jste 6 měsíců psaním v Javascriptu a připojením JDBC. Váš websocket by však stále potřeboval adresovat servlet na serveru, který by vašemu websocketu pomohl navázat trvalé připojení – a mysql takové vytvoření nedokáže provést.

Důvod č. 3. SLD - Omezení SOP:(Doména druhé úrovně se stejným původem) Standardní prohlížeč omezuje své stránky tak, aby bylo možné požadovat a zahrnout obsah pouze ze stejné domény druhé úrovně (SLD) jako server, který poskytla tuto stránku prohlížeči. Domény nejvyšší úrovně (a jedna a půl nejvyšší úrovně) jsou například .com, .org, .net, .me.us nebo .co.uk. Názvy domén jako google.com, fbi.gov, mit.edu jsou tedy domény druhé úrovně. Zatímco mail.google.com by byla doména třetí úrovně. Proto by GWT fungovalo pouze v rámci SLD. Váš webový server musí být také přístupný na stejném SLD jako váš mysql server.

Požadavek SLD-SOP a tunelování je uzavřít bezpečnostní díru, která mohla umožnit jakémukoli tom-rick-or-mary přihlásit se do vašeho systému prostřednictvím vašeho prohlížeče. Aby se prohlížeč mohl připojit k jinému serveru, než je http server, je vždy vyžadováno tunelování. Tunelování je, když prohlížeč využívá webový server jako yenta (jidiš pro zaneprázdněné tělo/mezi/dohazovač), aby se dostal na jiný server.

Nemáte jinou možnost, než použít GWT-RPC. Možná si nepřejete používat RPC, pak můžete použít RequestBuilder nebo Script-Include nebo RequestFactory. Ale všechny jsou stále rozmanitými prostředky tunelování. http://h2g2java.blessedgeek.com /2011/06/gwt-requestbuilder-vs-rpc-vs-script.html .

Existuje jeden důvod, proč se můžete připojit k databázovému serveru ze svého klienta gwt:Váš databázový server musí běžet připojovací stroj httpd. To znamená, že vaše aplikace gwt bude mít přístup k serveru db přes http. Nevím, která relační databáze má k dispozici http přístup. S největší pravděpodobností byste se museli dotazovat přes xml nebo json.

Společnost, pro kterou jsem pracoval, však vytvořila naši vlastní službu http, aby umožnila „přímý“ klientský přístup. "přímý" je nesprávné pojmenování, protože jsme použili kocour. Stále se tuneluje. Každá databázová společnost, která nabízí „přímý“ http přístup, stále tuneluje. Tunelování – není z něj úniku.

Místo používání GWT byste mohli prohlížeč rozšířit o Flash a napsat Flash aplikaci. Pokud je pro vás přímý přístup tak zásadní, museli byste opustit GWT a vyvíjet se ve Flashi a spustit pro svůj databázový server httpd engine.



  1. Deset způsobů, jak váš datový projekt selže

  2. Ikona WAMP Server V 2.5 je oranžová, nereaguje a žádná nabídka

  3. Jak vytvoříte uživatele pouze pro čtení v PostgreSQL?

  4. Xampp MySQL se nespouští - Pokus o spuštění služby MySQL...