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

Luận văn thạc sĩ Điện toán đám mây mô hình kiến trúc hướng dịch vụ

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 (6.57 MB, 103 trang )

14

CHƯƠNG I – KIẾN TRÚC HƯỚNG DỊCH VỤ, ĐIỆN TOÁN
ĐÁM MÂY VÀ BÁO ĐIỆN TỬ
1.1 Kiến trúc hướng dịch vụ
1.1.1 Tổng quan về kiến trúc hướng dịch vụ
Sự phát triển của công nghệ ngày nay đã dẫn đến một môi trường giao tiếp
không đồng nhất giữa các hệ thống phần mềm với nhau. Một vấn đề đặt ra đối với các
tổ chức CNTT là làm sao xây dựng được một kiến trúc phần mềm có khả năng tích
hợp và sử dụng các thành phần mới nhằm giảm thiểu chi phí phát triển và bảo trì hệ
thống phần mềm.
Thực tế hiện nay, chúng ta đã có các kiến trúc như OOP, COM/DCOM,
CORBA, …cùng với nhiều phương thức tích hợp ứng dụng nhanh và tốt hơn. Tuy
nhiên, do đặc tính ràng buộc chặt chẽ giữa các thành phần với nhau khiến cho các kiến
trúc này chưa thật sự hiệu quả. Kiến trúc hướng dịch vụ (SOA) ra đời gần như giải
quyết được những vấn đề khó khăn trong giao tiếp giữa các thành phần.
Về cơ bản, kiến trúc hướng dịch vụ là một cách tiếp cận hay một phương pháp
luận để thiết kế và tích hợp các thành phần khác nhau bao gồm các phần mềm và các
chức năng riêng lẻ thành một hệ thống hoàn chỉnh. Kiến trúc hướng dịch vụ rất giống
với cấu trúc của các phần mềm hướng đối tượng gồm nhiều module. Tuy nhiên, khái
niệm module trong SOA không đơn thuần chỉ là một gói phần mềm hay một bộ thư
viện nào đó. Thay vào đó, mỗi module trong một ứng dụng SOA là một dịch vụ được
cung cấp rải rác ở nhiều nơi khác nhau và có thể truy cập thông qua môi trường mạng.
Nói một cách ngắn gọn, một hệ thống kiến trúc hướng dịch vụ là một tập hợp nhiều
dịch vụ được cung cấp trên mạng, được tích hợp lại với nhau để cùng cộng tác thực
hiện các tác vụ nào đó theo yêu cầu của khách hàng.
1.1.2 Các tính chất của kiến trúc hướng dịch vụ
Kết nối lỏng lẻo
Vấn đề kết nối nói tới một số ràng buộc giữa các module lại với nhau. Có 2 loại
kết nối là lỏng lẻo và chặt chẽ. Các module có tính chất kết nối lỏng lẻo có một số
ràng buộc được mô tả rõ ràng trong khi các module có tính kết nối chặt lại có nhiều


ràng buộc không thể biết trước. Hầu như mọi kiến trúc phần mềm đều hướng đến tính
kết nối lỏng lẻo giữa các module. Mức độ kết nối của hệ thống ảnh hưởng trực tiếp
đến khả năng chỉnh sửa hệ thống. Kết nối càng chặt bao nhiêu thì có nhiều thay đổi
chỉnh sửa khi có sự thay đổi nào đó xảy ra. Mức độ kết nối tăng dần khi bên sử dụng
dịch vụ cần biết nhiều thông tin ngầm định của bên cung cấp dịch vụ để sử dụng dịch
vụ được cung cấp. Nghĩa là nếu bên sử dụng dịch vụ biết vị trí và chi tiết định dạng dữ


15
liệu của bên cung cấp dịch vụ thì quan hệ sẽ càng trở nên chặt chẽ. Ngược lại, nếu bên
sử dụng dịch vụ không cần biết mọi thông tin chi tiết của dịch vụ trước khi triệu gọi
nó thì quan hệ giữa 2 bên càng có tính lỏng lẻo.
Kết nối lỏng lẻo làm cho sự phụ thuộc ở mức tối thiểu. Khi đó, những sự thay
đổi sẽ có ảnh hưởng ít nhất tới hệ thống và hệ thống vẫn có thể hoạt động khi có thành
phần nào đó bị hư hỏng. Tối thiểu hóa sự phụ thuộc giúp hệ thống linh hoạt, và ít xảy
ra sự cố.
Tính kết nối lỏng lẻo giúp gỡ bỏ những ràng buộc điều khiển giữa những hệ
thống đầu cuối. Mỗi hệ thống có thể tự quản lý độc lập nhằm tăng năng xuất, khả năng
mở rộng và khả năng đáp ứng cao. Những thay đổi cài đặt cúng được che dấu đi. Tính
chất kết nối lỏng lẻo đem đến sự độc lập giữa bên cung cấp và bên sử dụng nhưng nó
đòi hỏi các giao diện phải theo chuần và cần một thành phần trung gian quản lý, trung
chuyển yêu cầu giữa các hệ thống đầu cuối.
Tái sử dụng dịch vụ
Bởi vì các dịch vụ được cung cấp trên môi trường mạng và được đăng ký ở một
nơi nhất định nên chúng dễ ràng được tìm thấy và sử dụng lại. Nếu một dịch vụ không
có khả năng tái sử dụng, nó cũng không cần đến giao diện mô tả. Các dịch vụ có thể
được tái sử dụng lại bằng cách kết hợp lại với nhau theo nhiều mục đích khác nhau.
Tái sử dụng lại các dịch vụ còn giúp loại bỏ những thành phần trùng lặp và tăng tốc độ
vững chắc trong cài đặt, nó còn giúp đơn giản hóa việc quản trị. Thực ra tái sử dụng
dịch vụ lại dễ dàng hơn tái sử dụng thành tố hay lớp. Những dịch vụ được dùng chung

bởi tất cả các ứng dụng của một hệ thống SOA gọi là những dịch vụ chia sẻ cơ sở hạ
tầng.
Quản lý chính sách
Tập các chính sách là tập tất cả các qui tắc chung mà mọi thành phần trong hệ
thống đều phải tuân thủ. Khi sử dụng các dịch vụ chia sẻ trên mạng, tùy theo mỗi ứng
dụng sẽ có một luật kết hợp riêng gọi là các chính sách. Các chính sách cần được quản
lý và áp dụng cho mỗi dịch vụ cả trong quá trình thiết kế và trong thời gian triển khai.
Việc đó làm tăng khả năng tạo ra các dịch vụ có đặc tính tái sử dụng. Bởi vì các
chính sách được thiết kế tách biệt, và tùy vào mỗi ứng dụng nên giảm tối đa các thay
đổi phần mềm. Nếu không sử dụng các chính sách, thì các nhân viên phát triển phần
mềm, nhóm điều hành và nhóm hỗ trợ phải làm việc với nhau trong suốt thời gian
phát triển để cài đặt và kiểm tra những chính sách. Ngược lại, nếu sử dụng các chính
sách, những nhân viên phát triển phần mềm chỉ cần tập trung vào quy trình nghiệp vụ
trong khi nhóm điều hành và nhóm hỗ trợ tập trung vào các luật kết hợp.
Tự động dò tìm và ràng buộc động


