Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy cập cơ sở dữ liệu GWT không có RPC

Có 2,5 lý do khiến bạn không thể sử dụng gwt để truy cập trực tiếp vào MySQL.

Lý do # 1.GWT được biên dịch thành Javascript. Bạn cần mở một ổ cắm cho máy chủ cơ sở dữ liệu. GWT không cho phép bạn mở ổ cắm. Trên thực tế, không có trình duyệt không được hỗ trợ nào (trước khi html5 ra đời) có thể mở một ổ cắm. Nhưng bạn có thể mở một socket bằng cách sử dụng Flash actioncript hoặc HTML 5 javascript.

Lý do # 2.OK, giả sử bạn đã sử dụng các socket HTML5. Và bạn đã dành 6 tháng để viết bằng Javascript một kết nối JDBC. Tuy nhiên, websocket của bạn vẫn cần xử lý một servlet trên máy chủ, điều này sẽ giúp websocket của bạn thiết lập kết nối liên tục - và mysql không thể thực hiện thiết lập như vậy.

Lý do # 3.SLD - Hạn chế SOP:(Chính sách nguồn gốc tương tự tên miền cấp hai) Trình duyệt tiêu chuẩn hạn chế các trang của nó chỉ có thể yêu cầu và bao gồm nội dung từ cùng một tên miền cấp hai (SLD) như máy chủ đã cung cấp trang đó cho trình duyệt. Các miền cấp cao nhất (và cấp cao nhất rưỡi) chẳng hạn như .com, .org, .net, .me.us hoặc .co.uk. Vì vậy, các tên miền như google.com, fbi.gov, mit.edu là các tên miền cấp hai. Trong khi, mail.google.com sẽ là miền cấp ba. Do đó, GWT sẽ chỉ hoạt động trong giới hạn của SLD. Máy chủ web của bạn cũng phải có thể truy cập được ở cùng SLD với máy chủ mysql của bạn.

SLD-SOP và yêu cầu đào đường hầm là đóng một lỗ hổng bảo mật có thể cho phép bất kỳ tom-rick-or-mary nào đăng nhập vào hệ thống của bạn trong trình duyệt của bạn. Đường hầm luôn được yêu cầu để trình duyệt kết nối với máy chủ không phải máy chủ http. Đường hầm là khi trình duyệt khai thác máy chủ web dưới dạng yenta (yiddish cho bận-body / go-between / match-maker) để đến một máy chủ khác.

Bạn không có lựa chọn nào khác ngoài việc sử dụng GWT-RPC. Có lẽ bạn không muốn sử dụng RPC, thì bạn có thể sử dụng RequestBuilder, hoặc Script-include hoặc RequestFactory. Nhưng chúng vẫn là những phương tiện đào hầm đa dạng. http://h2g2java.blessedgeek.com /2011/06/gwt-requestbuilder-vs-rpc-vs-script.html .

Có một lý do tại sao bạn có thể kết nối với máy chủ cơ sở dữ liệu của mình từ máy khách gwt:Máy chủ cơ sở dữ liệu của bạn phải chạy công cụ kết nối httpd. Đó là, ứng dụng gwt của bạn sẽ truy cập vào máy chủ db qua http. Tôi không biết cơ sở dữ liệu quan hệ nào có sẵn quyền truy cập http. Có thể nhất, bạn sẽ phải truy vấn xml hoặc json.

Tuy nhiên, một công ty mà tôi từng làm việc đã tạo ra dịch vụ http của riêng chúng tôi để cho phép khách hàng "trực tiếp" truy cập. "direct" là một từ nhầm lẫn vì chúng tôi đã sử dụng tomcat. Nó đang đào hầm. Bất kỳ công ty cơ sở dữ liệu nào cung cấp quyền truy cập http "trực tiếp" vẫn đang đào hầm. Đào hầm - không lối thoát.

Bạn có thể tăng cường trình duyệt bằng Flash và viết ứng dụng Flash hơn là sử dụng GWT. Nếu truy cập trực tiếp là điều cần thiết đối với bạn, bạn sẽ phải từ bỏ GWT và phát triển trong Flash và chạy công cụ httpd cho máy chủ cơ sở dữ liệu của mình.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi PHP:Gọi đến một hàm thành viên rowCount () trên một đối tượng không phải

  2. MySQL - Tôi có nên sử dụng khóa chính nhiều cột trên mọi bảng con không?

  3. Giới hạn MySQL với nhiều mối quan hệ

  4. So sánh với giá trị NULL

  5. Tạo bảng phân tích MySQL hàng giờ từ dấu thời gian hiện tại