Báo Cáo Tìm hiểu XML WEBSERVICES

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    I. Tìm hiểu về Web services:
    1. Web Services là gì?
    Web services là một hệ thống phần mềm được thiết kế hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet. Web services là một chuẩn mới để xây dựng và phát triển ứng dụng phân tán có khả năng làm việc trên mọi hệ điều hành, mở rộng khả năng phối hợp giữa các ứng dụng, có thể tái sử dụng, tăng cường giao tiếp giữa client và server thông qua môi trường web.
    Web services 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 các 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 web service để chuyển đổi dữ liệu thông qua mạng theo cách giao tiếp tương tự bên trong một máy tính.
    Công nghệ xây dựng Web services không phải là các công nghệ mới, mà là sự kết hợp của các công nghệ đã có như XML (Extensible Makup Language), SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), UDDI (Universal Description, Discovery and Intergration) Web service dùng SOAP, một giao thức độc lập với các nền tảng dùng XML để trao đổi thông tin, để giao tiếp với các hệ thống không đồng nhất bằng cách trao đổi thông điệp (exchanging messages) nhờ đó web services có khả năng hoạt động “xuyên qua” tường lửa.
    1.2 Đặc điểm của Web Services :
    1.2.1 Đặc điểm chung :
    - Web Services 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.
    - Phần lớn kỹ thuật của web services được xây dựng dưa trên mã nguồn mở và được phát triển theo các chuẩn đã được công nhận.
    - 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 được triển khai đều hoạt động theo mô hình client-server.
    Ngày nay web services được sử dụng rất nhiều trong những lĩnh vực khác nhau
    của cuộc sống như:
    - Web services có ứng dụng thực tế rộng rãi trong các lĩnh vực dịch vụ chọn lọc và phân loại tin tức, ứng dụng cho các dịch vụ du lịch, bán hang qua mạng, tỉ giá, chứng khoán, các dịch vụ giao dịch trực truyến như đặt vé máy bay, tàu xe.
    - Tìm kiếm các thông tin về các khách sạn ở các thành phố hoặc các trung tâm để liên hệ đặt phòng theo yêu cầu của khách hàng.
    - Dịch vụ chọn lọc và phân loại tin tức: Là những hệ thống thư viện kết nối đến các web portal để tìm kiếm các thông tin từ các nhà xuất bản có chứa những từ khóa muốn tìm.
    - Dịch vụ hiển thị danh sách đĩa nhạc dành cho các công ty thu thanh.
    - Ứng dụng đại lý du lịch có nhiều giá vé đi du lịch khác nhau do có chọn lựa phục vụ của nhiều hãng hàng không.
    - Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện web.
    - Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: Dự báo thời tiết, thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu
    1.2.2. Lợi ích của Web services:
    Web services cung cấp một số lợi ích về công nghệ và kinh doanh, trong số đó bao gồm:
    1. Tương kết ứng dụng và dữ liệu
    2. Thiết kế linh hoạt
    3. Tái sử dụng mã nguồn
    4. Tiết kiệm chi phí
    Với các đặc trưng vốn có của mình như độc lập về nền tảng, công nghệ cũng như việc dựa trên các chuẩn mở giúp cho việc giao tiếp giữa các ứng dụng trở nên dễ dàng thông qua việc sử dụng web service. Với lợi thế này, các ứng dụng với các nền tảng, công nghệ, cấu trúc dữ liệu khác nhau có thể giao tiếp trao đổi thông tin cũng như cộng tác với nhau một cách dễ dàng.
    Web services rất linh hoạt trong thiết kế. Chúng có thể được truy xuất bởi con người thông qua giao diện web browser hoặc có thể được truy xuất bởi một ứng dụng khác và thậm chí là một web services khác. Một client có thể truy xuất và kết hợp dữ liệu từ nhiều web services khác nhau cho dù các web service này có thể chạy trên các nền tảng hệ thống không tương thích. Bởi vì hệ thống trao đổi thông tin thông qua web services nên sự thay đổi trong các thành phần (ví dụ như sự thay đổi đến cơ sở dữ liệu) không gây ảnh hưởng đến bản thân web services.
    Tái sử dụng mã nguồn là một trong các lợi thế bắt nguồn từ khả năng tương kết và sự mềm dẻo của web services. Một web services có thể được sử dụng bởi nhiều client hoặc có thể được kết hợp lại để thực hiện một mục tiêu kinh doanh. Thay vì phải xây dựng một hệ thống mới thì doanh nghiệp có thể sử dụng lại các web services và kết hợp chúng theo mục tiêu của mình.
    Tất cả các lợi ích trên giúp cho doanh nghiệp giảm chi phí cũng như giảm thời gian triển khai các ứng dụng của mình. Hơn thế nữa việc web services dựa trên các chuẩn mở giúp giảm chi phí đầu tư, giảm thời gian tiếp cận công nghệ hơn các hệ thống độc quyền khác. Cuối cùng, việc xây dụng web services có lợi thế về việc tận dụng giao thức và cơ sở hạ tầng có sẵn trong mỗi doanh nghiệp.

    1.3: Ưu điểm và nhược điểm của Web Services :
    + Ưu điểm :


    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 các nền tảng khác nhau.
    Sử dụng các giao thức và các chuẩn mở. Giao thức và định dạng dữ liệu theo dạng text, thuận lợi cho người phát triển ứng dụng.
    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 đa 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 web services.
    Tạo mối 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 hệ thố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.
    + Nhược điểm :


    Có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt.
    Cần quan tâm hơn nhiều về vấn đề bảo mật.
    Các giao thức được thay đổi và nâng cấp, đòi hỏi ứng dụng của client phải được nâng cấp, thay đổi.
    2.Các thành phần của Dịch vụ Web:
    2.1. Ngôn ngữ XML - eXtensible Markup Language :
    Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B. Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn mở.
    Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất.
    2. 2 WSDL - Web Service Description Language :
    WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:
    - Tên dịch vụ.
    - Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web.
    - Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụ Web cộng với tên cho giao diện này).
    Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức kết nối) và phần thi hành mô tả thông tin truy xuất CSDL. Cả hai phần này sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch vụ. Giao diện của một dịch vụ Web được miêu tả trong phần này đưa ra cách thức làm thế nào để giao tiếp qua dịch vụ Web. Tên, giao thức liên kết và định dạng thông điệp yêu cầu để tương tác với dịch vụ Web được đưa vào thư mục của WSDL.
    WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụ Web qua Internet.Một client khi kết nối tới dịch vụ Web có thể đọc WSDL để xác định những chức năng sẵn có trên server.Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL.
    2.3 Universal Description, Discovery, and Integration (UDDI):
    Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ.UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web.
    - Cấu trúc UDDI :
    + Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng Những thông tin này cho phép các đối tượng khác xác định được dịch vụ.
    + Trang vàng - Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó.
    + Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web.
    + Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng.
    2.4 SOAP - Simple Object Access Protocol:
    SOAP là một giao thức giao tiếp có cấu trúc như XML.Nó được xem là cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hành khác nhau.SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP.
    Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những thông điệp trả lời tới client.Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.
    Cấu trúc một thông điệp theo dạng SOAP:
    Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau:
    - Phần tử gốc - envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản XML như là một thông điệp SOAP.
    - Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản. Header còn có thể mang những dữ liệu chứng thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác.
    - Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tin yêu cầu và thông tin được phản hồi.
    - Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong qúa trình xử lý thông điệp.
    Kiểu truyền thông: Có 2 kiểu truyền thông:
    - Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng. Kiểu này được khai thác bởi nhiều dịch vụ Web.
    - Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn.
    Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date ) hay những kiều phức tạp hơn như struct, array, vector Định nghĩa cấu trúc dữ liệu SOAP được đặt trong namespace SOAP-ENC.
    Mã hóa: Giả sử service rquester và service provider được phát triển trong Java, khi đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngược lại, bởi vì định dạng cho Web Service chính là XML. Bất kỳ một môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java - bảng đó được gọi là SOAPMappingRegistry. Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóa thì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó.
    http://phpvn.org/index.php?topic=301.0


    http://bcdonline.net/su-dung-co-ban-web-service-trong-asp-net/
     

    Các file đính kèm:

Đang tải...