16
SOA hỗ trợ khái niệm khai thác dịch vụ (service discovery). Một người sử
dụng cần đến một dịch vụ nào đó có thể tìm kiếm dịch vụ dựa trên một số tiêu chuẩn
khi cần. Người sử dụng chỉ cần hỏi một registry về một dịch vụ nào thỏa yêu cầu tìm
kiếm. Ví dụ, một hệ thống chuyển khoản, khách hàng yêu cầu một registry tìm tất cả
các dịch vụ có khả năng kiểm tra thẻ tín dụng. Registry trả về một tập các danh mục
thỏa mãn yêu cầu. Các mục đó chứa thông tin về dịch vụ, bao gồm cả chi phí giao
dịch. Bên sử dụng sẽ chọn một dịch vụ có phí giao dịch thấp nhất trong danh sách các
dịch vụ trả về, kết nối đến nhà cung cấp dịch vụ dựa trên thông tin địa chỉ registry đã
cung cấp để sử dụng dịch vụ kiểm tra thẻ tín dụng. Trong phần mô tả dịch vụ kèm
theo đã có tất cả các tham số cần thiết dùng để thực thi dịch vụ, bên sử dụng chỉ cần
định dạng dữ liệu yêu cầu đúng theo mô tả và gửi đi. Nhà cung cấp dịch vụ sẽ thực thi
kiểm tra thẻ tín dụng và trả về một thông điếp có định dạng đúng như trong phần mô

tả dịch vụ. Mối ràng buộc duy nhất giữa bên cung cấp và bên sử dụng là bản hợp đồng
được cung cấp bởi registry trung gian. Mối ràng buộc này là ràng buộc trong thời gian
chạy. Tất cả thông tin cần thiết về dịch vụ được lấy về và sử dụng trong khi chạy. Vậy
với SOA, bên sử dụng dịch vụ không cần biết định dạng của thông điệp yêu cầu và
thông điệp trả về, cũng như địa chỉ dịch vụ cho đến khi cần.
Khả năng tự hồi phục
Với kích cỡ và độ phức tạp của những hệ thống phân tán ngày nay, khả năng
phục hồi của một hệ thống sau khi bị sự cố là một yếu tố rất quan trọng. Một hệ thống
tự phục hồi là hệ thống có khả năng tự phục hồi sau khi lỗi mà không cần sự can thiệp
của con người.
Độ tin cậy là mức độ đo khả năng của một hệ thống xử lý tốt như thế nào trong
tình trạng hỗn loạn. Trong SOA, các dịch vụ luôn có thể hoạt động hay ngừng hoạt
động bất cứ lúc nào, nhất là đối với những áp dụng tổng hợp từ nhiều dịch vụ của
nhiều tổ chức khác nhau. Độ tin cậy phụ thuộc vào khả năng phục hồi của phần cứng
sau khi bị lỗi. Hạ tầng mạng phải cho phép các kết nối động từ nhiều hệ thống khác
nhau kết nối đến trong khi chạy. Một khía cạnh khác ảnh hưởng đến độ tin cậy là kiến
trúc mà dựa trên đó những ứng dụng được xây dựng. Một kiến trúc hỗ trợ kết nối và
thực thi động sẽ có khả năng tự phục hồi hơn một hệ thống không hỗ trợ những tính
năng trên.
Ngoài ra, những hệ thống dựa trên dịch vụ yêu cầu tách biệt giữa giao diện và
cài đặt, nên có thể có nhiều cài đặt khác nhau cho cùng một giao diện. Nếu một thể
hiện service nào đó không hoạt động thì một thể hiện khác vẫn có thể hoàn tất giao
dịch cho khách hàng mà không bị ảnh hưởng gì. Khả năng này chỉ có được khi client
tương tác với giao diện của dịch vụ chứ không tương tác trực tiếp cài đặt của dịch vụ.
Đây là một trong những tính chất cơ bản của hệ thống hướng dịch vụ.


17
1.1.3 Lợi ích của kiến trúc hướng dịch vụ
Sử dụng mô hình SOA trong việc thiết kế hệ thống mang lại rất nhiều lợi ích về

cả mặt kinh tế và kỹ thuật.
Về mặt kinh tế:
- Doanh nghiệp có điều kiện tập trung thời gian để tìm kiếm các giải pháp cho
các bài toán liên quan đến kinh tế.
- Thúc đẩy khả năng phát triển của hệ thống hiện có cũng như khả năng mở
rộng của hệ thống trong tương lai.
Về mặt kỹ thuật:
- Độc lập hệ thống : những service không phụ thuộc vào hệ thống và mạng cụ
thể.
- Có khả năng tái sử dụng.
- Khả năng hồi đáp thích nghi tốt và nhanh hơn để đáp ứng với sự thay đổi về
yêu cầu giao dịch.
- Cho phép dễ dàng triển khai chương trình, môi trường chạy và quản lý dịch
vụ dễ dàng hơn.
1.1.4 Ưu nhược điểm của kiến trúc hướng dịch vụ
SOA có thể được coi là một kiến trúc ưu việt trong thiết kế và xây dựng hệ thống phần
mềm cho doanh nghiệp bởi:
- Hệ thống uyển chuyển và lâu dài thuận tiện cho việc chỉnh sửa, nâng cấp hoặc
mở rộng hệ thống.
- Dễ dàng và nhanh chóng tạo ra các tiến trình nghiệp vụ từ các service đã có.
- Khả năng tương tác của các service.
Tuy nhiên, bên cạnh những ưu điểm SOA vẫn tồn tại một số yếu điểm như sau:
- Hệ thống phức tạp.
- Khó miêu tả dữ liệu không cấu trúc trong header của message.
- Đặc biệt, khi xây dựng ứng dụng tổng hợp từ nhiều dịch vụ với tính tái sử
dụng cao thì vấn đề bảo mật như: xác thực, phân quyền, bí mật và toàn vẹn dữ liệu,
bảo vệ quyền riêng tư, … trở thành một bài toán hết sức phức tạp và đòi hỏi giải quyết


18

bằng những hướng tiếp cận bảo mật hoàn toàn mới so với các phương pháp bảo mật
truyền thống.
1.1.5 Mô hình hoạt động và kiến trúc chi tiết của SOA
1.1.5.1 Mô hình tổng thể của SOA

Hình 1.1: Mô hình tổng quan của SOA
- Service Provider: Cung cấp các service phục vụ cho một nhu cầu nào đó. User
(service consumer) 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. Họ chỉ cần quan tâm dịch vụ đó là gì.
- Serive Consumer: khách hàng dịch vụ hay những user sử dụng service được
cung cấp bởi Service Provider.
- Service Registry: Nơi lưu trữ thông tin về các service của các Service
Provider khác nhau, Service Consumer 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 Registry. Service Consumer khi có nhu cầu về một service nào đó
sẽ tìm kiếm thông tin trên Service Registry. Ngoài chức năng hỗ trợ tìm kiếm, Service
Registry 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 Consumer. Khi đã xác định được Service
Provider mong muốn, Service Consumer 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.1.5.2 Mô hình giao tiếp bằng thông điệp trong SOA
So với kiểu thiết kế Component-Based (hướng thành phần), đ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 sử
dụng thông điệp (message) dựa trên các giao thức đã được chuẩn hóa (HTTP, FTP,



19
SMTP...). Chính nhờ đặc điểm này, hệ thống SOA trở nên độc lập với nền (platform
independent). Các service hoạt động trê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 đó.

