1. Trang chủ
  2. » Công Nghệ Thông Tin

Phát triển pluginflemap ứng dụng bản đồ đa chức năng cho các website sử dụng mạng nguồn mở

70 308 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 3,25 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn gi

Trang 1

LỜI CẢM ƠN

Sau khoảng thời gian nghiên cứu và tìm hiểu, đến nay em đã hoàn thành bài báo cáo đồ án tốt nghiệp của mình Em xin bày tỏ lòng biết ơn sâu sắc và gửi lời cảm ơn tới Ban chủ nhiệm khoa Công nghệ thông tin, các thầy cô giáo bộ môn Công nghệ thông tin, các thầy cô đã tận tình giảng dạy, trang bị cho chúng em những vốn kiến thức và kinh nhiệm quý báu, cung cấp cho chúng em những điều kiện và môi trường học tập tốt nhất

Để hoàn thành tốt được bài báo cáo này, em xin được gửi lời cảm ơn trân thành tới Thầy giáo – Thạc sỹ Nguyễn Quang Hiệp, người đã theo sát, sẵn sàng trả lời cho

em các vướng mắc và hướng dẫn tạo điều kiện tốt nhất giúp em hoàn thành bài báo cáo này

Sinh viên

Phạm Công Tuấn Thắng

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan nội dung trong bài báo cáo đồ án tốt nghiệp này là kết quả của quá trình nghiên cứu tìm hiểu thực sự của cá nhân em, được thực hiện dựa trên cơ sở

lý thuyết và sự hướng dẫn nhiệt tình chỉ bảo của Thầy giáo – Th.S Nguyễn Quang Hiệp

Các nội dung lý thuyết, sơ đồ phân tích được nghiên cứu và áp dụng từ phần tài liệu tham khảo, chương trình demo do em tự thiết kế

Nếu có sự sao chép, copy từ các bản báo cáo khác em xin tự chịu mọi trách nhiệm trước bộ môn và nhà trường

Sinh viên

Phạm Công Tuấn Thắng

Trang 3

MỤC LỤC

LỜI CAM ĐOAN 2

LỜI NÓI ĐẦU 5

1.1 Tìm hiểu về PHP 6

1.1.1 Lịch sử phát triển của PHP 7

1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP? 10

1.2 Tìm hiểu về MYSQL 10

1.2.1 Mười lý do bạn chọn MySQL 11

1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL 14

1.2.3 Các hàm thông dụng trong MySQL 16

1.3 PHP và MySQL 17

1.3.1 Các tính năng chính: 17

1.3.2 Các tính năng khác: 18

1.4 Tìm hiểu về CSS và HTML 19

1.5 Tìm hiểu về ngôn ngữ javascript 21

1.6 Tìm hiểu về WordPress 23

1.6.1 Giới thiệu sơ lược về Wordpress 23

1.6.2 Vài nét về lịch sử về Wordpress Error! Bookmark not defined 1.6.3 Nét nổi bật của Wordpress 24

1.6.4 Các lý do khiến chúng ta phải chọn WordPress 25

1.7 Tìm hiểu về Google Map API 25

1.7.1 Google Map API là gì? 25

1.7.2 Tương tác giữa Server App và Google Servers 26

1.7.3 Một số ứng dụng của Google Map API 28

1.7.4 Tạo 1 Google Map đơn giản 29

1.8 Tìm hiểu về cách xây dựng plugin cho WordPress 42

1.8.1 Các kiến thức cần thiết 42

1.8.2 Các công cụ phát triển cần thiết 43

1.8.3 Cách viết một plugin cơ bản 43

CHƯƠNG II : PHÁT TRIỂN PLUGIN WORDPRESS KẾT HỢP GOOGLE MAP 46

Trang 4

2.1 Tìm hiểu về Wordpress Error! Bookmark not defined

2.2 Tìm hiểu về Google Map API .Error! Bookmark not defined

2.3 Tìm hiểu về cách xây dựng plugin cho Wordpress Error! Bookmark not

defined.

CHƯƠNG III : KHẢO SÁT HỆ THỐNG Error! Bookmark not defined

3.1 Các chức năng hiện tại của FlexMap 52

3.2 Thiết kế plugin FlexMap 50

3.2.1 Xây dựng các chức năng cho plugin 50

3.2.2 Xây dựng giao diện 50

3.2.3 Chọn lựa ngôn ngữ lập trình phù hợp 51

CHƯƠNG IV: XÂY DỰNG CHƯƠNG TRÌNH 52

4.1 Giao diện chính 52

4.2 Giao diện quản trị 56

4.3 Hướng dẫn sử dụng 57

