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

Dịch vụ dữ liệu phục vụ tính toán đám mây

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 (3.31 MB, 108 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

SRY CHREA

DỊCH VỤ DỮ LIỆU PHỤC VỤ TÍNH TOÁN ĐÁM
MÂY

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
TIẾN SĨ VŨ THỊ HƯƠNG GIANG

Hà Nội – 2011


TÓM TẮT LUẬN VĂN THẠC SĨ
Đề tài: Dịch vụ dữ liệu phục vụ tính toán đám mây
Tác giả luận văn: Sry Chrea

Khóa: CH2009

Người hướng dẫn: Tiến sĩ Vũ Thị Hương Giang

1. Lý do chọn đề tài
Kiến trúc hướng dịch vụ (SOA), một kiến trúc mà tính toán đám mây hay sử dụng
nhất, đã đóng một vai trò cho phép tính toán đám mây trở thành những gì như hôm nay
và nó cũng đang đóng một vai trò quan trọng trong sự tiến triển của tính toán đám mây.
Tính toán đám mây có thể được xem như một phần mở rộng trong ứng dụng và cơ sở hạ


tầng vật lý của các ứng dụng Kiến trúc hướng dịch vụ trước đây.
Tính toán đám mây (Cloud Computing) có thể diễn giải một cách đơn giản: các phần
mềm và dữ liệu sẽ nhằm tại các máy chủ ảo (đám mây) để khách hàng kết nối và sử dụng
thông qua trình duyệt web. Việc xây dựng các ứng dụng đám mây đòi hỏi sự hỗ trợ của
các dịch vụ dữ liệu chuyên biệt; các dịch vụ này cho phép quản lý, lưu trữ, tìm kiếm, thao
tác,…, dữ liệu trên các đám mây một cách hiệu quả, không phụ thuộc vào nguồn dữ liệu
hay khối lượng dữ liệu cần xử lý.
Như vậy, việc xây dựng dịch vụ dữ liệu phục vụ tính toán đám mây là cần thiết và có
ý nghĩa thực tiễn.

2. Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên
cứu
Mục đích:
-

Tìm hiểu về Kiến trúc hướng dịch vụ (SOA) và tính toán đám mây (Cloud
Computing).

-

Tổng hợp các dịch vụ dữ liệu phục vụ tính toán đám mây hiện có, phân tích
vị trí và công dụng của các dịch vụ này trong việc hỗ trợ xây dựng các ứng
dụng đám mây.

-

Đề xuất mô hình phát triển ứng dụng đám mây dưới dạng dịch vụ PaaS
theo kiến trúc hướng dịch vụ (SOA).
1



-

Xây dựng thử nghiệm dịch vụ đám mây quản lý tài liệu đăng tải.

Đối tượng:
Phạm vi: Dịch vụ dữ liệu
3. Tóm tắt các nội dung chính và đóng góp mới của luận văn
Nội dung luận văn: Gồm 2 chương:
Chương 1: Tổng quan về kiến trúc hướng dịch vụ (SOA) và tính toán đám mây
(Cloud Computing).
Chương 2: Xây dựng dịch vụ đám mây quản lý tài liệu đăng tải.

Đóng góp mới của luận văn: Đã đề xuất được mô hình phát triển ứng
dụng đám mây dưới dạng dịch vụ PaaS theo kiến trúc hướng dịch vụ và bước
đầu xây dựng thành công dịch vụ đám mây quản lý tài liệu đăng tải . Từ đó
chứng mình được khả năng mạnh mẽ giữa kiến trúc hướng dịch vụ (SOA) và
tính toán đám mây (Cloud Computing).

4. Phương pháp nghiên cứu
Luận văn sử dụng phương pháp phân tích, so sánh, tổng hợp các dịch vụ dữ liệu phục
vụ tính toán đám mây hiện có.

5. Kết luận
Mục tiêu ban đầu đặt ra của luận văn là tìm hiểu Kiến trúc hướng dịch vụ (SOA) và
tính toán đám mây (Cloud Computing). Luận văn đã trình bày được các kết quả tìm hiểu,
nghiên cứu và ứng dụng dịch vụ dữ liệu đám mây .
Đối với tổng hợp dịch vụ dữ liệu phục vụ tính toán đám mây hiện có, kết quả nghiên
cứu về cơ bản đã hoàn thành được.
Để thử nghiệm đề xuất nêu trên, luận văn xây dựng dịch vụ đám mây quản lý tài liệu

đăng tải mô tả các chức năng tìm kiếm tài liệu, đánh giá tài liệu, upload tài liệu, quản lý
tài liệu, quản lý người dùng.

2


LỜI CAM ĐOAN
Tôi là Sry Chrea, học viên lớp CH 2009 - CNTT, trường Đại học Bách Khoa Hà
Nội xin cam kết Luận văn này là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn
của Cô giáo TS. Vũ Thị Hương Giang, Viện Công nghệ thông tin và Truyền thông,
Trường Đại học Bách Khoa Hà Nội. Các kết quả nêu trong luận văn là trung thực, có
nguồn gốc rõ ràng, 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.

Hà Nội, ngày 10 tháng 06 năm 2011
Học viên: Sry Chrea
Lớp:

CH 2009 – CNTT

1


LỜI CẢM ƠN
Sau một thời gian làm việc nghiêm túc, đến nay Luận văn tốt nghiệp của tôi đã
hoàn thành. Đat được thành quả như vậy, trước tiên, tôi xin được bày tỏ lòng biết ơn chân
thành đến Cô giáo hướng dẫn, TS. Vũ Thị Hương Giang đã tận tình chỉ bảo, cung cấp
kiến thức và tài liệu giúp đỡ cho tôi trong suốt quá trình thực hiện luận văn. Tôi cũng xin
được chân thành cảm ơn các thầy, các cô trong Viện Công nghệ thông tin và Truyền
thông, trường Đại Học Bách Khoa Hà Nội và Viện Đào tạo Sau đại học đã truyền cho tôi
kiến thức quí báu trong quá trình theo học trong trường. Xin được cảm ơn các bạn bè,

đồng nghiệp đã giúp tôi hoành thành nhiệm vụ được giao.
Do thời gian thực hiện có hạn và kiến thức bản thân còn nhiều hạn chế, nên luận
văn này không thể tránh khỏi những thiếu sai sót. Rất mong nhận được sự chỉ bảo, góp ý
và phê bình của các Thầy, Cô và các bạn.

*****

2


MỤC LỤC
LỜI CAM ĐOAN .................................................................................................................................. 1
LỜI CẢM ƠN ........................................................................................................................................ 2
MỤC LỤC ............................................................................................................................................. 3
DANH MỤC TỪ VIẾT TẮT................................................................................................................. 7
DANH MỤC HÌNH ............................................................................................................................... 8
MỞ ĐẦU .............................................................................................................................................. 10
CHƢƠNG 1. TỔNG QUAN ................................................................................................................ 12
1.1. Kiến trúc hƣớng dịch vụ (SOA) ................................................................................................... 12
1.1.1.Dịch vụ (Service) ................................................................................................................. 12
1.1.1.1. Khái niệm..................................................................................................................... 12
1.1.1.2. Các đặc điểm chính của Service .................................................................................. 12
1.1.2. Service Oriented Architecture (SOA) ................................................................................ 13
1.1.2.1. Khái niệm SOA ............................................................................................................ 13
1.2.2.2. Mô hình SOA ............................................................................................................... 14
1.2.2.3. Thông điệp trong SOA ................................................................................................ 15
1.1.3. Một số kỹ thuật xây dựng ứng dụng theo SOA ................................................................. 16
1.1.3.1. Các thành phần của Web Service ............................................................................... 17
1.1.3.2. Cấu trúc Web Service .................................................................................................. 17
1.1.3.3. Web Service Description Language ............................................................................ 18

1.1.3.4. Simple Object Access Protocol (SOAP) ...................................................................... 18
1.2. Tính toán đám mây (Cloud Computing) ...................................................................................... 20
1.2.1. Định nghĩa Cloud Computing ............................................................................................ 20
1.2.2. Các tính năng của tính toán đám mây ............................................................................... 22
1.2.2.1. Ảo hóa (Virtualization) ................................................................................................ 22
1.2.2.2. Linh động (Agility) ...................................................................................................... 23
3


1.2.2.3. Tái sử dụng nhiều lần (Multi tenancy) ........................................................................ 23
1.2.2.4. Tin cậy (Reliability) ..................................................................................................... 23
1.2.2.5. Phạm vi mở rộng (Scalability) ..................................................................................... 24
1.2.2.6. An toàn (Security)........................................................................................................ 24
1.2.2.7. Bảo trì (Maintenance).................................................................................................. 25
1.2.2.8. Đo lƣờng (Metering) .................................................................................................... 25
1.2.3. Các tính chất đặc trƣng của tính toán đám mây .............................................................. 25
1.2.3.1. Tự phục vụ nhu cầu (On-demand self-service) ........................................................... 25
1.2.3.2. Truy cập thông qua mạng băng thông rộng (Broad network access) ........................ 25
1.2.3.3. Quay vòng tài nguyên (Resource pooling) .................................................................. 25
1.2.3.4. Co giãn nhanh (Rapid elasticity) ................................................................................. 26
1.2.3.5. Dịch vụ đƣợc đo đếm (Measured Service) .................................................................. 26
1.2.4. Mô hình đóng gói................................................................................................................ 26
1.2.4.1. Đám mây riêng (Private Cloud) .................................................................................. 26
1.2.4.2. Đám mây công cộng (Public Cloud) ............................................................................ 27
1.2.4.3. Đám mây ghép (Hybrid Cloud) ................................................................................... 28
1.2.4.4. Đám mây cộng đồng (Community Cloud) .................................................................. 28
1.3. Dịch vụ dữ liệu cho Cloud Computing ......................................................................................... 29
1.3.1. Khái niệm dịch vụ dữ liệu (Data Service) .......................................................................... 29
1.3.2. Các mô hình dịch vụ dữ liệu đám mây .............................................................................. 29
1.3.2.1. Mô hình dịch vụ cung cấp phần mềm (Software as a Service - SaaS)........................ 30

1.3.2.2. Mô hình dịch vụ cung cấp nền tảng (Platform as a Service - PaaS) .......................... 31
1.3.2.3. Mô hình dịch vụ cung cấp cơ sở hạ tầng (Infrastructure as a Service - IaaS) ........... 33
1.3.3. Triển khai dịch vụ đám mây .............................................................................................. 34
1.3.3.1. Máy trạm (Clients) ...................................................................................................... 34
1.3.3.2. Trung tâm dữ liệu (Datacenters) ................................................................................. 35
4


1.3.3.3. Máy chủ phân tán (Distributed Servers) .................................................................... 36
1.4. Các dịch vụ dữ liệu đám mây hiện có ........................................................................................... 36
1.4.1. Amazon ............................................................................................................................... 36
1.4.1.1. Amazon S3 ................................................................................................................... 36
1.4.1.2. Amazon Simple DB ...................................................................................................... 38
1.4.2. Microsoft ............................................................................................................................ 39
1.4.2.1.Windows Azure Storage Service .................................................................................. 39
1.4.2.2. Microsoft SQL Azure .................................................................................................. 41
1.4.3. Google App Engine ............................................................................................................ 47
1.4.3.1. Datastore ...................................................................................................................... 47
1.5. Kết chƣơng .................................................................................................................................... 48
CHƢƠNG 2. XÂY DỰNG DỊCH VỤ ĐÁM MÂY QUẢN LÝ TÀI LIỆU ĐĂNG TẢI.................... 49
2.1. Phân tích yêu cầu bài toán ............................................................................................................ 49
2.1.1.Bài toán................................................................................................................................ 49
2.1.2 Yêu cầu ................................................................................................................................ 49
2.2. Định hƣớng giải pháp ................................................................................................................... 51
2.2.1. Mô hình kiến trúc hƣớng dịch vụ trên nền tảng đám mây ............................................... 52
2.2.2.Mô hình các thành phần hệ thống và cơ chế giao tiếp ........................................................ 53
2.2.2.1. Dịch vụ hỗ trợ quản lý tài liệu đăng tải....................................................................... 53
2.2.2.2. Website quản lý tài liệu đăng tải ................................................................................. 55
2.3. Thiết kế hệ thống .......................................................................................................................... 56
2.3.1. Thiết kế chức năng ............................................................................................................. 56

2.3.2. Thiết kế giao diện ............................................................................................................... 58
2.3.3. Thiết kế dữ liệu................................................................................................................... 62
2.3.3.1. Mô hình thực thể- thuộc tính- gái trị .......................................................................... 62
2.3.3.2. Thực hiện liên kết giữa các class .................................................................................. 65
5


2.3.3.3. Thiết kế chi tiết ............................................................................................................ 66
2.4. Cài đặt và triển khai thử nghiệm ................................................................................................. 68
2.4.1.Kiến trúc cài đặt hệ thống ................................................................................................... 68
2.4.2.Các dịch vụ sử dụng trong hệ thống ................................................................................... 74
2.4.2.1. Dịch vụ Account .......................................................................................................... 74
2.4.2.2. Dịch vụ Image .............................................................................................................. 74
2.4.2.3. Blobstore ..................................................................................................................... 76
2.4.2.4. Memcache .................................................................................................................... 77
2.4.2.5. Tông kết tất cả các lớp ................................................................................................. 77
2.4.3. Triển khai thử nghiệm ....................................................................................................... 81
2.4.3.1. Cài đặt .......................................................................................................................... 81
2.4.3.2. Triển khai .................................................................................................................... 82
2.4.4. Kết quả thử nghiệm............................................................................................................ 87
2.4.5. Đánh giá.............................................................................................................................. 87
2.5. Kết chƣơng .................................................................................................................................... 88
KẾT LUẬN VÀ KIẾN NGHỊ ............................................................................................................. 89
TÀI LIỆU THAM KHẢO ................................................................................................................... 90
PHỤ LỤC 1 – HƢỚNG DẪN CÀI ĐẶT ............................................................................................. 91

6


DANH MỤC TỪ VIẾT TẮT

TỪ VIẾT TẮT

TỪ VIẾT ĐẦY ĐỦ

Ý NGHĨA

SOA

Service Oriented Architecture

Kiến trúc hướng dịch vụ

WSDL

Web Service Descripion Language

Một ngôn ngữ được định nghĩa dựa trên
XML

SOAP

Simple Object Access Protocol

Một giao thức giao tiếp dùng trong dịch vụ
Web

SaaS

Software as a Service


Dịch vụ phần mềm

PaaS

Platform as a Service

Dịch vụ nền tảng

IaaS

Infrastructure as a Service

Dịch vụ cơ sở hạ tầng

API

Application Programming Interface

Giao diện lập trình ứng dụng

GAE

Google App Engine

Dịch vụ Cloud của Google

GWT

Googel Web Toolkit


RPC

Remote Procedure Call

Cơ chế gọi hàm từ xa

JDO

Java Data Object

Một trong hai cơ chế mà Sun phát triển để
ánh xạ các lớp java thành dữ liệu lưu trữ

JPA

Java Persistence API

Một trong hai cơ chế mà Sun phát triển để
ánh xạ các lớp java thành dữ liệu lưu trữ

JSNI

JavaScript Native Java Interface

Giao diện cho phép sử dụng lại các thư viện
javascript trong GWT

7



DANH MỤC HÌNH
Hình 1.1. Mô tả các tác nhân tham gia trong một hệ thống xây dựng theo SOA................................. 14
Hình 1.2. Một số kỹ thuật xây dựng hệ thống theo kiến trúc SOA ....................................................... 16
Hình 1.3. Kiến trúc SOA sử dụng Web Service .................................................................................... 17
Hình 1.4. Các thành phần của Web Service ......................................................................................... 18
Hình 1.5. Cấu trúc 1 thông điệp SOAP................................................................................................. 20
Hình 1.6. Mô hình tính toán đám mây ................................................................................................. 21
Hình 1.7. Mô hình ảo hóa .................................................................................................................... 22
Hình 1.8. Mô hình đám mây riêng (Private Cloud) ............................................................................. 27
Hình 1.9. Mô hình đám mây công cộng (Public Cloud) ....................................................................... 27
Hình 1.10. Mô hình đám mây ghép (Hybrid Cloud) ............................................................................. 28
Hình 1.11. Các kiểu cung cấp dịch vụ tính toán đám mây ................................................................... 30
Hình 1.12. Mô hình SaaS ..................................................................................................................... 30
Hình 1.13. Mô hình PaaS ..................................................................................................................... 32
Hình 1.14. 3 thành phần tạo nền một giải pháp Cloud Computing ...................................................... 34
Hình 1.15. Kiến trúc của Windows Azure Storage Service ................................................................... 40
Hình 1.16. Kiến trúc của SQL Azure .................................................................................................... 43
Hình 1.17. Kiến trúc kết nối Code-near ................................................................................................ 45
Hình 1.18. Kiến trúc kết nối Code-far .................................................................................................. 46
Hình 2.1. Mô hình kiến trúc tổng quan hệ thống ................................................................................ 52
Hình 2.2. Các thành phần và cơ chế giao tiếp dịch vụ quản lý tài liệu đăng tải .................................. 53
Hình 2.3. Các thành phần và cơ chế giao tiếp của Website quản lý tài liệu đăng tải............................ 55
Hình 2.4. Use Case các chức năng ...................................................................................................... 57
Hình 2.5. Trang home của người dùng ................................................................................................ 58
Hình 2.6. Trang tìm kiếm tài liệu ......................................................................................................... 59
8


Hình 2.7. Trang chức năng tải tài liệu lên ........................................................................................... 60
Hình 2.8. Trang quản lý tài liệu ........................................................................................................... 61

Hình 2.9. Trang quản lý người dùng .................................................................................................... 62
Hình 2.10. Mô hình Data Table lưu trữ đối tượng Entity Attribute Value ........................................... 63
Hình 2.11. Mô hình Metadata chứa thông tin các class ....................................................................... 64
Hình 2.12. Mô hình liên kết giữa các class entity trong dịch vụ .......................................................... 66
Hình 2.13. Các lớp mô phỏng các dữ liệu sẽ được lưu lại ................................................................... 67
Hình 2.14. Mô hình kiến trúc cài đặt hệ thống..................................................................................... 68
Hình 2.15. Biểu đồ hiển thị thông tin về ảnh đại diện ........................................................................ 69
Hình 2.16. Gói client gồm các interface dịch vụ (1)............................................................................. 72
Hình 2.17. Gói client gồm các interface dịch vụ (2) ............................................................................. 72
Hình 2.18. Các lớp của gói server nhằm thực hiện công việc ở phía server ........................................ 73
Hình 2.19. Tất cả các lớp (1) ................................................................................................................ 78
Hình 2.20. Tất cả các lớp (2) ............................................................................................................... 79
Hình 2.21. Tất cả các lớp (3) ............................................................................................................... 80
Hình 2.22. Tất cả các lớp (4) ............................................................................................................... 81

9


[

MỞ ĐẦU
Thuật ngữ Cloud Computing – Tính toán đám mây hiện nay đang được nhắc đến
nhiều nơi, đã và đang được triển khai ứng dụng trong nhiều lĩnh vực của Công nghệ
thông tin. Tuy nhiên trả lời một cách rõ ràng câu hỏi “Tính toán đám mây là gì?” trên
phương diện lý thuyết, vẫn chưa có một sự thống nhất thực sự.
Vậy tính toán đám mây thực sự có ý nghĩa quan trọng trong công nghệ thông tin
thế giới nói chung và Việt Nam nói riêng hay chỉ là một trào lưu một sự quảng cáo thổi
phồng?
Tính toán đám mây được xây dựng như những dịch vụ mà doanh nghiệp có thể sử
dụng chúng như là cơ sở hạ tầng và ứng dụng. Kiến trúc hướng dịch vụ (SOA), một kiến

trúc mà tính toán đám mây hay sử dụng nhất, đã đóng một vai trò cho phép tính toán đám
mây trở thành những gì như hôm nay và nó cũng đang đóng một vai trò quan trọng trong
sự tiến triển của tính toán đám mây. Tính toán đám mây có thể được xem như một phần
mở rộng trong ứng dụng và cơ sở hạ tầng vật lý của các ứng dụng Kiến trúc hướng dịch
vụ trước đây.
Mặt khác tính toán đám mây (Cloud Computing) có thể được diễn giải một cách
đơn giản: các phần mềm và dữ liệu sẽ nằm tại các máy chủ ảo (đám mây) để khách hàng
kết nối và sử dụng thông qua trình duyệt web. Việc xây dựng các ứng dụng đám mây đòi
hỏi sự hỗ trợ của các dịch vụ dữ liệu chuyên biệt; các dịch vụ này cho phép quản lý, lưu
trữ, tìm kiếm, thao tác, …, dữ liệu trên các đám mây một cách hiệu quả, không phụ thuộc
vào nguồn dữ liệu hay khối lượng dữ liệu cần xử lý
Như vậy, việc xây dựng dịch vụ dữ liệu phục vụ tính toán mây là cần thiết và có ý
nghĩa thực tiễn. Đó chính là lý do tôi chọn đề tài “ Dịch vụ dữ liệu phục vụ tính toán
đám mây” với mục tiêu:
1) Tìm hiểu về Kiến trúc hướng dịch vụ (SOA) và tính toán đám mây (Cloud
Computing).
2) Tông hợp các dịch vụ dữ liệu phục vụ tính toán đám mây hiện có, phân tích vị
trí và công dụng của các dịch vụ này trong việc hỗ trợ xây dựng các ứng dụng
đám mây.
10