Hình 1.2: Message được truyền nhận giữa các dịch vụ
Sử dụng thông điệp (message) để giao tiếp có các lợi thế sau:
- Độc lập nền: 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 các service trên các
platform khác nhau hoạt động với cấu trúc dữ liệu đặc thù của platform đó.
- Giao tiếp bất đồng bộ: Người gửi và người nhận 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 người gửi và người
nhận 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.
- Giao tiếp tin cậy: các thông điệp từ bên gửi 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ẽ chuyển
tiếp (forward) thông điệp cho bên nhận khi bên nhận 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.
- Quản lý luồng: 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 luồng
(thread) xử lý các công việc khác nhau.
- Giao tiếp từ xa: Các thông điệp lưu trữ thông tin về các đối tượng dữ liệu
dưới 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 gọi từ xa một ứng dụng khác.
- Bảo mật end-to-end: Thông điệp có thể lưu trữ thông tin về hình thức bảo mật
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 bảo mật như
xác thực và phân quyền.



20
1.1.5.3 Kiến trúc phân tầng chi tiết
Hiện nay chưa có một mô hình chính thức nào của SOA. Thật sự SOA là một
phương pháp luận giúp chúng ta tận dụng sức mạnh của các nguồn lực, nguồn tài
nguyên khác nhau trong mạng máy tính để trở thành một hệ thống nhất. Mỗi một công
ty có một mô hình SOA khác nhau. Nhìn chung mô hình SOA có các đặc điểm sau:

Hình 1.3: Kiến trúc chi tiết của SOA
- Tầng Connectivity: đây là tầng thấp nhất của SOA, có nhiệm vụ giao tiếp trực
tiếp với các thành phần khác như cơ sở dữ liệu, giao tiếp với các ứng dụng khác, các
web service… Vì vậy có thể coi đây là tầng vật lý của SOA.
- Tầng Orchestration: là các dịch vụ xử lý các quy trình nghiệp vụ và độc lập
với tầng vật lý phía bên dưới. Tầng orchestration chứa các thành phần đóng vai trò
vừa là dịch vụ sử dụng vừa là những dịch vụ cung cấp. Những dịch vụ này sử dụng
những dịch vụ của tầng kết nối và các dịch vụ orchestration khác để kết hợp những
chức năng cấp thấp hơn thành những dịch vụ hoạt động ở cấp cao hơn, có hành vi gần
với những chức năng nghiệp vụ hơn.
- Tầng Composite Application: là các ứng dụng tổng hợp nhằm mục đích trình
diễn (presentation) và hiển thị thông tin cho người dùng cũng như cung cấp một giao
diện cho người dùng tương tác với hệ thống như là một phần mềm duy nhất. Tầng này
có thể là các website, portal, các ứng dụng client mở rộng (rich client), các thiết bị di
động thông minh (smart device),…
- Các thành phần khác: gồm có quy trình phát triển (development), quản lý các
dịch vụ (service management), và quản lý con người (governance). Như vậy có thể
thấy SOA không chỉ đơn thuần là về mặt công nghệ mà nó là tổng hòa của rất nhiều
yếu tố: công nghệ, cơ sở hạ tầng, con người và quy trình nghiệp vụ.


21


Hình 1.4: Các thành phần tham gia triển khai hệ thống SOA
1.1.6 Qui trình xây dựng hệ thống SOA
1.1.6.1 Thách thức khi xây dựng hệ thống
Cũng như các phương pháp phát triển phần mềm khác, để xây dựng được một
ứng dụng hướng dịch vụ cũng phải trải qua các giai đoạn tương tự. Tuy vậy, dù những
lợi ích đạt được từ hệ thống SOA là rất lớn nhưng việc triển khai một hệ thống SOA
không phải là điều dễ dàng. Từ mô hình tính toán tập trung (mainframe) sang mô hình
phân tán client/server, rồi sau đó là kiến trúc dựa trên nền tảng Web. Và ngày nay quá
trình này vẫn tiếp tục. Chúng ta đang ở thời kỳ quá độ sang mô hình tính toán dựa trên
dịch vụ là kiến trúc hướng dịch vụ. Kiến trúc này ngày nay cũng đã và đang áp dụng
và phát triển cho nhiều doanh nghiệp trên thế giới. Nhưng để xây dựng và triển khai
được hệ thống SOA thì vẫn phải gặp một số vấn đề trở ngại:
Xác định dịch vụ
- Dịch vụ là gì?chức năng nghiệp vụ nào cần được cung cấp bởi một dịch vụ?
Độ mịn(granularity) của một dịch vụ thế nào là tốt?
- Việc xác định dịch vụ và quyết định đối tượng cung cấp dịch vụ một cách
thích hợp, hiệu quả là giai đoạn quan trọng và đầu tiên trong một giải pháp hướng dịch
vụ .Trong thực tế nhiều chức năng nghiệp vụ tương tự nhau có thể được cung cấp bởi
nhiều hệ thống trong một tổ chức.
Phân bổ dịch vụ
- Ta nên đặt dịch vụ ở vị trí nào trong hệ thống?
- Các dịch vụ thường hoạt động dựa trên các thực thể nghiệp vụ.Các đối tượng
này được lưu và quản lí trong hệ thống.Vị trí của các thực thể này cũng là vị trí tốt
nhất để đặt dịch vụ.Tuy nhiên bởi đặc tính của hệ là phân tán nên các đối tượng này


22
phân bố rải rác ở nhiều vị trí và có thể một đối tượng được quản lí ở nhiều nơi.Vì vậy,
đồng bộ dữ liệu giữa các hệ thống trở nên là một yêu cầu quan trọng.Trong môi

trường như thế thì dịch vụ sẽ được đặt ở đâu.
Xác định miền dịch vụ
- Làm sao gom nhóm các dịch vụ thành các miền luận lý(logic domain)
- Việc phân loại gom nhóm các dịch vụ thành các miền luận lý sẽ đơn giản hóa
kiến trúc bởi sẽ giảm được số lượng các thành phần cần xây dựng.Việc định nghĩa các
miền như thế cũng ảnh hưởng đến nhiều khía cạnh khác của kiến trúc hệ thống như
cân bằng tải(load balancing), điều khiển truy cập(access control), sự phân chia theo
chiều sâu hay chiều rộng của xử lý nghiệp vụ.
Đóng gói dịch vụ
- Làm sao có thể bao bọc các chức năng sẵn có của hệ thống cũ vào trong một
dịch vụ.
- Nếu hệ thống khi được thiết kế đã quan tâm và hỗ trợ vấn đề tích hợp với các
hệ thống mới thì vấn đề này sẽ dễ dàng hơn.Tuy nhiên các hệ thống cũ này trước đây
được xây dựng theo mô hình kín, đóng gói trong đó chứa toàn bộ các thông tin về
nguyên tắc và qui trình xử lý thì nay, khi được tích hợp, các thông tin này cần được
chia sẻ và phân bố trong nhiều ứng dụng khác nhau.
Kết hợp các dịch vụ
- Làm sao để có thể tạo ra các dịch vụ tổng hợp.
- Nhu cầu kết hợp nhiều dịch vụ để đáp ứng được yêu cầu phức tạp từ đối
tượng sử dụng là có thực. Vấn đề là làm sao kết hợp các dịch vụ này một cách hiệu
quả, theo những qui trình với những rằng buộc phức tạp.
Định tuyến dịch vụ
- Làm sao để chuyển một yêu cầu từ một đối tượng sử dụng dịch vụ đến dịch
vụ hay miền dịch vụ thích hợp?
- Một hệ thống SOA phải có tính độc lập địa chỉ cho đối tượng sử dụng các
service của hệ thống.Ngoài ra còn phải quan tâm đến vấn đề hiệu suất hoạt động của
hệ thống vì việc định vị một dịch vụ là một quá trình cũng chiếm mất nhiều thời gian
Quản lý dịch vụ
- Vấn đề quản lý và bảo trì các dịch vụ, việc tạo, xây dựng, theo dõi và thay đổi
các dịch vụ như thế nào cho có hiệu quả?



