Tải bản đầy đủ (.pdf) (70 trang)

Xây dựng dịch vụ tìm kiếm việc làm trên google app engine

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (852.13 KB, 70 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------PHẠM VĂN QUANG

XÂY DỰNG DỊCH VỤ TÌM KIẾM VIỆC LÀM TRÊN GOOGLE APP ENGINE

Chuyên ngành: Công nghệ thông tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. TS. NGUYỄN HỮU ĐỨC

Hà Nội – 2014

1


Lời cam đoan
Tôi – Phạm Văn Quang - cam kết luận văn này là công trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của TS Nguyễn Hữu Đức.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác.

2


LỜI CẢM ƠN

Với lòng kính trọng và sự biết ơn sâu sắc, tôi xin được bày tỏ lời cảm ơn tới


thầy - Tiến sĩ Nguyễn Hữu Đức - người đã tận tâm dìu dắt, hướng dẫn, chỉ
dạy những kiến thức quý báu đồng thời tạo mọi điều kiện thuận lợi để tôi
hoàn thành luận văn này.
Xin được chân thành cảm ơn các thầy, cô trường Đại học Bách Khoa Hà
Nội, đặc biệt là các thầy cô Viện Công nghệ thông tin và Truyền thông. Đồng
thời, xin được gửi lời cảm ơn sâu sắc tới các thầy cô và các bạn cùng lớp đã
cùng giúp đỡ, hỗ trợ tôi trong suốt quá trình nghiên cứu và thực hiện luận văn
này.
Con xin dành lời cảm ơn sâu nặng nhất tới bố mẹ, gia đình - những người
đã luôn khích lệ, động viên, dìu dắt con suốt con đường dài.

Hà Nội, tháng 3 năm 2014

Phạm Văn Quang

3


MỤC LỤC
MỤC LỤC .................................................................................................................. 1
DANH MỤC CÁC THUẬT NGỮ ........................................................................... 5
DANH MỤC CÁC HÌNH VẼ ................................................................................... 6
PHẦN MỞ ĐẦU ........................................................................................................ 7
Ngữ cảnh đề tài ....................................................................................................... 7
Mục đích nghiên cứu và những kết quả đạt được trong luận văn ........................... 8
Cấu trúc luận văn .................................................................................................... 8
1.

CHƢƠNG 1 - ĐẶT VẤN ĐỀ VÀ ĐỊNH HƢỚNG GIẢI PHÁP.................10
1.1.


Thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam và định hướng

của Luận văn Cao học. ..........................................................................................10
1.1.1. Thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam. ................10
1.1.2. Định hướng của Luận văn Cao học.......................................................10
1.2.

Giới thiệu về tính toán đám mây (Cloud Computing) ..............................11

1.3.

Đánh giá chi phí, hiệu năng giữa mô hình Cloud Computing và mô hình

Client – Server.......................................................................................................13
2.

CHƢƠNG 2 - GIỚI THIỆU VỀ GOOGLE APP ENGINE ........................16
2.1.

Google App Engine là gì ...........................................................................16

2.2.

Những nền tảng được Google App Engine hỗ trợ ....................................16

2.3.

Hạn mức tài nguyên của Google App Engine...........................................17


2.4.

Lưu trữ và truy vấn dữ liệu với GAE Datastore .......................................17

2.5.

Cách đăng ký và triển khai một ứng dụng lên Google App Engine .........17

1


3.

CHƢƠNG 3 - DỊCH VỤ TÌM KIẾM VIỆC LÀM TRÊN NỀN TẢNG

GOOGLE APP ENGINE .......................................................................................20
3.1.

Phân tích và thiết dịch vụ ..........................................................................20

3.1.1. Các tác nhân tham gia dịch vụ ..............................................................20
3.1.2. Các chức năng chính của dịch vụ..........................................................21
3.1.3. Thiết kê cơ sở dữ liệu cho dịch vụ ........................................................28
3.1.4. Thiết kế quy trình nghiệp vụ cho dịch vụ .............................................36
3.2.

Cài đặt dịch vụ ..........................................................................................38

3.2.1. Kiến trúc của dịch vụ ............................................................................38
3.2.2. Môi trường cài đặt dịch vụ ....................................................................38

3.2.3. Dữ liệu của dịch vụ ...............................................................................39
3.2.4. Cài đặt dịch vụ (web service) ................................................................39
3.3.

Thử nghiệm và đánh giá dịch vụ ...............................................................43

3.3.1. Kiểm thử dịch vụ ...................................................................................43
3.3.2. Đánh giá dịch vụ ...................................................................................45
4.

CHƢƠNG 4 – ĐÁNH GIÁ CHI PHÍ, HIỆU NĂNG GIỮA MÔ HÌNH

CLOUD COMPUTING & MÔ HÌNH CLIENT-SERVER ................................47
4.1.

Sơ lược về quy trình phát triền phần mềm ................................................47

4.1.1. Quy trình phát triển phần mềm là gì .....................................................47
4.1.2. Các mô hình phát triển sản phẩm phần mềm ........................................47
4.1.3. Các thao tác là nền tảng của hầu hết các quy trình phát triển phần mềm
52
4.2.

Quá trình thu thập thông tin khách hàng ...................................................52

4.2.1. Các thao tác cần thực hiện ở quá trình thu thập thông tin khách hàng 52
4.2.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..53
So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..............53
4.2.3. Kết luận về quá trình thu thập thông tin khách hàng ............................53


2


4.3.

Quá trình phân tích yêu cầu của hệ thống .................................................53

4.3.1. Các thao tác cần thực hiện ở quá trình phân tích yêu cầu của hệ thống
53
4.3.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..54
4.3.3. Kết luận về quá trình phân tích yêu cầu của hệ thống ..........................56
4.4.

Quá trình thiết kế hệ thống ........................................................................56

4.4.1. Các thao tác cần thực hiện ở quá trình thiết kế hệ thống .....................56
4.4.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..57
4.4.3. Kết luận về quá trình thiết kế hệ thống .................................................57
4.5.

Quá trình thiết kế chương trình .................................................................57

4.5.1. Các thao tác cần thực hiện ở quá trình thiết kế chương trình ..............57
4.5.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..57
4.5.3. Kết luận về quá trình thiết kế chương trình ..........................................58
4.6.

Quá trình Coding .......................................................................................58

4.6.1. Các thao tác cần thực hiện ở quá trình Coding ....................................58

4.6.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..58
4.6.3. Kết luận về quá trình Coding ................................................................59
4.7.

Quá trình kiểm thử ....................................................................................59

4.7.1. Các thao tác cần thực hiện ở quá trình kiểm thử..................................59
4.7.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..59
4.7.3. Kết luận về quá trình kiểm thử ..............................................................59
4.8.

Quá trình triển khai và vận hành hệ thống ................................................60

4.8.1. Các thao tác cần thực hiện ở quá trình triển khai và vận hành hệ thống
60
4.8.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..60
4.8.3. Kết luận về quá trình triển khai và vận hành hệ thống .........................62
4.9.

Quá trình bảo trì và phát triển hệ thống ....................................................62

3


4.9.1. Các thao tác cần thực hiện ở quá trình triển khai và vận hành hệ thống
62
4.9.2. So sánh giữa mô hình Client – Server và mô hình Cloud Computing ..62
4.9.3. Kết luận về quá trình bảo trì và phát triển hệ thống..............................63
5.


CHƢƠNG 5 – KẾT LUẬN .............................................................................65
5.1.

Các kết quả đạt được .................................................................................65

5.2.

Hướng phát triển .......................................................................................66

TÀI LIỆU THAM KHẢO.......................................................................................67

4


DANH MỤC CÁC THUẬT NGỮ
Từ viết tắt
GAE

SOA

Tên đầy đủ
Google App Engine
Service Oriented

Ý nghĩa
Nền tảng tính toán đám
mây Google App Engine
Kiến trúc hướng dịch vụ

Architecture


SaaS

Software as a Service

Phần mềm dạng dịch vụ

PaaS

Platform as a Service

Nền tảng dạng dịch vụ

HaaS

Hardware as a Service

Phần cứng dạng dịch vụ

5


DANH MỤC CÁC HÌNH VẼ
Hình 1: Mô hình điện toán đám mây (Cloud Computing) ………………………. 12
Hình 2: Triển khai ứng dụng lên Google App Engine …………………………...18
Hình 3: Các đối tượng tham gia hệ thống ……………………………………….. 20
Hình 4: Các chức năng chính của dịch vụ…………………………………………21
Hình 5: Sơ đồ liên kết giữa các bảng ……………………………………………. 29
Hình 6: Miêu tả các bước tìm việc ………………………………………………. 36
Hình 7: Miêu tả các bước đăng tuyển ……………………………………………. 37

Hình 8: Kiến trúc của dịch vụ ……………………………………………………..38

6


PHẦN MỞ ĐẦU
Ngữ cảnh đề tài
Trong nền công nghiệp phần mềm hiện nay, kiến trúc hướng dịch vụ đang
thể hiện ưu thế vượt trội so với các kiến trúc khác trong khả năng tái sử dụng
cũng như độclập với nền tảng phát triển. Bên cạnh đó, khái niệm tính toán đám
mây cũng thu hút được nhiều quan tâm của cộng đồng công nghệ trong thời gian
gần đây. Các dịch vụtính toán đám mây không những cho phép các nhà phát triển
ứng dụng xây dựng hệ thống với khả năng mở rộng tùy ý, mà còn giúp giảm bớt
gánh nặng của việc quản trị và bảo trì hệ thống phần cứng. Nhiều hệ thống đang
dần được dịch chuyển hoặc xây dựng mới trên nền tảng tính toán đám mây. Với
những cam kết của các nhà cung cấp dịch vụ đám mây về việc đầu tư vào xây
dựng dịch vụ, cùng với sự đón nhận hào hứng của cộng đồng công nghệ, tính toán
đám mây hứa hẹn một sự phát triển mạnh mẽ trong tương lai.
Với những ưu thế đó, trong tương lai gần, kiến trúc hướng dịch vụ và tính
toán đám mây chắc chắn sẽ đóng vai trò quan trọng trong việc phát triển các hệ
thống phần mềm. Nhận thấy xu hướng này, tác giả đã quyết định chọn đề tài
LVCH theo hướng nghiên cứu kiến trúc hướng dịch vụ và tính toán đám mây, từ
đó xây dựng một hệ thống dịch vụ cụ thể theo kiến trúc hướng dịch vụ trên nền
tảng tính toán đám mây.
Hiện nay, bài toán tìm kiếm việc làm phù hợp là một trong những nhu cầu
cấp thiết của mọi người, đặc biệt là những người đang trong độ tuổi lao động. Sử
dụng công nghệ thông tin để giới thiệu việc làm và hỗ trợ người lao động tìm kiếm
việc làm là cách tiếp cận đúng đắn, phổ biến ở Việt Nam và trên thế giới.
Kết hợp cả hai yếu tố ở trên, với mong muốn được tìm hiểu về tính toán đám
mây và xây dựng phát triển một ứng dụng thực sự có ích trên nền tảng này, tác giả

đã quyết định lựa chọn và thực hiện đề tài:
“Xây dựng dịch vụ tìm kiếm việc làm trên Google App Engine”

7


Mục đích nghiên cứu và những kết quả đạt đƣợc trong luận văn
-

Luận văn sẽ tiến hành xây dựng ứng dụng tìm kiếm việc làm dựa trên nền
tảng Google App Engine.

-

Luận văn sẽ tiến hành đánh giá chi phí qua các giai đoạn xây dựng hệ thống,
vận hành hệ thống, bảo trì và phát triển hệ thống giữa việc xây dựng ứng
dụng tìm kiếm việc làm dựa trên mô hình Cloud Computing (ở đây là Google
App Engine) và mô hình Client-Server truyền thống.

-

Rút ra kết luận về những ưu, nhược điểm, thuận lợi và khó khăn khi triển
khai xây dựng một ứng dụng sử dụng mô hình Cloud Computing so với mô
hình Client-Server truyền thống tại Việt Nam. Từ đó giúp cho các tổ chức
doanh nghiệp, cá nhân … có nhu cầu sử dụng Cloud Computing có cái nhìn
khái quát hơn, lựa chọn đúng đắn hơn để phát triển ứng dụng cho đơn vị của
mình.

Cấu trúc luận văn
Luận văn sẽ bao gồm 05 chương với nội dung mỗi chương như sau.

 Chƣơng 1: Đặt vấn đề.
 Chƣơng 2: Giới thiệu về Google App Engine.
 Chƣơng 3: Dịch vụ tìm kiếm việc làm trên nền tảng Google App
Engine.
 Chƣơng 4: So sánh mô hình Cloud Computing và mô hình ClientServer.
 Chƣơng 5: Kết luận.

8


1
ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI
PHÁP
 Thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam.
 Giới thiệu về tính toán đám mây.
 Đánh giá chi phí, hiệu năng giữa hai mô hình Cloud
Computing và mô hình Client – Server.

9


1. CHƢƠNG 1 - ĐẶT VẤN ĐỀ VÀ ĐỊNH HƢỚNG GIẢI
PHÁP
1.1.

Thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam và định
hƣớng của Luận văn Cao học.

1.1.1. Thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam.
Có một thực tế rằng mặc dù điện toán đám mây hiện đang được ứng dụng

rộng rãi ở nhiều nước phát triển trên thế giới bởi lợi ích đáng kể mà nó đem lại,
nhưng ở Việt Nam các doanh nghiệp vẫn chưa thực sự mặn mà với công nghệ này.
Tuy nhiên theo các chuyên gia nhận định, đây chính là giải pháp tối ưu để các
doanh nghiệp nước ta giảm thiểu chi phí cũng như tăng hiệu suất làm việc ở mức tối
đa.
Về thực trạng ứng dụng điện toán đám mây ở các doanh nghiệp Việt Nam,
có thể rút ra kết luận như sau: hiện nay đã có một vài doanh nghiệp lớn tại Việt
Nam đưa điện toán đám mây vào ứng dụng và hiệu suất kinh doanh được cải thiện
đáng kể. Tuy nhiên số lượng là khá ít, phần lớn vẫn chỉ dừng ở mức quan tâm và
tìm hiểu.
1.1.2. Định hƣớng của Luận văn Cao học.
Nắm bắt được thực tế tình trạng sử dụng tính toán đám mây ở Việt Nam,
trong phạm vi thực hiện đề tài của mình, tác giả sẽ tiến hành xây dựng ứng dụng tìm
kiếm việc làm dựa trên nền tảng Google App Engine. Sau đó tác giả sẽ tiến hành
đánh giá chi phí, hiệu năng qua các giai đoạn xây dựng hệ thống, vận hành hệ
thống, bảo trì và phát triển hệ thống giữa việc xây dựng ứng dụng tìm kiếm việc làm
dựa trên mô hình Cloud Computing (ở đây tác giả lựa chọn Google App Engine) và
mô hình Client-Server truyền thống. Cuối cùng tác giả sẽ rút ra kết luận về những
ưu, nhược điểm, thuận lợi và khó khăn khi triển khai xây dựng một ứng dụng sử
dụng mô hình Cloud Computing so với mô hình Client-Server truyền thống tại Việt
Nam. Từ đó giúp cho các cá nhân, tổ chức doanh nghiệp … đang có nhu cầu sử

10


dụng Cloud Computing có được cái nhìn khái quát hơn, lựa chọn đúng đắn hơn để
quyết định loại hình phát triển ứng dụng cho đơn vị của mình.
1.2.

Giới thiệu về tính toán đám mây (Cloud Computing)


 Tính toán đám mây là gì ?
Điện toán đám mây (cloud computing), còn gọi là điện toán máy chủ ảo, là
mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng
Internet. Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ để chỉ mạng Internet (dựa
vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng
về độ phức tạp của các cơ sở hạ tầng ẩn chứa bên trong. Ở mô hình điện toán
này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới
dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ
một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức,
kinh nghiệm về công nghệ, cũng như không cần quan tâm đến các cơ sở hạ tầng
phục vụ công nghệ đó.
Định nghĩa:
“Điện toán đám mây (cloud computing) là một mô hình điện toán có khả năng
co giãn (scalable) linh động và các tài nguyên thường được ảo hóa được cung
cấp như một dịch vụ trên mạng Internet.” ( Theo Wikipedia, Cloud_computing,
last Visited March 2014)
“Một mô hình điện toán nơi mà khả năng mở rộng và linh hoạt về công nghệ
thông tin được cung cấp như một dịch vụ cho nhiều khách hàng đang sử dụng
các công nghệ trên Internet”
“Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về
mặt kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng
(platform) và các dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được
phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet.”

11


Hình 1: Mô hình điện toán đám mây (Cloud Computing)


 Các dịch vụ cung cấp bởi tính toán đám mây
Theo thứ tự từ mức ứng dụng tới mức phần cứng vật lý, mô hình dịch vụ
cung cấp bởi tính toán đám mây gồm các thành phần chính:
a) Phần mềm dạng dịch vụ (Software as a Service, SaaS): Là một
mô hình trong đó ứng dụng được triển khai dưới dạng dịch vụ và khách
hàng có thể truy nhập thông qua Internet. Bên cung cấp dịch vụ đảm
nhận việc cập nhật và sửa đổi, cũng như đảm bảo cho cơ sở hạ tầng của
dịch vụ hoạt động ổn định.
b) Nền tảng dạng dịch vụ (Platform as a Service, PaaS): PaaS là một
mô hình xây dựng và triển khai ứng dụng. Thông qua Internet, PaaS
cung cấp tất cả tài nguyên cần dùng để xây dựng ứng dụng và dịch vụ.
c) Phần cứng dạng dịch vụ (Hardware as a Service, HaaS): HaaS là
hình thức cho thuê phần cứng, đôi khi được gọi là dịch vụ cơ sở hạ tầng
(Infrastructure as a Service, IaaS). Cơ sở hạ tầng có thể dễ dàng mở
rộng hoặc thu hẹp, tùy theo nhu cầu của ứng dụng.
 Các nhà cung cấp dịch vụ tính toán đám mây
