7. Google App Engine
13.4 Collab_server.js: Bao gồm câc phương thức xâc thực User (thông qua userId),
User (thông qua userId), lấy thông tin phiín bản (pad revision), âp dụng câc thay đổi do user tạo ra trín pad, cập nhật câc thay đổi do user tạo ra tới tất cả câc client đang sử dụng cùng 1 pad.
- function onStartup()
- function _padIdToRoom(padId) - function _roomToPadId(roomName) - function removeFromMemory(pad)
- function _getPadConnections(pad) : Lấy thông tin về pad để mở kết nối. + Đầu văo : Đối tượng pad.
+ Đầu ra : Tạo ra một kết nối tới pad.
- function guestKnock(globalPadId, guestId, displayName) : Xâc định câc quyền của một người dùng guest ( người dùng chưa đăng ký) có khi truy cập văo 1 pad.
+ Đầu văo : Id của pad, Id của guest , tín user guest.
+ Đầu ra : Thông bâo của server khi người dùng guest thao tâc trín pad.
- function _verifyUserId(userId) : Xâc minh người dùng lă guest hay người dùng đê đăng ký .
+ Đầu văo : userId.
+ Đầu ra : Trả về kiểu của người dùng. - function _checkChangesetAndPool(cs, pool) - function _doWarn(str) {
- function _getPadRevisionSockets(pad)
- function applyUserChanges(pad, baseRev, changeset, optSocketId, optAuthor) : Âp dụng câc thay đổi mă người dùng đê thực hiện trín pad.
+ Đầu văo : pad, phiín bản pad, thay đổi , SoketId của client thực hiện thay đổi , thông tin tâc giả thay đổi.
+ Đầu ra : Cho phĩp lưu câc thay đổi . - function updateClient(pad, connectionId) :
+ Đầu văo : pad, connectionId:
- function updatePadClients(pad)
- function applyMissedChanges(pad, missedChanges) - function getAllPadsWithConnections()
- function broadcastServerMessage(msgObj) - function appendPadText(pad, txt)
- function setPadText(pad, txt) - function setPadAText(pad, atext)
- function applyChangesetToPad(pad, changeset) - function _applyChangesetToPad(pad, changeset)
- function getHistoricalAuthorData(pad, author) : Lấy thông tin về những thiết đặt trong lần sử dụng trước của người dùng :
+ Đầu văo : pad, người dùng.
+ Đầu ra : Nếu trước đđy người dùng đê sử dụng chương trình thì câc thiết đặt cũ như tín, mău chữ .. sẽ được dùng. Nếu lă lần sử dụng đầu tiín thì người dùng phải thiết đặt. - function buildHistoricalAuthorDataMapFromAText(pad, atext) {
- function buildHistoricalAuthorDataMapForPadHistory(pad) - function getATextForWire(pad, optRev)
- function getCollabClientVars(pad)
- function getNumConnections(pad) : Đếm số lượng người dùng đang kết nối tới cùng 1 pad.
+ Đầu văo : pad.
+ Đầu ra : Số lượng client kết nối đến pad.
- function getConnectedUsers(pad) : Thông tin của những user đang sử dụng chương trình để thao tâc trín cùng 1 pad.
+ Đầu văo : pad.
+ Đầu ra : Tín những user đang cùng thao tâc trín pad. - function bootAllUsersFromPad(pad, reason)
- function dumpStorageToString(pad)
- function _getPadIdForSocket(socketId) : Lấy PadId ứng với SocketId + Đầu văo : socketId
+ Đầu ra : PadId tương ứng với socketId đang kết nối. - function _serverDebug(msg)
- function _accessSocketPad(socketId, accessType, padFunc, dontRequirePad) : - function _accessConnectionPad(connection, accessType, padFunc, dontRequirePad) - function _accessCollabPad(padId, accessType, padFunc, dontRequirePad) : Cho phĩp truy cập đồng thời tới 1 pad.
+ Đầu văo : padId, kiểu truy cập, padFunc,
+ Đầu ra : Nếu socket có kết nối đến 1 pad thì cho phĩp thao tâc trín pad cùng với nhiều người dùng khâc, nếu không sẽ xuất thông bâo trín server.
- function _accessExistingPad(padId, accessType, padFunc, dontRequireExist) : Cho phĩp truy cập văo 1 pad với padId sẵn có.
- function _handlePadUserInfo(pad, userInfo) : Xử lý thông tin người dùng. + Đầu văo : pad, userInfo
+ Đầu ra : Lưu thông tin gồm mău chữ, tín người dùng ở lần truy cập cuối cùng. - function _sendUserInfoMessage(connectionId, type, userInfo) :Gửi thông tin user lại cho kết nối có connectionId.
- function translateSpecialKey(specialKey) - function getSpecialKey(name)
- function _handleCometMessage(connection, msg) - function _correctMarkersInPad(atext, apool)
- function _updateDocumentConnectionUserInfo(pad, socketId, userInfo):
13.5 Pad_control.js:Kiểm soât câc thông tin về câc tâc động trín pad , trả về default pad text : đoạn văn bản xuất hiện khi tạo mới pad, cho phĩp gân câc thông tin như tín user , mău chữ ứng với từng user, render một pad, render saverevision….
- function onStartup() : tạo ra bảng PAD_DIAGNOSTIC trong CSDL.
- function getDefaultPadText() : Trả về đoạn văn bản chăo mừng khi mới kết nối đến chương trình.
- function assignName(pad, userId) : Gân username tương ứng với userId đê đăng ký. - function assignColorId(pad, userId) : Gân mău chữ ứng với userId đê đăng ký. - function _getPrivs()
Câc hăm liín quan tới biểu diễn: - function render_linkfile() - function render_newpad() - function render_newpad_xml_post() - function render_pad(localPadId) - function render_create_get() - function render_create_post() - function render_saverevision_post() - function render_saverevisionlabel_post() - function render_getrevisionatext_get()
- function _recordDiagnosticInfo(padId, diagnosticInfoJson) - function recordMigratedDiagnosticInfo(objArray)
- function render_reconnect()
- function render_feedback_post() - function render_emailinvite_post() - function render_slider() - function render_auth_get() - function render_auth_post() - function render_chathistory_get()
Đề tăi cơ bản đê hoăn thănh được những nội dung đề ra bao gồm:
− Tìm hiểu được cơ sở lý thuyết về điện toân đâm mđy, nguyín tắc hoạt động, cấu trúc vă câc dịch vụ triển khai trín một đâm mđy điện toân.
− Phđn biệt câc loại đâm mđy hiện tại, so sânh được điện toân đâm mđy với mô hình Client Server vă đặc biệt lă phđn biệt điện toân đâm mđy với điện toân lưới vă tính toân song song.
− Trình băy vă so sânh được một số nền tảng phât triển điện toân đâm mđy hiện tại như Google App Engine, Amazon Webservices, so sânh câc dịch vụ năy với nhau.
− Trình băy được quy trình phât triển ứng dụng dựa trín nền tảng đâm mđy của Google lă Google App engine vă demo được ứng dụng chạy trín nền tảng năy để thấy rõ được câch thức hoạt động của một đâm mđy điện toân.
− Xđy dựng được một ứng dụng văn phòng dựa trín mê nguồn mở chạy trín web vă sẵn săng đưa lín đâm mđy tại câc trung tđm dữ liệu (Data Center) tại Việt Nam.
15. Hướng phât triển của đề tăi
Mặc dù đê cơ bản hoăn thiện mục tiíu, nhưng đề tăi vẫn còn một vấn đề nữa cần giải quyết trong thời gian tới. Đđy cũng lă nguyín nhđn khâch quan, vì hiện tại giâ thănh thuí tại câc trung tđm dữ liệu khâ cao vă vì còn lă sinh viín nín nhóm thực hiện chưa đưa được ứng dụng lín đâm mđy tại câc trung tđm dữ liệu để chạy thử. Nhóm thực hiện cũng đê thử tạo một đâm mđy riíng, nhưng việc năy cũng đòi hỏi câc thiết bị có cấu hình rất mạnh vă giâ thănh cao.
Tuy nhiín với sự phât triển như vũ bêo hiện nay của CNTT, giâ thănh thuí câc dịch vụ năy sẽ ngăy căng hạ thấp vă việc đưa lín đâm mđy lă nhiệm vụ vă hướng phât triển thời gian đến của đề tăi.
Tấ cả câc phụ lục nằm ở đđy vă được đânh số thứ tự cùng tín phụ lục :
PHỤ LỤC A
[1] <Tín câc tâc giả>. <Tín tăi liệu chữ nghiíng>. <Tín, số, tập, nơi vă năm công bố tăi liệu hoặc hội thảo KH>, <từ trang đến trang> hoặc <số trang>.
[2] Jacque Arsac. Nhập môn lập trình. Nguyín bản : Premiỉres lecons de programmation. Trung tđm hệ thống Thông tin ISC, Hă nội 1991, 241 tr.
[3] Doug Cooper. Standard Pascal User Reference Manual. W.W.Norton & Company, 1983, 476 tr.
[4] Jacque Courtin, Irỉne Kowaski. Initiation ă l’algorithmique et aux structures de donnĩes. Volume 1. Dunord, Paris 1994, 397 tr.
[5] Phan Huy Khânh, Võ Trung Hùng. Thiết kế cơ sở dữ liệu đa ngữ ngữ phâp tiếng Việt. Tạp chí Khoa học Công nghệ, Số 36+37, 2002, tr19-24.
[6] Detmoungkhoum Saly. Xđy dựng từ điển tin học Lăo-Anh-Việ. Bâo câo tốt nghiệp Thạc sĩ ngănh CNTT, Đại học Đă Nẵng Khoâ 2002-2005.
[7] Nguyễn Như Ý. Đại từ điển tiếng Việt. Nhă Xuất bản Văn hoâ-Thông tin 1999. [8] Trang web : http://www.informatik.uni-leipzig.de/~duc
Phần năy viết tín đề tăi (chữ nhỏ 13pt) vă :
tóm tắt nội dung LUẬN VĂN TỐT NGHIỆP, viết ngắn gọn vă rõ răng (15 đến 20 dòng) cho biết :
− Đề tăi đê được đặt ra như thế năo (bối cảnh), mục đích (giải thích rõ hơn tín đề tăi) vă nhiệm vụ phải thực hiện (câc mục tiíu cụ thể vă kết quả cần có)
− SV đê giải quyết vấn đề gì (đê nghiín cứu lý thuyết, thực tiễn như thế năo, đê đề xuất được những giải phâp (biện phâp) hay sâng kiến gì ?).