CHƯƠNG IV THIẾT KẾ, CÀI ĐẶT VÀ TRIỂN KHAI THỬ NGHIỆM

Một phần của tài liệu luận văn công nghệ sinh học Tìm hiểu công nghệ microsoft connected services framework xây dựng giải pháp thực hiện tích hợp hệ thống cung cấp dịch vụ (Trang 79)

Phần này sẽ trình bày thiết kế của các thành phần các dịch vụ sử dụng trong giải pháp:

- Các thành phần dùng đẻ tương tác với API của các dịch vụ máy chủ. - Các dịch vụ web đóng vai trò giao tiếp với CSF và ứng dụng ngoài. - Cài đặt và triển khai thử nghiệm.

1. Thiết kế các thành phần

Đối với giải pháp này chúng ta có thể tận dụng được một số provider cung cấp sẵn (miễn phí tải từ microsoft.com) như các thành phần thiết lập Sharepoint, Domain, DNS. Đối với dịch vụ Windows POP3 chưa có các thành phần cung cấp sẵn do vậy chúng ta phải thiết kế và cài đặt các chức năng này hoàn toàn. 1.1. Thành phần POP3 Service

Thành phần POP3 Service gồm có hai thành phần con chính:

Thành phần POP3Service Adapter: Thành phần này có nhiệm vụ giao tiếp

với dịch vụ POP3 Service trong Windows Server 2003 để cung cấp các chức năng nhằm thiết lập dịch vụ POP3.

Thành phần POP3Service Provider: Đây là một thành phần COM+ viết cho

Microsoft Provisioning Server (MPS) cho phép chúng ta thiết lập dịch vụ POP3. Thành phần này giao tiếp với thành phần POP3Service Adapter thông qua .Net Remoting. Hình vẽ dưới đây cho thấy môi quan hệ giữa hai thành phần trên và MPS.

1.1.1. POP3ServiceAdapter

Thành phần này được chia làm ba thành phần con:

Thành phần con Các lớp Miêu tả

POP3MailProviderClient POP3ClientAddminGUI POP3ServiceController

Cài đặt giao diện để quản lý dịch vụ POP3 phía máy khách (máy chứa dịch vụ POP3), thiết lập các thông số kết nối với Provider.

POP3ServiceAdaper ProcessWrapper WinPOPWrapper

ExecuteCommandMessage

Thành phần con này cài đặt các hàm giao tiếp với dịch vụ Windows Server 2003 POP3 Service. Do dịch vụ POP3 không cung cấp API để các nhà phát triển thứ ba phát triển thành phần quản trị POP3 Service nên chỉ có thể giao tiếp thông qua tiến trình POP3 (đây là một tiện ích Winpop.exe trong Windows Server 2003).

POP3ServiceRemote IPOP3MailService RemoteServer

Cài đặt đối tượng và thiết lập giao diện triệu gọi từ xa.

Bảng 4. 1 – Các thành phần POP3ServiceAdaper 1.1.2. POP3Service Provider

Trước khi trình bày chi tiết thiết kế thành phần này cũng như để hiểu lý được thiết kế và chức năng của thành phần này, em sẽ trình bày một số khái niệm và thuật ngữ liên quan đến Khung thiết lập tài nguyên dịch vụ của Microsoft (Microsoft Provisioning Framework).

Thứ nhất, thiết lập (Provisioning) là gì ? Đó là quá trình thiết lập, chuẩn bị, cài đặt tự động các tài nguyên trước khi chuyển dịch vụ đến cho người dùng. Quá trình thiết lập có thể là các quá trình phần mềm (thiết lập mailbox, tạo mới các tài khoản người dùng, tên miền), các quá trình phần cứng (thiết lập các dịch vụ mạng, máy chủ).

Thứ hai, thế nào là một máy thiết lập ? Đó là một máy chủ (Provisioning Server) tiếp nhận các yêu cầu từ máy khách và tiến hành một cách tự động xử lý các bước, các thủ tục để thiết lập dịch vụ liên quan. Microsoft Provisioning Server là một ví dụ như vậy.