Một số nhà cung cấp dịch vụ tính toán đám mây tiểu biểu có thể kể đến như:
 Amazon: Là hãng đi tiên phong đưa dịch vụ đám mây ra thị trường.
Một số dịch vụ đám mây của hãng như: Elastic Compute Cloud EC2,

12


cho thuê máy chủ ảo và bộ xử lý; Simple Storage Service S3, cho phép
lưu trữ tới 5GB trong dịch vụ lưu trữ ảo của Amazon; …
 Google: Khác với Amazon, trong dịch vụ đám mây Google App
Engine (GAE), người dùng không thể thực hiện thao tác ghi một file lên
đĩa cứng của máy chủ. Để lưu trữ dữ liệu buộc phải dùng cơ sở
dữ liệu của GAE. GAE cung cấp công cụ hỗ trợ nhà phát triển xây dựng
và triển khai ứng dụng web trên dịch vụ đám mây GAE.

 Microsoft: Giải pháp tính toán đám mây của Microsoft mang tên
Windows Azure, là một hệ điều hành cho phép chạy ứng dụng
Windows, sử dụng trung tâm dữ liệu của Microsoft. Microsoft cũng
cung cấp dịch vụ Azure Service Platform, cho phép nhà phát triển xây
dựng và triển khai ứng dụng trên nền tảng tính toán đám mây của
Microsoft.
Trong ba nhà cung cấp trên, hiện tại chỉ có Google cho phép nhà phát triển đăng
ký tài khoản GAE miễn phí, để xây dựng và triển khai ứng dụng lên đám mây.
Trong điều kiện thời gian thực hiện LVCH, tác giả quyết định nghiên cứu để cài
đặt và triển khai thử nghiệm thành phần dịch vụ web trên nền tảng đám mây
GAE.
1.3.

