- Trình biên dịch ngôn ngữ C trong Linux- Công nghệ Cloud computing - Ngôn ngữ lập trình web Chương 2: Đặc tả và thiết kế hệ thống - Đặc tả yêu cầu chức năng - Thiết kế hệ thống Chương 3
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI : TÌM HIỂU ĐIỆN TOÁN ĐÁM MÂY VÀ XÂY DỰNG TRÌNH SOẠN THẢO LẬP TRÌNH C TRỰC TUYẾN
Mã số : 06T2-006 Ngày bảo vệ : 15-16/06/2011
SINH VIÊN : LÊ VĂN DIỆN
ĐÀ NẴNG, 06/2011
Trang 2Tôi chân thành cảm ơn giảng viên TS Huỳnh Công Pháp, người đã trực tiếp hướng dẫn tôi hoàn thành đề tài này, người đã tận tình hướng dẫn, chỉ bảo tôi trong suốt thời gian thực hiện đề tài Trong thời gian làm việc với Thầy, tôi không những học hỏi được nhiều kiến thức bổ ích mà còn học được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc của Thầy.
Tôi xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học Bách Khoa - Đại học Đà Nẵng đã tạo điều kiện cho tôi thực hiện đề tài này.
Xin gửi lời cảm ơn chân thành đến gia đình, ba mẹ và bè bạn vì đã luôn
là nguồn động viên to lớn, giúp đỡ tôi vượt qua những khó khăn trong suốt quá trình làm việc
Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của bản thân, nhưng chắc chắn không thể tránh khỏi những thiếu sót Kính mong quý Thầy Cô tận tình chỉ bảo.
Một lần nữa, tôi xin chân thành cảm ơn và luôn mong nhận được sự đóng góp quý báu của tất cả mọi người.
Đà Nẵng, tháng 6 năm 2011.
Lê Văn Diện
Trang 3Tôi xin cam đoan :
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy (cô) TS Huỳnh Công Pháp.
2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Lê Văn Diện
Trang 4………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng ,Ngày … tháng 6 năm 2011
Trang 5………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng ,Ngày … tháng 6 năm 2011
Trang 6GIỚI THIỆU 5
CƠ SỞ LÝ THUYẾT 7
I Trình biên dịch 7
I.1 Định nghĩa trình biên dịch 7
I.2 Các kiểu trình biên dịch 8
I.2.1 Trình biên dịch cùng bản và trình biên dịch chéo bản 8
I.2.2 Số bước chuyển dịch 9
I.2.3 Các đặc tính khác 10
I.3 Trình biên dịch GCC trong Linux 11
I.3.1 Cú pháp sử dụng 11
I.3.2 Ví dụ sử dụng GCC trên Ubuntu 10.10 12
II Công nghệ cloud computing 13
II.1 Khái niệm 13
II.2 Lợi ích 14
II.3 Các loại hình dịch vụ và mô hình triển khai 15
II.3.1 Dịch vụ hạ tầng IaaS (Infrastructure as a Service) 15
II.3.2 Dịch vụ nền tảng PaaS (Platform as a Service) 16
II.3.3 Dịch vụ phần mềm SaaS (Software as a Service) 16
II.3.4 Mô hình triển khai 17
II.4 Khảo sát các nhà cung cấp dịch vụ điện toán đám mây 18
II.5 Ví dụ minh họa đăng kí dịch vụ Cloud computing 19
II.5.1 Đăng kí AWS của Amazon 19
II.5.2 Đăng kí GAE của Google 24
III Các ngôn ngữ PHP,HTML,CSS, JavaScript và cơ sở dữ liệu MSQL 27
III.1 Ngôn ngữ lập trình PHP 27
III.1.1 Giới thiệu 27
III.1.2 Kiểu dữ liệu trong PHP 27
III.1.3 Hàm trong PHP 30
III.2 Các ngôn ngữ lập trình HTML,CSS,JavaScript 31
III.2.1 Ngôn ngữ lập trình HTML 31
III.2.2 Ngôn ngữ lập trình CSS 32
III.2.3 Ngôn ngữ lập trình JavaScipt 32
III.3 Cơ sở dữ liệu MySQL 35
ĐẶC TẢ VÀ THIẾT KẾ HỆ THỐNG 36
I Đặc tả các chức năng 36
I.1 Yêu cầu chung 36
I.2 Đặc tả từng chức năng 38
I.2.1 Chức năng soạn thảo -biên dịch 38
I.2.2 Chức năng phản hồi –thảo luận 40
I.2.3 Chức năng mở rộng:Trang giới thiệu –hướng dẫn và tổng hợp bài tập.42 II Thiết kế hệ thống 43
Trang 7TRIỂN KHAI CHƯƠNG TRÌNH VÀ MINH HỌA KẾT QUẢ 47
I Môi trường triển khai 47
II Triển khai và minh họa kết quả 47
II.1 Chức năng Soạn thảo và biên dịch 47
II.1.1 Trang chủ 49
II.1.2 Kết quả chức năng soạn thảo 50
II.1.3 Biên dịch khi soạn thảo mã đúng 50
II.1.4 Biên dịch khi soạn thảo mã sai 54
II.2 Chức năng phản hồi và thảo luận 56
II.3 Trang giới thiệu –hướng dẫn và tổng hợp bài tập 57
II.4 Minh họa ví dụ cho phép thảo luận trên dịch vụ đám mây của Google 59
TỔNG KẾT 64
I Kết luận 64
I.1 Thành công 64
I.2 Hạn chế 64
I.3 Hướng phát triển 64
Trang 8DANH MỤC HÌNH
Hình 1 Sơ đồ của một trình biên dịch 8
Hình 2Kiểm tra cài đặt phiển bản mới cho GCC 12
Hình 3.Mã chương trình file input.c 13
Hình 4.Kết quả chạy file input bằng GCC trên Ubuntu 10.10 13
Hình 5 Sơ đồ mô tả các dịch vụ Cloud computing 15
Hình 6.Trang đăng kí dịch vụ AWS 22
Hình 7.Đăng kí thành công dịch vụ AWS 23
Hình 8.Show key trong Access Credentials 23
Hình 9.Trang chủ Đăng nhập GAE 24
Hình 10.Trang tạo ứng dụng GAE 25
Hình 11.Trang xác nhận số điện thoại của GAE 26
Hình 13.Trang kết quả ứng dụng mà bạn đã tạo 26
Hình 14.Kịch bản hệ thống 37
Hình 15.Use Case chức năng soạn thảo-biên dịch 39
Hình 16.Biểu đồ trình tự quá trình soạn thảo-biên dịch 40
Hình 17.Use Case chức năng phản hồi thảo luận 41
Hình 18.Biểu đồ trình tự của quá trình phản hồi thảo luận 42
Hình 19.Use Case giới thiệu-hướng dẫn và tổng hợp bài tập 43
Hình 20.Sơ đồ quá trình xử lí mã của hệ thống 44
Hình 21 Khởi động XAMPP trên Ubuntu 10.10 47
Hình 22 Sơ đồ triển khai chức năng soạn thảo-biên dịch 48
Hình 23 Trang chủ website 49
Hình 24.Soạn thảo mã bài tập tính căn bậc 2 của 4 51
Hình 25.Kết quả bài tập tính căn bậc 2 của 4 52
Hình 26 Soạn thảo bài tính căn bậc 2 của 16 53
Hình 27.Kết quả bài tính căn bậc 2 của 16 54
Hình 28.Soạn thảo mã sai 55
Hình 29.Thông báo lỗi khi mã sai 55
Hình 30.Sơ đồ triển khai chức năng phản hồi-thảo luận 56
Hình 31.Minh họa chức năng phản hồi thảo luận 57
Hình 38.Trang giới thiệu 58
Hình 39.Trang hướng dẫn sử dụng 58
Hình 40.Trang thư viện bài tập ngôn ngữ C 59
Hình 32.Upload ứng dụng lên GAE trong cửa sổ cmd 61
Hình 33.Quá trình upload lên GAE 61
Hình 34.Đã upload thành công chức năng thảo luận lên GAE 62
Hình 35.Giao diện chức năng thảo luận trên GAE 62
Hình 36.Khách thảo luận trên GAE 63
Hình 37.Thành viên thảo luận trên GAE 63
Trang 10Ngày nay, thế giới đang chứng kiến sự bùng nổ về công nghệ thông tin, cùng
sự gia tăng số lượng người sử dụng internet Vì vậy, internet trở thành mảnh đất màu
mỡ, nơi các doanh nghiệp, tổ chức, cá nhân khai thác triệt để để của mình tới cộngđồng người dùng đông đảo này Để có thể quản lý được nguồn dữ liệu đó, ban đầu cácdoanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng,phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa, … Ngoài ra họcòn phải tính toán khả năng mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật
dữ liệu cũng như tính sẵn sàng cao của dữ liệu.Từ một bài toán điển hình như vậy,chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốtnguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, côngnghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho họhiệu quả và lợi nhuận ngày càng cao hơn.Thuật ngữ “cloud computing” ra đời bắtnguồn từ một trong những hoàn cảnh như vậy
Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọithứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet Chúng ta sẽ khôngcòn trông thấy các máy PC, máy chủ của riêng để lưu trữ dữ liệu, phần mềm nữa màchỉ còn một số các “máy chủ ảo” tập trung ở trên mạng Các “máy chủ ảo” sẽ cungcấp các dịch vụ giúp cho chúng ta có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chiphí cho lượng sử dụng dịch vụ của mình , mà không cần phải đầu tư nhiều vào cơ sở
hạ tầng cũng như quan tâm nhiều đến công nghệ
Bên cạnh đó ,nhu cầu phát triển rất lớn của nghành công nghệ phần mềm mà sốlượng những người muốn học các ngôn ngữ lập trình nói chung và ngôn ngữ lập trình
C nói riêng ngày càng tăng cao Do đó chọn đề tài thực hiện tốt nghiệp“Tìm hiểu điệntoán đám mây và xây dựng trình soạn thảo lập trình C trực tuyến “sẽ là một công việcrất hữu ích và có ý nghĩa.Nội dung chính của luận văn gồm 3 chương:
Trang 11- Trình biên dịch ngôn ngữ C trong Linux
- Công nghệ Cloud computing
- Ngôn ngữ lập trình web
Chương 2: Đặc tả và thiết kế hệ thống
- Đặc tả yêu cầu chức năng
- Thiết kế hệ thống
Chương 3: Triển khai và minh họa kết quả
- Môi trường triển khai và công cụ sử dụng
- Triển khai và minh họa kết quả từng chức năng
Tổng kết
- Kết luận, đánh giá
- Hướng phát triển của đề tài
Kết thúc luận văn là phần phụ lục, danh mục các tài liệu tham khảo, tóm lượclại những vấn đề đã trình bày trong luận văn
Trang 12CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
I Trình biên dịch
I.1 Định nghĩa trình biên dịch
Trình biên dịch, còn gọi là phần mềm biên dịch, compiler, là một chương trìnhmáy tính làm công việc dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập
trình (gọi là ngôn ngữ nguồn hay mã nguồn), thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới (gọi là ngôn ngữ đích) và thường là
ngôn ngữ ở cấp thấp hơn, như ngôn ngữ máy Chương trình mới được dịch này gọi
mã đối tượng
Hầu hết các trình biên dịch sẽ chuyển dịch mã nguồn viết trong một ngôn ngữcấp cao thành mã đối tượng hay ngôn ngữ máy mà có thể được thi hành trực tiếp bởimột máy tính hay bởi một máy ảo Dù vậy, việc chuyển dịch từ một ngôn ngữ cấpthấp sang một ngôn ngữ cấp cao hơn cũng có thể xảy ra; quá trình này thường đượchiểu như là bộ biên dịch ngược nếu nó có thể tái tạo lại một chương trình trong ngônngữ cấp cao Cũng tồn tại các trình biên dịch chuyển đổi từ ngôn ngữ cao này sangngôn ngữ cao khác, hay là chuyển đổi sang một ngôn ngữ mà nó cần để tiếp tục xử lý
về sau; những trình biên dịch như vậy được biết như là bộ biên dịch phân tầng
Các loại trình biên dịch cho kết quả là mã đối tượng thì một cách cơ bản baogồm mã máy tăng cường thêm các thông tin về tên vị trí của các ngõ vào và các gọingoài (đến các hàm mà không có sẵn bên trong của nó) Một tập hợp của các tập tinđối tượng, mà không hẳn được cung cấp từ cùng một trình biên dịch, thì vẫn có thểđược liên kết với nhau để tạo nên các chương trình khả thi cuối cùng cho một ngườidùng Dĩ nhiên, để làm được như vậy thì các tập tin đối tượng đó phải được thiết kếchung nhau về dạng thức Thí dụ của kiểu tập đối tượng này là các tập có đuôi là obj
có thể dùng chung giữa ASM, C/C++, Fortran hay các tập tin DLL trong các kiếntrúc Windows dùng chung được cho nhiều ngôn ngữ
Trang 13Hình 1 Sơ đồ của một trình biên dịch
I.2 Các kiểu trình biên dịch
I.2.1 Trình biên dịch cùng bản và trình biên dịch chéo bản
Tất cả các trình biên dịch đều hoặc là biên dịch cùng bản hoặc là biên dịchchéo bản
Một trình biên dịch có thể sản xuất ra mã chủ định để chạy trên cùng một kiểumáy tính và một kiểu hệ điều hành như là chạy trên trên máy mà trình biên dịch tự nótiến hành được gọi là một trình biên dịch cùng bản
Một loại khác, trình biên dịch có thể sản xuất ra mã mà được thiết kế để chạytrên các kiểu máy tính khác hay hệ điều hành khác Trường hợp này gọi là trình biêndịch chéo bản Các trình biên dịch chéo bản thì rất có ích khi gặp một hệ thống phầncứng mới trong lần đầu tiên Trình biên dịch chéo bản cũng rất cần khi việc phát triểnphần mềm cho các hệ thống vi điều khiển, mà chúng chỉ có vừa đủ kho lưu trữ cho mã
Trang 14máy cuối, không đủ để tải trình biên dịch (như trường hợp dịch chương trình để chạytrên các palmtop và các điện thoại di động chẳng hạn).
I.2.2 Số bước chuyển dịch
Tất cả các trình biên dịch thì có thể là một bước hay nhiều bước
Trình biên dịch một bước: Với loại này, sự chuyển dịch hoàn tất trong mộtbước và do đó rất nhanh
Thí dụ của các trình biên dịch trước đây cho Pascal hay Borland C là trình biêndịch một bước
Các trình biên dịch cần nhiều hơn một bước để hoàn tất gọi là trình biêndịch nhiều bước Các kiểu trình biên dịch nhiều bước bao gồm:
Trình biên dịch nguồn sang nguồn là loại trình biên dịch nhận vào mãnguồn là một ngôn ngữ cấp cao và chuyển dịch thành một ngôn ngữ cấpcao khác
Thí dụ: Một trình biên dịch tự động song song hoá sẽ thường xuyên lấy chươngtrình trong ngôn ngữ cấp cao ở ngõ vào và chuyển dạng mã nguồn và chú giải
nó với các chú giải mã song song (như OpenMP hay cấu trúc ngôn ngữ (nhưcác câu lệnh DOALL của Fortran))
Trình biên dịch phân đoạn biên dịch sang ngôn ngữ ASM của một máy
lý thuyết như là vài tiến hành của Prolog Loại máy Prolog này cònđược gọi là máy trừu tượng Warren (hay WAM)
Thí dụ: Các trình biên dịch bytecode cho Java, Python và nhiều trình biên dịchkhác nữa là một kiểu con của kiểu này
Trình biên dịch động hay còn gọi là trình biên dịch JIT sẽ chuyển dịchcác ứng dụng sang bytecode, sau đó, bytecode sẽ được dịch sang mã củangôn ngữ máy tương thích trước khi thi hành
Trang 15Thí dụ: Trình biên dịch JIT được dùng bởi Smalltalk, Java, cũng như dùng bởiNgôn ngữ trung gian thông dụng của Microsoft.NET.
I.2.3 Các đặc tính khác
Đặc biệt, một trình biên dịch có thể có thêm các chức năng sau đây:
Trình biên dịch mã liên kết là loại trình biên dịch cho phép thay thế cácdòng kí tự trong (mã) nguồn bằng các khối mã nhị phân sẵn có Các khối mãnhị phân này có thể có nhiều cấp độ khác nhau
Thí dụ: các trình biên dịch trong hầu hết các kiến trúc của FORTH Trong thực
tế, một vài trình biên dịch FORTH có thể dịch các chương trình mà không cầnđến hệ điều hành
Trình biên dịch tăng tiến Trong trình biên dịch tăng tiến, các hàm riêng
lẻ có thể được dịch trong thời gian thi hành (runtime) mà các hàm này cũng
bao gồm các chức năng thông dịch
Thí dụ: Kiến trúc dịch tăng tiến xuất hiện từ 1962 và vẫn còn được sử dụngtrong các hệ thống Lisp
Trình biên dịch đa năng là trình biên dịch có thể được điều chỉnh để tạo
ra mã cho các kiến trúc CPU khác nhau một cách tương đối dễ dàng Mã đốitượng làm ra bởi các trình biên dịch này thường có chất lượng kém hơn là các
mã được tạo ra từ các trình biên dịch chỉ chuyên dùng cho đúng loại CPU.Trình biên dịch đa năng thường cũng là trình biên dịch chéo bản
Thí dụ: GCC là một loại trình biên dịch đa năng miễn phí rất phổ biến
Trình biên dịch song song hóa là loại trình biên dịch có khả năngchuyển đổi một chương trình vào được viết theo kiểu liên tục sang một dạngthuận tiện trên kiến trúc của máy tính song song
Trang 16I.3 Trình biên dịch GCC trong Linux
I.3.1 Cú pháp sử dụng
Bộ trình dịch GNU (tiếng Anh: GNU Compiler Collection - thường được viếttắt thành GCC) là một tập hợp các trình dịch được thiết kế cho nhiều ngôn ngữ lậptrình khác nhau GCC là trình dịch chính thức của hệ thống GNU, và được hầu hếtcác hệ điều hành giống Unix, bao gồm Linux, dòng hệ điều hànhBSD, và Mac OS
X chọn làm trình dịch tiêu chuẩn GCC đã tương thích với rất nhiều nền tảng kiến trúcmáy tính đa dạng, và được sử dụng rộng rãi như một công cụ làm môi trường pháttriển các phần mềm thương mại, có bản quyền và nguồn đóng
Sử dụng gcc theo syntax: [CODE]% gcc [ tùy chọn | tên file ]
Giả sử có 1 file myfile.c khi bạn đánh :% gcc myfile.c.Trong thư mục của sẽ
có thêm file a.out đó là file output mặc định của gcc Lúc này đã có thể run chươngtrình bằng : % /a.out
Nhưng nếu compile file tiiếp theo cũng như trên thì file a.out sẽ bị ghi đè bằngfile thứ 2 Để khắc phục bạn chúng ta có thể sử dụng tùy chọn -o để đặt tên file output
% gcc -o myout myfile.c.Lúc đó thay vì có a.out sẽ có myout
Khi compile 1 program, sẽ có những errors nhỏ nhưng gcc sẽ thay sửa chửanhững lỗi này (trừ khi đó là lỗi lớn) Nhưng trên thực tế' mình phải tự sửa các lỗi này
để chương trình sau khi compile là bug-free Bạn sẽ thêm 1 tùy chọn đ1o là -Wall (viếttắc của Warning All - Thông báo tất cả : % gcc -Wall -o myout myfile.c
Và lúc này đưa vào thông báo lỗi chúng ta sẽ có thể sửa lỗi của mình.Nhưngvới những người lập trình C, có 1 lỗi bất trị đó là Sementation Fault, cho dù compilevới gcc không có lỗi nhưng khi chạy chương trình không được thông báo lỗi này, lý
do ?? Tại vì gcc chỉ check lỗi của syntax ( cú pháp ) chứ không check lỗi chươngtrinh Lúc này sẽ phải nhờ 1 người anh em khác, dó là gdb ( The GNU Debugger ) đểtìm lỗi run-time (TW sẽ viết bài về gdb sau) Muốn gdb hoạt động, phải thêm 1 tùy
Trang 17chọ đó là –g : % gcc -Wall -g -o myout myfile.c.Lúc này trong myout sẽ có thêmnhững đoạn mã dùng cho gdb Khi chúng ta đã sửa xong các lỗi và release software,chúng ta nên compile lại source code và bỏ tùy chọn -g , điều này sẽ giúp cho chươngtrình nhỏ hơn và không ai có thể xem source code của mình Muốn biết thêm về gccmột cách đơn giản nhất là “man gcc”
I.3.2 Ví dụ sử dụng GCC trên Ubuntu 10.10
Bây giờ chúng ta sẽ chạy một ví dụ đơn giản in lên màn hình dòng chữ “Xinchao” bằng ngôn ngữ lập trình C sử dụng trình biên dịch GCC trên Ubuntu 10.10
Kiểm tra cài đặt phiên bản mới cho GCC:
Hình 2Kiểm tra cài đặt phiển bản mới cho GCC
Mở trình soạn thảo trên ubuntu và soạn thảo chương trình Lưu lại với fileinput.c ở thư mục home
Hình 3.Mã chương trình file input.c
Trang 18Chạy chương trình ta sẽ được kết quả
Hình 4.Kết quả chạy file input bằng GCC trên Ubuntu 10.10
II Công nghệ cloud computing
II.1 Khái niệm
Hiện nay, chưa có một sự thống nhất về định nghĩa Cloud computing, mỗi tổchức hay nhà cung cấp dịch vụ đều đưa ra ý kiến riêng
Theo WIKIPEDIA: Cloud Computing là điện toán trên nền tảng Internet CácMáy Chủ cung cấp tài nguyên, phần mềm, dữ liệu, và các thiết bị khác theo yêu cầu
Theo Ian Foster: Cloud Computing là mô hình điện toán phân tán có tính cogiãn linh hoạt về mặt kinh tế, là nơi chứa sức mạnh về tính toán, lưu trữ dựa trên nềntảng và dịch vụ cung cấp sự ảo hóa tài nguyên và thay đổi linh hoạt để phù hợp vớinhu cầu khách hàng trên Internet
Theo Rajkumar Buyya:Cloud là một hệ thống phân tán và xử lý song song gồmnhiều máy tính ảo kết nối với nhau và được cung cấp cho người dùng dựa trên thỏathuận giữa nhà cung cấp dịch vụ và người dùng
II.2 Lợi ích
Lợi ích về chi phí đầu tư:Thông thường người dùng hoặc các doanh nghiệpphải đầu tư vào nhiều khoản như: mua ứng dụng, đầu tư cho phần cứng để có thể triểnkhai được ứng dụng đó, chi phí bảo trì phần cứng và phần mềm, chi phí nâng cấp thiết
bị, thuê đội ngũ quản lý, …đôi khi nhiều ứng dụng và thiết bị có giá đắt đỏ được mua
về tuy nhiên tần suất sử dụng không cao, khả năng đáp ứng kém, đó là một sự lãngphí lớn
Trang 19Với điện toán đám mây, người dùng và các doanh nghiệp chỉ các thiết bị cấuhình đủ để duyệt web, được kết nối với internet là có thể sử dụng được các tài nguyên
mà họ đang có nhu cầu Không cần tốn quá nhiều chi phí, nhưng người dùng và cácdoanh nghiệp có thể sử dụng các tài nguyên tốt nhất với khả năng đáp ứng cao và chỉphải trả chi phí cho lưu lượng mà họ đã sử dụng (thường tính bằng thời gian sử dụngứng dụng)
Công nghệ ảo hóa :Ảo hóa làm tăng năng xử lý bằng cách kết hợp các server
và các thiết bị lưu trữ Công nghệ ảo hóa đã tạo nên tính linh động của điện toán đámmây Nếu các nhà cung cấp dịch vụ truyền thống chỉ cung cấp cố định tài nguyên vànăng lực xử lý đúng như ràng buộc của hai bên (thường thấp hơn so với hợp đồng),thì điện toán đám mây có khả năng cung cấp thêm tài nguyên, năng lực xử lý mộtcách nhanh chóng chỉ sau những thao tác cấu hình đơn giản và khách hàng chỉ phải trảchi phí đúng theo lưu lượng mà họ sử dụng Người dùng hoặc các doanh nghiệp cóthể tiếp cận với các tài nguyên tính toán và lưu trữ khổng lồ
Ngoài ra, xét ở góc độ các lập trình viên và các nhà phát triển ứng dụng, điệntoán đám mây cung cấp đầy đủ các công cụ hỗ trợ trong quá trình phát triển một ứngdụng như các cơ sở dữ liệu, các máy chủ ứng dụng, hệ thống quản lý source code, hệthống quản lý thay đổi, các công cụ lần vết tìm lỗi, … mà không cần đầu tư quá nhiều.Cho phép các lập trình viên và nhà phát triển ứng dụng tạo ra các ứng dụng web tùychỉnh và phát hành nó một cách nhanh chóng , bỏ qua nhiều giai đoạn rắc rối như việcthiết lập hosting, servers, databases, …
II.3 Các loại hình dịch vụ và mô hình triển khai
Các mô hình dịch vụ của điện toán đám mây khá da dạng, nhưng phổ biến nhất
có thể được phân thành 3 nhóm: dịch vụ hạ tầng (IaaS), dịch vụ nền tảng (PaaS) vàdịch vụ phần mềm (SaaS)
Trang 20Hình 5 Sơ đồ mô tả các dịch vụ Cloud computing
II.3.1 Dịch vụ hạ tầng IaaS (Infrastructure as a Service)
Dịch vụ hạ tầng IaaS cung cấp dịch vụ cơ bản, cung cấp năng lực tính toán,không gian lưu trữ, kết nối mạng tới khách hàng Khách hàng (cá nhân hoặc tổ chức)
có thể sử dụng tài nguyên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cài đặt ứngdụng riêng tùy theo mục đích sử dụng Với dịch vụ này khách hàng làm chủ hệ điềuhành, không gian lưu trữ và các ứng dụng do khách hàng cài đặt Khách hàng điểnhình của dịch vụ IaaS có thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứngdụng của mình
Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon Khách hàng có thểđăng ký sử dụng một máy tính ảo trê dịch vụ của Amazon và lựa chọn một hệ thốngđiều hành (ví dụ, Windows hoặc Linux) và tự cài đặt ứng dụng của mình
II.3.2 Dịch vụ nền tảng PaaS (Platform as a Service)
Dịch vụ nền tảng PaaS cung cấp nền tảng điện toán cho phép khách hàng pháttriển các phần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nềntảng đám mây đó Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp
Trang 21giữa (middleware), các ứng dụng chủ (application server) cùng các công cụ lập trìnhvới ngôn ngữ lập trình nhất định để xây dựng ứng dụng Dịch vụ PaaS cũng có thểđược xây dựng riêng và cung cấp cho khách hàng thông qua API riêng Khách hàngxây dựng ứng dụng và tương tác với hạ tầng điện toán đám mây thông qua API đó Ởmức PaaS, khách hàng không quản lý nền tảng đám mây hay các tài nguyên lớp như
hệ điều hành, lưu giữ ở lớp dưới Khách hàng điển hình của dịch vụ PaaS chính là cácnhà phát triển ứng dụng
Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phépkhách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triểndựa trên ngôn ngữ lập trình Java hoặc Python
II.3.3 Dịch vụ phần mềm SaaS (Software as a Service)
Dịch vụ SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu cầucho nhiều khách hàng Khách hàng lựa chọn ứng dụng phù hợp với nhu cầu và sửdụng mà không quan tâm tói hay bỏ công sức quản lý tài nguyên tính toán bên dưới
Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng chodoanh nghiệp mà nổi bật nhất là CRM Các ứng dụng SaaS cho người dùng cuối phổbiến là các ứng dụng office Online của Microsoft hay Google Docs của Google
II.3.4 Mô hình triển khai
Đám mây “công cộng” :Mô hình đầu tiên được nói đến khi đề cập tới điện toánđám mây chính là mô hình đám mây công cộng (public cloud) Đây là mô hình mà hạtầng điện toán đám mây được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi cho tất
cả các khách hàng thông qua hạ tầng mạng internet hoặc các mạng công cộng diệnrộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ
Do vậy, hạ tầng điện toán đám mây được thiết kế để đảm bảo cô lập về dữ liệu giữacác khách hàng và tách biệt về truy cập
Các dịch vụ của đám mây công cộng hướng tới số lượng khách hàng lớn nênthường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi
Trang 22phí thấp cho khách hàng Do đó khách hàng của các dịch vụ trên đám mây công cộng
sẽ bao gồm tất cả các tầng lớp, trong đó khách hàng là cá nhân và doanh nghiệp nhỏ
sẽ được lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệ cao, chất lượng
mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt
Đám mây “riêng”:Đám mây riêng (private cloud) là mô hình trong đó hạ tầngđám mây được sở hữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó.Đám mây riêng có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thểđược đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặcthậm chí là một bên thứ tư)
Đám mây riêng được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằmkhai thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Vớiđám mây riêng, các doanh nghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả
sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sảnphẩm sản xuất, kinh doanh ra thị trường
Đám mây “chung”:Đám mây chung (community cloud) là mô hình trong đó hạtầng đám mây được chia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổchức đó Các tổ chức này do đặc thù không tiếp cận với các dịch vụ của đám mâycông cộng và chia sẻ chung một hạ tầng điện toán đám mây để nâng cao hiệu quả đầu
tư và sử dụng
Đám mây “lai”:Mô hình đám mây lai (hybrid cloud) là mô hình bao gồm haihoặc nhiều hơn các đám mây trên tích hợp với nhau Mô hình đám mây lai cho phépchia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu
II.4 Khảo sát các nhà cung cấp dịch vụ điện toán đám mây
Sau đây là những hổ trợ cho Developer
Trang 23Giải pháp được lựa chọn
Theo nhu cầu thì mô hình triển khai là Public Cloud (đám mây chung)
II.5 Ví dụ minh họa đăng kí dịch vụ Cloud computing
II.5.1 Đăng kí AWS của Amazon
Amazon Web Services là tập hợp các dịch vụ cung cấp cho người lập trình cókhả năng truy cập tới hạ tầng kiến trúc tính toán kiểu sẵn sàng-để-sử dụng (ready-to-
Trang 24use) của Amazon Các máy tính có nền tảng vững chắc đã được xây dựng và tinh chếqua nhiều năm của Amazon bây giờ là có thể cho phép bất cứ ai cũng có quyền cậptới Internet Amazon cung cấp một số dịch vụ Web nhưng trong loạt bài viết này chỉtập trung vào các dịch vụ khối hợp nhất (building-block) cơ bản, cái mà đáp ứng đượcmột số yêu cầu cốt lõi của hầu hết các hệ thống như: lưu trữ, tính toán, truyền thôngđiệp và tập dữ liệu
Bạn có thể xây dựng các ứng dụng phức tạp và gồm nhiều phần khác nhaubằng cách sử dụng các chức năng phân tầng với các dịch vụ đáng tin cậy, hiệu quảkhối hợp nhất được cung cấp bởi Amazon Các dịch vụ Web mà tồn tại bên trong đámmây phía bên ngoài môi trường của bạn và có khả năng thực hiện là rất cao
Bạn sẽ trả chỉ dựa trên những cái bạn sử dụng mà không cần phải trả trước cácchi phí và vốn đầu tư ban đầu Bạn không cần phải mất chi phí cho bảo trì bởi vì phầncứng được duy trì và phục vụ bởi Amazon
Cơ sở hạ tầng ảo là cỗ máy san đường khổng lồ trong thế giới chịu chi phối từweb ngày nay Trong một phút, bạn có thể nhanh chóng kết hợp thành một nền tảng
hạ tầng mà có thể bạn sẽ mất hàng tuần để làm việc đó trong một cửa hàng công nghệthông tin trong thế giới thực Điểm quan trọng là, cơ sở hạ tầng là mềm dẻo và có thểthay đổi lên hay xuống tùy theo nhu cầu Các công ty trên thế giới đang chuẩn bị để
sử dụng tính toán mềm dẻo này (xem hộp bên cạnh)
Các thành phần chính của hạ tầng cơ sở của trang Web này, cái mà cung cấphầu hết các khối xây dựng cơ bản phổ biến cần thiết cho hầu hết các ứng dụng khôngtầm thường:
Lưu trữ (Storage)
Mọi người đều cần phải lưu trữ — cho các tệp, các tài liệu, các dữ liệu tải vềcủa người dùng hoặc các bản sao lưu Có thể tiến hành lưu trữ bất kỳ các ứng dụngcần thiết của bạn trong Amazon Simple Storage Service (S3) và nhận được các lợi ích
Trang 25với nó như có khả năng mở rộng, đáng tin cậy và với mức chi phí thấp cho việc lưutrữ.
Tính toán (Computing)
Amazon Elastic Compute Cloud (EC2) cung cấp khả năng để mở rộng tàinguyên tính toán của bạn lớn lên hoặc giảm xuống dựa trên nhu cầu và tạo ra khảnăng cung cấp dịch vụ mới một cách dễ dàng
Gửi thông điệp (Messaging)
Thực hiện tách riêng các thành phần ứng dụng của bạn bằng cách sử dụng khảnăng không giới hạn của việc truyền thông điệp được cung cấp bởi Amazon SimpleQueue Service (SQS)
Tập hợp dữ liệu (Datasets)
Amazon SimpleDB (SDB) cung cấp khả năng mở rộng, lập chỉ mục, khả nănglưu trữ mà không cần bảo trì, cùng với việc thực hiện xử lý và truy vấn với tập hợp dữliệu
Amazon EC2 là dịch vụ Web cho phép bạn yêu cầu các máy ảo trong vòng mộtvài phút và dễ dàng thay đổi khả năng của bạn hoặc tải xuống dựa trên nhu cầu Bạnchỉ cần phải trả chi phí cho khoảng thời gian mà bạn sử dụng Nếu bạn muốn tăng khảnăng tính toán của bạn nên, bạn có thể nhanh chóng tiếp cận khởi tạo máy áo và sau
đó chấm dứt chúng khi mà nhu cầu của bạn giảm đi
Những trường hợp mà dựa trên Linux® và có thể chạy trên bất kỳ ứng dụngnào hoặc phần mềm nào bạn muốn Bạn có thực hiện điều khiển cho từng trường hợp
cụ thể Môi trường của EC2 là được xây dựng trên cùng mã nguồn mở Xenhypervisor, cái được phát triển tại trường Đại học Cambridge Amazon cho phép bạntạo ra hình ảnh máy Amazon (AMIs) cái thực hiện hành động như là các khuôn mẫucho các ví dụ của bạn Truy cập với các ví dụ có thể được điều khiển bằng việc xácđịnh được các quyền cho phép Bạn cũng có thể làm bất cứ cái gì bạn muốn với chúng
Trang 26tuy chỉ có một hạn chế duy nhất là yêu cầu bạn cần sử dụng dựa trên Linux Thời giangần đây, khi mà Open Solaris được công bố trong một quan hệ đối tác với SunMicrosoftsystem, nhưng phần lớn các thương mại miễn phí và có sẵn được xây dựngcho EC2 đều dựa trên nền tảng Linux.
Amazon EC2 cung cấp chính xác quy mô máy tính cái cho phép dễ dàng đểthay đổi quy mô tài nguyên tính toán của bạn lên và xuống Bạn hoàn toàn kiểm soátđược môi trường tính toán cái mà chạy trong trung tâm dữ liệu của Amazon Amazoncung cấp năm kiểu của các máy chủ; để cho phép bạn chọn lựa một trong các loại nàyphù hợp với ứng dụng cần thiết của bạn Các máy chủ cung cấp từ loại đơn lõi x86đến loại tám lõi x86_64 Bạn có thể thay thế các trường hợp trong các mô hình địa lýkhác nhau hoặc trong các vùng mà từ chỗ đảm bảo thực hiện đến chỗ có thể thất bại.Amazon cũng chỉ dẫn khái niệm của địa chỉ IP thay đổi cho phép làm việc với địa chỉđộng
Tiến hành đăng kí tại địa chỉ http://www.amazon.com
Hình ảnh minh họa quá trình đăng kí
Hình 6.Trang đăng kí dịch vụ AWS
Trang 27Hình 7.Đăng kí thành công dịch vụ AWS
Hình 8.Show key trong Access Credentials
Trang 28II.5.2 Đăng kí GAE của Google
Đăng kí GAE tại địa chỉ https://appengine.google.com/
Nhằm hỗ trợ lập trình viên xây dựng ứng dụng, Google App Engine hỗ trợplugin và có tài liệu hướng dẫn chi tiết để lập trình viên dễ dàng thực hiện việc càiđặt, build, mở rộng ứng dụng web của mình bằng cách sử dụng công nghệ Google Ởđây, ta lựa chọn phát triển ứng dụng trên nền tảng Java
Hình ảnh ví dụ về quá trình đăng kí dịch vụ của GAE
Hình 9.Trang chủ Đăng nhập GAE
Trang 29Hình 10.Trang tạo ứng dụng GAE
Trang 30Hình 11.Trang xác nhận số điện thoại của GAE
Hình 12.Trang kết quả ứng dụng mà bạn đã tạo
Trang 31III Các ngôn ngữ PHP,HTML,CSS, JavaScript và cơ sở
dữ liệu MSQL
III.1 Ngôn ngữ lập trình PHP
III.1.1 Giới thiệu
-PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lậptrình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụngviết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp vớiweb và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụngweb, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựngsản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trởthành một ngôn ngữ lập trình web phổ biến nhất thế giới
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và
có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHPlập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy môdoanh nghiệp
III.1.2 Kiểu dữ liệu trong PHP
PHP hỗ trợ tám kiểu dữ liệu nguyên thuỷ Bốn kiểu thông thường là: boolean,integer, floating-point number(float), string Hai kiểu phức tạp là: mảng( array) và đốitượng ( object) Và cuối cùng là hai kiểu đặc biệt : resource và NULL Loại dữ liệucủa biến thông thường không được gán bởi người lập trình mà được quyết định tạithời gian chạy của PHP, phụ thuộc vào ngữ cảnh mà biến được dùng
Đây là kiểu đơn giản nhất Một kiểu boolean biểu thị một giá trị thật Nó có thể
là TRUE hay FALSE Cú pháp: để chỉ định một giá trị boolean, có thể sử dụng từkhoá TRUE hay là FALSE Cả hai đều không phân biệt chữ hoa hay chữ thường Vídụ:
$foo=True; // gán giá trị TRUE cho biến $foo
Trang 32Để có thể chuyển một giá trị sang kiểu boolean, chúng ta có thể dùng (bool)hay (boolean) Tuy nhiên trong hầu hết các trường hợp bạn không cần phải sử dụngviệc ép kiểu này, bởi giá trị sẽ được tự động chuyển nếu nó là một toán tử, hàm hay làcấu trúc điều khiển đòi hỏi một tham số kiểu boolean Chú ý: -1 được xem là TRUE,giống như các giá trị khác 0 khác ( bất kể là số dương hay âm).
Integer
Là một tập hợp bao gồm các số { ,-2,-1,0,1,2, }
Cú pháp: Integer có thể được chỉ định trong cơ số 10, cơ số thập lục phân hay
cơ số bát phân, tuỳ chọn đi trước bởi dấu - hay + Nếu bạn sử dụng với cơ số bátphân, bạn phải theo thứ tự với 0 đứng trước, còn đối với số thập lục phân thì 0x Ví dụnhư sau:
429496728 Tuy nhiên, khi cả hai toán tử đều là số dương thì không có vấn đề gì xảyra
Để chuyển một giá trị sang kiểu integer, ta có thể dùng toán tử ép kiểu (int)hay (integer) Tuy nhiên, trong hầu hết các trường hợp bạn không cần phải dùng toán
Trang 33tử ép kiểu đó, bởi giá trị sẽ được tự động chuyển sang nếu toán tử, hàm hay cấu trúcđiều khiển đòi hỏi một đối số integer.
Là những chuỗi các kí tự Trong PHP,một kí tự cũng tương tự như một byte,do
đó có chính xác 256 kí tự khác nhau Cú pháp: có thể khai báo bằng ba cách khácnhau như sau:
1 Dấu nháy đơn: cách dễ dàng nhất để chỉ định một chuỗiđơn giản là đóng nó trong một dấu nháy đơn.Ví dụ:echo 'le bao vy';
1 Dấu nháy kép: nếu chuỗi được đóng trong dấu nháykép("),PHP hiểu sẽ có thêm các chuỗi cho các kí tự đặc biệt Ví dụ: \n;\t;\\;\$;…
1 Heredoc: các khác để phân định chuỗi là sử dụng cú pháp("<<<") Chỉ nên cung cấp một định danh sau <<<, sau đó là chuỗi vàtiếp là cùng tên định danh để đóng dấu nháy Định danh dùng để đóngphải bắt đầu bằng cột đầu tiên của dòng Định danh được dùng phải cótên giống như trong các quy luật đặt tên biến trong PHP
III.1.3 Hàm trong PHP
Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ người lập trìnhviệc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website.Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc Đồng
Trang 34thời có thể tùy biến ở mọi trang Mà không cần phải khởi tạo hay viết lại mã lệnh nhưHTML thuần.
Trang 35return giatri;
}
Gọi lại hàm trong PHP:
PHP cung cấp nhiều hàm cho phép triệu gọi lại file Như hàm include("URL đến file"), require("URL Đến file")
Ngoài hai cú pháp trên còn có include_once(), require_once() Hai hàm này cũng có trách nhiệm gọi lại hàm Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi
III.2 Các ngôn ngữ lập trình HTML,CSS,JavaScript
III.2.1 Ngôn ngữ lập trình HTML
HTML (tiếng Anh, viết tắt cho HyperText Markup Language, tức là "Ngôn ngữ
Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên cáctrang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web Đượcđịnh nghĩa như là một ứng dụng đơn giản của SGML, vốn được sử dụng trong các tổchức cần đến các yêu cầu xuất bản phức tạp, HTML giờ đây đã trở thành một chuẩnInternet do tổ chức World Wide Web Consortium (W3C) duy trì Phiên bản mới nhấtcủa nó hiện là HTML 4.01 Tuy nhiên, HTML hiện không còn được phát triển tiếp.Người ta đã thay thế nó bằng XHTML
Dùng HTML động hoặc Ajax, có thể được tạo ra và xử lý bởi số lượng lớn cáccông cụ, từ một chương trình soạn thảo văn bản đơn giản – bạn có thể gõ vào ngay từnhững dòng đầu tiên – cho đến những công cụ xuất bản WYSIWYG phức tạp
III.2.2 Ngôn ngữ lập trình CSS
CSS (Cascading Style Sheets) được hiểu một cách đơn giản đó là cách màchúng ta thêm các kiểu hiển thị (font chữ, kích thước, màu sắc ) cho một tàiliệu Web
Trang 36CSS quy định cách hiển thị của các thẻ HTML bằng cách quy định các thuộctính của các thẻ đó (font chữ, màu sắc) Để cho thuận tiện bạn có thể đặt toàn bộ cácthuộc tính của thẻ vào trong một file riêng có phần mở rộng là \".css\".CSS nó phá vỡgiới hạn trong thiết kế Web, bởi chỉ cần một file CSS có thể cho phép bạn quản lí địnhdạng và layout trên nhiều trang khác nhau Các nhà phát triển Web có thể định nghĩasẵn thuộc tính của một số thẻ HTML nào đó và sau đó nó có thể dùng lại trên nhiềutrang khác.
Có thể khai báo CSS bằng nhiều cách khác nhau Bạn có thể đặt đoạn CSS củabạn phía trong thẻ , hoặc ghi nó ra file riêng với phần mở rộng \".css\", ngoài ra bạncòn có thể đặt chúng trong từng thẻ HTML riêng biệt.Tuy nhiên tùy từng cách đặtkhác nhau mà độ ưu tiên của nó cũng khác nhau Mức độ ưu tiên của CSS sẽ theo thứ
tự sau
1 Style đặt trong từng thẻ HTML riêng biệt
2 Style đặt trong phần
3 Style đặt trong file mở rộng css
4 Style mặc định của trình duyệt
Mức độ ưu tiên sẽ giảm dần từ trên xuống dưới
CSS có tính kế thừa
III.2.3 Ngôn ngữ lập trình JavaScipt
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựatrên đối tượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùngrộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụngcác đối tượng nằm sẵn trong các ứng dụng Nó vốn được phát triển bởi Brendan Eich
tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript Giống Java, JavaScript có cú pháp tương tự