KẾT LUẬN 67

TÀI LIỆU THAM KHẢO : 69

Trang 5

LỜI NÓI ĐẦU

Ngày nay chúng ta đang được sống trong kỷ nguyên của công nghệ thông tin với sự phát triển mạnh mẽ Công nghệ thông tin không chỉ dừng lại ở mục đích phục

vụ cho khoa học kỹ thuật mà còn đi sâu vào đời sống, chính trị, kinh tế, xã hội, trở nên thân thiện, gần gũi, mang lại nhiều lợi ích cho con người Đặc biệt là trong lĩnh vực website, sự phát triển của các nền tảng web như framework, phần mềm nguồn mở đi kèm là các trình duyệt hỗ trợ đa dạng đã quyết định đến sự phát triển mạnh mẽ và nhanh chóng của công nghệ web Việc sử dụng các framework, phần mềm nguồn mở rút ngắn được quá trình tạo ra một website, bảo mật hơn và thuận tiện hơn trong quá trình cài đặt cũng như sử dụng Chính vì nhờ có các thành phần tích hợp, extensions, plugins cung cấp khả năng mở rộng chức năng, giao diện hệ thống đã khiến cho các nền tảng phần mềm nguồn mở ngày càng trở nên mạnh mẽ và đa dạng Ngoài ra nó tạo

ra nhiều cơ hội cho các nhà phát triển website mang lại doanh thu lớn và tạo thêm được nhiều cơ hội việc làm Hiện nay việc sử dụng chức năng bản đồ đều mang lại nhiều lợi ích và hiệu quả cho rất nhiều nhóm nghành như thương mại điện tử, giáo dục, địa chính, y tế, nghiên cứu địa lý… nên việc xây dựng một plugin cho phép người

sử dụng có thể dễ dàng tạo và quản lý bản đồ là rất cần thiết Đề tài này là kết quả của

quá trình tích lũy và vận dụng những kiến thức mà em tiếp thu và tìm hiểu được trong quá trình học tập Trong quá trình thực hiện đề tài này em xin cám ơn thầy giáo Th.S Nguyễn Quang Hiệp đã đưa ra những giải pháp và hướng đi để phát triển plugin này trong tương lai Em xin gửi tới thầy những lời cảm ơn chân thành nhất Mặc dù đã cố gắng trong quá trình nghiên cứu làm đề tài nhưng do còn nhiều hạn chế về thời gian và trình độ nên đề tài của em không tránh khỏi thiếu sót , nhiều vấn đề chưa được giải quyết hoàn chỉnh Vì vậy em rất mong nhận được những ý kiến đóng góp của các thầy

cô và các bạn để đề tài của em được hoàn thiện và phát triển

Em xin chân thành cảm ơn!

Trang 6

CHƯƠNG I : CƠ SỞ LÝ THUYẾT 1.1 Tìm hiểu về PHP

PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trì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ụng viế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ới web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc

độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sả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

Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ dàng như thế nào:

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

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 PHP lập

Trang 7

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ô xí nghiệp

1.1.1 Lịch sử phát triển của PHP

PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem,

sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn

PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người

PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0

PHP 3

PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski – 2 nhà phát triển người Israel tạo ra năm 1997 sau khi viết lại hoàn toàn bộ

mã nguồn trước đó Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà

Trang 8

họ đang xúc tiến trong một dự án của trường đại học Technion – Học viện công nghệ Israel Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0

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 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

PHP 4

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 động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev

và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 Họ sáng lập Zend Technologies tại Ramat

Trang 9

Gan – thành phố của khu vực Tel Avis PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm

2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới

Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu

kĩ thuật cho PHP

PHP 5

Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP

tự mãn Cộng đồng đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm 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, RC 1, 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

Trang 10

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.\

1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP?

PHP là một ngôn ngữ lập trình Ngôn ngữ này hoạt động cận kề với Webserver

để thông dịch các yêu cầu từ trên World Wide Web, sau đó nhận các trả lời từ Webserver chuyển tải đến trình duyệt Web nhằm đáp ứng các nhu cầu đó

Các đặc điểm nổi bật:

 PHP là mã nguồn mở

 Tốc độ nhanh, dễ sử dụng

 Chạy trên nhiều hệ điều hành

 Truy cập bất kỳ loại CSDL nào

 Luôn được cải tiến và cập nhật

 Tương thích với hầu hết các server đang sử dụng hiện nay như Apache, IIS…

1.2 Tìm hiểu về MYSQL