Đánh giá chi phí, hiệu năng giữa mô hình Cloud Computing và mô
hình Client – Server.

Tác giả sẽ đánh giá hiệu quả của việc phát triển ứng dụng một cách chi tiết, cụ
thể thông qua các giai đoạn chung của một quy trình phát triển phần mềm. Hai đối
tượng được đem ra so sánh ở đây là một ứng dụng phát triển trên nền tảng điện toán
đám mây (Google App Engine) và một ứng dụng phát triển trên nền tảng Client –
Server truyền thống.
Tác giả sẽ tiến hành việc so sánh trên qua các giai đoạn như sau:
 Giai đoạn 1: Giai đoạn phân tích yêu cầu hệ thống
 Giai đoạn 2: Giai đoạn thiết kế hệ thống

13


 Giai đoạn 3: Giai đoạn thiết kế chương trình hệ thống.
 Giai đoạn 4: Giai đoạn Coding.

 Giai đoạn 5: Giai đoạn kiểm thử.
 Giai đoạn 6: Giai đoạn triển khai và vận hành hệ thống.
 Giai đoạn 7: Giai đoạn bảo trì và phát triển hệ thống.

14


2
GIỚI THIỆU VỀ GOOGLE APP ENGINE
 Google App Engine là gì
 Các nền tảng được Google App Engine hỗ trợ
 Hạn mức tài nguyên
 Lưu trữ và truy vấn dữ liệu với GAE Datastore
 Cách đăng ký và triển khai một ứng dụng lên Google App