Thứ ba, các yếu tố cơ bản của một hệ dịch vụ là máy thiết lập (provisioning engine), các provider (các thành phần COM+ chịu trách nhiệm trực tiếp thiết lập các dịch vụ đó – chúng được triển khai trực tiếp vào máy chủ thiết lập), các thủ tục (là một tập hợp các bước được nhóm lại thành một thủ tục để xử lý một yêu cầu đến từ máy khách) và các yêu cầu. Yêu cầu là một bao XML (XML evelope) được gửi đến Máy chủ thiết lập dịch vụ. Yêu cầu phải chỉ ra thủ tục cần gọi và nó thuộc provider nào.

Khi triển khai các máy chủ thiết lập, chúng ta được cung cấp sẵn một số provider để thiết lập, tuy nhiên dịch vụ POP3 không được cung cấp sẵn provider nên chúng ta phải tiến hành thiết kế và phát triển nó. Thành phần này có nhiệm vụ giao tiếp với thành phần POP3ServiceAdaper. Nó là một COM+ được triển khai vào trong Máy thiết lập (provisioning engine). Vì có quá nhiều lớp nên ở đây em không trình bày hết thiết kế các lớp mà chỉ mô tả các thành phần chính. Các thành phần và các lớp chính được mô tả như bảng dưới đây:

Các hàm/lớp/thủ tục Mô tả Lớp POP3ServiceProvider AddDomainProcess AddMailboxProcess ChangePasswordProcess CreateQuotaFileProcess DeleteDomainProcess DeleteMailboxProcess GetDiskUsageProcess GetNumberOfMessageProcessGet PropertyProcess ListAllMailboxProcess LockDomainProcess LockMailboxProcess MigrateToADProcess SetPropertyProcess UnlockDomainProcess UnlockMailboxProcess Lớp này cài đặt các thủ tục thiết lập (Procedure[1]) để tiếp nhận các yêu cầu gửi đến từ các máy khách. Lớp này chứa các hàm để cài đặt thuật toán cho các thủ tục thiết lập. Vì để đơn giản các thủ tục trong provider này đều là thực tục một pha nghĩa là không có cơ chế quay lui. Tuy nhiên đối với các thủ tục phức tạp nhiều quá trình thiết lập khác nhau thì chúng nên được cài đặt thuật toán quay lui.

Lớp POP3Remoting SetupConnection, AddDomain, AddMailBox, ChangePassword, CreateQuotoFile, DeleteDomain, DeleteMailBox, GetDiskUsage, GetNumberOfMessage, GetProperty, ListAllMailBox, LockDomain, MigrateToAD, SetProperty, UnlockDomain, UnlockMailbox Lớp này cài đặt các hàm để giao tiếp với POP3ServiceAdapter. Lớp này có nhiệm vụ thiết lập kết nối với

thành phần

POP3Adapter và bao các hàm đã có ở phía máy khách cung cấp bởi

thành phần

Provider gọi. Thành phần Data AddDomain_Request, AddMailBox_Request, ChangePassword_Request, CreateQuotoFile_Request, DeleteDomain_Request, DeleteMailBox_Request, GetDiskUsage_Request, GetNumberOfMessage_Request, GetProperty_Request, ListAllMailBox_Request, LockDomain_Request, MigrateToAD_Request, SetProperty_Request, UnlockDomain_Request, UnlockMailbox_Request, AddDomain_xsd, AddMailBox_xsd, ChangePassword_xsd, CreateQuotoFile_xsd, DeleteDomain_xsd, DeleteMailBox_xsd, GetDiskUsage_xsd, GetNumberOfMessage_xsd, GetProperty_xsd, ListAllMailBox_xsd, LockDomain_xsd, MigrateToAD_xsd, SetProperty_xsd, UnlockDomain_xsd, UnlockMailbox_xsd Thành phần con này chứa các các lớp C# và lược đồ XML của chúng để đóng gói các dữ liệu XML truyền đến và trả về bởi máy thiết lập (ProvisioningServer). (adsbygoogle = window.adsbygoogle || []).push({});

