Giới thiệu về IBM AMI và các công cụ WebSphere sMash,

Một phần của tài liệu TÌM HIỂU ĐIỆN TOÁN ĐÁM MÂY VÀ ỨNG DỤNG WebSphere sMash, DB2 Express-C TRÊN Amazon EC2 (Trang 25)

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.

Làm thế nào IBM cho phép người dùng 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.

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

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 phải kết thúc các thể hiện khi hoàn thành. Nếu không, ta 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).

2.3. Cách dùng của IBM WebSphere sMash và IBM DB2 Express-C Amazon Machine Images để phân phát các ứng dụng Web được đặt trên cơ sở hạ tầng EC2:

2.3.1. Cài đặt AMIs:

Để dùng IBM AMIs, phải thi hành các bước sau, điều kiện đầu tiên là:

− Cài đặt tài khoản Amazon Web Services (AWS) dùng để quản lý việc sử dụng EC2. − Lấy và cấu hình WebSphere sMash AMI và DB2 Express-C AMI. Khi 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. Chưa tạo cơ sở dữ liệu, các chi tiết đó được mô tả trong phần tiếp theo.

− Triển khai AMIs vào tài khoản AWS của bằng các cung cấp theo chỉ dẫn.

2.3.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. Cơ sở dữ liệu này chứa các bảng được tận dụng bởi ứng dụng.

− Dùng SSH để đăng nhập và xác thực thể hiện DB2 AMI của. Sau khi đăng nhập vào, chuyển qua người dùng db2inst1 dùng lệnh su - db2inst1.

− 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

− 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. Chuyển lại người dùng root bằng lệnh su và chạy các lệnh rcdb2stoprcdb2 start.

Hình 2. Kích hoạt cơ sở dữ liệu

Sau khi 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 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 được cấu hình một cách tự động.

2.3.3. Cài đặt ứng dụng:

Sau khi cài đặt thể hiện WebSphere sMash AMI, đăng nhập vào ứng dụng từ

http://<ec2_host>:8070/. Ở đây 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.

2.3.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.

− Để 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á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 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. 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. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3. Tạo một mô hình tài nguyên mới trong AppBuilder

− 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. Đ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ì ta đang tạo một hệ thống quản lý chỗ trong nhà hàng, 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. Ta có thể dùng trình soạn thảo thiết kế trong AppBuilder, hoặc 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, nên có bốn tệp JSON được khai báo trong Ví dụ 1. Các khai báo mô hình tài nguyên như sau:

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

− Ta có thể thiết lập các trình điều khiển tài nguyên ngay 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, 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 về tệp waiter.groovy hiển thị 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.

def onList() {

ZRM.delegate(); }

{ ZRM.delegate(); } def onCreate() { ZRM.delegate(); } def onUpdate() { ZRM.delegate(); } def onDelete() { ZRM.delegate(); }

− 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 thêm các mã tùy chọn vào mỗi phương thức nếu cần.

2.3.5. Tạo các bảng cơ sở dữ liệu:

Sau khi tạo cả các mô hình và trình điều khiển tài nguyê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.

− Dùng SSH để đăng nhập vào thể hiện WebSphere sMash AMI và cập nhật tệp (adsbygoogle = window.adsbygoogle || []).push({});

/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. Ví dụ 3 về 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" }

− 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, đã 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ì đang trỏ vào lớp nguồn dữ liệu com.ibm.db2.jcc.DB2SimpleDataSource, 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.

− Một cách tùy chọn, bây giờ 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. Để tiết kiệm thời gian nhập dữ liệu sau khi tạo các bảng, 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 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, và bất kỳ dữ liệu đã đị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.

2.3.6. Tạo giao diện người dùng:

Bây giờ cần phải cho phép các người dùng hệ thống của 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. có thể đặt chúng ở bất kỳ đâu trong trang HTML của, 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.

− Đị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.

Ví dụ 4. DataGrid và DataStore khách hàng

// patron DataStore

<span dojoType="zero.resource.DataStore" id="patronDataStore" jsId="patronDataStore"

resourceCollection="patron"> </span> // patron DataGrid <div dojoType="zero.grid.DataGrid" id="patronDataGrid" visibleFields="name,capacity_requested,id" store="patronDataStore" readonly="true" style="width: 348px; height: 271px;"> </div>

− 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.

Hình 4. Zero.grid.DataGrid khách hàng

− Để thêm vào DataGrid hiển thị dữ liệu của, 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. 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); }

}); }

− 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.

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.

PHẦN 3. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Điện toán đám mây đã sẵn sàng là một bên quan trọng trong ngành công nghiệp công nghệ bây giờ và trong tương lai. Gần đây nó cung cấp các phương tiện cho công nghệ thông tin được phân phát cho người tiêu dùng như là một dịch vụ. Số lượng các sản phẩm và các đề nghị dịch vụ trong không gian điện toán đám mây tiếp tục phát triển và nhấn mạnh một thực tế là nó là nơi mà mọi thứ đang hướng tới.

Với WebSphere sMash's ZRM, có thể tập trung vào dữ liệu, các mối quan hệ của nó, và làm thế nào các mối quan hệ được giới thiệu tốt nhất tới các người dùng hơn là tập trung vào khía cạnh thấp của giao tiếp cơ sở dữ liệu. Kết hợp những lợi ích trên với các khả năng cơ sở dữ liệu nhanh, dễ điều khiển và dễ hiểu được cung cấp bởi DB2 Express-C, có thể nhận có một kinh nghiệm người dùng phong phú và hướng dữ liệu một cách trực tiếp tới trình duyệt.

Cùng với những kiến thức được tiếp thu trên lớp và sau thời gian nghiên cứu, tìm hiểu thêm, bài thu hoạch này đã nêu được cái nhìn tổng quan về điện toán đám mây – Cloud Computing, những lợi ích – hạn chế cũng như rủi ro khi sử dụng điện toán đám mây. Đồng thời, cũng giới thiệu được các nhà cung cấp dịch vụ điện toán đám mây ngày nay giới thiệu

Một phần của tài liệu TÌM HIỂU ĐIỆN TOÁN ĐÁM MÂY VÀ ỨNG DỤNG WebSphere sMash, DB2 Express-C TRÊN Amazon EC2 (Trang 25)