Engine

15


2. CHƢƠNG 2 - GIỚI THIỆU VỀ GOOGLE APP ENGINE
2.1.

Google App Engine là gì

 Theo định nghĩa của Wiki:
“Google App Engine (gọi tắt là GAE hay App Engine) là một môi trường
phát triển ứng dụng dựa trên công nghệ điện toán đám mây. Ở đó Google
cung cấp một hệ thống gồm: ngôn ngữ lập trình, hệ cơ sở dữ liệu, các thư
viện lập trình, người lập trình sẽ viết ứng dụng và ứng dụng này sẽ chạy trên
các máy chủ của Google.

Google App Engine được cung cấp miến phí cho mỗi ứng dụng trong một
giới hạn, khi các ứng dụng vượt qua mức quá hạn mức thì phải trả thêm
khoản phí cho mức vượt quá này”
 Những đặc trƣng của Google App Engine
 Quản lý trang web động, hỗ trợ đầy đủ cho một trang web thông thường.
 Bảo tri lưu trữ database với các lệnh truy vấn, săp xếp.
 Tự động mở rộng và cân bằng tải.
 Cung cấp APIs cho việc đăng ký và gửi email thông qua tài khoản
Google.
 Cung cấp chức năng chạy trước trên localhost, sau đó mới up lên host
