DSpace講座(三):API使用
DSpace講座(三):API使用
這週的教學,我們簡單地來看看DSpace的JAVA程式碼結構,讓你輕鬆知道怎麼使用DSpace的API。然後帶你看看DSpace的Content(對於Community、Collection、Item等物件)的API怎麼使用,並作一個簡單的範例JSP網頁。
這次教學的附件請點選這裡下載。
(more...)9月 04, 2008 4 Comments DSpace
這週的教學,我們簡單地來看看DSpace的JAVA程式碼結構,讓你輕鬆知道怎麼使用DSpace的API。然後帶你看看DSpace的Content(對於Community、Collection、Item等物件)的API怎麼使用,並作一個簡單的範例JSP網頁。
這次教學的附件請點選這裡下載。
(more...)8月 26, 2008 2 Comments DSpace
要怎麼把DSpace醜醜的介面改成像百年圖書館史那樣美美的介面呢?我假設你懂前端網頁版面怎麼呈現(包括HTML、CSS、JavaScript等等),但是要怎麼從後端的JSP去修改呢?我想應該很多人學過PHP,而JSP跟Servlet的架構又不太一樣。
本課堂希望讓大家瞭解DSpace的運作架構,從而頗析Servlet跟JSP的運作流程。再教導大家怎麼修改DSpace的JSP UI,使用一些基本的語法與連接到PostgreSQL資料庫的JDBC。
這份投影片大部分都是個人經驗,沒有受過正規JAVA教育的我,可能會哪裡寫錯,請大家多多包含。
本投影片的參考附件請按此下載。裡面包含文件、程式碼以及一個草稿用的心智圖(請用FreeMind開啟)。
(more...)8月 22, 2008 5 Comments 電腦軟體 網路管理
MediaWiki提供了權限設定的功能,但卻不能擋住上傳檔案的下載。由於有些文件我不希望別人直接從連結就下載,最好請他們從MediaWiki首頁開始點進去才能觀看,所以我需要一個控管這方面權限的功能。
MediaWiki預設是將檔案上傳到安裝目錄的/images資料夾當中,因此我只要設定Apache,如果要存取/images資料夾下的檔案時,必須要從MediaWiki的首頁過來,這樣就可以解決外連問題了。
請在Apache的httpd.conf設定檔裡面加入以下設定:
#以下是允許連結的網站
SetEnvIf Referer "^http://xxx\.xxx\.xx\.xxx/mediawiki/" local_ref
SetEnvIf Referer "^http://localhost/mediawiki/" local_ref
SetEnvIf Referer "^http://127\.0\.0\.1/mediawiki/" local_ref
#禁止使用者使用wget
SetEnvIfNoCase User-Agent "^Wget" banned_useragent
<Directory "C:/AppServ/www/mediawiki/images">
Order Deny,Allow
Deny from all
Allow from env=local_ref
</Directory>
以下解釋各設定:
再重新啟動Apache,設定就生效了。使用者只能從MediaWiki的首頁進去才能看得到上傳的圖片,而不能直接用網址連結!
(more...)8月 17, 2008 0 Comments 日記 政大圖檔
如果之後要我回味在政大的生活的話,我一定會很懷念假日空無一人的百年樓中,坐在這張紅色沙發,聆聽午後雷陣雨的時光。
是的,在這美好的週末假日,我把幾乎所有時間都泡在百年樓的實驗室當中。
大概是因為實驗室裡面越來越多人進來了,假日的百年樓格外地幽靜。最近每天下午都是雷陣雨,為山腰上的百年樓更添山中別墅的清幽感。
我在這邊玩SSH伺服器、又來玩xrdp、接著又要回來玩Apache的mod_auth_mysql,也是如此的快樂。
那張由於所辦整修而清出來的沙發,被擺在走廊之中。
想出去實驗室走走的時候,那就變成一個休憩的地方。
不管怎麼說,我還是很喜歡那張沙發。
因為買了新手機ASUS P750,就順便拍幾張照片來測試吧。
從背後看百年樓。但是知道這角度的學生,應該不多。
晚上的風雨走廊,老舊的磁磚、老舊的地板,以及走廊旁邊公佈欄貼著凌亂的活動宣傳單,是我對風雨走廊的印象。
(more...)8月 17, 2008 18 Comments 電腦軟體 網路管理
在之前我介紹過用VNC Server做到遠端連線的功能,但老實說,這VNC遠端桌面實在是不太好用,不僅操作上總是會有延遲的感覺,更讓人頭痛的是,VNC Server免費版本是沒有加密功能,很容易遭人竊取!
在網路上找來找去,總算找到一個解決方案:xrdp,開放原始碼的遠端桌面通訊協定(remote desktop protocol)伺服器。
使用xrdp,你就可以用Windows上的「遠端桌面連線」來看到Linux上的桌面喔!
網路上很多人都是用Ubuntu的apt-get來安裝xrdp,但這對RedHat家族的CentOS來說可就沒有apt-get這個方便的工具了。因此這一篇則是記錄著在CentOS 4.3上安裝設定xrdp與vnc server的方法,可惜最後我無法開機自動啟動VNC Server,這部份就得手動用SSH來開啟了。
CentOS要安裝xrdp可以用簡單的rpm來安裝。請到DAG: xrdp RPM packages for Red Hat, CentOS and Fedora裡面下載xrdp-0.4.0-1.rh9.rf.i386.rpm(注意到自己OS的版本)。
執行rpm安裝指令:
# rpm -ivh xrdp-0.4.0-1.rh9.rf.i386.rpm
這個rpm檔案安裝完畢之後,大部分設定檔是擺在「/etc/xrdp/」之中,在本文裡面我們並沒有特別要去變動的設定,在這邊就只稍微提一下而已。
xrdp啟動指令如下:
最後的「start」改用「stop」跟「restart」則會是停止、重新啟動的指令。
到這裡為止,你已經可以用遠端桌面來連到該伺服器了,但還不能順利執行遠端桌面喔。
為了讓伺服器在開機時就自動啟用xrdp,我們得要設定/etc/rc.local。編輯/etc/rc.local:
# vim /etc/rc.local
在最後加入以下指令
/etc/rc.d/init.d/xrdp_control.sh start
這樣開機就會自動啟動xrdp了。
p.s. 我後來在CentOS 5 Final上面安裝rpm檔案,卻會套件相依性的錯誤。用yum install那些套件之後,在安裝rpm,卻也會有錯誤訊息,而且到最後找不到xrdp_control.sh的位置。總之就是安裝失敗,真是讓人遺憾。
xrdp只是一個通訊協定,真正進行遠端桌面的還得依賴其他軟體,在此我們使用的是VNC Server。
VNC Server的啟動與設定方法我在之前VNCserver初始設定與自動啟動裡面有敘述過,這邊再簡單把作法帶過:
# vim /etc/sysconfig/vncservers
如果你要以dspace帳號登入,登入桌面為1024x768,那麼加入以下設定: VNCSERVERS="1:dspace"
VNCSERVERARGS[1]="-geometry 800x600"
# /etc/init.d/vncserver start
# su dspace
執行vncpasswd來設定密碼 #vncpasswd
Password: //輸入 VNC 密碼
Verify: //再輸入一次 VNC 密碼以確認
修改~/.vnc/xstartup (如果沒有這個檔案,那代表之前2個步驟沒有完成) # vim ~/.vnc/xstartup
該檔案的內容如下,請將SESSION_MANAGER與exec /etc/X11/xinit/xinitrc開頭的#註解拿掉,其他行則加上註解。參考如下: #!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
# exit
重新啟動VNC Server # /etc/init.d/vncserver restart
修改/etc/rc.local,把啟動的命令加進去# vim /etc/rc.local
在最後加入以下指令/etc/init.d/vncserver start
這樣就大功告成了。而VNC Server預設是會被防火牆擋住,所以只能靠xrdp進到本機端來連線。
根據之前在CentOS 5 Final安裝VNC Server的經驗,照理說在/etc/rc.local增加「service vncserver start」的指令應該就能夠開機自動啟動VNC Server,但嘗試多種設定方法之後依然失敗。VNC Server有在執行中,但並沒辦法開啟遠端桌面。
因此最後我的解決方案是,在需要用遠端桌面的時候,先以SSH登入Linux「service vncserver start」,再用遠端桌面登入Linux。
「遠端桌面連線」通常在「開始→所有程式(程式集)→附屬應用程式→通訊→遠端桌面連線」可以找到。
請在「電腦」的地方輸入該伺服器的IP或Domain Name,按下「連線」。
使用者名稱跟密碼隨便輸入,按下「確定」。
Module選擇「console」(本機操作),密碼則輸入在設定vncpasswd時的密碼。按下ok。
如果沒有出現錯誤訊息的話,那就可以順利進入到Linux的桌面囉!
如果出現error - connect problem,那得要用SSH登入Linux將vncserver restart囉。
這一篇從昨天晚上寫到今天下午,而且還不算是很完美的解決方案,有點讓人灰心啊。
(more...)8月 16, 2008 4 Comments 電腦軟體
Windows跟Windows之間可用網路上的芳鄰(NetBIOS)來傳輸資料,Linux跟Linux之間則常用SSH,Windows跟Linux之間則就得另找方法。
SSH是目前較為可靠、專為遠端操控和其他網路服務提供安全性的通訊協定,可以取代不夠安全的Telnet、FTP。此外,Linux備份最常用的工具rsync也是支援SSH,之前我在玩的CloneZilla Live也有用SSH來儲存硬碟映像檔的能力。
由於我還是覺得管理上Windows 2003 Server是比較方便的,因此我選擇在Windows上架設SSH伺服器,提供其他伺服器備份、傳輸資料。
Windows上的SSH伺服器「cwRsync Server」是自由軟體,安裝過程簡易,但我在操作的時候遇到了點問題,想說乾脆在這邊記錄一下整個安裝過程。
請選擇cwRsync_Server_2.1.4_Installer.zip這樣的檔名來下載喔!
解壓縮檔案之後,只有一個安裝檔,開啟執行。安裝過程中會花時間建立檔案,請耐心等待。
由於在Windows 2003 Server上建立檔案時是使用Windows的格式去寫入,而不是使用UNIX的格式,造成程式無法讀取。建立使用者的時候會使用到activate-user.sh就會有這個問題。我把activate-user.sh轉換成UNIX檔案提供下載:Google Page Creator空間,請取代安裝目錄裡面的\bin\activate-user.sh(預設是C:\Program Files\cwRsyncServer\bin\activate-user.sh)。
然後進入「開始→所有程式(程式集)→cwRsync Server→05. Start a Unix BASE Shell」。
新開出來的命令提示字元畫面會顯示以「$」開頭的命令列,此時請輸入「/bin/activate-user.sh」執行,系統時會出現訊息:
Do you want to activarte a (l)ocal or a (d)omain user [l/d]?
此時請按 l (小寫L)。如果系統沒有出線上面的訊息,而是出現「line 4: $'echo \r ': command not found」之類的訊息,那麼就得把activate-user.sh轉換成UNIX格式替換掉。
接著畫面最下方會出現:
Enter a user account for activation:
可輸入 Administrator 或是其他帳號。
然後,接下來出現的訊息都可直接按 Enter 跳過了。
在「我的電腦」上按右鍵,進入「管理」。
選擇左邊最下面的「服務及應用程式→服務」,再到右面找到「Openssh SSHD」跟「RsyncServer」兩個服務,按右鍵選擇「內容」。
啟動類型選擇「自動」,並按下「啟動」。RsyncServer也是一樣的作法。
我使用FileZilla Portable,伺服器型態使用「SFTP使用SSH2」來連線,確定上傳下載都沒問題,就大功告成囉。
至於cwRsync其他的設定我還沒研究,目前只碰到這邊而已,有興趣的話可以看看下面appleboy的Blog以獲得更多的資訊。
參考資料:
8月 12, 2008 4 Comments DSpace
根據之前的經驗與理解,我把DSpace的結構與該怎麼設計DSpace Metadata的方法整理成了一份投影片,以方便講解。
在研習班時,許多人仍然不能理解DSpace的資料結構為何要這樣設計,但其實這種資料結構方式在數位典藏系統當中隨處可見。如果拿交通大學雲門舞集舞作數位典藏來比對之下,會發現其實他們的設計概念跟DSpace不謀而合。這份投影片搭配著雲門舞集實例講解DSpace的架構,應該更讓人容易理解。
Metadata的概念被說到爛了,但是能夠設計一份漂亮的Metadata,這仍是很多人都做不到的事情。我列了一下在DSpace裡面設計Metadata要考慮到問題,但是由於DSpace受限於平面結構的Metadata,難以支援Metadata靈活的樹狀結構,這該如何解決,目前仍沒個定案。
此份投影片僅供參考,並不完全正確就是。
(more...)
Comments