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

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

108 149 1

Đ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 108
Dung lượng 3,31 MB

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

Nội dung

1 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 Tính toán đám mây Cl

Trang 1

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

Trang 2

1

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

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ó

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

Trang 3

2

- 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

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

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

Trang 4

1

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

Trang 5

2

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

*****

Trang 6

3

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

Trang 7

4

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

Trang 8

5

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

Trang 9

6

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

Trang 10

7

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

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

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

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

Trang 11

8

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

Trang 12

9

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

Trang 13

10

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

Trang 14

11

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

Trang 15

12

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

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]

Trang 16

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

Trang 17

14

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]

Trang 18

15

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

Trang 19

16

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

Trang 20

17

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

Trang 21

18

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ó

Trang 22

19

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

Trang 23

20

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

Trang 24

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:http://csrc.nist.gov/groups/SNS/cloud-computing/index.html)

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

Trang 25

22

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

Trang 26

Bên cạnh đó, dịch vụ tính toán đám mây có thể sử dụng ở cứ nơi đâu, dữ liệu được đồng bộ Ví dụ với Google Docs, người sử dụng có thể soạn thảo văn bản ngay trên Web, lưu lại và dễ dàng truy xuất khi cần thiết ở bất cứ đâu, trong khi nếu soạn thảo với Microsoft Word (phiên bản offline) ở một máy cục bộ người sử dụng phải copy dữ liệu nếu muốn truy cập tệp văn bản đó ở máy khác

1.2.2.3 Tái sử dụng nhiều lần (Multi tenancy)

Các ứng dụng có thể được sử dụng ở bất cứ thời điểm nào, và với cùng một lượng lớn người sử dụng Khi triển khai một ứng dụng trên tính toán đám mây, mỗi người sử dụng sẽ tiếp cận với một thể hiện (instance) của ứng dụng đó, cho phép họ có thể thao tác độc lập nhưng vẫn đảm bảo sự thống nhất và toàn vẹn về cơ sở dữ liệu Hơn thế nữa, các thể hiện cũng được thiết kế sao cho khi một thể hiện gặp lỗi ( về truy cập, hay cơ sở dữ liệu), nó không ảnh hướng tới các thể hiện khác, khiển cho ứng dụng luôn hoạt động liên tục, tin cậy và hiệu quả

1.2.2.4 Tin cậy (Reliability)

Độ tin cậy của tính toán đám mây được tăng lên từ tính ảo hóa của nó Khi một ứng dụng đám may được thực thi, người sử dụng chỉ có thể làm việc với nó mà không thể

Trang 27

24

biết rằng nó đang được lưu trữ ở đâu, thực thi ở đâu Đằng sau sự ảo hóa đó là các thành phần rời rạc ở trên nhiều trung tâm dữ liệu khác nhau, cách xa nhau về không gian Điều này cũng giúp cho việc vận hành liên tục không ngắt quãng ứng dụng thương mại và các thảm họa về mất mát dữ liệu

1.2.2.5 Phạm vi mở rộng (Scalability)

Tính năng mở rộng thể hiện ở chỗ nó có thể “ co giãn”, tức là thu hẹp hoặc mở rộng lúc cần thiết Đây là một tính năng vượt trội của tính toán đám mây so với các hình thức tính toán cũ, là cơ sở phương châm “ trả cho những gì bạn thực hiện” (pay-as you- go)

Ví dụ, đối với hình thực cũ, một công ty có thể sẽ phải mua máy móc, trang thiết

bị cho 3 hay 4 server để đảm bảo ứng dụng Web thương mại của họ có thể hoạt động tốt ngay cả thời điểm có số lượng lớn truy cập, mặc dù thông thường chỉ có từ 1 đến 2 servers phải hoạt động, còn 2 cái còn lại hầu như không Hay là thậm chí với các hình thức thuê server kiểu cũ, tính mở rộng cũng không thể đáp ứng được (tình trạng nghẽn mạng, server quá tải,…)

Tình trạng trên đã được giải quyết trong tính toán đám mây Khi sử dụng phình to

