Thursday, 8 December 2011

用VirtualBox虚拟64位RedHat(linux)如何与宿主windows共享数据

用VirtualBox虚拟64位RedHat(linux)如何与宿主windows共享数据

0人收藏此文章, 收藏此文章 发表于3个月前 , 已有114次阅读 共0个评论 0人收藏此文章
因为要在虚拟机上安装Oracle数据库,而我的U盘只有可怜的1G--四年前的。好了废话不多说了。
1、设置数据空间
点击设置
选择 数据空间-> 添加固定分配。在 数据空间位置导入您要共享的文件夹;设置 数据空间名称(不要忘了点选 固定分配哦)。
2、安装VirtualBox上的增强功能。
 点击上面的按钮” 设备“,选择“ 安装增强功能”。
好了,如果出现上面的图示。或者df 里 有了这个光盘。说明你刚完成增强功能光盘的挂载。
进入(cd /media/VBOXADDITIONS_4.1.2_73507/ )/media/VBOXADDITIONS_4.1.2_73507/目录。
霹雳扒拉 输入 sudo sh ./VBoxLinuxAdditions.run 好了“Enter”。

3、完了吗。。NO ,最后一步啦。。
首先,确定你是root用户。(嘿嘿)
在终端中输入: mkdir /mnt/share #share 是你决定在linux中的目录名
mount -t vboxsf youname /mnt/share (youname是你给共享文件夹的命名)#就是数据空间的名称啦
再在输入: cd /mnt/share
是不是已经好了,试试看 !
什么??你要用VirtualBox安装的是Windows虚拟机。。。。。。。。。
那么看下这个《如何安装virtualbox虚拟机的增强功能》 http://wo.115.com/?ct=detail&bid=8535944&id=29150

Wednesday, 7 December 2011

Linux OPENSSL服務器

Linux OPENSSL服務器
本文出自:http://www.swm.com.cn 作者:張雲帆 (2001-11-06 09:00:01)

隨著計算機網絡技術的發展,方便快捷的互連網使人們漸漸習慣了從Web頁上收發E-mail、購物和
交易,這時Web頁面上需要傳輸重要或敏感的數據,例如用戶的銀行帳戶、密碼等,所以網絡安全
就成為現代計算機網絡應用急需解決的問題。

現行網上銀行和電子商務等大型的網上交易系統普遍採用HTTP和SSL相結合的方式。服務器端採用
支持SSL的Web服務器,用戶端採用支持SSL的瀏覽器實現安全通信。
SSL是Secure Socket Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。
Netscape公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準,目前已有3.0版本。SSL採用公
開密鑰技術。其目標是保証兩個應用間通信的保密性和可靠性,可在服務器端和用戶端同時實現支
持。目前,利用公開密鑰技術的SSL協議,已成為Internet上保密通訊的工業標準。本文著重在
SSL協議和SSL程序設計兩方面談談作者對SSL的理解。

