Quy trình thiết kế hệ thống theo kiến trúc hướng dịch vụ

MỤC LỤC

Thiết kế theo kiến trúc hướng dịch vụ

Có khả năng cấu hình lại có nghĩa lấcc thành phần sử dụng dịch vụ và các thành phần cung cấp dịch vụ hiện có có thể được lắp ghép lại với chức năng không bị thay đổi để đạt được các giải pháp nghiệp vụ trong các môi trường kỹ thuật khác nhau và với các ràng buộc thao tác khác nhau của các đối tác kinh doanh mới. Tuy nhiên, trong khi lược đồ và mô hình dữ liệu có thể cho phép nhìn vào cấu trúc của cơ sở dữ liệu thì chúng lại không thể xác định những thông tin đó được sử dụng như thế nào trong ngữ cảnh của dịch vụ hoặc ứng dụng; đó là lý do chúng ta cần tới các bước tiếp theo. Điều quan trọng ở đây là phải chắc chắn rằng tất cả các giao diện cần thiết đều được xác định, bao gồm khả năng thể hiện các dịch vụ của miền vấn đề ra bên ngoài cho các đối tác, cũng như khả năng nhận biết và thúc đẩy dịch vụ của họ.

Nền tảng của quy trình phát triển này là một quy trình phát triển theo các giai đoạn, như mô hình thác nước hoặc các phương pháp phát triển hướng đối tượng như RUP v.v… Chúng ta tích hợp các dịch vụ như một khái niệm trung tâm và chỉ đạo cho việc phát triển. Các trường hợp sử dụng không chỉ được xây dựng từ việc nắm giữ các yêu cầu hệ thống: chúng định hướng toàn bộ quy trình phát triển và chúng cung cấp đầu vào chính khi tìm kiếm và xác định các lớp, các hệ thống con, các giao diện và các trường hợp kiểm thử.

Hình 1.14: Các tầng cài đặt trong thiết kế: đối tượng dịch vụ, thành phần Các nguyên tắc trong thiết kế SOA
Hình 1.14: Các tầng cài đặt trong thiết kế: đối tượng dịch vụ, thành phần Các nguyên tắc trong thiết kế SOA

Các công nghệ hướng dịch vụ

Component services (Các dịch vụ thành phần) : cung cấp các kỹ thuật cho việc đưa ra công bố một dịch vụ trong hệ thống đảm bảo cho quá trình tìm kiếm phát hiện (discover), thông qua sử dụng component service, việc tạo và đưa ra công bố một dịch vụ sẽ đảm bảo được tính nhất quán theo một quy cách chung. Security services (các dịch vụ bảo mật): cung cấp các phương thức cho việc mã hóa, truyền tải dữ liệu trọng hệ thống, các hỗ trợ cơ bản cho việc cấp quyền, thẩm định quyền, đảm bảo an toàn khi truyền tin, tính toàn vẹn, khả năng phát hiện tấn công và đáp trả các tấn công vào hệ thống. Hỗ trợ trực tiếp cho các kỹ thuật giao tiếp thông qua một đối tượng chuyển tiếp trung gian như CORBA, RMI, JMS … Một kết nối theo định hướng của Openwings sẽ cài đặt trực tiếp giao thức giao tiếp từ một giao diện dịch vụ được định trước theo các kỹ thuật chuyển tiếp trung gian chuẩn với cơ chế động ngay tại thời điểm diễn ra giao tiếp tùy theo yêu cầu sử dụng.

Một trong những vấn đề nổi lên hiện nay là việc tìm kiếm các phương pháp hiệu quả hơn trong việc thiết kế, phát triển và triển khia Web service dựa trên các hệ thống kinh doanh; quan trọng hơn nữa là việc chuyển kiểu truyền thông Web service điểm tới điểm tới các ứng dụng lớn hơn của các công nghệ này thành các quy trình kinh doanh ở mức xí nghiệp. Như chỉ ra trong hình dưới, nó thiết lập một đường bus thông điệp lớp-xí nghiệp kết hợp hạ tầng thông điệp với sự chuyển đổi thông điệp và định tuyến dựa vào nội dung trong một tầng tích hợp logic giữa những người dùng và người cung cấp dịch vụ.