ra, nhiều người sử dụng đồng thời, mọi tác vụ đều hoạt động mượt mà với hiệu năng lớn nhất Tại sao tính toán đám mây lại có thể làm được như vậy? Có được điều này cũng chính là do tính năng ảo hóa của tính toán đám mây

Trang 28

25

1.2.2.7 Bảo trì (Maintenance)

Việc bảo trì một ứng dụng đám mây là dễ dàng hơn rất nhiều bởi vì nó không phải được cài đặt ở mỗi máy tính của người sử dụng , hay nói tổng quát hơn, nó không tách rời khỏi hệ thống của nhà cung cấp Tất cả đều nằm trong tâm kiểm soát Mỗi khi có các thay đổi, nó có thể được cập nhật ngay tức khắc tới người sử dụng Người sử dụng không cần quan tâm tới việc nâng cấp như thế nào mà có thể chỉ quan tâm tới các tính năng mới của ứng dụng

1.2.2.8 Đo lường (Metering)

Các tài nguyên đám mây được đo lường và tính toán ở mỗi ứng dụng, ở mỗi máy

và với thông số khác nhau tại nhiều thời điểm khác nhau Tính năng này giúp cho các nhà cung cấp dịch vụ có thể tính toán được các chi phí mà người sử dụng sử dụng dịch vụ bằng cách thiết lập các phần mềm hệ thống thống kê

1.2.3 Các tính chất đặc trưng của tính toán đám mây

1.2.3.1 Tự phục vụ nhu cầu (On-demand self-service)

Người sử dụng có thể tự tăng cường năng lực tính toán cho mình, ví dụ như về thời gian sử dụng máy chủ hay không gian lưu trữ trên mạng, một cách hoàn toàn tự động theo như cầu mà không cần phải thương lượng với nhà cung cấp dịch vụ

1.2.3.2 Truy cập thông qua mạng băng thông rộng (Broad network access)

Các khả năng tính toán luôn sẵn sàng trên mạng và được truy cập đến thông qua những kỹ thuật tiêu chuẩn, mà có thể thực hiện bằng nhiều loại máy trạm khác nhau (như điện thoại di động, máy tính xách tay hay các thiết bị số hỗ trợ cá nhân- PDA)

1.2.3.3 Quay vòng tài nguyên (Resource pooling)

Các tài nguyên tính toán của nhà cung cấp được quay vòng để phục vụ cho nhiều người dùng cùng sử dụng theo mô hình multi-tenance- đa khách hàng, với các tài nguyên

Trang 29

26

thực và ảo hóa khác nhau được cấp phát và tái cấp phát động tùy thuộc vào yêu cầu của người sử dụng Ở đây cảm giác của người sử dụng về tài nguyên không phụ thuộc vào vị trí của chúng, họ không điều khiển và cũng không hiểu biết về vị trí chính xác của các tài nguyên được cung cấp, họ chỉ có thể xác định vị trí của chúng ở mức trừu tượng hóa có thể quay vòng bao gồm không gian lưu trữ, xử lý, bộ nhớ, băng thông mạng và các máy

ảo

1.2.3.4 Co giãn nhanh (Rapid elasticity)

Khả năng tính toán có thể được cung cấp một cách nhanh chóng và co giãn, trong một số trường hợp hoạt động cung cấp này có thể tự động giãn ra hoặc co vào phụ thuộc vào nhu cầu người dùng Trên phương diện người sử dụng, tài nguyên hiện có được coi như vô hạn và có thể mua với bất kì số lượng, bất kì thời gian nào

1.2.3.5 Dịch vụ đƣợc đo đếm (Measured Service)

Các hệ thống đám mây điều khiển tự động và tối ưu hóa tài nguyên sử dụng bằng cách sử dụng khả năng đo lường mức độ trừu tượng hóa phù hợp với kiểu dịch vụ (lưu trữ, khả năng xử lý, băng thông, và tài khoản người dùng đang hoạt động)

1.2.4 Mô hình đóng gói

Mô hình đóng gói của tính toán đám mây có 4 thành phần như sau:

1.2.4.1 Đám mây riêng (Private Cloud)

