Điện toán đám mây với Web Amazon Services, Phần 4 : Truyền tin tin cậy với SQS Prabhakar Chaganti Kiến trúc sư trưởng Ylastic, LLC 20 05 2009 Tìm hiểu những khái niệm cơ bản về Amazon SimpleDB (SDB) và khám phá một số chức năng được cung cấp bởi boto, một thư viện mã nguồn mở Python để tương tác với SDB. Trong loạt bài "Điện toán mây với Web Amazon Services" tìm hiểu về điện toán đám mây sử dụng dịch vụ Web Amazon. Khám phá cách các dịch vụ cung cấp, một sự thay thế hấp dẫn cho việc kiến trúc và xây dựng các ứng dụng đáng tin cậy với khả năng mở rộng. Trong bài viết này học về dịch vụ nhắn tin tin cậy và có thể mở rộng được được cung cấp bởi Amazon Simple Queue Service (SQS). Xem thêm bài trong loạt bài này Amazon SQS Amazon Simple Queue Service (SQS) là một khung làm việc truyền tin mở rộng và đáng tin cậy nó làm cho việc tạo, lưu trữ, và lấy các thông điệp trở nên đơn giản. Bạn có thể sử dụng nó như là một cơ sở cho sự gắn kết các ứng dụng dựa trên dịch vụ Web của Amazon của bạn. Sử dụng SQS là cách tuyệt vời để xây dựng các ứng dụng mở rộng trên nền web. Bạn trả phí cho các thông điệp dựa trên lượng sử dụng của bạn. Toàn bộ khung hàng đợi hoạt động bên trong môi trường bảo mật của các trung tâm dữ liệu của chính Amazon. Một số đặc tính cung cấp bởi SQS: Tính tin cậy SQS được xây dựng để lưu trữ các thông điệp SQS một cách dư thừa trên các trung tâm đa dữ liệu và để làm cho chúng luôn sẵn sàng bất cứ khi nào. Tính đơn giản Mô hình lập trình cho việc truy cập và sử dụng SQS rất đơn giản và có thể được sử dụng từ rất nhiều ngôn ngữ lập trình khác nhau. Bảo mật SQS được thiết kế để cung cấp mức độ bảo mật cao. Sự truy cập tới các thông điệp bị giới hạn trong những người dùng có thẩm quyền. © Copyright IBM Corporation 2009 Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Nhẫn hiệu đăng ký Trang 1 của 10 developerWorks® ibm.com/developerWorks/vn/ Tính có thể mở rộng được SQS cho bạn khả năng để tạo các ứng dụng dựa trên hàng đợi mà có thể đọc và viết các thông điệp không giới hạn, không có một giới hạn nào. Rẻ Sử dụng SQS rất kinh tế và là sự thay thế hấp dẫn cho nhu cầu truyền tin của bạn. Phần còn lại của phần này khám phá các khái niệm mà củng cố khung làm việc của SQS. Thông điệp Message Các thông điệp có thể chứa dữ liệu văn bản với dung lượng lên tới 8 KB. Mỗi thông điệp được lưu trữ cho đến khi nó được thu nhận bởi một ứng dụng nào đó. Một giá trị thời gian chờ, theo giây, được chỉ rõ khi ứng dụng đó đọc một thông điệp từ hàng đợi. Điều này hoạt động giống như một cái khóa và để đảm bảo rằng, cho một khoảng thời gian cụ thể: • Thông điệp được nhận sẽ không sẵn sàng cho các ứng dụng khác của hàng đợi. • Thông điệp sẽ chỉ tái xuất hiện trong hàng đợi khi thời gian chờ đã hết, và chỉ nếu, nó không bị xóa bởi tiến trình đọc nó. Werner Vogels CTO của Amazon có một bài thảo luận về các phân tích nguồn gốc cho sự nhất quán cuối cùng trên blog của anh ta (xem Tài nguyên). Các thông điệp được giữ lại trong một thông điệp trong bốn ngày. SQS sẽ tự động xóa bất cứ thông điệp nào ở trong hàng đợi quá bốn ngày. SQS tuân theo mô hình của "nhất quán cuối cùng", nghĩa là bạn có thể gửi một thông điệp tới hàng đợi, nhưng một ứng dụng sử dụng hàng đợi đó có thể không thấy thông điệp đó trong một khoảng thời gian nào đó. Thông điệp cuối cùng sẽ được gửi đi, nhưng đây là một sự cân nhắc quan trọng nếu các ứng dụng của bạn quan tâm đến trật tự của các thông điệp. Một thông điệp bao gồm các phần như trong Bảng 1. Bảng 1. Các phần của một thông điệp Phần Mô tả MessageId Một định danh ID duy nhất tham chiếu tới thông điệp. ReceiptHandle Một trình xử lý duy nhất mà được trả về khi một thông điệp được thu nhận từ hàng đợi. Trình xử lý này là khác nhau với mỗi lần lấy một thông điệp từ hàng đợi. Nó được yêu cầu khi bạn xóa thông điệp. MD5OfBody Mã MD5 của chuỗi thông điệp không bị mã hóa. Body Dữ liệu thực sự của thông điệp. Hàng đợi Queues Các hàng đợi (Queues) là các thùng chứa các thông điệp. Mỗi thông điệp phải chỉ rõ một hàng đợi mà sẽ chứa nó. Các thông điệp được gửi tới hàng đợi sẽ ở đó cho đến khi bạn thực sự xóa chúng. Trật tự của hàng đợi là vào trước, ra trước, nhưng trật từ này không được đảm bảo. Mỗi hàng đợi đều có một thời gian chờ để nhìn thấy là 30 giây. Bạn có thể thay đổi giá trị này cho toàn bộ hàng đợi, hoặc nó có thể được đặt một cách riêng lẻ cho từng thông điệp. Thời gian chờ để nhìn thấy tối đa cho một hàng đợi hay thông điệp là hai giờ (7200 giây). SQS duy trì quyền xóa hàng đợi một cách tự động nếu không có hoạt động thực sự nào trên hàng đợi trong vòng 30 ngày liên tục. Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 2 của 10 ibm.com/developerWorks/vn/ developerWorks® Cân nhắc thiết kế SQS hơi khác một chút so với các khung làm việc hàng đợi thông dụng. Có ba thứ bạn cần cân nhắc trước khi thiết kế ứng dụng dựa trên SQS của bạn: • SQS không đảm bảo trật tự của các trông điệp trong một hàng đợi. Các thông điệp được sắp xếp trong một hàng đợi; chúng không thực sự được lưu trữ theo trật tự mà chúng được thêm vào hàng đợt. SQS sẽ cố để duy trì trật tự trong các thông điệp, nhưng nó không đảm bảo rằng bạn sẽ nhận được các thông điệp theo trật tự chính xác như khi bạn gửi. Nếu trật tự của thông điệp là quan trọng với ứng dụng của bạn, bạn cần phải thêm dữ liệu tuần tự vào mỗi thông điệp. • SQS không đảm bảo sự xóa của một thông điệp trong hàng đợi. Bạn phải thiết kế ứng dụng của bạn sao cho nó không bị ảnh hưởng nếu cùng một thông điệp được xử lý nhiều hơn một lần. Mỗi thông điệp của bạn được lưu trữ trên nhiều máy chủ khác nhau bởi SQS, để cung cấp tính dư thừa và tính sẵn sàng cao. Nếu một trong các máy chủ này không hoạt động trong khi một thông điệp đang bị xóa, bạn có thể nhận được một bản sao của thông điệp trong khi nhận các thông điệp. • SQS không đảm bảo tất cả các thông điệp trong hàng đợi sẽ được trả lại khi được yêu cầu. SQS sử dụng việc lấy mẫu thông điệp dựa trên phân bố ngẫu nhiên có trọng số, và nó trả lại thông điệp chỉ từ những tập con được lấy mẫu của các máy chủ khi bạn yêu cầu các thông điệp. Thậm chí, một yêu cầu cụ thể có thể sẽ không trả lại tất cả các thông điệp trong hàng đợi, nếu bạn tiếp tục nhận thông điệp từ hàng đợi nó sẽ kết thúc việc lấy mẫu tất cả các máy chủ và bạn sẽ nhận được tất cả các thông điệp của bạn. Các phiên bản của API Có hai phiên bản của SQS: phiên bản gốc (2007-05-01) và một phiên bản 2008-01-01. Mỗi phiên bản của API được tham chiếu đến ngày phát hành. API 2007-05-01 sẽ kết thúc vào ngày 06 tháng 05 năm 2009, sau đó chỉ có phiên bản mới nhất của API mới được hỗ trợ. Người dùng nên: • Bắt đầu chuyển dịch các ứng dụng mà họ xây dựng sử dụng phiên bản API cũ càng nhanh càng tốt. • Để giảm thiểu bất cứ sự ngắt quãng nào, sử dụng phiên bản mới nhất của API khi tạo các ứng dụng mới với SQS. Phiên bản 2008-01-01 cập nhật giá cả, nó giảm giá sử dụng SQS cho hầu hết người sử dụng, và bao gồm các tính năng phụ trợ và sự sửa đổi. Tuy nhiên, nó cũng giới thiệu sự thay đổi đáng kể và không tương thích với phiên bản trước. Tất cả các thư viện và công cụ được xây dựng trên phiên bản cần được thay đổi. Một mô tả chi tiết của các thay đổi giữa các phiên bản có trên trang web của SQS (xem Tài nguyên). Bảng giá Bảng giá chi tiết sau đây chỉ cho phiên bản 2008-01-01. (Bạn có thể lấy chi tiết về cấu trúc giá cả cho phiên bản cũ hơn ở trang web của SQS (xem Tài nguyên). Giá được dựa trên: • Số lượng yêu cầu tới SQS, bao gồm những thao tác sau: Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 3 của 10 developerWorks® • • • • • • • • ibm.com/developerWorks/vn/ CreateQueue ListQueues DeleteQueue SendMessage ReceiveMessage DeleteMessage SetQueueAttributes GetQueueAttributes Bảng 2. Giá cho các yêu cầu Kiểu Yêu cầu tới SQS Giá $0.000001 cho một yêu cầu • Khối lượng dữ liệu chuyển đến và đi từ SQS. Việc chuyển dữ liệu giữa SQS và các thể hiện EC2 là miễn phí. Bảng 3. Giá cho việc luân chuyển dữ liệu Kiểu luận chuyển Chuyển tất cả dữ liệu Giá $0.100 cho 1 GB — tất cả dữ liệu chuyển đến $0.170 cho 1 GB — 10 TB dữ liệu đầu tiên chuyển đi trong tháng $0.130 cho 1 GB — 40 TB dữ liệu chuyển đi tiếp theo trong tháng $0.110 cho 1 GB — 100 TB dữ liệu chuyển đi tiếp theo trong tháng $0.100 cho 1 GB — dữ liệu chuyển đi vượt quá 150 TB trong tháng Tham khảo Amazon SQS để biết thông tin về giá cả mới nhật. Bạn cũng có thể sử dụng máy tính Simple Monthly Calculator của Amazon Web Services để tính toán giá thành sử dụng hàng tháng của bạn cho SQS và các dịch vụ khác trên Amazon Web Services (xem Tài nguyên). Bắt đầu với Amazon Web Services và SQS Để bắt đầu khám phá SQS, đầu tiên bạn sẽ phải đăng ký một tài khoản trên Amazon Web Services (xem Tài nguyên). Xem Phần 2 của loạt bài này để biết các chỉ dẫn chi tiết về việc đăng ký tài khoản trên Amazon Web Services. Khi bạn có một tài khoản trên Amazon Web Services, bạn phải bật dịch vụ Amazon SQS cho tài khoản của bạn: 1. Đăng nhập vào tài khoản Amazon Web Services của bạn. 2. Tìm đến trang chủ của SQS. 3. Nhấn Sign Up For Amazon SQS nằm ở bên phải. 4. Cung cấp các thông tin cần thiết và hoàn tất quá trình đăng ký. Tất cả các giao tiếp với bất kỳ dịch vụ nào của Amazon Web Services đều thông qua giao tiếp SOAP hoặc giao tiếp truy vấn. Trong bài này, bạn sử dụng giao tiếp truy vấn bằng thư viện của bên thứ ba. Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 4 của 10 ibm.com/developerWorks/vn/ developerWorks® Bạn cần nhận được các khóa truy cập, cái mà bạn có thể truy cập từ trang thông tin tài khoản của bạn bằng cách lựa chọn View Access Key Identifiers. Bạn bây giờ đã sẵn sàng để sử dụng dịch vụ của Amazon Web Services và đã bật dịch vụ SQS cho tài khoản của bạn. Tương tác với SQS Trong ví dụ này, bạn sử dụng một thư viện Python mã mở tên là boto để làm quen với SQS bằng cách thực thi đoạn mã nhỏ trong một cửa sổ lệnh Python. Cài đặt boto và thiết lập môi trường Tải boto Phiên bản mới nhất, khi viết bài này, là 1.4c. Giải nén vào một thư mục tùy ý. Chuyển tới thư mục này và thi hành setup.py để cài đặt boto vào môi trường Python cục bộ của bạn, như trong Ví dụ 1. Ví dụ 1. Cài đặt boto $ cd directory_where_you_unzipped_boto $ python setup.py install Thiết lập một số biến môi trường để trỏ đến các khóa truy cập dịch vụ của Amazon Web Services. Các khóa truy cập có sẵn trên trang thông tin tài khoản. Ví dụ 2. Thiết lập biến môi trường # Export variables with your AWS access keys $ export AWS_ACCESS_KEY_ID=Your_AWS_Access_Key_ID $ export AWS_SECRET_ACCESS_KEY=Your_AWS_Secret_Access_Key Kiểm tra để đảm bảo rằng mọi thứ được thiết lập đúng đắn bằng cách khởi động một cửa sổ lệnh Python và nhập thư viện boto vào, như trong Ví dụ 3. Ví dụ 3. Kiểm tra thiết lập $ python Python 2.4.5 (#1, Apr 12 2008, 02:18:19) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import boto >>> Khám phá SQS với boto Sử dụng lớp SQSConnection để cung cấp giao diện chính cho sự tương tác với SQS. Môi trường để sử dụng boto là cửa sổ lệnh của Python. Ví dụ này gọi các phương thức khác nhau trên đối tượng SQSConnection và kiểm tra các phản hồi trả về bởi SQS, cái mà sẽ giúp bạn làm quen với API trong khi bạn khám phá các khái niệm nằm sau SQS. Bước đầu tiên là tạo một đối tượng kết nối tới SQS sử dụng các khóa truy cập dịch vụ của Amazon Web Services mà bạn đã nhập vào môi trường làm việc lúc trước. Thư viện boto luôn kiểm tra môi trường trước tiên để xem xem nếu những biến này đã được thiết lập. Nếu chúng đã được thiết lập, boto sử dụng chúng một cách tự động khi nó tạo ra kết nối. Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 5 của 10 developerWorks® ibm.com/developerWorks/vn/ Ví dụ 4. Tạo một kết nối tới SQS >>> import boto >>> sqs_conn = boto.connect_sqs() >>> Cho phần còn lại của bài này bạn có thể sử dụng đối tượng sqs_conn, được tạo ở trên, để tương tác với SQS. Bạn có thể tạo một hàng đợi bằng cách chỉ ra một tên cho nó, cùng với một giá trị thời gian chờ để nhìn thấy. Nếu bạn bỏ qua giá trị chờ, boto sẽ tạo một hàng đợi với giá trị thời gian chờ mặc định là 30 giây. Ví dụ 5. Tạo một hàng đợi >>> >>> >>> 30 >>> >>> >>> 60 >>> q1 = sqs_conn.create_queue('devworks-sqs-1') q1.get_timeout() q2 = sqs_conn.create_queue('devworks-sqs-2', 60) q2.get_timeout() Lấy một danh sách các hàng đợi của bạn, nó sẽ trả lại một đối tượng resultset, đó là một danh sách Python, như trong Ví dụ 6. Bạn có thể lặp qua danh sách này và truy cập tất cả các thông tin cho từng hàng đợi. Ví dụ 6. Liệt kê tất cả các hàng đợi >>> all_queues = sqs_conn.get_all_queues() >>> >>> len(all_queues) 2 >>> >>> for q in all_queues: ... print q.id ... print q.count() ... print q.get_timeout() ... print q.url ... /devworks-sqs-1 0 30 http://queue.amazonaws.com/devworks-sqs-1 /devworks-sqs-2 0 60 http://queue.amazonaws.com/devworks-sqs-2 Bạn phải xóa tất cả các thông điệp trong một hàng đợi trước khi xóa hàng đợi. Phương thức clear() của boto có thể xóa tất cả các thông điệp có trong một hàng đợi. Ví dụ 7. Làm rỗng và xóa các hàng đợi >>> q2.clear() 0 >>> sqs_conn.delete_queue(q2) True >>> Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 6 của 10 ibm.com/developerWorks/vn/ developerWorks® Bạn có thể gửi các thông điệp văn bản với kích thước tối đa là 8 KB tới một hàng đợi. Tạo một thông điệp mới bằng cách sử dụng lớp Message của boto, như trong Ví dụ 8. Ví dụ 8. Gửi một thông điệp >>> from boto.sqs.message import Message >>> >>> m1 = Message() >>> >>> m1.set_body('Hi there devworks!') >>> >>> status = q1.write(m1) >>> >>> print status True >>> Sự thu nhận các thông điệp cho một hàng đợi trả lại một đối tượng result-set là một danh sách Python chứa các đối tượng thông điệp. Mỗi đối tượng thông điệp có một định danh ID duy nhất và một trình quản lý gắn với nó. Khi bạn đọc một thông điệp từ một hàng đợi, thông điệp đó tự động ẩn đi đối với các ứng dụng sử dụng hàng đợi khác cho đến khi thời gian chờ để nhìn thấy hết hạn. Sau khi hết hạn, thông điệp lại xuất hiện trong hàng đợi, cho phép các ứng dụng khác nhận và xử lý nó. Tuy nhiên, nếu thông điệp bí xóa khỏi hàng đợi trước khi thời gian chờ hết hạn, nó sẽ biến mất vĩnh viễn và sẽ không xuất hiện trở lại trong hàng đợi. Ví dụ 9. Lấy một thông điệp >>> msgs = q1.get_messages() >>> >>> len(msgs) 1 >>> >>> for msg in msgs: ... print "Message ID: ",msg.id ... print "Message Handle: ",msg.receipt_handle ... print "Queue ID: ", msg.queue.id ... print "Message Body: ", msg.get_body() ... Message ID: 9a930aaf-87de-48ad-894d-b22dd0b1cd1b Message Handle: Prl0vft3nRjgDDT33svtLnzyPQGWFpRusXdn2v3Lwq+TDtD3hk3aBKbSH1mGc4hzO/VZO IC0RFyAd7MhbJKPGHn3x35CTz9dAQeNoKYAHiwERXc/xrYXBLGngyuJI+kGmbjvIKqA/wpfQpqzPk2bVA== Queue ID: /devworks-sqs-1 Message Body: >>> Hi there devworks! Bạn có thể lấy nhiều hơn một thông điệp bằng cách chỉ rõ số lượng thông điệp bạn muốn. Giá trị mặc địch là một thông điệp. Hãy thêm một thông điệp khác vào hàng đợi và lấy tất cả các thông điệp, như trong Ví dụ 10. Hãy nhớ rằng nó có thể mất cả phút hoặc hơn để một thông điệp mới được thêm vào xuất hiện trong hàng đợi. Ví dụ 10. Lấy nhiều thông điệp >>> m2 = Message() >>> >>> m2.set_body('Still there?') Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 7 của 10 developerWorks® ibm.com/developerWorks/vn/ >>> >>> status = q1.write(m2) >>> >>> print status True >>> >>> msgs = q1.get_messages(10) >>> >>> len(msgs) 2 >>> >>> for msg in msgs: ... print "Message ID: ",msg.id ... print "Message Handle: ",msg.receipt_handle ... print "Queue ID: ", msg.queue.id ... print "Message Body: ", msg.get_body() ... print "*"*80 ... Message ID: 9a930aaf-87de-48ad-894d-b22dd0b1cd1b Message Handle: Prl0vft3nRjgDDT33svtLnzyPQGWFpRusXdn2v3Lwq+TDtD3hk3aBKbSH1mGc4hzO/VZOIC0R FyAd7MhbJKPGHn3x35CTz9dAQeNoKYAHiwERXc/xrYXBLGngyuJI+kGmbjvIKqA/wpfQpqzPk2bVA== Queue ID: /devworks-sqs-1 Message Body: Message ID: Hi there devworks! ce1632b3-0a6e-4ee2-a5b0-b2e9821d150f Message Handle: Prl0vft3nRiRunVNVvjOQEc7Tm+uSBQpW4bZcpFMbzWTDtD3hk3aBKbSH1mGc4hzO/VZOIC0R FxbhtlykUxvNbRQNWJqrMXrxj5m6GwhA7iX0Nu9mqjo+9/hnda8Ou0df+LQ3dOMfXSybzbhed128w== Queue ID: /devworks-sqs-1 Message Body: >>> Still there? Các thông điệp có thể bị xóa bỏ khỏi một hàng đợi bằng cách yêu cầu delete_message(). Nhớ rằng, bạn phải xóa tất cả các thông điệp trong hàng đợi trước khi xóa hàng đợi. Ví dụ 11. Xóa một thông điệp >>> msgs = q1.get_messages() >>> >>> len(msgs) 1 >>> print msgs[0].get_body() Hi there devworks! >>> >>> q1.delete_message(msgs[0]) True >>> Kết luận Bài này đã giới thiệu với bạn dịch vụ SQS của Amazon. Bạn đã tìm hiểu một số khái niệm cơ bản và đã khám phá một số hàm được cung cấp bởi SQS. Bạn nên đọc hướng dẫn ở Amazon SQS Developer Guide để biết thêm thông tin (xem Tài nguyên). Phần 5 của loạt bài " Điện toán đám mây với Amazon Web Services" sẽ xem xét Amazon SimpleDB cho việc xử lý tập dữ liệu trong đám mây. Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 8 của 10 ibm.com/developerWorks/vn/ developerWorks® Tài nguyên Học tập • Tham khảo các phần khác của loạt bài viết này: • Phần 1, "Giới thiệu: Khi nào thì quyết định đi thuê tốt hơn đi mua" • Phần 2, "Lưu trữ trong đám mây với Amazon Simple Storage Service (S3)" • Phần 3, "Máy chủ theo yêu cầu với EC2" • Phần 5, "Xử lý tập hợp dữ liệu trong đám mây với SimpleDB" • Tìm hiểu về Amazon Web Services: • Amazon Simple Storage Service (S3) • Amazon Elastic Compute Cloud (EC2) • Amazon Simple Queue Service (SQS) • Amazon SimpleDB (SDB) • The Service Health Dashboard được cập nhật bởi Amazon và cung cấp trạng thái hiện hành của mỗi dịch vụ. • Các thông tin mới nhất trong thế giới của Amazon Web Services có trong blog. • Đăng ký một tài khoản Amazon Web Services. • Kết nối các nhà phát triển Developer Connection của Amazon Web Services là của ngõ cho tất cả các tài nguyên cho nhà phát triển. • Amazon SQS Developer Guide chứa thông tin về các thành phần của SQS cùng với công dụng nâng cao và cấu hình. • Chuyển đổi phiên bản lên phiên bản API 2008-01-01 của của Amazon SQS (Amazon Articles & Tutorials) mô tả các thay đổi trong phiên bản 2008-01-01. • Sử dụng Simple Monthly Calculator để tính tiền sử dụng EC2 và các dịch vụ khác của Amazon Web Services hàng tháng của bạn. • Tham khảo trang blog của Werner Vogel về thảo luận nguồn gốc sự nhất quán cuối cùng. • Lấy RSS feed cho loạt bài này. • Lấy các tài nguyên bạn cần để nâng cao các kỹ năng của bạn ở Architecture area on developerWorks . • Duyệt technology bookstore để tìm các sách về các chủ đề kỹ thuật. Lấy sản phẩm và công nghệ • Tải phiên bản dùng thử của các sản phẩm của IBM và thực hành trên các công cụ phát triển ứng dụng , các pần mềm trung gian (middleware) từ DB2®, Lotus®, Rational, Tivoli® và WebSphere. Thảo luận • Tham khảo developerWorks blogs và tham gia vào cộng đồng developerWorks. Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 9 của 10 developerWorks® ibm.com/developerWorks/vn/ Đôi nét về tác giả Prabhakar Chaganti Prabhakar Chaganti là CTO của Ylastic, là người đầu tiên thực hiện xây dựng một giao diện thống nhất cho các nhà kiến trúc sư, nhà quản lý và người giám sát của môi trường điện toán đám mây AWS: EC2, S3, SQS và SimpleDB. Ông cũng là tác giả của hai trong số các cuốn sách được xuất bản gần đây, là Xen Virtualization và GWT Java AJAX Programing. Đồng thời ông cũng giành được giải thưởng cao nhất cho hầu hết các sáng tạo ứng dụng máy ảo trong VMware Global Virtual Appliance Challenge © Copyright IBM Corporation 2009 (www.ibm.com/legal/copytrade.shtml) Nhẫn hiệu đăng ký (www.ibm.com/developerworks/vn/ibm/trademarks/) Điện toán đám mây với Web Amazon Services, Phần 4: Truyền tin tin cậy với SQS Trang 10 của 10