PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY MICROSOFT AZURE SỬ DỤNG CÔNG CỤ LẬP TRÌNH HÀM F - Pdf 23

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CAO TIẾN DƯƠNG
PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY
MICROSOFT AZURE SỬ DỤNG CÔNG CỤ LẬP TRÌNH HÀM F#
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
1
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS HUỲNH QUYẾT THẮNG
Phản biện 1: ……………………………………………………………………………………………
Phản biện 2: ……………………………………………………………………………………………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính
Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1
MỞ ĐẦU
1. Lý do chọn đề tài
F# là một ngôn ngữ lập trình đa năng trên nền tảng .NET. F# hợp nhất cả 3 mô hình:
lập trình hàm, lập trình cấu trúc và lập trình hướng đối tượng.Với F#, có thể chọn bất cứ mô
hình nào để giải quyết các vấn đề, các bài toán sao cho hiệu quả nhất hoặc kết hợp cả 3
phong cách lập trình trên vào trong một chương trình để khai thác thế mạnh của mỗi mô
hình.
Điện toán đám mây đang là xu hướng công nghệ hiện tại và trong tương lai. Do vậy
tôi chọn đề tài phát triển ứng dụng trên nền tảng điện toán đám mây MS Azure sử dụng
công cụ lập trình hàm F#.

một phần mềm thì giờ đây các nhà cung cấp phần mềm cho phép khách hàng sử dụng phần
mềm theo cách đóng phí định kì. Tất cả những vấn đề khác như bảo mật, nâng cấp tính năng
đều do phía nhà cung cấp phần mềm SaaS thực hiện, bạn sẽ được hưởng lợi từ những nâng
cấp này mà không phải trả thêm một khoản phí nào.Thông thường, một ứng dụng SaaS
thường có những đặc điểm như sau:
1. Sử dụng phần mềm qua môi trường web thay vì sử dụng trên máy tính của khách
hàng như trước đây.
2. Phầm mềm được lưu trữ trên máy chủ của nhà cung cấp dịch vụ.
3. Thay vì phải trả tiền một lần để sở hữu phần mềm vĩnh viễn thì khách hàng có thể
trả phí định kì hàng tháng để sử dụng phần mềm.
4. Các tính năng cải tiến được thực hiện bởi nhà cung cấp phần mềm và người sử
dụng hoàn toàn không phải trả thêm phí cho những cải tiến này.
Bạn có thể truy cập ứng dụng SaaS bất cứ đâu, bất cứ nơi nào miễn là nơi đó có kết
nói internet. Đây cũng là một lợi điểm không hề nhỏ của các ứng dụng SaaS. Chính khả
năng này mang lại cho những ứng dụng SaaS có nhiều cơ hội trong tương lai.
Kết chương
Nội dung trong chương 1 của luận văn chủ yếu giới thiệu về nền tảng điện toán đám
mây của Microsoft và một số khái niệm cần thiết để phát triển ứng dụng trên nền tảng này.
Qua đó cung cấp một cái nhìn tổng quan cho những ai đang phát triển phần mềm hay ứng
dụng bằng Visual Studio và CSDL SQL Server nếu muốn chuyển hệ thống phần mềm cũ
thành SaaS hay muốn đưa ứng dụng local lên Window Azure.
4
CHƯƠNG 2: KỸ THUẬT LẬP TRÌNH HÀM SỬ DỤNG F#
2.1 Hướng tiếp cận lập trình hàm
2.1.1 Tổng quan
Trong ngành khoa học máy tính, lập trình hàm là một mô hình lập trình xem việc tính
toán là sự đánh giá các hàm toán học và tránh sử dụng trạng thái và các dữ liệu biến đổi.
Lập trình hàm nhấn mạnh việc ứng dụng hàm số, trái với phong cách lập trình mệnh lệnh,
nhấn mạnh vào sự thay đổi trạng thái. Lập trình hàm xuất phát từ phép tính lambda, một hệ
thống hình thức được phát triển vào những năm 1930 để nghiên cứu định nghĩa hàm số, ứng

biệt như R (thống kê ) , Mathematica (toán học hình thức), J và K (phân tích tài chính).
F# trong Microsoft .NET và XSLT (XML). Các ngôn ngữ chuyên biệt dạng khai báo
được sử dụng rộng rãi hiện nay như SQL và Lex/Yacc, cũng sử dụng một số thành phần của
lập trình hàm, đặc biệt để tránh các giá trị biến đổi. Các bảng tính (spreadsheet) cũng có thể
được xem là các ngôn ngữ lập trình hàm.
2.2 Các kỹ thuật tiêu biểu trong lập trình hàm sử dụng F#
2.2.1 Giới thiệu F#
F# là ngôn ngữ lập trình hàm trên nền tảng .NET. Nó kết hợp tính ngắn gọn, khả
năng truyền đạt, và kết cấu của lập trình chức năng với sự hỗ trợ các runtime, các thư viện,
khả năng tương tác, công cụ và mô hình đối tượng của .NET.
F# khác với các ngôn ngữ lập trình chức năng khác ở chổ nó bao hàm cả lập trình bắt
buộc và lập trình hướng đối tượng. Nó cũng cung cấp một sự liên kết giữa ngôn ngữ biên
dịch và ngôn ngữ động, kết hợp các đặc ngữ và phong cách lập trình đặc trưng của ngôn
ngữ động với hiệu suất và sự mạnh mẽ của một ngôn ngữ biên dịch. Những người thiết kế
F#đã kế thừa một phong cách thiết kế cho phép bạn có những khía cạnh tốt nhất và hiệu quả
nhất của các mô hình và kết hợp chúng trong khi vẫn đặt trọng tâm chính về kỹ thuật lập
trình chức năng.
6
F # và .NET cung cấp một cách tiếp cận mới đối với lập trình trên máy tính và nó sẽ
tiếp tục gây ngạc nhiên và thích thú, và việc làm chủ kỹ thuật lập trình chức năng sẽ giúp
bạn trở thành một lập trình viên tốt hơn bất kể ngôn ngữ mà bạn sử dụng. F# cung cấp con
đường tốt nhất để tìm hiểu và áp dụng lập trình hàm trên nền tảng .NET.
2.2.2 Xây dựng các đặc tả của lập trình hàm bằng F#
- Danh mục Literals.
- Tham số hóa từng phần(Curried functions).
- Kiểu và suy luận kiểu(Type and Type Inferencing).
- Danh sách( List).
- Đa hình( Polymorphism).
- Các hàm bậc cao( Higher – Order Functions).
- Trừu tượng( Functional abstraction).