cloud.
2.2.

Những nền tảng đƣợc Google App Engine hỗ trợ

 Hiện tại thì Google App Engine hỗ trợ 2 loại ngôn ngữ chính là: Python và
Java, và đang thử nghiệm thêm ngôn ngữ Go.
 Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ
chuyển từ PHP sang Java.

16


Hạn mức tài nguyên của Google App Engine

2.3.

Tại thời điểm thực hiện luận văn này, hạn mức tài nguyên mà một ứng dụng
đám mây đăng ký miễn phí trên Google App Engine có thể sử dụng gồm:
 Dung lượng lưu trữ: 500 MB.

 CPU: 200 triệu Megacycle/ngày.
 Băng thông: 10 Gigabyte/ngày.
 Pageview: 5 triệu/tháng.
GAE giới hạn mỗi tài khoản phát triển chỉ được đăng ký tối đa 10 ứng dụng.
Nhà phát triển cần đăng ký trả phí để sử dụng lượng tài nguyên lớn hơn hạn mức
nêu trên.
2.4.

Lƣu trữ và truy vấn dữ liệu với GAE Datastore

Có thể thấy, các thư viện và dịch vụ mà dịch vụ tìm kiếm việc làm sử dụng từ
GAE chủ yếu dùng thao tác dữ liệu với GAE Datastore. GAE Datastore khác
với cơ sở dữ liệu quan hệ truyền thống ở chỗ, thay vì tồn tại các bảng và quan
hệ thì trong GAE có các đối tượng dữ liệu. Các đối tượng còn gọi là các thực thể,
được định kiểu và có tập các thuộc tính. Thao tác truy vấn được thực hiện trên
tập thực thể, có thể lọc kiểu và sắp xếp theo thuộc tính. Trong dịch vụ tìm kiếm
việc làm, cấu trúc của các thực thể dữ liệu cũng như mối liên kết giữa chúng
được tạo ra và điều chỉnh từ trong mã nguồn Python của thành phần dịch vụ
web. Liên hệ giữa các lớp (class) đối tượng được thực hiện thông qua các thuộc
tính liên kết (ví dụ trong một đối tượng có thuộc tính chứa khóa của đối tượng mà
nó liên kết).
2.5.