3) Đề xuất mô hình phát triển ứng dụng đám mây dưới dạng dịch vụ PaaS theo
kiến trúc hướng dịch vụ (SOA)
4) Xây dựng thử nghiệm dịch vụ đám mây quản lý tài liệu đăng tải
Nội dung luận văn gồm 2 chương:
Chương 1: Tổng quan. Trình bày tổng quát về kiến trúc hướng dịch vụ và tính toán
đám mây.
Chương 2: xây dựng dịch vụ đám mây quản lý tài liệu đăng tải. Trình bày về các
bước xây dựng hệ thống và các kết quả thu được.

Các kết quả nghiên cứu, một số hạn chế và định hướng phát triển được trình bày
trong phần cuối luận văn.

11


CHƢƠNG 1. TỔNG QUAN
Trong chương 1 này, tôi sẽ tập trung trình bày tông quan về các khái niệm cơ bản
nhằm đưa ra các kiến trúc tổng quan ngắn gọn về kiến trúc hướng dịch vụ (SOA) và tính
toán đám mây và các vấn đề liên quan.

1.1. Kiến trúc hƣớng dịch vụ (SOA)

1.1.1. Dịch vụ (Service)
1.1.1.1. Khái niệm
Khái niệm service (dịch vụ) là một hệ thống có khả năng nhận một hay nhiều yêu
cầu xử lý, sau đó đáp ứng lại bằng cách trả về một hay nhiều kết quả. Quá trình nhận yêu
cầu và trả kết quả về được thực hiện thông qua các Interface đã được định nghĩa trước đó.
Thông thường việc giao tiếp này được thực hiện trên các Interface đã được chuẩn hóa và
sử dụng rộng rãi [1].
Một hệ thống được thiết kế theo kiểu hướng dịch vụ (Service-Oriented) là hệ
thống trong đó các chức năng được xây dựng dựa trên các Service có độ kết dính thấp.
Các Service trong hệ thống giao tiếp với nhau thông qua việc gửi nhận các thông điệp
(Message) [1].