23
- Làm sao để lựa chọn một chuẩn định dạng thông điệp trao đổi giữa các
chuẩn? Làm sao có thể xây dựng một chuẩn định dạng dữ liệu mà mọi hệ thống đều
có khả năng hiểu và xử lý?
Ngoài các khó khăn trên mỗi tổ chức với mỗi đặc thù riêng của mình có thể sẽ
phải đối diện với các vấn đề khác trong quá trình triển khai hệ thống.
1.1.6.2 Vòng đời của hệ thống
Hình vẽ dưới đây mô tả tổng quát các giai đoạn trong chu trình sống của một
hệ thống SOA. Trong đó qui trình hệ thống đi qua 4 giai đoạn chính: Mô hình hóa,
Lắp ghép, Triển khai và Quản lý. Các giai đoạn này đều dựa trên nền tảng của việc
Quản trị và các thực nghiệm.

Hình 1.5: Vòng đời hệ thống SOA
Pha Model - mô hình hóa và thiết kế
Ở pha này, cần tập trung vào những mục tiêu chính như sau:
- Thu thập các yêu cầu sử dụng dịch vụ.
- Mô hình hóa và mô phỏng hệ thống.
- Thiết kế từng dịch vụ ở mức cơ sở
Pha Assemble – Lắp ráp các dịch vụ
- Khai thác
- Xây dựng và thử nghiệm
- Tổ hợp các dịch vụ


24
Pha Deploy – Triển khai
- Tích hợp các nguồn nhân lực
- Tích hợp các tiến trình

- Quản lý và tích hợp thông tin.
Pha Manage – Quản lí
- Quản trị các ứng dụng và các dịch vụ
- Quản lí sự đồng nhất và tính tuân thủ.
- Giám sát các số liệu nghiệp vụ
Governance and best practice – Quản trị và các trải nghiệm thực tế
Đây là công việc xuyên suốt trong cả qui trình vòng đời hệ thống.
- Tính toán về tài chính
- Sắp xếp nghiệp vụ/công nghệ thông tin
- Điều khiển các tiến trình
Các thông tin thu thập được trong pha Manage sẽ được cung cấp trở lại qui
trình phát triển và giúp cải thiện quá trình xây dựng hệ thống, làm cho hệ thống hoàn
chỉnh hơn. Có nghĩa, qui trình là một vòng lặp cho tới khi hệ thống hoàn chỉnh theo
nhu cầu thay đổi của doanh nghiệp và khách hàng.
1.1.6.3 Các pha cơ bản xây dựng hệ thống SOA
Xây dựng hệ thống SOA trải qua 6 pha sau đây:

Hình 1.6: Các bước cơ bản trong xây dựng hệ thống SOA


25
Bước 1: Phân tích hướng dịch vụ (Service-oriented analysis)
Đây là giai đoạn đầu để quyết định phạm vi của hệ thống SOA. Hệ thống gồm
những dịch vụ nào? Tầng dịch vụ là được lược đồ hóa ra (mapped out), và chia dịch
vụ ra thành các mô hình, bao gồm hệ thống SOA sơ bộ.
Bước 2: Thiết kế hướng dịch vụ (service-oriented design)
Đây là giai đoạn có sự kết hợp chặt chẽ về sự thỏa hiệp của doanh nghiệp và
nguyên lý hướng dịch vụ thành quy trình thiết kế dịch vụ. Trong pha này, làm cho
người thiết kế dịch vụ phải đương đầu với giải quyết vấn đề then chốt đó là thiết lập
nên những ranh giới thông qua các dịch vụ. Các tầng dịch vụ là được thiết kế trong

giai đoạn này có thể bao gồm tầng orchestrantion, các kết quả của nó là trong sự xác
định quy trình nghiệp vụ hình thức.
Bước 3: Phát triển dịch vụ (Service development)
Trong bước này là giai đoạn xây dựng thực tế. Ở đây vấn đề về nền tảng phát
triển đi vào hoạt động, không quan tâm tới nó là loại dịch vụ nào. Một cách cụ thể, là
sự lựa chọn ngôn ngữ lập trình và môi trường phát triển sẽ quyết định những mẫu dịch
vụ và quy trình nghiệp vụ orchestrantion nào phù hợp với thiết kế.
Bước 4: Kiểm thử dịch vụ (Service testing)
Để đưa ra những tiềm năng cho việc dùng lại và bao gồm cả những trạng thái
không biết trước được, các dịch vụ là được yêu cầu trải qua được sự nghiêm ngặt của
việc kiểm thử trước khi được triển khai thành các sản phẩm.
Bước 5: Triển khai dịch vụ (Service deployment)
Giai đoạn thực thi này đưa đến việc cài đặt và cấu hình cho các thành phần
phân tán, các giao diện dịch vụ, và nhiều sản phẩm trung gian (middleware products)
kết hợp với nhau thành những server.
Bước 6: Quản trị dịch vụ (Service administration)
Sau khi các dịch vụ được triển khai, vấn đề quản lý các ứng dụng trở thành
hàng đầu, mối quan tâm cho hệ thống phân tán, và các ứng dụng dựa trên các thành
phần (component-based applications), và việc xem xét chúng như các dịch vụ trong
một tổng thể.
1.1.6.4 Các chiến lược xây dựng hệ thống
Nhìn chung có hai phương pháp chính để xây dựng một hệ thống SOA. Cách
đầu tiên là tự tay xây dựng từ đầu hệ thống theo mô hình SOA. Cách thứ hai là xây
dựng SOA dựa vào một bộ thư viện hay một nền tảng có sẵn. Mỗi cách đều có những


26
ưu nhược điểm riêng. Nếu chúng ta tự tay xây dựng ngay từ đầu thì có thể dễ dàng
kiểm soát và tối ưu nó, tuy nhiên chúng ta sẽ phải tốn rất nhiều thời gian, nhân lực và
tiền bạc thì may ra mới có thể xây dựng được một hệ thống SOA hoàn chỉnh, bởi các

hệ thống SOA thoạt nhìn bên ngoài rất đơn giản nhưng lại rất phức tạp ở bên trong.
Ngược lại, nếu xây dựng SOA từ nền tảng có sẵn, chúng ta sẽ có được nhiều cái lợi
như: thời gian phát triển và triển khai nhanh, được hỗ trợ tốt hơn. Bù lại chúng ta sẽ
không thể tự do chỉnh sửa và thay đổi theo ý muốn.
Chiến lược top-down
Trong xây dựng một hệ thống SOA, top-down là chiến lược lấy xuất phát điểm
là các yêu cầu nghiệp vụ, sau đó xác định các yêu cầu chức năng, các tiến trình nghiệp
vụ và các tiến trình con, các ca sử dụng (use cases) và đi tới xác định các thành phần,
các dịch vụ... của hệ thống.