Cách đăng ký và triển khai một ứng dụng lên Google App Engine
 Cách đăng ký:
Truy cập địa chỉ và đăng nhập
bằng tài khoản Gmail của bạn. Làm tiếp các bước theo hướng dẫn ở

17



website để có thể được sử dụng hosting chuyên nghiệm miễn phí
Google dạng diachiwebsite.appspot.com.
 Cách triển khai
 Bƣớc 1: Download và cài đặt Python 2.7.2 tại địa
chỉ Chọn phiên bản phù hợp
với hệ điều hành. (Chú ý nên download bản đầu tiên (chính
thức), các bản sau đôi khi không tương thích).
 Bƣớc 2: Download và cài đặt Google App Engine SDK for
Python tại địa
chỉ Chọn
phiên bản phù hợp với hệ điều hành.
 Bƣớc 3: Chạy ứng dụng Google App Engine Launcher. Nhấn
vào Deploy để triển khai ứng dụng lên Google App Engine.

Hình 2: Triển khai ứng dụng lên Google App Engine

18


3
DỊCH VỤ TÌM KIẾM VIỆC LÀM TRÊN
NỀN TẢNG GOOGLE APP ENGINE
 Phân tích và thiết kế dịch vụ
 Các tác nhân tham gia dịch vụ
 Các chức năng chính của dịch vụ
 Thiết kế cơ sở dữ liệu
 Thiết kế quy trình nghiệp vụ
 Cài đặt hệ dịch vụ
 Kiến trúc của dịch vụ

 Môi trường cài đặt dịch vụ
 Dữ liệu
 Cài đặt dịch vụ (Web services)
 Thử nghiệm và đánh giá dịch vụ
 Kiểm thử dịch vụ
 Đánh giá dịch vụ