1.1.1.2. Các đặc điểm chính của Service
o Có ranh rõ ràng (Boundaries Are Explicit)
Mỗi Service được xây dựng dựa trên các Interface chuẩn hóa đã được sử dụng
rộng rãi. Chi tiết thực thi của mỗi Service không được thể hiện ra bên ngoài. Mỗi
Service chỉ công bố một số các Interface của nó cho User có thể dùng để gửi các

yêu cầu và nhận kết quả trả về [1].

12


o Tính tự trị (Autonomous)
Mỗi Service có tính độc lập cao, có thể được xây dựng và đưa vào sử dụng mà
không phụ thuộc vào các Service khác [1].
o Chia sẻ Lƣợc đồ và Giao ƣớc, chứ không chia sẻ Lớp (Share the Schema and
Contract, Not the class)
Về mặt trao đối dữ liệu, các Service không truyền các Class và type. Thay vào đó,
các class và type sẽ được đặc tả hình thức (data được đặc tả trong Schema,
behavior được đặc tả thành các contract) [1].
o Sự tƣơng thích giữa các dịch vụ đƣợc căn cứ vào các chính sác (Service
Compatibility Is Based on Policy)
Sự tương thích giữa các service được căn cứ vào các policy. Tương thích về mặt
cấu trúc dựa trên các đặc tả hình thức bao gồm contract (dựa trên Web Service
Description Language (WSDL) hoặc Business Process Execution Language for
Web Service (EPEL4WS)) và schema (XSD). Sự tương thích dựa trên policy cung
cấp khả năng phân tích cũng như đảm bảo sự tương thích giữa các service [1].