Cơ sở hạ tầng tính toán đám mây được hoạt động chỉ phục vụ duy nhất cho một tổ chức Nó có thể được quản lý bởi chính tổ chức hoặc một bên thứ 3 và có thể tồn tại trên chính hệ thống của tổ chức đó hoặc không

Trang 30

27

Hình 1.8 Mô hình đám mây riêng (Private Cloud)

1.2.4.2 Đám mây công cộng (Public Cloud)

Cơ sở hạ tầng tính toán đám mây loại này được tạo sẵn cho số đông công chúng hoặc một nhóm ngành công nghiệp lớn và được sở hữu bởi một tổ chức bán các dịch vụ đám mây

Hình 1.9 Mô hình đám mây công cộng (Public Cloud)

Trang 31

28

1.2.4.3 Đám mây ghép (Hybrid Cloud)

Cơ sở hạ tầng tính toán đám mây mà thành phần được ghép từ hai hoặc nhiều đám mây khác (có thể là đám mây riêng, cộng đồng hoặc công cộng) mà vẫn hoạt động như một thực thể duy nhất Các đám mây thành phần này được ràng buộc với nhau bằng công nghệ tiêu chuẩn hoặc độc quyền cho phép dữ liệu và ứng dụng có tính di động

Hình 1.10 Mô hình đám mây ghép (Hybrid Cloud)

1.2.4.4 Đám mây cộng đồng (Community Cloud)

Cơ sở hạ tầng tính toán đám mây được chia sẻ bởi một số tổ chức và hỗ trợ một cộng đồng cụ thể mà cùng chia sẻ mối quan tâm (như là nhiệm vụ, yêu cầu chính sách an ninh, và xem xét tuân thủ) Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ 3 và

có thể tồn tại trên chính hệ thống của nhóm các tổ chức đó hoặc không

Trang 32

29

1.3 Dịch vụ dữ liệu cho Cloud Computing

1.3.1 Khái niệm dịch vụ dữ liệu (Data Service)

Database as a Service (DaaS) được cung cấp bởi tính toán đám mây Ý tưởng của DaaS là giúp khách hàng giảm sự phức tạp và chi phí của việc tự tổ chức và duy trì 1 cơ

sở dữ liệu [2]

o Lợi ích của DaaS:

 Dễ dùng: Không có phục vụ để cung cấp và không có hệ thống thừa phải lo lắng Người sử dụng không phải lo lắng về việc mua, cài đặt,

và duy trì phần cứng cho cơ sở dữ liệu

 Năng lượng: Các cơ sở dữ liệu không nằm tại địa phương, nhưng điều đó không có nghĩa là nó không phải là chức năng và hiệu quả Tùy thuộc vào nhà cung cấp nhưng người sử dụng có thể tùy chỉnh

dữ liệu xác nhận để đảm bảo thông tin chính xác Người sử dụng có thể tạo và quản lý cơ sở dữ liệu dễ dàng

 Tích hợp: Cơ sở dữ liệu có thể được tích hợp với các dịch vụ khác của bạn để cung cấp giá trị nhiều và quyền lực Ví dụ, gắn nó với lịch, email, và người dân làm công việc của bạn mạnh hơn

 Quản trị: Nhà cung cấp thường sử dụng nhân công nước ngoài để khai thác giá nhân rẻ Ví dụ, hoàn toàn có thể sử dụng dịch vụ ở Chicago, máy chủ vật lý dặt ở Washington, người quản trị cơ sở dữ liệu ở Philippines

1.3.2 Các mô hình dịch vụ dữ liệu đám mây

Các mô hình dịch vụ dữ liệu tính toán đám mây có thể phần thành 3 mô hình cơ bản như sau:

Trang 33

30

Hình 1.11 Các kiểu cung cấp dịch vụ tính toán đám mây

1.3.2.1 Mô hình dịch vụ cung cấp phần mềm (Software as a Service

- SaaS)

Hình 1.12 Mô hình SaaS

Trang 34

31