19


3. CHƢƠNG 3 - DỊCH VỤ TÌM KIẾM VIỆC LÀM TRÊN
NỀN TẢNG GOOGLE APP ENGINE
3.1.

Phân tích và thiết dịch vụ

3.1.1. Các tác nhân tham gia dịch vụ

Hình 3: Các đối tƣợng tham gia hệ thống

Bao gồm
 Admin: Người quản lý trang web SAAS.
 Nhà phát triển: quản lý các nhà tuyển dụng.
 Nhà tuyển dụng: quản lý các đơn đăng tuyển
 Người dùng đăng ký.
Trong đó các tác nhân quan hệ với nhau mật thiết. Người dùng sau khi đăng ký
ngoài nhu cầu tìm việc, có thể đăng ký thành các nhà tuyển dụng, nhà phát triển.
Nhà tuyển dụng ở đây chính là người đại diện cho các công ty có nhu cầu tìm kiếm
nguồn nhân lực, có quyền đăng tuyển các đơn làm việc mới do công ty đưa lên. Nhà
phát triển là người có quyền sử dụng được các API thông qua web service của dịch

vụ để có thể xây dựng ứng dụng của mình với dữ liệu đồng nhất lưu trữ chung trên
nền tảng cloud computing. Dịch vụ Giới Thiệu Việc Làm theo hương sử dụng phổ
quát phát triển theo hướng này, trong đó 3 thành phần của hệ thống quan hệ với
nhau theo mối quan hệ của các tác nhân chính trong hệ thống. Admin là người quản

