Các doanh nghiệp tiêu thụ các ứng dụng cung cấp bởi đám mây công khai. Đó có thể
là m ột ứng dụng được thiết kế để xử lý dữ liệu số tiền phải trả cho nhân viên, hoặc có thể
là m ột hệ thống quản lý quan hệ khách hàng. Bằng cách tận dụng phần mềm được phân
phối theo cách này, một công ty có thể trút bỏ gánh nặng của việc cài đặt và bảo trì ứng
dụng ở các trung tâm dữ liệu riêng tư. Các công ty cũng có thể nhận lợi ích từ việc tiết
kiệm chi phí liên quan đến các phí bản quyền (license), vì hầu hết các nhà cung cấp đám
mây thu phí dựa vào việc tiêu thụ sử dụng (dịch vụ của họ).
12 trang |
Chia sẻ: lylyngoc | Lượt xem: 1516 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Điện toán đám mây cho doanh nghiệp: Phần 2: WebSphere sMash và DB2 Express-C trên đám mây công khai Amazon EC2, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Điện toán đám mây cho doanh nghiệp: Phần 2: WebSphere
sMash và DB2 Express-C trên đám mây công khai Amazon
EC2
Các doanh nghiệp và đám mây công khai
Để hiểu làm thế nào một doanh nghiệp có thể thúc đẩy các dải điện toán đám mây công khai,
quan tâm hai điểm sau:
Các doanh nghiệp tiêu thụ các ứng dụng cung cấp bởi đám mây công khai. Đó có thể
là một ứng dụng được thiết kế để xử lý dữ liệu số tiền phải trả cho nhân viên, hoặc có thể
là một hệ thống quản lý quan hệ khách hàng. Bằng cách tận dụng phần mềm được phân
phối theo cách này, một công ty có thể trút bỏ gánh nặng của việc cài đặt và bảo trì ứng
dụng ở các trung tâm dữ liệu riêng tư. Các công ty cũng có thể nhận lợi ích từ việc tiết
kiệm chi phí liên quan đến các phí bản quyền (license), vì hầu hết các nhà cung cấp đám
mây thu phí dựa vào việc tiêu thụ sử dụng (dịch vụ của họ).
Các doanh nghiệp tận dụng các giải pháp đặt dựa trên đám mây để phân phối các
ứng dụng cho người dùng. Bằng cách làm như vậy, các công ty được giải phòng khỏi
việc bảo trì và không cần các hệ thống sản xuất vì nhà cung cấp đám mây sẵn sàng cho
việc cung cấp tài nguyên cơ sở hạ tầng thỏa mãn yêu cầu những người dùng về mặt ứng
dụng. Mô hình này cũng cung cấp cho việc tăng cường tính thường gặp của các dịch vụ
của một công ty, vì các dịch vụ được phân phối theo cách đám mây công khai có thể truy
cập ở bất kỳ thời gian nào từ bất kỳ máy nào với một kết nối mạng có sẵn.
Bất chấp bối cảnh, một chủ đề thông dụng là dòng giá trị ngầm tới một doanh nghiệp. Các đám
mây công khai rất sạch có thể giúp một doanh nghiệp giảm các chi phí liên quan đến sở hữu
phần mềm và các thành phần cơ sở hạ tầng trung tâm. Kém trực tiếp hơn, dùng đám mây công
khai có thể phân phối giá trị bằng cách cho phép một công ty phản ứng nhanh để thay đổi nhu
cầu về dịch vụ của họ, cho phép các dịch vụ vươn tới các thị trường mới và cho phép các nguồn
nhân lực có giá trị tập trung vào phân phối sáng chế nghiệp vụ, hơn là đơn giản phân phối cơ sở
hạ tầng kỹ thuật mà hỗ trợ doanh nghiệp.
Về đầu trang
IBM và đám mây công khai
IBM là một nhà đóng góp tích cực trong đám mây công khai, cung cấp các giải pháp cho phép
một công ty đạt tới các ứng dụng từ đám mây và nhận các ứng dụng người dùng cuối của họ
bằng cách tận dụng một đám mây công khai. Từ quan điểm một nhà cung cấp ứng dụng, IBM
cung cấp IBM Lotus® Live, IBM Lotus Sametime® Unyte® và các công cụ phát triển phần
mềm đặt trên một đám mây công khai. Bộ công cụ này cho phép các người dùng gặp gỡ, thảo
luận, hợp tác và sáng tạo tất cả bởi tác dụng đòn bẩy của các dịch vụ được cung cấp bởi đám
mây. Ngoài cung cấp các dịch vụ này, tầm nhìn Global Business Service của IBM giúp đỡ các tổ
chức triển khai các dịch vụ mà thúc đẩy cung cấp đám mây công khai để mà phân phối các giá trị
nhiều người muốn lấy.
Phần còn lại của bài này tập trung vào làm thế nào IBM cho phép bạn nhận các ứng dụng hiệu
quả bằng cách tận dụng một cơ sở hạ tầng đám mây công khai. Như đã đề cập ở trước, IBM đóng
gói hàng loạt các đề xuất sản phẩm doanh nghiệp của họ dưới dạng Amazon Machine Images,
bởi thế cho phép việc dùng phần mềm trên cơ sở hạ tầng Amazon EC2 thông dụng. Các IBM
AMI bao gồm:
IBM WebSphere Portal
IBM Lotus Web Content Management Standard Edition
IBM WebSphere sMash
IBM Informix® Dynamic Server Developer Edition 11.5
IBM DB2 Express-C 9.5
Bằng cách đánh dấu phần mềm này sẵn sàng dưới dạng các bản quyền phát triển miễn phí thông
qua cơ sở hạ tầng Amazon EC2. IBM cũng có thể đạt tới một cộng đồng phục vụ hơn 400,000
người dùng và thu hút hơn 80% các nhà phát triển tận dụng các dịch vụ phát triển điện toán đám
mây
Để thêm thông tin về quan điểm của IBM cho các nhà phát triển và điện toán đám mây, hãy thăm
không gian developerWorks Cloud Computing (Điện toán đám mây). Bài viết này tập trung vào
các năng lực Platform (nền tảng) như là một Service (dịch vụ) (PaaS) và Data (dữ liệu) như là
một Service (dịch vụ) lần lượt của WebSphere sMash và DB2 Express-C AMIs.
Về đầu trang
WebSphere sMash và DB2 Express-C
Một cách riêng rẽ, WebSphere sMash và DB2 Express-C là các công cụ mạnh mẽ cho các nhà
phát triển. Dùng WebSphere sMash, bạn có thể tạo các ứng dụng kiểu Web 2.0 dùng các công
nghệ được sử dụng và các mẫu được biết đến rộng rãi như là DOJO, PHP, Groovy và các dịch vụ
REST. DB2 Express-C cung cấp kho dữ liệu hiệu quả, đáp ứng tốt và tin cậy cho dữ liệu doanh
nghiệp và bao gồm cả khả năng quản lý thuần XML (pure XML). Tuy nhiên, một mức cao hơn
của giá trị có thể được nhận ra khi các công nghệ này được kết hợp để giao các ứng dụng Web
phong phú, phản ứng nhanh, hướng dữ liệu.
Ứng dụng mẫu được bao gồm trong bài này minh họa một ứng dụng đặt chỗ trong nhà hàng để
cung cấp khái niệm sơ lược các khả năng sẽ được cung cấp cùng với WebSphere sMash Zero
Resource Model (ZRM) và một cơ sở dữ liệu DB2 Express-C. Các mẫu cho ứng dụng này có thể
dễ dàng được mở rộng để giải quyết dữ liệu phức tạp nhất và các mối quan hệ dữ liệu. The Zero
Resource Model tích hợp với DB2 Express-C được tận dụng để cung cấp một kinh nghiệm tiền
kỳ (phần đầu của quá trình) phong phú được cung cấp sức mạnh bởi một hậu kỳ hạng nhẹ hiệu
quả và dễ đáp ứng.
IBM AMIs được cung cấp với một bản quyền miễn phí, nhưng nhớ là phải kết thúc các thể hiện
khi hoàn thành. Nếu không, bạn sẽ tiếp tục phải trả tiền thuê bao theo giờ của Amazon cho các
thể hiện được đặt trên đó (hosting).
1. Cài đặt AMIs
Để dùng IBM AMIs, bạn phải thi hành các bước sau, điều kiện đầu tiên là:
a. Cài đặt tài khoản Amazon Web Services (AWS) của riêng bạn. Tài khoản này
được dùng để quản lý việc sử dụng EC2 của bạn.
b. Lấy và cấu hình WebSphere sMash AMI và DB2 Express-C AMI. Khi bạn cấu
hình thể hiện DB2 Express-C, dùng các tên người dùng mặc định cho mục đích
minh họa. Đừng tạo cơ sở dữ liệu, các chi tiết đó được mô tả trong phần tiếp theo.
c. Triển khai AMIs vào tài khoản AWS của bạn bằng các cung cấp theo chỉ dẫn.
2. Tạo và kích hoạt cơ sở dữ liệu
Sau khi triển khai cả DB2 Express-C và WebSphere sMash AMIs vào EC2, cấu hình cơ
sở dữ liệu của thể hiện đang chạy DB2 Express-C của bạn. Cơ sở dữ liệu này chứa các
bảng được tận dụng bởi ứng dụng của bạn.
a. Dùng SSH để đăng nhập và xác thực thể hiện DB2 AMI của bạn. Sau khi bạn
đăng nhập vào, chuyển qua người dùng db2inst1 dùng lệnh su - db2inst1 .
b. Tạo cơ sở dữ liệu cho ứng dụng dùng lệnh createDatabase. Từ thư mục
/home/db2inst1/bin, nhập vào lệnh ./createDatabase RSTDB .
Hình 1. Tạo cơ sở dữ liệu
c. Dừng và khởi động lại dịch vụ DB2 để kích hoạt cơ sở dữ liệu mới của bạn.
Chuyển lại người dùng root bằng lệnh su và chạy các lệnh rcdb2 stop và rcdb2
start .
Hình 2. Kích hoạt cơ sở dữ liệu
Sau khi bạn khởi động lại dịch vụ, cơ sở dữ liệu RSTDB được kích hoạt, và thể hiện DB2
Express-C được chạy trên cổng 50001. Cấu hình thể hiện DB2 Express-C của bạn giờ
đây đã hoàn thành. ZRM trong WebSphere sMash được dùng để tích hợp với hậu kỳ, bởi
thế tất cả các bảng của bạn được cấu hình một cách tự động.
3. Cài đặt ứng dụng
Sau khi bạn cài đặt thể hiện WebSphere sMash AMI, đăng nhập vào ứng dụng từ
http://:8070/. Ở đây bạn sẽ tạo ứng dụng WebSphere sMash mà sẽ được
dùng ở ví dụ. Để làm thế, hãy nhấn Create new application để tạo ứng dụng mẫu trong
khung (panel) bên trái của AppBuilder. Khi được nhắc hãy nhập tên
RestaurantSeating. Sau khi tạo ứng dụng, nhấn vào tên ứng dụng ở khung trung tâm
của console để bắt đầu thêm nội dung cho ứng dụng.
4. Tác dụng đòn bẩy Zero Resource Model
ZRM hỗ trợ bởi WebSphere sMash được thiết kế để làm đơn giản triệt để quy trình cung
cấp truy cập kiểu REST tới nơi chứa dữ liệu phía sau. Mô hình hỗ trợ một phương thức
cung cấp truy cập với ít mã và cấu hình. Đơn giản hãy tạo một mô hình dữ liệu và trình
điều khiển tài nguyên mà được gọi để điều khiển các tương tác REST với dữ liệu. Các
trình điều khiển dữ liệu chứa rất ít mã để xử lý dữ liệu vào, và ZRM hoàn toàn ẩn các
tương tác với cơ sở dữ liệu ở phía sau.
a. Để dùng ZRM dưới dạng ví dụ, tạo các mô hình tài nguyên cho dữ liệu của bạn.
Các mô hình tài nguyên này định nghĩa định dạng dữ liệu của các tài nguyên
trong ứng dụng của bạn và được sử dụng bởi ZRM để cung cấp quyền truy cập tới
gian dữ liệu trong cơ sở dữ liệu. Bạn nên đã đăng nhập vào AppBuilder, vì thế có
thể lựa chọn New file => Zero Resource Model in app/models => New form.
Hình 3. Tạo một mô hình tài nguyên mới trong AppBuilder
b. Tạo một mô hình dữ liệu JSON cho mỗi thực thể. Các mô hình JSON này định
nghĩa các thuộc tính cho mỗi tài nguyên của bạn. Điều này bao gồm thông tin về
kiểu dữ liệu của thuộc tính cũng như các thông tin khác như là giá trị mặc định,
chiều dài dữ liệu, và v.v... Bởi vì bạn đang tạo một hệ thống quản lý chỗ trong nhà
hàng, bạn sẽ cần phải tạo các mô hình tài nguyên cho bốn thực thể khác nhau:
Hàng đợi các khách
Các bàn của nhà hàng
Các chỗ ngồi
Các nhân viên hầu bàn.
Trong WebSphere sMash, các mô hình này được khai báo dạng JSON. Bạn có thể
dùng trình soạn thảo thiết kế trong AppBuilder, hoặc bạn có thể nhập trực tiếp các
khai báo JSON của các mô hình tài nguyên. Trong cả hai trường hợp, bạn nên có
bốn tệp JSON được khai báo trong Ví dụ 1.
Ví dụ 1. Các khai báo mô hình tài nguyên
// start patron.json (model for waiting customers)
{
"fields": {
"name": {
"label": "Name",
"required": true,
"type": "string",
"description": "",
"default_value": "",
"max_length": 50
},
"capacity_requested": {
"label": "Number needed",
"required": true,
"type": "integer",
"description": "",
"default_value": ""
},
"seated": {
"label": "",
"required": true,
"type": "string",
"description": "",
"default_value": "false",
"max_length": 5
}
}
}
// end patron.json
// start rest_table.json (model for restaurant tables)
{
"fields": {
"capacity": {
"label": "Capacity",
"required": true,
"type": "integer",
"description": "",
"default_value": ""
},
"table_type": {
"label": "Type",
"required": true,
"type": "string",
"description": "",
"default_value": "",
"max_length": 50
}
}
}
// end rest_table.json
// start waiter.json (model for waiters)
{
"fields": {
"name": {
"label": "Name",
"required": true,
"type": "string",
"description": "",
"default_value": "",
"max_length": 50
}
}
}
// end waiter.json
// start seating.json (model for a seating in the restaurant)
{
"fields": {
"table_id": {
"label": "Table Id",
"required": true,
"type": "integer",
"description": "",
"default_value": ""
},
"patron_name": {
"label": "Patron Name",
"required": true,
"type": "string",
"description": "",
"default_value": "",
"max_length": 50
},
"waiter_name": {
"label": "Waiter Name",
"required": true,
"type": "string",
"description": "",
"default_value": "",
"max_length": 50
}
}
}
// end seating.json
c. Bạn có thể thiết lập các trình điều khiển tài nguyên của bạn bây giờ. Các trình
điều khiển tài nguyên cung cấp truy cập REST tới dữ liệu định nghĩa bởi các mô
hình tài nguyên của bạn, và trong ví dụ này, chúng được triển khai bằng ngôn ngữ
Groovy. Chọn New file => Resource handler trong app/resources để tạo bốn
trình điều khiển tài nguyên, mỗi cái cho mỗi mô hình tài nguyên. Các trình điều
khiển tài nguyên nên có tên giống như các mô hình tài nguyên nhưng phần mở
rộng tệp là .groovy chứ không phải .json. Từ đây, chọn Resource handler trong
app/resources. Có một phương thức onList, onRetrieve, onCreate, onUpdate, và
onDelete trong mỗi trình điều khiển tài nguyên. Mỗi phương thức tương ứng mới
một phương thức HTTP GET, POST, PUT, và DELETE một cách tách biệt. Ví dụ
2 hiển thị một ví dụ của trình điều khiển tài nguyên cho mô hình tài nguyên người
hầu bàn.
Ví dụ 2. waiter.groovy tệp
def onList()
{
ZRM.delegate();
}
def onRetrieve()
{
ZRM.delegate();
}
def onCreate()
{
ZRM.delegate();
}
def onUpdate()
{
ZRM.delegate();
}
def onDelete()
{
ZRM.delegate();
}
d.
e. Khai báo groovy có trước có thể được mà đơn giản hơn bằng cách khai báo các
nội dung toàn bộ của tệp trong một dòng đơn:ZRM.delegate(). Không cần khai
báo mỗi phương thức, nhưng làm như vậy cho phép bạn thêm các mã tùy chọn
vào mỗi phương thức nếu cần.
5. Tạo các bảng cơ sở dữ liệu
Sau khi bạn tạo cả các mô hình và trình điều khiển tài nguyên, bạn có thể dùng các công
cụ dòng lệnh và các tệp cấu hình trong WebSphere sMash để tạo các bảng cơ sở dữ liệu
của riêng bạn.
a. Dùng SSH để đăng nhập vào thể hiện WebSphere sMash AMI và cập nhật tệp
/home/smash/apps/RestaurantSeating/config/zero.config. Thêm tên, địa điểm và
cấu hình của gian dữ liệu phía sau của bạn.
Ví dụ 3. Tích hợp ZRM và DB2 Express-C
/config/db/zero-resource = {
"class" : "com.ibm.db2.jcc.DB2SimpleDataSource",
"driverType" : 4,
"serverName" : "ec2-75-101-207-229.compute-1.amazonaws.com",
"portNumber" : 50001,
"databaseName" : "RSTDB",
"user" : "db2inst1",
"password" : "passw0rd"
}
b.
c. Copy tệp db2cc.jar and db2cc_license_cu.jar vào thư viện ứng dụng WebSphere
sMash. Trong các bước trước, bạn đã cung cấp thông tin được yêu cầu cho ZRM,
bao gồm tên lớp nguồn dữ liệu, vị trí cơ sở dữ liệu và thông tin truy xuất cơ sở dữ
liệu. Tiếp theo, vì bạn đang trỏ vào lớp nguồn dữ liệu
com.ibm.db2.jcc.DB2SimpleDataSource, bạn cần chắc rằng các thư viện DB2
phù hợp sẵn sàng cho WebSphere sMash. Dùng một trình SCP để lấy các tệp
/home/db2inst1/sqllib/java/db2cc.jar và
/home/db2inst1/sqllib/java/db2cc_license_cu.jar từ thể hiện DB2 Express-C
AMIe. Copy các tệp vào thư mục /home/smash/apps/RestaurantSeating/lib. Chạy
zero resolve từ thư mục /home/smash/apps/RestaurantSeating của thể hiện
WebSphere sMash để có các tệp JAR mới thêm vào classpath (đường dẫn tới lớp)
ứng dụng.
d. Một cách tùy chọn, bây giờ bạn có thể định nghĩa các dữ liệu ban đầu của các
bảng cơ sở dữ liệu của bạn. Để tiết kiệm thời gian nhập dữ liệu sau khi tạo các
bảng, bạn có thể dùng một tính năng định nghĩa dữ liệu ban đầu để sinh dữ liệu
khi tạo các bảng. Dữ liệu này được định nghĩa trong tệp initial_data.json, nằm
trong thư mục app/models/fixtures ở trong ứng dụng. Các điểm vào tệp là các thể
hiện của các mô hình tài nguyên mà đã được định nghĩa trong các bước trước. Để
sinh ra các bảng của bạn và sinh dữ liệu ban đầu chạy lệnh zero model sync. Kết
quả là, các bảng được tạo trong thể hiện DB2 Express-C AMI của bạn, và bất kỳ
dữ liệu bạn đã định nghĩa trong tệp initial_data.json sẽ được chèn vào các bảng
sau khi chúng được tạo.
6. Tạo giao diện người dùng
Bây giờ bạn cần phải cho phép các người dùng hệ thống của bạn xem và tương tác với dữ
liệu. WebSphere sMash cung các các widget (trình ứng dụng nhỏ) DOJO mà truy cập dữ
liệu được lưu tận dụng những tiện nghi trong ZRM. Các widget này cung cấp các chức
năng bên ngoài. Bạn có thể đặt chúng ở bất kỳ đâu trong trang HTML của bạn, cung cấp
các thông tin cấu hình cần thiết, và kết quả là một giao diện người dùng mà giao quyền
truy cập tạo, đọc, cập nhật và xóa tới dữ liệu phía sau dùng các trình điều khiển tài
nguyên được tạo ra ở trước.
a. Định nghĩa một DataStore mà tương tác với một trình điều khiển tài nguyên ZRM
và định nghĩa một DataGrid mà tận dụng DataStore. Trong hệ thống quản lý chỗ
nhà hàng, các khách hàng cần có khả năng xem khách đang đợi hiện tại, thêm
khách mới, và xem các chỗ hiện tại (Bạn có thể áp dụng các kỹ thuật tương tự như
dữ liệu chỗ ngồi của bạn -- hoặc bất kỳ dữ liệu nào quan trọng -- được cấu hình để
dùng ZRM.)
Ví dụ 4. DataGrid và DataStore khách hàng
// patron DataStore
<span dojoType="zero.resource.DataStore" id="patronDataStore"
jsId="patronDataStore"
contextRoot="./resources"
resourceCollection="patron">
// patron DataGrid
<div dojoType="zero.grid.DataGrid"
id="patronDataGrid"
visibleFields="name,capacity_requested,id"
store="patronDataStore"
readonly="true"
style="width: 348px; height: 271px;">
b.
c. DataStore tham chiếu tới bộ sưu tập khách hàng (patron.json), và DataGrid tham
chiếu tới DataStore. Hình 4 cho thấy ví dụ của đầu ra.
d.
Hình 4. zero.grid.DataGrid khách hàng
e. Để thêm vào DataGrid hiển thị dữ liệu của bạn, bạn có thể thêm một khách hàng
mới hoặc ngồi vào chỗ một khách hàng đã đặt. Dữ liệu mới có thể được thêm một
cách đơn giản vào gian dữ liệu ở phía sau tận dụng ZRM. (Xem mã mẫu về các
biểu mẫu và các kiểu HTML được dùng để lấy thông tin trong tệp tải xuống được
bao gồm trong bài viết này.)
f.
Ví dụ 5. Thêm một dữ liệu khách hàng
function addPatron() {
dojo.xhrPost({
url: "resources/patron",
form: "addPatronForm",
load: function (data) {
hideAddPatron();
displayWaitingPatrons();
},
// Call this function if an error happened
error: function (error) {
console.error ('Error: ', error);
}
});
}
g.
h. Cho phép giao tiếp với các trình điều khiển tài nguyên ZRM dùng HTML và
JavaScript™. Ví dụ trước dẫn đến kết quả trong một lời gọi tới trình điều khiển
tài nguyên patron.groovy, cái mà ủy nhiệm cho ZRM để điều khiển sinh cơ sở dữ
liệu DB2 với dữ liệu mới. Hình 5 mở rộng các khái niệm được mô tả trước để xác
định việc biểu diễn và cập nhật thông tin về các đặt chỗ hiện tại. Dùng một vài mã
HTML và JavaScript nhỏ hơn dẫn đến giao diện người dùng được chỉ ra trong
Hình 5.
Hình 5. Giao diện người dùng cho hệ thống chỗ ngồi nhà hàng
Kết quả là một giao diện người dùng súc tích, hiệu ứng trực quan và có ý nghĩa mà cho
phép người chủ điều khiển đầy đủ các khía cạnh liên quan đến chỗ ngồi trong nhà hàng.