MySQL là một hệ quản trị cơ sở dữ liệu đa luồng, đa người dùng với ước tính có khoảng 6 triệu lượt cài đặt Công ty MySQL AB xây dựng MySQL như là một phần mềm mã mở dưới giấy phép GNU/GPL Không như những dự án như Apache, phần mềm được phát triển bởi cộng đồng công cộng, và bản quyền về mã nguồn thuộc sở hữu bởi nhiều tác giả riêng lẻ MySQL được sở hữu và bảo trợ bởi một công ty, công

ty MySQL AB – một công ty Thụy Điển, nơi giữ bản quyền cho toàn bộ mã nguồn Công ty phát triển và duy trì hệ thống, hỗ trợ bán hàng và dịch vụ MySQL AB được sáng lập bởi David Axmark, Allan Larsson, và Michael “Monty” Widenius

MySQL là hệ quản trị cơ sở dữ liệu phổ biến nhất hiện nay và được các nhà phát triển rất ưa chuộng trong việc phát triển các ứng dụng Không chỉ dừng lại các ứng dụng có tầm vừa và nhỏ Mà ngay cả những ứng dụng có tầm cỡ lớn cũng đã lựa chọn MySQL, ví dụ như:

Trang 11

Nó được sử dụng mọi nơi – ngay cả châu Nam Cực - bởi các nhà phát triển Web riêng

lẻ cũng như rất nhiều các tổ chức lớn nhất trên thế giới để tiết kiệm thời gian và tiền bạc cho những Web sites có dung lượng lớn, phần mềm đóng gói – bao gồm cả những nhà đi đầu trong lĩnh vực công nghiệp như Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube và Zappos.com

MySQL không chỉ là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, nó còn trở thành cơ sở dữ liệu được chọn cho thế hệ mới của các ứng dụng xây dựng trên nền Linux, Apache, MySQL, PHP/Perl/Python MySQL chạy trên hơn 20 flatform bao gồm: Linux, Windows, OS/X, HP-UX, AIX, Netware, mang đến cho bạn tính linh hoạt trong việc sử dụng

Dù bạn mới làm quen với công nghệ cơ sở dữ liệu hay là một nhà phát triển giàu kinh nghiệm hoặc là DBA, MySQL sẽ giúp bạn thành công

Đây là 10 lý do bạn nên chọn MySQL cho ứng dụng của mình:

Tính linh hoạt

Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử

lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ

sộ lên đến hàng terabytes thông tin Sự linh hoạt về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ Và

dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server

Tính thực thi cao

Trang 12

Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay

Có thể sử dụng ngay

Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL

Nơi lưu trữ Web và Data đáng tin cậy

MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó

có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp

Chế độ bảo mật dữ liệu mạnh

Trang 13

Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về

cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người

sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó

Sự phát triển ứng dụng hỗn hợp

Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên

Dễ dàng quản lý

MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản

lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản

lý công việc, và thực hiện kiểm tra

Trang 14

Mã nguồn mở tự do và hỗ trợ 24/7

Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn

mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL

Tổng chi phí thấp nhất

Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy

rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết

1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL

 Loại dữ liệu numeric: bao gồm kiểu số nguyên và kiểu số chấm động

- Kiểu dữ liệu số nguyên:

Trang 15

- Kiểu dữ liệu số chấm động:

 Loại dữ liệu kiể Date and Time

Kiểu dữ liệu Date and Time cho phép bạn nhập dữ liệu dưới dạng chuỗi ngày tháng hay dạng số

Dữ liệu kiểu số nguyên:

Trang 16

 Loại dữ liệu String

Kiểu dữ liệu String chia làm 3 loại: Loại thứ nhất như char( chiều dài cố định)

và varchar( chiều dài biến thiên); loại thức hai là Text hay Blob, Text cho phép lưu chuỗi rất lớn, Blob cho phép lưu đối tượng nhị phân; loại thứ ba là Enum và Set

1.2.3 Các hàm thông dụng trong MySQL

 Các hàm trong phát biểu GROUP BY

- Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy vấn

- Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy vấn

- Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trương trong câu truy vấn

- Hàm Count: Hàm trả về số lượng mẩu tin trong câu truy vấn

- Hàm SUM: Hàm trả về tổng các giá trị của trường, cột trong câu truy vấn

 Các hàm xử lý chuỗi:

- Hàm ASCII: Hàm trả về giá trị mã ASCII của ký tự bên trái chuỗi

- Hàm Char: Hàm này chuyển đổi kiểu mã ASCII từ số nguyên sang dạng chuỗi

- Hàm UPPER: Hàm này chuyển đổi chuỗi sang kiểu chữ hoa

- Hàm LOWER: Hàm này chuyển đổi chuỗi sang kiểu chữ thường

