CSF là một Nền cung cấp dịch vụ có tính chất mở, mềm dẻo: - Kiến trúc của CSF.
- Hỗ trợ phát triển nhanh dịch vụ với các thành phần cơ bản tích hợp sẵn.
- Mô hình lập trình theo Kiến trúc hướng dịch vụ với CSF.
1. Tổng quan về CSF 1.1. Định nghĩa CSF
CSF là một sản phẩm tích hợp, dựa trình chủ (server-based) của Microsoft cho phép nhanh chóng xây dựng, quản lý các dịch vụ theo mô hình Kiến trúc hướng dịch vụ [4].
CSF lưu trữ (host) môi trường phát triển và thực thi cho phép chúng ta tạo mới các dịch vụ (XML Web service), cập nhật, và kết hợp (aggregation) các dịch vụ đã có vào trong một ứng dụng đơn phân tán duy nhất. Mục đích chính của CSF là nhanh chóng kết hợp các dịch vụ trong khi sử dụng ít mã nhất (custom code), tối thiểu hóa sự phụ thuộc giữa các dịch vụ Web. Do vậy CSF cho phép chúng ta nhanh chóng phát triển, triển khai các ứng dụng phức hợp dịch vụ Web (composed webservice) một cách nhanh chóng.
CSF cung cấp một nền tảng (platform) cho việc phát triển các ứng dụng phức hợp bằng cách phát triển các dịch vụ Web. CSF trừu tượng hóa Webservice Enhancement 3.0 để cung cấp các yếu tố cộng tác cần thiết trong suốt quá trình xử lý yêu cầu của khách hàng, đối tác, người dùng,…Các dịch vụ web tương tác với CSF thông qua giao diện dịch vụ Web. Chúng ta xây dựng các dịch vụ Web tương tác với CSF bằng các công cụ Chuẩn hóa dich vụ web (Well-Enabled Service Toolkit - WES toolkit) và CSF SDK, ngoài ra chúng ta có thể tương tác với các dịch vụ web của các bên thứ 3 hoặc tương tác với các ứng dụng đã có bằng các viết các giao diện WES đóng vai trò giao tiêp giữa chúng với CSF. Hiện tại CSF hỗ trợ sẵn các WES với các dịch vụ như Microsoft Internet TV, Microsoft Office Live Meeting, Microsoft Biztal Sever…
CSF có thể được chia ra thàng 3 phần: Máy chủ phiên CSF (CSF Session Server) – bao gồm các thành phần cung cấp việc theo dõi nhận dạng, tìm kiếm dịch vụ cũng như quản lý thông tin tiểu sử (profile). Hai thành phần còn lại là Standard Business Event (SBE) và Order Handling Standard. Hình vẽ dưới đây cho thấy kiến trúc của CSF:
Hình 2. 1 – Kiến trúc CSF
Thành phần Mô tả
Session management Thành phần phiên của CSF. Chịu trách nhiệm tiếp nhận, định tuyến thông điêp, cũng như các chính sách bảo mật giữa các dịch vụ.
Identity Management Thành phần quản lý nhận dạng.
Service Catalog Cơ quan đăng ký, tìm kiếm truy vấn dịch vụ. Các dịch CSF được đăng ký với thành phần này.
Profile Management Thành phần quản lý tiểu sử. Cho phép truy nhập, tạo, cập nhật các thông tin người dùng dịch vụ.
Service Logic Orchestration
Thành phần này thực hiện các lô-gic dịch vụ cho ứng dụng.
Billing Thành phẩn giao tiếp với hệ thống tính cước (Billing) Order handling Thành phần quản lý các yêu cầu gửi tới dịch vụ. OSS/BSS Các hệ thống vận hành tác nghiệp trong doanh nghiệp Network service Các dịch vụ mạng. Các dịch vụ này có thể là dịch vụ viễn
thông, dịch vụ phần mềm,… Reporting Dịch vụ thống kê báo cáo.
Notification Dịch thông báo, các dịch vụ web sử dụng để thông báo đến các dịch vụ khác, khách hang…
Bảng 2. 1 – Các thành phần trong Kiến trúc CSF
Máy chủ phiên được tạo nên từ các thành phần cơ bản (core component) và dịch vụ web liên quan. Máy chủ phiên được quản lý bằng cách sử dụng ba đầu cuối dịch vụ Web là Session, SessionAdmin và SessionManagerAdmin. Các dịch vụ web này giúp dễ dàng nhận thông điệp từ các dịch vụ web tham gia cũng như
tạo và quản lý vòng đời đối tượng phiên (Session Object). Ví dụ, dịch vụ web SessionManagerAdmin cung cấp tất các hoạt động cho phép tạo phiên, và khi nhận yêu cầu “tạo phiên” dịch vụ web này sẽ tạo ra một ngữ cảnh cộng tác – gọi là phiên; nó nhận dạng tất cả các dịch vụ web sẽ tham gia vào phiên cộng tác; và định tuyến các thông điệp giữa các dịch vụ web. SessionAdmin quản lý, điều khiển thuộc tính của mỗi dịch vụ web. SessionManagerAdmin quản lý trạng thái của tất cả các phiên.
CSF đồng thời cũng cung cấp các dịch vụ quản lý cho phép chúng ta thực hiện các công việc quan trọng trong việc xây dựng các ứng dụng phân tán như theo dõi quản lý nhận dạng, tìm kiếm dịch vụ, quản lý thông tin tiểu sử (profile) những chức năng này được cung cấp như là các thành phần cơ bản CSF (core component); các thành phần này bao gồm:
Danh mục dịch vụ (Service Catalog): cung cấp khả năng truy nhập vào kho
chứa UDDI – nơi lưu trữ đinh danh web (URI) của các dịch vụ web cần thiết để sử dụng cho ứng dụng của chúng ta. Một cách chính xác dịch vụ web Service Catalog là một bộ tiếp hợp (tương ứng một – một) với dịch vụ UDDI của Windows Server 2003 nhằm dễ dàng cho việc tích hợp vào ứng dụng web service.
Quản lý nhận dang (Identity Manager): Cho phép theo dõi nhận dạng người
dùng và cung cấp khả năng quản lý, dịch vụ đăng nhập một lần (Single-Sign On Service).
Quản lý tiểu sử (Profile Manager): Cung cấp khả năng theo dõi quản lý thông
tin tiểu sử (profile) của người dùng cũng như các bên tham gia ứng dụng phân tán bằng cách sử dụng cơ sở dữ liệu RDF.
Thành phần logic dịch vụ (Service logic): cho phép tạo và định nghĩa các logic nghiệp vụ để xử lý các yêu cầu trong ứng dụng CSF. Tùy vào các ứng dụng khác nhau mà chúng ta xây dựng các thành phần nghiệp vụ cho riêng mình. Thành phần này không phải là một thành phần cung cấp sẵn mà hoàn toàn do chúng ta xây dựng. Mỗi thành phần nhân có một giao diện dịch vụ web cho phép chúng ta truy nhập thông tin nó lưu trữ. Hình vẽ dưới đây cho thấy quan hệ giữa các thành phần cơ bản và các cơ sở dữ liệu tương ứng.
Hình 2. 2 – Các thành phần CSF
Tương tác giữa các bên tham gia dịch vụ và CSF tương tự như các máy tính khi kết nối với một cái Hub trong mô hình mạng hình sao.
Hình 2. 3 – Vai trò trung tâm cộng tác của thành phần Phiên
Như vậy, thành phần phiên đóng vai trò như một cái Hub và các bên tham gia bao gồm người dùng và các dịch vụ web đóng vai trò như các máy tính kết nối vào. Các thành phần nhân của CSF trừ thành phần phiên (đóng vai trò trung tâm giao tiếp) đều hoạt động như là các bên tham gia dịch vụ trong ngữ cảnh cộng tác (collaboration context). CSF cung cấp các yếu tố cộng tác cần thiết này giúp chúng ta dễ dàng tái sử dụng; không phải xử lý, quản lý nhận dạng hay thông tin tiểu sử, chính sách và chuẩn bị (provisioning) khi chúng ta tạo mới các cộng tác hoặc hòa phối (orchestration) dịch vụ web.
1.2. Kịch bản sử dụng CSF
Bằng cách sử dụng Microsoft Connected Services Framework, chúng ta có thể tạo các ứng dụng phân tán nhằm cung cấp các dịch vụ và sản phẩm khác nhau đến người tiêu dùng. CSF được thiết kế nhằm tạo điều kiện thuận lợi cho việc
kết hợp và cộng tác giữa các dịch vụ web không phụ thuộc vào công nghệ sử dụng trong các doanh nghiệp sử dụng nó.
Nếu chúng ta có một môi trường để phát triển các ứng dụng phân tán bằng cách sử dụng Kiến trúc hướng dịch vụ, chúng ta có thể sử dụng CSF để dễ dàng tái sử dụng các dịch vụ trong nhiều ứng dụng phân tán khác nhau. Ví dụ, nếu chúng ta tạo ra một dịch vụ web để định tuyến các thông điệp tới các thành phần cơ bản của CSF (core components) trong kịch bản nhà cung cấp dịch vụ nôi dung, chúng ta cũng có thể sử dụng dịch vụ đó cho kịch bản khách hàng tiêu thụ dịch vụ.
Dưới đây là một số ví dụ các lĩnh vực có thể áp dụng CSF:
• Kịch bản dịch vụ hỗ trợ nghiệp vụ: Chúng ta có thể tích hợp CSF
vào quy trình nghiệp vụ bên trong doanh nghiệp bằng cách xây dựng ứng dụng phân tán chung cho cả doanh nghiệp. Với ứng dụng phân tán này chúng ta có thể hỗ trợ cho các phòng ban, lĩnh vực khác nhau. Ví dụ, chúng ta có thể xây dựng một ứng dụng thông báo, tính cước (billing) hoặc ứng dụng xử lý yêu cầu (order handling) cho cả công ty bằng cách sử dụng thành phần SBE (Standard business events) của CSF.
• Kịch bản nhà cung cấp nội dung: Nếu doanh nghiệp của chúng ta
đưa ra các dịch vụ nội dung tới các thuê bao và khách hành trực tuyến, chúng ta có thể sử dụng CSF để tạo ra các ứng dụng phân tán dễ dành cho việc tạo và tùy biến các dịch vụ nội dung. Qua đó chúng ta có thể đưa ra tất cả các dịch vụ như các tài nguyên trực tuyến, các video, phim, các ứng dụng doanh nghiệp,… cũng như dịch vụ bán lẻ trực tuyến tất cả các dịch vụ này có thể đưa ra thông qua một hoặc nhiều cổng thông tin. Những cổng thông tin này chỉ tương tác với một ứng dụng phân tán duy nhất.
• Kịch bản lữu trữ trực tuyến: Nếu doanh nghiệp của chúng ta đưa ra
các dịch vụ lưu trữ cho các cá nhân cũng như tổ chức, chúng ta có thể sử dụng CSF để xây dựng một ứng dụng phân tán, nó cho phép khách hàng của chúng ta có thể dễ dàng sử dụng dịch vụ chúng ta lưu trữ. CSF có các thành phần xây dựng sẵn hỗ trợ lưu trữ Microsoft Exchange, Microsoft SharePoint, Internet Information Services, và Live Communication Server. Chúng ta có thể tùy biến ứng dụng của mình để tương tác với các ứng dụng khác mà chúng ta muốn lưu trữ.
• Kịch bản thiết lập (provisioning) dịch vụ: Nếu doanh nghiệp của
chúng ta cung cấp các dịch vụ yêu cầu phải provision, chúng ta có thể tạo một ứng dụng phân tán CSF để trợ giúp kết hợp các dịch vụ này và phân phối các dịch vụ cho các người dùng đã được thiết lập. Ví dụ, một doanh nghiệp viễn thông đưa ra các dịch vụ như điện thoại cơ bản, thư thoại bằng giọng nói, chờ đợi cuộc gọi,… Khi một người dùng mới yêu cầu dịch vụ điện thoại cơ bản và thư thoại bằng giọng nói thì chỉ có các dịch vụ này được provision cho người dùng đó.
• Kịch bản người tiêu dùng: Nếu chúng ta đưa ra các dịch vụ thông tin giải trí, trò chơi trực tuyến,… cho người tiêu dùng như xem TV trực tuyến, chat, Xbox Live bằng cách kết hợp các dịch vụ này lại với nhau chúng ta có thể tạo ra các điểm bán mạnh mẽ cho doanh nghiệp của chúng ta. CSF cho phép kết hợp các dịch vụ này vào trong một ứng dụng phân tán duy nhất, cho phép phân phối quản lý việc đưa ra các dịch vụ này tới bất kỳ một người dùng nào.
Trong một vài tình huống chúng ta phải viết các bộ tiếp hợp Well-Enabled Service để giao tiếp giữa sản phẩm của chúng ta và CSF. Hiện tại CSF đã đưa ra một loạt các bộ tiếp hợp cho các sản phẩm của Microsoft như Hosted Message Collaboration, Office Live Meeting và IPTV. CSF cũng đưa ra một bộ công cụ để xây dựng các Well-Enabled service cho các sản phẩm mà các bên thứ ba phát triển.
1.3. Hoạt động của CSF
CSF cung cấp một cơ sở hạ tầng thông qua đó các dịch vụ web trong ứng dụng phân tán của chúng ta tương tác với nhau. CSF thực hiện điều này bằng cách cung cấp một tập các thành phần, mỗi thành phần như vậy đưa ra một dịch vụ web theo tiêu chuẩn WSE 3.0 của Microsoft (Microsoft Web Service Enhancements 3.0) để tương tác với nhau, do vậy các dịch vụ web này có thể giửi và nhận các thông điệp SOAP. Các thành phần này có khả năng xử lý các thông tin quan trọng cần thiết để xử lý các thông điệp đến từ các hệ thống yêu cầu khách hàng, yêu cầu cấp phát tài nguyên của người dùng, hay bất kỳ loại thông điệp nào mà chúng có thể chuyển tải qua giao diện dịch vụ web được. Về mặt nguyên tắc chúng ta có thể gửi các thông điệp này một cách đồng bộ, tuy nhiên thực tế các ứng dụng phân tán gửi và nhận các thông điệp này một các bất đồng bộ là thích hợp nhất.
Khi ứng dụng CSF của chúng ta nhận được một thông điệp gửi đến, nó sẽ thực hiện các nhiệm vụ cần thiết để tạo ra một bản đặc tả phiên cộng tác (session manifest) chứa các thông tin liên quan đến các dịch vụ web cần thiết để tham gia phiên cộng tác nhằm đáp ứng yêu cầu đó. Tiếp theo, nó chuyển bản đặc tả phiên cộng tác đó cho thành phần cơ bản của CSF có nhiệm vụ khởi tạo ngữ cảnh phiên cộng tác, ngữ cảnh này được gọi gắn gọn là phiên. Tuy nhiên, chúng ta cũng có thể khôi phục, sử dụng các phiên cộng tác đã có thay vì tạo phiên mới nếu nó đã tồn tại (chẳng hạn khi chúng ở trạng thái ngủ động). Phiên cộng tác sử dụng các thông tin có trong bản đặc tả phiên để định tuyến các thông điệp tới các dịch vụ web tham gia một cách đúng đắn. Và như vậy, phiên cộng tác đóng vai trò như là một trung tâm kết nối (tổng đài điều hành) trong đó các dịch vụ web tham gia giao tiếp với nhau qua nó.
Một thành phần quan trọng khác của ứng dụng CSF là thành phần lô-gic dịch vụ, đó là một dịch vụ web chúng ta định nghĩa để các lô-gic nghiệp vụ cho ứng dụng của chúng ta. Sau khi phiên cộng tác được tạo ra, thành phần lô-gic dịch vụ này sẽ quyết định khi nào thì gửi các thông điệp cho các dịch vụ tham giam, và gửi cho dịch vụ nào. Trong thành phần lô-gic này chúng ta cũng có thể cài đặt các cơ chế phục hồi khi có lỗi, ví dụ như quay lui khi cần thiết. Về mặt cơ bản, thông điệp truyền giữa các dịch vụ web trong ứng dụng CSF của chúng ta tùy
thuộc vào các ứng dụng cụ thể khác nhau, tuy nhiên chúng ta có thể thiết lập các cơ chế thông báo lỗi, thông báo các trạng thái xử lý, hoặc hoàn thành xử lý…Tất cả các thông điệp này phải được chuyển qua phiên cộng tác trước khi đến được dịch vụ web cần nhận nó.
Ở đây chúng ta cần phân biệt khác nhau giữa thành phần lô-gic dịch vụ với thành phần phiên. Thành phần lô-gic nghiệp vụ sẽ xử lý và quyết định các quy trình nghiệp vụ cho ứng dụng của chúng ta. Nó quyết định dịch vụ web nào sẽ gửi thông điệp và dịch vụ web nào sẽ nhận thông điệp đó, cũng như khi nào thì thông điệp đó được gửi. Tuy nhiên, cách gửi như thế nào, các chính sách bảo mật, quản lý trên đó thì do thành phần phiên đảm nhận. Đây là cách thức cài đặt nhằm tách biệt lô-gic nghiệp vụ ra khỏi sự cộng tác giữa các dịch vụ. Sự tách biệt này là cho thấy sự phân lớp trong mô hình phân lớp kiến trúc hướng dịch vụ mà ta sẽ trình bày dưới đây (xem thêm phần kiến trúc phân lớp – kiến trúc CSF) – tầng hòa phối (orchestration) và tầng cộng tác (collaboration).
CSF cũng cung cấp các thành phần cơ bản phục vụ cho việc quản lý nhận dạng và tiểu sử (profile). Thành phần nhận dạng không những cung cấp các chức năng cho phép quản lý người dùng, tổ chức, khách hàng và các vai trò trong CSF, đồng thời cung cấp các cơ chế xác thức và phân quyền theo vai trò. Bên cạnh đó, thành phần này cũng hỗ trợ khả năng đăng nhập một lần bằng cách ánh xạ giữa người dùng CSF và người dùng của các dịch vụ giá trị gia tăng. Nhờ vậy người dùng chỉ cần cung cấp các thông tin chứng thực một lần mà có thể sử dụng nhiều dịch vụ khác nhau thay vì môi khi sử dụng một dịch vụ nào đó lại phải đăng nhập.
Thành phần quản lý tiểu sử được cung cấp trong CSF nhằm quản lý tiểu sử người dùng. Thành phần này sử dụng Khung mô tả tài nguyên (Resource Description Framework - RDF) để lưu trữ, mô tả thông tin người dùng. Việc dùng RDF cho phép mềm dẻo trong việc tùy biến, thêm bớt các trường cần thiết tuy thuộc vào các ứng dụng và yêu cầu thực tế khác nhau. Thông thường, tiểu sử người dùng (kho RDF) chứa các thông tin về tên người dùng, email, địa chỉ