Hình 1.19: Mô hình khung của Openwings
Hình 1.19: Mô hình khung của Openwings

CÔNG NGHỆ DỊCH VỤ WEB

Kiến trúc dịch vụ Web

• Cơ chế xuất bản: tạo ra một tài liệu WSDL, đăng ký tài liệu này lên một kho đăng ký dịch vụ bằng chuẩn đặc tả UDDI. • Cơ chế tìm kiếm: dùng chuẩn đặc tả UDDI để tìm kiếm tại nơi đăng ký dịch vụ, nhận được địa chỉ URL và tải về tài liệu WSDL. • Cơ chế liên kết dịch vụ: dựa trên tài liệu WSDL để tạo ra thành phần sử dụng dịch vụ, thực hiện việc gửi yêu cầu (thông điệp SOAP) và nhận đáp ứng (thông điệp SOAP).

Các chuẩn cho dịch vụ Web

Sau đó, các tham số được chuyển tới dịch vụ Web dưới dạng một thông điệp yêu cầu (SOAP, HTTP GET, HTTP POST), một hành động kiểm tra được thực hiện để kiểm tra tính hợp lệ của các tham số bằng cách dựa trên ủy nhiệm dịch vụ Web. Nói tóm lại, WSDL là ngôn ngữ dùng để mô tả dịch vụ dựa trên XML, nó là tập con của 2 tài liệu khác nhau, NASSL (Network Accessible Service Specification Language – ngôn ngữ đặc tả dịch vụ có khả năng truy cập qua mạng) và WDS (Well Defined Service document – tài liệu xác định dịch vụ). Khi SOAP được mô tả như một chuẩn truyền thông, hầu hết mọi người nghĩ đến DCOM hay CORBA và bắt đầu đặt các câu hỏi như: “SOAP thực hiện việc kích hoạt đối tượng như thế nào?” hay “SOAP sử dụng dịch vụ đặt tên nào?”.

Việc xử lý một thông điệp hoặc một phần của thông điệp yêu cầu bộ xả lý SOAP hiểu mẫu truyền tải được sử dụng (một chiều, yêu cầu/ đáp ứng, gửi đồng thời…), vai trò của người nhận trong mẫu đó, việc sử dụng các cơ chế RPC, biểu diễn hoặc mã hoã dữ liệu, cũng như các ngữ nghĩa cần thiết để xử lý đúng. Thành phần đăng ký dịch vụ tương tự như một quyển danh bạ điện thoại: các trang trắng chứa thông tin chung về tổ chức bao gồm tên, mô tả, địa chỉ… Các trang vàng chứa các phân loại tổ chức theo ngành công nghiệp, theo sản phẩm… dựa trên các nguyên tắc phân loại chuẩn.

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

Các kiểu liên kết trong dịch vụ Web

Thông qua việc định nghĩa một định dạng đăng ký được chuẩn hoá và giao diện kiểu cổng, UDDI cho phép các nhà cung cấp dịch vụ và những người dùng dịch vụ tìm kiếm và tích hợp động với nhau. Sau khi uỷ nhiệm dịch vụ đã được kiểm thử để kiểm chứng rằng nó hoạt động đúng, uỷ nhiệm dịch vụ được triển khai với ứng dụng khách trong môi trường thời gian chạy. Điểm khác biệt duy nhất giữa uỷ nhiệm dịch này và uỷ nhiệm dịch vụ được sinh ra trong liên kết tĩnh là liên kết tĩnh chứa thông tin về cài đặt một dịch vụ cụ thể; có nghĩa là uỷ nhiệm dịch vụ chung sẽ chứa mã để định vị một cài đặt dịch vụ bằng cách tìm kiếm trong một nơi đăng ký dịch vụ.