Hình 1.7: Tiếp cận Top-down xây dựng hệ thống
Chiến lược top-down hỗ trợ tạo ra các bước để hình thành tầng dịch vụ (service
layers). Chiến lược này phổ biến để tạo ra những kiến trúc dịch vụ có chất lượng cao,
trong quá trình tạo ra nhiều những nghiệp vụ được sử dụng lại và các dịch vụ ứng
dụng khác.

Hình 1.8: Các bước xây dựng hệ thống theo chiến lược top-down


27
Bước 1: Define relevant ontology
Bước này là để xác định, phân loại các tập thông tin được xử lý bởi các cơ cấu
tổ chức của hệ thống. Các kết quả này là các từ vựng phổ biến, như sự định nghĩa mối
quan hệ giữa các tập thông tin này với tập thông tin khác là như thế nào. Các tổ chức
có phạm vi rộng lớn hơn cùng với nhiều phạm vi nghiệp vụ có thể có vài ontology,
theo mỗi cách quản lý thì các nghiệp vụ chia ra một cách rõ ràng. Nếu có nhiều từ
vựng nghiệp vụ không tồn tại cho bất cứ các tập thông tin nào mà một giải pháp được
yêu cầu thực hiện, thì tại bước này nó sẽ được định nghĩa. Một số lượng đáng kể các
tập thông tin trước và kết quả phân tích nghiệp vụ ở mức cao có thể được yêu cầu.
Bước 2: Align relevant business models (including entity models)

Sau khi ontology được thiết lập, sự tồn tại các mô hình nghiệp vụ có thể cần
thay đổi (hay tạo ra) để thể hiện các từ vựng bằng cách cung cấp ontology trong các
thuật ngữ mô hình nghiệp vụ. Mô hình thực thể chi tiết rất quan trọng.
Bước 3: Perform service-oriented analysis
Xác định các dịch vụ và hướng tiếp cận cho các dịch vụ, mô hình hóa các dịch
vụ.
Bước 4: Perform service-oriented design
Thực hiện thiết kế hướng dịch vụ.
Bước 5: Develop services
Phát triển các dịch vụ theo yêu cầu. Các dịch vụ được phát triển theo những
bản thiết kế kỹ thuật tương ứng với các đặc tả dịch vụ được tạo ra ở bước 4.
Bước 6: Test service operations
Giai đoạn kiểm thử được yêu cầu cho tất cả quá trình hoạt động của dịch vụ và
quá trình kiểm tra phải thực hiện đảm bảo chất lượng. Các dịch vụ vượt qua được sự
kiểm tra coi như đạt chất lượng và có thể tái sử dụng sau này.
Bước 7: Deploy service
Quan tâm tới vấn đề thực thi, xác định tiềm năng tương lai sử dụng lại của dịch
vụ. Để tạo điều kiện cho nhiều người yêu cầu dịch vụ, các dịch vụ sử dụng lại có thể
mở rộng năng lực xử lý và cần có sự bảo mật. Đồng thời, cần phải cung cấp cả khả
năng truy cập cho dịch vụ.
Chiến lược bottom-up


28
Chiến lược này dựa trên việc phân tích tình trạng, các tài nguyên có sẵn của hệ
thống hiện có và tái sử dụng lại những thành phần này trong việc xây dựng các dịch
vụ mới. Sau khi có được các dịch vụ từ những thành phần đó, ta có thể cải tiến chất
lượng dịch vụ hoặc tổ hợp các dịch vụ lại để tạo ra những dịch vụ cao cấp hơn hay còn
gọi là các dịch vụ tổ hợp.


Hình 1.9: Tiếp cận Bottom-up xây dựng hệ thống
Trong hướng tiếp cận này, ta thừa nhận các yêu cầu nghiệp vụ đã tồn tại.

Hình 1.10: Các bước xây dựng hệ thống theo chiến lược bottom-up
Bước 1: Model application services
Kết quả của giai đoạn này là sự định nghĩa của các yêu cầu ứng dụng được thỏa
mãn thông qua việc sử dụng Web service. Các yêu cầu này bao gồm những thiết lập
lên các kênh tích hợp point-to-point giữa hệ thống cũ (legacy system) hoặc giải pháp
B2B (Business-to-Business). Các yêu cầu phổ biến khác sẽ dần xuất hiện để thay công
nghệ truyền thông truyền thống bằng những framework truyền thông điệp SOAP.
Các dịch vụ ứng dụng cũng sẽ được mô hình hóa bao gồm các logic và quy tắc
cho nghiệp vụ cụ thể. Trường hợp này, giống như hai tầng dịch vụ ứng dụng, bao gồm
có các dịch vụ tiện ích và nhân bản.


29
Bước 2: Design applicaion services
Một vài các dịch vụ ứng dụng được mô hình hóa trong bước 1 có thể được trình
bày thành bản thiết kế. Các dich vụ có thể cung cấp thêm vào cho thiết kế. Các dịch
vụ ứng dụng tùy chọn sẽ cần đưa qua quá trình thiết kế, ở một khía cạnh nào đó thì tồn
tại những chuẩn thiết kế được áp dụng để đảm bảo mức độ bền vững.
Bước 3: Deploy application service
Các dịch vụ ứng dụng được phát triển theo sự mô tả dịch vụ và bản thiết kế chi
tiết ứng dụng.
Bước 4: Test service
Các dịch vụ, môi trường kết hợp của chúng, và logic của những hệ thống cũ sẽ
được kiểm tra để đảm bảo chắc chắn rằng xử lý các yêu cầu là phù hợp. Sự thực thi và
tiêu chuẩn kiểm thử được nhấn mạnh thường là thiết lập lên các tham số cho hệ thống
cũ thông qua các dịch vụ. Kiểm tra bảo mật cũng là phần quan trọng của giai đoạn
này.

Bước 5: Deploy services
Những giải pháp và các dịch vụ ứng dụng của nó sẽ triển khai thành sản phẩm.
Sự cân nhắc thực thi cho các dịch vụ ứng dụng thường bao gồm sự thực thi và các yêu
cầu bảo mật.
Hiện xu thế SOA đang phát triển rất mạnh. Và cả hai chiến lược xây dựng hệ
thống top-down và bottom-up đều được áp dụng rộng rãi. Một số hệ thống cũ muốn
nâng cấp hay tích hợp thêm một số dịch vụ hoặc tổ hợp lại với nhau thành một hệ
thống lớn thường sử dụng chiến lược bottom-up để tận dụng cơ sở hạ tầng có sẵn và
tiết kiệm chi phí. Còn hầu hết những hệ thống lớn hiện nay đi vào xây dựng đều theo
định hướng SOA và áp dụng chiến lược top-down, nhằm mục đích đảm bảo khả năng
mở rộng và thường xuyên thay đổi các yêu cầu với hệ thống. Tùy vào từng hệ thống
mà việc xây dựng kiến trúc hướng dịch vụ có thể sử dụng chiến lược phù hợp.

