TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Xây dựng bộ thư viện lập trình JOOB Lib
Ứng dụng:Xõy dựng mạng xã hội địa điểm
trên di động
Sinh viên thực hiện : Bùi Kim Dung
Lớp Công nghệ phần mềm A – K51
Giáo viên hướng dẫn: Thầy Hoàng Anh Việt
1
HÀ NỘI 6 - 2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên:
Điện thoại liên lạc : Email:
Lớp: Công nghệ phần mềm K51 Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công nghệ phần mềm, Viện CNTT & Truyền
Thông – Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 15 / 01 / 2011 đến 25 / 05 /2011
2. Mục đích nội dung của ĐATN
Xây dựng thư viện lập trình PHP Joob Lib đơn giản hóa việc lập trình các ứng dụng web
bằng PHP.
Ứng dụng: mạng xã hội địa điểm trên di động sử dụng Google Maps API
3. Các nhiệm vụ cụ thể của ĐATN
• Tìm hiểu mô hình lập trình ứng dụng web và các framework lập trình
• Xõy dưng phiên bản 1.0 của bộ thư viện Joob Lib
• Ứng dụng Joob Lib để xây dựng hệ thống cụ thể (mạng xã hội địa điểm trên di
động Joob)
3
ABSTRACT OF THESIS
The goal of this thesis is to develop Joob library, a lightweight library for building
web 2.0 applications. Joob provides a normalized MVC architecture, helps developers
build web applications quickly and efficiently, especially when interacting with databases.
Joob solves the problems in server-side web application programming with the support of
Joo Framework in client-side.
Joob are designated mainly for AJAX model and Single Page Application. The
author has researched some major existing frameworks, especially Zend Framework and
Hibernate Framework, designed a solution which made use of some advantages of those
platforms and remedy their disadvantages.
The architecture of JOO Framework is the result of a long progress of researching,
implementing and testing, with the advantages of its lightweight and high performance
characteristics.
Joob has been deployed in a location-based social network, which provides some
location-based features besides the traditional social features.
4
LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô giáo
trong trường đại học Bách Khoa Hà Nội nói chung và các thầy cô giáo trong Viện
Công nghệ thông tin và truyền thông nói riêng, nhất là các thầy cô giáo trong bộ
môn Công nghệ phần mềm, đã tận tình giảng dạy, cho em niềm đam mê với ngành
học, đồng thời truyền đạt cho em nhiều kiến thức, kinh nghiệm quý báu trong suốt 5
năm vừa qua.
Đặc biệt, em xin gửi lời cảm ơn đến thầy Hoàng Anh Việt, người đã hướng
dẫn và chỉ bảo em trong suốt giai đoạn thực tập chuyên ngành và toàn bộ quá trình
làm đồ án tốt nghiệp. Làm việc với thầy, em không chỉ nhận được những kiến thức
chuyên ngành cần có, mà ở thầy em còn nhận được nhiệt huyết tìm hiểu, sự đam mê
công việc, tình cảm của một người anh, và nhất là những định hướng, động viên.
Nhờ đó em đã hình thành cho mình một định hướng tương lai đầy đủ, vững chắc.
CHƯƠNG 1 – BÀI TOÁN XÂY DỰNG ỨNG DỤNG WEB 11
VÀ CÁC FRAMEWORK MÃ NGUỒN MỞ 11
CHƯƠNG 2 – MÔ HÌNH JOOB - LIB ĐỀ XUẤT 22
CHƯƠNG 3 - ỨNG DỤNG JOOB LIB 37
MẠNG XÃ HỘI ĐỊA ĐIỂM TRấN DI ĐỘNG 37
52
53
CHƯƠNG 4 - KẾT LUẬN VÀ ĐÁNH GIÁ 55
4.1.Kết quả đạt được 55
4.2.Những khó khăn và thuận lợi 55
4.3.Phương hướng phát triển 55
TÀI LIỆU THAM KHẢO 57
6
DANH MỤC CÁC BẢNG
Hình 1 – Table Data Gateway pattern 16
Hình 2 - Sơ đồ tổng quan hệ thống Joo framework 17
Hình 3 - Mô hình xử lý dữ liệu của một ứng dụng xây dựng trên JOO framework 18
Hình 4 – Mô hình ứng dụng MVC 24
Hình 5 – Biểu đồ tuần tự mô hình MVC đơn giản 25
Hình 6 – Kiến trúc Hibernate Framework 28
Hình 7 – Kiến trúc tổng quan Joob framework 29
Hình 8 – Biểu đồ lớp Joob Model 31
Bảng 1a – So sánh tính năng của Joob với một số framework hiện tại 34
Bảng 1b – So sánh tính năng của Joob với một số framework hiện tại 35
Bảng 2 – Yêu cầu về môi trường của mạng xã hội Joob 38
Bảng 3 – Yêu cầu về giao diện của mạng xã hội Joob 38
Bảng 4 – Danh sách các chức năng phía người dùng 38
Hình 9 – Sơ đồ usecase của người dùng trong mạng xã hội Joob 40
Bảng 5a – Mô tả yêu cầu phía người dùng 41
Bảng 5b – Mô tả yêu cầu phía người dùng 41
Hình 9 – Sơ đồ usecase của người dùng trong mạng xã hội Joob 40
Bảng 5a – Mô tả yêu cầu phía người dùng 41
Bảng 5b – Mô tả yêu cầu phía người dùng 41
Bảng 5c – Mô tả yêu cầu phía người dùng 42
Bảng 6 – Danh sách các chức năng phía quản trị hệ thống 42
Hình 10 – Sơ đồ usecase của quản trị trong mạng xã hội Joob 43
Bảng 7a – Mô tả yêu cầu phía quản trị 44
Bảng 7b – Mô tả yêu cầu phía quản trị 44
Hình 11 – Biểu đồ thành phần tổng quan mạng xã hội Joob 45
Hình 12 – Sơ đồ quan hệ thực thể cơ sở dữ liệu mạng xã hội Joob 46
Hình 13 – Biểu đồ lớp thành phần Model 47
Hình 14 – Biểu đồ lớp thành phần Module 48
Hình 15 – Sơ đồ lớp Map.js 50
Hình 16 – Sơ đồ thiết kế giao diện Joob 51
Hình 17 – Giao diện trang chủ 52
Hình 18 – Giao diện trang địa điểm 52
Hình 19 – Giao diện trang cập nhật của người dùng 53
Hình 20 – Trang web daisyfishing.com được viết trên Joob 54
8
DANH MỤC CÁC TỪ VIẾT TẮT
STT Tên Giải thích
1 RIA Rich Internet Application, chỉ các ứng dụng chạy trên nền
web nhưng mang đầy đủ đặc tính của một ứng dụng desktop.
Được nhắc đến ở chương 1.
2 AJAX Asynchronous Javascript and XML. Thuật ngữ được ra đời
năm 2005 dùng để chỉ một tập hợp các công nghệ hỗ trợ việc
phát triển ứng dụng web theo cơ chế bất đồng bộ.
3 JSON Javascript Object Notation. Là định dạng để ký hiệu các đối
tượng của ngôn ngữ Javascript, nhưng rất hay được dùng
trong việc trao đổi dữ liệu, đặc biệt là trong mô hình AJAX.
9
PHẦN MỞ ĐẦU
Tóm tắt các nhiệm vụ đề ra trong ĐATN
• Tìm hiểu mô hình lập trình ứng dụng web và các framework lập trình
• Xây dưng phiên bản 1.0 của bộ thư viện Joob Lib
• Ứng dụng Joob Lib để xây dựng hệ thống cụ thể (mạng xã hội địa điểm trên
di động Joob)
Môi trường thực hiện đồ án:
• Bộ môn công nghệ phần mềm, Viện CNTT & TT – Đại học Bách Khoa Hà
Nội
Bố cục đồ án: bao gồm
• Phần mở đầu: giới thiệu tóm tắt nhiệm vụ đề tài, xác định mục tiêu và phạm
vi thực hiện.
• Phần nội dung: có kết cấu bốn chương, nội dung chính như sau:
Chương 1. Bài toán xây dựng ứng dụng web và các framework mã nguồn
mở.Khái quát về trào lưu web 2.0, bài toán ứng dụng web và mạng xã hội địa
điểm. Từ đó phân tích ưu nhược điểm một số framework phổ biến hiện tại.
Đề xuất mục tiêu và nội dung của đồ án tốt nghiệp.
Chương 2. Mô hình thư viện lập trình đề xuất. Trình bày các ý tưởng kế
thừa từ các mô hình có sẵn, đề xuất mô hình Joob Lib, bao gồm kiến trúc
tổng quan và kiến trúc chi tiết. Đánh giá tính hiệu quả của Joob Lib.
Chương 3. Ứng dụng mạng xã hội địa điểm trên di động. Sau khi phân tích
mô hình của Joob Lib, để làm rừ tớnh hiệu quả của Joob, chương này đi sâu
phân tích và thiết kế kiến trúc chi tiết của một ứng dụng mạng xã hội địa
điểm được xây dựng trên Joob Lib. Kết quả đạt được và đánh giá.
Chương 4. Kết luận và đánh giá. Đánh giá kết quả đạt được, bao gồm tính
hiệu quả của Joob Lib và ứng dụng mạng xã hội Joob. Các nhận định toàn bộ
công việc đồ án và đề ra phương hướng phát triển tiếp theo.
• Kết luận: đánh giá kết quả thực hiện đồ án, phân tích những thuận lợi, khó
khăn khi thực hiện đồ án, và định hướng phát triển đồ án trong tương lai.
• Các framework hiện tại đã và đang giải quyết các vấn đề này. Đánh giá
ưu, nhược điểm khi ứng dụng các framework này vào bài toán xây dựng
ứng dụng web.
• Đề xuất mục tiêu, nội dung cụ thể của đồ án tốt nghiệp.
nhiều giao thức được phát triển để cung cấp nội dung như RSS, RDF và Atom, tất
cả đều dựa trên XML. Ngoài ra cũn cú cỏc giao thức đặc biệt như FOAF và XFN
dùng để mở rộng tính năng của website hay cho phép người dùng tương tác.
Dịch vụ web
Các giao thức truyền thông 2 chiều là một trong những thành phần then chốt
của kiến trúc Web 2.0. Có hai loại giao thức chính là REST và SOAP. REST
(Representation State Transfer) là dạng yêu cầu dịch vụ web mà mỏy khỏch truyền
đi trạng thái của tất cả giao dịch; còn SOAP (Simple Object Access Protocol) thì
phụ thuộc máy chủ trong việc duy trì thông tin trạng thái. Với cả hai loại, dịch vụ
web đều được gọi qua API. Ngôn ngữ chung của dịch vụ web là XML, nhưng có
thể có ngoại lệ.
Một ví dụ điển hình của giao thức truyền thông thế hệ mới là Object
Properties Broadcasting Protocol do Chris Dockree phát triển. Giao thức này cho
phép các đối tượng ảo (tồn tại trên web) tự biết chúng "là gì và có thể làm gỡ”, nhờ
vậy có thể tự liên lạc với nhau khi cần.
Phần mềm máy chủ
Web 2.0 được xây dựng trên kiến trúc web thế hệ trước nhưng chú trọng hơn
đến phần mềm làm việc ở "hậu trường". Cơ chế cung cấp nội dung chỉ khác phương
thức cấp phát nội dung động (của Web 1.0) về danh nghĩa, tuy nhiên dịch vụ web
yêu cầu tiến trình làm việc và dữ liệu chặt chẽ hơn.
Các giải pháp phát triển theo hướng Web 2.0 hiện nay có thể phân làm 2
loại: hoặc xây dựng hầu hết tính năng trên một nền tảng máy chủ duy nhất; hoặc
xây dựng ứng dụng "gắn thêm" cho máy chủ web, có sử dụng giao tiếp API.Cụng
nghệ chỉ là "bề nổi" của Web 2.0, chính cộng đồng người dùng mới là yếu tố nền
tảng tạo nên thế hệ web mới. Việc chuyển từ "duyệt và xem" sang "tham gia" là
cuộc cách mạng thực sự, dĩ nhiên nhờ có sự phát triển công nghệ giúp hiện thực khả
• Ứng dụng mạng xã hội địa điểm trên di động
Mạng xã hội, hay gọi là mạng xã hội ảo (social network) là dịch vụ nối kết
các thành viên cùng sở thích trên Internet lại với nhau với nhiều mục đích khác
nhau không phân biệt không gian và thời gian.
Mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat, chia
sẻ file, blog và xã luận. Mạng đổi mới hoàn toàn cách cư dân mạng liên kết với
nhau và trở thành một phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên
khắp thế giới. Các dịch vụ này có nhiều phương cách để các thành viên tìm kiếm
bạn bè, đối tác: dựa theo group (ví dụ như tên trường hoặc tên thành phố), dựa trên
thông tin cá nhân (như địa chỉ e-mail hoặc screen name), hoặc dựa trên sở thích cá
nhân (như thể thao, phim ảnh, sách báo, hoặc ca nhạc), lĩnh vực quan tâm: kinh
doanh, mua bán
Mạng xã hội địa điểm (location based social network) bên cạnh những tính
năng tương tự như mạng xã hội thông thường sẽ hỗ trợ cho người sử dụng biết được
bạn bè mình đang ở đâu, tìm kiếm những người dùng ở gần, tìm kiếm địa điểm
xung quanh, cập nhật địa điểm yêu thích và chia sẻ vị trí của mình với bạn bè.
13
Cùng với sự phát triển của các thiết bị di động thông minh (Android,
Iphone ) hỗ trợ tốt Javascript, việc phát triển ứng dụng mạng xã hội địa điểm trên
di động với những tính năng chia sẻ tiện lợi sẽ mang lại cho người dùng những trải
nghiệm hoàn toàn khác so với mạng xã hội thông thường.
1.1.3 Nhận xét và các vấn đề còn tồn tại
Sự phát triển của các loại thiết bị điện tử cá nhân có sức mạnh tính toán cao
và xu hướng công nghệ điện toán đám mây, xu hướng web 2.0 và sự bùng nổ của
mạng xã hội trong thời gian gần đây khiến các ứng dụng web đa nền ngày càng trở
nên phổ biến: dữ liệu được đặt ở các máy chủ phân tán, ứng dụng được truy cập và
tất cả các thao tác được thực thi trờn cỏc trình duyệt, thông tin được truyền qua
mạng giữa mỏy khỏch với nhiều máy chủ. Tuy nhiên việc xây dựng các ứng dụng
này còn gặp rất nhiều trở ngại: khả năng tương tác với người dùng rất phức tạp do
phải đáp ứng nhiều loại nền tảng phần cứng khác nhau, hiệu năng xử lý dữ liệu phía
- Chuẩn hóa URL (các đường link trong trang web)
- Hỗ trợ rất tốt việc quản lý truy nhập (Access Control): quản lý phân quyền
theo từng Action.
- Có các thành phần thư viện hỗ trợ API của Google, Yahoo, Flickr
- Quản lý code dễ dàng
- Dễ dàng phát triển thờm cỏc Model, Plugins.
Sơ qua về các thành phần trong Zend Framework:
- Zend_Controller: Module này giúp lấy các request từ phía Client và thực
thi nó bằng các Action.
- Zend_Db: dựa trên đối tượng PDO (PHP Data Objects), cung cấp các
phương thức giao tiếp với database.
- Zend_View: tầng View trong mô hình MVC.
- Zend_Acl: quản lý phân quyền
- Zend_Feed: xử lý RSS và Atom Feeds
- Zend_Filter: Lọc các dữ liệu nhập vào từ phía người dùng và kiểm tra tính
hợp lệ của dữ liệu đầu vào.
- Zend_Pdf: Tạo và thao tác với các file PD
- Zend_Service_Amazon, Zend_Service_Flickr, Zend_Service_Yahoo: cung
cấp truy nhập tới các dịch vụ web APIs của các nhà cung cấp như Amazon,
Flickr, Yahoo.
- Zend_XmlRpc: tạo ra giao tiếp XMLRpc (giao tiếp client-server với các xử
lý tập trung phía server, chỉ client để hiển thị dữ liệu).
- Zend_Session: quản lý session
- Zend_Log: hỗ trợ việc ghi log cho ứng dụng
- Zend_Cache: hỗ trợ ghi cache cho ứng dụng
Zend Model được thiết kế theo mẫu thiết kế Table and data gateway: cung
cấp khả năng truy nhập đến cơ sở dữ liệu bằng cách trừu tượng hóa từng bảng trong
cơ sở dữ liệu (hoặc một file, một cấu trúc dữ liệu cây) dưới dạng một đối tượng
interface. Tất cả các thao tác CRUD được thực thi bằng cách truy cập các phương
thức của table data gateway: DELETE, INSERT, SELECT, UPDATE. Các tham số
hơn.
Cũng như row data gateway, sử dụng table data gateway cũng tương đương
với việc chia mô hình dữ liệu của ứng dụng thành rất nhiều các lớp riêng biệt, gây
bất lợi trong việc cập nhật và quản lý code.
1.2.2. Joo Framework
JOO – framework là một framework được xây dựng trên Javascript sử dụng
bộ thư viện Jquery, nhằm chuẩn hóa lại mô hình lập trình các ứng dụng web, quản
lý và tối ưu hóa hiệu năng xử lý dữ liệu ở máy chủ, truyền dữ liệu phân tán qua
mạng… JOO ra đời giải quyết những trở ngại còn tồn tại trong quá trình xây dựng
các ứng dụng này: có khả năng tương đương với những ứng dụng thông thường trên
máy tính cá nhân, tương thích với nhiều loại nền tảng và phần cứng, hiệu năng
truyền tải dữ liệu qua mạng, hiệu năng xử lý dữ liệu ở máy chủ, khả năng phân tán
JOO được thiết kế nhằm khắc phục nhược điểm và kế thừa những ưu điểm của các
giải pháp trước đây. Sơ đồ dưới đây thể hiện mô hình kiến trúc tổng quan của JOO:
Hình 2 - Sơ đồ tổng quan hệ thống Joo framework
Kiến trúc hệ thống bao gồm 4 thành phần chính:
Porlet & Plugins
Tiếp nhận các yêu cầu từ người dùng dưới dạng các sự kiện (event), sau đó
gửi các Ajax request lên máy chủ và nhận về dữ liệu dưới dạng JSON. Các plugin
& porlet sẽ xử lý dữ liệu dạng JSON gửi cho tầng Application, thông qua UI hiển
thị dữ liệu. Điểm khác biệt giữa portlet và plugin là: portlet là các thành phần hiển
thị và xử lý dữ liệu độc lập và được gọi khi trang web được tải, còn plugin chỉ được
gọi với những sự kiện nhất định.
Event Manager
17
JOO framework architecture
UI
Portlets & Plugins
Application
Event
Provider
Ajax
Interface
UI
JSON Data
Ajax request
Ajax
requestt
Data
Update data
Event
…
.
Service
Provider
Quá trình xử lý dữ liệu có thể được mô tả như sau: ở lần request (yêu cầu)
đầu tiên server gửi về client toàn bộ trang ứng dụng. Mỗi khi có một sự kiện phát
sinh ở phía client, sự kiện này được gửi đến bộ Porlet & Plugin của JOO. Bộ Porlet
& Plugin sẽ tiếp nhận sự kiện này và sinh ra một yêu cầu Ajax (Ajax request), thông
qua bộ Ajax Interface gửi đến server. Ajax request này có thể được gửi đến một hay
nhiều server. Server tiếp nhận yêu cầu và xử lý dữ liệu, sau đó gửi về client bằng
giao thức REST. Client sau đó sẽ nhận được phần dữ liệu kết quả ở định dạng
JSON (hoặc JSONP nếu như có nhiều máy chủ phục vụ) và xử lý nó thành dữ liệu
HTML tương ứng và hiển thị nó lờn client.
Thay vì yêu cầu dữ liệu trả về dưới dạng các chuẩn như HTTP, HTML,
Cascading Style Sheets, Javascript, Document Object Model, phía client chỉ yêu cầu
phía server trả về dữ liệu dưới dạng JSON (hoặc JSONP) thông qua giao thức
REST. Sau đó, client xử lý nó thành dữ liệu theo các chuẩn như trên, và hiển thị
theo mô hình giao diện tương tác người dùng một trang (Single-page user interface
interaction). Tương tự như các ứng dụng trên desktop, mô hình tương tác này cũng
thông qua các đối tượng hoặc những câu truy vấn SQL thông thường, hỗ trợ
tốt cỏc kiờu quan hệ như một – nhiều, một – một giữa các quan hệ trong cơ
sở dữ liệu.
- Đơn giản, nhỏ gọn & rút ngắn thời gian xây dựng các ứng dụng web sử dụng
PHP – MySQL.
Để thử nghiệm và đánh giá Joob Lib, phần thứ 2 của đồ án là xây dựng một ứng
dụng mạng xã hội địa điểm trên di động sử dụng Joob framework và thư viện lập
trình Gooogle Maps với các tính năng:
- Quản trị người dùng hệ thống
+ Các thông tin cơ bản + Thiết lập các quyền riêng tư + Các thông tin cơ
bản
+ Thiết lập các quyền riêng tư
- Tính năng mạng xã hội:
+ Cập nhật status, bình luận, thích + Cập nhật địa điểm tự động + Tìm kiếm
người dùng ở gần, bạn bè ở gần
+ Cập nhật địa điểm tự động
+ Tìm kiếm người dùng ở gần, bạn bè ở gần
- Quản lý địa điểm:
+ Quản lý danh mục địa điểm + Danh sách địa điểm theo danh mục + Thêm
địa điểm dựa trên bản đồ + Xem địa điểm trên google map & liệt kê địa
điểm ở gần
+ Danh sách địa điểm theo danh mục
+ Thêm địa điểm dựa trên bản đồ
+ Xem địa điểm trên google map & liệt kê địa điểm ở gần
- Tương tác người dùng - địa điểm+ Tìm kiếm địa điểm+ Tìm kiếm địa điểm ở
gần dựa trên bản đồ google map+ Bình chọn địa điểm yêu thích+ Viết nhận
xét cho địa điểm+ Chia sẻ địa điểm qua facebook, twitter
20
+ Tìm kiếm địa điểm
+ Tìm kiếm địa điểm ở gần dựa trên bản đồ google map
đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó, trong đó mô hình 3
lớp là phổ biến nhất. Ba lớp của mô hình gồm: Presentation, Business Logic, và
Data Access. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) mà
mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp
kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì.
Ví dụ, một ứng dụng có thể chia làm 3 phần như sau: phần giao diện người
dùng (UI layer), phần xử lý nghiệp vụ (business layer) và phần chứa dữ liệu (data
layer). Cụ thể ra, business layer sẽ có thể chia nhỏ thành 2 layer con là business
logic layer (chỉ quan tâm đến ý nghĩa của các nghiệp vụ, các tính toán mang nhằm
thoả mãn yêu cầu của người dùng) và persitence layer. Persistence layer chịu trách
nhiệm giao tiếp với data layer (thường là một hệ quản trị cơ sở dữ liệu quan hệ -
Relational DBMS). Persistence layer sẽ đảm nhiệm các nhiệm vụ mở kết nối, truy
xuất và lưu trữ dữ liệu vào các Relational DBMS.
Persistence Object và non-persistence Object
22
Nội dung chương 2:
• Các ý tưởng kế thừa từ các mô hình có sẵn:
o Mô hình lập trình ứng dụng đa tầng
o Hibernate Framework
• Đề xuất mô hình thư viện hỗ trợ lập trình Joob Lib
o Kiến trúc tổng quan Joob Lib
o Kiến trúc chi tiết
o Đánh giá tính hiệu quả của Joob Lib
Như trong lập trình Hướng đối tượng, việc một chương trình chạy là do sự
liên kết cùng hoạt động của các đối tượng với nhau. Non-persistence Object (đối
tượng không bền vững) là các đối tượng mà nó chỉ tồn tại trong thời gian chạy của
chương trình. Khi chương trình đó bị ngắt (exit) thỡ cỏc đối tượng đó sẽ mất. Đến
khi chương trình khởi động lại thỡ cỏc đối tượng đó lại được khởi tạo lại từ đầu.
Còn persistence Object (đối tượng bền vững) là các đối tượng mà trạng thái của nó
có thể tồn tại trong thời gian dài, kể cả sau khi chương trình bị ngắt và được phục
Hình 5 – Biểu đồ tuần tự mô hình MVC đơn giản
- Model (mô hình): Là một đối tượng hoặc tập hợp các đối tượng biểu diễn
cho phần dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ
liệu (CSDL) hay từ các hệ thống ứng dụng khác (như mail ) View (
- View (phần hiển thị): Là phần giao diện với người dùng, bao gồm việc hiện
dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa ,
để người dùng có thể thờm, xóa, sửa, tìm kiếm và làm các thao tác khác đối
với dữ liệu trong hệ thống.
- Controller (phần điều khiển): Là phần điều khiển toàn bộ logic về hoạt
động của giao diện, tương tác với thao tác của người dùng (từ chuột, bàn
phím và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu
vào nhận được và điều khiển việc chọn phần View thích hợp để truyền dữ
liệu tới người dùng.
Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều
khiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần tách
biệt.
2.1.2. Hibernate framework
• Object Relational Mapping
25