MỤC LỤC
Hiện nay, chưa có một quy trình cụ thể để phát triển các ứng dụng theo kiến trúc hướng dịch vụ, tuy nhiên, dựa trên thực tế, 12 bước sau đã được đưa ra nhằm tham khảo khi quyết định chuyển sang định hướng dịch vụ [3]. 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. Việc này rất quan trọng vì chúng ta đã biết dịch các dịch vụ và nguồn/ đích thông nào hiện có, chúng ta cần phải xác định các cơ chế tương tác cao hơn, bao gồm tất cả các quy trình ở mức mức cao, mức trung bình và mức thấp.
Đ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ọ.
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. 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. Chính sự kết hợp của các giao thức này đã làm dịch vụ mạng đáp ứng được các yêu cầu chính của kiến trúc hướng dịch vụ: SOA yêu cầu dịch vụ phải được phát hiện và triệu gọi động, yêu cầu này được thỏa mãn bằng UDDI, WSDL và SOAP; SOA yêu cầu dịch vụ có một giao ước giao diện độc lập nền tảng, yêu cầu này được thỏa mãn bởi XML; SOA nhấn mạnh tới tính liên thông, yêu cầu này được thoả mãn bởi HTTP.
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.
• 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).
Sau đó, các tham số được chuyển tới dịch vụ mạng 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ụ mạng. 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ụ). 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.
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. Loại liên kết này được sử dụng khi một thành phần sử dụng dịch vụ muốn sử dụng một kiểu dịch vụ mạng cụ thể nào đó nhưng cài đặt của nó thì hoặc là không được biết cho đến khi chạy hoặc là có thể thay đổi trong 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ụ.
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.
• 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).
Đ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.
Ứng dụng tra từ điển của người dùng sẽ chỉ cần biết giao diện của dịch vụ cung cấp từ điển mà không cần quan tâm tới cài đặt chi tiết cũng như vị trí của dịch vụ và các dịch vụ được sử dụng để tạo nên ứng dụng cũng độc lập với nhau (ứng dụng được tạo thành từ 4 dịch vụ từ điển khác nhau). Ứng dụng được xây dựng theo định hướng dịch vụ, tức là gồm có 3 thành phần: thành phần cung cấp dịch vụ (các dịch vụ từ điển), thành phần sử dụng dịch vụ (ứng dụng tra từ được xây dựng từ các dịch vụ từ điển) và thành phần đăng ký dịch vụ (dịch vụ UDDI của Windows 2003), do vậy, nó đã tách được phần giao diện ra khỏi phần cài đặt. Do việc sử dụng dịch vụ chỉ cần biết đặc tả giao diện của dịch vụ là file WSDL tuân theo định dạng XML mà bất kỳ nền tảng nào cũng có thể hiểu được và không quan tâm tới cài đặt cụ thể của dịch vụ, việc truyền thông lại dùng giao thức phổ biến là HTTP nên các dịch vụ mạng được xây dựng có thể hoạt động và tương tác trên mọi nền tảng.
Việc nghiên cứu đề tài đã giúp tôi nắm được xu thế mới trong phát triển phần mềm - phát triển hướng dịch vụ, để từ đó áp dụng những lợi điểm của kỹ thuật phát triển này vào các sản phẩm trong tương lai của mình, cũng như khả năng tiếp cận và nắm bắt các công nghệ, công cụ mới hỗ trợ cho việc phát triển phần mềm theo kiến trúc hướng dịch vụ.