1.2 Điện toán đám mây
1.2.1 Tổng quan về điện toán đám mây
Điện toán đám mây (Cloud Computing) là biểu tượng tượng trưng cho Internet
và thường được sử dụng trong các mô hình, sơ đồ mạng máy tính. Do đó, điện toán
đám mây được hiểu như cách thức áp dụng các kỹ thuật điện toán dựa trên Internet.
Cụ thể hơn, đó là một mô hình mà mọi thông tin đều được lưu trữ, tính toán, xử lý
trong các máy chủ đặt trên Internet. Người sử dụng có thể làm việc với các thông tin
đó mà không cần phải hiểu biết về công nghệ, kỹ thuật và hạ tầng cơ sở của đám mây.


30

Hình 1.11: Mô hình tổng quan về Cloud computing
Với cách thức lưu trữ và xử lý thông tin như vậy, người sử dụng có thể dễ dàng
truy cập vào đám mây chỉ với một ứng dụng có khả năng truy nhập Internet và từ bất
kỳ thiết bị nào, bao gồm máy tính, thiết bị cầm tay, di động, thiết bị giải trí... Ví dụ rõ
ràng nhất về ứng dụng thực tế đang được sử dụng rộng rãi, đại diện cho một ứng dụng

trong mô hình điện toán đám mây, là dịch vụ thư điện tử trực tuyến được cung cấp bởi
nhiều hãng lớn như Hotmail của Microsoft, Yahoo Mail của Yahoo, Gmail của
Google... Với dịch vụ này, người sử dụng chỉ cần trình duyệt web cùng tài khoản cá
nhân đã được đăng ký là có thể thực hiện trao đổi, giao dịch thư điện tử mà không cần
quan tâm đến vấn đề kỹ thuật, phần mềm, hạ tầng do điều đó được đảm bảo bởi các
nhà cung cấp dịch vụ, mà cụ thể ở đây là Microsoft, Yahoo, Google...
Tóm lại, điện toán đám mây là các phát triển dựa vào mạng Internet sử dụng
các công nghệ máy tính. Đây là một kiểu điện toán trong đó những tài nguyên tính
toán và lưu trữ được cung cấp như những dịch vụ trên mạng. Người dùng không cần
biết hay có kinh nghiệm điều khiển và vận hành những công nghệ này.
Điện toán đám mây bao gồm: Dịch vụ cơ sở hạ tầng (IaaS - Infrastructure as a
Service), Nền tảng như một dịch vụ (Paas - Platform as a Service), Phần mềm hoạt
động như dịch vụ (SaaS - Software as a service). Chúng đều dựa vào mạng Internet để
đáp ứng nhu cầu sử dụng của người dùng. Những ví dụ tiêu biểu về điện toán đám
mây là Salesforce.com và Google Apps. Chúng cung cấp những ứng dụng thương mại
trực tuyến, được truy cập thông qua trình duyệt web, trong khi dữ liệu và phần mềm
được lưu trên đám mây.


31
Đám mây là hình ảnh ẩn dụ cho mạng Internet và là sự trừu tượng cho những
cơ sở hạ tầng phức tạp mà nó che giấu.
Điện toán đám mây thường bị nhầm lẫn với điện toán lưới (grid computing một loại hình điện toán phân tán được tạo bởi các mạng máy tính nhỏ hoặc các cặp
máy tính, hoạt động phối hợp với nhau để thực hiện các chức năng rất lớn), điện toán
theo nhu cầu (utility computing - khối những tài nguyên máy tính, như các bộ xử lý và
bộ nhớ, trong vai trò một dịch vụ trắc lượng tương tự với các công trình hạ tầng kỹ
thuật truyền thống) và điện toán tự trị (autonomic computing - các hệ thống máy tính
có khả năng tự quản lý).
Trên thực tế, việc triển khai các cơ sở hạ tầng cho điện toán đám mây dựa trên
các đặc điểm của điện toán lưới, điện toán theo nhu cầu và điện toán tự trị. Điện toán

đám mây có thể được xem như là giai đoạn tự nhiên tiếp theo từ mô hình điện toán
lưới.
1.2.2 Đặc điểm và thành phần của điện toán đám mây
1.2.2.1 Đặc điểm của điện toán đám mây
Điện toán đám mây giúp cho khách hàng không cần phải sở hữu cơ sở hạ tầng.
Họ sẽ chỉ phải trả cho những gì họ sử dụng. Việc chia sẻ giữa nhiều người thuê giúp
tận dụng nguồn tài nguyên máy tính và giảm phí tổn.
Điện toán đám mây có những đặc điểm chính bao gồm:
- Tránh phí tổn cho khách hàng
- Độc lập thiết bị và vị trí
- Cho phép khách hàng truy cập hệ thống từ bất kỳ nơi nào hoặc bằng bất kỳ
thiết bị gì
- Do có nhiều người sử dụng nên điện toán đám mây giúp cho tài nguyên được
chia sẻ, giá thành thấp
- Cho phép tập trung hóa cơ sở hạ tầng, tận dụng hiệu quả các hệ thống và phân
phối theo nhu cầu sử dụng
- Quản lý được hiệu suất, đáng tin cậy. Khả năng mở rộng cao và cải thiện tài
nguyên tốt.


32
1.2.2.2 Thành phần của điện toán đám mây
Về cơ bản, “điện toán đám mây” được chia ra thành 5 lớp riêng biệt, có tác
động qua lại lẫn nhau:

Hình 1.12 : Thành phần của điện toán đám mây
Client (lớp khách hàng)
Lớp Client của điện toán đám mây bao gồm phần cứng và phần mềm, để dựa
vào đó, khách hàng có thể truy cập và sử dụng các ứng dụng/dịch vụ được cung cấp từ
điện toán đám mây. Chẳng hạn máy tính và đường dây kết nối Internet (thiết bị phần

cứng) và các trình duyệt web (phần mềm)….
Application (lớp ứng dụng)
Lớp ứng dụng của điện toán đám mây làm nhiệm vụ phân phối phần mềm như
một dịch vụ thông quan Internet, người dùng không cần phải cài đặt và chạy các ứng
dụng đó trên máy tính của mình, các ứng dụng dễ dàng được chỉnh sữa và người dùng
dễ dàng nhận được sự hỗ trợ.
Các hoạt động được quản lý tại trung tâm của đám mây, chứ không nằm ở phía
khách hàng (lớp Client), cho phép khách hàng truy cập các ứng dụng từ xa thông qua
Website.
Người dùng không còn cần thực hiện các tính năng như cập nhật phiên bản,
bản vá lỗi, download phiên bản mới… bởi chúng sẽ được thực hiện từ các “đám mây”.