SaaS là một mô hình trong đó ứng dụng được triển khai dưới dạng dịch vụ theo yêu cầu cho khách hàng truy cập nó thông qua Internet Dịch vụ này cung cấp cho người tiêu dùng là khả năng sử dụng các phần mềm ứng dụng của nhà cung cấp dịch vụ, mà các phần mềm ứng dụng này đang chạy trên một đám mây cơ sở hạ tầng chứ không phải chạy trên các máy tính gia đình hay văn phòng Các ứng dụng này có thể truy cập được từ nhiều loại thiết bị khách hàng khác nhau thông qua một giao diện máy cấu hình nhẹ tương tự như một trình duyệt web (ví dụ, dựa trên web email) Người sử dụng không quản lý hoặc kiếm soát các cơ sở hạ tầng tính toán đám mây bên dưới bao gồm mạng, máy chủ, hệ điều hành, lưu trữ, hoặc thậm chí cả khả năng ứng dụng cá nhân, ngoại trừ việc có thể thiết lập cấu hình hạn chế người sử dụng ứng dụng cụ thể

Các dịch vụ dạng SaaS hiện có: Google Apps, Google Docs, Gmail, Google

Calendar, Zoho, Acrobat.com, iWork.com, Kashflow, FreeAgent, WordPress.com,

MobileMe, Salesforce.com [2]

Các dịch vụ dữ liệu theo mô hình này là Simple Storage Service và Datasore [2]

