Giao thức trong Web Service

Một phần của tài liệu Hệ thống quản lý dữ liệu phổ cập tiểu học dựa trên kiến trúc hướng dịch vụ (Trang 29)

Simple Object Access Protocol (SOAP) là một protocol giao tiếp dùng trong Web Service được xây dựng dựa trên XML. SOAP được sử dụng để đặc tả và trao đổi thông tin về các cấu trúc dữ liệu cũng như các kiểu dữ liệu giữa các thành phần trong hệ thống.

Sử dụng SOAP, ứng dụng có thể yêu cầu thực thi phương thức trên máy tính từ xa mà không cần quan tâm đến chi tiết về nền tảng cũng như các phần mềm trên máy tính đó.

 Đặc điểm giao thức trong Web Service

- Khả năng mở rộng (Extensible): cung cấp khả năng mở rộng phục vụ cho nhu cầu đặc thù của ứng dụng và nhà cung cấp. Các chức năng về bảo mật, tăng độ tin cậy có thể đưa vào phần mở rộng của SOAP. Các nhà cung cấp dịch vụ khác nhau, tùy vào đặc điểm hệ thống của mình có thể định nghĩa thêm các chức năng

- mở rộng nhằm tăng thêm lợi thế cạnh tranh cũng như cung cấp thêm tiện ích cho người sử dụng.

- Có thể hoạt động trên các giao thức mạng đã được chuẩn hóa (HTTP, SMTP, FTP, TCP...).

- Độc lập với nền tảng, ngôn ngữ lập trình được sử dụng. 2.2.3. Truyền thông điệp trong Web Service

Hình dưới đây sẽ mô tả giao tiếp của một ứng dụng với một Web Service được thực hiện qua thông điệp SOAP sử dụng giao thức mạng HTTP. Ứng dụng sẽ

Bùi Văn Quý CH CNTT 2013 30 đặc tả yêu cầu thông điệp sử dụng SOAP và thông qua giao thức mạng gửi đến cho Web Service. Web Service sẽ nhận và phân tích yêu cầu sau đó trả về kết quả thích hợp.

Hình 2.9: Thông điệp sử dụng SOAP ([10])  Một thông điệp SOAP bao gồm các thành phần sau:

- Protocol Header: cho biết thông tin về các chuẩn giao thức được sử dụng.

- SOAP Envelop: thông tin chính của thông điệp.

- SOAP Header: chứa các SOAP header.

- SOAP body: thông tin về name và data được đặc tả dưới dạng XML.

- Ngoài ra còn có trường lỗi được dùng để gửi các Web Service exception.

Hình 2.10: Cấu trúc thông điệp của SOAP

Sau đây là ví dụ về SOAP message, trong đó message request được sử dụng để yêu cầu Web Service thực hiện phương thức „int Dem_So_Chu_Ho‟ nhằm lấy về số lượng chủ hộ trong toàn trường. Thông điệp yêu cầu sẽ truyền đối số là 1(1 ký hiệu cho trường tiểu học Đặng Lễ) trong phần SOAP body.

Bùi Văn Quý CH CNTT 2013 31 Mô tả Request bằng ngôn ngữ WSDL (Web Service Description Language):

Thông điệp trả lại mang thông tin kết quả trả về trong phần body. Kết quả của lấy số chủ hộ với đối số là 1 (được truyền bởi message request) là 246 chủ hộ. Mô tả Reponse bằng ngôn ngữ WSDL

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP- ENC=http://schemas.xmlsoap.org/soap/encoding/ xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1: Dem_So_Chu_Ho xmlns:ns1="urn:MySoapServices"> <param1 xsi:type="xsd:int">123</param1> </ns1: Dem_So_Chu_Ho > </SOAP-ENV:Body> </SOAP-ENV:Envelope> <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1: Dem_So_Chu_HoResponse xmlns:ns1="urn:MySoapServices" SOAP-ENV: encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:int">246</return> </ns1: Dem_So_Chu_HoResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Bùi Văn Quý CH CNTT 2013 32 2.2.4. Ưu nhược điểm của Web Service

 Ưu điểm

- Web Service 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, 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ụ được đóng gói thành các module trong giao diện Web Service.

- 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.

 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 Web Service, 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 Web Service khiến người dùng khó nắm bắt. (adsbygoogle = window.adsbygoogle || []).push({});

- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

