Nghiên cứu và phát triển giải pháp gán việc giảm chi phí trên nền điện toán đám mây
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA : KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
BỘ MÔN : KHOA HỌC MÁY TÍNH
-o0o -LUẬN VĂN TỐT NGHIỆP
NGHIÊN CỨU VÀ PHÁT TRIỂN GIẢI PHÁP GÁN
VIỆC GIẢM CHI PHÍ TRÊN NỀN
ĐIỆN TOÁN ĐÁM MÂY
GVHD : TS Thoại Nam GVPB : TS Trần Văn Hoài
SV: Nguyễn Hữu Hạ (50700700)
Trang 3Chúng em xin cam đoan các kết quả báo cáo trong bản thuyết minh luận văncũng như phần mềm là sản phẩm do công sức lao động của chúng em thực hiện, khôngcó sự sao chép từ những công trình khác Trong tất cả các bước, những gì tham khảo,thừa kế và phát triển thêm từ người khác và những công trình đã có đều được khai báođầy đủ.
Nếu có bất cứ sai phạm nào so với lời cam kết, chúng em xin chịu các hình thứcxử lý theo quy định
Trang 4LỜI CẢM ƠN
Hoàn thành một luận văn tốt nghiệp là một trong những việc khó nhất mà chúngem phải trải qua từ trước đến nay Trong quá trình thực hiện đề tài chúng em đã gặprất nhiều khó khăn và bỡ ngỡ Nếu không có những sự giúp đỡ và lời động viên chânthành của nhiều người có lẽ chúng em khó có thể hoàn thành tốt luận văn này.
Đầu tiên, chúng em xin chân thành cảm ơn thầy Thoại Nam đã tận tình hướng dẫn,chỉ bảo chúng em trong suốt thời gian thực hiện đề tài Mặc dù rất bận nhưng thầyvẫn dành thời gian quí báu để định hướng đi đúng cho chúng em.Điều đó đã thúc giụcchúng em phải cố gắng hết sức để không phụ lòng thầy.
Thứ hai, chúng em rất biết ơn Thầy Hoài đã theo sát và dạy chúng em cách giảiquyết vấn đề một cách khoa học và hiệu quả Sự nhiệt tình của thầy làm chúng em rấtcảm động.
Sau cùng chúng em xin chân thành cảm ơn gia đình, bạn bè đã ủng hộ, giúp đỡ vàđộng viên trong những lúc khó khăn cũng như trong suốt thời gian học tập và nghiêncứu
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng chophép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thôngvà tận tình chỉ bảo, góp ý của thầy cô và các bạn
Tp Hồ Chí Minh, 12/2011Nhóm thực hiệnNguyễn Hữu Hạ – Lê Đức Anh
Trang 5năm 2012 có khoảng 80% doanh nghiệp của 1000 công ty hàng đầu sẽ ứng dụng ít nhất mộttrong một vài loại hình ứng dụng đám mây và 20% công ty sẽ không còn sở hữu các tài sảnhay hạ tầng công nghệ thông tin nữa.
Không nằm ngoài xu thế chung của ngành công nghệ thông tin thế giới Việt Nam đang dầntiếp cận dịch vụ đám mây Công nghệ này được coi là giải pháp cho những vấn để mà nhiềucông ty, tổ chức đang gặp phải như thiếu năng lực công nghệ thông tin, chi phí đầu tư hạnchế…
Nhưng hiện nay vẫn còn thiếu những công cụ để hỗ trợ ra quyết định thuê các dịch vụ điện toán đám mây Đề tài này ra đời theo yêu cầu Khoa Khoa học và Kỹ thuật Máy tính, trường đại học Bách Khoa TP HCM muốn thuê máy ảo từ các nhà cung cấp điện toán đám mây để phục vụ cho nhu cầu nghiên cứu , giảng dạy,… Mục tiêu của đề tài là tìm ra giải pháp tối ưu chi phí thuê máy cho Khoa Trong tương lai nó sẽ mở rộng ra cho các doanh nghiệp, tổ chức khác,…
Trang 6DANH SÁCH HÌNH VẼ
Figure 1 Sơ đồ luận lý (logical diagram) ảo hóa 1
Figure 2 Sơ đồ luận lý (logical diagram) của điện toán đám mây 3
Figure 3 Các dịch vụ của Cloud Computing 4
Figure 4 Tạo máy ảo trong cloudorado.com 7
Figure 5 Xem kết quả trong cloudorado.com 7
Figure 6 Chế độ nhiều máy trong cloudorado.com 8
Figure 7 Bảng giá cloudpricecalculator.com 10
Figure 8 Đồ thị mô tả input 14
Figure 9 Đồ thị mô tả output 15
Figure 10 Use-case 21
Figure 11 Sơ đồ họa động của hệ thống 25
Figure 12 Thiết kế của tầng giao tiếp 26
Figure 13 Class Diagram 27
Figure 14 Minh họa Branch and cut 29
Figure 15 Trang chủ của hệ thống 32
Figure 16 Hệ thống nhận file xml 33
Figure 17 Hệ thống yêu cầu số nhà cung cấp tối đa 34
Figure 18 Import XML file 35
Trang 81.1.1 Công nghệ ảo hóa 1
a Ảo hóa là gì (Virtualization) ? 1
b Lợi ích của Ảo hóa 2
1.1.2 Cloud Computing 3
a Đi n toán đám mây (Cloud Computing) là gì ?ệ 3
b Các loại dịch vụ của Cloud Computing 4
c.Lợi ích của Cloud Computing 4
1.1.3 Thực tế tại các doanh nghiệp 5
1.2 Khảo sát vấn đề 6
1.2.1 Dịch vụ của website “cloudorado.com” 6
1.2.2 Dịch vụ của website “cloudpricecalculator.com” 8
1.2.3 Tổng kết 10
1.3 Mục tiêu của luận văn 10
Chương 2 Lý thuyết 12
2.1 Mô tả vấn đề 12
2.1.1 Yêu cầu của khách hàng 12
2.1.2 Thông tin mà dịch vụ sẽ phải cung cấp 13
2.2 Mô hình khái niệm 13
2.2.1 Đầu vào 13
2.2.2 Đầu ra 14
Trang 92.4.1 Tổng quan về bài toán tuyến tính 17
2.4.2 Mô hình tuyến tính của bài toán trong đề tài 18
a Xác định actor tương tác với hệ thống 20
b Xác định các usecase và vẽ lược đồ usecase 21
c.Đặc tả các usecase 22
3.2 Thiết kế hệ thống 25
3.2.1 Sơ đồ hoạt động của hệ thống 25
3.2.2 Thiết kế tầng tương tác với người dùng 26
3.2.3 Thiết kế tầng tiền xử lý 27
3.2.4 Thiết kế tầng xử lý chính 28
a FlopC++ là gì ? 29
b CBC là gì ? 29
c.Branch and Cut là gì ? 29
d Áp dụng để giải bài toán của đề tài 30
Trang 10b Nhiệm vụ của tầng tiền xử lý 39
Chương 4 Đánh giá – Kết luận 40
4.1 Kết quả đạt được 40
4.1.1 Sự thay đổi yêu cầu dẫn đến sự thay đổi kết quả của một yêu cầu 1 máy ảo 40
a Yêu cầu có máy ảo ban đầu 40
b Tăng thời lượng sử dụng máy ảo lên 20 giờ mỗi ngày 41
c.Thêm 2 ngày sử dụng 42
d Giảm dung lượng ổ đĩa cứng xuống 100 GB 43
e Tăng cấu hình máy ảo : CPU, RAM, HDD 44
f.Tăng thời gian sử dụng lên thời gian dài : 2 năm 44
g Thêm băng thông vào yêu cầu máy ảo 45
h Thay đổi lượng băng thông 46
4.1.2 Sự thay đổi yêu cầu dẫn đến sự thay đổi kết quả 47
a Số lượng nhà cung cấp tối đa là 1 47
b Số lượng nhà cung cấp tối đa là 2 48
c.Số nhà cung cấp tối đa là 3 50
d Số nhà cung cấp tối đa là 4 50
e Số nhà cung cấp tối đa bằng 5 51
f.Khi số lượng nhà cung cấp tối đa tăng lên 6 52
4.1.3 Nhận xét kết quả 55
4.2 Hạn chế và hướng phát triển 55
Tài liệu tham khảo 56
Phụ lục 1 57
Phụ lục 2 58
Phụ lục 3 59
Trang 111.1.1Công nghệ ảo hóa
a.Ảo hóa là gì (Virtualization) ?
Figure 1 Sơ đồ luận lý (logical diagram) ảo hóa
Ảo hóa trong máy tính là tạo ra một phiên bản ảo của phần cứng, hệ điều hành, thiết bịlưu trữ hay tài nguyên mạng
Ảo hóa được xem là hướng đi chủ đạo trong công nghệ thông tin ngày nay Mục đíchcủa ảo hóa là tập trung những tác vụ quản trị trong khi nâng cao hiệu quả sử dụng tàinguyên
Có 3 kiểu ảo hóa cơ bản
Trang 12Chương 1 Chương một
Ảo hóa là công nghệ nền tảng để tạo ra các dịch vụ Nó cung cấp nền móng(platform) cho việc tối ưu tài nguyên phần cứng phức tạp bằng cách chia để trị Vìtrong điện toán đám mây, việc phân chia tài nguyên từ hệ thống thật là rất quantrọng Nếu không có ảo hóa thì những đám mây sẽ rất khó quản lý
Ảo hóa giúp đơn giản hóa nhiều vấn đề phức tạp trong điện toán đám mây nhờ 3đặc điểm quan trọng là:
Phân mảnh: Từ một hệ thống vật lý chia ra nhiều hệ điều hành bằng cáchphân mảnh nguồn tài nguyên thật
Tách biệt: Mỗi máy ảo tách biệt với nhau và với máy chủ vật lý Nhờ đókhi một máy ảo bị hỏng thì không ảnh hưởng tới máy khác
Bao đóng: Một máy ảo được đóng thành 1 gói (single file) Từ đó ta dễđịnh danh nó dựa vào dịch vụ nó cung cấp Nhờ đặc điểm này mà ta ngănchặn sự xung đột giữa các dịch vụ trên các đám mây
Nhờ ảo hóa mà một máy thật có thể tạo ra 20 máy ảo, tương đương 20 máythật Điều đó không chỉ giúp tiết kiệm tiền mua phần cứng mà còn cả chi phívề điện năng, điều hòa nhiệt độ, bảo dưỡng và không gian
Trang 131.1.2Cloud Computing
a.Điện toán đám mây (Cloud Computing) là gì ?
Figure 2 Sơ đồ luận lý (logical diagram) của điện toán đám mây
Trước đây các tổ chức như một công ty, trường học,… muốn có một hệ thốngmáy tính thì họ phải mua phần cứng và thuê một đội ngũ kỹ thuật để quản trị nó.Nhưng với điện toán đám mây ngày nay họ có thể thuê
Điện toán đám mây là xu hướng công nghệ tiếp theo của cuộc cách mạng
Trang 14máy chủ, trung tâm dữ liệu, thiết bị mạng, thiết bị lưu trữ Các nhà pháttriển và doanh nghiệp IT thuê rồi tự thiết lập môi trường phát triển cũngnhư ứng dụng cho mình.
PaaS (Platform as a Service) : cung cấp môi trường phát triển, ngoài phầncứng còn cung cấp thêm tập các phần mềm tích hợp sẵn trong đám mâymà các nhà phát triển (developer) cần để tạo ứng dụng
SaaS (Software as a Service) : cung cấp những ứng dụng, miễn phí haythương mại, đã được tạo trên những đám mây vì thế người dùng chỉ cầntruy cập và sử dụng
Figure 3 Các dịch vụ của Cloud Computing
c.Lợi ích của Cloud Computing
Hai lợi ích nổi trội là: Tiết kiệm chi phí: Chi phí thuê tài nguyên trên điện toán đám mây thì rẻ hơn chi
phí mua Đơn giản vì ta không tốn phí cho giao dịch mua bán phức tạp, rồi phải
Trang 15thuê đội ngũ kỹ thuật cài đặt, vận hành và bảo trì Cái chúng ta cần là xác địnhtài nguyên mình cần và nhà cung cấp uy tín
Hỗ trợ linh hoạt những sự thay đổi trong kinh doanh, công việc Khi nhu cầu cóthể là mở rộng hay thu hẹp thì công nghệ điện toán đám mây cho phép ta thựchiện dễ dàng và nhanh chóng Ví dụ như công ty cần thêm CPU, dung lượnglưu trữ hay băng thông,
Ngân hàng: cần có một hay hai trung tâm dữ liệu đã đạt chuẩn Tier 3 COMP
TIA 942, và một số trung tâm dữ liệu dự phòng Thay vì đầu tư mua mới thì vớigiải pháp dịch vụ cho thuê hạ tầng của cloud-computing , ngân hàng có thể chủ động thuê các hạ tầng trung tâm dữ liệu theo nhu cầu, bổ sung hay chấm dứt dịch vụ phù hợp với quá trình phát triển của nó
Công ty chứng khoán: Loại công ty này thường với hàng ngàn giao dịch trong
ngày Số yêu cầu giao dịch trong ngày có thể thay đổi từ vài giao dịch đến hàng triệu giao dịch Đầu tư hạ tầng CNTT để có thể đáp ứng được hàng triệu giao dịch, rồi sau đấy sẽ để hệ thống không làm gì khi chỉ có vài giao dịch Đấy là sự lãng phí rất lớn Với dịch vụ cho thuê hạ tầng trung tâm dữ liệu của cloud-computing các tài nguyên CNTT sẽ được cung cấp ngay lập tức khi số lượng giao dịch của công ty lên đến hàng triệu, và giảm xuống khi giao dịch xuống hàng trăm đơn vị Công ty hoàn toàn chủ động sử dụng tài nguyên công nghệ thông tin theo từng ngày, thậm chí theo từng giờ đáp ứng những yêu cầu khắt khe nhất đảm bảo hoạt động của một công ty chứng khoán
Công ty đa quốc gia : Công ty có nhiều chi nhánh, văn phòng trải rộng trên
khắp mọi miền đất nước, việc mở rộng hoạt động đến một chi nhánh mới sẽ tốn nhiều công sức cho việc chuẩn bị hạ tầng IT Gánh nặng ấy có thể giải quyết bằng dịch vụ cho thuê hạ tầng trung tâm dữ liệu của cloud-computing Công ty chỉ cần quan tâm phần mềm nào, sử dụng bao nhiêu để đảm bảo kinh doanh tại chi nhánh mới ấy
Trang 16Chương 1 Chương một
hoạt động kinh doanh của mình Ví dụ dịch vụ quảng cáo trên Facebook, Twiter với cloud-computing
Trung tâm nghiên cứu: Ở tổ chức này dữ liệu là rất quan trọng Công việc
theo nhóm yêu cầu cần chia sẻ với đồng nghiệp nhưng cũng cần đảm bảo thông tin không bị rò rỉ Dịch vụ email business của cloud-computing giúp họ hoàn toàn chủ động cấu hình dịch vụ để đảm bảo những thông tin được chia sẻ đúng đối tượng
Công ty phát triển phần mềm: Ở Việt Nam, chủ yếu là công ty gia công phần
mềm cho nhiều khách hàng trong và ngoài nước Mỗi khách hàng lại có những yêu cầu khác nhau về phầ n mềm Chi phí và thời gian thiết lập môi trường phát triển tốn kém nhiều Với dịch vụ cho thuê phần mềm và máy chủ của cloud-computing Thời gian thiết lập trong vài giờ với mọi loại môi trường Linux, Windows, sẽ giúp công ty an tâm phát triển phần mềm
1.2 KHẢO SÁT VẤN ĐỀ
Cloudorado cung cấp dịch vụ so sánh giá giữa các nhà cung cấp máy ảo dựa trên nền điệntoán đám mây
Đầu tiên người dùng truy cập trang chủ của nó Sau đó nhập cấu hình máy ảo mình cần ,bằng cách kéo con trượt, giao diện như sau:
Trang 17Figure 4 Tạo máy ảo trong cloudorado.com
Trên web hiện ra bảng giá của các nhà cung cấp cho máy ảo
Figure 5 Xem kết quả trong cloudorado.com
Nếu ta cần nhiều máy ảo thì dùng chế độ Advanced Mode
Trang 18Chương 1 Chương một
Figure 6 Chế độ nhiều máy trong cloudorado.com
Website này cung cấp một công cụ so sánh giá dịch vụ giữa các nhà cung cấp bằngphương pháp giá trung bình (Cloud Price Normalization hay CPN)
Người thuê nhập thông số vào các ô
Nhấn Calculate thì sẽ ra CPN
Trang 19Khi có CPN ta tra bảng sau để tìm ra nhà cung cấp tốt nhất mà website đề nghị.
Trang 20 Chỉ có thể đưa vào một số lượng máy nhỏ, do nhập thông số bằng tay. Mỗi kết quả chỉ có 1 nhà cung cấp, không thể kết hợp được nhiều nhà
cung cấp. Giá đưa ra là giá thuê ban đầu Khi doanh nghiệp muốn thuê ngắn hạn thì
các website trên không thể tính ra tổng chi phí theo một thời gian biều sửdụng
1.3 MỤC TIÊU CỦA LUẬN VĂN
Xây dựng một website cung cấp dịch vụ tính toán chi phí thuê máy ảo cho Khoa Khoahọc và Kỹ thuật Máy tính, trường đại học Bách Khoa TP HCM
Những điểm nổi bật của dịch vụ này là:i Tính toán với số lượng máy ảo lớn
Trang 21ii Kết hợp nhiều nhà cung cấp với nhau.iii Tính chi phí cho một thời gian biểu.iv Kết quả hướng tới giá cực tiểu.Dịch vụ này sẽ mang những lợi ích cho khoa như sau:
Tiết kiệm chi phí tư vấn trong việc thuê máy ảo. Rút ngắn thời gian tìm kiếm máy phù hợp với nhu cầu
Trang 22CHƯƠNG 2 LÝ THUYẾT2.1 MÔ TẢ VẤN ĐỀ
Khoa Khoa học và Kỹ thuật Máy tính, trường đại học Bách Khoa TP HCM muốn cómột hệ thống gồm nhiều máy ảo, để phục vụ cho việc nghiên cứu và giảng dạy, với yêucần được xác định như sau:
o Danh sách máy ảo:
Cấu hình phần cứng :
RAM: Tính bằng GB CPU: Tính bằng ECU HDD: Tính bằng GB Yêu cầu về hệ điều hành
Linux Windows Thời gian thuê :
Ngày bắt đầu: Là ngày mà khoa muốn bắt đầu sử dụng máy ảo này
Ngày kết thúc: Là ngày mà khoa muốn kết thúc sử dụng máy ảonày
Giờ : Số lượng giờ. Kiểu xác định giờ: Tham số giờ ở trên được xác định bởi 3
loại:o 1: Số giờ trên là tổng giờ sử dụng của máy ảo trong thời
gian từ ngày bắt đầu và ngày kết thúc.o 2: Số giờ trên là số lượng giờ sử dụng trong 1 ngày,
bằng nhau trong tất cả các ngày trong thời gian từ ngày bắt đầu đến ngày kết thúc
o 3: Số giờ trên là số lượng giờ sử dụng trong 1 ngày làm việc, bằng nhau trong tất cả các ngày làm việc trong thờigian từ ngày bắt đầu đến ngày kết thúc Ngày làm việc được tính là 5 ngày trong tuần: từ Thứ 2 đến Thứ 6. Băng thông:
Lượng dữ liệu đi vào: được tính bằng GB. Lượng dữ liệu đi ra: được tính bằng GB. Số lượng: Số lượng máy ảo với cấu hình phần cứng, phần mềm trên mà
công ty cần sử dụng.o Số lượng nhà cung cấp tối đa: Trong một danh sách máy ảo phía trên, ta có thể
tìm được nhiều nhà cung cấp thỏa mãn yêu cầu máy ảo trên Nhưng khoa
Trang 23muốn giới hạn số lượng nhà cung cấp để tối ưu tốc độ đường truyền mạng giữa các máy ảo cũng như dễ quản lý hơn.
Từ những yêu cầu trên , khoa cần thông tin về một danh sách các máy ảo cần thuê saocho yêu cầu máy ảo phải phù hợp và số lượng chi phí bỏ ra là thấp nhất Các thông tincần xác định như sau:
o Danh sách máy ảo:
Cấu hình phần cứng đã yêu cầu:
RAM : Tính bằng GB ( gọi là RAM_R) CPU: Tình bằng ECU ( gọi là CPU_R) HDD: Tính bằng GB ( gọi là HDD_R) Cấu hình phần cứng phù hợp yêu cầu nhất: đây là máy ảo có cấu hình
phần cứng tốt hơn so với yêu cầu về cả 3 điều kiện CPU, RAM, HDD RAM : Tính bằng GB
CPU: Tính bằng ECU HDD: Tính bằng GB Danh sách lịch thuê: Dịch vụ sẽ tính toán lịch thuê của máy ảo tại các
nhà cung cấp sao cho chi phí thuê này là rẻ nhất Nhà cung cấp: Tên nhà cung cấp
Số lượng: Số lượng máy ảo cần thuê Thành tiền: Tổng lượng tiền bỏ ra để thuê số lượng máy ảo với cầu
hình phù hơp này.o Thành tiền: Tổng lượng tiền bỏ ra để thuê toàn bộ hệ thống máy ảo theo yêu
Trang 24Chương 5 Chương năm
Mỗi nhà cung cấp có 2 thuộc tính quyết định đến giá cả đó là:
Tập các cấu hình máy ảo mà họ đang cung cấp Các gói thời gian thuê
Vì vậy ta có thể nhìn vấn đề này theo kiểu đồ thị như sau:
Figure 8 Đồ thị mô tả input
Ta có đồ thị G = (V,E) phân đôi với phân hoạch V = I U P Trong đó I là tập các máy ảo P là tập các nhà cung cấp Nếu một nhà cung cấp có thểđáp ứng được một yêu cầu máy ảo thì ta vẽ một cạnh giữa máy ảo và nhà cung cấp, trêncạnh có một trong số dương chính là mức giá thấp nhất mà nhà cung cấp có thể đưa ra.Nếu ngược lại thì không có cạnh nối giữa chúng
E là tập các cạnh đi từ I tới P
Khoa muốn tất cả các máy ảo đều được thuê và một máy ảo không được phép có hainhà cung cấp Vậy thì kết quả phải là một đối sánh S (matching) có tính chất như sau:
Trang 25 Đó là tập con của E, tập các cạnh đi từ I tới P. Mọi đỉnh trong I là đỉnh của một cạnh trong đối sánh S. Mọi đỉnh chỉ xuất hiện đúng một lần.
Figure 9 Đồ thị mô tả output
Trong luận văn này sẽ giải quyết 2 ràng buộc sau đây
1 Một số máy ảo bắt buộc phải chung một nhà cung cấp 2 Tổng số nhà cung cấp tham gia bị giới hạn
Chuyển sang đồ thị thì ràng buộc trở thành:
1 Trong đối sánh S thì những đỉnh, tương ứng với những máy ảo, đỉnh thuộctập I, phải cùng chung nhà cung cấp thì phải là thuộc các cạnh cùng đỉnh
Trang 26Chương 5 Chương năm
Giá trị mỗi phần tử là một số không âm được tính như sau:
cij={a,n ´êunh `acungc ´â p j c ´oth ´ê đ ´a p ´ư ng nh´ommáy ảoi và alà giá thấpnhất ;
+∞ ,nếungượclại;
Kết quả là một ma trận kích thước NxM
Giá trị mỗi phần tử là một số nhị phân được tính như sau:
xij={1 ,n ´ê unh ´ommáy ảoi sẽ được đáp ứngbởinhà cung cấp j ;
0,nếungượclại ;
i Mỗi nhóm máy ảo chỉ chọn một nhà cung cấp Từ đó dẫn đến :
Trang 27j=0M−1
xij=1;∀ i, i=0,1,…, N
ii Tổng số nhà cung cấp phải bé hơn hằng số K do khoa yêu cầu:Ta đặt một mảng Y={y0,y1,…,ym-1} Mỗi phần tử yi trong mảng có giá trịnhị phân, được tính như sau:
yj={1 ,n ´ê unh `acungc ´â p j khôngc ´o nh´ommáy ảo nào chọn;
0,nếu ngượclại ;
Với cách đặt biến như vậy ta có biểu thức sau:
∑
j=0M−1
∑
j=0M−1
cij∗xij
2.4 LỜI GIẢI
Trong bài toán tuyến tính, chúng ta sẽ tìm cách tối ưu một hàm tuyến tính bị ràngbuộc bởi một tập các đẳng thức và bất đẳng thức
Hàm tuyến tính có dạng tổng quát như sau:f(x1, x2,…, xn) = a1 x1 + a2 x2 + …+ an xn = ∑
j=1n
aj xj
Nếu b là một số thực và f là một hàm tuyến tính thì đẳng thức có dạng như sau:f(x, x, , x) = b
Trang 28Chương 5 Chương năm
f(x1, x2,…, xn) ≥ bMục tiêu của bài toán tuyến tính là phải cực tiểu hay cực đại một hàm tuyến tính trongkhi vẫn phải thỏa mãn một tập các ràng buộc có dạng trên
2 dạng chủ yếu của bài toán tuyến tính là:
i Cực đại
Max cT xs.t Ax ≤ b
x € Rii Cưc tiểu
Min cT xs.t Ax ≥ bx € RVí dụ:
Max Z = 8x1+5x2
s.t x1+x2 ≤ 69x1+5x2 ≤ 45x1, x2 là những số tự nhiên dương
Bài toán:
Cực tiểu hàm mục tiêu sau:∑
i=0N−1
∑
j=0M−1
cij∗xij
Ràng buộci ∀ i ,i=0,1,…,N-1; ∑
j=0M−1
xij=1 ;
ii ∀ j , j=0,1,…,M-1; y ≥¿
iii ∑
j=0M−1
yj≤K ;
iv xij, yj là số nhị phân;
Trang 29Branch-Các thành phần chính trong một MILP solver bao gồm:
Presolving: tìm cách biến đổi dạng đầu vào của bài toán thành một dạng chuẩn
để cho việc tính toán nhanh hơn
Cutting planes : tạo ra những nhát cắt để thu nhỏ không gian nghiệm. Branching : chia không gian nghiệm thành nhiều phần.
Heuristic : dùng những giải thuật heuristic để di chuyền nhanh trong những
không gian nghiệm mới chia
Parallel implementation : tìm cách song song hóa chương trình để tận dụng tối
ta tài nguyên tính toán.Nhiệm vụ của ta chỉ cần đưa mô hình tuyến tính của bài toán vào solver rồi cấu hìnhcho nó chạy là sẽ ra nghiệm
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG3.1 PHÂN TÍCH HỆ THỐNG
- Nhận input, danh sách máy ảo cần thuê từ khoa Ta có 2 cách chọn để đưa danh
sách vào hệ thống
o Nhập bằng tay: với số lượng máy nhỏ, ít hơn 5 máy, có thể là do nhu
cầu văn phòng hay phát triển ứng dụng nhỏ và vừa, thì có thể lựa chọn
Trang 30Chương 5 Chương năm
o Dạng file: những thông tin như nhà cung cấp, cấu hình máy thuê, tổng
chi phí sẽ được hệ thống ghi ra để phục vụ cho nhu cầu xem offline, inấn, báo cáo kế toán
o Dạng trực tuyến : Hệ thống hiển thị những thông tin trên trên website
để người dùng dễ xem hơn
- Tính toán:
o Tiền xử lý: Sau khi nhận dữ liệu từ khoa, hệ thống sẽ phải tính toán ma
trận chi phí Hai tác vụ chính là: Gộp các máy ảo phải cùng chung nhà cung cấp. Với mỗi nhà cung cấp trong tập nhà cung cấp mà ta có, tìm ra
cách thuê với chi phí thấp nhất
o Xử lý chính: Sau hệ thống có được ma trận chi phí nó sẽ đưa vào
chương trình tính (solver) để chạy Sau khi nhận nghiệm từ solver thì hệthống sẽ phải chuyển vể dạng thông tin mà người dùng cần
a Xác định actor tương tác với hệ thống
Người dùng ( Users): Là người muốn sử dụng hệ thống để tìm cách thuê máy
ảo rẻ nhất từ các nhà cung cấp dịch vụ trên nền điện toán đám mây
Trang 31b Xác định các usecase và vẽ lược đồ usecase
Figure 10 Use-case
- Danh sách các usecase của mô hình:
máy ảo mà người dùng yêu cầu
họ cần tính toán Có thể nhập dữ liệu vào mẫu
điền vào mẫu, người dùng có thể nhập vào một văn
Trang 32Chương 5 Chương năm
Phụ lục 1) để sử dụng cho lần tính toán sau
quả Kết quả này có thể được xuất ra một văn bảnXML để dùng cho nhu cầu thuê, in ấn, báo cáo, xemlại ( Xem Phụ lục 2)
thể xem lại kết quả này theo giao diện thân thiện hơn.( Xem Phụ lục 2)
c Đặc tả các usecase
- Usecase Calculate
ảo mà người dùng yêu cầu
năng tính toán- Người dùng nhập vào danh sách các máy ảo mà
người dùng cần tính toán chi phí.- Người dùng nhập vào số lượng nhà cung cấp tối đa- Hệ thống sẽ tính toán để đưa ra kết quả tốt nhất
Điều kiện tiên quyết - Người dùng phải nhập dữ liệu Usecase Enter
Data phải được thực hiện
diện.- Người dùng có thể xuất kết quả này ra văn bản
XML để sử dụng lưu trữ.- Usecase Enter Data
Trang 33Tên UsecaseEnter Data
cần tính toán Có thể nhập dữ liệu vào mẫu
- Người dùng nhập danh sách máy ảo cần tính toán :có thể nhập bằng tay vào mẫu có sẵn hoặc nhậpbằng văn bản XML
- Usecase Import from XML file
XML mà dịch vụ đưa ra
liệu máy ảo bằng văn bản XML.- Người dùng chọn một văn bản XML có mẫu có
sẵn do dịch vụ cung cấp
- Usecase Export to XML file
Trang 34Chương 5 Chương năm
năng xuất ra văn bản XML- Hệ thống sẽ tạo ra văn bản XML chứa danh sách
máy ảo và cho phép người dùng tải về
ảo
- Usecase Export Result to XML file
Kết quả này có thể được xuất ra một văn bản XML đểdùng cho nhu cầu thuê, in ấn, báo cáo, xem lại
năng xuất kết quả ra văn bản XML- Hệ thống tạo ra văn bản XML chứa kết quả tính
toán và cho phép người dùng tải về
Điều kiện tiên quyết Usecase Calculate kết thúc và thành công
toán
- Usecase View Result
thể xem lại kết quả này theo giao diện than thiện hơn
Trang 35Dòng sự kiện chính - Usecase này bắt đầu khi người dùng chọn chức
năng xem lại kết quả.- Người dùng nhập vào một văn bản XML chứa kết
quả tính toán.- Hệ thống sẽ đưa kết quả lên màn hình qua một
giao diện than thiện hơn
diện than thiện hơn
3.2 THIẾT KẾ HỆ THỐNG3.2.1 Sơ đồ hoạt động của hệ thống
Figure 11 Sơ đồ họat động của hệ thống
Hệ thống chia làm 3 tầng
Tầng giao tiếp: Tầng này sẽ làm nhiệm vụ tương tác với người dùng để nhận
được danh sách yêu cầu máy ảo Sau đó nó gửi danh sách này cho tầng tiền xử lý