1.1.2. Service Oriented Architecture (SOA)
1.1.2.1. Khái niệm SOA
Service Oriented Architecture (SOA) là khái niệm về hệ thống trong đó mỗi ứng
dụng được xem như một nguồn cung cấp dịch vụ. Có thể hiểu dịch vụ như là hàm chức
năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó [1].
SOA cung cấp cơ chế cho phép các hệ thống hoạt động trên các platform khác
nhau có thể giao tiếp với nhau.
Một hệ thống được xây dựng theo mô hình SOA bao gồm các service thỏa mãn
các tính chất của service nêu trên. Mỗi service trong hệ thống có thể được sửa đổi một

13


cách độc lập với các service khác nhau nhằm mục đích đáp ứng một yêu cầu mới từ thực
tế.

1.2.2.2. Mô hình SOA

Hình 1.1. Mô tả các tác nhân tham gia trong một hệ thống xây dựng theo SOA
o Service Provider: Cung cấp stateless service phục vụ cho một nhu cầu nào đó.
User (service Requester) không cần quan tâm đến vị trí thực sự mà service họ
cần sử dụng đang hoạt động.
o Service Requester: User sử dụng service được cung cấp bởi Service Provider
o Service Broker: Nơi lưu trữ thông tin về các service của các Service Provider
khác nhau, Service Requester dựa trên những thông tin này để tìm kiếm và lựa
chọn Service Provider phù hợp.
Service Provider sẽ đăng kí thông tin về service mà mình có thể cung cấp (các
chức năng có thể cung cấp, khả năng của hệ thống (resource, performance), giá cả dịch
vụ, …) vào Service Broker. Service Requester khi có nhu cầu về một service nào đó sẽ
tìm kiếm thông tin trên Service Broker. Ngoài chức năng hỗ trợ tìm kiếm, Service Broker
còn có thể xếp hạng các Service Provider dựa trên các tiêu chí về chất lượng dịch vụ, bầu
chọn từ các khách hàng đã sử dụng service,… Những thông tin này sẽ hỗ trợ thêm cho
quá trình tìm kiếm của Service Requester. Khi đã xác định được Service Provider mong
muốn, Service Requester thiết lập kênh giao tiếp trực tiếp với Service Provider nhằm sử
dụng service hoặc tiến hành thương lượng thêm (về mặt giá cả, resource sử dụng, …) [1].
14


