Công cụ thực hiện đề tài:

Một phần của tài liệu Tìm hiểu về điện toán đám mây và xây dựng ứng dựng web theo hướng dịch vụ (Trang 35)

2.2.1 Cơ sở dữ liệu MySQL

MySQL là hệ quản trị cơ sở dữ liệu tự do mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. MySQL còn là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). Ra đời vào năm 1994 do công ty MySQL AB phát hành, tác giả chính của phiên bản MySQL gốc là Ulf Michael Widenius. Phiên bản phát triển mới nhất hiện nay là : 5.5.31 phát hành ngày 18 tháng 04 năm 2013 và phiên bản ổn định nhất: 5.1.5 phát hành ngày 18 tháng 8 năm 2010.

35

 MySQL là một hệ quản trị nhỏ, bảo mật và rất dễ sử dụng, thường được

sử dụng cho các ứng dụng quy mô nhỏ và trung bình. Nó được sử dụng cho các ứng dụng client/server với máy chủ mạnh như UNIX, Windows NT và Windows 95/98.

 MySQL hỗ trợ các điểm vào là ANSI SQL92 và ODBC mức 0-2 SQL

chuẩn.

 MySQL hỗ trợ nhiều ngôn ngữ cho việc hông báo lỗi như: Czec, Dutc,

English, Estonian, French, German, Hungarian, Italian, Norwegian Nynorsk, Polish, Portuguese, Spanish and Swedish. Ngôn ngữ được hỗ trợ mặc định cho dữ liệu là ISO-8859-1 (Latin1), muốn thay đổi phải sửa trong mã nguồn.

 Ngôn ngữ lập trình sử dụng viết các hàm API để thâm nhập cơ sở dữ liệu MySQL có thể là PHP, C, Perl,...

 Các bảng trong cơ sở dữ liệu MySQL có kích thước rất lớn và được lưu

ở thư mục Datas. Kích thước lớn nhất của một bảng tối thiểu là 4GB và nó còn phụ thuộc vào kích thước lớn nhất của một file do hệ điều hành quy định.

 Cơ sở dữ liệu MySQL rất dễ quản lý và có tốc độ sử lý cao hơn tới ba

bốn lần so với các hệ quản trị cơ sở dữ liệu khác.

 MySQL là một hệ quản trị cơ sở dữ liệu mô hình quan hệ, nó có mã nguồn mở. Nó được cung cấp miễn phí trên các máy chủ UNIX, OS/2 và cả trên Windows.

Nhược điểm của MySQL:

 MySQL không cho phép thực hiện các câu lệnh SQL select truy vấn con.

Ví dụ:

SELECT id, name, point. FROM table x

WHERE point > (SELECT AVG(point)) FROM table WHERE x.id=id)

ORDER BY id

 MySQL không hỗ trợ Stored Procedures, Triggers, Transactions,

36

2.2.2 Công cụ lập trình Netbeans IDE 7.0.1 a) Định nghĩa: a) Định nghĩa:

NetBeans IDE là môi trường phát triển – một công cụ dành cho lập trình viên để viết, biên dịch, gỡ lỗi (debug) và triển khai (deploy) chương trình. Chuơng trình được viết bằng Java nhưng có thể hổ trợ bất kỳ ngôn ngữ lập trình nào như: PHP, C/C++, HTML5... Có một số lượng rất lớn các module cho phép mở rộng Netbeans IDE, với giao diện thân thiện, miễn phí và không bị giới hạn trong việc sử dụng nên Netbeans IDE được coi là công cụ lập trình phổ biến và hiệu quả nhất hiện nay.

NetBean IDE dễ dàng cài đặt và chạy trên nhiều hệ điều hành, bao gồm: Windows, Linux, Mac OS X và Solaris.

b) Quá trình phát triển:

NetBeans ra đời vào năm năm 1996 trong một dự án mang tên Java IDE do một sinh viên thực hiện theo hướng dẫn của khoa toán và vật lý tại đại học Charles ở Prague. Năm 1997, Roman Stanek đã thành lập một công ty xung quanh dự án này và sản xuất phiên bản thương mại của NetBeans IDE cho đến khi nó được mua bởi Sun Microsystems vào năm 1999. Tháng 6/2000, Netbeans IDE trở thành công cụ lập trình mã nguồn mở. Kể từ đó, cộng đồng NetBeans đã tiếp tục phát triển. Năm 2010, Sun Microsystems đã được mua lại bởi Oracle.