POP3ServiceProvider_x

ml.nsp Khai báo tên củaprovider, các thủ tục và các dữ liệu vào ra tương ứng. Bản đặc tả này đóng vai trò như một bản kê khai để đăng ký

với Máy chủ

Provisioning. Nó phải tuân theo chuẩn thết lập của Microsoft. Ngoài ra các thủ tục tổng hợp (không cần mã cài đặt và dựa trên các thủ tục đã có sẵn) được mô tả

bằng XML ở đây. Bảng 4. 2 – Các thành phần, lớp của POP3ServiceProvider

1.1.3. Tương tác giữa POP3ServiceProvider và POP3ServiceAdapter

Hai thành phần POP3ServiceProvider và POP3ServiceAdapter hoạt động trên hay máy chủ khác nhau, chúng giao tiếp với nhau dựa trên công nghệ .Net Remoting. Mối khi có yêu cầu gửi đến cần thiết lập dịch vụ POP3 thì thành phần POP3ServiceProvider sẽ gọi thành phần POP3ServiceAdapter thực hiện các công việc tương ứng.

POP3Svc POP3ServiceProvider POP3ServiceAdapter WindowsPOP3Svc 1: CreateMailboxRequest 2: CreateMailbox 3: CreateMailbox 4: CreateMailboxResult 5: CreateMailboxResult 6: CreateResponse 7: CreateMailboxResponse

Hình 4. 2 – Tương tác giữa POP3ServiceProvider và POP3ServiceAdapter Như hình trên mô tả, khi một dịch web cần thiết lập dịch vụ POP3 (ví dụ tạo mới một hòm thư), nó sẽ gửi yêu cầu đến máy chủ thiết lập (Provisioning Server), và yêu cầu này do POP3ServiceProvider xử lý, provider này sẽ thiết lập kết nối với thành phần POP3ServiceAdapter để thiết lập dịch dịch. POP3ServiceAdapter sẽ tương tác với dịch vụ POP3 của Windows Server để thiết lập dịch vụ, sau khi thực hiện xong nó trả lại kết quả về cho POP3ServiceProvider, POP3ServiceProvide sẽ tạo ra một thông diệp trả lời (CreateMailboxResponse) và trả về cho dịch vụ POP3ServiceSvc.

1.2. Các thành phần khác

Tương tự như thành phần POP3Service thành phần DNSService, SharePointService và DomainService cung bao gồm hai thành phần con:

Thành phần Client: Đóng vài trò giao tiếp với các dich vụ (các dịch vụ trên

máy chủ: SharePoint Service 3.0, Windows 2003 DNS Service, Domain Service).

Thành phần Provider: Đây là thành phần COM+ được triển khai vào trong

máy thiết lập (Provisioning engine) nhằm tiếp nhận và xử lý các yêu cầu thiết lập các dịch vụ tương ứng thông qua MPS. Để phát triển thành phần này chúng ta phải tuân thủ chặt chẽ theo đặc tả COM+ của Microsoft và chuẩn Provider cho MPS.

Các thành phần này đã được Microsoft cung cấp sẵn nên chúng ta không cần phải thiết kế, cài đặt lại nữa. Tuy nhiên chúng ta cần cài đặt các giao diện dịch vụ web để tương tác với chúng thông qua MPS – chúng ta sẽ trình bày ở phần thiết kế dịch vụ.

2. Thiết kế các dịch vụ

2.1. Tương tác giữa các dịch vụ

Hình 4. 3 – Mô hình tương tác giữa các dịch vụ

