摘要:目前,數字圖書館已是必然趨勢。單純的郵件服務已經無法滿足現代數字圖書館用戶的需要。手機由于其良好的便攜性和強大的功能,已經成為人們的基本工具。郵件服務配合手機的短信息服務,不僅能夠確保數字圖書館服務的及時性、可靠性,還保證了服務的多樣性。可以根據不同人群的不同需要來定制服務,滿足人們的各種需求。該文列舉了具體的實現方案。
關鍵詞:數字圖書館;郵件服務;短信息服務
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)31-1003-02
1 引言
21世紀,進入了高科技知識技術時代,計算機、信息和通訊等高科技技術的迅速發展將圖書館推向自動化、電子化和數字化的方向發展。數字圖書館大大提高了信息資源的整理、管理、提取的效率和質量,是現代圖書館的發展趨勢。但是數字圖書館的許多服務,例如預約通知、新書通知、還書提醒等等,還是要求圖書館工作人員人工發郵件或打電話來完成,工作效率和質量都差強人意。郵件服務是必不可少的,但是它的及時性難以保證,而且容易被郵件系統攔截。手機作為人們日常生活的必備工具,發送方便、溝通及時、覆蓋范圍廣、信息到達率高,能夠確保信息傳遞的及時性和可靠性。構建一個支持手機短信服務和郵件服務的數字圖書館,不僅能夠大大提高數字圖書館的靈活性和效率,還減少人工介入,節省了人力資源。
2 實現技術
2.1 Java Mail技術
JavaMail API(Application Programming Interface,應用程序編程接口)是一套消息通信框架,用來構建平臺無關、并使用e-mail消息傳遞機制的應用程序。它給Java應用程序開發者提供了獨立于平臺和協議的郵件/通訊解決方案。
2.2 Quartz
Quartz是個開源的作業調度框架,允許開發人員根據時間間隔(或天)來調度作業,為在Java應用程序中進行作業調度提供了簡單卻強大的機制。
2.3 Java串口操作進行短信收發技術
Java本身不具備直接訪問硬件設置的能力,都是通過調用本地方法來實現的。Java Communications API是SUN公司提供的Java串口操作的解決方案,可以在SUN公司的網站免費獲取。
3 具體實現
3.1 使用Java Mail發送郵件
sendMail是發送郵件的核心方法,它接受發件用戶、收件地址、郵件主題、郵件內容等4個參數,發件用戶對象擁有發件地址和發郵件需要的用戶名和密碼驗證,通過驗證后將郵件發送。
對于需要群發的郵件可以通過抄送和暗抄送來實現(ccto、bccto是抄送和暗送的郵件地址),也可以通過多次調用sendMail來實現。郵件服務可以靈活配置,滿足不同的需要,大大提高了郵件服務的靈活性。
3.2 Java串口收發短信息
下面的截圖是Java串口收發短信息的核心方法。SendMsg是發送短信息的方法;我們設置了自動接受短信息,通過監聽器來實現自動收受。如果手機收到短信息會自動觸發監聽器方法serialEvent,我們將收到的短信息寫入指定的excel文件,并在電腦桌面給出收到新短信息的提示信息,確保短信息服務的及時性。
如果是英文數字的話,直接發送就行了,接收到的也是ASCII碼,無需編碼。如果是中文的話,要先進行Unicode編碼,接收也一樣,收到之后要進行Unicode轉gb的轉換。
3.3 Quartz
Quartz 調度包的兩個基本單元是作業和觸發器。作業是能夠調度的可執行任務,觸發器提供了對作業的調度。Quartz中將它們分離開來,提高了調度靈活性和擴展性。通過把要執行的工作與它的調度分開,Quartz允許在不丟失作業本身或作業的上下文的情況下,修改調度觸發器。而且,任何單個的作業都可以有多個觸發器與其關聯。
Execute方法是作業的具體實現,將自己要做的任務操作加入,Quartz會按照設定時間表來調用此方法,完成其中的任務。例如,你可以在Execute方法中調用SendMail方法來發送郵件等等。
觸發器可以實現對任務執行的調度,即設定作業執行的時間表。Quartz提供了幾種不同的觸發器,復雜程度各不相同,可以調度各個粒度的作業。此處采用CronTrigger作為系統實現的觸發器,CronTrigger支持比SimpleTrigger更具體的調度,而且也不是很復雜。基于Cron表達式,CronTrigger 支持類似日歷的重復間隔,而不是簡單的周期時間間隔。
CronExpression對象設定了任務執行時間表,此處設定為每天18點執行郵件服務的任務。我們可以在下班后,圖書館系統沒有繁重任務時,開始進行郵件服務。我們在進行預約到書、借書歸還提醒的郵件服務的同時,提供同樣的短信息服務。確保圖書館服務的能夠及時準確的完成。
4 展望與小結
基于Java實現的數字圖書館的郵件和短信息服務,都是采用成熟的開源產品,能夠大幅減少開支,而且能夠很容易獲得強有力的技術支持。Java是與平臺無關的,對硬件系統的要求不高,可移植性好,能夠很簡單地部署在不同的硬件平臺上而不用修改代碼。
通過加入了郵件服務和短信息服務后,預約書已到提醒、歸還借書提醒、每日(周)新書上架提醒等服務能夠更及時地、便捷地為用戶所使用。圖書館和用戶之間建立了更加緊密的聯系,加速并保證了信息的有效傳遞,對圖書館和用戶而言,達到一個雙贏。
參考文獻:
[1] Lipton M,Jang S.用 Quartz 進行作業調度[EB/OL].[2008-07-08].http://www.ibm.com/developerworks/cn/java/j-quartz/index.html.
[2] Sun Microsystems. Java(tm) Communications API Users Guide[EB/OL].[2008-07-08].http://java.sun.com/products/javacomm/reference/docs/API_users_guide_3.html.
[3] 潘春華. 圖書館短信息服務平臺構建實例[J].圖書管建設,2006(6):76-78.
[4] Jguru Corporation.Fundamentals of the JavaMail API[EB/OL].[2008-07-08].http://java.sun.com/developer/onlineTraining/JavaMail/contents.html.