1.2.2.3. Thông điệp trong SOA
So với kiểu thiết kế Component-Based, điểm khác biệt chính của SOA là cung cấp

khả năng giao tiếp giữa các thành phần trong hệ thống (service) sử dụng thông điệp
(message) dựa trên các chuẩn giao tiếp đã chuẩn hóa (HTTP, FTP, SMTP, …). Chính
nhờ đặc điểm này, hệ thống SOA trở nên độc lập với platform. Các service hoạt động trên
nền các platform khác nhau vẫn có thể giao tiếp với nhau nhờ vào các interface giao tiếp
đã được chuẩn hóa để cộng tác xử lý một tác vụ nào đó [1].
Sử dụng thông điệp (message) để giao tiếp có các lợi thế sau:
o Cross-platform: Thông điệp (message) trở thành ngôn ngữ chung của các
platform và các ngôn ngữ lập trình khác nhau. Điều này đảm bảo service
trên các platform khác nhau hoạt động với cấu trúc dữ liệu thù của platform
đó.
o Asynchronous communication: Hoạt động gửi nhận thông điệp được thực
hiện theo cơ chế Fire-and-Forget. Sender và Reciever không cần phải chờ
thông điệp trả lời sau khi đã gửi đi một thông điệp. Điều này giúp cho
Sender và Receiver tiếp tục xử lý công việc sau khi gửi thông điệp mà
không cần dừng thực thi để chờ thông điệp trả lời.
o Reliabe communication: Các thông điệp từ Sender có thể được gửi đến
một service trung gian có nhiệm vụ lưu trữ (store) các thông điệp. Service
trung gian sẽ gửi (forward) thông điệp cho Receiver khi Receiver có thể xử
lý yêu cầu tiếp theo. Cơ chế Store-and-Forward này đảm bảo các thông
điệp sẽ không bị thất lạc trong trường hợp Receiver bị quá tải và không thể
nhận thêm yêu cầu mới.
o Thread management: Việc trao đổi thông điệp theo cơ chế bất đồng bộ
giúp ứng dụng không cần ngừng thực thi để chờ một tác vụ kết thúc mà có
thể tạo ra các thread xử lý các công việc khác nhau.
15