Như hình vẽ trên mô tả, chúng ta có thể phân loại các dịch vụ web ra làm ba loại chính:

 Dịch vụ web chức năng: Các dịch vụ này giao tiếp với Máy chủ thiết lập (MPS) hoặc trực tiếp với các dịch vụ. Các dịch vụ được cài đặt nhằm tích hợp với các hệ thống khác thông qua CSF. Trong giải pháp này các dịch vụ kiểu này gồm có POP3, Domain, DNS, Sharepoint.

 Dịch vụ quản lý CSF: Dịch vụ này được thiết kế để điều khiển hoạt động CSF. Cung cấp các chức năng điều khiển phiên như tạo phiên mới, chuyển phiên sang chế độ ngủ động (hibernate), hay kết thúc phiên.  Dịch vụ cài đặt nghiệp vụ cho ứng dụng: Các dịch vụ nay đóng vài trò

CSF Client. Chúng vừa tham gia vào CSF để truyền thông điệp đến các dịch vụ chức năng thông qua CSF, vừa đóng vai trò giao tiếp với các ứng dụng.

Tất cả các dịch vụ trên giao tiếp với nhau thông qua dịch vụ Phiên (session) của CSF. Dịch vụ phiên đóng vai trò là trung tâm cộng tác cho mọi giao tiếp trong ứng dụng CSF. Ngoài ra để tách biệt lô-gic dịch vụ của các ứng dụng (tùy thuộc vào các ứng dụng khác nhau) chúng ta xây dựng thêm dịch vụ Lô-gic (LogicService) nhằm cài đặt các thuật toán, các quy trình nghiệp vụ cho ứng dụng (dịch vụ này có thể cài đặt theo hai cách: Viết bằng ngôn ngữ lập trình bình thường, sử dụng Biztalk Serrver để mô hình hóa. Tùy thuộc vào quy mô và độ phức tạp của lô-gic nghiệp vụ mà ta lựa chọn cách cài đặt. Đối với các ứng

dụng đơn giản (lô-gic đơn giản) thì chỉ cần cài đặt theo cách thông thường, đối với các ứng dụng phức tạp (lô-gic phức tạp) chúng ta nên sử dụng Biztalk Server để mô hình hóa). Phần dưới đấy sẽ trình bày cụ thể sự tương tác giữa các dịch vụ này:

ClientSvc Session CatalogSvc POP3Svc 1: CreateMailbox 2: SearchSvc 3: POP3SvcUrl 4: CreateMailbox 5: 6: CreateMailboxResult 7: CreateMailboxResult

Hình 4. 4 – Biểu đồ tuần tự tương tác giữa các dịch vụ

Khi một dịch vụ cần gọi một chức năng (được thể hiện như một giao diện dịch vụ web) nó sẽ gửi một yêu cầu đến dịch vụ web phiên (session service), dịch vụ phiên sẽ gửi yêu cầu tới dịch vụ web service catalog để truy vấn địa chỉ URL của dịch vụ web cần gọi (như hình trên là POP3Svc). Sau đó dịch vụ phiên dựa vào các thông tin đính kèm trong thông điệp gửi đến cho nó để lấy ra các dữ liệu cần thiết và gửi đến dịch vụ đích (POP3Svc) để yêu cầu thực hiện (thiết lập mail).

ClientSvc Session CatalogSvc LogicSvc DNSSvc POP3Svc 1: CreateDomain 2: SearchSvc 3: DNSSvc 4: CreateDomain 5: CreateDomainResult 6: CreateDomainResult 7: CreateMailBox 8: CreateMailbox 9: SearchSvc 10: POP3SvcUrl 11: CreateMailBox 12: CreateMailboxResult 13: CreateMailboxResult 14: CreateDomainResult 15: CreateDomainResult

Hình 4. 5 – Biểu đồ tuần tự tương tác giữa các dịch vụ khi lô-gic nghiệp vụ phức tạp (adsbygoogle = window.adsbygoogle || []).push({});