SSL協議初步介紹
安全套接層協議能使用戶/服務器應用之間的通信不被攻擊者竊聽,並且始終對服務器進行認証,
還可選擇對用戶進行認証。SSL協議要求建立在可靠的傳輸層協議(TCP)之上。SSL協議的優勢在
它是與應用層協議獨立無關的,高層的應用層協議(例如:HTTP,FTP,TELNET等)能透明地建立
SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商及服務器認証
工作。在此之應用層協議所傳送的數據都會被加密,從而保証通信的私密性。
通過以上敘述,SSL協議提供的安全信道有以下三個特性:
1.數據的保密性
信息加密就是把明碼的輸入文件用加密算法轉換成加密的文件以實現數據的保密。加密的過程需要
用到密匙來加密數據然再解密。沒有了密鑰,就無法解開加密的數據。數據加密之,只有密匙
要用一個安全的方法傳送。加密過的數據可以公開地傳送。
2.數據的一致性
加密也能保証數據的一致性。例如:消息驗証碼(MAC),能夠校驗用戶提供的加密信息,接收者可
以用MAC來校驗加密數據,保証數據在傳輸過程中沒有被篡改過。
3.安全驗証
加密的另外一個用途是用來作為個人的標識,用戶的密匙可以作為他的安全驗証的標識。
SSL是利用公開密鑰的加密技術(RSA)來作為用戶端與服務器端在傳送機密資料時的加密通訊協定。
目前,大部分的Web 服務器及瀏覽器都廣泛支持SSL 技術。當瀏覽器試圖連接一個具有SSL認証加
密的服務器時,就會喚醒一個SSL會話,瀏覽器檢查認証,必須具備下面三個條件:
1)有一個權威機構發放証書,當然可以創建自我簽訂的証書(x509 結構)。
2)証書不能過期。
3)証書是屬它所連接的服務器的。
只有全部具備了這三個條件,瀏覽器才能成功完成認証。通過這三個條件,用戶能確認其瀏覽器連接
到正確的服務器,而不是連接到一些想盜取用戶密碼等重要信息的虛假的服務器上。
在當今的電子商務中還有一項被廣泛使用的安全協議是SET協議。SET(Secure Electronic Transaction,
安全電子交易)協議是由VISA和MasterCard兩大信用卡公司1997年5月聯合推出的規范。SET能在電
子交易環節上提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺詐的可能性。SET交
易分三個階段進行:用戶向商家購物並確定支付;商家與銀行核實;銀行向商家支付貨款。每個階段都
涉及到RSA對數據加密,以及RSA數字簽名。使用SET協議,在一次交易中,要完成多次加密與解密操作,
故有很高的安全性,但SET協議比SSL協議復雜,商家和銀行都需要改造系統以實現互操作。
在Linux 下,比較流行支持SSL認証的是OpenSSL服務器。OpenSSL項目是一個合作的項目,開發一個
健壯的、商業等級的、完整的開放源代碼的工具包,用強大的加密算法來實現安全的Socket層
(Secure Sockets Layer,SSL v2/v3)和傳輸層的安全性(Transport Layer Security,TLS v1)。
這個項目是由全世界的志願者管理和開發OpenSSL工具包和相關文檔。
如何在Linux下配置OpenSSL服務器,首先從OpenSSL的主頁(http://www.openssl.org/)上下載
openssl-version.tar.gz軟件包來編譯安裝,與Apache服務器配合可以建立支持SSL的Web服務器,
並可以使用自我簽訂的証書做認証,關如何編譯、安裝OpenSSL服務器,可以參考一下OpenSSL HOWTO
文檔。

SSL 程序設計初步介紹
SSL 通訊模型為標準的C/S 結構,除了在 TCP 層之上進行傳輸之外,與一般的通訊沒有什明顯的區
別。在這裡,我們主要介紹如何使用OpenSSL進行安全通訊的程序設計。關OpenSSL 的一些詳細的信
息請參考OpenSSL的官方主頁 http://www.openssl.org。
在使用OpenSSL前,必須先對OpenSSL 進行初始化,以下的三個函數任選其一:
SSL_library_init(void);
OpenSSL_add_ssl_algorithms();
SSLeay_add_ssl_algorithms();
事實上 面的兩個函數只是第一個函數的宏。
如果要使用OpenSSL的出錯信息,使用SSL_load_error_strings (void)進行錯誤信息的初始化。以
可以使用void ERR_print_errors_fp(FILE *fp) 打印SSL的錯誤信息。
一次SSL連接會話一般要先申請一個SSL 環境,基本的過程是:
1. SSL_METHOD* meth = TLSv1_client_method(); 創建本次會話連接所使用的協議,如果是客戶端可
以使用
SSL_METHOD* TLSv1_client_method(void); TLSv1.0 協議
SSL_METHOD* SSLv2_client_method(void); SSLv2 協議
SSL_METHOD* SSLv3_client_method(void); SSLv3 協議
SSL_METHOD* SSLv23_client_method(void); SSLv2/v3 協議
服務器同樣需要創建本次會話所使用的協議:
SSL_METHOD *TLSv1_server_method(void);
SSL_METHOD *SSLv2_server_method(void);
SSL_METHOD *SSLv3_server_method(void);
SSL_METHOD *SSLv23_server_method(void);
需要注意的是客戶端和服務器需要使用相同的協議。
2.申請SSL會話的環境 CTX,使用不同的協議進行會話,其環境也是不同的。申請SSL會話環
境的OpenSSL函數是
SSLK_CTX* SSL_CTX_new (SSL_METHOD*); 參數就是前面我們申請的 SSL通訊方式。返回當前
的SSL 連接環境的指針。
然根據自己的需要設置CTX的屬性,典型的是設置SSL 握手階段証書的驗証方式和加載自己
的証書。
void SSL_CTX_set_verify (SSL_CTX* , int , int* (int, X509_STORE_CTX*) )
設置証書驗証的方式。
第一個參數是當前的CTX 指針,第二個是驗証方式,如果是要驗証對方的話,就使用
SSL_VERIFY_PEER。不需要的話,使用SSL_VERIFY_NONE.一般情況下,客戶端需要驗証對方,而
服務器不需要。第三個參數是處理驗証的回調函數,如果沒有特殊的需要,使用空指針就可以了。
void SSL_CTX_load_verify_locations(SSL_CTX*, const char* , const char*);
加載証書;
第一個參數同上,參數二是証書文件的名稱,參數三是証書文件的路徑;
int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);
加載本地的証書;type 指明証書文件的結構類型;失敗返回-1
int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);
加載自己的私鑰;type 參數指明私鑰文件的結構類型;失敗返回-1
加載了証書和文件之,就可以驗証私鑰和証書是否相符:
BOOl SSL_CTX_check_private_key (SSL_CTX*);
3.既然SSL 使用TCP 協議,當然需要把SSL attach 到已經連接的套接字上了:
SSL* SSL_new (SSL_CTX*); 申請一個SSL 套節字;
int SSL_set_rfd (SSL*); 綁定只讀套接字
int SSL_set_wfd (SSL*); 綁定只寫套接字
int SSL_set_fd ( SSL*); 綁定讀寫套接字
綁定成功返回 1, 失敗返回0;
4. 接下來就是SSL 握手的動作了
int SSL_connect (SSL*); 失敗返回 -1
5. 握手成功之,就可以進行通訊了,使用SSL_read 和SS_write 讀寫SSL 套接字代替傳統的
read 、write
int SSL_read (SSL *ssl, char *buf, int num );
int SSL_write (SSL *ssl, char *buf, int num);
如果是服務器,則使用 SSL_accept 代替傳統的 accept 調用
int SSL_accept(SSL *ssl);
6. 通訊結束,需要釋放前面申請的 SSL資源
int SSL_shutdown(SSL *ssl); 關閉SSL套接字;
void SSL_free (ssl); 釋放SSL套接字;
void SSL_CTX_free (ctx); 釋放SSL環境;
OpenSSL 雖然已經發展到了0.9.96版本,但是它的文檔還很少,甚至連最基本的man 函數手
冊都沒有完成。所以,本文緊緊是講述了使用OpenSSL 進行程序設計的框架。更加詳細的資
料可以參考OpenSSL 的文檔或者 Apache mod_ssl 的文檔。
通過以上的介紹,我想讀者對SSL協議已經有了一定的了解,作者有機會將會繼續給大家介紹
SSL協議的其他方面的內容。