2.3. Tích hợp SOA và Web Service vào hệ thống quản lý dữ liệu phổ cập tiểu học 2.3.1. SOA và ứng dụng Web Service 2.3.1. SOA và ứng dụng Web Service

Web Service là một công nghệ rất phù hợp để thực hiện một dịch vụ theo định hướng kiến trúc. Dựa trên các tiêu chuẩn XML, SOA và Web Service có thể được phát triển như là thành phần ứng dụng lỏng sử dụng bất kỳ ngôn ngữ lập trình, bất kỳ giao thức, hoặc bất kỳ nền tảng. Điều này tạo điều kiện việc cung cấp các ứng dụng như một dịch vụ có thể truy cập vào bất cứ ai, bất cứ lúc nào, ở vị trí nào, và sử dụng bất kỳ nền tảng.

Điều quan trọng là chỉ ra rằng các Web Service không phải là công nghệ duy nhất có thể được sử dụng để thực hiện một SOA. Nhiều tổ chức đã thực hiện thành

Bùi Văn Quý CH CNTT 2013 33 công kiến trúc hướng dịch vụ sử dụng các công nghệ khác như CORBA, Java RMI, DCOM.

Web Service cũng đã được sử dụng bởi những người khác để thực hiện các kiến trúc không được phục vụ theo định hướng. Đặc điểm chính của SOA là tách rời phần giao tiếp với phần thực hiện dịch vụ. Điều này cho phép chúng ta liên tưởng đến một công nghệ được đề cập nhiều hiện nay là Web Service. Web Service cho phép truy cập thông qua định nghĩa giao thức và giao tiếp.

Về cơ bản, SOA là kiến trúc phần mềm phát xuất từ định nghĩa giao tiếp và xây dựng toàn bộ mô hình ứng dụng như là mô hình các giao tiếp, hiện thực giao tiếp và phương thức gọi giao tiếp. Giao tiếp là trung tâm của toàn bộ triết lý kiến trúc này.

Dịch vụ và module phần mềm nghiệp vụ được truy cập thông qua giao tiếp, thường theo cách thức yêu cầu đáp trả. Ngay cả với yêu cầu dịch vụ một chiều thì nó vẫn là yêu cầu trực tiếp có chủ đích từ một phần mềm này đến một phần mềm khác. Một tương tác định hướng dịch vụ luôn bao hàm một cặp đối tác là nguồn cung cấp dịch vụ và khách hàng sử dụng dịch vụ.

2.3.2. SOA và Web Service trong vấn đề tích hợp hệ thống

Web Service là những thành phần ứng dụng, giao tiếp bằng cách sử dụng giao thức mở chứa đựng và mô tả chính nó, có thể được phát hiện bằng cách sử dụng UDDI và có thể được sử dụng bởi ứng dụng khác khác nhau. Web Service hoạt động dựa trên nền tảng là XML và HTTP.

Web Service = XML + transport protocol (such as HTTP)

XML cung cấp một ngôn ngữ mà có thể được sử dụng giữa các nền tảng và ngôn ngữ lập trình khác nhau và vẫn thể hiện thông điệp và chức năng phức tạp, các giao thức HTTP là giao thức Internet được sử dụng nhiều nhất.

Hình dưới đây sẽ thể hiện ứng dụng Web Service vào hệ thống không phụ thuộc vào ngôn ngữ lập trình cũng như môi trường lập trình và tái sử dụng dịch vụ ở các hệ thống khác nhau. Ứng dụng mobile sử dụng java, ứng dụng sử dụng java kết nối tới hệ thống phổ cập tiểu học sử dụng Web Service trên nền DotNet trong khi ứng dụng DotNet lại kết nối hệ thống phổ cập trung học cơ sở sử dụng Web Service chạy trên nền J2EE.

Bùi Văn Quý CH CNTT 2013 34 Hình 2.11: Tích hợp Web Service trong SOA ([1])

Như vậy, sử dụng Web Service cho việc tích hợp SOA giúp ứng dụng đạt được những mục tiêu:

- Thông qua các chuẩn công nghiệp. Các chuẩn này gồm Web Service với các định nghĩa thành phần chuẩn công nghiệp cho XML.

- Sử dụng được những phần mềm thương mại đã xây dựng sẵn nhiều nhất có thể. Phần mềm phải cung cấp các kênh giao tiếp cho Web Service.

- Đóng gói các ứng dụng cho phép kế thừa với giao diện đúng theo chuẩn công nghệ chung. Các Web Service đều phải được sử dụng thông qua giao diện này.