33
Platform (lớp nền tảng)
Lớp này cung cấp nền tảng cho điện toán và các giải pháp của dịch vụ, chi phối
đến cấu trúc hạ tầng của “đám mây” và là điểm tựa cho lớp ứng dụng, cho phép các
ứng dụng hoạt động trên nền tảng đó. Nó giảm nhẹ sự tốn kém khi triển khai các ứng
dụng khi người dùng không phải trang bị cơ sở hạ tầng (phần cứng và phần mềm) của
riêng mình.
Infrastructure (lớp cơ sở hạ tầng)
Lớp cơ sở hạ tầng cung cấp hạ tầng máy tính, tiêu biểu là môi trường nền ảo
hóa. Thay vì khách hàng phải bỏ tiền ra mua các server, phần mềm, trung tâm dữ liệu
hoặc thiết bị kết nối… giờ đây, họ vẫn có thể có đầy đủ tài nguyên để sử dụng mà chi
phí được giảm thiểu, hoặc thậm chí là miễn phí. Đây là một bước tiến hóa của mô
hình máy chủ ảo (Virtual Private Server).
Server (lớp server - máy chủ)
Lớp máy chủ bao gồm các sản phẩm phần cứng và phần mềm máy tính, được
thiết kế và xây dựng đặc biệt để cung cấp các dịch vụ của đám mây. Các server phải
được xây dựng và có cấu hình đủ mạnh để đám ứng nhu cầu sử dụng của số lượng

động đảo các người dùng và các nhu cầu ngày càng cao của họ.
1.2.3 Kiến trúc của điện toán đám mây
Điểm chủ yếu trong cơ sở hạ tầng của điện toán đám mây hiện nay bao gồm
các dịch vụ tin cậy được phân phối qua trung tâm dữ liệu và được xây dựng trên các
máy chủ với các công nghệ ảo hóa khác nhau. Các dịch vụ này có thể truy cập được từ
bất kỳ nơi nào trên thế giới, và “đám mây” là điểm truy cập duy nhất đáp ứng tất cả
nhu cầu của người dùng máy tính. Việc cung cấp đám mây phải phù hợp với yêu cầu
của khách hàng về chất lượng dịch vụ và mức độ chấp nhận của dịch vụ. Các tiêu
chuẩn mở và phần mềm nguồn mở cũng quyết định đến sự lớn mạnh của điện toán
đám mây.

Hình 1.13: Kiến trúc của điện toán đám mây


34
Kiến trúc đám mây gồm: nền tảng đám mây (Cloud Platform), các dịch vụ đám
mây (Cloud Service), cơ sở hạ tầng đám mây (Cloud Infrastructure) và lưu trữ đám
mây (Cloud Storage).
1.2.4 Cấu hình cơ bản của ứng dụng đám mây
Các dịch vụ điện toán đám mây thông thường bao gồm 3 cấu hình: Dịch vụ
phần mềm (SaaS), cho phép người dùng truy cập các ứng dụng được cung cấp bởi các
nhà cung cấp dịch vụ đám mây ngoại và nội bộ; Dịch vụ nền tảng (PaaS), các phần
mềm và dịch vụ thiết yếu chạy trên máy chủ hệ điều hành như các công cụ phát triển,
cơ sở dữ liệu, trung gian, phần mềm bảo mật và xác thực; Dịch vụ Cơ sở hạ tầng
(IaaS), cho phép các tổ chức tự cung cấp các hệ điều hành nền như Windows hay
Linux bằng phương thức trả trước. Sử dụng IaaS sẽ giúp giảm thiểu thời gian chờ đợi
cho việc mua và lắp đặt máy chủ cũng như tạo ra một nền tảng kinh doanh mạnh mẽ
cho nhiều tổ chức. Một đặc điểm thiết yếu của điện toán đám mây là “tính đàn hồi”.
Tính đàn hồi này giúp cung cấp hàng trăm dịch vụ cũng như đóng lại khi đã hoàn
thành một cách dễ dàng và nhanh chóng. Khi sử dụng IaaS, các tổ chức gần như

không cần lo lắng về chi phí sau khi đã đóng dịch vụ, cũng giống như việc tiền điện sẽ
không còn được tính sau khi bóng đèn đã tắt. Tính đàn hồi đám mây này được cho là
một yếu tố quan trọng giúp giảm chi phí, từ chuyên môn còn gọi là “bùng nổ đám
mây”.
Mô hình kết nối điện toán đám mây gồm 4 loại: nội bộ, công cộng, lai ghép, và
cộng đồng. Đám mây nội bộ như đã nói ở phần trước được lắp đặt trên mạng lưới nội
bộ của công ty, sử dụng phương thức đa người dùng, và độc quyền cho tổ chức nội bộ.
Trong khi đó, dịch vụ đám mây công cộng có thể được truy cập từ các kết nối internet
toàn cầu, qua đó cơ sở hạ tầng và các dịch vụ cũng được chia sẻ bởi hàng nghìn người
dùng trả trước. Đám mây ghép lai là sự pha trộn có chọn lọc của đám mây cá nhân và
công cộng, còn được gọi là “bùng nổ đám mây”. Bùng nổ đám mây được tạo ra khi
sức chứa của mạng nội bộ bị quá tải và phần công việc chưa thực hiện sẽ được chuyển
sang cho các nhà cung cấp ngoài. Vỡ đám mấy giúp tránh suy thoái dịch vụ trong bối
cảnh các nhu cầu IT dễ biến đổi, cũng như tại các thời điểm nhu cầu tăng cao. Bùng
nổ đám mây được cho là một giải pháp tiềm năng giúp giảm chi phí cho điện toán
đám mây; vì suy cho cùng, không bao giờ nên chi trả cho những gì mà bạn không sử
dụng. Cuối cùng, khái niệm ít phổ biến hơn đó là đám mây cộng đồng – tập hợp các
đám mây của các tổ chức có sự tin cậy và khả năng hợp tác với nhau. Thông thường,
các tổ chức chính phủ và cộng đồng khoa học sử dụng đám mây cộng đồng để chia sẻ
nguồn dữ liệu, trong khi vẫn giữ được tính độc lập nhất định.
1.2.5 Cách thức hoạt động của Điện toán đám mây
Để hiểu cách thức hoạt động của “đám mây”, tưởng tượng rằng “đám mây” bao
gồm hai lớp: Lớp Back-end và lớp Front-end.


35

Hình 1.14: Các lớp Back-end và Front-end của điện toán đám mây
Hạ tầng thiết bị được chứa ở lớp Back-End, và giao diện người dùng của các
ứng dụng được chứa tại lớp Front-End