Khi mà ứng dụng phức tạp về nghiệp vụ chúng ta cần xây dựng thêm một dịch vụ LogicSvc để cài đặt các lô-gic cho ứng dụng đầu cuối. Hình trên mô tả một trường hợp Thiết lập tên miền, kèm theo đó cung cấp cho khách hàng sở hữu tên miền các hòn thư POP3. Khi ClientSvc (Có thể là DNSSvcClient, hay bất kỳ một dịch vụ nào phía tầng ứng dụng) gửi một thông điệp yêu cầu thiết lập tên miền đến dịch phiên (Session), dịch vụ phiên gửi yêu cầu đến dịch vụ CatalogSvc để truy vấn địa chỉ URL của dịch vụ DNSSvc và gửi yều cầu đến dịch vụ này yêu cầu thiết lập tên miền, sau đó nó (DNSSvc) gửi kết quả về cho dịch vụ phiên, dịch vụ phiên gửi kết quả này đến cho dịch vụ LogicSvc để xử lý, tùy thuộc vào kết quả như thế nào thành phần LogicSvc sẽ gọi các dịch vụ khác tương ứng để xử lý. Giả sử tên miền đã được thiết lập thành công, thành phần LogicSvc gửi yêu cầu đến dịch vụ Session yêu cầu thiết lập hòm thư POP3. Tương tự như trên dịch vụ Session sẽ truy vấn URL của dịch vụ POP3 ở Catalog và sau đó gọi dịch vụ POP3Svc để thiết lập hòm mail. Kết quả trả về sẽ được dịch vụ phiên chuyển sang cho dịch vụ LogicSvc, giả sử là thành công, nó sẽ chuyển về cho dịch vụ ClientSvc gọi ban đầu.

2.2. Dịch vụ POP3

Cung cấp các hoạt động (operation) để giao tiếp với Máy chủ thiết lập (provisioning server - MPS) để thiết lập dịch vụ POP3 – đóng vai trò như là các trình khách của MPS. Mặt khác dịch vụ này tạo ra với mục đich tích hợp và tái sử dụng ở nhiều ứng dụng khác nhau do vậy chúng là một bên tham gia trong

phiên cộng tác của CSF, do vậy được cài đặt theo chuẩn dịch vụ web của CSF. Giao diện dịch vụ được mô tả như bảng dưới đây:

Hoạt động Dữ liệu vào Dữ liệu trả về

AddDomain AddDomainData ResponseData AddMailBox AddMailBoxData ChangePassword ChangePasswordData CreateQuota CreateQuotaData DeleteDomain DeleteDomainData DeleteMailBox DeleteMailBoxData GetDiskUsage GetDiskUsageData GetNumberOfMessage GetNumberOfMessageData GetProperty GetPropertyData ListAllMailbox ListAllMailboxData LockDomain LockDomainData LockMailbox LockMailboxData MigrateToAD MigrateToADData SetProperty SetPropertyData UnlockDomain UnlockDomainData UnlockMailbox UnlockMailboxData

Bảng 4. 3 – Các hoạt động của dịch vụ POP3

Do theo quy định của CSF thì các hoạt động (operation) chỉ có thể nhận một đối số vào nên chúng ta phải đóng gói các dữ liệu vào trong các lớp *Data. Tuy thuộc vào từng hoạt động cụ thể mà các kiểu dữ liệu này khác nhau.

2.3. Dịch vụ DNS Service

Cung cấp các hoạt động (operation) để giao tiếp với Máy chủ thiết lập (provisioning server - MPS) để thiết lập dịch vụ DNS – đóng vai trò như là các trình khách của MPS. Mặt khác dịch vụ này tạo ra với mục đich tích hợp và tái sử dụng ở nhiều ứng dụng khác nhau do vậy chúng là một bên tham gia trong phiên cộng tác của CSF, do vậy được cài đặt theo chuẩn dịch vụ web của CSF. Giao diện dịch vụ được mô tả như bảng dưới đây:

CreateResellerOrg CreateResellerOrgData ResponseData DeleteOrg DeleteOrgData CreateCustomerOrg CreateCustomerOrgData CreateUser CreateUserData DeleteUser DeleteUserData AddPlanToCustomer AddPlanToCustomerData CreatePlan CreatePlanData DisablePlan DisablePlanData EnablePlan EnablePlanData RemovePlanFromCustomer RemovePlanFromCustomerData QueryCustomerPlan QueryCustomerPlanData QueryPlans QueryPlan QueryServiceByCustomer QueryServiceByCustomerData ChangeCustomerPlan ChangeCustomerPlanData CreateDNSZone CreateDNSZoneData DeleteDNSZone DeleteDNSZoneData CreateResourceRecord CreateResourceRecordData DeleteResourceRecord DeleteResourceRecordData Bảng 4. 4 – Các hoạt động của dịch vụ DNS 2.4. Dịch vụ Sharepoint Service

Cung cấp các hoạt động (operation) để giao tiếp với Máy chủ thiết lập (provisioning server - MPS) để thiết lập dịch vụ Sharepoint – đóng vai trò như là các trình khách của MPS. Mặt khác dịch vụ này tạo ra với mục đich tích hợp và tái sử dụng ở nhiều ứng dụng khác nhau do vậy chúng là một bên tham gia trong phiên cộng tác của CSF, do vậy được cài đặt theo chuẩn dịch vụ web của CSF. Giao diện dịch vụ được mô tả như bảng dưới đây:

Hoạt động Dữ liệu vào Dữ liệu trả về

AddUserToSharepoint SiteRole

AddUserToSharepoint SiteRoleData

CreateCustomer SharepointSite CreateCustomerSharepoint SiteData DeleteCustomer SharepointSite DeleteCustomerSharepoint SiteData RemoveUserFrom SharepointSiteRole RemoveUserFromSharepoint SiteRoleData

Bảng 4. 5 – Các hoạt động của dịch vụ SharepointService 2.5. Dịch vụ Domain Service

Cung cấp các hoạt động (operation) để giao tiếp với Máy chủ thiết lập (provisioning server - MPS) để thiết lập dịch vụ lưu trữ tên miền và website – đóng vai trò như là các trình khách của MPS. Mặt khác dịch vụ này tạo ra với mục đich tích hợp và tái sử dụng ở nhiều ứng dụng khác nhau do vậy chúng là một bên tham gia trong phiên cộng tác của CSF, do vậy được cài đặt theo chuẩn dịch vụ web của CSF. Giao diện dịch vụ được mô tả như bảng dưới đây:

Hoạt động Dữ liệu vào Dữ liệu trả về

CreateCustomerWebsite CreateCustomerWebsiteData

ResponseData ControlCustomerWebsite ControlCustomerWebsiteData

DeleteCustomerWebsite DeleteCustomerWebsiteData ModifyCustomerWebsite ModifyCustomerWebsiteData

Bảng 4. 6 – Các hoạt động của dịch vụ DomainService 2.6. Dịch vụ quản lý phiên cộng tác

Dịch vụ này mục đích chính là dùng để tạo ra một tầng trung gian giao tiếp giữa ứng dụng và CSF để quản lý phiên. Dịch vụ này cũng được cài đặt theo chuẩn dịch vụ web của CSF. Giao diện dịch vụ được mô tả như bảng dưới đây:

Hoạt động Dữ liệu vào Dữ liệu trả về

CreateSession SessionData ResponseData HibernateSession SessionIDData TerminateSession SessionIDData SendSyncMessage MessageData SendAsyncMessage MessageData

Bảng 4. 7 – Các hoạt động của dịch vụ Quản lý phiên 2.7. Dịch vụ Lô-gic điều khiển cộng tác

Dịch vụ này cài đặt các quy trình nghiệp vụ cộng tác giữa các dịch vụ trong phiên cộng tác của CSF. Đóng vai trò như là một bên tham gian trong phiên cộng tác, nó điều khiển sự tương tác, trao đổi thông điệp giữa các dịch vụ khác thông qua dịch vụ phiên (Session web service).

Hoạt động Dữ liệu vào Dữ liệu trả về

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu luận văn công nghệ sinh học Tìm hiểu công nghệ microsoft connected services framework xây dựng giải pháp thực hiện tích hợp hệ thống cung cấp dịch vụ (Trang 79)