- Hàm LEN: Hàm này trả về chiều dài chuỗi

- Thủ tục LTRIM: Thủ tục loại bỏ khoảng trắng bên trái của chuỗi…

Trang 17

1.3 PHP và MySQL

PHP kết hợp với MySQL sẽ tạo ra các ứng dụng chéo nền (cross-platform), nghĩa là có thể phát triển ứng dụng trên Windows, và máy chủ là Unix

1.3.1 Các tính năng chính:

1 Sao lưu: Tạo các bản sao lưu của file và các CSDL, phục hồi file và CSDL trên

máy chủ từ một bản sao lưu, ví dụ từ máy tính cá nhân của người dùng

2 Mail:

- Quản lý các tài khoản

- Tạo, xáo các tạo khoản POP3, thay đổi mật khẩu và định mức tài nguyên sử dụng

- Cấu hình tự động hoặc hướng dẫn cấu hình bằng tay cho trình duyệt mail ở máy khách như Microsoft Outlook, Microsoft Outlook Express…

- Hệ thống trả lời tự động, bộ lọc, danh sách từ chối Tạo, xóa hoặc thay đổi

- Bộ lọc Spam Assassin

- Thay đổi bản ghi MX đối với mỗi tên miền

3 Thống kê:

3 chương trình thống kê: : Webalizer Web Stats, AWStats, Analog Stats

- Thống kê theo tên miền phụ

- Xem danh sách 300 khách ghé thăm website gần nhất bao gồm thông tin: IP, thời gian và nơi truy cập, trình duyệt nào và hệ điều hành khách viếng thăm sử dụng

- Xem băng thông đã sử dụng

- Xem nhật ký lỗi của các ngôn ngữ web phục vụ cho công tác bảo trì và sửa lỗi

- Xem nhật ký của dịch vụ Apache, có thể tải về

4 FTP:

- Tạo, xóa tài khoản FTP Thay đổi mật khẩu và thư mục có thể truy cập với từng tài khoản

- Quản lý truy cập nặc danh (anonymous access)

- Quản lý phiên làm việc FTP

Trang 18

- Thay đổi thông điệp hiển thị trên nhật ký FTP

5 Quản lý cơ sở dữ liệu MySQL & PostgreSQL

- Tạo, xóa cơ sở dữ liệu

- Tạo, xóa tài khoản truy cập cơ sở dữ liệu

- Trình quản lý cơ sở dữ liệu PHPMyAdmin

1.3.2 Các tính năng khác:

- Đổi mật khẩu tài khoản

- Quản lý các tên miền thêm vào

- Trình quản lý file

- Không thật sự thuận lợi và dễ dùng nhưng một loạt các tiện ích có nhiều tínhnăng rất đáng sử dụng như trình soạn thảo, làm việc với file nén…

- Tiện ích thống kê dụng lượng đã sử dụng và chi tiết tới từng cấp thư mục

- Đặt mật khẩu truy cập cho từng thư mục

- Quản lý tên miền phụ bao gồm cả liên kết tên miền phụ tới tên miền khác

- Quản lý các trang thông báo lỗi của website như

- 400 (Yêu cầu sai)

- 401 (Yêu cầu xác thực trước khi truy cập)

- 403 (Cấm truy cập)

- 404 (Trang được yêu cầu không tồn tại)

- 500 (Có lỗi xảy ra trên máy chủ khi xử lý yêu cầu)

- Chương trình Java xây dựng sẵn dành cho truy cập bằng SSH

- Liên kết một thư mục tới một tên miền khác

- Quản lý các phần mở rộng của FrontPage

- Lịch trình chạy lệnh Cho phép thiết lập các tác vụ định kỳ

- Quản lý các định nghĩa loại file của Apache

- Chống việc sử dụng các file của tài khoản từ các website khác

- Chống việc truy cập site thông qua các địa chỉ IP

- Cài đặt giao thức SSL

- Quản lý khóa PGP

- Tiện ích hỗ trợ tìm kiếm trên hệ thống

Trang 19

- Tài liệu trực tuyến cũng được cung cấp sẵn

CÁC KỊCH BẢN THIẾT LẬP SẴN:

- Simple CGI Wrapper

- Random HTML – Tự động chèn mã HTML định sẵn vào các file html

- Simple GuestBook

- Advanced GuestBook

- Counter – Bộ đếm khách ghé thăm website và số trang khách xem

- Clock-Java

- Countdown - the timer - Đồng hồ đếm ngược

- CGI mail – Chương trình gửi email viết bằng CGI

- Entropy Banner – hệ thống quản lý banner đơn giản

- FormMail Clone – form liên hệ đơn giản