20


lý tất cả các tác nhân này,quản lý chung về lĩnh vực, ngành nghề, các đơn đăng
tuyển…
Dựa trên quá trình khảo sát thực tế, 10 chức năng cơ bản của dịch vụ được minh
họa trong hình 7 cụ thể như sau:

Hình 4: Các chức năng chính của dịch vụ

3.1.2. Các chức năng chính của dịch vụ
 Chức năng cho ngƣời dùng đăng ký
Người dùng đăng ký có các chức năng được miêu tả chi tiết như sau đây:
Tìm kiếm thông tin việc làm:
Cho phép khách,người dùng đăng ký tìm kiếm thông tin về việc làm thông qua các
từ khóa đầu vào bao gồm: tên lĩnh vực (job), loại ngành nghề (career), theo đối

21


tượng khuyết tật (disability), nội dung(content) sắp xếp s n theo ngày đăng mới
nhất.
-

Đầu vào: Khách,người dùng đăng ký đưa các tiêu chí chọn lựa công việc :

lĩnh vực công việc, Ngành nghề, đối tượng khuyết tật, tỉnh thành. Các tham
số này không bắt buộc.

-

Đầu ra: Các công việc th a mãn tiêu chí của khách, người dùng đăng ký.

Xem danh sách việc làm
Cho phép khách,người dùng đăng ký xem danh sách các việc làm, với các nội dung
cơ bản bao gồm: tên việc làm (job), ngành nghề(career), tỉnh thành. Danh sách này
mặc định được sắp xếp theo thời gian đăng.
-

Đầu vào: Không.

-

Đẩu ra: Liệt kê các công việc theo ngày đăng mới nhất.

Xem thông tin chi tiết việc làm
Cho phép khách,người dùng đăng ký xem thông tin chi tiết cụ thể một việc làm bao
gồm các nội dung: tên việc làm (job), mô tả (description), ngành nghề (career), tên
cơ quan (company), địa chỉ (adress), điện thoại liên hệ (phone), yêu cầu công việc
(require), các loại khuyết tật có thể tham gia công việc này
-

Đầu vào: Khách,người dùng đăng ký chọn đơn đăng tuyển

-


Đầu ra: Liệt kê các công việc theo ngày đăng mới nhất.

Xem danh sách ngành nghề
Cho phép khách, người dùng đăng ký xem danh sách các loại ngành nghề.
-

Đầu vào: Không

-

Đầu ra: Liệt kê các ngành nghề

Xem danh sách việc làm theo ngành nghề
Chức năng này cho phép khách, người dùng đăng ký xem một công việc với ngành
nghề lựa chọn.

22


×