Hoạt động ổn định là yêu cầu bắt buộc đối với hầu hết các hệ thống thông tin. Có nhiều yếu tố ảnh hưởng đến sự ổn định của hệ thống, một trong số đó là khảnăng đáp ứng của hệ thống khi lượng người sử dụng hệ thống biến đổi (tăng lên hay giảm xuống đáng kể trong một thời gian nhất định). Tuy nhiên, mô hình tính toán tập trung với một máy chủ trung tâm cực mạnh để đáp ứng tất cả yêu cầu xử lý đối với một hệ thống bộc lộ một số nhược điểm như: dễ xảy ra tắc nghẽn khi số lượng truy cập tăng đột biến, khả năng chịu lỗi thấp, chi phí đầu tư cao, khó mở rộng…Vì vậy mô hình tính toán phân tán (Distributed Computing), sử dụng kết hợp các hệ thống nhỏ để giải quyết một vấn đề lớn, đã được nghiên cứu phát triển và thể hiện nhiều ưu điểm vượt trội. Các ứng dụng phần mềm lớn cũng được phân tích và chia tách ra thành các thành phần nhỏ có thể hoạt động trên các máy tính độc lập gọi là các thành phần và có khả năng giao tiếp với nhau thông qua hệ thống kết nối để cùng giải quyết một vấn đề chung là hình ảnh của các ứng dụng phân tán (Distributed Application). Tuy nhiên, các hệ thống phân tán vẫn có những rủi ro về khả năng sẵn sàng bởi tính không dự đoán được của lượng yêu cầu mà hệ thống phải xử lý trong một thời điểm đối với mỗi thành phần. Trong phạm vi đề tài này, chúng tôi đưa ra mô hình nhân bản động các ứng dụng thành phần của một ứng dụng phân tán được triển khai trên hệ thống điện toán đám mây. Các quyết định về việc tăng thêm hay giảm bớt số bản sao của các ứng dụng thành phần được đưa ra dựa trên các thông số về tình trạng tải của thành phần đó một cách tự động mà không cần sự can thiệp của người quản trị hệ thống.
LỜI CAM ĐOAN Tôi xin cam đoan luận văn hoàn thành dựa kết nghiên cứu với hướng dẫn, hỗ trợ Thầy hướng dẫn tiến sĩ Ngô Bá Hùng Các công việc nghiên cứu nội dung thực luận văn chưa nộp để lấy cấp từ trường nào, ngoại trừ phần lý thuyết kết từ công trình nghiên cứu khác ghi rõ luận văn Cần Thơ, ngày 10 tháng 11 năm 2012 Người cam đoan Trần Cao Nhân Trang i LỜI CẢM ƠN Lời đầu tiên, em xin chân thành gửi lời cảm ơn tới Thầy, Tiến sĩ Ngô Bá Hùng Những hướng dẫn tận tình, rõ ràng vã phương pháp nghiên cứu Thầy giúp em gặp nhiều thuận lợi trình thực luận văn Nhờ dẫn, định hướng Thầy mà em hoàn thành tốt luận văn Em xin chân thành cảm ơn Thầy! Lời em xin gởi đến Thầy Cô giảng dạy em suốt khóa học Cảm ơn Thầy Cô truyền đạt cho em kiến thức tảng quý giá, giúp em thực tốt luận văn áp dụng vào công việc sau Em xin gởi lời cảm ơn đến Ban chủ nhiệm Khoa Công nghệ Thông tin Truyền thông, Ban giám hiệu Trường đại học Cần Thơ tạo điều kiện thuận lợi cho em suốt khóa học Chúc Thầy Cô khỏe mạnh, hạnh phúc thành đạt! Xin chân thành cảm ơn! Trần Cao Nhân Trang ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC HÌNH ẢNH v TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ vi TÓM TẮT viii ABSTRACT ix CHƯƠNG 1: GIỚI THIỆU 1.1 Giới thiệu vấn đề 1.2 Lịch sử giải vấn đề 1.3 Mục tiêu, đối tượng phạm vi đề tài 1.4 Kết cấu luận văn CHƯƠNG 2: ỨNG DỤNG PHÂN TÁN 2.1 Giới thiệu 2.2 Các loại mô hình kiến trúc ứng dụng phân tán 2.2.1 Mô hình truyền thông điệp 2.2.2 Mô hình khách hàng - phục vụ (client-server) 2.2.3 Mô hình lời gọi thủ tục từ xa - Remote Procedure Call 2.2.4 Mô hình đối tượng phân tán 2.2.5 Mô hình dịch vụ mạng 2.2.6 Mô hình môi giới yêu cầu đối tượng - Object Request Broker 2.2.7 Mô hình không gian đối tượng - Object Space 10 2.3 Công nghệ dựa thành phần 10 CHƯƠNG 3: DỊCH VỤ WEB 11 3.1 Giới thiệu 11 3.2 Các tảng dịch vụ web 12 3.2.1 Service-Oriented Architecture (SOA) 12 3.2.2 Simple Object Access Protocol (SOAP) 13 3.2.3 Extensible Markup Language (XML) 13 3.2.4 Hypertext Transport Protocol (HTTP) 14 3.2.5 Web Services Description Language (WSDL) 14 3.2.6 Universal Description, Discovery, and Integration (UDDI) 15 CHƯƠNG 4: NỘI DUNG NGHIÊN CỨU 17 4.1 Mô hình nhân thành phần ứng dụng phân tán 17 4.2 Mô hình CBM4HTC (Cloud-based Model for High Throught Computing) 19 4.2.1 Nhân động thành phần 19 4.2.2 Trong suốt trình triển khai 21 4.2.3 Giải cạnh tranh 21 4.2.4 Các thành phần chức mô hình CBM4HTC 22 4.3 Cài đặt mô hình CBM4HTC 26 4.3.1 Nhóm dịch vụ thực chức ứng dụng 26 4.3.2 Nhóm dịch vụ quản lý 29 4.4 Mô tả hoạt động hệ thống 33 CHƯƠNG 5: KIỂM THỬ VÀ ĐÁNH GIÁ MÔ HÌNH 35 5.1 Triển khai hệ thống 35 5.2 Đánh giá tính mô hình 36 Trang iii CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 39 6.1 Kết luận 39 6.2 Hướng phát triển 40 TÀI LIỆU THAM KHẢO 41 Trang iv DANH MỤC HÌNH ẢNH Hình 1:Các mô hình kiến trúc ứng dụng phân tán Hình 2: Giao tiếp tiến trình qua thông điệp Hình 3: Mô hình khái niệm mô hình Client - Server Hình 4: Minh họa việc gọi thủ tục từ xa - RPC tiến trình Hình 5: Mô hình lời gọi thủ tục từ xa RMI Hình 6: Mô hình dịch vụ mạng - Network Service Hình 7: ORB đóng vai trò môi giới trung gian Hình 8: Minh hoạt mô hình Không gian đối tượng - Object space Hình 9: Mô hình tương tác người dùng dịch vụ web thông qua máy chủ web Apache Tomcat hoạt MS IIS 10 Hình 10: Mô hình xây dựng ứng dụng cách sử dụng dịch vụ web có sẵn 11 Hình 11: Mô hình Request - Response SOAP 12 Hình 12: Kịch đăng ký, tìm kiếm sử dụng dịch vụ web thông UDDI công cộng15 Hình 13: So sánh ứng dụng phân tán ứng dụng truyền thống 16 Hình 14: Minh họa việc tải thành phần dẫn đến qusa tải UDPT 17 Hình 15: Tăng cường khả phục vụ cho UDPT cách nhân thành phần bị tải 17 Hình 16: Quá trình nhân thành phân dựa kiện tải - Overload máy chủ thực thi thành phần 19 Hình 17: Cơ chế tạo cho máy phục vụ 20 Hình 18: Bộ phân phối - Dispatcher đóng vai trò trung gian người dùng thành phần cung cấp dịch vụ 21 Hình 19: Các thành phần chức ứng dụng phân tán theo mô hình CBM4HTC22 Hình 20: Cài đặt mô hình CBM4HTC Web service 26 Hình 21: Lưu đồ xử lý tác vụ AlarmLoadChanged 30 Hình 22: Mô hình vật lý triển khai thu gọn ứng dụng ĐKMH theo mô hình CBM4HTC 33 Hình 23: Mô hình vật lý triển khai ứng dụng ĐKMH chuẩn theo mô hình CBM4HTC 34 Trang v TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ Thuật ngữ Tiếng Anh viết tắt Tiếng Việt HTC Hight Throughput Computing Tính toán thông lượng cao CBM4HTC Cloud-Base Model For Hight Mô hình ứng dụng tảng điện Thoughput Computing toán đám mây cho Bài toán tính toán thông lượng cao API Application Interface UI User Interface UDDI Universal Description, Tích hợp, khám phá mô tả đa Discovery, an Integration WSDL Web Service Language SOAP Simple Object Access Protocol Giao thức truy cập đối tượng đơn giản VM Virtual Machine Máy ảo DHCP Dynamic Host Configuration Giao thức cấu hình động máy Protocol chủ DA Distributed Application DAA Distributed Architecture SC Service Controller Bộ điều khiển dịch vụ LTS Long Term Support Hỗ trợ lâu dài RPC Remote Procedure Call Lời gọi thủ tục từ xa Programing Giao diện lập trình ứng dụng Giao diện người dùng Description Ngôn ngữ mô tả dịch vụ Web Ứng dụng phân tán Application Kiến trúc ứng dụng phân tán Trang vi RMI Remote Method Invocation Lời gọi phương thức từ xa ORB Object Request Broker Bộ môi giới yêu cầu đối tượng SOA Service Oriented Architecture Kiến trúc hướng dịch vụ Trang vii TÓM TẮT Hoạt động ổn định yêu cầu bắt buộc hầu hết hệ thống thông tin Có nhiều yếu tố ảnh hưởng đến ổn định hệ thống, số khả đáp ứng hệ thống lượng người sử dụng hệ thống biến đổi (tăng lên hay giảm xuống đáng kể thời gian định) Tuy nhiên, mô hình tính toán tập trung với máy chủ trung tâm cực mạnh để đáp ứng tất yêu cầu xử lý hệ thống bộc lộ số nhược điểm như: dễ xảy tắc ngẽn số lượng truy cập tăng đột biến, khả chịu lỗi thấp, chi phí đầu tư cao, khó mở rộng…Vì mô hình tính toán phân tán (Distributed Computing), sử dụng kết hợp hệ thống nhỏ để giải vấn đề lớn, nghiên cứu phát triển thể nhiều ưu điểm vượt trội Các ứng dụng phần mềm lớn phân tích chia tách thành thành phần nhỏ hoạt động máy tính độc lập gọi thành phần có khả giao tiếp với thông qua hệ thống kết nối để giải vấn đề chung hình ảnh ứng dụng phân tán (Distributed Application) Tuy nhiên, hệ thống phân tán có rủi ro khả sẵn sàng tính không dự đoán lượng yêu cầu mà hệ thống phải xử lý thời điểm thành phần Trong phạm vi đề tài này, đưa mô hình nhân động ứng dụng thành phần ứng dụng phân tán triển khai hệ thống điện toán đám mây Các định việc tăng thêm hay giảm bớt số ứng dụng thành phần đưa dựa thông số tình trạng tải thành phần cách tự động mà không cần can thiệp người quản trị hệ thống Từ khóa: Ứng dụng phân tán, Nhân bản, Dynamic replication, Thành phần Trang viii ABSTRACT Stable operation is the compulsory requirement for almost all information systems The system adaptability to changes (remarkable increase or decrease within a certain moment) of visitors is of many factors that influence the stability of a system However, a concentrative calculation model with an extremely powerful concentrative host computer to meet all processing requirements of a system reveals some weaknesses such as easily being stuck when the number of visitors suddenly increases, low adaptability to errors, high investment cost, difficulty in expansion, and so on Therefore, distributed computing model that uses the combination of small systems to solve a big problem has been researched for development, and this model presents a lot of outstanding strengths Big software applications are analyzed and divided into smaller components so that they can run in independent computers that are called components and can communicate with each other through a connection system to jointly solve a common problem dealing with images of distributed applications Even so, distributed systems still have certain risks related to the readiness because of the unexpected characteristics of the number of visitors that the system has to process within a certain moment for each component In this thesis, we are going to provide a dynamic replication model for component applications of a distributed application developed in a cloud computing system Decisions whether to increase or decrease the number of copies of the component applications are presented according to indicators regarding the components’ loading situation automatically, that is, without the administrator’s intervention Key words: Distributed application, Replication, Dynamic replication, Component Trang ix CHƯƠNG 1: GIỚI THIỆU 1.1 Giới thiệu vấn đề Khi triển khai xây dựng hệ thống thông tin phục vụ cho nhiều người sử dụng đồng thời lúc, nhà quản lý thường tính toán khả đáp ứng hệ thống cho số lượng người sử dụng định Con số đưa thông qua tính toán lượng người dùng tối đa truy cập vào hệ thống thời điểm Từ mà người quản lý đưa yêu cầu hệ thống phần cứng (máy chủ, hệ thống mạng ) phần mềm (Apache, Tomcat, MySQL ) để phục vụ người sử dụng Tuy nhiên, việc đầu tư hệ thống dựa số ước lượng người dùng tối đa có số hạn chế định như: ước lượng số thấp chi phí đầu tư cho hệ thống thấp, dễ triển khai hệ thống thường xuyên rơi vào tình trạng tải, phục vụ lượng người sử dụng tăng lên vượt số lượng dự trù trước (đặc biệt ứng dụng trực tuyến) Nhưng ước lượng số lượng người dùng tối đa lớn chi phí đầu tư ban đầu cao hệ thống thường xuyên trạng thái nhàn rỗi, không sử dụng hế công suất đầu tư gây lãng phí tài nguyên Trong thực có ứng dụng mà số lượng người sử dụng tăng lên đột biến khoảng thời gian mà người cung cấp dịch vụ không lường trước đầu tư mở rộng sở hạ tầng để đáp ứng yêu cầu thực tế Một số ví dụ ứng dụng loại như: ứng dụng đăng ký mua vé tàu, xe qua mạng, ứng dụng đăng ký môn học trực tuyến trường đại học, ứng dụng kê khai thuế qua mạng, ứng dụng bán hàng nhà bán lẻ trực tuyến Chúng gọi chung ứng dụng Ứng dụng đăng ký trực tuyến thuộc lớp toán tính toán thông lượng cao (HTC- High Througput Computing) Đặc điểm Ứng dụng đăng ký trực tuyến số lượng khổng lồ người dùng đột ngột truy cập đồng thời đến ứng dụng khoảng thời gian (lễ, tết, đầu học kỳ năm học, cuối năm tài chánh, có đợt khuyến mãi…) làm tải máy chủ triển khai ứng dụng làm tê liệt ứng dụng Giải pháp để khắc phục tình trạng nhà cung cấp dịch vụ phải đầu tư thật nhiều máy chủ, để tăng khả tiếp nhận người dùng hệ thống Tuy nhiên điều trở nên lãng phí phần lớn thời gian lại có người truy cập vào hệ thống nhà cung cấp dịch vụ không sẵn lòng để thực việc đầu tư Giải pháp khác sử dụng công nghệ điện toán đám mây, để tận dụng lực server nhàn Trang RegistrationInfo: cung cấp chức đăng ký môn học cho sinh viên, kết đăng ký thời khóa biểu sinh viên học kỳ Ở thành phần cần có dịch vụ Web làm nhiệm vụ Dispatcher dịch vụ web làm nhiệm vụ Worker Trong phần tiếp theo, dùng ký pháp sau để xác định tên gọi thành phần: Si.D: Dịch vụ web làm Dispatcher thành phần Si Si.Wj: Dịch vụ web làm Worker thứ j thành phần Si Si.D.Oj : Tác vụ Oj cung cấp Dispatcher Si.D Si.Wj.Ok: Tác vụ Ok cung cấp Woker thứ j Si Trang 27 Hình 4.20: Cài đặt mô hình CBM4HTC Web service 4.3.1.1 Triệu gọi dịch vụ chức Vì có nhiều Worker thực chức thành phần, việc triệu gọi tác vụ thực theo mô hình bước mô tả sau đây: (Si.W1.Ox Wk Sj.Wk.Oy):= Sj.D.GetHost(); (Sj.Wk.Oy) Để thực tác vụ Oy dịch vụ Si, Ox gọi tác vụ GetHost() phân phối Dispatcher Si Dựa vào danh sách Worker phục vụ, kết hợp với giải thuật cân tải, GetHost() trả địa Worker phục vụ tốt yêu cầu Ox, trường hợp Wk Sau Ox gọi tác vụ Oy Wk cách triệu gọi dịch vụ web thông thường Đối với Worker thuộc loại cập nhật liệu có chế đồng liệu dành cho Worker này1 4.3.1.2 Các tác vụ quản lý trạng thái Worker Ngoài việc thực chức điều hướng, Dispatcher hỗ trợ tác vụ sau phép quản lý dịch vụ ServiceController thao tác lên danh sách Worker phục vụ tải Dispatcher Các tác vụ bao gồm: AddNewWorker(IP-Address): đưa Worker vào danh sách Worker phục vụ Dispatcher RemoveWorker(IP-Address): đưa Worker khỏi danh sách Worker phục vụ Dispatcher AddOverLoadWorker(IP-Address): Chuyển Worker từ danh sách phục vụ sang danh sách Worker bị tải AddNormalLoadWorker(IP-Address): Chuyển Worker từ danh sách bị tải sang danh sách Worker phục vụ Đề tài Nguyễn Hữu Lộc thực Trang 28 CheckAvailable(IP-Address): kiểm tra trạng thái sẵn sàng phục vụ khác Worker có địa IP-Address Các Worker bị tải phục vụ yêu cầu mà tiếp nhận trước đó, không Dispatcher gởi thêm yêu cầu Khi Một Worker tải chuyển sang trạng thái tải bình thường (do LoadMonitor báo cho ServiceController), ServiceController chuyển trở lại danh sách Worker phục vụ 4.3.1.3 Điểm truy cập cho ứng dụng Để dễ dàng cho người dùng truy cập vào ứng dụng, ứng dụng phân tán thường công bố địa điểm truy cập vào ứng dụng, ví dụ địa trang chủ ứng dụng Khi số lượng người dùng truy cập đồng thời vào ứng dụng tăng lên vượt khả tiếp nhận máy chủ thực trang chủ làm cho ứng dụng rơi vào tình trạng tải Vì thành phần thực thi chức trang chủ phải cài đặt thành Dispatcher Worker Địa truy cập vào ứng dụng công bố bên lúc địa Dispatcher, ta sử dụng tên ApplcationDispatcher để phân biệt Dispatcher với Dispatcher lại ứng dụng Các chức thành phần làm trang chủ cài đặt Worker, gọi HomePageWorker Khi người dùng truy cập vào địa URL ApplcationDispatcher, chọn HomePageWorker để phục vụ người dùng, chế nhân bản, theo dõi tải HomePageWorker hoàn toàn Worker thông thường khác mà giới thiệu phần trước Từ HomePageWorker, người dùng truy cập sử dụng chức như: xem thông tin sinh viên, xem chương trình đào tạo kế hoạch học tập, xem danh sách môn học mở học kỳ, danh sách nhóm môn thời khóa biểu nhóm 4.3.2 Nhóm dịch vụ quản lý Các dịch vụ nhóm thực chức thành phần ServiceController mô hình () Bao gồm chức sau đây: ServiceController { void AlarmLoadChanged(IP-Address, LoadType, OldLoadStatus, NewLoadStatus); void UpdateLoadInfo(IP, CPU-Status, Ram-Status, Tomcat- Trang 29 Status, MySQL-Status); } 4.3.2.1 Chức cảnh báo có thay đổi trạng thái Worker – AlarmLoadChanged Mỗi có thay đổi trạng thái tải Worker, theo dõi trạng thái () thực lệnh gọi tới chức AlarmLoadChanged ServiceController để thông báo trạng thái Worker Bộ quản lý dịch vụ ServiceController phân tích tình trạng tải cảnh báo, sau áp tùy theo thực trạng hệ thống mà đưa định: Nhân thêm Worker bị tải: áp dụng trường hợp Worker bị tải nào, tình trạng tải cách gọi tác vụ Dispatcher.CheckAvailable(IP) ServiceController gọi tới dịch vụ quản lý máy ảo, yêu cầu tạo cho Worker báo tải, kết trả lời gọi địa IP tạo IP=MachineManager.CreateMachine() ServiceController thực việc thêm địa Worker vào danh sách quản lý Sau đó, thực gọi tới chức bổ sung máy vào danh sách phục vụ Dispatcher quản lý loại Worker Worker sẵng sàng phục vụ yêu cầu người dùng từ lúc Dispatcher.AddNewWorker (IP) Worker tải di chuyển từ danh sách sẵn sàng phục vụ sang danh sách Worker tải Các Worker thuộc danh sách tải phục vụ thêm yêu cầu thoát khỏi tình trạng tải Dispatcher.RemoveReadyWorker(IP) Dispatcher.AddOverLoadWorker(IP) Chuyển Worker trạng thái tải mà không nhân thêm Trang 30 mới: áp dụng trường hợp Worker tải khác tình trạng bình thường nhàn rỗi Dispatcher.AddOverLoadWorker(IP) Chuyển Worker trạng thái sẵng sàng phục vụ: áp dụng trường hợp Worker báo tải, sau thời gian ngắt khỏi danh sách sẵn sàng phục vụ, thoát khỏi trạng thái tải trở lại bình thường Dispatcher.AddNormalLoadWorker (IP) Tắt Worker giải phóng tài nguyên cho hệ thống: trường hợp Worker không phục vụ khoảng thời gian xác định, lúc Worker chuyển sang trạng thái nhàn rỗi ServiceController kiểm tra danh sách sẵn sàng phục vụ Dispatcher quản lý Worker để định có tắt Worker để giải phóng tài nguyên hay không if (Dispatcher.CheckAvailable(IP)){ Dispatcher.RemoveWorker(IP); MachineManager.DeleteMachine(IP); } Trang 31 Chú thích LoadStatus Giá trị Ý nghĩa Idle Normal Overload Hình 4.21: Lưu đồ xử lý tác vụ AlarmLoadChanged 4.3.2.2 Chức cập nhật trạng thái tải định kỳ cho Worker – UpdateLoadInfo Theo định kỳ, thời gian hoạt động theo dõi tải LoadMonitor gởi thông tin trạng thái tải Worker cho quản lý dịch vụ ServiceController để cập nhật lại thông số tình trạng hoạt động Worker (phần trăm CPU sử dụng, phần trăm nhớ RAM sử dụng, số kết nối tới Tomcat server, số kết nối tới sở liệu MySQL server) Các thông số sử dụng giải thuật điều hướng cân tải Dispatcher UpdateLoadInfo (CPU-Status, RAM-Status, Tomcat-Status, MySQL-Status); Trang 32 4.4 Mô tả hoạt động hệ thống Bước Khởi tạo kết nối tới Dispatcher dịch vụ Bước Khởi tạo kết nối tới dịch vụ từ địa Worker nhận Bước Gọi hàm GetHost từ Dispatcher để lấy địa Worker cung câp dịch vụ Bước Gọi tác vụ từ kết nối khởi tạo Hình 4.22: Quá trình gọi tác vụ từ dịch vụ Khi người dùng muốn sử dụng tác vụ cung cấp dịch vụ đó, ví dụ xem thông tin sinh viên – GetStudentInfo() dịch vụ StudentInfo, kết nối tới Dispatcher dịch vụ StudentInfo khởi tạo Sau đó, tác vụ getHost() Dispatcher gọi để trả Worker có trạng thái tốt để phục vụ yêu cầu người dùng Tiếp theo kết nối khác khởi tạo kết nối tới dịch vụ StudentInfo Worker có địa kết tác vụ getHost() Nếu nối kết thành công, đối tượng sinh viên tạo cách gọi tác vụ getsinhvien() Bảng 4.1: Minh họa việc gọi tác vụ dịch vụ StudentInfo thông qua Dispatcher Dòng Mã lệnh … dispatcher.Dispatcher service = new dispatcher.Dispatcher(“http://" + host + ":8080/axis2/services/Dispatcher?wsdl”); dispatcher.DispatcherPortType port = service.getDispatcherHttpSoap11Endpoint(); String ip = port.getHost(); … thongtinsv.ThongTinSV service2 = new thongtinsv.ThongTinSV(“http://" + ip + Trang 33 ":8080/axis2/services/ThongTinSV?wsdl”); thongtinsv.ThongTinSVPortType port2 = service2.getThongTinSVSOAP11PortHttp(); thongtinsv.xsd.SinhVien sv = port2.getSinhVien(idSV); … Đối với dịch vụ ScheduleInfo, RegistrationInfo trình gọi tác vụ thực tương tự Trang 34 CHƯƠNG 5: KIỂM THỬ VÀ ĐÁNH GIÁ MÔ HÌNH 5.1 Triển khai hệ thống Chúng triển khai ứng dụng Đăng ký môn học trực tuyến xây dựng theo mô hình CBM4HTC mô tả chương Tất thành phần ứng dụng thành phần quản lý đề cài đặt dạng dịch vụ web Nền tảng chọn để triển khai hệ điều hành mã nguồn mở Ubuntu Server 12.04 LTS, cài đặt máy ảo Các máy tạo hệ thống Cloud nội bộ1 Để thu gọn hệ thống, gom dịch vụ quản lý điều hướng lại để triển khai chung máy ảo Các dịch vụ thực thức ứng dụng như: thông tin sinh viên – StudentInfo, thông tin môn học, nhóm học – ScheduleInfo, dịch vụ đăng ký – RegistrationInfo, thông tin chương trình đào tạo, kế hoạch học tập – CoursInfo; dịch vụ triển khai máy ảo để phục vụ cho phần thực nghiệm nhân Số lượng máy ảo cần thiết để triển khai hệ thống lúc ban đầu tùy vào đánh giá nhu cầu người sử dụng ứng dụng nhà cung cấp dịch vụ Nhà cung cấp dịch vụ triển khai nhiều dịch vụ máy ảo để tiết kiệm tài nguyên Tuy nhiên việc làm giảm tính mềm dẻo hệ thống nhân thành phần tải mà lúc dịch vụ gây tải cần nhân dịch vụ triển khai chung máy nhân theo Hình 5.22: Mô hình vật lý triển khai thu gọn ứng dụng ĐKMH theo mô hình Đề tài Dương Văn Nhân thực Trang 35 CBM4HTC Hình 5.23: Mô hình vật lý triển khai ứng dụng ĐKMH chuẩn theo mô hình CBM4HTC Trong trình hoạt động, dịch vụ nằm quản lý như: HomePageDispatcher, ServiceController, LoadMonitor…có thể tách để triển khai máy riêng để tránh tắc ngẽn cục 5.2 Đánh giá tính mô hình Để đánh giá tính mô hình, tiến hành kiểm tra hoạt động ứng dụng tình huống: hoạt động bình thường, có xuất tải Worker cần thực nhân bản, Worker rãnh rỗi giải phóng để thu hồi tài nguyên Trang 36 Hệ thống hoạt động bình thường: thực truy cập tới chức ứng dụng như: xem thông tin sinh viên, xem danh sách môn học, danh sách nhóm…hoạt động tốt Việc điều hướng dịch vụ Dispatcher hoạt động xác, trao đổi thông tin dịch vụ thực xuyên suốt, không bị gián đoạn Khi thực thay đổi địa Worker cung cấp dịch vụ ứng dụng, dịch vụ điều hướng cập nhật lại địa để thực điều hướng cách xác - Hệ thống xuất dịch vụ tải: để tạo kiện tải Worker, sử dụng hai phương pháp: - o Tạo ứng dụng nhỏ có tên LoadSimulator Ứng dụng cho phép nhập thông số đầu vào là: địa chị IP Worker bị qua tải, Đại lượng ước lượng tải, Trạng thái tải cũ, Trạng thái tải gởi đến LoadMonitor thông qua tác vụ AlarmLoadChanged LoadMonitor Khi kiện tải (giả lập) tạo cho Worker dịch vụ ứng dụng, dịch vụ quản lý ServiceController phản ứng với mô hình đặt theo trường hợp: tải có tạo máy mới, tải không tạo máy mới; Worker tải tạo cách tự động đưa vào danh sách phục vụ mà không làm ảnh hướng đến trình sử dụng ứng dụng người dùng o Thay đổi thông số xác định ngưỡng tải1 để hệ thống tự cảnh báo tải mà không cần có nhiều truy cập vào hệ thống Với giải pháp này, kiện tải Worker phát sinh cách tự động, sau quản lý tải LoadMonitor thành phần lại hoạt động theo mô hình đưa Xuất Worker nhàn rỗi: để đánh giá khả thu hồi tài nguyên ứng dụng nhẹ tải Sau tạo thông qua thực nghiệm cho Worker tải trên, sau thời gian (được quy định trước) không tạo yêu cầu tới dịch vụ, chuyển sang trạng thái nhàn rỗi Bộ quản lý tải LoadMonitor thực thông báo cho ServiceController định giải phóng máy để thu hồi tài nguyên thực dự định - Kết thực nghiệm cho thấy mô hình mà đề nghị khả thi, đáp ứng yêu cầu mở rộng khả tiếp nhận người dùng hệ thống Đề tài Bông Hoàng Quân thực Trang 37 cách tự động tương ứng với gia tăng số lượng người dùng truy cập đồng thời vào hệ thống Do ứng dụng ĐKMH, Dispatcher ServiceController triển khai hoàn toàn máy ảo hệ thống Cloud nên việc cấu hình ứng dụng hoàn toàn độc lập với phần cứng hệ thống Các máy ảo bật lên từ image tạo sẵn, cần nâng cấp bảo trì hệ thống, người quản trị hệ thống cần di chuyển image sang hệ thống Cloud khởi tạo máy ảo từ image hệ thống sẵng sàng phục vụ Về khả mở rộng khả phục vụ hệ thống việc sử dụng tài nguyên từ hệ thống Cloud bên ngoài, chưa thực kiểm chứng trường hợp thời gian điều kiện chưa cho phép Tuy nhiên, dựa mô hình đưa khả hoàn toàn thực mà không cần thay đổi thành phần cài đặt Trang 38 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận Qua nghiên cứu xây dựng mô hình đưa giải pháp cho lớp ứng dụng đề xuất ban đầu Các ứng dụng đăng ký trực tuyến Với mô hình chúng tôi, ứng dụng có khả tự động tăng cường khả tiếp nhận người dùng cách tự động, không bị hạn chế để tương ứng với số lượng người dùng truy cập đồng thời vào ứng dụng gia tăng đột biến Trong mô hình CBM4HTC đề xuất, mà đề tài phần mô hình, có kết hợp giải pháp xây dựng ứng dụng theo kiến trúc phân tán mô hình điện toán đám mây để cung cấp tài nguyên tính toán cho hệ thống Kết việc áp dụng mô hình ứng dụng Đăng ký môn học trực tuyến với thành phần như: thành phần quản lý máy ảo MachineManager, thành phần theo dõi báo cáo trạng thái tải LoadMonitor, thành phần quản lý, cung cấp đồng liệu, thành phần quản lý dịch vụ ServiceController, thành phần điều hướng truy cập cân tải Dispatcher, cuối thành phần việc xử lý, trình bày liệu cho người dùng giao diện giao tiếp với người dùng ứng dụng Ứng dụng hoạt động ổn định thực thao tác: tiếp nhận yêu cầu người dùng điều phối cách cân Worker, nhận thông tin đánh giá tải Worker để đưa định nhân bản, cập nhật danh sách máy phục vụ, lệnh giải phóng máy để thu hồi tài nguyên cách tự động mà không cần can thiệp người quản trị hệ thống Phạm vi triển khai ứng dụng phạm vi cục tổ chức mở rộng đám mây bên để bổ sung tài nguyên tính toán khoảng thời gian cụ thể nhằm đáp ứng nhu cầu truy cập người dùng Kết trình cài đặt thử nghiệm cho thầy mô hình có tính khả thi cao, tính mong đợi mô hình đạt Tuy nhiên, dừng lại mức thử nghiệm mô hình với giả lập thay đổi tải loại Worker Mô hình chưa thử nghiệm với người dùng thực tế Ứng dụng cài đặt dừng mức kiểm thử tính mô hình CBM4HTC, vấn đề bảo mật đơn giản hóa Với mô hình đề nghị, người phát triển ứng dụng phải nghiên cứu kỹ tuân thủ qui tắc đề nghị mô hình Trang 39 6.2 Hướng phát triển Hiện đề tài số hạn chế như: giải thuật cân tải hoạt động dựa đại lượng đánh giá tải số kết nối tới máy chủ ứng dụng web Tomcat Giải thuật hoạt động số trường hợp không cho kết tối ưu, ví dụ Worker có kết nối lại phải phục vụ nhiều thao tác xử lý, tính toán Vì cần có cải tiến giải thuật định hướng truy cập Dispatcher dựa tất đại lượng đánh giá tải để đảm bảo chọn Worker tốt phục vụ yêu cầu người dùng Vấn đề định hướng truy cập tối ưu ảnh hướng đến khả giải phóng máy thu hồi tài nguyên cho hệ thống số lượng truy cập người dùng giảm xuống Một vấn đề khác cần giải để ứng dụng hoạt động thực hiệu việc đồng phiên làm việc (session) HomePageWorker Hiện HomePageWorker làm việc độc lập với nên người dùng bị chuyển hướng từ HomePageWorker sao khác bắt buộc phải đăng nhập lại liệu tạm lưu trữ session không sử dụng tiếp Trang 40 TÀI LIỆU THAM KHẢO Quan Z Sheng, Zakaria Maamar, Jian Yu, Anne H.H Ngu (2009), “Robust Web Services Provisioning Through On-Demand Replication”, The 8th International Conference on Information Systems Technology and Its Applications, Sydney, Australia Marilena, Stelian, Mircea (2010), “Web Services Integration With Distributed Applications”, Journal Of Applied Quantitative Methods Andrew S.Tanenbaum, Maarten Van Steen (2007), Distributed systems: principles and paradigms, Pearson Education Inc, United States of America Stephen Potts, Mike Kopack (2003), Sams Teach Yourself Web Services, Sams Publishing, United States of America Hartwig Gunzer (2002), Introduce to Web services, Borland Sysbase Inc (2007), “Repication Strategies: Data Migration, Distribution and Synchronization”, A Sybase White Paper Aviv Segev, Quan Z Sheng (2009), “Ontology Construction for Web Services”, The 8th International Semantic Web Conference, Washington D.C, USA Eddy Caron, Luis Rodero-Merino, Frederic Desprez, Adrian Muresan (2012), “Auto-Scaling, Load Balancing and Monitoring in Commercial and Open-Source Clouds”, Research Center Grenoble - Rhone - Alpes Vania Marangozova, Daniel Hagimont (2002), “An Infrastructure For CORBA Component Replication”, www.acm.org Trần Ngọc Linh, Ngô Đăng Quang, “Tính toán phân tán với Web services”, Đại học Giao Thông Vận Tải Trang 41 [...]... dụng phân tán Theo mô hình ứng dụng phân tán (UDPT), một ứng dụng phần mềm lớn có thể được phân tích ra thành các thành phần nhỏ hơn, mỗi thành phần này sẽ thực hiện một nhiệm vụ hoặc cung cấp một/nhóm chức năng nào đó Các thành phần này sẽ liên kết với nhau để cùng giải quyết nhiệm vụ ban đầu đặt ra cho hệ thống Ứng dụng truyền thống Ứng dụng phân tán Hình 4.13: So sánh ứng dụng phân tán và ứng dụng. .. công nghệ dịch vụ web (Web services) để cài đặt mô hình Các dịch vụ được cài đặt bằng ngôn ngữ lập trình hướng đối tượng Java, sử dụng module Apache Axis2 để tạo dịch vụ web, máy chủ ứng dụng web Apache Tomcat và cơ sở dữ liệu MySQL Có 4 nhóm dịch vụ chính tương ứng với 4 nhóm chức năng trong mô hình: Nhóm dịch vụ quản lý máy ảo Machine Manager, Nhóm dịch vụ quản lý tải Load M1, Nhóm dịch vụ thực hiện... vào ứng dụng giảm xuống mà không cần sự can thiệp của người quản trị hệ thống 1.4 Kết cấu luận văn Phần tiếp theo của luận văn được tổ chức như sau: Chương 2: Hệ thống phân tán Tóm tắt các nghiên cứu về hệ thống phân tán, các mô hình kiến trúc được áp dụng để xây dựng ứng dụng phân tán Chương 3: Dịch vụ Web Giới thiệu về công nghệ Dịch vụ Web, các nền tảng công nghệ cơ bản được sử dụng trong xây dựng. .. dịch vụ quản lý tải Load M1, Nhóm dịch vụ thực hiện chức năng của ứng dụng, Nhóm dịch vụ quản lý nhân bản, Nhóm dịch vụ quản lý và đồng bộ dữ liệu2 4.3.1 Nhóm dịch vụ thực hiện chức năng của ứng dụng Đây là các dịch vụ web cài đặt các thành phần của một ứng dụng Nếu lấy ứng dụng đăng ký môn học trực tuyến làm ví dụ, thì cần có các dịch vụ web cho các thành phần như: StudentInfo: cung cấp các chức năng... 2: ỨNG DỤNG PHÂN TÁN 2.1 Giới thiệu Ứng dụng phân tán (Distributed Application - DA) được biết đến như một ứng dụng gồm nhiều thành phần (components) mà các thành phần của nó có thể được phân bố và thực thi trên các máy tính khác nhau của một hệ thống mạng Những đặc trưng làm cho ứng dụng phân tán khác biệt và vượt trội hơn so với các ứng dụng thông thường là: Giao tiếp liên quá trình: một ứng dụng. .. tượng phân tán, các thành phần (component) chuyên biệt, các đối tượng được đóng gói được thiết kế để tương tác với những cái khác thông qua các giao diện chuẩn hóa Trang 10 CHƯƠNG 3: DỊCH VỤ WEB 3.1 Giới thiệu Dịch vụ web là một ứng dụng phần mềm mà nó có thể được truy cập từ xa bằng cách sử dụng các ngôn ngữ dựa trên XML Thông thường, một dịch vụ web được định danh bởi một URL Người sử dụng dịch vụ web. .. trình viên xây dựng các ứng dụng mạng sử dụng cấu trúc lập trình tương tự như lời gọi thủ tục cục bộ Trang 7 2.2.4 Mô hình đối tượng phân tán Việc áp dụng hướng đối tượng cho ứng dụng phân tán là một sự mở rộng tự nhiên của lập trình hướng đối tượng Các ứng dụng sẽ có khả năng truy cập các đối tượng được phân tán trên mạng Các đối tượng cung cấp các phương thức, thông qua việc gọi của một ứng dụng có... dựng hệ thống Với kiến trúc của dịch vụ web, tất cả các ứng dụng phần mềm trên thế giới có thể giao tiếp với nhau thông qua hệ thống mạng internet hoặc intranet, vượt qua tất cả sự giới hạn về địa lý, nền tảng, ngôn ngữ lập trình hay giao thức kết nối Hình 3.10: Mô hình xây dựng ứng dụng bằng cách sử dụng các dịch vụ web có sẵn 3.2 Các nền tảng của dịch vụ web 3.2.1 Service- Oriented Architecture (SOA)... ứng dụng phân tán yêu cầu sự tham gia của hai hoặc nhiều thành phần (tiến trình) độc lập Để làm được điều này thì các thành phần phải có khả năng trao đổi thông tin với nhau Đồng bộ sự kiện: trong một ứng dụng phân tán, việc gởi và nhận dữ liệu giữa các thành phần của ứng dụng phải được đồng bộ Hình 2.1:Các mô hình kiến trúc ứng dụng phân tán 2.2 Các loại mô hình kiến trúc ứng dụng phân tán 2.2.1... học kỳ Ở mỗi thành phần cần có một dịch vụ Web làm nhiệm vụ Dispatcher và các dịch vụ web làm nhiệm vụ của Worker Trong phần tiếp theo, chúng ta dùng ký pháp sau để xác định tên gọi của các thành phần: Si.D: Dịch vụ web làm Dispatcher của thành phần Si Si.Wj: Dịch vụ web làm Worker thứ j của thành phần Si Si.D.Oj : Tác vụ Oj cung cấp bởi Dispatcher Si.D Si.Wj.Ok: Tác vụ Ok cung cấp bởi Woker thứ j của