Lớp Front-end là lớp người dùng, cho phép người dùng sử dụng và thực hiện
thông qua giao diện người dùng. Khi người dùng truy cập các dịch vụ trực tuyến, họ
sẽ phải sử dụng thông qua giao diện từ lớp Front-end, và các phần mềm sẽ được chạy
trên lớp Back-end nằm ở “đám mây”. Lớp Back-end bao gồm các cấu trức phần cứng
và phần mềm để cung cấp giao diện cho lớp Front-end và được người dùng tác động
thông qua giao diện đó.
Bởi vì các máy tính trên “đám mây” được thiết lập để hoạt động cùng nhau, do
vậy các ứng dụng có thể sử dụng toàn bộ sức mạnh của các máy tính để có thể đạt
được hiệu suất cao nhất. Điện toán đám mây cũng đáp ứng đầy đủ tính linh hoạt cho
người dùng. Tuy thuộc vào nhu cầu, người dùng có thể tăng thêm tài nguyên mà các
đám mây cần sử dụng để đáp ứng, mà không cần phải nâng cấp thêm tài nguyên phần
cứng như sử dụng máy tính cá nhân. Ngoài ra, với điện toán đám mây, vấn đề hạn chế
của hệ điều hành khi sử dụng các ứng dụng không còn bị ràng buộc, như cách sử dụng
máy tính thông thường.
1.2.6 Sự khác biệt giữa điện toán đám mây và điện toán truyền thống
Trong mô hình điện toán truyền thống, các cá nhân, doanh nghiệp sẽ xây dựng
riêng cơ sở hạ tầng kỹ thuật để tự cung cấp các dịch vụ cho các hoạt động thông tin
đặc thù của mình. Với mô hình này, mọi thông tin sẽ được lưu trữ, xử lý nội bộ và họ
sẽ trả tiền để triển khai, duy trì cơ sở hạ tầng đó (mua thiết bị phần cứng, phần mềm


36
chuyên dụng, trả lương cho bộ phận điều hành...).Khác với mô hình điện toán truyền
thống, điện toán đám mây lưu trữ và xử lý toàn bộ thông tin trong đám mây Internet.
Mọi công nghệ, kỹ thuật, cơ sở hạ tầng cũng như chi phí triển khai trong đám mây sẽ
do nhà cung cấp đảm bảo xây dựng và duy trì. Do đó, thay vì phải đầu tư từ đầu rất
nhiều tiền cho chi phí xây dựng cơ sở hạ tầng riêng, các cá nhân, doanh nghiệp trong
quá trình hoạt động sẽ chỉ phải trả số tiền vừa đủ theo nhu cầu sử dụng của mình.
Như vậy, mô hình này có rất nhiều lợi ích như sử dụng hợp lý nguồn vốn, điều
hòa chi tiêu tính toán theo thực tế sử dụng, luôn hưởng năng suất tính toán theo cam

kết của nhà cung cấp dịch vụ, tận dụng được sức mạnh của Internet và các siêu máy
tính, giảm cơ bản trách nhiệm quản lý hệ thống CNTT nội bộ.
1.2.7 Mô hình cung cấp dịch vụ điện toán đám mây
Điện toán đám mây không phải là một công nghệ mà là mô hình cung cấp dịch vụ
điện toán đám mây và tiếp thị dịch vụ CNTT đáp ứng các đặc trưng nào đó. Dịch vụ
CNTT được cung cấp qua đám mây được nhóm lại thành ba dạng: Các dịch vụ cơ sở
hạ tầng (Infrastructure as a Service – IaaS); các dịch vụ nền tảng (Platform as a
Service – PaaS) và các dịch vụ ứng dụng (Software as a Service – SaaS).

Hình 1.15: Mô hình dịch vụ điện toán đám mây


37
1.2.8 Các mô hình hạ tầng đám mây
Có ba kiểu hình thành đám mây ứng dụng là: riêng tư, công cộng và lai.

Hình 1.16: Mô hình hạ tầng đám mây
Các đám mây công cộng có sẵn cho công chúng hoặc một nhóm ngành nghề
lớn và do một tổ chức bán các dịch vụ đám mây sở hữu và cung cấp. Một đám mây
công cộng là cái mà người ta hình dung là đám mây theo nghĩa thông thường; đó là,
các tài nguyên được cung cấp động trên Internet bằng cách sử dụng các ứng dụng web
từ một nhà cung cấp bên thứ ba bên ngoài cung cấp các tài nguyên chia sẻ và gửi hóa
đơn tính cước trên cơ sở tính toán việc sử dụng.
Các đám mây riêng tư tồn tại bên trong tường lửa của công ty bạn và do tổ
chức của bạn quản lý. Chúng là các dịch vụ đám mây do bạn tạo ra và kiểm soát trong
doanh nghiệp của mình. Các đám mây riêng tư cũng cung cấp nhiều lợi ích tương tự
như các đám mây công cộng, sự khác biệt chủ yếu là tổ chức của bạn chịu trách nhiệm
thiết lập và duy trì đám mây đó.
Các đám mây lai là một sự kết hợp của đám mây công cộng và riêng tư khi sử
dụng các dịch vụ có trong cả hai vùng công cộng và riêng tư. Các trách nhiệm quản lý

được phân chia giữa các nhà cung cấp dịch vụ đám mây công cộng và chính doanh
nghiệp. Khi sử dụng một đám mây lai, các tổ chức có thể xác định các mục tiêu và các
yêu cầu của các dịch vụ được tạo ra và có được chúng dựa vào sự lựa chọn thích hợp
nhất.


38
1.2.9 Lợi ích của điện toán đám mây
Nói chung trong hầu hết các trường hợp, doanh nghiệp cần phải điều
chỉnh lại chiến lược sử dụng hạ tầng công nghệ thông tin để giảm chi phí sản xuất,
và một trong các xu hướng được tính đến là sử dụng mô hình điện toán đám mây với
những lợi ích điển hình được liệt kê dưới đây:
Giảm chi phí
Mô hình điện toán đám mây có chi phí thấp hơn so với mô hình sử dụng hạ
tầng công nghệ thông tin truyền thống vì phí sử dụng được trả theo dịch vụ và thời
gian, mà khách hàng không phải đầu tư quá nhiều vào cơ sở hạ tầng và giảm được chi
phí vận hành và bảo trì. Còn trong trường hợp mô hình điện toán riêng thì chi phí ban
đầu và chi phí định kỳ thấp hơn nhiều so với mô hình hạ tầng công nghệ thông tin
truyền thống.
Tăng khả năng lưu trữ
Với cơ sở hạ tầng quy mô lớn được do nhà cung cấp mang lại, việc lưu trữ và
bảo trì khối lượng lớn dữ liệu có thể được tiến hành dễ dàng. Việc tăng đột ngột khối
lượng công việc cũng được xử lý hiệu quả, vì các đám mây có thể được mở rộng một
cách dễ dàng và linh hoạt. Khách hàng cũng không phải quan tâm đến các thay đổi
trong công nghệ lưu trữ, điều mà trước kia có thể gây ra vấn đề khi có chuyển đổi lớn
về công nghệ và phương tiện lưu trữ đặc biệt đối với những khối lượng dữ liệu lớn.
Tăng tính linh hoạt
Tính linh hoạt cao là một yêu cầu vô cùng quan trọng trong kinh doanh. Với
các doanh nghiệp phải điều chỉnh nhanh khi điều kiện kinh doanh thay đổi, tốc độ
cung cấp dịch vụ là rất quan trọng. Điện toán đám mây nhấn mạnh vào việc đưa các

ứng dụng và sản phẩm ra thị trường một cách nhanh chóng, bằng cách sử dụng các
modul xây dựng sẵn thích hợp nhất cho việc triển khai.
1.2.10 Ưu nhược điểm của điện toán đám mây
1.2.10.1 Ưu điểm của điện toán đám mây
Tốc độ xử lý nhanh, cung cấp cho người dùng những dịch vụ nhanh chóng và
giá thành rẻ dựa trên nền tảng cơ sở hạ tầng tập trung (đám mây).
Chi phí đầu tư ban đầu về cơ sở hạ tầng, máy móc và nguồn nhân lực của
người sử dụng điện toán đám mây được giảm đến mức thấp nhất.
Không còn phụ thuộc vào thiết bị và vị trí địa lý, cho phép người dùng truy cập
và sử dụng hệ thống thông qua trình duyệt web ở bất kỳ đâu và trên bất kỳ thiết bị nào
mà họ sử dụng (chẳng hạn là PC hoặc là điện thoại di động…).


×