- Entropy Search – Bộ máy tìm kiếm xây dựng sẵn

- phpBB – Một mã nguồn diễn đàn miễn phí

- Hai mã nguồn bán hàng trực tuyến: Interchange và Agora

1.4 Tìm hiểu về CSS và HTML

* Định nghĩa về HTML:

- HTML được biết đến là một loại ngôn ngữ dùng để mô tả hiển thị các trang web.Hyper Text Markup Language chính là HTML (Viết tắt)

- Nhiều người nhầm tưởng HTML là ngôn ngữ lập trình nhưng sự thực

không phải như vậy, nó là một ngôn ngữ đánh dấu

- Một ngôn ngữ đánh dấu là một bộ các thẻ đánh dấu

- Để có thể miêu tả trang web ta cần đánh dấu các thẻ HTML

Trang 20

Phần này bắt đầu bằng thẻ bắt đầu <body> và kết thúc bằng thẻ kết thúc

</body> Mục đích của thẻ <body> là xác định thành phần của HTML bao

gồm nội dung của tài liệu

- Các thuộc tính của thẻ HTML:

- Những thẻ HTML đều có những thuộc tính riêng Những thuộc tính này cung cấp thông tin về thành phần HTML của trang web Tag này xác định thành phần thân của trang HTML: <body> Với một thuộc tính thêm vào là bgcolor, có thể báo cho trình duyệt biết rằng màu nền của trang này là màu đỏ, giống như sau:

<body bgcolor="red">

hoặc