- Sử dụng dữ liệu và tầng dữ liệu độc lập nằm giữa các ứng dụng để ẩn đi cấu trúc dữ liệu bên dưới. Mọi tương tác với dữ liệu đều phải thông qua Web Service. 2.4. Quy trình phát triển hệ thống

2.4.1. Thách thức khi phát triển hệ thống theo hướng dịch vụ

Cũng như các phương pháp phát triển phần mềm khác, để xây dựng được một hệ thống theo hướng dịch vụ cũng phải trải qua các giai đoạn tương tự. Tuy vậy, dù những lợi ích đạt được từ hệ thống SOA là rất lớn nhưng việc triển khai một hệ thống SOA không phải là điều dễ dàng. Từ mô hình tính toán tập trung sang mô

Bùi Văn Quý CH CNTT 2013 35 hình phân tán client server, rồi sau đó là kiến trúc dựa trên nền tảng Web và ngày nay quá trình này vẫn tiếp tục. Chúng ta đang ở thời kỳ quá độ sang mô hình tính toán dựa trên dịch vụ là kiến trúc hướng dịch vụ. Kiến trúc này ngày nay cũng đã và đang áp dụng và phát triển cho nhiều doanh nghiệp trên thế giới. Các doanh nghiệp phát triển phần mềm trong giáo dục cũng dần phát triển theo kiến trúc hướng dịch vụ hoặc kiến trúc phù hợp để đáp ứng nhu cầu thực tế. Nhưng để xây dựng và triển khai được hệ thống thì vẫn gặp phải một số vấn đề trở ngại:

 Xác định dịch vụ

Dịch vụ là gì? chức năng nghiệp vụ nào cần được cung cấp bởi một dịch vụ? Việc xác định dịch vụ và quyết định đối tượng cung cấp dịch vụ một cách thích hợp, hiệu quả là giai đoạn quan trọng và đầu tiên trong một giải pháp hướng dịch vụ  Phân bổ dịch vụ

Đặt dịch vụ ở vị trí nào trong hệ thống? Các dịch vụ thường hoạt động dựa trên các thực thể nghiệp vụ. Các đối tượng này được lưu và quản lí trong hệ thống. Vị trí của các thực thể này cũng là vị trí tốt nhất để đặt dịch vụ. Tuy nhiên bởi đặc tính của hệ là phân tán nên các đối tượng này phân bố rải rác ở nhiều vị trí và có thể một đối tượng được quản lí ở nhiều nơi. Vì vậy đồng bộ dữ liệu giữa các hệ thống trở nên là một yêu cầu quan trọng. Trong môi trường như thế thì dịch vụ sẽ được đặt ở đâu.

 Xác định miền dịch vụ

Làm sao gom nhóm các dịch vụ thành các miền luận lý (logic domain) việc phân loại gom nhóm các dịch vụ thành các miền luận lý sẽ đơn giản hóa kiến trúc bởi sẽ giảm được số lượng các thành phần cần xây dựng. Việc định nghĩa các miền như thế cũng ảnh hưởng đến nhiều khía cạnh khác của kiến trúc hệ thống như cân bằng tải (load balancing), điều khiển truy cập (access control), sự phân chia theo chiều sâu hay chiều rộng của xử lý nghiệp vụ.

 Đóng gói dịch vụ

Làm sao có thể bao bọc các chức năng sẵn có của hệ thống cũ vào trong một dịch vụ.

Nếu hệ thống khi được thiết kế đã quan tâm và hỗ trợ vấn đề tích hợp với các hệ thống mới thì vấn đề này sẽ dễ dàng hơn. Tuy nhiên các hệ thống cũ này trước (adsbygoogle = window.adsbygoogle || []).push({});

Bùi Văn Quý CH CNTT 2013 36 đây được xây dựng theo mô hình kín, đóng gói trong đó chứa toàn bộ các thông tin về nguyên tắc và qui trình xử lý thì nay, khi được tích hợp, các thông tin này cần được chia sẻ và phân bố trong nhiều ứng dụng khác nhau.

 Kết hợp các dịch vụ

Làm sao để có thể tạo ra các dịch vụ tổng hợp. Nhu cầu kết hợp nhiều dịch vụ để đáp ứng được yêu cầu phức tạp từ đối tượng sử dụng là có thực. Vấn đề là làm sao kết hợp các dịch vụ này một cách hiệu quả, theo những qui trình với những rằng buộc phức tạp.

 Định tuyến dịch vụ