Friday, 2 December 2011

Updated: How to Connect Securely to LDAP using PHP

http://www.novell.com/coolsolutions/tip/5838.html

Updated: How to Connect Securely to LDAP using PHP

Novell Cool Solutions: Tip
By Bryan Thoreson

Digg This - Slashdot This

Updated: 1 Mar 2006

To connect securely to LDAP using PHP,
1. Make sure your PHP install has both the ldap and openssl extensions enabled.
Windows/Linux Procedure
2. Verify the ldap.conf file settings.
a) For Windows, verify that the C:\openldap\sysconf\ldap.conf file exists.
b) For Linux, verify that the /etc/openldap/ldap.conf file exists. If it does not, create it.
c) For both Linux and Windows, the ldap.conf file should contain this line:
TLS_REQCERT     never
3. If you want php to verify the ldap server's ssl certificate with the Certificate Authority that issued the certificate, you need to put the root certificate here:
a. Export the trusted root Certificate. (For details, see Step 1 in How to test LDAP over SSL).
b. Use this command to convert the DER to PEM:
openssl x509 -in RootCert.der -inform DER -out RootCert.pem -outform PEM
c. On Windows you can download openssl binaries from these two sites:
4. Now copy the rootcert.pem to the certs folder:
a. For Linux, /etc/openldap/cert/rootcert.pem
b. For Windows, C:\openldap\sysconf\certs\rootcert.pem
c. For both Linux and Windows, the ldap.conf file should contain this line:
(Linux)  TLS_CACERT /etc/openldap/cert/rootcert.pem
(Windows) TLS_CACERT c:\OpenLDAP\sysconf\certs\rootcert.pem
Netware Procedure
Copy your tree's ROOTCERT.DER file to this location:
SYS:php5/certs.
Connection Code
Here are the snippets of code that should get you connected. Try either example.
Example 1
<?php
// This code uses the START_TLS command

