2 Khái niệm cổ ng thông tin (Portal)
4.3 Giới thiệu Webservice
Với Web Service, công nghệ chủ yếu dựa vào XML\SOAP, các hệ thống các ứng dụng có thểliên tác nhau một cách dễdàng. Chúng ta có thểhình dung có một nhà sản xuất phần mềm xây dựng một dịch vụ web như dịch Anh Việt chẳng hạn và công bố lên một nơi cho đăng ký dịch vụ(giống như một chợbán dịch vụ). Sau đó chúng ta tìm đến "chợ" đó, hỏi mua và nhận được một bản mô tảvề dịch vụ cho biết cách sử dụng dịch vụ như thếnào. Cuối cùng là viết chương trìnhđểsửdụng nó.
Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer). Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệthống đóng gói và hệthống kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính. Tuy nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển và lớn mạnh của Internet, dịch vụWeb thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống. Chúng ta sẽ xem xét các dịch vụWeb từ mức khái niệm đến cách thức xây dựng.
4.3.1 Khái niệm webservice
Dịch vụ web (tiếng Anh: Web service) là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữliệu và các mạng máy tính khácđểtạo thành một cơ cấu tính toánảo mà người sử dụng có thểlàm việc thông qua các trình duyệt mạng.
Bản thân các dịch vụ này sẽchạy trên các máy phục vụ trên nền Internet chứ không phải là các máy tính cá nhân, do vậy có thểchuyển các chức nǎng từ máy tính cá nhân lên Internet. Người sử dụng có thểlàm việc với các dịch vụthông qua bất kỳloại máy nào có hỗtrợ Web Service và có truy cập Internet, kểcảcác thiết bịcầm tay. Do đó các Web Service sẽ làm Internet biến đổi thành một nơi làm việc chứ không phải là một phương tiện đểxem và tải nội dung.
Điều này cũng sẽ đưa các dữ liệu và cácứng dụng từ máy tính cá nhân tới các máy phục vụ của một nhà cung cấp dịch vụWeb. Các máy phục vụ này cũng cần trở thành nguồn cung cấp cho người sử dụng cảvề độ an toàn, độ riêng tư và khảnǎng truy nhập.
Các máy phục vụ ứng dụng sẽ là một phần quan trọng của các Web Service bởi vì thường thì các máy phục vụnày thực hiện các hoạt độngứng dụng phức tạp dựa trên sự chuyển giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sởdữ liệu của một tổchức nào đó.
Một số nhà quan sát ngành công nghiệp này cho rằng Web Service không thực sự là một khái niệm mới và phản ánh một phần không nhỏkhái niệm mạng máy tính vốn đã trở nên quen thuộc trong nhiều nǎm qua. Web Service chủyếu dựa trên một lời gọi thủ tục từ xa không chặt chẽ mà có thểthay thế các lời gọi thủ tục từ xa chặt chẽ, đòi hỏi các kết nối API phù hợp đang phổ biến hiện nay. Dịch vụ Web sử dụng XML chứ không phải C hay C++, đểgọi các quy trình.
Tuy nhiên các chuyên gia khác lại cho rằng Web Service là một dạng API dựa trên phần mềm trung gian, có sử dụng XML để tạo phần giao diện trên nền Java 2 (J2EE) hay các server ứng dụng .NET. Giống như các phần mềm trung gian, Web Service sẽ kết nối serverứng dụng với các chương trình khách hàng.
a) Đặc điểm
Dịch vụ Web cho phép client và server tương tác được với nhau ngay cảtrong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thểchạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này.
Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đãđược công nhận, ví dụ như XML.
Một Dịch vụWeb bao gồm có nhiều mô-đun và có thểcông bốlên mạng Internet. Là sựkết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụthểvà cơ sở hạtầng Web, đưa ra những lợi ích cho cảdoanh nghiệp, khách hàng, những nhà cung cấp khác và cảnhững cá nhân thông qua mạng Internet.
Mộtứng dụng khi được triển khai sẽhoạt động theo mô hình client- server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net…
Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thểáp dụng và tích hợp dịch vụWeb là khá rộng lớn như dịch vụchọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụdu lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua
mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe…
Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổvà phát triển không ngừng cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quảbởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát triển và tích hợp cácứng dụng với dịch vụ Web đang được quan tâm phát triển là điều hoàn toàn dễhiểu
b)Ưu điểm
+ Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau.
+ Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễdàng hiểu được.
+ Nâng cao khả năng tái sửdụng.
+ Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụWeb.
+ Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệthống, dễdàng cho việc phát triển các ứng dụng phân tán.
+ Thúc đẩy hệthống tích hợp, giảm sự phức tạp của hệthống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.
c) Nhược điểm
+ Những thiệt hại lớn sẽxảy ra vào khoảng thời gian chết của Dịch vụWeb, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành.
+ Có quá nhiều chuẩn cho dịch vụWeb khiến người dùng khó nắm bắt. + Phải quan tâm nhiều hơn đến vấn đềan toàn và bảo mật.
4.3.2 Kiến trúc webservice
Dịch vụWeb gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration). Hình 1 mô tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăngký và khám phá dịch vụ Web đãđược miêu tảcụthểtrong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP
yêu cầu một dịch vụ Web. Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP.
Chồng giao thức dịch vụWeb là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính: - Dịch vụ vận chuyển (Service Transport): có nhiệm vụtruyền thông điệp giữa cácứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mởrộng (Blocks Extensible Exchange Protocol- BEEP).
- Thông điệp XML: có nhiệm vụgiải mã các thôngđiệp theo định dạng XML đểcó thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụnày là XML- RPC, SOAP và REST.
- Mô tảdịch vụ: được sửdụng đểmiêu tảcác giao diện chung cho một dịch vụWeb cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Dịch vụ Web sẽsử dụng ngôn ngữ này để truyền tham sốvà các loại dữliệu cho các thao tác và chức năng mà dịch vụWeb cung cấp.
- Khám phá dịch vụ: tập trung dịch vụvào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thểdễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một dịch vụWeb cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sửdụng đểthực hiện công việc này.
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệchuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML. Ngoài ra, để các dịch vụcó tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy, Security, Transaction, Management.
4.3.3Ứng dụng webservice
Tôi sử dụng webservice cho module vẽbiểu đồ chứng khoán và module cung cấp kết quảgiao dịch chứng khoán, thống kê top các cổ phiếu tăng giá nhiều nhất, top các cổ phiếu giảm giá nhiều nhất trên 2 sàn HOSTC và HASTC. Việc sử dụng webservice sẽ giúp tôi đạt được 1 sốlợi ích chính sau:
- Giảm khối lượng xử lý trong 1 máy (một máy A từ xa xử lý sau đó trảvềdữ liệu để máy B sửdụng sau đó hiển thị kết quả)
- Triển khai hệ thống tới một công ty chứng khoán mới mà công ty chứng khoán đó chưa có dữ liệu thì có thểsử dụng webservice để hiển thị dữ liệu mà vẫn đảm bảo đầy đủdữ liệu.
- Khi sử dụng webservice thì 2 phần mềm viết bằng 2 ngôn ngữ khác nhau vẫn có thể giao tiếp với nhau, hoặc 2 nền tảng khác nhau cũng vẫn có thểgiao tiếp với nhau (Ví dụJava với .Net), thậm chí 2 phần mềm viết trên 2 hệ điều hành khác nhau vẫn có thể giao tiếp với nhau (Ví dụWindow với Linux)
4.4 Giới thiệu Ajax
4.4.1 Khái niệm Ajax
a) Lịch sửAjax
Công nghệ Ajax gốc được Microsoft phát minh từ thập niên 90 trên nền ngôn ngữ JavaScript và nhiều chuẩn web khác.
b) Khái niệm Ajax
Ajax là từ viết tắt của Asynchronous JavaScript and XML. Ajax không phải là một công nghệ đơn nhất mà nó là tập hợp của các công nghệtạo nên một cách tiếp cận mới trong viêc thiết kế web. Ý nghĩa của ajax là tạo một trang web có sử phản ứng nhanh
hơn khi có sư thay đổi dữ liệu. Công nghệajax sẽgiúp cho toàn bộtrang web không bị reload lại khi có sự thay đổi.
Ajax bao gồm các công nghệ như:
- HTML / XHTML : được sử dụng đểxây dựng giao diện của trang web. - CSS : Cung cấp định dạng cho XHTML
- DOM : Chức năng của việc load trang web - XML : Định dạng của việc trao đổi dữliệu - XSTL : XML thành XHTML
- XMLHttp : môi trường truyền thông tin chính
- JavaScript : Ngôn ngữ kịch bản thường được dung cho công cụAjax.
Trên thực tế, tất cả các công nghệ này đều được sử dụng trong ajax nhưng có 3 công nghệ chính bắt buộc phải sử dụng: HTML/XHTML, DOM, XML và JavaScript. HTML/XHTML là sự cần thiết để hiện thị thông tin, trong khi DOM là sư cần thiết để thay đổi của một trang XHTML không có reload nó. Phần cuối cùng, JavaScript, cần thiết để bắt đầu sự truyền thong giữa client và server và vân dụng DOM để cập nhật trang web. Các công nghệ khác được sử dụng để hỗ trợ cho Ajax solutions, nhưng không cần thiết.
c) Ajax hoạt động nhưthếnào?
Điểm khác biệt cơ bản nhất của công nghệnày là việc xử lý thông tin được thực hiện trên máy thân chủ (Client) thay vì máy phục vụ (Server) như cách truyền thống. Máy chủchỉlàm một việc đơn giản là nhận thông tin từmáy khách và trảcác dữ liệu vềcho máy khách. Máy khách xử lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển vềmáy chủrồi nhận dữliệu từ máy chủvà xử lý đểhiển thị cho người dùng.
Từ lâu, mọi người vẫn tưởng tượng ứng dụng máy tính rồi sẽ được lưu và chạy hoàn toàn trên web thay vì nằm bó buộc trong ổ cứng máy tính. Dù vậy, điều đó vẫn chưa xảy ra vì ứng dụng web bị hạn chế bởi nguyên lý rằng tất cả các thao tác phải được thực hiện thông qua HTTP (HyperText Transfer Protocol – Giao thức truyền tải qua siêu liên kết). Những hoạt động của người sử dụng trên trang web sẽtạo ra một yêu cầu HTTP tới server. Máy chủsẽthực hiện một sốkhâu sử lý như lấy lại tài liệu, tính toán, kiểm tra sự hợp lệcủa thông tin, sửa đổi bộnhớ, sau đó gửi lại một trang HTML hoàn chỉnh tới máy khách. Vềmặt kỹthuật, phương pháp này nghe có vẻhợp lý nhưng cũng khá bất tiện và tốn thời gian, bởi khi server đang thực hiện vai trò của nó thì người dung phải chờ đợi server thực hiện xong.
Đểkhắc phục hạn chếtrên, các chuyên gia phát triển giới thiệu hình thức trung gian– cơ chếsửlý Ajax giữa máy khách và máy chủ. Điều này giống như việc tăng thêm một lớp giữa cho ứng dụng để giảm bớt quá trình “đi lại” của thông tin và giảm thời gian phản ứng. Thay vì phải tải lại (refresh) toàn bộ môt trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác. Vì thế, khi duyệt một trang hỗ trợ Ajax,người sử dụng sẽkhông bao giờthấy một trang web trống và biểu tượng đồng hồ cát - dấu hiệu cho thấy máy chủ đang thực hiện nhiệm vụ.
Khi một ứng dụng có hỗ trợ Ajax và người dùng thao tác trên nó thì nó sẽ hoạt động như sau:
- Ajax thực hiện tương tác với máy chủ bằng cách sử dụng đối tượng XMLHttpRequest, nhận kết quả về dưới dạng XML và phân tích kết quả bằng công nghệDOM.
-Tương tác giữa Ajax và giao diện người dùng được thực hiện thông qua các mã Javascript và XHTML + CSS.
Một trong những điểm mấu chốt của công nghệAjax là bạn không tương tác trực tiếp với máy chủ như cách truyền thống mà là qua một lớp trung gian của Ajax. Vậy khi thao tác qua một lớp trung gian thì sẽ làm cho cơ chế hoạt động chậm hơn nữa quá trình tương tác? Thắc mắc trên là hoàn toàn có lý, tuy nhiên, thực tế lại ngược lại: sử dụng Gmail bạn có cảm giác mọi thứ nhanh hơn. Lý do là:
1) Không phải lúc nào bạn cũng cần phải tương tác với máy chủ. Như trong trường hợp của Gmail, một khi giao diện của Gmail đã được tải về xong (để ý khoảng thời gian ngắn từ khi bạn đăng nhập cho đến khi giao diện của Gmail xuất hiện) thì những tác vụ