Kể từ lúc ra đời cho đến nay, Netbeans IDE đã phát triển khá nhanh và cho ra đời 8 phiên bản chính thức, bao gồm: Netbeans IDE 6.0, Netbeans IDE 6.5, Netbeans IDE 6.8, Netbeans IDE 6.9, Netbeans IDE 7.0, Netbeans IDE 7.1, Netbeans IDE 7.2 và Netbeans IDE 7.3.

c) Những tính năng chính của Netbeans IDE:

 Cung cấp giao diện quản lý người dùng.

 Cung cấp các thiết lập quản lý người dùng.

 Quản lý lưu trữ (lưu trữ và nạp bất kỳ loại dữ liệu nào).

 Cung cấp công cụ phát triển tích hợp.

 Cung cấp thư viện Visual.

 Hộp thoại hỗ trợ người dùng.

d) Ưu điểm và nhược điểm của Netbeans IDE: Ưu điểm:

37

 Tích hợp hầu hết các chức năng vào Netbeans: editor, simulator, library,

GUI development.

 Chạy trên mọi hệ điều hành ví dụ như Windows, Linux, MacOS

 IDE cho nhiều ngôn ngữ: PHP, Java, C/C++, ruby, python,…

 Có hỗ trợ Database explorer cho phép xem các bảng, kiểu dữ liệu, giá trị

và thực thi mọi câu truy vấn.

 Hỗ trợ tốt XML: cho phép xác nhận tính hợp lệ của tài liệu XML, parse

XML.

 Lập trình kéo thả dễ dàng.

 Hỗ trợ nhiều edition khác nhau của Java như: J2EE, J2SE, J2ME.

Nhược điểm:

 Không có chức năng refactor cho phép thay đổi tên biến, tên hàm trong

toàn bộ source code chương trình.

 Hỗ trợ lập trình nhóm còn yếu, khó cấu hình để liên kết các source code

của các thành viên khác nhau.

 Thiếu các plugin hữu ích (ví dụ như các plugin của Eclipse).

 Nặng, đòi hỏi máy cấu hình cao.

 Debug thiếu trực quan.

2.2.3 Ngôn ngữ lập trình PHP a) Giới thiệu: a) Giới thiệu:

PHP ban đầu được viết tắt bởi cụm từ Personal Home Page và được phát triển từ năm 1994 bởi Rasmus Lerdorf. Lúc đầu chỉ là một bộ đặc tả Perl, được sử dụng để lưu dấu vết người dùng trên các trang web. Sau đó, Rasmus Lerdorf đã phát triển PHP như là một máy đặc tả. Vào giữa năm 1997, PHP đã được phát triển nhanh chóng trong sự yêu thích của nhiều người. PHP đã không còn là một dự án cá nhân của Rasmus Lerdorf và đã trở thành một công nghệ web quan trọng. Zeev Suraski và Andi Gutmans đã hoàn thiện việc phân tích cú pháp cho ngôn ngữ để rồi tháng 6 năm 1998, PHP3 đã ra đời (phiên bản này có phần mở rộng là *.php3). Cho đến tận thời điểm đó, PHP chưa một lần được phát triển chính thức, một yêu cầu viết lại bộ đặc tả được đưa ra, ngay sau đó PHP4 ra đời (phiên bản này có phần mở rộng không phải là *.php4 mà là *.php). PHP4 nhanh hơn so với PHP3 rất nhiều. PHP bây giờ được gọi là PHP Hypertext PreProcesor.

38

Trước đây, có rất nhiều trang web được xây dựng bởi ngôn ngữ HTML (HyperText Markup Language). Đây chỉ là những trang web tĩnh, nghĩa là chúng chỉ chứa đựng một nội dung cụ thể với những dòng văn bản đơn thuần, hình ảnh và có thể được sự hộ trợ bởi ngôn ngữ JavaScript hoặc Java Apple. Những trang web như vậy người ta thường goi là client-side. Tuy nhiên, khi mà Internet và Intranet đã được sử dụng cho các ứng dụng cần tới cơ sở dữ liệu. Các trang ứng dụng như vậy được gọi là trang web động, bởi vì nội dung của chúng luôn thay đổi tùy thuộc vào dữ liệu và người sử dụng. PHP là ngôn ngữ làm được điều đó bằng cách chạy chương trình PHP trên máy chủ web server, người dùng có thể tạo ra các ứng dụng có sự tương tác với cơ sở dữ liệu để tạo ra những trang web, đấy được gọi là những trang web động.