o Remote communication: Các thông điệp lưu trữ thông tin về các đối tượng
dữ liệu dướí dạng đặc tả hình thức thay thế việc phải serialization and
deserialization các đối tượng dữ liệu truyền qua mạng khi ứng dụng thực

hiện remote call một ứng dụng khác.
o End-to-end security: Thông điệp có thể lưu trữ thông tin về security
context của kênh giao tiếp. Điều này cung cấp khả năng điều khiển liên
quan đến securit như authentication ad auhorization.

1.1.3. Một số kỹ thuật xây dựng ứng dụng theo SOA
Kiến trúc hướng dịch vụ SOA không phải khái niệm mới. Một số kỹ thuật có thể
được sử dụng hệ thống theo kiến trúc SOA: Web service, CORBA, DCOM, J2EE… [1]

Hình 1.2. Một số kỹ thuật xây dựng hệ thống theo kiến trúc SOA
Ánh xạ các thành phần kién trúc SOA sử dụng kỹ thuật Web Service.

16


Hình 1.3. Kiến trúc SOA sử dụng Web Service

1.1.3.1. Các thành phần của Web Service
Web Service là một khái niệm kỹ thuật dùng xây dựng dịch vụ, sử dụng web
protocol để giao tiếp. Web service cung cấp hệ thống phần mềm hỗ trợ việc giao tiếp
giữa các máy tính trên mạng.