$ldaphost = "ldap://ldap.hostname.something";
$ldapUsername  = "cn=username,o=novell";
$ldapPassword = "password";
 
 
$ds = ldap_connect($ldaphost);
 
if(!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)){
print "Could not set LDAPv3\r\n";
}
else if (!ldap_start_tls($ds)) {
print "Could not start secure TLS connection";
}else {
// now we need to bind to the ldap server
$bth = ldap_bind($ds, $ldapUsername, $ldapPassword) or die("\r\nCould not connect to LDAP server\r\n");
}
?>
Example 2
<?php
// This code goes directly to the 636 SSL port

$ldaphost = "ldaps://ldap.hostname.something";
$ldapUsername  = "cn=username,o=novell";
$ldapPassword = "password";
 
 
$ds = ldap_connect($ldaphost);
 
if(!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)){
print "Could not set LDAPv3\r\n";
}
else {
// now we need to bind to the ldap server
$bth = ldap_bind($ds, $ldapUsername, $ldapPassword) or die("\r\nCould not connect to LDAP server\r\n");
}
?>
If you have any questions you may contact Bryan at thor@umn.edu

Thursday, 24 November 2011

connect ldap server using php over ssl

connect ldap server using php anonymous is fine.

But , when I try to over ssl using the code below.

<?php
 echo "<h3>LDAP query test</h3>";

 define("LDAP_USERBASE","cn=1019157,ou=students,ou=users,ou=comp,ou=destech,o=rgu");
 $username = "1019157";
 $password = "XXXXXX";
 $ldap = ldap_connect("10.52.1.246",636) or die("Can't connect to LDAP server");
 $user = "uid=" . $username . "," . LDAP_USERBASE;
 echo $user;
 ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) ;
 if (ldap_bind($ldap, $user, $password)) {
  ldap_unbind($ldap);
  echo 'OK - Login valid';
 } else {
  die(ldap_error($ldap) . ' (' . ldap_errno($ldap) . ')');
 }
 ldap_close($ldap);

?>

it gave the error

Can't contact LDAP server (-1)

someone said that php doesn't support over ssl. really?

MSc project investigation report (outline)

1.1 Introduction
Generally talk about the internet history, what can we do use the internet...
1.2 Project Motivation
the project background, why we need to develop this project
1.3 Project Objectives
what this project can help the people and the developer.
2.1 Cloud computing
2.2 What is cloud computing
2.3 The layers
2.4 Development models
2.5 Discussion and evaluation of different cloud computing software tools and provider
3 Problems identified and proposed solutions
4 conclusion

References
Appendix

Thursday, 17 November 2011

LDAP authentication (continue)

When I log in the local machine and use jxplorer to connect LDAP server with the parameter below:

Host: 10.52.1.246                Port: 636

Protocol: LDAP v3

Base DN: O=RGU

Level: SSL+User+Password
User DN: cn=1019157,ou=students,ou=users,ou=comp,ou=destech,o=rgu
Password: the same with login to the Novell Network

I got the message box below:

But after that, when I want to connect again, the jxplorer report "simple bind failed: 10.52.1.246:636".


But when I log in the Novell Network with the same parameter:


The jxplorer report "simple bind failed: 10.52.1.246:636


Interested? Why?

Friday, 11 November 2011

MSc project (further development)

1. is it possible to access the project lab?
I may use it when the other labs were occupied by the other class.
Project lab is quiet.

The plan of next week( 11/11/2011 - 17/11/2011)
1. an outline of project investigation report.
2. finish the client-server communication example using gwt.
3. decide to use LDAP or not.

Saturday, 5 November 2011

study LDAP (continue)

I used java code to connect LDAP server in Anonymous methods, it said ok.  It cost me two afternoons.

I will try to use the SSL+User+Password methods.

Keep going...

The intelligent web technology course work has been posted to the modules. oh...




package
com.test.LDAP;


//import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

import
com.sun.org.apache.xerces.internal.impl.dv.util.*;


import
javax.naming.*;