Một giao diện dịch vụ được sử dụng để sinh ra một giao diện uỷ nhiệm dịch vụ tổng quát có thể được sử dụng để gọi bất kỳ cài đặt nào của giao diện dịch vụ. Cài đặt dịch vụ có thể được tìm thấy bằng cách: đầu tiên, định vị một doanh nghiệp hay một kiểu doanh nghiệp, sau đó, xác định các dịch vụ mà các doanh nghiệp đó cung cấp.

Hình 2.4: Liên kết tĩnh Các bước xây dựng:
Hình 2.4: Liên kết tĩnh Các bước xây dựng:

Xây dựng dịch vụ Web

• Từ chối (Repudiation): Từ chối xảy ra khi các người dùng từ chối thực hiện những hành động mà các bên khác không có cách nào để chứng minh điều ngược lại – ví dụ, một người dùng thực hiện một thao tác bất hợp pháp trong hệ thống không có khả năng ghi lại các thao tác bị cấm. Quay trở lại các câu hỏi được đặt ra trước khi xây dựng hệ thống, chúng ta thấy rằng câu hỏi đầu tiên liên quan tới nguy cơ giả mạo dữ liệu (T), câu hỏi thứ hai liên quan tới nguy cơ từ chối dịch vụ (D) và câu hỏi thứ ba liên quan tới nguy cơ lộ thông tin và nguy cơ giả mạo thông tin (I và T). Việc giới hạn bằng các địa chỉ IP có thể là khó giải quyết, tuy nhiên, nhiều người dùng hợp lệ sử dụng các ISP có một số lượng hạn chế các địa chỉ IP, vì vậy, nhiều yêu cầu có thể đến từ cùng một địa chỉ IP trong khi thực tế thì chúng từ các người dùng khác nhau trong cùng một máy chủ ủy nhiệm (proxy server).

Kẻ tấn công sử dụng các thủ tục lưu (stored procedure) xp_cmdshell được xây dựng sẵn trong SQL Server để gọi mã nguy hiểm trong cơ sở dữ liệu SQL. Lệnh này có thể gọi bất kỳ lệnh nào tại máy chủ. những dữ liệu nào được phép sử dụng để xây dựng các truy vấn cơ sở dữ liệu. Loại bỏ các thủ tục. procedure) mở rộng như xp_cmdshell. Điểm mạnh thật sự của các danh sách điều khiển truy cập là ở chỗ chúng luôn luôn được tuân theo theo cùng một cách thức, không quan tâm tới cơ chế truy cập.Vì vậy, nếu vì một vài lý do nào đó mà một kẻ tấn công có thể qua được dịch vụ và do đó phá hỏng logic quyền hạn ở mức ứng dụng và truy cập tài nguyên một cách trực tiếp thì chính sách quyền hạn trong các danh sách điều khiển truy cập của tài nguyên vẫn còn có hiệu lực.

Hình 2.7:  Một ví dụ dịch vụ Web
Hình 2.7: Một ví dụ dịch vụ Web

CÀI ĐẶT ỨNG DỤNG

File index: chứa từ cần tra (HeadWord), địa chỉ của từ tính từ đầu file (tính theo byte) dưới dạng mã BASE64, độ dài của từ (tính theo byte) dưới dạng mã BASE64. Việc lưu trữ và tìm kiếm trong từ điển sử dụng cây Avl (là cấu trúc điển hình để cài đặt các ứng dụng từ điển). - string LookUp (string HeadWord): trả về xâu biểu diễn định nghĩa của từ đúng như trong file data.

- string LookUpXML(string HeadWord): trả về xâu biểu diễn nghĩa của từ dưới dạng XML (để có thể định dạng bằng file CSS). Thành phần sử dụng dịch vụ: sử dụng dịch vụ theo mô hình liên kết động thời gian chạy như trong phần.