Sun JavaTM System Calendar Server 62005Q4 (Calendar Server) 針對集中化行事曆和排程功能,為企業和服務提供者提供具有延展性的網路型解決方案。Calendar Server 支援事件和工作的個人行事曆與群組行事曆,還支援資源 (如會議室和設備) 行事曆。
如需有關基本配置分析藍本的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide」。
本章包含以下資訊:
在本章和以後的章節中,將指定完全合格的目錄路徑用於 Solaris 平台。Solaris 的預設路徑為:
/opt/SUNWics5/cal
/var/opt/SUNWics5
/etc/opt/SUNWics5
Linux® 的預設路徑為:
/opt/sun/calendar
/var/opt/sun/
/etc/opt/sun
Linux 使用者應該以其預設路徑取代顯示的所有指令中之 Solaris 預設路徑。
Calendar Server 的安裝和配置與舊版 Calendar Server (2003Q4 之前的版本) 的安裝和配置有很大不同。不再提供 Calendar Server 的獨立安裝程式。
如果您安裝的版本低於 Calendar Server 2003Q4 (6.0),則必須使用 Sun Java Enterprise System 安裝程式獲得 2005Q4 版本。您還可以使用此安裝程式安裝其他 Sun 元件產品和套裝軟體。如需有關 Java Enterprise System 安裝程式的資訊,請參閱「Sun Java Enterprise System 2005Q4 Installation Guide for UNIX」。
如果您要從舊版的 Sun Java Enterprise System 升級,升級程序在「Sun Java System 2005Q4 Upgrade and Migration Guide」中有說明。
如需有關從較舊版本的 Calendar Server 遷移的資訊,請參閱第 4 章, 資料庫遷移公用程式中的資訊。
安裝 Calendar Server 後,您必須對其進行配置。安裝程式不會將配置做為安裝程序的一部分執行。
執行 Directory Server 設定程序檔 (comm_dssetup.pl),以配置 Sun Java System Directory Server 5 (如果該程序檔尚未執行)。
此程序檔位於以下目錄中:/opt/SUNWcomds/sbin。
如需有關執行此程序檔的資訊,請參閱第 2 章, 目錄準備程序檔 (comm_dssetup.pl)。
執行 Calendar Server 配置程式 (csconfigurator.sh),以配置您站點的特定需求並建立新的 ics.conf 配置檔案。
如需 ics.conf 檔案中參數的說明,請參閱附錄 ECalendar Server 配置參數。
該程式位於以下目錄中:/opt/SUNWics5/sbin
如需有關執行 csconfigurator.sh 的資訊,請參閱第 3 章, Calendar Server 配置程式 (csconfigurator.sh)。
Calendar Server 特殊帳號包括:
Calendar Server 管理員是可以管理 Calendar Server 的具有相關密碼的特定使用者名稱。例如,Calendar Server 管理員可以啟動和停止 Calendar Server 服務、增加和刪除使用者、建立和刪除行事曆等等。該使用者擁有對 Calendar Server 的管理員權限,但不一定擁有對目錄伺服器的管理員權限。
Calendar Server 管理員的預設使用者 ID 是 calmaster,但如果願意,您可以在 Calendar Server 配置期間指定其他使用者。安裝後,您也可以在 ics.conf 檔案中的 service.admin.calmaster.userid 參數中指定其他使用者。
您為 Calendar Server 管理員指定的使用者 ID 必須是目錄伺服器中的有效使用者帳號。如果在配置期間,Calendar Server 管理員使用者帳號不存在於目錄伺服器中,則配置程式可為您建立該帳號。
下表說明 ics.conf 檔案中的 Calendar Server 管理員配置參數。
表 1–1 Calendar Server 管理員 (calmaster) 配置參數
這些特殊的帳號是 Calendar Server 執行時使用的使用者 ID 和群組 ID。除非有重要的原因讓您無法使用預設值,否則請使用預設值 icsuser 和 icsgroup,如果它們不存在,配置程式會自動建立這些值。
但是,如果願意,您可以在執行 Calendar Server 配置程式時,指定 icsuser 和 icsgroup 之外的其他值。這些值分別儲存在 ics.conf 檔案的 local.serveruid 和 local.servergid 參數中。
您必須以超級使用者的身份登入,或成為超級使用者 (root),才能安裝 Calendar Server。您也可以超級使用者的身份執行,以使用指令行公用程式來管理 Calendar Server。但對於某些工作,您應以 icsuser 和 icsgroup (或您所選的值) 的身份執行,而非以超級使用者的身份執行,以避免存取 Calendar Server 檔案時發生問題。
若要允許管理員管理使用者行事曆,您需要設定配置檔案 (ics.conf) 中的某個參數。預設為 "no",表示不允許此種代理伺服器認證。
如果您要使用 Communications Express,則必須將此參數設定為 "yes"。
如需有關如何設定此參數與驗證代理登入如何運作的說明,請參閱配置登入和認證。
一般使用者使用 Web 圖形化使用者介面 (GUI) Sun Java System Communications Express 從用戶端機器連線至 Calendar Server。使用者在 LDAP 目錄中必須具有唯一的項目。每位使用者均可以具有一個或多個行事曆,並可屬於一個或多個群組。
具有恰當權限的管理員可使用 Delegated Administrator 公用程式 (指令行) 或主控台 (GUI) 增加、刪除或修改使用者 LDAP 項目或資源 LDAP 項目。
如需有關 Delegated Administrator 公用程式 (commadmin) 的文件,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
如需有關 Delegated Administrator 主控台的文件,請參閱主控台的線上說明。
此外,必要時您可以使用 ldapmodify 直接修改 LDAP 項目。如需有關 ldapmodify 的資訊,請參閱「Sun ONE Directory Server Resource Kit 5.2 Tools Reference」。
以前版本的 Java Enterprise System 的部署中使用的公用程式 (例如 csuser) 仍隨附於 Calendar Server。如果您要在部署中使用 Access Manager,請勿將這些公用程式用於管理或建立使用者、網域或資源 LDAP 項目。但有一些例外,至於這些例外之處,本指南會引導您使用正確的公用程式。
本小節說明使用者和使用者行事曆管理的以下方面﹕
Calendar Server 使用者可手動或自動建立:
手動 — 如果將 Directory Server 配置為使用 Schema 2,管理員可使用 Delegated Administrator 將使用者增加至目錄伺服器,然後使用 Calendar Server cscal 公用程式建立這些使用者的預設行事曆。
如果將 Directory Server 配置為使用 Schema 1,管理員可使用 Calendar Server csuser 公用程式同時建立使用者和行事曆。
自動 (自動佈建) — 如果已配置自動佈建,並且使用者已存在於 LDAP 目錄中,則在該使用者首次登入時,Calendar Server 會自動建立預設行事曆。
在非託管網域模式中,Calendar Server 建立該使用者 ID 之預設行事曆的行事曆 ID (calid)。例如,如果 John Doe 的使用者 ID 為 jdoe,他的預設行事曆 calid 將為 jdoe。
在託管網域模式中,calid 為使用者 ID 和使用者網域的組合。例如,如果 John Doe 位於網域 example.com 中,並且其使用者 ID 為 jdoe,則其在託管網域環境中的 calid 為 jdoe@example.com。
若要自動佈建,必須滿足以下條件:
ics.conf 檔案中的 local.autoprovision 參數必須設定為 “yes” (即預設)。
在託管 (虛擬) 網域模式中,該網域必須啟用行事曆。如果某一網域的 LDAP 項目包含 icsCalendarDomain 物件類別,則該網域已啟用行事曆。
例如,假定 tchang 存在於目錄伺服器中,但尚未啟用行事曆功能 (即無預設行事曆)。當 tchang 首次登入 Calendar Server 時,Calendar Server 會自動為 tchang 啟用行事曆功能,並使用 calid tchang 建立預設行事曆。
Calendar Server 需要目錄伺服器 (如 Sun Java System Directory Server) 來認證使用者 (並儲存使用者喜好設定)。但是,為允許存取非 LDAP 目錄伺服器中定義的使用者,Calendar Server 納入了 Calendar Server API (CSAPI),以用於撰寫外掛程式來存取非 LDAP 目錄。如需有關 CSAPI 的資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
Calendar Server 允許使用者透過設定儲存在目錄伺服器中的使用者喜好設定屬性來自訂其行事曆資料檢視。使用者喜好設定 (與 Calendar Server 配置參數相對) 是指行事曆資料的使用者介面表示法,包括使用者名稱、電子郵件位址以及描繪行事曆檢視時優先使用的色彩之類的項目。
如需喜好設定清單,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」中的 get_userprefs 和 set_userprefs WCAP 指令。
行事曆群組是個別已訂閱行事曆的已命名清單。群組行事曆允許將多個行事曆組合成單一行事曆以供檢視。使用者使用 Communications Express 圖形化使用者介面建立群組。
例如,使用者可以擁有由私人行事曆、部門行事曆和公司假日行事曆所組成的行事曆群組。使用者還可以使用行事曆群組來選取行事曆清單且並排檢視這些行事曆,或邀請這些行事曆的所有者參與某個事件。
這些群組不會與 LDAP 群組混淆。在使用者介面建立的群組儲存在 icsSet 屬性中的使用者 LDAP 項目中。因此,其他使用者搜尋 LDAP 中的與會者時看不到它們。
如需有關 Calendar Server 使用者的更多資訊,請參閱第 14 章, 管理使用者和資源。
資源是指可以使用行事曆排程的任何事物,例如會議室或投影機。每個此類事物都有一個單獨的資源 LDAP 項目。使用適當的工具建立 LDAP 項目和與其相關聯的行事曆:
對於 Schema 2 - 使用 Delegated Administrator 建立資源 LDAP 項目,使用 Calendar Server 公用程式 resource 建立行事曆。
對於 Schema 1 - 使用可同時建立資源 LDAP 項目和行事曆的 csresource create 指令。
本小節說明以下有關 Calendar Server 資料的資訊:
Calendar Server 資料格式以 RFC 2445「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」為模型。Calendar Server 支援以下格式:
XML (.xml) — Communications Express 的介面。
iCalendar (.ical) — 預設格式。
您可以使用 CSAPI 為 WCAP 協定開發翻譯者 DLL 或共用程式庫。如需有關 WCAP 和 CSAPI 的資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
行事曆資料能以 iCalendar (.ical) 或 XML (.xml) 格式匯入和匯出。Calendar Server 管理員可以使用 Calendar Server csimport 和 csexport 公用程式匯入和匯出行事曆資料。一般使用者可以使用 Communications Express 使用者介面匯入和匯出行事曆資料。
行事曆可做為內嵌在電子郵件訊息和網頁中的連結,以供參照。在這種情況下,只要該行事曆允許讀取,使用者無需登入 Calendar Server,按一下連結即可檢視行事曆。例如,以下連結指定名為 Auditorium 的資源位置:
http://calendar.sesta.com:8080/?calid=Auditorium
Calendar Server 支援伺服器端電子郵件警示,這種警示可以傳送至收件者清單。電子郵件訊息的格式可以配置,且被作為伺服器屬性 (而非使用者屬性或行事曆屬性) 來維護。Calendar Server 對 ITIP/IMIP 標準 (RFC 2446 和 RFC 2447) 的支援有限,其中包括用於事件的 ITIP 方法 PUBLISH、REQUEST、REPLY 和 CANCEL。
LDAP 資料快取記憶體選項可確保 LDAP 資料在確定後立即可用,即使 LDAP 目錄伺服器被配置為資料確定後延遲一段時間才可用。
例如,如果您的站點已部署主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄,這樣就會使 LDAP 資料在提交後延遲一段時間才可用,則 LDAP 資料快取記憶體可確保您的 Calendar Server 用戶端擁有準確的 LDAP 資料。
本小節包含以下主題:
請使用以下指示來確定您的站點是否應配置 LDAP 資料快取記憶體:
如果您站點上的 Calendar Server 可直接存取主要 (或根) LDAP 目錄伺服器,並且 LDAP 資料在確定後立即可用,則無需配置 LDAP 資料快取記憶體。確定 local.ldap.cache.enable 參數設定為 "no" (此為預設)。
如果您已部署主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄,則 LDAP 資料會在確定後延遲一段時間才可用。請配置 LDAP 資料快取記憶體以確保您的一般使用者具有最新的資料。
主要/從屬 LDAP 配置包括一個主要 (根) 目錄伺服器和一個或多個從屬 (消耗或複製) 目錄伺服器。Calendar Server 可直接或透過從屬目錄伺服器存取主要 LDAP 目錄伺服器:
如果 Calendar Server 直接存取主要 LDAP 目錄伺服器,則 LDAP 應準確無誤,並且您無需配置 LDAP 資料快取記憶體。
如果 Calendar Server 透過從屬目錄伺服器存取主要 LDAP 目錄伺服器,LDAP 資料變更通常會使用 LDAP 參照以不需設定的方式寫入主要目錄伺服器中,然後 LDAP 參照將資料複製回每台從屬目錄伺服器。
在此第二種配置中,由於從屬目錄伺服器的 LDAP 資料在確定後要延遲一段時間才可用,因此可能發生 LDAP 資料不準確的問題。
例如,Calendar Server 確定一個 LDAP 資料變更,但由於主要目錄伺服器正在更新每台從屬目錄伺服器而造成延遲,新資料在特定的一段時間內不可用。隨後的 Calendar Server 用戶端作業就會使用舊的 LDAP 資料並呈現過期的檢視。
如果更新從屬目錄伺服器而造成的延遲很短暫 (僅幾秒鐘),用戶端可能不會遇到問題。但是,如果延遲較長 (幾分鐘或幾小時),則在延遲期間,用戶端會顯示不準確的 LDAP 資料。
下表列出受此種延遲影響的作業和 LDAP 屬性:
作業 |
LDAP 屬性 |
---|---|
自動佈建 |
icsCalendar、icsSubscribed、icsCalendarOwned 和 icsDWPHost |
行事曆群組 |
icsSet |
行事曆建立 |
icsCalendarOwned、icsSubscribed |
行事曆訂閱 |
icsSubscribed |
使用者選項 |
icsExtendedUserPrefs、icsFirstDay、icsTimeZone 和 icsFreeBusy |
行事曆搜尋 |
icsCalendarOwned |
LDAP 資料快取記憶體透過為 Calendar Server 用戶端提供最新的 LDAP 資料 (即使主要目錄伺服器尚未更新每台從屬目錄伺服器) 來解決主要/從屬 LDAP 配置問題。
如果已啟用 LDAP 資料快取記憶體,Calendar Server 會將已確定的 LDAP 資料寫入快取記憶體資料庫 (ldapcache.db 檔案) 中。依預設,LDAP 快取記憶體資料庫位於 ldap_cache 資料庫目錄中,但是如果願意,您可以配置其他位置。
用戶端變更單一使用者的 LDAP 資料時,Calendar Server 會將已修訂的資料寫入 LDAP 快取記憶體資料庫 (以及從屬目錄伺服器) 中。隨後的用戶端作業會從快取記憶體資料庫中擷取 LDAP 資料。對於單一使用者,此資料擷取適用於以下作業:
登入時使用者的屬性
使用者的選項 (例如色彩方案或時區)
使用者的行事曆群組
使用者的已訂閱行事曆清單
因此,LDAP 資料快取記憶體資料庫提供:
單一系統上各程序間的資料一致性 - 該資料庫適用於多處理器系統上的所有 Calendar Server 程序。
各使用者階段作業間的資料持續性 - 該資料庫是永久性的,且無需更新。
LDAP 資料快取記憶體不提供:
讀取快取記憶體以搜尋一系列項目。例如,搜尋會議的與會者。此類搜尋會遇到 LDAP 延遲。例如,如果 LDAP 搜尋選項處於使用中,並且在緊接新行事曆建立後的一段延遲時間內執行了搜尋,則新建立的行事曆不會顯示在該行事曆搜尋中。
跨多台前端伺服器讀取與寫入快取記憶體。每台前端伺服器都有其自己的快取記憶體,各快取記憶體無法辨識彼此的資料。
對不是始終登入同一伺服器的使用者的處理能力。此類使用者會在每台伺服器的快取記憶體中產生不同的 LDAP 資料。
Calendar Server 使用存取控制清單 (ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 [工作]) 的存取控制。
本小節涵蓋以下主題:
使用者透過 Communications Express 登入 Calendar Server 時,依預設認證程序並不加密登入資訊,包括使用者名稱和密碼。如果您要在網站上進行安全登入,請將 Calendar Server 配置為使用安全套接層 (SSL) 協定來加密登入資料。如需更多資訊,請參閱第 8 章, 配置 SSL配置 SSL。
Calendar Server 在決定行事曆、行事曆特性以及行事曆元件的存取時,會考量以下使用者:
主要行事曆所有者對自己的行事曆擁有完全存取權限。Calendar Server 對存取其自身行事曆的主要所有者不執行任何存取控制檢查。
管理員 (例如 calmaster) 或超級使用者 (例如 root) 不受存取控制限制,可以在行事曆或行事曆元件上執行任何作業。如需更多資訊,請參閱Calendar Server 特殊帳號。
主要行事曆所有者可為自己的行事曆指定其他所有者。然後,其他所有者就可代表主要所有者為行事曆排程、刪除、修改、接受或拒絕事件或待辦事項 (工作)。
如果 ics.conf 檔案中的 service.http.allowanonymouslogin 設定為 “yes” (預設),則特殊行事曆 ID (calid) anonymous 可使用任何密碼存取 Calendar Server。anonymous 使用者不與任何特定網域關聯。您可以透過編輯 calstore.anonymous.calid 參數來變更 anonymous 使用者的 calid。
如果某行事曆的權限允許所有使用者讀取,則您還可以匿名地檢視該行事曆。例如,以下連結允許使用者匿名地檢視 calid 為 tchang:meetings 的行事曆 (如果行事曆的權限允許所有使用者讀取):
http://calendar.sesta.com:8080/?calid=tchang:meetings
anonymous 使用者可以檢視、列印及搜尋行事曆中的公開事件和工作,但不能執行任何其他作業。
如需有關匿名檢視資源行事曆的資訊,請參閱連結至行事曆。
Calendar Server 使用存取控制清單 (ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件和待辦事項 [工作]) 的存取控制。ACL 由一個或多個存取控制項目 (ACE) 組成,這些存取控制項目是共同套用於同一行事曆或元件的字串。ACL 中的各個 ACE 必須由分號分隔。例如:
jsmith^c^wd^g 由單一 ACE 組成。
@@o^a^r^g;@@o^c^wdeic^g;@^a^sf^g 由三個 ACE 組成。
ACE 由以下元素組成,其中各個元素由指數符號 (^) 分隔:
Who- 套用 ACE 的個人、使用者、網域或使用者類型。
What- 要存取的目標,例如行事曆、行事曆元件 (例如事件和待辦事項 [工作]) 或行事曆特性。
How- 所許可的存取控制權限類型,例如讀取、寫入或刪除。
Grant- 被授予或被拒絕的特定存取控制權限。
例如,在 ACE jsmith^c^wd^g 中:
jsmith 為 Who 元素,指示 ACE 套用於誰。
c 為 What 元素,指示要存取的內容 (僅行事曆元件)。
wd 為 How 元素,指示將授予或拒絕哪些存取權限 (寫入與刪除)。
g 為 Grant 元素,指示將行事曆元件的指定存取權限 (寫入與刪除) 授予 jsmith。
Who 元素是 ACE 的主要值,指明 ACE 套用於誰,如個別使用者、網域或使用者的特定類型。
Who 也稱為通用主要名稱 (UPN)。使用者的 UPN 是與使用者網域組合的使用者登入名稱。例如,網域 sesta.com 中使用者 bill 的 UPN 為 bill@sesta.com。
表 1–2 存取控制項目 (ACE) 字串的「Who」格式
What 元素指定要存取的目標,例如行事曆、行事曆元件 (事件或工作) 或行事曆特性。
表 1–3 存取控制項目 (ACE) 字串的「What」值
值 |
說明 |
|
---|---|---|
|
指定行事曆元件,例如事件和工作 |
|
|
指定行事曆特性,例如名稱、說明、所有者等 |
|
|
指定整個行事曆 (所有),包括元件與特性 |
How 元素指定所許可的存取控制權限類型,例如讀取、寫入或刪除。
表 1–4 存取控制項目 (ACE) 字串的「How」類型
類型 |
說明 |
---|---|
r |
讀取存取。 |
w |
寫入存取,包括增加新項目和修改現有項目。 |
d |
刪除存取。 |
s |
排程 (邀請) 存取。可以產生請求,將會接受回覆,並且會允准其他 ITIP 排程互動。 |
f |
僅空閒/忙碌 (空閒時間) 存取。空閒/忙碌存取意味著使用者可以看到行事曆中已排程的時間,但是看不到事件詳細資訊。相反,只會看到「非空閒時間」幾個字出現在已排程時段的旁邊。無任何已排程事件的時段旁邊列示有「空閒時間」。 |
l |
網域的查找存取。 |
e |
代表進行回覆存取。此類型授予使用者代表行事曆的主要所有者接受或拒絕邀請的權限。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
i |
代表進行邀請存取。此類型授予使用者代表行事曆的主要所有者建立及修改元件的權限,在這些元件中已經邀請了其他與會者。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
c |
代表進行取消存取。此類型授予使用者代表行事曆的主要所有者取消元件的權限,已將與會者邀請至這些元件。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
z |
自我管理存取 - 授予認證的使用者增加或移除存取控制項目的權限。具有此權限的使用者可以增加和移除其自身的權限。例如,UserA 可能沒有對 UserB 的行事曆的寫入存取權限,但 UserA 已被授予對 UserB 的行事曆的自我管理存取權限。因此,UserA 可以增加授予其自己對 UserB 的行事曆的寫入存取權限的存取控制項目。 注意:此權限不允許 UserA 授予其他使用者對 UserB 的行事曆的存取權限。例如,自我管理權限不允許 UserA 授予 UserC 對 UserB 的行事曆的存取權限。 |
Grant 元素指定是授予還是拒絕特定存取類型的存取權限,例如 d (刪除) 或 r (讀取)。
表 1–5 存取控制項目 (ACE) 字串的 Grant 值
值 |
說明 |
---|---|
g |
授予特定的存取控制權限。 |
d |
拒絕特定的存取控制權限。 |
以下範例說明 ACE 的使用:
授予使用者 ID jsmith 對整個行事曆 (包括元件及特性) 的讀取存取權限:
jsmith^a^r^g
僅授予 jsmith 對元件的寫入和刪除存取權限:
jsmith^c^wd^g
僅授予 sesta.com 網域中的所有使用者對元件的排程、空閒時間和讀取存取權限:
@sesta.com^c^sfr^g
僅授予全部所有者對元件的寫入和刪除存取權限:
@@o^c^wd^g
拒絕 jsmith 對行事曆資料的所有存取權限:
jsmith^a^sfdwr^d
授予全部所有者對整個行事曆 (包括元件和特性) 的讀取、排程及空閒時間存取權限:
@@o^a^rsf^g
授予所有使用者讀取存取權限:
@^a^r^g
Calendar Server 讀取 ACL 時,它會使用所遇到的授予或拒絕對目標的存取權限的第一個 ACE。因此,ACL 的排序非常重要,應該排序 ACE 字串,使較特定的 ACE 顯示在較一般的 ACE 之前。
例如,假定行事曆 jsmith:sports 之 ACL 中的第一個 ACE 授予所有使用者讀取存取權限。然後,Calendar Server 遇到了第二個 ACE,該 ACE 拒絕 bjones 對本行事曆的讀取存取權限。這種情況下,Calendar Server 會授予 bjones 對本行事曆的讀取存取權限,並因為第二個 ACE 是一個衝突而將其忽略。因此,為確保特定使用者 (例如 bjones) 的存取權限得到允准,在 ACL 中應該將 bjones 的 ACE 放置在全域性較強的項目 (例如套用至行事曆的所有使用者的 ACE) 之前。
Sun Java System Calendar Server 包括以下內部子系統:
以下圖形顯示經由這些子系統的邏輯流程。
用戶端透過使用 HTTP 協定層提交請求來擷取行事曆資料。這是最小的 HTTP 伺服器實作,可有效支援行事曆請求。這透過將 Web 行事曆存取協定 (WCAP) 指令附加至 URL 來完成。
WCAP 是一種開放協定,允許您將自己的介面寫入 Calendar Server。使用 WCAP 指令 (副檔名為 .wcap),您可以執行大多數伺服器指令,但某些管理指令除外。您可以使用 WCAP 指令請求以包含在 HTML 中的 XML 或 iCalendar 格式輸出。
如需有關 WCAP 指令的資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
核心子系統包括存取控制元件、使用資料翻譯者格式化來自行事曆資料庫元件的資料的 WCAP 和所有 CSAPI 外掛程式。核心子系統會處理行事曆請求並產生 WCAP 輸出。核心子系統還處理使用者認證,包括Calendar Server API (CSAPI)。
資料庫子系統使用 Sleepycat Software 的 Berkeley DB (資料庫 API 不是公用的)。資料庫子系統可向資料庫儲存行事曆資料,也可從資料庫中擷取行事曆資料,其中包括事件、待辦事項 (工作) 和警示。行事曆資料以 iCalendar 格式為基礎,而用於 Calendar Server 資料的模式是 iCalendar 標準的超集合。
資料庫子系統傳回低階格式的資料,然後核心 UI 產生器會翻譯低階資料並將其透過 WCAP 傳送。
對於分散式行事曆資料庫,Calendar Server 使用分散式連線協定 (DWP) 以提供網路功能。如需更多資訊,請參閱分散式資料庫服務:csdwpd。
如需有關行事曆資料庫的資訊,請參閱第 16 章, 使用 csdb 管理 Calendar Server 資料庫。
Calendar Server 服務做為常駐程式 (或程序) 執行。這些服務包括:
csadmind 服務為管理 Calendar Server 提供單點認證。csadmind 服務還管理警示通知和群組排程請求。
由於 Calendar Server 使用 HTTP 做為其主要傳輸方式,因此 cshttpd 服務會偵聽來自 Calendar Server 一般使用者的 HTTP 指令、接收使用者指令和傳回行事曆資料,這取決於內送 WCAP 指令中指定的格式。資料可以格式化為標準 RFC 2445 iCalendar 格式 (text/calendar) 或 XML 格式 (text/xml
正確配置後,csstored 服務會建立行事曆資料庫的自動備份。但是,該服務是在未配置的狀態下安裝的。您可以在執行 csconfigurator.sh 配置程式時將 Calendar Server 配置為自動備份,或者您可以稍後再按照本指南中的說明配置。
如果該服務是在未配置和停用狀態中啟動的,它將每隔 24 小時向管理員傳送一次訊息,說明未啟用自動備份。
如需有關如何配置此服務以執行備份的說明,請參閱第 10 章, 配置自動備份 (csstored)。
正確配置後,該服務具有以下功能:
系統啟動後每隔 24 小時 (預設間隔) 拍攝一張即時 Calendar Server 行事曆資料庫的快照。此間隔是可配置的。(如果該服務已停止並重新啟動,它不會再拍攝其他快照,除非從上次快照後又過了一個配置的間隔。)
透過對備份副本執行 csdb verify 來驗證資料庫。
如果驗證步驟失敗 (資料庫損毀),該服務將通知管理員。管理員可以將即時資料庫置於唯讀模式,讓您不必關閉資料庫就可以排解問題。處於唯讀模式時,不接受任何修改或刪除作業事件 (無記錄)。如需有關唯讀模式的更多資訊,請參閱防止服務在資料庫發生損毀時中斷 (唯讀模式)。
發現損毀時,管理員必須介入。系統會向管理員傳送通知。
如果驗證成功,csstored 執行以下附加工作:
建立由資料庫快照以及從上一個快照起就套用於它的所有作業事件記錄檔組成的歸檔檔案備份。
建立由資料庫快照以及套用於它的所有作業事件記錄檔組成的緊急備份。
如果即時資料庫被毀壞,緊急備份將以最少的資料遺失和當機時間立即提供資料庫的最新備份。
如需有關如何復原自動備份副本的資訊,請參閱復原自動備份副本。
ENS 服務由以下各服務組成:
csnotifyd – csnotifyd 服務會傳送事件和待辦事項 (工作) 的通知。csnotifyd 服務還可訂閱警示事件。發生警示事件時,csnotifyd 會向各收件者傳送 SMTP 訊息提醒通知。
enpd – enpd 服務充當事件警示的代理程式。enpd 服務會接收來自 csadmind 服務的警示通知,檢查是否訂閱了該事件,然後透過將訂閱的警示通知傳送給 csnotifyd,來通知該事件的訂閱者。enpd 服務還會接收和儲存來自 csnotifyd 的訂閱與取消訂閱請求。
enpd 和 csnotifyd 服務無需與 cshttpd、csdwpd 或 csadmind 程序在相同的伺服器上執行。
若要將行事曆資料庫分散於多台後端伺服器上,則需要 csdwpd 服務。csdwpd 服務可讓您將行事曆資料庫分散於同一 Calendar Server 配置中的多台後端伺服器,以形成分散式行事曆儲存。
csdwpd 服務在後端伺服器的背景中執行,並接受遵循資料庫連線協定 (DWP) 的行事曆資料庫存取請求。DWP 是內部協定,可為 Calendar Server 資料庫提供網路功能。
Calendar Server 包括以下 API 和 SDK:
Calendar Server 支援 WCAP 3.0,WCAP 3.0 是一個基於指令的高階協定,允許與用戶端進行通訊。WCAP 指令 (副檔名為 .wcap) 可讓用戶端獲得、修改和刪除行事曆元件、使用者喜好設定、行事曆特性以及其他行事曆資訊 (例如時區)。WCAP 元素 (例如時間、字串和參數) 通常遵循 RFC 2445、RFC 2446 和 RFC 2447 規格。
WCAP 使用以下格式在 HTTP 訊息中傳回輸出行事曆資訊:
標準 RFC 2445 iCalendar 格式 (text/calendar)
XML 格式 (text/xml)
透過 WCAP 指令,使用 login.wcap 登入的 Calendar Server 管理員具有以下能力:
置換 WCAP 指令的存取控制
管理員可以使用 WCAP 指令讀取 (擷取)、替代 (儲存) 或刪除其他使用者的行事曆。若要使管理員擁有此權限,ics.conf 檔案中的以下參數必須設定為 "yes":
service.admin.calmaster.overrides.accesscontrol="yes"
擷取和修改任何使用者的喜好設定
管理員可以使用 get_userprefs.wcap 和 set_userprefs.wcap 來擷取和修改任何使用者的喜好設定。若要使管理員擁有此權限,ics.conf 檔案中的以下參數必須設定為 "yes":
service.admin.calmaster.wcap.allowmodifyuserprefs="yes"
如需更多資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
Calendar Server API (CSAPI) 可讓您自訂 Calendar Server 的功能範圍 (例如使用者登入認證、存取控制和行事曆查找)。例如,依預設,Calendar Server 會使用 LDAP 目錄伺服器中的項目認證使用者並儲存使用者喜好設定。CSAPI 可讓您透過實作不基於 LDAP 目錄伺服器的另一個認證機制,置換預設 Calendar Server 認證。
如需有關 CSAPI 的資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
事件通知服務 (ENS) 是一個警示派送程式,它會偵測警示佇列中的事件,並將這些事件的通知傳送給其訂閱者。ENS API 可讓程式設計師修改 Calendar Server 使用的發佈和訂閱功能,以執行訂閱事件、取消訂閱事件以及通知事件訂閱者之類的功能。ENS API 由這些特定 API 組成:已發佈的 API、訂閱者 API 以及發佈和訂閱派送程式 API。
如需有關 ENS API 的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Event Notification Service Guide」。
Calendar Server 所提供的 authSDK 可用於認證使用者。您可以透過 authSDK 將現有的入口網站服務與 Calendar Server 整合,從而讓使用者無需重新認證即可存取各種應用程式。authSDK 包含封裝在 DLL/共用物件程式庫和標頭檔案中的功能。
Calendar Server 和 authSDK 之間建立的連線會形成一種信任關係。如果使用者登入並成功地認證至 authSDK,則 Calendar Server 會接受代理程式所產生的憑證,並提供其功能。
如需有關 authSDK 的資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。