<body bgcolor="#E6E6E6"> (#E6E6E6 là giá trị hex của màu)

- Thẻ này sẽ xác định dạng bảng HTML:<table> với một thuộc tính đường

viền (border), có thể báo cho trình duyệt biết rằng bảng sẽ không có đường viền:

<table border="0">

- Thuộc tính luôn luôn đi kèm một cặp như name/value: name="value"

(tên="giá trị") thuộc tính luôn luôn được thêm vào thẻ mở đầu của thành phần HTML Dấu ngoặc kép, "red" hoặc 'red'

- Giá trị thuộc tính nên được đặt trong dấu trích dẫn " và " Kiểu ngoặc kép như vậy

thì phổ biến hơn, tuy nhiên kiểu đơn như ' và ' cũng có thể được dùng Ví dụ trong một vài trường hợp đặc biệt hiếm, ví dụ như giá trị thuộc tính đã mang dấu ngoặc kép rồi, thì việc sử dụng ngoặc đơn là cần thiết

Ví dụ:

name='ban"tay"den'

* Tìm hiểu về CSS:

Trang 21

- CSS là chữ viết tắt của cụm từ tiếng Anh “Cascading Style Sheet”, là kiểu thiết kế sử dụng nhiều lớp định dạng chồng lên nhau CSS được tổ chức World Wide Web (W3C) giới thiệu vào năm 1996 Cách đơn giản nhất để hiểu CSS là hãy coi nó như một phần mở rộng của HTML để giúp đơn giản hóa và cải tiến

việc thiết kế cho các trang web

- Mỗi khi bắt đầu một Style Sheets, thì bắt buộc mở bằng <HEAD> và kết

thúc bằng </HEAD> và tiếp theo sau đó là khai báo <STYLE> và kết thúc bằng

- 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ựa trê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ùng rộ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ụng cá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ự C, nhưng nó gần với Self hơn Java .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript

Java, JavaScript và JScript

- Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt

Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn ngữ lập trình Java lúc đó đang được coi là một hiện tượng JavaScript

Trang 22

được bổ sung vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995 Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liên quan gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triển dựa trên cú pháp của C Java Script gồm 2 mảng

là client-server thực hiện lệnh trên máy của end-user và web-server

- Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript JScript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm 1996

- DOM (Document Object Model), một khái niệm thường được nhắc đến với JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM

là một chuẩn riêng biệt có liên quan chặt chẽ với XML

- Ứng dụng

- JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C Giống như C, JavaScript có khái niệm từ khóa, do đó, JavaScript gần như không thể được mở rộng

- Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập

- Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh, Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt Một số công nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm DHTML, Ajax và SPA

Trang 23

- Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tinPDF của Adobe Acrobat và Adobe Reader Điều khiển Dashboard trên hệ điều hànhMac

OS X phiên bản 10.4 cũng có sử dụng JavaScript Công nghệ kịch bản linh động (active scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùng cho hệ điều hành JScript NET là một ngôn ngữ tương thích với CLI gần giống JScript nhưng có thêm nhiều tính năng lập trình hướng đối tượng

- Mỗi ứng dụng này đều cung cấpmô hình đối tượng riêng cho phép tương tác với môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần như giống nhau

1.6 Tìm hiểu về WordPress

1.6.1 Giới thiệu sơ lược về Wordpress

WordPress là một hệ thống xuất bản blog viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL database (cơ sở dữ liệu MySQL) Wordpress là hậu duệ chính thức của

b2/cafelog, được phát triển bởi Michel Valdrighi Cái tên WordPress được đề xuất bởi

Christine Selleck, một người của nhà phát triển chính Matt Mullenweg

WordPress là phần mềm mã nguồn mở được cung cấp miễn phí, sử dụng ngôn ngữ lập trình PHP và hệ cơ sở dữ liệu MySQL Thành viên có thể sử dụng nó với tên miền riêng của mình mà không phụ thuộc vào một nhà cung cấp nào ví dụ: blog yahoo, blog google, blog opera …

Tuy nhiên wordpress vẫn cho phép thành viên tạo blog với nhà cung cấp

là http://wordpress.com/ đây là nơi đáng tin cho tạo blog miễn phí tuy nhiên dù hỗ trợ nhiều dịch vụ tốt nhưng vẫn có những hạn chế nhất định của nó ví dụ: tên miền hiển nhiên là không được như ý rồi, và đôi khi chịu một số quảng cáo ngoài ý muốn từ nhà cung cấp dịch vụ hay một số bất cập khác

Một hướng đi mới cho việc viết blog, blog là một quyển sổ nhật ký online của mỗi chúng ta, ngôi nhà trên mạng chúng ta có thể chia sẻ kiến thức,… Do vậy chúng ta không muốn phụ thuộc vào bất kỳ ai hay một dịch vụ nào, tên miền của riêng chúng ta, thỏa sức viết bài mà không ai quản lý, đặt quảng cáo… một cách tự do nhất Mã nguồn WordPress sẽ giúp thực hiện điều đó

Trang 24

Có nhiều mã nguồn giúp thành viên tạo blog cá nhân: Joomla, Drupal, Bo-blog… nhưng theo tôi thì WordPress là tốt nhất, sự đơn giản, quản lý dễ dàng và tùy biến của thành viên với mã nguồn cao nhất

Phiên bản mới nhất của WordPress là phiên bản 3.8 Nó được phát hành dưới Giấy phép Tài liệu Tự do GNU

1.6.2 Nét nổi bật của Wordpress

- Việc quản lý blog, quản lý các bài viết rất thuận tiện giống như các phần mềm thiết kế website chuyên nghiệp

- Thể hiện các tệp PDF, DOC, Powerpoint ngay trên nội dung bài viết Đặc biệt tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, giúp người sử dụng có thể viết công thức toán học ngay trên blog

- WordPress có 23 Widget (ứng dụng tạo thêm) như Thống kê số truy nhập blog, Các bài mới nhất, Các bài viết nổi bật nhất, Các comment mới nhất, Liệt kê các chuyên mục, Liệt kê các Trang, Danh sách các liên kết, Liệt kê số bài viết trong từng tháng … Có 79 theme để thành viên lựa chọn

- Ngoài thống kê số truy nhập của từng ngày cho blog, WordPress còn thống kê

số truy nhập của từng ngày đối với mỗi bài viết của blog Trên cơ sở đó chủ blog sẽ có định hướng nên viết vấn đề gì tiếp theo

Trang 25

- Các comment có thể duyệt rồi mới cho đăng, comment nào có nội dung không phù hợp có thể xóa, nếu cho là spam thì sau này IP đó không có thể gửi comment vào blog được nữa

- Admin (chủ blog) có thể cho 35 cộng tác viên gửi bài vào blog, có thể phân quyền cho các cộng tác viên theo các cấp độ khác nhau Lưu giữ danh sách thành viên

đã ghé thăm trang blog Admin cũng có thể cho bất kỳ ai đăng bài qua email vào blog miễn là admin cho họ một địa chỉ email bí mật của blog (địa chỉ này có thể thay đổi bất kỳ lúc nào)

- Sao lưu dữ liệu nhằm khôi phục nội dung blog một cách dễ dàn nếu chẳng may blog bị hack, và cung cấp công cụ chuyển nhà từ các blog khác sang blog WordPress

- WordPress hỗ trợ 3 GB để lưu trữ các tệp hình ảnh và văn bản

- Hàng ngày WordPress có thống kê 100 bài trên các blog tiếng Việt của WordPress được nhiều người đọc nhất trong vòng 48 tiếng Nhờ đó biết được các thông tin quan trọng nhất đang diễn ra

1.6.3 Các lý do khiến chúng ta phải chọn WordPress

- Sự tương tác giữa người đọc với người viết cao thông qua tính năng comment

- Dễ dàng quản lý nội dung bài viết, chuyên mục, comment, quảng cáo…

- Có thể lưu trữ bài viết để sửa chữa trước khi public hay định ngày public bài viết

- Có rất nhiều themes lựa chọn

- Một kho tàng plugin đang phát triển ngày càng cao

- Thân thiện với các công cụ tìm kiếm: Google, Yahoo, Bing…

- WordPress là một CMS (Content Management System) chuyên nghiệp

1.7 Tìm hiểu về Google Map API

1.7.1 Google Map API là gì?

 Google Map là một dịch vụ ứng dụng vào công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google đặc biệt là dò đường và chỉ đường; hiển thị bản đồ đường sá, các tuyến đường tối ưu cho từng loại phương tiện, cách bắt xe và chuyển tuyến cho các loại phương tiện công cộng (xe bus, xe khách ), và những địa điểm (kinh doanh,

Trang 26

trường học, bệnh viện, cây ATM ) trong khu vực cũng như khắp nơi trên thế giới

 Map API là gì?

Là một phương thức cho phép 1 website B sử dụng dịch vụ bản đồ của website

A (gọi là Map API) và nhúng vào website của mình (site B) Site A ở đây là google map, site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của google (di chuột, room, đánh dấu trên bản đồ…)

Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhân thông qua các thẻ javascripts do vậy việc sử dụng API google rất dễ dàng

Google Map API đã được nâng cấp lên phiên bản v3 không chỉ hỗ trợ cho các máy để bàn truyền thống mà cho cả các thiết bị di động; các ứng dụng nhanh hơn và nhiều hơn

Các dịch vụ hoàn toàn miễn phí với việc xây dựng một ứng dụng nhỏ Trả phí nếu đó là việc sử dụng cho mục đích kinh doanh, doanh nghiệp

1.7.2 Tương tác giữa Server App và Google Servers

Để xử dụng các dịch vụ của Google cần tạo 1 tài khoản mới (project service) trên https://console.developers.google.com

Service Accounts xác thực đối tượng truy cập Google API’s bằng cách sử dụng OAuth trên danh nghĩa là 1 ứng dụng web thay vì là 1 người dùng Tức là nó sử dụng chứng chỉ tài khoản dịch vụ của ứng dụng để chứng thực

Trước khi tạo request truy cập API, cần phải có 1 access token bằng cách sử dụng các tài khoản dịch vụ đã được chứng nhận request này là POST request với các params như grant-type và JWT(JSON Web Token) đã đăng nhập bằng key

Các loại tham số cấp đầu tiên là 1 jet-bearer (chỉ cần 1 access token mà không cần refresh token) Param thứ 2 là JWT chứa thông tin xác thực tài khoản trong chuỗi mã hóa được định dạng trước chứa tiêu đề, tập các yêu cầu(claim set) và chữ ký Tiêu đề định nghĩa thuật toán signin được sử dụng trong việc signing JWT,claim set chứa địa chỉ email của tài khoản dịch vụ, phạm vi, thời gian hết hạn Chữ ký là thành phần có chữ ký của tiêu đề và claim set

Trang 27

Sau khi tạo request tới máy chủ ủy quyền, chúng ta nhận được một access token kéo dài ít nhất là 1 giờ Sử dụng access token này, chúng ta có thể truy cập vào Google APIs theo cách sau : sử dụng user’s credential, cách thức như hình dưới đây :

Tiến trình trên yêu cầu ứng dụng phải tạo và ký hiệu mã hóa JWT's, rất dễ để phạm sai lầm nghiêm trọng tác động rất lớn tới sự an toàn của ứng dụng Thay vào đó tất cả có thể được thực hiện bởi việc sử dụng các thư viện client Ruby chứa

gem google_api_client cho việc lấy `access token, tạo ra các yêu cầu để truy cập vào API và phân tích kết quả

Dưới đây là đoạn mã để truy cập Google API's sử dụng Google Service Account

# Initialize the client

client = Google::APIClient.new(application_name: 'Service account demo',

application_version: '0.0.1')

# load and decrypt private key

key = Google::APIClient::KeyUtils.load_from_pkcs12('path/to/key/file', 'notasecret')

Trang 28

# generate request body for authorization

client.authorization = Signet::OAuth2::Client.new(

:token_credential_uri => 'https://accounts.google.com/o/oauth2/token', :audience => 'https://accounts.google.com/o/oauth2/token', :scope => 'https://www.googleapis.com/auth/calendar',

:issuer => '123456-abcdef@developer.gserviceaccount.com', :signing_key => key)

# fetch access token

1.7.3 Một số ứng dụng của Google Map API

 Đánh dấu các địa điểm trên bản đồ kèm theo thông tin cho địa điểm đó: khu vui chơi giải trí, nhà hàng khách sạn, cây ATM, bệnh viện, trường học,… bất cứ địa điểm nào chúng ta muốn

 Chỉ dẫn đường đến các địa điểm cần tìm(đường tối ưu và nhiều option khác),chỉ dẫn đường giao thông công cộng, có thể là các địa điểm cung cấp như trên Ở đây sử dụng các service google cung cấp

Trang 29

 Khoanh vùng khu vực: các trung tâm kinh tế, khu đô thị, khu ô nhiễm…

 Tình trạng giao thông các khu vực… từ đó đưa ra các giải pháp…

1.7.4 Tạo 1 Google Map đơn giản

 Tạo 1 API Key

 Truy cập vào https://code.google.com/apis/console và đăng nhập bằng tài khoản gmail của mình

 Click the APIs & auth -> APIs

 Kéo xuống dưới tìm Google Maps JavaScript API v3 và kích hoạt dịch vụ bằng việc click vào button chuyển trạng thái từ OFF sang ON

 Click API Access -> Create new Browser key , một API key sẽ hiện lên và

sẽ coppy lại để sử dụng

 Lấy kinh độ, vĩ độ để hiển thị bản đồ

Truy cập vào http://www.latlong.net/ và nhập địa điểm cần tìm

Trang 30

<script

src="http://maps.googleapis.com/maps/api/js?key=#{your_app_key}&sensor=false">

google.maps.event.addDomListener(window, 'load', initialize);

</script>

Trang 31

</head>

<body>

<! Khai bao the div chua Map >

<div id="googleMap" style="width:500px;height:380px;"></div>

</body>

</html>

 Google Maps Overlays (Lớp phủ)

 Lớp phủ (overlays) là các đối tượng trên bản đồ, được xác định bởi tọa độ vĩ độ/ kinh độ

 Các loại lớp phủ :

o Marker: xác định một điểm trên bản đồ hoặc đánh dấu địa điểm dựa trên vĩ độ và kinh độ, có thể được hiển thị bằng icon (hình ảnh) tùy chỉnh của người dùng ví dụ như icon dưới đây:

o

o Polyline: chuỗi các đường thẳng trên bản đồ

o Polygon: chuỗi các đường thẳng trên bản đồ và các khối "closed" (tô màu cho 1 khối kín các điểm)

Trang 32

o Circle and Rectangle: đường tròn và hình chữ nhật

o Info Windows: hiển thị nội dung trong 1 popup ballon ở phía trên của map

o Custom overlays

 Chi tiết : http://www.w3schools.com/googleAPI/google_maps_overlays.asp

 Add 1 marker

add marker vào map bằng cách sử dụng method setMap() :

var marker=new google.maps.Marker({

position:myCenter,

});

marker.setMap(map);

Position: bắt buộc, quy định tọa độ LatLng của điểm được đánh dấu (ở đây

là tọa độ của biến myCenter)

 Hiệu ứng cho Marker

var marker=new google.maps.Marker({

position:myCenter,

animation:google.maps.Animation.BOUNCE

});

marker.setMap(map);

Trang 33

Animation: cách thức chuyển động của icon của điểm đánh dấu có 2 cách :

DRAG (đứng yên), Bounce (dao động theo quỹ đạo lên - xuống)

 Icon thay thế cho Marker

var marker=new google.maps.Marker({

 Polyline

Trang 34

Một Polyline là 1 đường được vẽ để nối 1 loạt các tọa độ(các điểm chỉ định trước (ví

dụ : lộ trình của 1 chuyến đi, 1 khu vực địa lý )

Các thuộc tính của 1 Polyline :

// định nghĩa 1 trip: stavanger-amsterdam-london

var myTrip = [stavanger,amsterdam,london];

var flightPath = new google.maps.Polyline({

//xác định các điểm cần nối trên bản đồ

Trang 35

 Polygon

Polygon tương tự như polyline nhưng có thêm tính năng khoanh vùng (xác định 1 tập hợp các điểm tạo thành 1 khối kín)

Thuộc tính tương tự như polyline nhưng có thêm 2 thuộc tính sau:

"#FFFFFF")

var myTrip = [stavanger,amsterdam,london,stavanger];

var flightPath = new google.maps.Polygon({

path:myTrip,

strokeColor:"#0000FF",

strokeOpacity:0.8,

Ngày đăng: 23/04/2017, 10:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w