Sự khác nhau về cách thức hoạt động của trang web được viết bằng ngôn ngữ HTML và PHP có thể được hình dung như sau:

 Đối với các trang HTML : Khi có yếu cầu kết nối tới một trang web từ

phía người sử dụng, web server sẽ lần lượt đọc yêu cầu từ phía trình duyệt, sau đó tìm trang web trên server và gửi trang web đó trở lại cho trình duyệt (nếu tìm thấy) qua mạng Internet hoặc Intranet.

 Đối với các trang PHP : Khi có yêu cầu kết nối tới một trang PHP, web

server sẽ phân tích và thi hành các đoạn mã PHP để tạo ra trang HTML bằng cách đọc yêu cầu, sau đó tìm trang web trên server, thực hiện các đoạn mã PHP trên trang web đó để sửa đổi nội dung của trang và gửi lại nội dung đó cho trình duyệt.

Tóm lại, sự khác nhau cơ bản giữa HTML là PHP và HTML không được thực hiện trên máy chủ web server, còn các trang *.php viết bằng các đoạn mã PHP sẽ được thực hiện trên máy chủ web server do nó có tính linh động và mềm dẻo hơn.

b) Ưu điểm và nhược điểm của PHP: Ưu điểm:

 PHP hỗ trợ kết nối tới rất nhiều hệ cơ sở dữ liệu khác nhau như: MySQL, Oracle, DBM, Hyperware, Interbase, Sybase,… Ngoài ra PHP còn hỗ trợ kết nối với ODBC thông qua đó có thể kết nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ.

 PHP thực hiện với tốc độ rất nhanh và hiệu quả cao. Một server bình thường có thể đáp ứng được hàng triệu lượt truy cập tới chỉ trong một ngày.

39

 PHP mà một ngôn ngữ rất dễ dùng, dễ học và đơn giản hơn nhiều so với

các loại ngôn ngữ lập trình khác như Perl, Java. Nếu người dùng đã biết ngôn ngữ C thì việc học PHP sẽ càng nhanh chóng và thuận lợi hơn.

 PHP cung cấp một hệ thống thư viện phong phú: Do PHP ngay từ đầu

đã được thiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên web nên PHP cung cấp rất nhiều hàm xây dựng sẵn, giúp thực hiện các công việc rất dễ dàng.

 PHP có thể sử dụng được trên nhiều hệ điều hành như Unix, Linux và các phiên bản của Windows. Ngoài ra, người dùng còn có thể đem mã PHP này chạy trên các hệ điều hành khác mà không phải sửa lại mã.  PHP là ngôn ngữ mã nguồn mở, chính điều này đã làm cho PHP ngày

càng phát triển và ưa dùng hơn với mọi người.

 PHP có hệ thống CMS miễn phí như joomla, wordpress,… và có nhiều

hệ thống webserver cấu hình đơn giản như XAMP, WAMP,… Nhược điểm:

 Nhiều người dùng đều đồng ý rằng mã nguồn của PHP không bắt mắt và

hiếm có công cụ phát sinh mã.

 PHP chỉ chạy ứng dụng web.

c) Các PHP Framework phổ biến nhất hiện nay:

Trong vài năm qua, PHP đã tiến triển thành một ngôn ngữ được lựa chọn bởi hầu hết các nhà phát triển website, đã có một sự bùng nổ về các PHP framework, dẫn đến các cuộc tranh luận lớn về đề tài: PHP framework nào là tốt nhất, bởi vì thực tế không phải tất cả các framework đều được xây dựng trên khuôn khổ dành cho nhiều người sử dụng. Dưới đây là 5 framework được đánh giá là tốt và phổ biến nhất hiện nay:

 Zend Framework (ZF): có một cộng đồng phát triển rộng lớn và nó tập

trung vào các ứng dụng web theo phong cách 2.0. Vì được phổ biến rộng rãi và có một cộng đồng người dùng tích cưc nên ZF được gọi là “Công ty PHP”. ZF là một trong những framework phổ biến nhất hiện nay. Nó có các tính năng mạnh mẽ, thường được sử dụng cho các công ty lớn và người dùng cần phải có lượng kiến thức khá sâu rộng về PHP để có thể sử dụng được nó.