1.1.3.2. Cấu trúc Web Service
Các tác nhân chính tham gia vào Web Service
o Service Provider: Dùng Web Service Description Language (WSDL) để mô
tả dịch vụ mà mình có thể cung cấp cho Service Broker (Service Registry).
o Service Broker: Lưu trữ thông tin về các service được cung cấp bởi các
Service Provider. Cung cấp chức năng tìm kiếm hỗ trợ Service Requester
(Service Consumer) trong việc xác định Service Provider phù hợp. Thành
phần chính của Service Broker là Universal Discovery, Description, and

Integration (UDDI) repositories.

17


o Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng (loại service,
thời gian sử dụng, resource cần thiết, mức giá,…) và gửi Service Broker.
Bằng việc sử dụng UDDI và chức năng tìm kiếm của Service Broker,
Service Requester có thể tìm thấy Service Provider thích hợp. Ngay sau đó,
giữa Service Requester và Service Provider thiết lập kênh giao tiếp sử dụng
SOAP để thương lượng giá cả và các yếu tố khác trong việc sử dụng
service.

Hình 1.4. Các thành phần của Web Service

1.1.3.3. Web Service Description Language
WSDL là một ngôn ngữ được định nghĩa dựa trên XML, được sử dùng để mô tả
một web service. Ở mức cao, một văn bản WSDL là một bản hợp đồng giữa bên cung cấp
dịch vụ và bên sử dụng dịch vụ. Nó cho biết tất cả những thông tin cần thiết để bên web
service và bên sử dụng tương tác với nhau, như các operation mà một web service cung
cấp, các kiểu thông điệp trao đổi giữa web service và bên liên quan, các callback
operation mà bên sử dụng phải cung cấp cho web service [1].

1.1.3.4. Simple Object Access Protocol (SOAP)
SOAP là một giao thức giao tiếp dùng trong Web Service, được xây dựng dựa trên
XML. SOAP được sử dụng để đặc tả và trao đổi thông tin về các cấu trúc dữ liệu cũng
như các kiểu dữ liệu giữa các thành phần trong hệ thống. Sử dụng SOAP, ứng dụng có
18



thể yêu cầu thực thi method trên máy tính ở xa mà không cần quan tâm đến chi tiết về
platform cũng như các phần mềm trên máy tính đó.
SOAP có 2 phiên bản: SOAP 1.1(năm 2000, trong đó, SOAP là viết tắt của
„Simple Object Access Protocol‟), SOAP 1.2(năm 2003) [1].

-

-

-

 Các đặc điểm của SOAP
Khả năng mở rộng (Extensible): Cung cấp khả năng mở rộng phục vụ cho nhu
cầu đặc thù của ứng dụng và nhà cung cấp. Các chức năng về bảo mật, tăng độ
tin cậy có thể dựa vào phần mở rộng của SOAP. Các nhà cung cấp dịch vụ
khác nhau, tùy vào đặc điểm hệ thống của mình có thể định nghĩa thêm các
chức năng mở rộng nhằm tăng thêm lợi thế cạnh tranh cũng như cung cấp tiện
ích cho người sử dụng.
Có thể hoạt động trên các Network Protocol đã được chuẩn hóa (HTTP,
SMTP, FTP, TCP,…).
Độc lập với platform, ngôn ngữ lập trình hay programming model được sử
dụng.
 Cấu trúc chung của một thông điệp SOAP
Protocol Header: Cho biết thông tin về các chuẩn hóa giao thức được sử dụng.
SOAP Envelop: Thông tin chính của message bao gồm:
 SOAP Header: Chứa các SOAP header.
 SOAP body: Thông tin về name và data được đặc tả dưới dạng XML.
Ngoài ra còn có trường lỗi được dùng để gửi các Web Service
Exception.


19


Hình 1.5. Cấu trúc 1 thông điệp SOAP

