luận văn về cross-domain ajax cho các ứng dụng mashup
LỜI CẢM ƠN Trong thời gian nghiên cứu làm khóa luận, em xin chân thành cảm ơn thầy giáo hướng dẫn Nguyễn Hải Châu giúp đỡ em hoàn thành tốt đề tài khóa luận tốt nghiệp Bên cạnh đó, em xin chân thành cảm ơn thày giáo khoa Công Nghệ Thông Tin - trường Đại Học Công Nghệ - ĐHQGHN giảng dạy trang bị cho em kiến thức học tập nghiên cứu khố luận cơng việc sau Những lời động viên, khích lệ từ gia đình, chia sẻ, học hỏi từ bạn bè góp phần nhiều cho khóa luận tốt nghiệp em đạt kết tốt Do trình độ hạn chế nên q trình làm đồ án khó tránh khỏi thiếu sót, em mong bảo thêm thày giúp em hồn thành đạt kết tốt Em xin chân thành cảm ơn! ‐ 1 ‐ TÓM TẮT KHÓA LUẬN TỐT NGHIỆP Ngày nay, mashup ngày trở nên thịnh hành theo trào lưu Web 2.0 Mashup cho phép người thể khả sáng tạo bất tận cách ‘nối’ hai hay nhiều ứng dụng web lại với Và có sách kiểm sốt thích hợp, mashup tạo nên lớp ứng dụng hiệu hữu ích nhiều mơi trường Để mashup liệu từ nguồn khác đó, phải thực cross-domain AJAX Nhưng để cross-domain được, việc dễ yêu cầu bảo mật liệu yêu cầu trang web đạt tính đầy đủ phải hài hịa Hiện có số phương pháp cho việc cross-domain Và khóa luận ‘Cross-domain ajax cho ứng dụng mashup’ trình bày nghiên cứu tổng thể mashup cross-domain ajax, cách thức để thực crossdomain ajax Tiếp việc nghiên cứu hoạt động lập trình Google Maps API để có sở xây dựng ứng dụng thử nghiệm với cross-domain cho mashup ‐ 2 ‐ MỤC LỤC MỤC LỤC CÁC SƠ ĐỒ .‐ 5 ‐ THUẬT NGỮ VÀ CÁC CHỮ VIẾT TẮT ‐ 7 ‐ LỜI MỞ ĐẦU .‐ 8 ‐ CHƯƠNG I ‐ 9 ‐ CROSS-DOMAIN AJAX VÀ .‐ 9 ‐ ỨNG DỤNG ĐỂ XÂY DỰNG WEB MASHUP ‐ 9 ‐ 1.1 Giới thiệu chung Cross-Domain Ajax .- - 1.1.1 XMLHttpRequest ‐ 9 ‐ 1.1.2 Chính sách Same-Origin .‐ 10 ‐ 1.1.3 Thẻ ‐ 11 ‐ 1.1.4 AJAX ‐ 11 ‐ 1.2 Giới thiệu Mashup - 11 - 1.3 Một số ứng dụng để xây dựng Web Mahup .- 14 - 1.3.1 Sử dụng Google Maps API ‐ 14 ‐ 1.3.2 Sử dụng Amazon Web Services Google Search APIs ‐ 15 ‐ 1.3.3 Sử dụng Flickr API ‐ 17 ‐ 1.3.4 Sử dụng ebay API ‐ 19 ‐ CHƯƠNG II .‐ 20 ‐ CROSS-DOMAIN AJAX .‐ 20 ‐ C ÁC GIẢI PHÁP THỰC HIỆN TRONG AJAX ‐ 20 ‐ 2.1 Cross domain proxy .- 20 2.2 Cross domain JSON .- 21 2.2.1 JSONRequest.post ‐ 22 ‐ 2.2.2 JSONRequest.get ‐ 23 ‐ 2.2.3 JSONRequest.cancel ‐ 23 ‐ 2.2.4 Bảo mật ‐ 24 ‐ ‐ 3 ‐ 2.2.5 Hoạt động JSON ‐ 24 ‐ 2.3 Cross domain sử dụng Flash - 25 2.4 Subspace - 26 2.4.1 Subdomain ‐ 28 ‐ 2.4.2 Đơn Web Service ‐ 28 ‐ 2.4.3 Đa Web Service ‐ 29 ‐ 2.5 Giải pháp hệ - 31 2.5.1 FlashXMLHttpRequest ‐ 31 ‐ 2.5.2 ContextAgnosticXMLHttpRequest .‐ 31 ‐ CHƯƠNG III .‐ 33 ‐ XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM .‐ 33 ‐ CROSS-DOMAIN AJAX ‐ 33 ‐ 3.1 Giới thiệu Google Maps - 33 3.2 Giới thiệu Google Maps API - 33 3.2.1 Maps API Basics ‐ 34 ‐ 3.2.2 Maps API Events ‐ 36 ‐ 3.2.3 Maps API Controls ‐ 38 ‐ 3.2.4 Map Overlays ‐ 39 ‐ 3.2.5 Google Maps API Services ‐ 41 ‐ KẾT LUẬN ‐ 42 ‐ TÀI LIỆU THAM KHẢO - 43 - ‐ 4 ‐ MỤC LỤC CÁC SƠ ĐỒ H1.1: XmlHttpRequest với Ajax ‐ 9 ‐ H1.2: Mashup nội dung từ nhiều nguồn ‐ 12 ‐ H1.3: Dữ liệu tương tác hiển thị với Ajax ‐ 12 ‐ H1.4: Khác ba website ‐ 13 ‐ H1.5: Mashup làm việc ‐ 13 ‐ H1.6: Ứng dụng cho mashup ‐ 14 ‐ H1.7: Đăng nhập Google Maps API key ‐ 15 ‐ H1.8: Đăng nhập cho tài khoản Amazon Associates ‐ 16 ‐ H1.9: Đăng nhập cho tài khoản AWS ‐ 16 ‐ H1.10: Google Search API ‐ 17 ‐ H1.11: Đăng nhập cho tài khoản Flickr API ‐ 18 ‐ H1.12: Flickr photos search ‐ 18 ‐ H1.13: Đăng nhập cho tài khoản Flickr API ‐ 19 ‐ H2.1: Cross-Domain Proxy ‐ 21 ‐ H2.2: Hạn chế cross domain XMLHttpRequest ‐ 21 ‐ H2.3: Của cross domain JSON ‐ 22 ‐ H2.4: Hoạt động JSON ‐ 24 ‐ H2.5: Lỗi 2044 ‐ 25 ‐ H2.6: Gọi liệu từ domain unstrusted 3rd-party đơn Bước (trái) chuyển communication object từ top frame tới mediator frame Bước thứ hai (right) xảy sau mediator unstrusted frame thay đổi document.domain thành hậu tố mashup.com ‐ 29 ‐ H2.7: Kết nối đa web service Nếu trình duyệt có hạn chế frame access policy, cấu trúc khung top-mediator-unstrusted nên sử dụng, trình duyệt có chấp nhận frame access policy, cấu trúc khung top-unstrusted-access cần ‐ 30 ‐ H3.1: Mashup ứng dụng ‐ 33 ‐ H3.2: Google Maps API ‐ 34 ‐ ‐ 5 ‐ H3.3: map_api_basic.html ‐ 34 ‐ H3.4: map_api_event.html ‐ 37 ‐ H3.5: map_api_overlay.html ‐ 39 ‐ H3.6: map_api_polyline.html ‐ 41 ‐ H3.7: map_api_geocoding.html ‐ 41 ‐ ‐ 6 ‐ THUẬT NGỮ VÀ CÁC CHỮ VIẾT TẮT AJAX Asynchronous JavaScript and XML – JavaScript XML không đồng API Application Programming Interface – Giao diện chương trình ứng dụng DOM Document Object Model – Mơ hình đối tượng văn HTML Hypertext Markup Languages – Ngôn ngữ đánh dấu siêu văn XHTML Extensible HyperText Markup Language – Ngôn ngữ đánh dấu siêu văn mở rộng JSON JavaScript Object Noattion – Định dạng hoán vị liệu nhah URL Uniform Resource Locator – Tham chiếu tài nguyên internet XML Extensible Markup Language – Ngôn ngữ đánh dấu mở rộng RSS Really Simply Syndication – Tiêu chuẩn định đạng tài liệu REST Representational state transfer CSS Cascading Style Sheets – Tập tin định kiểu theo tầng XSLT Extensible Stylesheet Language Transformations – Ngôn ngữ định dạng chuyển đổi mở rộng SOAP Simple Object Access Protocol ‐ 7 ‐ LỜI MỞ ĐẦU Vài năm trở lại đây, ngày nhiều cơng ty phát hành chương trình cho phép kết hợp liệu dịch vụ web doanh nghiệp với nhau, đồng thời phát triển hài hòa bảo mật yêu cầu khách hàng Chúng trộn lẫn (mashup) cách thông minh sáng tạo Nhưng có vấn đề bảo mật đưa bạn chuyển liệu domain Với hạn chế cross-domain, xây dựng hầu hết trình duyệt, khó khăn cho mashup Việc tìm hiểu sử dụng web proxy JSON, để nâng cao hiệu mashup Luận văn ‘Cross-domain ajax cho ứng dụng web mashup’ nhằm mục đích tìm hiểu cách thức phương pháp thực lời gọi cross domain ajax Và trang bị kiến thức thư viện ajax cross domain, Google Maps API để lập trình ứng dụng thử nghiệm cho mashup Khóa luận chia làm chương Chương I phần giới thiệu crossdomain ajax số vấn đề liên quan, ứng dụng để xây dựng web mashup Chương II giới thiệu chi tiết cross-domain cross-domain ajax, sau em tóm tắt giải pháp thực crossdomain ajax Chương III chương dành cho việc nghiên cứu hoạt động lập trình Google Maps (API), sở cho việc xây dựng ứng dụng thử nghiệm cross-domain cho mashup Và cuối cùng, phần tổng kết khóa luận phần tài liệu tham khảo ‐ 8 ‐ CHƯƠNG I CROSS-DOMAIN AJAX VÀ ỨNG DỤNG ĐỂ XÂY DỰNG WEB MASHUP 1.1 Giới thiệu chung Cross-Domain Ajax Hãy lấy ví dụ: tuyệt bạn lấy liệu từ trang từ điển để dùng trang web khác Điều địi hỏi trang cần mashup liệu bạn, phải thực cross-domain ajax Với nhiều ứng dụng sử dụng cơng nghệ ajax, tạo khả để gọi dịch vụ web từ javascript bạn Để thực cross-domain, có vài phương pháp phổ biến thông qua JavaScript: Proxy, JSON, Flash 1.1.1 XMLHttpRequest Đối tượng XMLHttpRequest trung tâm nhiều ứng dụng Ajax Nó đối tượng xác định API cung cấp chức cho script phía client chuyển đổi liệu client server Mặc dù khơng tính cần thiết, dịch vụ Outlook web-mail cho phép người download email, xem lịch, XmlHttpRequest bí Ajax H1.1: XmlHttpRequest với Ajax Ứng dụng Ajax sử dụng mẫu đối tượng XMLHttpRequest tạo request tới domain chúng định vị Điều sách bảo mật ‐ 9 ‐ cross-domain JavaScript sandbox tránh khỏi tổn thương crosssite Đối tượng XMLHttpRequest không cho phép gọi mã từ domain web server khác Hiện tại, mashup bao gồm việc gọi web service từ API tạo sẵn công ty Google, Flickr, Yahoo, Nó có nghĩa lời gọi ln phải tạo cross-domain, không bạn thực chúng 1.1.2 Chính sách Same-Origin Trình duyệt sử dụng cookie phương pháp để xác thực người sử dụng nhất, để thực giao diện phù hợp với người sử dụng Để cookie sử dụng với mục đích vậy, trình duyệt phải giữ cho cookie bí mật với site khác Do đó, cookie gửi site thiết lập chúng, sách biết đến gọi ‘Chính sách Same-Origin’ Nó có nghĩa – “chỉ site chứa vài thông tin trình duyệt đọc chỉnh sửa thơng tin đó” Điều có nghĩa phần lớn tải script từ domain sang domain khác Ví dụ hành động sau bị cấm: - Sử dụng XMLHttpRequest() đến domain khác (thành phần cốt lõi Ajax) - Truy cập sửa đổi DOM có thuộc tính src với domain khác - Truy cập sửa đổi window (hoặc tab) location khác Hạn chế same-origin policy JavaScript: điểu chỉnh truy cập inline frame (IFRAME) đối tượng XMLHttpRequest - IFRAME: sử dụng để download văn HTML phong phú bên nguồn, nội dung sang domain khác, trình duyệt khơng cho phép JavaScript trang chứa đọc sửa đổi văn bên frame ngược lại - XMLHttpRequest: sử dụng để download văn XML bất kỳ, khơng thể tải file từ domain khác Như trạng thái cross-domain script không ưu điểm cho phát triển web Mặc dù sách same-origin ngăn chặn lỗi xảy ra, lại hạn chế để nâng cấp (thậm chí giảm) cho hệ ứng dụng web để phát triển ‐ 10 ‐ H2.7: Kết nối đa web service Nếu trình duyệt có hạn chế frame access policy, cấu trúc khung top-mediator-unstrusted nên sử dụng, trình duyệt có chấp nhận frame access policy, cấu trúc khung top-unstrusted-access cần - Hạn chế frame truy cập Chúng ta tạo cấu trúc khung lặp cho web service gadget cần chèn Khi đó, sơ đồ hình 2.6 trực tiếp lắp vào đa unstrusted web services - Sự cho phép frame truy cập Để giữ frame khỏi giao thoa với khác, sử dụng domain dùng lần web service mà mashup cần tương tác VD: mashup cần chèn hai web service, sử dụng webservice1.mashup.com webservice2.mashup.com Cũng gồm bước sau: • Tạo mediator frame: mashup.com • Tạo unstrusted frame: webservice1.mashup.com (nhưng khơng để mediator frame, để top frame Do đó, mediator frame unstrusted frame anh em) • Tạo access frame: thêm access frame unstrusted frame, sau thay đổi domain tới mashup.com • Chuyển tiếp đối tượng truyền thông JavaScipt: Access frame đưa đối tượng vào container chia sẻ với unstrusted frame • Hủy: unstrusted frame vứt bỏ access frame, mà khơng cịn cần thiết Unstrusted frame có Subspace object cần liên lạc với top frame ‐ 30 ‐ • Lặp lại tất gadget: việc xử lý lặp lại cho tất unstrusted web service gadget cần chèn; mediator frame khơng cịn cần thiết bị xóa bỏ • Tải unstrusted content: tất gadget có kênh liên kết Subspace tới top frame, khơng truy cập tới khác Từ đó, cài đặt phrase hồn thành, top frame xử lý an toàn lệnh để tải unstrusted content, cross-domain tag, frame 2.5 Giải pháp hệ 2.5.1 FlashXMLHttpRequest Phương pháp thay việc sử dụng file crossdomain.xml, sử dụng FlashXMLHttpRequest proxy Nó sử dụng file SWF nhỏ để tạo request GET POST thay cho bạn Phương pháp tốt sử dụng crossdomain.xml đối tượng, thêm nữa, phiên SWF hỗ trợ hầu hết trình duyệt (và sớm so với Flash) Hạn chế: (khi sử dụng phiên với Flash) khả gửi nhận mã trạng thái HTTP header, xử lý HTTP Puts Deletes 2.5.2 ContextAgnosticXMLHttpRequest Có thể sử dụng để thay XMLHttpRequest lời gọi cross domain ContextAgnosticXMLHttpRequest có khả chuyển chi tiết bảo mật tới ứng dụng cho phép gọi dịch vụ cụ thể domain khác Một số trường hợp bản: Một domain cung cấp somehost.myFirstDomain.com lấy liệu XML qua HTTP từ somehost.mySecondDomain.com mở rộng, document cung cấp host1.mydomain.com lấy liệu XML qua HTTP từ host2.domain.com Request là: - Cho phép document thực HTTP request tới host ngồi - Khơng gửi cookie request - Loại bỏ set-cookie: thị HTTP response từ host nguồn ‐ 31 ‐ - Bỏ qua chứng thực HTTP nào, gửi cho thiết lập rõ ràng - Luôn gửi HTTP tham chiếu xác: request header có giá trị URI tài liệu thực request ‐ 32 ‐ CHƯƠNG III XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM CROSS-DOMAIN AJAX Tương tự mashup cho ứng dụng nghiệp vụ dựa thư viện API phổ biến có sẵn, thư viện Google Maps, để tạo nên ứng dụng web đơn giản dùng JavaScript kết hợp nhiều nguồn liệu Chương đưa nghiên cứu chủ yếu Google Maps API, kiến thức tìm hiểu cho việc xây dựng ứng dụng thử nghiệm H3.1: Mashup ứng dụng 3.1 Giới thiệu Google Maps Google Maps dịch vụ Google, cung cấp ứng dụng cơng nghệ hồn miễn phí dịch vụ đồ web, bao gồm Google Maps website (website Google Maps), Google Ride Finder(cho phép người lái xe xác định vị trí hướng, cách thức để đến đích), đồ nhúng website thông qua Google Map API … 3.2 Giới thiệu Google Maps API Google Maps API cho phép bạn nhúng Google Maps trang web bạn với mã JavaScript API cung cấp số tiện ích để thao tác đồ thêm nội dung tới đồ thông qua loạt dịch vụ, cho phép bạn tạo ứng dụng đồ website bạn ‐ 33 ‐ H3.2: Google Maps API 3.2.1 Maps API Basics Phần tử để bắt đầu hiểu Google Maps API application phần tử ‘map’ Ví dụ đơn giản sau hiển thị trang web chứa đồ 1000x500 với trung tâm Hà Nội, Việt Nam : H3.3: map_api_basic.html Trong thực hiện, có số điều cần lưu ý: • Thẻ ‘script’ thực việc chèn Maps API • Phần tử ‘div’ để chứa Map ‐ 34 ‐ • Hàm JavaScript để tạo đối tượng “map” • Chúng ta khởi động đối tượng ‘map’ từ kiện ‘onLoad’ thẻ ‘body’ Để hiểu sâu hơn, có bước sau: - Thực việc load Google Maps API Trang web bạn phải chứa script trỏ tới URL “http://maps.google.com/maps?file=api&v=2&key=yourkey” , chứa biểu tượng định nghĩa cần thiết cho sử dụng Google Maps API - Phần tử Map DOM Chúng ta tạo phần tử ‘div’ tham chiếu tới phần tử DOM trình duyệt (document object model) - Đối tượng – Gmap2 var map = new GMap2(document.getElementById("my_map ")); Ở tạo đối tượng ‘map’ sử dụng toán tử ‘’, đặc trưng đồ lớp Gmap2 Đối tượng class định nghĩa đồ trang web Khi bạn tạo đối tượng ‘map’ mới, bạn xác định nốt DOM trang (thường sử dụng phần tử ‘div’) container cho đồ Sau tham chiếu tới phần tử thẻ ‘div’ thông qua document.getElementById() - Khởi động map map.setCenter(new GLatLng(37.4419, -122.1419), 13); map.setUIToDefault(); ‐ 35 ‐ Một tạo map qua hàm tạo Gmap2, phải khởi động Việc hồn thành với việc sử dụng hàm setCenter() Hàm setCenter() yêu cầu GlatLng tọa độ tham số độ phóng đại, ý hàm phải gửi trước tất hàm map, bao gồm thiết lập thuộc tính khác map Chúng ta gọi hàm setUIToDefault() để thiết lập giao diện đồ, bao gồm việc chuyển động quay phóng to - thu nhỏ, lựa chọn loại đồ, - Thực loading map Để đảm bảo đồ đặt trang sau trang load, thực hàm mà phần tử trang HTML nhận kiện onload Hàm Gunload() hàm chức thiết kế để ngăn rò rỉ nhớ - Vĩ độ Kinh độ Đối tượng GLatLng cung cấp chế cho phép bạn tham chiếu tới vị trí đồ Bạn xây dựng đối tượng GlatLng, thông qua tham số {vĩ độ, kinh độ} sử dụng đồ 3.2.2 Maps API Events Trong trình duyệt, tương tác người sử dụng chuột bàn phím tạo nên kiện lan truyền DOM Khi kiện kích hoạt, ‘event listeners’ nhận kiện thực chương trình tương ứng Google Maps API thêm vào mơ hình kiện định nghĩa kiện tùy thích cho đối tượng Maps API Sự kiện thêm vào: ‐ 36 ‐ H3.4: map_api_event.html - Event Listensers Để tạo thông báo kiện bạn nhấn chuột, sử dụng Gevent.addListener() Hàm sử dụng đối tượng, kiện để lắng nghe (ở ‘click’ chuột) hàm để tọi kiện xảy GEvent.addListener(map,"click", function(overlay,latlng) { if (latlng) { var myHtml = "The GLatLng value is: " + map.fromLatLngToDivPixel(latlng) + "" + " at zoom level " + map.getZoom(); map.openInfoWindow(latlng, myHtml); } }); Trong ví dụ trên, để chắn kiện ‘click’ xảy đồ việc kiểm tra biến ‘latlng’ Sau mở cửa sổ thơng tin cho việc click ‐ 37 ‐ 3.2.3 Maps API Controls Ở ví dụ thêm số phần tử cho phép tương tác người sử dụng qua đồ Chúng biết đến ‘controls’, lớp lớp ‘Gcontrol’ Bạn sử dụng số ‘controls’ mà Maps API xây dựng: • GLargeMapControl : điều chỉnh (cỡ lớn) cho quay/phóng tonhỏ, hiển thị bên trái map • GSmallMapControl : điều chỉnh (cỡ nhỏ) quay/phóng to-nhỏ, hiển thị bên trái map • GsmallZoomControl : điều chỉnh phóng to-nhỏ, hiển thị mức độ phóng map • GscaleControl : thang đo map • GmapTypeControl : button cho phép người sử dụng đảo chiều loại map (giống Bản đồ Vệ tinh) • GOverviewMapControl : đồ rút gọn góc trái hình - MapType Controls Mặc định, Google Maps API cung cấp loại map: • G_NORMAL_MAP : hiển thị map bình thường, đồ 2D Google Maps • G_SATELLITE_MAP : hiển thị đồ ảnh • G_HYBRID_MAP : hiển thị pha trộn ảnh tính bật ( đường, tên thành phố) Bạn thay đổi map sử dụng Gmap2.removeMapType() thêm chúng với Gmap2.addMapType() - Thêm Controls tới Map Bạn thêm controls tới map hàm addControl() Như ví dụ đưa thực nhiều lần việc thêm này: map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); ‐ 38 ‐ 3.2.4 Map Overlays Overlay đối tượng đồ gắn với vĩ độ/tung độ họ di chuyển kéo, phóng to-thu nhỏ map Overlays phản ánh đối tượng bạn thêm vào đồ để thiết kế điểm, đường vùng Maps API có số loại overlays: • Điểm map hiển thị sử dụng ‘markers’ – đối tượng lớp GMarker, thường hiển thị biểu tượng tùy thích • Đường map hiển thị sử dụng ‘polylines’ (tập điểm) – đối tượng lớp Gpolyline • Vùng map hiển thị ‘polygons’ (vùng với hình dạng bất kì) ‘ground overlays’ (vùng hình chữ nhật) • Map hiển thị sử dụng ‘tile overlay’ Bạn sửa đổi cách sử dụng GTileLayerOverlay tạo sử dụng GMapType Mỗi overlay thực giao diện Goverlay Overlay thêm vào đồ sử dụng Gmap2.addOverlay() xóa bỏ sử dụng GMap2.removeOverlay() Bạn nhìn thấy: H3.5: map_api_overlay.html - Markers ‐ 39 ‐ Markers xác định điểm map Chúng ta sử dụng G_DEFAULT_ICON để xác định icon tùy ý, GMarker cần GLatLng đối tượng tùy chọn GMarkerOptions biến - Marker di chuyển Ở ví dụ trên, thực cho marker nhận ‘click’ kéo đến ví trí Những kiện xảy marker: click, dragstart, drag, dragend Và để kiện có tác dụng, phải khởi động chúng GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("Marker " + letter); }); GEvent.addListener(marker, "dragstart" , function() { map.closeInfoWindow(); }); GEvent.addListener(marker, "dragend", function() { marker.openInfoWindowHtml("Bạn vừa di chuyển " + letter); }); - Icons Một số lượng image khác tạo nên icon Maps API Một Icons đơn giản dựa kiểu G_DEFAULT_ICON Bạn tạo icon từ kiểu cho phép bạn thay đổi nhanh chóng icon mặc định với vài thao tác - Polylines GPolyline bao tạo đường map Một GPolyline bao gồm chuỗi điểm tạo thành chuỗi đoạn liên kết điểm theo thứ tự, Ta vẽ đường map: ‐ 40 ‐ H3.6: map_api_polyline.html 3.2.5 Google Maps API Services - Geocoding Geocoding trình chuyển đổi địa vào tọa độ địa lý Google Maps API bao gồm Geocoding services mà truy cập trực tiếp qua HTTP Request cách sử dụng đối tượng GClientGeocoder Đối tượng GClientGeocoder - Geocoding Caches Chúng ta có kết (khi bạn chọn ‘Tokyo, Japan’ dialog box): H3.7: map_api_geocoding.html ‐ 41 ‐ KẾT LUẬN Mashup thực tạo nên lớp ứng dụng hiệu hữu ích mơi trường ứng dụng web Luận văn giúp hiểu tổng quan cross-domain giải pháp cho cross-domain ajax Đồng thời, luận nêu tính quan trọng cần thiết việc tìm hướng giải cross-domain, phục vụ cho mashup – lớp ứng dụng hữu ích giới web Cùng với việc nghiên cứu, khóa luận áp dụng lý thuyết vào để xây dựng lên ứng dụng cho mashup với đồ trực tuyến đơn giản hướng tới mục đích đề tài Chưa có phương pháp thật hiệu để gọi cross-domain sử dụng ajax, hướng phát triển cho việc nghiên cứu luận văn mong muốn phát phương pháp hiệu cho cross-domain Tiếp phát triển ứng dụng mashup để xây dựng website đặc trưng cho riêng ‐ 42 ‐ TÀI LIỆU THAM KHẢO [1] Collin Jackson Helen J.Wang (2007) Subspace: Secure Cross-Domain Communication for Web Mashups [2] Jesse Feiler - How to Everything with Web Mashups 2.0 [3] Jon Howell, Collin Jackson, Helen J.Wang Xiaofeng Fan MashupOS: Operating System Abstractions for Client Mashups [4] Head, Indigenous Studies Portal University of Saskatchewan Library (2007) - What’s a Mashup & Why Would I Want One? [5] AJAX vấn đề cross-domain http://www.javavietnam.org/javavn/mvnforum/viewthread_thread,15138 [6] API - http://www.programmableweb.com/apis [7] Cross-domain-ajax - http://code.google.com/p/cross-domain-ajax/ [8] Cross Domain AJAX: A quick summary http://snook.ca/archives/javascript/cross_domain_aj/ [9] Cross-domain AJAX - http://www.nhchau.com/blog/2008/06/01/2366cross-domain-ajax.htm [10] Calling Cross Domain Web Services in AJAX - http://www.simpletalk.com/dotnet/asp.net/calling-cross-domain-web-services-in-ajax/ [11] Giải vấn đề cross-domain AJAX - http://cntt.tv/nodes/show/217 [12] Introduction to Cross-Domain Ajax http://jimbojw.com/wiki/index.php?title=Introduction_to_Cross-Domain_Ajax [13] JSONRequest - http://www.json.org/JSONRequest.html [14] Make Mashups Talk Across Domains(2006) – http://www.devx.com/webdev/Article/30860 [15] Mashup cho ứng dụng nghiệp vụ http://www.viettotal.com/VietNews/CongngheWeb/tabid/88/CategoryID/1/New s/57/Default.aspx [16] Shaping the future of secure Ajax mashups (2007) – http://www.ibm.com/developerworks/library/x-securemashups/ [17] http://www.ebay.com/ [18] http://www.flickr.com/ [19] http://www.amazon.com/ [20] http://code.google.com/ ‐ 43 ‐ ‐ 44 ‐ ... số phương pháp cho việc cross-domain Và khóa luận ? ?Cross-domain ajax cho ứng dụng mashup? ?? trình bày nghiên cứu tổng thể mashup cross-domain ajax, cách thức để thực crossdomain ajax Tiếp việc... Một số ứng dụng để xây dựng Web Mahup Dưới đây, tham khảo số ứng dụng để xây dựng Web Mashup Thường ứng dụng web dùng mashup kết hợp đồ với nhiều loại liệu từ nhiều web H1.6: Ứng dụng cho mashup. .. sở cho việc xây dựng ứng dụng thử nghiệm cross-domain cho mashup Và cuối cùng, phần tổng kết khóa luận phần tài liệu tham khảo ‐ 8 ‐ CHƯƠNG I CROSS-DOMAIN AJAX VÀ ỨNG DỤNG ĐỂ XÂY DỰNG WEB MASHUP