Một ứng dụng Windows Azure có thể lưu trữ dữ liệu trong Cơ sở dữ liệu SQL Azure. Trong khi bộ lưu trữ Windows Azure không hỗ trợ các bảng dữ
liệu quan hệ, mà nhiều ứng dụng đang tồn tại sử dụng cơ sở dữ liệu quan hệ. Vì vậy, lập trình viên có thể chuyển ứng dụng đang chạy sang ứng dụng Windows Azure với lưu trữ dữ liệu trong Cơ sở dữ liệu SQL Azure.
48
CHƢƠNG 3: ỨNG DỤNG WINDOWS AZURE TRONG GIẢNG DẠY ĐẠI HỌC
3.1. Xây dựng hệ thống nhập học sinh viên, tạo khóa học và tập huấn trên Microsoft Azure sử dụng ASP.NET MVC5
3.1.1. Cài đặt môi trƣờng phát triển :
Để bắt đầu ta cần cài đặt Azure SDK for .NET.
Để cài đặt SDK ta click vào link dưới đây http://azure.microsoft.com/en- us/downloads/
Click vào VS 2012 Install hoặc VS 2013 Install (tuỳ vào VS ta đang sử dụng) Khi được hỏi Run hoặc Save ta chọn Run
Ở cửa sổ Web Platform Installer , click Install .
Hình 3.1: Cài đặt Windows Azure SDK
Khi cài đặt hoàn tất mọi thứ gần như đã sẵn sàng để bắt đầu làm việc.
3.1.2. Tạo một ứng dụng ASP.NET MVC5 :
Tiếp theo ta sẽ dùng Visual Studio tạo một ứng dụng web application project sau đó publish tới Azure.
Mở Visual Studio 2012 hoặc Visual Studio 2012 for Web Express. TừFile menu, click New, và sau đóclick Project.
49
Hình 3.2: Tạo New Project
Ở cửa sổ New Project , ta click Visual C# sau đó chọn mẫu Web Templates, ở đây mình chọnASP.NET MVC 5 Web Application.
Ta phải chắc chắn là đã chọn .NET Framework 4.5 ở mục bên trên target framework. Đặt tên ứng dụng và click OK.
Hình 3.3: Đặt tên dự án và thư mục lưu trữ
Sau đó ở cửa sổ tiếp theo như hình bên dưới chọn MVC và chọn Change
Authentication
50
Hình 3.4: Chọn MVC
+ Ở trangChange Authentication đặtNo Authentication, và chọn OK.
Hình 3.5: Chọn N Authentication
Trở lại trang New ASP.NET Project , chọn OK xuất hiện màn hình với các cài đặt mặc định cho trang web ktvUniversity
Hình 3.6: Màn hình hệ thống thống nhập học sinh viên, tạo khóa học và tập huấn
51
3.2. Tạo trang Web quản lý việc nhập học của sinh viên, tạo khóa học vàtập huấn. tập huấn.
3.2.1. Mô hình cơ sở dữ liệu :
3.2.1.1 Bảng cơ sở dữ liệu Person : Lưu thông tin về khoa kết nối, họ đệm, tên, ngày thuê, ngày nhập học, phân loại
TT Tên trƣờng 1 ID 2 LastName 3 FirstName 4 HireDate 5 EnrollmentDate 6 Discriminator Bảng 3.1 : Thiết kế bảng Person
3.2.1.2 Bảng cơ sở dữ liệu OffceAssignment : Lưu trữ thông tin mã khoa, địa chỉ
TT Tên trƣờng
1 InstructorID 2 Location
Bảng 3.2 : Thiết kế bảng OfficeAssignment
3.2.1.3 Bảng cơ sở dữ liệu Enrollment : Lưu trữ thông tin mã giảng viên, mã khóa học, mã sinh viên
TT Tên trƣờng 1 EnrollmentID 3 CourseID 4 StudentID 5 Grade Bảng 3.3 : Thiết kế bảng Enrollment 52 download by : skknchat@gmail.com
3.2.1.4 Bảng cơ sở dữ liệu Department : Lưu trữ thông tin về mã khoa, tên khoa, học phí, ngày bắt đầu học, mã khóa giảng viên, khóa hàng
TT Tên trƣờng 1 DepartmentID 2 Name 3 Budget 4 StartDate 5 InstructorID 6 RowVersion Bảng 3.4 : Thiết kế bảng Department
3.2.1.5 Bảng cơ sở dữ liệu CourseInstructor : Lưu trữ thông tin khóa liên kết
giữa khóa học và giảng viên
TT 1 2
Bảng 3.5 : Thiết kế bảng CourseInstructor
3.2.1.6 Bảng cơ sở dữ liệu Course : Lưu trữ thông tin về mã môn học ; tên môn học, học phí liên kết với mã khoa phụ trách giảng dạy
TT Tên tƣờng 1 CourseID 2 Title 3 Credits 4 DepartmentID Bảng 3.6 : Thiết kế bảng Course 53 download by : skknchat@gmail.com
+ Lƣợc đồ cơ sở dữ liệu :
Hình 3.7: Lược đồ cơ sở dữ liệu
3.2.2 Xây dựng các thành phần của ứng dụng :
Mô tả các lớp đối tượng và phương thức tương ứng + Lớp Person :
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
54
namespace ktvUniversity.Models {
public abstract class Person {
public int ID { get; set; } [Required]
[StringLength(50)]
[Display(Name = “Last Name”)] public string LastName { get; set; } [Required]
[StringLength(50, ErrorMessage = “First name cannot be longer than 50 characters.”)]
[Column(“FirstName”)]
[Display(Name = “First Name”)]
public string FirstMidName { get; set; } [Display(Name = “Full Name”)]
public string FullName {
get {
return LastName + “, “ + FirstMidName; } } } } + Lớp Student : using System; using System.Collections.Generic; 55 download by : skknchat@gmail.com
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; namespace ktvUniversity.Models
{
public class Student : Person {
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = “{0:yyyy-MM-dd}”,
ApplyFormatInEditMode = true)] [Display(Name = “Enrollment Date”)] public DateTime
EnrollmentDate { get; set; }
public virtual Icollection<Enrollment> Enrollments { get; set; }
} } + Lớp OffceAssignment : using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ktvUniversity.Models {
public class OfficeAssignment {
[Key]
[ForeignKey(“Instructor”)]
public int InstructorID { get; set; } [StringLength(50)]
[Display(Name = “Offce Location”)] public string Location { get; set; }
56
public virtual Instructor Instructor { get; set; } } } + Lớp Instructor : using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ktvUniversity.Models {
public class Instructor : Person {
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = “{0:yyyy-MM-dd}”,
ApplyFormatInEditMode = true)] [Display(Name = “Hire Date”)] public DateTime HireDate { get; set; }
public virtual Icollection<Course> Courses { get; set; }
public virtual OffceAssignment OfficeAssignment { get; set; }
} } + Lớp Enrollment : using System.ComponentModel.DataAnnotations; namespace ktvUniversity.Models {
public enum Grade
57
{
A,B,C,D,F }
public class Enrollment {
public int EnrollmentID { get; set; } public int CourseID { get; set; } public int StudentID { get; set; } [DisplayFormat(NullDisplayText = “N grade”)] public Grade? Grade { get; set; }
public virtual Course Course { get; set; } public virtual Student Student { get; set; } } } + Lớp Department : using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespacektvUniversity.Models {
public class Department {
public int DepartmentID { get; set; } [StringLength(50, MinimumLength = 3)] public string Name { get; set; }
58
[DataType(DataType.Currency)] [Column(TypeName = “money”)] public decimal Budget { get; set; } [DataType(DataType.Date)]
[DisplayFormat(DataFormatString = “{0:yyyy-MM-dd}”,
ApplyFormatInEditMode = true)]
[Display(Name = “Start Date”)] public DateTime StartDate { get; set; } public int? InstructorID { get; set; } [Timestamp]
public byte[] RowVersion { get; set; }
public virtual Instructor Administrator { get; set; } public virtual Icollection<Course> Courses { get; set; }
} } + Lớp Course: using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ktvUniversity.Models {
public class Course {
[DatabaseGenerated(DatabaseGeneratedOption.Nne)] [Display(Name = “Number”)] public int CourseID { get; set; }
59
[StringLength(50, MinimumLength = 3)] public string Title { get; set; }
[Range(0, 5)]
public int Credits { get; set; }
public int DepartmentID { get; set; }
public virtual Department Department { get; set; }
public virtual Icollection<Enrollment> Enrollments { get; set; } public virtual Icollection<Instructor> Instructors { get; set; }
} }
3.2.3 Xây dựng các phân hệ :
+ Trang chủ :
Hình 3.8: Trang chủ của trang web
+ Sinh viên : Tạo mới các thông tin về sinh viên: họ đêm, tên sinh viên, ngày nhập học gồm các thao tác : sửa, hiện thị, xóa các thông tin sinh viên
60
Hình 3.9: Cập nhật các thông tin cho sinh viên
+ Môn học :Tạo mới các thông tin về môn học: Mã môn, tên môn, số tín chỉ, khoa giảng dạy gồm các thao tác : sửa, hiện thị, xóa các thông tin môn học
Hình 3.10: Cập nhật thông tin các môn học
61
+ Giảng viên: Tạo mới các thông tin về giảng viên: Họ đệm, tên giảng viên, ngày, ngày dạy, địa chỉ, môn học gồm các thao tác : sửa, hiện thị, xóa các thông tin giảng viên
Hình 3.11: Cập nhật thông tin về giảng viên
62
+ Khoa giảng dạy:Tạo mới các thông tin về khoa giảng dạy: tên khoa, học phí, ngày dạy giảng viên gồm các thao tác : sửa, hiện thị, xóa các thông tin giảng viên
Hình 3.12: Cập nhật thông tin về khoa giảng dạy
3.3. Đăng kí tài khoản Microft Azure
Đầu tiên ta cần phải đăng kí tài khoản Microsoft Azure thực hiện qua các bước như sau:
b1: Vào địa chỉ của trang Web Microsoft là
https://azure.microsoft.com/en-es/. Sau đó nhấn chọn nút “try for free”.
Hình 3.13. Vào địa chỉ của trang Web Microsoft
63
b2: Nhấn chọn nút “try it now”. Micrsoft sẽ cho một tháng sử dụng miễn phí. Đăng kí miễn phí và nhận 200$ để chi tiêu cho các dịch vụ của Azure.
Hình 3.14. Đăng ký tài khoản Microsoft Azure
b3: Tại đây nếu có tài khoản Microsoft Azure thì đăng nhập sử dụng dịch vụ trên Microsoft Azure bình thường. Nếu chưa có tài khoản ta cần đăng kí tài khoản mới rồi mới có thể đăng nhập bằng cách nhấn vào nút “Sign up now” để đăng kí.
Hình 3.15. Đăng nhập tài khoản.
64
b4: Tại đây điền đầy đủ thông tin cần đăng kí tài khoản. Sau đó chọn nút
“Create Acount” để tạo tài khoản.
Hình 3.16. Điền thông tin đăng ký
65
b5: Sau khi tạo Account kích chọn nút “Send email” để xác nhận tài khoản.
Hình 3.17. Gửi thông tin vào mail kích hoạt tài khoản
b6: Sau khi xác nhận tài khoản tiến hành đăng nhập và chuyển đến trang đăng nhập yêu cầu một số thông tin để hoàn tất. Để đăng kí được cần phải có thẻ Visa.
Hình 3.18 . Nhập các thông tin về để mở tài khoản.
66
b7: Sau khi đăng kí thành công kích vào Portal để sử dụng Azure. Đăng kí
thành công Microsoft Azure sẽ cho 30 ngày dùng thử miễn phí.
Hình 3.19 . Màn hình Microsoft Azure Portal
3.4. Đƣa trang Web lên Windows Azure3.4.1. Tạo trang Web rỗng trên Windows Azure 3.4.1. Tạo trang Web rỗng trên Windows Azure
1. Đăng nhập vào Quản lýPortal Azure.
2. Nhấp vào biểu tượngNew trên bên trái phía dưới của bảng điều khiển.
3. Nhấp vào biểu tượngWEP APP, và nhấp chọn CUSTOM CREATE
67
4. Xuất Hiện trang Create WeB App
+ Nhập tên website vào mục URL, nếu dùng free sẽ có dạng
tenwebsite.azurewebsites.net ; ở đây ta tạo : Vute3.azurewebsites.net . + Trong mục APP SERVICE PLAN : chọn nơi đặt máy chủ gần nhất .
+ Trong mục SUBCRIPTION chọn Free Trial
+ Trong mục DATABASE ta chọn Create a new MySQL database để tạo database mới
+ Trong mục DB CONNECTION STRING NAME ta đặt DefaultConnection. + Ấn nút Next xuất hiện trang Specify database setting
68
5. Trên trang Specify database setting ta thiết lập các thông số sau: + Trong mục NAME : gõ vào tên database cần đặt (ở đây là Vute3). + Trong mục SERVER ta chọn New SQL database server
+ Trong mục SERVER LOGIN NAME : gõ tên cơ sở dữ liệu trên máy chủ ( ở đây đặt là Schoolcontext 3).
+ Trong mục SERVER LOGIN PASSWORD : đặt mật khẩu và ở CONFIRM PASSWORD gõ lại mật khẩu vừa đặt.
+ Trong mục REGION : chọn nơi máy chủ ( chọn East Asia)
+ Chọn Next thì việc tạo không gian lưu trữ trang Web và cơ sở dữ liệu trống hoàn tất.
3.4.2. Đƣa trang Web và cơ sở dữ liệu lên Microsoft Azure
b1. Nhấp chuột vào trang web Vute3 từ Web apps
69
b2. Từ trangYour web app has been created chọnPublish your app
b3. Chọn nơi lưu gữi File PublishSetting
70
b4. Đưa trang Web lên Windows Azure: Tại project KtvUniversity chọn
Publish
b5. Chọn Import
71
+ Tìm đến file PublishSetting đã cất ở bước trước
+ Chọn OK
+Nếu mọi thứ tốt đẹp ta sẽ thấy như hình bên dưới gầnValidate Connection button. Click Next.
72
+ Lựa chọn Execute Code First Migration để đưa cơ sở dữ liệu trang web lên
host của Microsoft Azure
+ Chọn Publish
73
CHƢƠNG 4 – KẾT LUẬN 4.1. Kết quả đạt đƣợc
4.1.1. Về nghiên cứu các giải pháp của điện toán đám mây
- Hiểu được như thế nào là điện toán đám mây.
- Nhận biết được các thành phần của điện toán đám mây.
- Biết được cách thức hoạt động của điện toán đám mây. - Phân tích được các ưu nhược điểm của điện toán đám mây.
- Hiểu được sự khác biệt của điện toán đám mây và điện toán truyền thống. - Phân biệt được các mô hình hoạt động trên điện toán đám mây.
4.1.2. Về tìm hiểu điện toán đám mây của Windows Azure của Microsoft
- Hiểu được mô hình hoạt động của Windows Azure.
- Các thành phần chính trong Azure.
- Các mô hình kết nối cơ sở dữ liệu.
4.1.3. Xây dựng trang Web hệ thống nhập học sinh viên, tạo khóa học và tập huấn trên Windows Azure. tập huấn trên Windows Azure.
- Xây dựng được trang Web hệ thống nhập học sinh viên, tạo khóa học và tập huấn đưa lên Windows Azure portal. Truy nhập trang web theo http://vute3.azurewebsites.net/
- Tạo được giao diện thân thiện, người sử dung dễ dàng nhập mới các thông tin và cập nhật được các dữ liệu trên SQL server Azure.
4.2. Kết quả chƣa đạt đƣợc
- Việc nghiên cứu điện toán đám mây còn ở phạm vi hẹp. Chưa đưa ra đầy
đủ được hết các tính nổi bật, chức năng và cách thức sử dụng điện toán đám mây.
- Phạm vi nghiên cứu về Windows Azure còn hạn chế, các thành phần còn thiếu nhiều.
74
- Trang Web còn đang ở dạng đơn giản, chưa đáp ứng hết được nhu cầu của người dùng.
4.3. Phƣơng hƣớng phát triển
Trong thời gian tới tôi có thể tìm hiểu, nghiên cứu sâu về điện toán đám mây, đặc biệt là Windows Azure và vận dụng chúng vào công tác giảng dạy công nghệ thông tin tại khoa công nghệ thông tin Trường Đại học sư phạm kỹ thuật Vinh .
75
KẾT LUẬN
Sau một thời gian nghiên cứu nghiêm túc và khẩn trương với sự giúp đỡ của thầy giáo TS. Nguyễn Kim Khánh cùng các Thầy giáo, Cô giáo trong Viện Công nghệ thông tin và Truyền thông thuộc Trường Đại học Bách khoa Hà Nội và các bạn đồng nghiệp. Đến nay luận văn tốt nghiệp của tôi đã hoàn thành đúng thời gian chương trình đặt ra, đảm bảo nội dung yêu cầu của đề tài với nội dung đề tài “giải pháp thực tế của điện toán đám mây và ứng dụng trong giảng dạy đại học”. Trong quá trình thực hiện luận văn không tránh khỏi những thiếu sót như: nguồn tài liệu hạn chế, khả năng ngoại ngữ có hạn và cơ hội tiếp xúc các công nghệ mới, hiện đại của học viên còn ít, ngoài ra do tính chất đặc thù phát triển của ĐTĐM nên nội dung chưa hoàn toàn cập nhật, cô đọng, thiếu các diễn giải chi tiết, nhiều vấn đề chỉ nêu
mà chưa minh họa.
Cuối cùng tôi xin chân thành cảm ơn tới toàn thể các Thầy giáo, Cô giáo
trong Viện Công nghệ thông tin và Truyền thông thuộc trường Đại học bách khoa Hà Nội, các bạn bè, đồng nghiệp đặc biệt là thầy giáo TS.Nguyễn Kim Khánh đã nhiệt tình tạo mọi điều kiện thuận lợi nhất, hướng dẫn và giúp đỡ để tôi hoàn thành luận văn này.
Hà Nội, tháng 10 năm 2015
76
TÀI LIỆU THAM KHẢO Các tài liệu, báo cáo khoa học
1. David Chappell – Microsoft White Paper March 09, Introducing Windows Azure 2. Maheswaran.M, Cloud Computing, A Seminar Report
3. Microsoft White Paper, Introducing the Windows Azure Platform
4. Microsoft, An Introduction to Windows Azure Platform AppFabric for Developers
5. Oracle White Paper, Architectural Strategies for Cloud Computing
6. Stephen Fraser – Appress (2002), Re World ASP.NET: Building a Con tent Management System
7. Sun MicroSystems, Introduction to Cloud Computing
8. Huỳnh Quyết Thắng (chủ biên), Nguyễn Hữu Đức, Doãn Trung Tùng, Nguyễn Bình Minh, Trần Việt Trung, Điện toán đám mây, nhà xuất bản Bách Khoa Hà Nội 2014. Các trang Web 9. http://www.ibm.com 10. http://infreemation.net 11. www.forrester.com/ 12. www.en.wikipedia.com 13. http://laptrinhviet.net/Tai-lieu-huong-dan-lap-trinh-Asp-net-MVC5 14. http://pluralsight.com/training/Player?author=scott- allen&name=aspdotnet-mvc5-fundamentals-m1- introduction&mode=live&clip=0&course=aspdotnet-mvc5-fundamentals 15. http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using- mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application 16. http://hoccungdoanhnghiep.com/video-huong-dan-lap-trinh 17. https://vi.scribd.com/doc/163991717/Giao-Trinh-ASP-Net-Nang-Cao 77 download by : skknchat@gmail.com
18. https://vi.scribd.com/doc/238140410/Introduction-ASP-NET-MVC 19. http://sinhvienit.net/forum/video-asp-net-mvc-5-fundamentals-co-ban- day-du-va-co-code-tham-khao.300685.html 20. http://giaotrinhcntt.com/tai-lieu/tai-lieu-c-c-java-asp-net-mvc5-co-ban