Như vậy, phần này vừa tìm hiểu tổng quát về Kiến trúc hướng dịch vụ (SOA),
bao gồm: dịch vụ SOA, khái niệm SOA, đặc điểm chính của dịch vụ, mô hình SOA,
thông điệp trong SOA, kỹ thuật xây dưng ứng dụng theo SOA, thành phần của Web
Service, cấu trúc Web Service, WSDL, và các đặc điểm của SOAP. Phần tiếp theo tôi sẽ
tìm them về tính toán đám mây (Cloud Computing).

1.2. Tính toán đám mây (Cloud Computing)

1.2.1. Định nghĩa Cloud Computing
Thuật ngữ Cloud Computing- tính toán đám mây mới xuất hiện khoảng giữa năm
2007, dùng để chỉ một cách khái quát một hướng phát triển cơ sở hạ tầng công nghệ
thông tin diễn ra trong nhiều năm qua trên thế giới. Tuy nhiên các định nghĩa về thuật
ngữ này có thể nói là chưa có sự đồng nhất cao.
Theo Ian Foster: “ Một mô hình tính toán đám mây 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
20


độ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”.
Theo IEEE, “ Tính toán đám mây là một mô hình trong đó thông tin được lưu trữ
thường trực tại các máy chủ trên Internet và chỉ được lưu trữ tạm thời tại các máy
trạm, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các
phương tiện máy tính cầm tay,…”


Hình 1.6. Mô hình tính toán đám mây
Tên gọi đám mây là một cách nói ẩn dụ về mạng Internet. Thông thường, Internet
được hình dung là mạng lưới giống như đám mây, như biểu diễn trong hình 1.6. Các biểu
tượng đám mây là chỉ tất cả những gì nhằm phục vụ cho việc thực hiện các công việc trên
mạng. Tất nhiên, trong tấm vỏ bọc đám mây có rất nhiều thứ diễn ra mà không thể đánh
đồng tính toán đám mây với Internet. Có thể coi Internet là một công cụ luôn sẵn sàng và
thuận tiện để cung cấp các dịch vụ công nghệ thông tin đến mọi người, mọi nơi, mọi lúc.
Theo Viện tiêu chuẩn và công nghệ Hoa Kì NIST- National Institute of Standards
and Techonology: “Tính toán đám mây là một mô hình cho phép truy cập mạng thuận
tiện theo yêu cầu, đến một khối các tài nguyên tính toán có khả năng chia sẻ (ví dụ như
Network, máy chủ, không gian lưu trữ, ứng dụng và dịch vụ), chúng có thể nhanh chóng
được cung cấp và thu hồi với chi phí quản lý và tương tác với nhà cung cấp dịch vụ là tối
thiểu.”(Source: />Nghĩa là, không chỉ có kho dữ liệu mà cả các nguồn tính toán khổng lồ như các
phần cứng (máy chủ, bộ nhớ,…), phần mềm các dịch vụ,… sẽ nằm tại các máy chủ ảo
21


trên Internet (đám mây) thay vì trong các máy tính cá nhân hay văn phòng. Khi đó tất cả
các khả năng công việc liên quan đến công nghệ thông tin đều được cung cấp dưới dạng
các dịch vụ, người sử dụng sẽ hợp đồng sử dụng các dịch vụ này thông qua một nhà cung
cấp nào đó và chỉ truy cập mỗi khi cần. Như vậy người sử dụng sẽ không cần phải biết về
công nghệ cũng như hạ tầng cơ sở để phục vụ công nghệ đó.

1.2.2. Các tính năng của tính toán đám mây
1.2.2.1. Ảo hóa (Virtualization)
Công nghệ ảo hóa đã được sử dụng trong nhiều lĩnh vực của công nghệ thông tin,
ví dụ như khái niệm bộ nhớ ảo trong hệ điều hành (Virtualization), mạng riêng ảo trong
mạng máy tính (Virtualization Private Network- VPN), máy ảo (Virtual machine),
VMWare, MS Virtual Machine,… Bản chất của ảo hóa là không quan tâm đến các chi

tiết ở tẩng dưới, chỉ quan tâm ở mức trừu tượng hóa. Thông qua ảo hóa, những thứ rời rạc
được gắn kết và người dùng chỉ cần làm việc với một môi trường thống nhất. Điều quan
trọng nhất của ảo hóa là thông qua việc ảo hóa, người dùng dễ dàng quản lý các tài
nguyên và các ứng dụng được thực thi với hiệu năng vượt trội.

Hình 1.7. Mô hình ảo hóa
Ảo hóa là tính năng quan trọng nhất của tính toán đám mây, làm cho tính toán đám
mây có các tính năng vượt trội mà các mô hình tiền thân như clietn-server hay utility
computing không có được như là tính linh động, tin cậy hay mềm dẻo. Thông qua ảo hóa,
các máy phục vụ (Server) và các bộ nhớ (Storage) trở thành trong suốt với người dùng.
Người dùng không có thông tin gì về dữ liệu được lưu trữ trên một bộ nhớ cụ thể nào,
ứng dụng được phục vụ bởi một máy phục vụ cụ thể nào. Người dùng không phải quan
22


×