Khi nghĩ đến role Client Access Server trong Exchange 2007 ngay lập tức tôi nghĩ về Outlook Web Access, Outlook Anywhere, ActiveSync và các biểu mẫu non-MAPI khác trong vấn đề kết nối với máy chủ mailbox. Ngoài ra Client Access Server cũng là nơi chứa các dịch vụ quan trọng khác như Autodiscover và các dịch vụ Availability. Có một số dịch vụ sống còn trong cơ sở hạ tầng Exchange 2007 và trong hướng dẫn này chúng tôi sẽ giới thiệu cho bạn những chi tiết hơn về dịch vụ Availability và vài trò chính của dịch vụ này là gì.
Dịch vụ Availability là gì?
Dịch vụ Availability trong Exchange 2007 liên quan phần lớn tới cách người dùng này truy cập thông tin bận/ rỗi của những người dùng khác. Trước khi đi vào hướng dẫn chi tiết về dịch vụ này thì chúng ta cần phải ôn lại xem các thông tin bận/rỗi này được lưu và được truy cập như thế nào trong Exchange 2000 và Exchange 2003, để từ đó có thể so sánh về quá trình làm việc trong các phiên bản cũ với những gì được cải thiện mới trong Exchange 2007. Trong các phiên bản cũ của Exchange, một thư mục site tồn tại bởi tên Schedule+ Free/Busy, tên được sử dụng để lưu thông tin lịch biểu bận/rỗi cho mỗi người dùng. Bạn có thể xem thư mục này trong Exchange System Manager bằng cách quan sát thư mục hệ thống thay vì các thư mục chung. Hình 1 thể hiện một ví dụ về các thư mục hệ thống Schedule+ Free/Busy được quan sát trong Exchange System Manager.
Hình 1: Thư mục hệ thống Schedule+ Free/Busy
Bạn cần phải lưu ý một điều rằng có hai thư mục hệ thống này, một trong số đó là cho nhóm quản trị viên. Mặc định, Outlook sẽ công bố một cách định kỳ thông tin lịch biểu bận/rỗi trong thư mục hệ thống để cho phép các máy khách Outlook của người dùng khác có thể truy vấn dữ liệu khi muốn đặt thời gian hẹn gặp. Trên các hệ thống nhỏ hơn thì đây là một điều rất tốt, mặc dù vậy trên các hệ thống lớn thì việc sử dụng các thư mục chung như một thiết bị lưu trữ bận/rỗi có thể mắc phải một số vấn đề. Ví dụ, có thể sẽ luôn thiếu các thông tin bận/rỗi mà lẽ ra cần phải được cập nhật thường xuyên, vấn đề này là do việc giữ chậm của bản sao thư mục chung, trong trường hợp xấu nhất sự thất bại bản sao thư mục chung có thể gây ra vấn đề nghiêm trọng. Tuy vậy, vấn đề chính với phương pháp này còn ở chỗ tương lai của các thư mục chung trong Exchange. Qua một số năm vừa qua, bạn có thể đã từng nghe hoặc đọc về các kế hoạch của Microsoft trong việc cho “nghỉ hưu” các thư mục chung này trong phiên bản tương lai của Exchange, và như vậy một cơ chế mới cần phải có để quản lý các yêu cầu bận/rỗi. Đó chính là lý do mà dịch vụ Availability trong Exchange sinh ra.
Phương pháp tốt hơn
Dịch vụ Availability trong Exchange 2007 là một trong những dịch vụ Web mới. Nói một cách vắn tắt, dịch vụ Web của Exchange 2007 cho phép các ứng dụng có thể truy cập vào nội dung mailbox thông qua HTTP, chính vì vậy rõ ràng rằng sự phát triển ứng dụng được nhắm vào các dịch vụ này đối với sản phẩm Exchange 2007. Chúng ta sẽ đề cập đến chi tiết hơn, thông tin bận/rỗi cho mỗi một người dùng được cấu hình trên Exchange 2007 hiện sẽ được lưu trực tiếp trong mailbox, vì vậy việc truy cập vào thông tin này có thể được thực hiện thông qua các dịch vụ Web, đặc biệt là dịch vụ Availability. Chúng ta sẽ xem xét phương pháp mới này thông qua Outlook 2007 và Exchange 2007, chính vì vậy sẽ có những thứ luôn luôn không được thực hiện thông qua phương pháp mới này nếu Outlook 2003 và Exchange 2003 vẫn trộn lẫn. Outlook 2007 đặt dịch vụ Availability thông qua dịch vụ Autodiscover.
Bài này sẽ không tập trung đặc biệt vào dịch vụ Autodiscover vì đây là một chủ đề lớn. Dịch vụ Autodiscover cho phép các máy khách Outlook 2007 có thể truy cập vào các tính năng cụ thể nào đó của Exchange 2007 như dịch vụ Availability như chúng ta đã đề cập đến từ trước, cộng với các dịch vụ chung khác như Offline Address Book (OAB) cũng như các dịch vụ như Unified Messaging (UM). Về cơ bản Outlook 2007 tạo một yêu cầu cho một thư mục ảo có tên gọi Autodiscover được hiển thị trên Client Access Server. Dịch vụ Autodiscover này trả về máy khách nhiều thông tin khác nhau, một trong số chúng là các URL cho dịch vụ như Availability.
Các vấn đề phiên bản
Các phương pháp truy cập khác nhau để lấy thông tin bận/rỗi được sử dụng trong các môi trường có Outlook 2003 và Outlook 2007 cũng như Exchange 2003 và Exchange 2007. Ví dụ, khi Outlook 2007 được sử dụng kết hợp với Exchange 2007 thì các thông tin này có thể đạt được trực tiếp từ mailbox mục tiêu của Exchange 2007 mà không phải là thư mục hệ thống Schedule+ Free/Busy. Đây là cách thông tin bận rỗi có thể nâng cấp được tốt hơn so với phương pháp thư mục truyền thống theo truyền thống. Hãy xem hình 2 bên dưới, một người dùng Outlook 2007 với một mailbox Exchange 2007 yêu cầu các thông tin bận/rỗi đối với người dùng Exchange 2007 khác. Trong trường hợp này, kết nối từ Outlook được thực hiện với dịch vụ Availability đang chạy trên Client Access Server máy chủ này sẽ xác định rõ được máy chủ mailbox nào cấu hình mailbox Exchange 2007 mục tiêu. Một kết nối Remote Procedure Call (RPC) sẽ được hình thành cho máy chủ mailbox đó và các kết quả sẽ trả về Client Access Server trước khi được chuyển trở về tới người dùng.
Hình 2: Người dùng Outlook 2007 đang truy vấn các thông tin Exchange 2007 Free/Busy
Hình 2 ở trên đã thừa nhận rằng Client Access Server và máy chủ mailbox đều nằm trong cùng một Active Directory. Vậy điều gì sẽ xảy ra nếu yêu cầu bận/rỗi được thực hiện đối với người dùng mà mailbox của người này cư trú trên một máy chủ mailbox Exchange 2007 của một Active Directory khác? Trong trường hợp này, Client Access Server trong Active Directory của người dùng khởi đầu các yêu cầu sẽ ủy quyền yêu cầu đến một Client Access Server nằm trong Active Directory của người dùng mục tiêu. Các kết quả được trả về đến Client Access Server gốc và sau đó được đưa trở về cho người dùng đã yêu cầu.
Có một kịch bản quan trọng khác mà chúng ta nên xem xét đến ở đây. Đó là điều gì sẽ xảy ra nếu yêu cầu bận/rỗi đã được thực hiện với một mailbox khác tại cùng thời điểm, nhưng mailbox đó vẫn trên máy chủ Exchange 2003? Tình huống này sẽ rất hay xảy ra trong khi chuyển đổi từ Exchange 2003 sang Exchange 2007. Trong trường hợp như vậy, các thông tin bận/rỗi cho người dùng Exchange 2003 được lưu trong thư mục hệ thống Schedule+ Free/Busy như những gì chúng ta đã biết trong phần đầu của bài này. Chính vì vậy, dịch vụ Availability phải thu được các thông tin thích đáng từ thư mục này và nó thực hiện công việc này bằng cách tạo các yêu cầu HTTP đến thư mục ảo /Public trên máy chủ mailbox Exchange 2003 mục tiêu. Quá trình này được mô tả trong hình 3. Khi thông tin này đã được gọi ra từ các máy chủ Exchange 2007 và Exchange 2003 thì dịch vụ Availability sẽ kết hợp các kết quả này và trả chúng về cho người dùng Outlook 2007.
Hình 3: Người dùng Outlook 2007 đang truy vấn các thông tin Free/Busy trên Exchange 2003 và Exchange 2007
Lúc này chúng tôi đã giới thiệu những gì sẽ xảy ra khi một người dùng đang sử dụng Outlook 2007. Vậy khi người dùng chạy Outlook 2003 nhưng đã kết nối với một mailbox Exchange 2007 thì điều gì sẽ xảy ra? Trong trường hợp này, bạn không có gì phải lo lắng về mailbox mục tiêu nằm trên Exchange 2003 hay Exchange 2007 vì máy khách Outlook 2003 sẽ cố gắng lấy về các thông tin bận/rỗi từ thư mục hệ thống Schedule+ Free/Busy. Lý do cho cách thực hiện này đơn giản là Outlook 2003 luôn luôn muốn công bố các thông tin bận/rỗi này ở đây và chính vì vậy không hề biết gì về dịch vụ Availability. Đây cũng là một giải pháp cho các phiên bản trước đây của Outlook, như Outlook 2002 hay Outlook 2000.
Đến đây chúng tôi chỉ mới liệt kê Outlook như một kiểu máy khách trong sử dụng. Tuy nhiên các nguyên lý đều tương tự nhau nếu bạn có sử dụng Outlook Web Access. Hay nói cách khác, nếu mailbox mục tiêu của bạn nằm trên Exchange 2007 thì dịch vụ Availability sẽ tạo kết nối RPC đến máy chủ mailbox đó. Nếu mailbox mục tiêu nằm trên Exchange 2003 thì dịch vụ Availability sẽ tạo các cuộc gọi HTTP và lấy các thông tin từ thư mục hệ thống Schedule+ Free/Busy.
Kết luận
Dịch vụ Availability trong Exchange 2007 là một dịch vụ quan trọng trong thực tế, nó chịu trách nhiệm cho việc thu thập các thông tin cập nhật về tình trạng bận/rỗi của các người dùng, và cho phép chúng có thể chạy trên cả Outlook 2007 và Exchange 2007. Trong hướng dẫn này, chúng tôi đã giới thiệu cho các bạn những hiểu biết về dịch vụ này và cách sử dụng nó như thế nào để lấy các thông tin này.