import
javax.naming.directory.*;


import
java.security.MessageDigest;

import
java.security.NoSuchAlgorithmException;

import
java.util.Hashtable;

import
java.util.logging.Level;

import
java.util.logging.Logger;


 

/**

* Demonstrates how to create an initial context to an LDAP server

* using anonymous authentication (i.e. none).

*

* usage: java None

*/

class
LDAPTest {


public static void main(String[] args) {


System.
out.println("hello");

// Set up environment for creating initial context

Hashtable<String, Object> env =
new Hashtable<String, Object>(11);


env.put(Context.
INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");

// env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

env.put(Context.
PROVIDER_URL, "ldap://10.52.1.246:389/o=RGU");


// Use anonymous authentication

env.put(Context.
SECURITY_AUTHENTICATION, "none");


try {

// Create initial context

DirContext ctx =
new InitialDirContext(env);

System.
out.println("authentication succeed");

ctx.close();

}
catch (javax.naming.AuthenticationException e){

System.
out.println("authentication failed");

e.printStackTrace();

}
catch (Exception e){

System.
out.println("unknown error");

e.printStackTrace();

}

}

}

Friday, 4 November 2011

The developing enviroment

How do I construct the developing enviroment?

The operation system. Linux or windows ?
Do I need to install a LDAP server like openLDAP for test?
How to connect LDAP server using programming?

Thursday, 3 November 2011

study LDAP

Try to connect the LDAP server of computing school using jxplorer.
It is fine when I use the C28 14 Desktop with the following parameters:

Host: 10.52.1.246
Protocol: LDAP v3
Port: 389
Base DN: O=RGU
Secutiry:
Level: Anonymous

But doesn't work when I choose the SSL+User+Password and doesn't work on my laptop neither in anonymous nor SSL+User+Password , and whatever I enable or disable the proxy.

Even I can connect the LDAP server and get some data, but what does those data means?
How those data can help this project?


After discussed with Dr. hui and follow his suggestion. I connected to the LDAP server successfully!
The parameters are:
Host: 10.52.1.246            Port: 636
Protocol:  LDAP v3
Base DN: O=RGU

Level:  SSL+User+Password
User DN: cn=1019157,ou=students,ou=users,ou=comp,ou=destech,o=rgu
Password: the same with login to the Novell Network

But when I tried at 10/11/2011, just a few days later, I used the same parameters, it didn't work!

Is it because I changed the password of Novell Network? But neither the old or the new password didn't work.

The error information is like below:

Error opening connection:
simple bind failed: 10.52.1.246:636

javax.naming.CommunicationException: simple bind failed: 10.52.1.246:636 [Root exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Invalid Server Certificate: The server certificate could not be verified, as it has a bad chain back to a known CA.  raw error: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed]

Saturday, 22 October 2011

MSc project investigate

1. what the problem is?

The students of computing school are required to take a number of modules ( usually is four modules ) every semester. Some modules are mandatory(e.g. must take) while some can be choosed from a list of modules. The course leader need to provide or collect a list of elective modules to differenct students based on their course and stage.

Currently, this process is done by manual and can be divided into several steps:

Step 1: The co-ordinator will find which courses students need to pick up the elective modules next semester.

Step 2: The co-ordinator ask the course leaders the list of modules which can be choosen by the students depending on their course and stage.

Step 3: According to the result by the course leaders, the co-ordinator will provide a list of options to the students who need take the elective modules and ask them to arrange the options based on the priority(e.g which one is the first choice, which one can be the second, which one is the third... etc).

Step 4: The students fill in the form and sign their signature and submit to the co-ordinator.

Step 5: The co-ordinator get the choices from students and arrange the elective modules to the students by mannual or programs.

Obviously, the current system is low effective and easy to make mistake.

One obvious alternative way to improve the current system is to move the system to online.

Collect the requirement,

1. How many kinds of people are involved in this system?
Answer: 1. co-ordinator (admin)
2. course leaders can assign the different modules to the different students according to the students course and stage.
              3. students can choose the elective modules from the modules which they can choose.

2. How to get the data of the student, module, staff?
Because the data of the student, module, course and staff are stored in current system already. Is it possible to use the data or need to create the data again?
But, if create the data again, how to synchronize the data when the data changed? For example, if one of the student change the course or the staff changed the role?

3. Since this is a multi-user system. The authentication is very important. How to avoid the users login as the other users?
Option 1, the system will ask all the users to regist. ( Dont' use the existing database)
But, if someone don't use their student ID or use the other person's ID to register, how does the system know who is who?
This way may not be a good choice.

Option 2, why not use the existing database? Since all the users has their username and password and these information are stored in the database. Can our system just use it?
But , how? How does the system use the data which is stored in the existing database?
1. direct access?
no! The database administrator will definately say no to you. Because it is not under his/her control and if you update or delete the data?? What will happen? "£$%%^~
2. Ask the database administrator provider an interface to read the data from the database? just query, no delete, no update the record?
maybe.
3. use LDAP?

The process:
1. The co-ordinator(administrator) inspect the system which course students need to choose the elective module.
Question:
Currently, how does the co-ordinator know which course students need to choose the module?

2. The system show the course and course leader list one by one.
If click the link of course, it will direct to another page which show the details of this course (e.g. course code, course name, course leader, students in this course)
There will has a check box after each course, so the administrator can choose the courses and click the "send" button.
The system will automatically send a mail to the course leader and ask them to provide the elective modules for the course students.

3. When the course leaders receive the mail, they can click the link in the mail which will lead them to the system.
They can find their tasks.
After the course leaders provider the modules. The system will automatically send the mails to the students and ask them to choose the module. Of course, there has a link url in the mail.

4. When all the students choosed their modules, the course status will display green, means all the students choosed their modules. Otherwise, the status will display red. If click the status, details will be displayed.

The co-ordinator and the course leaders can send email to the other users(students) through this system.

Friday, 21 October 2011

MSc project schedule

Start from Oct. 7
Deliverables

Project Investigation
  • Project description and ethics form                (Oct. 15th  finished)
  • Report (15 - 20 pages ) X2                          (Dec. 16 th)
  • Report uploaded to Turnitin                        (Dec. 16 th)
Project
  • Demonstration + Poster                                 (May ?? 2012)
  • Report ( 40 - 60 pages, plus appendices) + CDX2 (May 14 th)
  • Report uploaded to Turnitin                            (May 14 th)
Oct. 7 -- Nov. 25
investigate the domain background , collect requirement and software specification
study
1. Google Web Toolkit
2. LDAP
3. Digital Certification
4. Cloud-based "Rich Internet Applications"
5. List some potential solutions and compare their advantages and disadvantages
HTML + CSS + PHP + DB
GWT

Nov. 26 -- Dec. 5
Investigation Report

Dec. 6 -- Dec 15
Check and modify

Dec. 16 submit

Thursday, 20 October 2011

MSc project

Title: Elective submission using the google web toolkit
Supervisor: Dr. kit-ying hui (khui@comp.rgu.ac.uk)
Student: Jun Wu (1019157@rgu.ac.uk)

Key Techniques
  • java programming
  • web programming (e.g. HTML, CSS, JSP)
  • Data modelling techniques
Background

Students in the school of Computing take a number of modules every semester. Some modules are compulsory while some are "elective". Depending on the course and stage (usually called a cohort), a list of elective options in order of preference. Currently this is done by submitting paper-based forms. Collected forms are then manually entered into a computer system before data can be utilised.

One obvious improvement is to antomate the process by using an online system to collect student submissions. Instead of having the traditional design of a web frontend connected to a database backend, the system can be developed to run on the "cloud". A cloud-based solution has the advantage of having no central server to maintain and it can scale up easily when demand increases.

The Google Web Toolkit (GWT) is a library for developint cloud-based "Rich Internet Applications" that run on the Google infrastructure. These applications, usually called Google Apps, are developed using the Java-based GWT library. Data, in the form of Java objects, can be stored on the Google infrastructure with encryption to ensure confidentiality. GWT also has an extensive API for connecting with other Google services ( e.g. Youtube, Gmail, Picasa web album).

Aim

To design and develop a Google App that collect student elective submissions.

Objectives
  • To model and desing a database to store student elective submissions.
  • To learn developing rich Internet applications using the Google Web Toolkit
  • To connect the university's internal user authentication mechanism (LDAP - based) to the Google App that runs on the Google infrastructure
  • To collect student elective submissions using a Google App
  • To export collected data in formats which can be utilised by external programs
References

I like the google blog!

I like the google blog!

Friday, 20 May 2011