Bước 2: Tạo ứng dụng F# sử dụng thư viện Cloud Numerics.
Bước 3: Cấu hình tài khoản dịch vụ Azure.
Bước 4: Nhập thông tin Cluster in Azure đã đăng ký và số lượng nút.
Bước 5: Quản lý dịch vụ lưu trữ SQL Azure.
Bước 6: Tạo, cấu hình và đóng gói Cloud Numerics Cluster.
3.2. Kiến trúc ứng dụng
User -> Input Data –> Window Azure HPC Portal –> System library (F# and Cloud
Numerics assembly) ->Output Data -> Window Azure HPC Portal -> User.
3.3. Phát triển các thành phần hàm F#
Với ứng dụng xử lý dữ liệu vận tải cần phát triển ba thành phần hàm chính:
- Đọc dữ liệu đầu vào: InputData().
- Xử lý dữ liệu: Main().
- Hiển thị dữ liệu sau khi xử lý : WriteOutput().
3.3.1 Phân tích dữ liệu đầu vào và phát triển hàm InputData()
Ứng dụng trong luận văn lấy dữ liệu đầu vào là các file .csv. Mỗi tháng sẽ là một file
với tên Ontime_Ontime_Performance_<tên tháng>_<tên năm> có sẵn tại
9
-
Time, các file này chứa thông tin chi tiết của các chuyến bay tại hoa kỳ từ năm 1987 đến
nay.
Khai báo hàm InputData() với tham số truyền vào kiểu string và trả lại kết quả là
danh sách các object (list[object]). Mỗi object tương ứng với một hàng trong file .csv:
Let InputData(l: string) = let mutable outList = []
3.3.2 Phát triển hàm WriteOutput()
- Khai báo Hàm WriteOutput với tham số truyền vào kiểu string.
- Khai báo các biến thông tin tài khoản Azure và thực hiện Credential.
- Ghi tham số truyền vào tới một blob trong Window Azure Storage.
3.3.3 Phát triển hàm main()
- Khai báo chuỗi lưu trữ dữ liệu đầu vào.
- Triệu gọi hàm InputData() đọc dữ liệu và đổ vào một list.

1.1 Phân tích, đánh giá lựa chọn công nghệ.
- Cách khai báo trong F# ngắn gọn và tiện lợi hơn cho những người mới tiếp cận.
- Với những ai đang phát triển ứng dụng bằng ngôn ngữ khác như C#, Java,… Có thể
tiếp cận F# dễ dàng hơn bằng cách sử dụng kỹ thuật lập trình hướng đối tượng trong F# và
sử dụng các thư viện .net để phát triển ứng dụng đó.
- Lập trình theo phong cách lập trình hàm trong F# ít nhiều gặp phải khó khăn nếu
chưa quen với phong cách lập trình hàm.
1.2 Phát triển ứng dụng (SaaS) trên nền tảng điện toán đám mây
Phát triển ứng dụng SaaS trên nền tảng điện toán đám mây đem lại nhiều lợi ích cho
người dùng như:
- Giảm thiểu chi phí đầu tư ban đầu và chi phí vận hành vì các tài nguyên chỉ được
mua khi cần và chỉ trả tiền khi sử dụng.
- Giải phóng được đội ngũ nhân viên duy trì phần cứng và phần mềm.
Bên cạnh đó việc phát triển SaaS trên nền tảng điện toán đám mây còn một số rào
cản sau:
- Tư duy sở hữu: Các tổ chức, doanh nghiệp khó thay đổi về nhận thức khi chuyển từ
hình thức sử dụng riêng thành mua hoặc thuê dịch vụ.
- Lo ngại về an toàn bảo mật: Lãnh đạo nhiều DN còn lo ngại khi dữ liệu của họ
được tung lên “đám mây” sẽ bị truy xuất trái phép.
- Ngại đổi mới.
1.3 Hướng tập cận lập trình hàm trong xây dựng ứng dụng SaaS
Để tiếp cận lập trình hàm trong xây dựng ứng dụng SaaS nên áp dụng những quan
điểm sau:
12
- Phân tích ứng dụng SaaS dưới dạng các hàm đã được định nghĩa trong lập trình
hàm.
- Dùng tính toán không chặt làm cơ chế để tăng tính module hóa của chương trình
thông qua quá trình chia nhỏ bài toán.
- Sử dụng các kiểu dữ liệu đại số và so trùng mẫu để thao tác các cấu trúc dữ liệu
phức tạp.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status