ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Thanh Tùng
XÂY DỰNG HỆ THỐNG CUNG CẤP DỊCH VỤ
NGHE NHẠC / XEM VIDEO TRỰC TUYẾN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành:
Công nghệ thông tin HÀ NỘI - 2007
HÀ NỘI - 2007
TÓM TẮT KHOÁ LUẬN
Ngành giải trí âm nhạc ngày nay không còn đơn thuần là biểu diễn nghệ thuật mà
nó đã trở thành một ngành công nghiệp với lợi nhuận khổng lồ. Trong xu hướng phát
triển của công nghệ thông tin, ngành âm nhạc đã có một bước chuyển mình mạnh mẽ,
rất nhiều các website cung cấp nhạc trực tuyến ra đời. Nó mở ra một hướng đi mới
trong việc xuất bản âm nhạc. Theo thố
ng kê của BigChampagne, tính đến năm 2004
đã có khoảng 60.900 website nhạc trực tuyến trên toàn thế giới.
Nhờ có Internet, âm nhạc đi đến với khán giả theo một con đường mới, nhanh
chóng và hiệu quả. Hiện nay ở Việt Nam cũng đã có rất nhiều các website cho phép
nghe nhạc, xem video trực tuyến. Trong khuôn khổ luận văn này, chúng tôi đề cập đến
việc xây dựng một hệ thống cung cấp dịch vụ nghe nhạ
c, xem video trực tuyến, và hệ
thống này được xây dựng trên nền hệ quản trị nội dung Joomla.
Về phía người sử dụng thì hệ thống này không khác gì so với một hệ thống
website nghe nhạc thông thường. Nhưng với người phát triển, việc xây dựng hệ thống
trên nền Joomla thuận tiện hơn rất nhiều so với việc xây dựng lại từ đầu một hệ thống
nghe nhạc.
H
ệ thống này sẽ có những chức năng cơ bản như hiển thị và chơi nhạc, chức
năng tìm kiếm theo dạng text. Về phía người quản trị sẽ có những chức năng chính
như: quản lý nội dung, bài hát, album, nhạc sỹ, ca sỹ. Cho phép tải ảnh, bài hát lên
máy chủ. Do thời gian có hạn nên hệ thống mà chúng tôi xây dựng mới dừng lại ở đây.
Trong tương lai, hệ thống sẽ
cung cấp thêm cho người dùng chức năng tìm kiếm bài
Chương 1. GIỚI THIỆU VỀ JOOMLA..........................................................................3
1.1 Giới thiệu chung:...................................................................................................3
1.1.1 Hệ thống quản trị nội dung (CMS).................................................................3
1.1.2 Các ứng dụng chính của Joomla.....................................................................3
1.2 Các thành phần chính của Joomla .........................................................................6
1.2.1 Template.........................................................................................................6
1.2.2 Components....................................................................................................8
1.2.3 Modules ..........................................................................................................8
1.2.4 Mambots.........................................................................................................8
CHƯƠNG 2. GIỚI THIỆU PHP & MYSQL..................................................................9
2.1 PHP........................................................................................................................9
2.1.1 Lịch sử phát triển của PHP.............................................................................9
2.1.2 Cộng đồng sử dụng và phát triển PHP tại Việt Nam....................................12
2.1.3 Cấu trúc cơ bản của mã PHP........................................................................12
2.2 MySQL................................................................................................................14
3.3.2 Biểu đồ luồng dữ liệu mức 1 ........................................................................23
3.3.3 Mô hình khái niệm dữ liệu: mô hình E-R ....................................................24
a. Xây dựng được các thực thể ..........................................................................24
b. Xác định mối quan hệ và thuộc tính..............................................................24
c. Vẽ biểu đồ rút gọn .........................................................................................25
3.4 Thiết kế mô hình logic.........................................................................................26
3.4.1. Chuyển mô hình ER sang mô hình quan hệ ................................................26
a. Biểu diễn các thực thể: ..................................................................................26
b. Biểu diễn các mối quan hệ.............................................................................26
c. Chuẩn hóa:.....................................................................................................26
d. Biểu đồ quan hệ của mô hình dữ liệu............................................................27
3.4.2. Thiết kế cơ sở dữ liệu vật lý ........................................................................27
3.4.2. Thiết kế cơ sở dữ liệu vật lý ........................................................................28
a. Bảng: BÀI HÁT.............................................................................................28
BẢNG CHÚ GIẢI THUẬT NGỮ
Chữ viết tắt /
Ký hiệu
Tên tiếng anh Giải nghĩa
CSDL Cơ sở dữ liệu
Website Trang web
MySQL Hệ thống quản lý Cơ sở dữ liệu
quan hệ, sử dụng Ngôn ngữ
truy vấn có cấu trúc
File Tập tin (dữ liệu được lưu trữ
trên đĩa cứng)
HTML Ngôn ngữ đánh dấu siêu văn
bản
PHP Ngôn ngữ lập trình web PHP
Javascript Một dạng mã kịch bản
Framework Môi trường làm việc
CSS Cascading Style Sheets
CMS Content Management System
(Hệ quản trị nội dung)
Template Khuôn mẫu (thường dùng cho
một trang web)
Components Thành phần của Joomla
Modules Thành Phần của Joomla
Mambots Thành Phần của Joomla
Engine Một phương tiện, dụng cụ
Chương 4: Ứng dụng thực tiễn
MỞ ĐẦU
kiếm: đoạn nhạc này có thể là một File nhạc MIDI (từ các chương trình mô phỏng đàn
Piano [14] ) một đoạn âm thanh do người dùng tự thu âm, hay là cả một bài hát.
Chương 1: Giới thiệu Joomla
Chương 1. GIỚI THIỆU VỀ JOOMLA
1.1 Giới thiệu chung:
1.1.1 Hệ thống quản trị nội dung (CMS)
CMS viết tắt của từ Content Management System (tạm dịch là Hệ thống quản
trị nội dung), là một hệ thống phần mềm máy tính để thiết lập, tổ chức, tạo thuận tiện
cho việc xây dựng các tài liệu hay các nội dung khác. Thông thường, CMS là một ứng
dụng web sử dụng để quản lý các website và nội dung web.
1.1.2 Các ứng dụng chính của Joomla
Joomla là một hệ thống quản trị nội dung CMS, trợ giúp rất tốt cho việc xây
dựng một websites và những ứng dụng trực tuyến khác. Ở thời điểm hiện nay, Joomla
là một trong những hệ thống quản trị nội dung CMS khá thành công. Với việc đạt
được cột mốc 100 ngàn thành viên đăng ký tại diễn đàn
Joomla trở thành CMS mã nguồn mở có số lượng thành viên rất đông đảo. Đồng thờ
i
việc trao đổi, giúp đỡ lẫn nhau giữa các thành viên trong cộng đồng trở nên thuận tiện
và nhanh chóng hơn. Và hơn hết, Joomla là một giải pháp mã nguồn mở, nó miễn phí
cho tất cả mọi người.
Hệ thống Joomla có khả năng quản trị nội dung tương đối đa dạng, vì thế khi một
người phát triển muốn xây dựng một ứng dụng bất kỳ, thì có thể dựa trên rất nhiề
u thứ
có sẵn mà Joomla cung cấp. Không những cung cấp đầy đủ các công cụ quản lý nội
dung, Joomla còn rất dễ dàng mở rộng thêm thông qua việc cài đặt các module,
component, template ....
Hiện nay Joomla được sử dụng trên toàn thế giới để cung cấp mọi thứ, từ đơn
giản như các trang web cá nhân, tới những ứng dụng web phức tạp. Dưới đây là một
i nhiều người, sức
mạnh thực sự của Joomla nằm trong Framework ứng dụng, nhờ nó mà hàng nghìn nhà
phát triển chuyên nghiệp trên toàn thế giới có thể tạo ra những add-ons và extensions
tương đối mạnh. Sau đây là một vài ví dụ trong hàng nghìn extension sẵn có dành cho
Joomla:
* Dynamic form builders : Xây dựng form động
* Business or organizational directories : Các danh bạ tổ chức hoặc kinh doanh
* Document management : Quản lý tài liệu
* image and multimedia galleries : Triển lãm ảnh và đa phương tiện
* E-commerce and shopping cart engines: Các máy bán hàng và thương mại điện tử
Chương 1: Giới thiệu Joomla
* Forums and chat software : Phần mềm chat và forum.
* Calendars : Quản lý thời gian biểu
* Blogging software : Phần mềm blog
* Directory services : Dịch vụ danh bạ
* Email newsletters : Thư dưới dạng tin tức mới
* Data collection and reporting tools : Các công cụ báo cáo và tập hợp dữ liệu
* Banner advertising systems : Các hệ thống banner quản cáo
* Subscription services : Các dịch vụ thuê bao
Và rất nhiều các extension khác nữa mà chúng ta có thể tìm thấy tại mục Joomla
Extension tại địa chỉ . Nhưng thông thường, tại các công ty lớn
thì yêu cầu c
ủa họ xa hơn những gì được cung cấp miễn phí của Joomla, vì thế họ có
thể mua những Extension hướng tới mục đích cụ thể của họ từ các nhà phát triển web
chuyên nghiệp.
Joomla mang đến một Framework ứng dụng với đầy đủ sức mạnh để có thể làm
cho công việc tạo ra các add-on của những nhà phát triển trở nên đơn giản hơn. Những
với đa số những ứng dụng web, phần mềm của họ là tương đối hoàn hảo cho công
việc. Nhóm phát triển Joomla đang thêm những tính năng mới cho mỗi phiên bản phát
hành về sau này.
1.2 Các thành phần chính của Joomla
Công viêc cài đặt một bản Joomla khá đơn giản. Người sử dụng chỉ cần tải một
bản Joomla từ trang chủ của Joonla về , giải nén ra, copy vào thư mục localhost và
truy cập vào File index trên trình duyệt để bắt đầu quá trình cài đặt.
Sau khi cài đặt xong và chạy thành công Joomla, điều đầu tiên bạn cần quan tâm,
đó chính là thành phần giao diện phía người dùng của website – Templates.
1.2.1 Template
Template và những File liên quan tới nó cung cấp một cái nhìn trực quan cho
website của bạn theo kiểu “look and feel” và được duy trì tách biệt với nội dung
website. Template được lưu trữ trong một cơ sở dữ liệu MySQL
Một bản Joomla điểm hình đã được cài đặt sẽ bao gồm 2 Templates có sẵn, đó là:
madeyourweb và rhuk_solaflare_ii. Các File Template được đặt trong thư mục
Templates, trong thư mục gốc, và mỗi m
ột Template thường bao gồm những File sau:
Chương 1: Giới thiệu Joomla
Tên File Chi tiết
Index.php
File này chứa những mã HTML, PHP và có thể cả
JavaScript, sẽ cung cấp Framework cho phần phác hoạ
website của bạn. Bằng việc kết hợp với File .css và các
File ảnh, nó tạo nên tất cả những thiết kế và các yếu tố sắp
đặt nội dung trên wesite của bạn.
Components là thành phần cốt lõi trong các chức năng chính Joomla! Và được
hiển thị trong phần thân chính ở template của website. Phần lõi trong phần thân chính
sẽ xuất hiện trong template như sau: <?php mosMainBody(); ?>. Điều này tuỳ thuộc
vào mục đích khi thiết kế website, nhưng thường thì nó sẽ nằm ở phần chính giữa của
trang web. Một hệ thống Joomla điển hình đi kèm với các Components được cung cấp
sẵn như: Banners, Contacts, News Feeds, Polls,
và Web Links . Các thành viên của
cộng đồng Joomla đều có thể đưa ra những Components do chính họ viết lên trang [2]
để các thành viên khác tham khảo và góp ý. Và cũng tại trang [2]có danh sách tải về
những Component mở rộng.
1.2.3 Modules
Module là một phần nhỏ trong content và nó sẽ được hiển thị ở bất cứ nơi nào mà
template cho phép. Modules rất dễ dàng cài đặt trong phần Administrator Section (phía
người quản trị), và nó mở rộng ra những khả năng mới của Joomla!. Modules của
Joomla có thể bao gồm: Main Menu, Top menu, Template Chooser, Polls, Newsflash,
Hit Counter... Các thành viên của cộng đồng Joomla liên tục tạo ra những Modules với
những tính năng mới. Và những modules này được cung cấp hoàn toàn miễn phí trên
trang [2]. Sau đây là m
ột ví dụ đơn giản về mã lệnh để tải một Modules: <?php
mosLoadModules ( 'user1' ); ?>.
1.2.4 Mambots
Mambots là một hàm, có chức năng định hướng nhiệm vụ. Thông thường nó sẽ
ngăn lại content và điều chỉnh nó trước khi cho hiển thị. Joomla cũng cung cấp một số
Mambot trong các gói cài , ví dụ như {mospagebreak}, {mosimage}
Chương 2: Giới thiệu PHP & MySQL
CHƯƠNG 2. GIỚI THIỆU PHP & MYSQL
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh
mẽ của nó. Ngoài khả năng cung cấp cho ng
ười dùng cuối một cơ sở hạ tầng chặt chẽ
dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của
Chương 2: Giới thiệu PHP & MySQL
PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng
mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành
công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có
hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác.
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên m
ới, xóa bỏ mối liên
hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc. Nó
đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext
Preprocessor".
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục
ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh
cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên m
ạng Internet.
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng
được cộng đồng kiểm nghiệm.
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi
Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục
đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô
đun của cơ sở mã PHP. Những ứng dụng nh
ư vậy đã chạy được trên PHP 3.0 dựa trên
các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba,
nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này
một cách có hiệu quả.
Một Engine mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau
một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC1, RC2, RC3. Mặc dù coi
đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể
là l
ỗi xác thực HTTP. Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team
công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong
việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện
các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những
cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng
những tính năng và cải tiến mới trong SOAP, streams và SPL
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, bản PHP 6 dùng thử
có thể được tải tại [6]. Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết
của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ Namespace (hiện tại các nhà phát triển vẫn
chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn
cho việc truy cập cơ s
ở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL...
Chương 2: Giới thiệu PHP & MySQL
2.1.2 Cộng đồng sử dụng và phát triển PHP tại Việt Nam
Đa số các doanh nghiệp ở Việt Nam hiện nay sử dụng PHP thay cho các công
nghệ khác. Lý do tương đối đơn giản, đó là vì chi phí cho công nghệ PHP thấp hơn, rất
phù hợp cho cách doanh nghiệp vừa và nhỏ, với những ứng dụng không đòi hỏi tính
toán nhiều và độ phức tạp cao. Theo những thống kê mới nhất [7] , tại Thành phố Hà
Nội, tỷ lệ sử dụng ASP.NET/PHP là 1/2,5 còn tỷ lệ này ở Thành phố Hồ Chí Minh là
1/2,3.
Những nỗ lực đầu tiên để phổ biến PHP trong đó có dự án xây dựng “Chuẩn viết
mã PHP tiếng Việt” đã được xúc tiến. Ngày 24 tháng 10 năm 2004, nhóm
<head>
<title>Mã mẫu</title>
</head>
<body>
<?php
echo "Chào thế giới PHP!";
?>
</body>
</html>
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP
qua đó máy chủ biết để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của
PHP giúp cho việc viết mã PHP trở
nên khá trực quan và dễ dàng trong việc xây dựng
phần giao diện ứng dụng HTTP.
PHP xử lý các biến rất linh động. Nó có thể nhận biết được kiểu của biến và làm
cho cú pháp câu lệnh đơn giản hơn. Ai đã từng lập trình với C, Java sẽ cảm thấy rất dễ
dàng khi sử dụng PHP. Tuy nhiên việc dễ dài này lại gây ra một vài trở ngại. Trong
PHP tất cả các biến số được bắt đầu bằ
ng dấu $. Dù cho biến của bạn là kiểu chuỗi,
nguyên hay thập phân hoặc thậm chí là mảng thì chúng không có gì khác biệt nhau.
PHP chỉ theo dõi dữ liệu chứa trong biết thay đổi như thế nào mà thôi.
Nói chung khi làm việc với PHP chúng ta cần quan tâm đến 3 vị trí khác nhau
của biến đó là :
1- Khai báo ngay trong mã lệnh PHP.
2- Chuyển tiếp từ một trang HTML.
3- Là biến sẵn có của hệ thống PHP.