40

 CakePHP: là một lựa chọn tuyệt vời cho những lập trình viên có kiến thức nâng cao về PHP. Nó dựa trên cùng một nguyên tắc thiết kế với Ruby on Rails, là một framework mạnh về khía cạnh phát triển nhanh chóng , giúp lập trình viên đẩy nhanh quá trình phát triển ứng dụng của họ. Với các hệ thống hỗ trợ, tính đơn giản và môi trường mở cao đã giúp cho CakePHP trở thành một trong những framework phổ biến nhất hiện nay.

 Symfony: được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những

lập trình viên muốn tạo ra các ứng dụng website doanh nghiệp. Đây là một PHP framework mã nguồn mở với đầy đủ các tính năng cần thiết nhưng nó có vẻ chạy chậm hơn các framework khác.

 Codelgniter: được biết đến như một framework dễ hiểu, dễ sử dụng và

cho hiệu suất cao. Không giống như Symfony, PHP framework này phục vụ mục đích lý tưởng cho việc xây dưng các ứng dụng chia sẻ và lưu trữ. Nó cung cấp các giải pháp đơn giản, và có một thư viện video hướng dẫn phong phú, diễn đàn hỗ trợ và cung cấp sẵn một danh sách hướng dẫn sử dụng cho người mới bắt đầu. PHP framework này rất phù hợp cho những người mới làm quen với framework.

 Seagull: cũng là một PHP framework tốt phục vụ cho việc xây dưng website. Nó là một framework cực kỳ dễ sử dụng cho cả những người mới mới làm quen với lập trình PHP đến những chuyên gia trong lập trình PHP. Với những người mới làm quen với lập trình PHP, Seagull cung cấp một thư viện các mẫu ứng dụng có thể được tùy chỉnh để phù hợp với nhu cầu của họ. Đối với các chuyên gia PHP, Seagull cung cấp các tùy chọn máy chủ, bao gồm các phương pháp hay nhất, tiêu chuẩn và modular codebase – giúp các lập trình viên xây dựng các ứng dụng web một cách nhanh chóng và dễ dàng. Seagull có một cộng đồng phát triển rộng lớn và nhiều tài liệu hướng dẫn hỗ trợ.

Tóm lại, PHP framework là một giải pháp tuyệt vời cho các lập trình viên phát triển các kỹ năng như: giảm thiểu việc viết lại mã, tăng tốc quá trình phát triển ứng dụng và chuẩn hóa mã lệnh khi xây dựng các ứng dụng web. Không chỉ giúp các bạn cải thiện tốc độ phát triển ứng dụng, nó còn giúp bạn giảm thiểu các lỗ hổng bảo mật một cách triệt để. PHP framework phù hợp cho cả những người mới làm quen hay những bạn đã có kiến thức vững về PHP.

41 2.2.4 Mô hình MVC

a) Định nghĩa:

Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.

b) Các thành phần trong mô hình MVC:

Hình 2.7: Mô hình MVC

Trong kiến trúc MVC, hệ thống được chia thành 3 tầng tương ứng đúng với tên gọi của nó gồm: Model, View, Controller. Ở đó nhiệm vụ cụ thể của các tầng được phân chia như sau:

 Model (tầng dữ liệu): Là một đối tượng hoặc một 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. Nó được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận và lưu dữ liệu là một phần của Model.

 View (tầng giao diện): Là phần giao diện với người dùng, bao gồm việc

thể 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à thực hiện

42

các thao tác khác đối với dữ liệu trong hệ thống. Thông thường, các thông tin cần hiển thị được lấy từ thành phần Models.

 Controller (tầng điều khiển): Là phần điều khiển của ứng dụng, điều hướng các nhiệm vụ (task) đến đúng các phương thức (method) có chức năng xử lý nhiệm vụ đó. Nó chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với models và cuối cùng là chọn một view thích hợp để hiển thị ra màn hình.

c) Sơ đồ hoạt động của mô hình MVC:

Sơ đồ dưới đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:

Hình 2.8: Ví dụ sơ đồ hoạt động của mô hình MVC

User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi. Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model. Model nhận thông tin và thực thi các yêu cầu.

Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại cho người dùng.

d) Ưu điểm và nhược điểm của mô hình MVC:

Một phần của tài liệu Tìm hiểu về điện toán đám mây và xây dựng ứng dựng web theo hướng dịch vụ (Trang 35)