Làm sao để chuyển một yêu cầu từ một đối tượng sử dụng dịch vụ đến dịch vụ hay miền dịch vụ thích hợp? Một hệ thống SOA phải có tính độc lập địa chỉ cho đối tượng sử dụng các dịch vụ của hệ thống. Ngoài ra còn phải quan tâm đến vấn đề hiệu suất hoạt động của hệ thống vì việc định vị một dịch vụ là một quá trình cũng chiếm mất nhiều thời gian.

 Quản lý dịch vụ

Vấn đề quản lý và bảo trì các dịch vụ, việc tạo, xây dựng, theo dõi và thay đổi các dịch vụ như thế nào cho có hiệu quả? Làm sao để lựa chọn một chuẩn định dạng thông điệp trao đổi giữa các chuẩn? Làm sao có thể xây dựng một chuẩn định dạng dữ liệu mà mọi hệ thống đều có khả năng hiểu và xử lý? Ngoài các khó khăn trên mỗi tổ chức với mỗi đặc thù riêng của mình có thể sẽ phải đối diện với các vấn đề khác trong quá trình triển khai hệ thống.

2.4.2. Quy trình xây dựng hệ thống

Quy trình hệ thống đi qua 4 giai đoạn chính: mô hình hóa, lắp ghép, triển khai và quản lý. Các giai đoạn này đều dựa trên nền tảng của việc quản trị và các thực nghiệm.

 Giai đoạn mô hình hóa và thiết kế (Model)

- Thu thập các yêu cầu sử dụng dịch vụ.

- Mô hình hóa và mô phỏng hệ thống.

- Thiết kế từng dịch vụ ở mức cơ sở  Giao đoạn lắp ráp các dịch vụ (Assemble)

Bùi Văn Quý CH CNTT 2013 37

- Xây dựng và thử nghiệm

- Tổ hợp các dịch vụ

 Giai đoạn triển khai (Deploy)

- Tích hợp các nguồn nhân lực

- Tích hợp các tiến trình

- Quản lý và tích hợp thông tin.  Giai đoạn quản lí (Manage)

- Quản trị các ứng dụng và các dịch vụ

- Quản lí sự đồng nhất và tính tuân thủ.

- Giám sát các số liệu nghiệp vụ

 Ngoài ra còn có quản trị và các trải nghiệm thực tế (Governance and best practice), đây là công việc xuyên suốt trong cả qui trình vòng đời hệ thống.

- Tính toán về tài chính

- Sắp xếp nghiệp vụ công nghệ thông tin

- Điều khiển các tiến trình

Các thông tin thu thập được trong pha quản lý sẽ được cung cấp trở lại qui trình phát triển và giúp cải thiện quá trình xây dựng hệ thống, làm cho hệ thống hoàn chỉnh hơn. Có nghĩa, qui trình là một vòng lặp cho tới khi hệ thống hoàn chỉnh theo nhu cầu thay đổi của doanh nghiệp và khách hàng.

2.4.3. Các bước cơ bản xây dựng hệ thống

 Xây dựng hệ thống SOA trải qua 6 pha sau đây: (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.12: Các bước cơ bản trong xây dựng hệ thống SOA

Bùi Văn Quý CH CNTT 2013 38 Đây là giai đoạn đầu để quyết định phạm vi của hệ thống SOA. Hệ thống gồm những dịch vụ nào? Tầng dịch vụ là được lược đồ hóa ra (mapped out), và chia dịch vụ ra thành các mô hình, bao gồm hệ thống SOA sơ bộ.

- Bước 2: Thiết kế hướng dịch vụ (service-oriented design)

Đây là giai đoạn có sự kết hợp chặt chẽ về sự thỏa hiệp của doanh nghiệp và nguyên lý hướng dịch vụ thành quy trình thiết kế dịch vụ. Trong pha này, làm cho người thiết kế dịch vụ phải đương đầu với giải quyết vấn đề then chốt đó là thiết lập nên những ranh giới thông qua các dịch vụ. Các tầng dịch vụ là được thiết kế trong giai đoạn này có thể bao gồm tầng orchestrantion, các kết quả của nó là trong sự xác

Một phần của tài liệu Hệ thống quản lý dữ liệu phổ cập tiểu học dựa trên kiến trúc hướng dịch vụ (Trang 29)