1.3.2.2 Mô hình dịch vụ cung cấp nền tảng (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ụ, mà không cần tải

về hoặc cài đặt thêm bất cứ phần mềm nào

Trang 35

32

Hình 1.13 Mô hình PaaS

Dịch vụ PaaS bao gồm thiết kế ứng dụng, phát triển, kiếm thử, triển khai ứng dụng Các dịch vụ khác: cộng tác nhóm làm việc, tích hợp dịch vụ web, tích hợp cơ sở dữ liệu, bảo mật, mở rộng, lưu trữ, quản lý trạng thái và phiên bản Một điểm yếu của PaaS

là thiếu đi khả năng tích hợp và chuyển đổi giữa các nhà cung cấp dịch vụ Người dùng khó có thể chuyển ứng dụng từ nhà cung cấp dịch vụ này sang nhà cung cấp khác, hoặc

có thể phải chịu chi phí cao Thêm vào đó, nếu nhà cung cấp ngừng hoặt động, mọi ứng dụng và dữ liệu của người dùng có khả năng bị mất

PaaS thường đưa ra những tiện ích hỗ trợ tạo giao diện người dùng dựa trên HTML và JavaScript PaaS cũng có hỗ trợ giao diện giao phát triển nền web, ví dụ như Simple Object Access Protocol (SOAP)và Representation State Transfer (REST), cho phép khởi tạo nhiều dịch vụ web

PaaS thường có 3 loại:

 Tiện ích phát triển: Cho phép tùy chỉnh 1 ứng dụng SaaS đang hoạt động

 Môi trường độc lập (Stand-alone environment), môi trường này nói chung chỉ được sử dụng cho quá trình phát triển

 Môi trường phát triển khai ứng dụng: Môi trường này hỗ trợ triển khai dịch vụ, bảo mật, mở rộng theo yêu cầu Nó không bao gồm chức năng phát triển, gỡ lỗi và kiếm thử

Một số nhân tố cấu thành ưu điểm của PaaS

Trang 36

 Khả năng nhìn nhận được chi phí cắt giảm được thông qua việc sử dụng môi trường lập trình trừu tượng ở mức cao

Rào cản đối với PaaS

 Bởi các nhà cung cấp có thể sử dụng các dịch vụ hoặc ngôn ngữ phát triển đặc thù, nên một vài nhà phát triển e ngại việc bị giới hạn trong

1 nhà cung cấp dịch vụ PaaS

 Nhà cung cấp có thể cho phép ứng dụng được chuyển sang nhà cung cấp khác, tuy nhiên chi phí thường là cao hơn so với việc chuyển ứng dụng giữa các host như thông thường

Các dịch vụ dạng PaaS hiện có: Salesforce.com, Apprenda SaaSGrid, Google App Engine, Microsoft Azure, Appistry, Talis Platform [2]

Dịch vụ cơ sở dữ liệu theo mô hình này là Datastore của Google App Engine [2]

1.3.2.3 Mô hình dịch vụ cung cấp cơ sở hạ tầng (Infrastructure as a

Service - IaaS)

Trong một số tài liệu cũng được gọi là Hardware as a Service (HaaS) Dịch vụ này cung cấp cho người tiêu dùng là năng lực xử lý, không gian lưu trữ, Network, và các tài nguyên tính toán cơ bản khác mà người sử dụng có thể dùng để triển khai và chạy phần mềm tùy ý, có thể là hệ điều hành và các ứng dụng Người sử dụng không quản lý hoặc kiẻm soát các cơ sở hạ tầng cơ bản của đám mây nhưng có thể kiểm soát đối với hệ điều hành, không gian lưu trữ và các ứng dụng do họ triển khai, và có thể kiểm soát giới hạn của các thành phần mạng mà họ chọn

Các dịch vụ dạng IaaS hiện có: Amazon Elastic Computing Cloud (EC2), Amazon S3, Elastra (Beta 2.0 2/2009), Nirvanix, AppNexus [7]

Dịch vụ dữ liệu theo mô hình này là Amazon Simple Storage Service (S3) [7]

Trang 37

34

1.3.3 Triển khai dịch vụ đám mây

Giải pháp tính toán đám mây được tạo ra từ một số yếu tố cơ bản là các máy trạm (clients), trung tâm dữ liệu (Datacenters), và các máy chủ phân tán (Distributed Servers) Như trong hình 1.14, các yếu tố này tạo thành 3 thành phần cơ bản của một giải pháp tính toán đám mây

Mỗi thành phần có một mục đích và đóng một vai trò cụ thể trong việc sinh ra một đám mây chức năng dựa trên ứng dụng, sau đây chúng ta hãy xem xét kỹ hơn

Hình 1.14 3 thành phần tạo nền một giải pháp Cloud Computing

1.3.3.1 Máy trạm (Clients)

Trong kiến trúc tính toán đám mây, loại máy trạm thông thường là các máy tính để bàn, cũng có thể là các máy tính xách tay, điện thoại di động, hoặc các thiết bị số hỗ trợ

cá nhân (Personal Digital Assistant - PDA) – cùng tất cả các trình điều khiển Cloud

Computing vì tính di động của các thiết bị này

Máy trạm là các thiết bị mà người sử dụng dùng để tương tác quản lý thông tin của

họ trên các đám mây

Trang 38

35

Máy trạm có thể chia làm 3 loại:

Máy di động( Mobile): Là các thiết bị di động bao gồm các thiết bị PDA hay

điện thoại thông minh (như Blackberry, Windows Mobile Smartphone, hoặc iPhone)

 Máy cấu hình nhẹ (Thin): Những máy trạm này là các máy tính không có ổ đĩa cứng nội bộ, tất cả các công việc được thực hiện tại các máy chủ trên đám mây, sau đó chúng chỉ hiển thị thông tin

 Máy cấu hình nặng (Thick): Loại máy trạm này là những máy tính thông thường, chúng kết nối với các đám mây bằng cách sử dụng một trình duyệt web như Firefox hay Internet Explore

Hiện nay, máy cấu hình nhẹ đang trở thành một giải pháp ngày càng phổ biến, vì giá cả, hiệu quả và sự an toàn hơn của chúng đối với môi trường

1.3.3.2 Trung tâm dữ liệu (Datacenters)

Trung tâm dữ liệu là tập hợp các máy chủ trong đó có chứa các ứng dụng mà những người dùng đăng ký sử dụng Nó có thể đặt trong một căn phòng lớn tại tầng hầm của chính tòa nhà có người sử dụng, cũng có thể trong một căn phòng đầy các máy chủ ở tận phía bên kia trái đất mà người sử dụng truy cập vào đó thông qua Internet

Một xu hướng phát triển trong thế giới Công nghệ thông tin hiện nay đó là các máy chủ ảo Điều này có nghĩa là, phần mềm có thể được cài đặt để cho phép giống như nhiều máy chủ ảo đang cùng được sử dụng Có nghĩa là có thể có nhiều các máy chủ ảo chạy trên một máy chủ vật lý Tất nhiên số lượng máy chủ ảo có thể tồn tại trên một máy chủ vật lý phụ thuộc vào tốc độ của máy chủ vật lý và ứng dụng nào sẽ được chạy trên

đó

Trang 39

36

1.3.3.3 Máy chủ phân tán (Distributed Servers)

Trong thực tế, các máy chủ không phải được đặt trong cùng một địa điểm Thông thường, chúng nằm phân tán tại các vị trí địa lý khác nhau Nhưng với người sử dụng - thuê bao đám mây, thì những máy chủ này hoạt động như thể chúng được đặt cùng một nơi

Điều này cho phép các nhà cung cấp dịch vụ tính toán đám mây linh hoạt hơn trong các tùy chọn và đảm bảo an toàn Lấy ví dụ, Amazon có giải pháp tính toán đám mây của mình trong các máy chủ trên toàn thế giới Nếu xảy ra một vấn đề gì đó tại một trang web, gây ra một sự cố, thì dịch vụ này vẫn sẽ được truy cập thông qua một trang web khác Ngoài ra, nếu đám mây cần thêm phần cứng, khi đó không cần phải tăng thêm các máy chủ trong phòng đó mà có thể thêm chúng vào một trang web khác và chỉ cần làm cho nó trở thành một phần của đám mây

1.4 Các dịch vụ dữ liệu đám mây hiện có

Người sử dụng có thể lưu trữ các đối tượng có kích thước từ 1 byte đến 5 gigabyte với số lượng các đối tượng có thể lưu trữ là không giới hạn Mỗi đối tượng lưu trữ trên Amazon S3 được cấu thành từ hai thành phần: siêu dữ liệu (metadata) chứa thông tin cấu trúc dữ liệu và dữ liệu thể hiện (data) là các dữ liệu thật sự chứa các thông tin cần lưu trữ

Trang 40

Đối tượng được lưu giữ trong một khu vực không bao giờ rời khỏi khu vực đó, trừ khi chính người sử dụng chuyển chúng đi Ví dụ, đối tượng được lưu trữ trong EU (Ireland) không bao giờ rời khỏi khu vực EU

Cơ chế xác thực được cung cấp trong Amazon S3 đảm bảo rằng dữ liệu được giữ

an toàn với những truy cập trái phép Đối tượng có thể mang tính riêng tư hoặc công cộng, và các quyền có thể được cấp cho người sử dụng cụ thể Độ tin cậy được Amazon S3 hỗ trợ bởi các mức dịch vụ thỏa thuận

Amazon S3 sử dụng các tiêu chuẩn dựa trên giao diện REST và SOAP được thiết

kế để làm việc với bất kỳ bộ công cụ phát triển Internet nào Giao thức tải về mặc định là HTTP, nhưng Amazon S3 được xây dựng cho phép linh hoạt thêm vào các giao thức hoặc các lớp chức năng Ngoài ra một giao diện giao thức BitTorrent được cung cấp để giảm chi phí

Để đảm bảo an toàn dữ liệu của người sử dụng, Amazon S3 cung cấp một cơ sở hạ tầng lưu trữ có độ bền cao được thiết kế cho việc lưu trữ dữ liệu quan trọng Đối tượng được lưu trữ dư thừa trên nhiều thiết bị trên nhiều phương tiện trong một khu vực Amazon S3 Để giúp đảm bảo độ bền, Amazon S3 thực hiện việc lưu trữ và sao lưu một cách đồng bộ dữ liệu của người sử dụng trên nhiều phương tiện trước khi thông báo hoàn tất việc lưu trữ trên S3 Khi đã lưu trữ, Amazon S3 duy trì độ bền của các đối tượng bằng cách nhanh chóng phát hiện và sửa chữa bất kỳ bản sao lưu bị mất Amazon S3 cũng thường xuyên kiểm tra tính toàn vẹn của dữ liệu được lưu trữ bằng việc tổng kiểm tra Nếu có mất mát được phát hiện, nó được sửa chữa bằng cách sử dụng dữ liệu trong các

Ngày đăng: 27/07/2017, 20:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[14] Tahir Akram, “Developing Java Web Application In Google App Engine”, 19/12/2009, slide on site: www.slideshare.net Sách, tạp chí
Tiêu đề: Developing Java Web Application In Google App Engine
[15] Rick Hightower, “Google App Engine for Java”, 8/2009, http://www.ibm.com /developerworks/java/library/j-gạel/ Sách, tạp chí
Tiêu đề: Google App Engine for Java
[6] Google App Engine Documentation, http://code.google.com/appengine/ Link
[8] Wikipedia, Cloud Computing, http://en.wikipedia.org/wiki/Cloud_computing [9] Amazon, Amazon Web Services, http://aws.amazon.com/ Link
[10] Microsoft, Windows Azure Platform, http://www.microsoft.com/windowsazure/ Link
[11] Wikipedia, Windows Azure, http://vi.wikipedia.org/wiki/Windows_Azure Link
[12] Wikipedia, SQL Azure, http://en.wikipedia.org/wiki/SQL_Azure Link
[13] Wikipedia, AppFabric, http://en.wikipedia.org/wiki/AppFabric Link
[1] Service- Oriented Architecture: Concepts, Technology, and Design – Thomas Erl [2] Anthony T. Velte, Toby J. Velete, PhD. Robert Elsenpeter, Cloud Computing, APractical Approach Khác
[3] George Reese, Cloud Application Architectures Khác
[4] Kyle Roche, Jeff Douglas, Beginning Java Google App Engine Khác
[5] White Paper, 1 st Edition, June 2009, Introduction to Cloud Computing Architecture Khác
[7] David S.Linthicum, Cloud Computing and SOA Convergence in Your Enterprise Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Kiến trúc SOA sử dụng Web Service - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.3. Kiến trúc SOA sử dụng Web Service (Trang 20)
Hình 1.8.  Mô hình đám mây riêng (Private Cloud) - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.8. Mô hình đám mây riêng (Private Cloud) (Trang 30)
Hình 1.9. Mô hình đám mây công cộng (Public Cloud) - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.9. Mô hình đám mây công cộng (Public Cloud) (Trang 30)
Hình 1.11. Các kiểu cung cấp dịch vụ tính toán đám mây - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.11. Các kiểu cung cấp dịch vụ tính toán đám mây (Trang 33)
Hình 1.14. 3 thành phần tạo nền một giải pháp Cloud Computing - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.14. 3 thành phần tạo nền một giải pháp Cloud Computing (Trang 37)
Hình 1.15. Kiến trúc của Windows Azure Storage Service - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.15. Kiến trúc của Windows Azure Storage Service (Trang 43)
Hình 1.16. Kiến trúc của SQL Azure - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 1.16. Kiến trúc của SQL Azure (Trang 46)
Hình 2.4.  Use Case các chức năng - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.4. Use Case các chức năng (Trang 60)
Hình 2.7. Trang chức năng tải tài liệu lên - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.7. Trang chức năng tải tài liệu lên (Trang 63)
Hình 2.10. Mô hình Data Table lưu trữ đối tượng Entity Attribute Value - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.10. Mô hình Data Table lưu trữ đối tượng Entity Attribute Value (Trang 66)
Hình 2.11. Mô hình Metadata chứa thông tin các class - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.11. Mô hình Metadata chứa thông tin các class (Trang 67)
Hình 2.12.  Mô hình liên kết giữa các class entity trong dịch vụ - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.12. Mô hình liên kết giữa các class entity trong dịch vụ (Trang 69)
Hình 2.13.  Các lớp mô phỏng các dữ liệu sẽ được lưu lại - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.13. Các lớp mô phỏng các dữ liệu sẽ được lưu lại (Trang 70)
Hình 2.15.   Biểu đồ hiển thị thông tin về ảnh đại diện - Dịch vụ dữ liệu phục vụ tính toán đám mây
Hình 2.15. Biểu đồ hiển thị thông tin về ảnh đại diện (Trang 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 - Dịch vụ dữ liệu phục vụ tính toán đám mây
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 (Trang 76)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w