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

14 861 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 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.

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 Luận văn 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 bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thơng Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thơng MỞ ĐẦU Lý chọn đề tài F# ngơn ngữ lập trình đa tảng NET F# hợp mơ hình: lập trình hàm, lập trình cấu trúc lập trình hướng đối tượng.Với F#, chọn mơ hình để giải vấn đề, toán cho hiệu kết hợp phong cách lập trình vào chương trình để khai thác mạnh mơ hình Điện tốn đám mây xu hướng công nghệ tương lai Do chọn đề tài phát triển ứng dụng 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ục đích nghiên cứu Tìm hiểu ngơn ngữ / công cụ F# thử nghiệm xây dựng ứng dụng tảng Azure Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu ngôn ngữ lập trình F#, tảng MS Azure, thư viện Cloud Numerics Phương pháp nghiên cứu Viết ứng dụng F# sử dụng thư viện Cloud Numerics Sử dụng tiện ích đóng gói để mở rộng ứng dụng tới Windows Azure cloud 2 CHƯƠNG 1: NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY MS AZURE 1.1 Nền tảng điện toán đám mây Microsoft Azure Nền tảng MS Azure nhóm cơng nghệ đám mây, công nghệ cung cấp tập dịch vụ đặc trưng hỗ trợ phát triển ứng dụng Hình 1.1: Nền tảng MS Azure hỗ trợ ứng dụng, liệu sở hạ tầng đám mây Các thành phần tảng MS Azure : Windows Azure: Cung cấp môi trường tảng Windows để chạy ứng dụng lưu trữ liệu máy chủ trung tâm liệu Microsoft SQL Azure: Cung cấp dịch vụ liệu đám mây dựa SQL Server Windows Azure Platform AppFabric: Cung cấp dịch vụ đám mây để kết nối ứng dụng chạy đám mây On-Premise 1.2 Giới thiệu công cụ Cloud Numerics Công cụ “Cloud Numerics” chuỗi công cụ thực hành SQL Aruze để quản lý phân tích liệu lớn điện tốn đám mây với Window Aruze SQL Aruze Nó cho phép ứng dụng viết Visual Studio mở rộng, triển khai, chạy Window Azure với điện toán hiệu cao (HPC) 3 1.3 Giới thiệu SaaS Khái niệm phần mềm SaaS đơn giản: thay phải cấp phép sử dụng vĩnh viễn cho phần mềm 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 vấn đề khác bảo mật, nâng cấp tính phía nhà cung cấp phần mềm SaaS thực hiện, bạn hưởng lợi từ nâng cấp mà khơng phải trả thêm khoản phí nào.Thơng thường, ứng dụng SaaS thường có đặc điểm sau: Sử dụng phần mềm qua môi trường web thay sử dụng máy tính khách hàng trước Phầm mềm lưu trữ máy chủ nhà cung cấp dịch vụ Thay phải trả tiền lần để sở hữu phần mềm vĩnh viễn khách hàng trả phí định kì hàng tháng để sử dụng phần mềm Các tính cải tiến thực nhà cung cấp phần mềm người sử dụng hồn tồn khơng phải trả thêm phí cho cải tiến Bạn truy cập ứng dụng SaaS đâu, nơi miễn nơi có kết nói internet Đây lợi điểm khơng nhỏ ứng dụng SaaS Chính khả mang lại cho ứng dụng SaaS có nhiều hội tương lai Kết chương Nội dung chương luận văn chủ yếu giới thiệu tảng điện toán đám mây Microsoft số khái niệm cần thiết để phát triển ứng dụng tảng Qua cung cấp nhìn tổng quan cho phát triển phần mềm hay ứng dụng Visual Studio CSDL SQL Server 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 mơ hình lập trình xem việc tính tốn đánh giá hàm toán học tránh sử dụng trạng thái 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 thay đổi trạng thái Lập trình hàm xuất phát từ phép tính lambda, hệ thống hình thức phát triển vào năm 1930 để nghiên cứu định nghĩa hàm số, ứng dụng hàm số, đệ quy Nhiều ngơn ngữ lập trình hàm xem cách phát triển giải tích lambda Trong thực tế, khác biệt hàm số toán học cách dùng từ "hàm" lập trình mệnh lệnh hàm mệnh lệnh tạo hiệu ứng lề, làm thay đổi giá trị phép tính trước Vì hàm kiểu thiếu tính suốt tham chiếu, có nghĩa biểu thức ngơn ngữ lại tạo nhiều giá trị khác vào thời điểm khác tùy thuộc vào trạng thái chương trình thực thi Ngược lại, lập trình hàm, giá trị xuất hàm phụ thuộc vào tham số đầu vào hàm, gọi hàm f hai lần với giá trị tham số x cho kết f(x) Việc loại bỏ hiệu ứng lề làm cho chương trình dễ hiểu nhiều người ta có dự đốn hành vi chương trình, động lực cho phát triển lập trình hàm 2.1.2 Lập trình hàm Một số khái niệm mơ hình có lập trình hàm, thường xa lạ với kiểu lập trình mệnh lệnh (bao gồm lập trình hướng đối tượng) Tuy nhiên, ngơn ngữ lập trình thường lai tạp nhiều hình thái lập trình khác để lập trình viên sử dụng ngơn ngữ "mệnh lệnh nhất" tận dụng số khái niệm này: - Hàm hạng hàm bậc cao - Hàm túy 5 - Đệ quy - Tính tốn chặt khơng chặt - Hệ thống kiểu, tính đa hình, kiểu liệu đại số so trùng mẫu - Lập trình hàm ngơn ngữ phi hàm 2.1.3 Ứng dụng Các ngơn ngữ lập trình hàm, đặc biệt loại lập trình hàm, có ảnh hưởng lớn giới học thuật dùng để phát triển phần mềm thương mại Tuy vậy, ngôn ngữ lập trình hàm bật Scheme, Erlang, Objective aml, Haskell nhiều tổ chức khác sử dụng ứng dụng công nghiệp thương mại Lập trình hàm sử dụng cơng nghiệp thơng qua ngơn ngữ lập trình chun biệt R (thống kê ) , Mathematica (tốn học hình thức), J K (phân tích tài chính) F# Microsoft NET XSLT (XML) Các ngôn ngữ chuyên biệt dạng khai báo sử dụng rộng rãi SQL Lex/Yacc, sử dụng số thành phần lập trình hàm, đặc biệt để tránh giá trị biến đổi Các bảng tính (spreadsheet) xem ngơn ngữ lập trình hàm 2.2 Các kỹ thuật tiêu biểu lập trình hàm sử dụng F# 2.2.1 Giới thiệu F# F# ngôn ngữ lập trình hàm tảng NET Nó kết hợp tính ngắn gọn, khả truyền đạt, kết cấu lập trình chức với hỗ trợ runtime, thư viện, khả tương tác, công cụ mơ hình đối tượng NET F# khác với ngơn ngữ lập trình chức khác chổ bao hàm lập trình bắt buộc lập trình hướng đối tượng Nó cung cấp liên kết ngôn ngữ biên dịch ngôn ngữ động, kết hợp đặc ngữ phong cách lập trình đặc trưng ngơn ngữ động với hiệu suất mạnh mẽ ngôn ngữ biên dịch Những người thiết kế F#đã kế thừa phong cách thiết kế cho phép bạn có khía cạnh tốt hiệu mơ hình kết hợp chúng đặt trọng tâm kỹ thuật lập trình chức 6 F # NET cung cấp cách tiếp cận lập trình máy tính tiếp tục gây ngạc nhiên thích thú, việc làm chủ kỹ thuật lập trình chức giúp bạn trở thành lập trình viên tốt ngôn ngữ mà bạn sử dụng F# cung cấp đường tốt để tìm hiểu áp dụng lập trình hàm tảng NET 2.2.2 Xây dựng đặc tả lập trình hàm F# - Danh mục Literals - Tham số hóa phần(Curried functions) - Kiểu 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) - So khớp( Patterm Matching) 2.3 Các thư viện F# Một số thư viện thường dùng để xử lý liệu F# open Microsoft.FSharp.Core.Operators open Microsoft.FSharp.Collections open Microsoft.FSharp.Reflection open Microsoft.FSharp.Text.Printf open Microsoft.FSharp.Control.Event 2.3.1 Thư viện toán học (Microsoft.FSharp.Core.Operators) 2.3.2 Microsoft.FSharp.Collections Là module cung cấp số chức cho giao diện Ienumerable 7 2.3.3 Microsoft.FSharp.Reflection Là module chứa tham chiếu đến NetFrameWork 2.3.4 Microsoft.FSharp.Text.Printf Một module chứa kiện xử lý chuỗi ký tự 2.3.5 Microsoft.FSharp.Control.Event Một module để làm việc với kiện F# Kết chương Kết thúc chương tư tốn theo quan điểm lập trình hàm tổ chức xây dựng thành phần hàm F# để giải tốn Có thể sử dụng F# để phát triển ứng dụng sử dụng F# để giải vài toán ứng dụng viết ngôn ngữ khác 8 CHƯƠNG 3: THỬ NGHIỆM XÂY DỰNG ỨNG DỤNG “PHÂN TÍCH DỮ LIỆU VẬN TẢI” TRÊN AZURE VỚI F# 3.1 Phát triển ứng dụng tảng điện toán đám mây Để phát triển ứng dụng tảng điện toán đám mây, cụ thể ứng dụng F# sử dụng thư viện (tiện ích đóng gói) Cloud Numerics cần thực bước sau đây: Bước 1: Nhận Azure Subscription ID 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ý 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 đó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 thành phần hàm F# Với ứng dụng xử lý liệu vận tải cần phát triển ba thành phần hàm chính: - Đọc liệu đầu vào: InputData() - Xử lý liệu: Main() - Hiển thị liệu sau xử lý : WriteOutput() 3.3.1 Phân tích liệu đầu vào phát triển hàm InputData() Ứng dụng luận văn lấy liệu đầu vào file csv Mỗi tháng file với tên Ontime_Ontime_Performance__ có sẵn http://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=OnTime, file chứa thông tin chi tiết chuyến bay hoa kỳ từ năm 1987 đến Khai báo hàm InputData() với tham số truyền vào kiểu string trả lại kết danh sách object (list[object]) Mỗi object tương ứng với hàng 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 biến thông tin tài khoản Azure thực Credential - Ghi tham số truyền vào tới blob Window Azure Storage 3.3.3 Phát triển hàm main() - Khai báo chuỗi lưu trữ liệu đầu vào - Triệu gọi hàm InputData() đọc liệu đổ vào list - Duyệt phần tử list thực thuật toán thống kê để tạo chuỗi kết - Triệu gọi hàm WriteOutput() ghi chuỗi kết nhận tới Window Azure Storage 3.4 Thử nghiệm đánh giá ứng dụng - Quay trở lại hình deploy ứng dụng, chọn tab Application Code, browse đến file exe thư mục bin ứng dụng sau build chọn Submit Job Deployment Actions - Đăng nhập vào Window Azure HPC Scheduler Web portal để kiểm tra trạng thái công việc vừa thực - Chọn ứng dụng vừa thực All jobs chọn tab View Tasks để hiển thị chi tiết trạng thái ứng dụng Window Azure - Mở file flightdataresult csv từ Azure Storage để hiển thị kết tính tốn ứng dụng 10 Hình 3.15: Kết tính tốn ứng dụng Từ hình kết ứng dụng, thấy rằng: + Khoảng 70% chuyến bay đến chậm không phút + Trên phút tỉ lệ chậm giảm dần từ 8.5%, 4.0%, 2.1%, 1.1%, 0.6% + Nếu chuyến bay chậm 35 phút xác suất 50% chuyến bay chậm thêm khoảng 35 phút Kết chương Việc sử dụng thư viện ( tiện ích đóng gói) Cloud Numerics giúp cho q trình đóng gói ứng dụng đẩy lên Window Azure dễ dàng Các thao tác giống đóng gói ứng dụng đưa lên host Khi phát triển thành phần hàm F# nên sử dụng phong cách lập trình hàm để phát triển hàm phân tích, thống kê liệu lớn 11 KẾT LUẬN Đánh giá 1.1 Phân tích, đánh giá lựa chọn cơng nghệ - Cách khai báo F# ngắn gọn tiện lợi cho người tiếp cận - Với phát triển ứng dụng ngôn ngữ khác C#, Java,… Có thể tiếp cận F# dễ dàng cách sử dụng kỹ thuật lập trình hướng đối tượng F# sử dụng 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 F# nhiều gặp phải khó khăn chưa quen với phong cách lập trình hàm 1.2 Phát triển ứng dụng (SaaS) tảng điện toán đám mây Phát triển ứng dụng SaaS 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 chi phí vận hành tài nguyên mua cần trả tiền sử dụng - Giải phóng đội ngũ nhân viên trì phần cứng phần mềm Bên cạnh việc phát triển SaaS tảng điện tốn đám mây cịn số rào cản sau: - Tư sở hữu: Các tổ chức, doanh nghiệp khó thay đổi nhận thức chuyển từ hình thức sử dụng riêng thành mua thuê dịch vụ - Lo ngại an toàn bảo mật: Lãnh đạo nhiều DN lo ngại liệu họ tung lên “đám mây” bị truy xuất trái phép - Ngại đổi 1.3 Hướng tập cận lập trình hàm xây dựng ứng dụng SaaS Để tiếp cận lập trình hàm xây dựng ứng dụng SaaS nên áp dụng quan điểm sau: 12 - Phân tích ứng dụng SaaS dạng hàm định nghĩa lập trình hàm - Dùng tính tốn khơng chặt làm chế để tăng tính module hóa chương trình thơng qua q trình chia nhỏ toán - Sử dụng kiểu liệu đại số so trùng mẫu để thao tác cấu trúc liệu phức tạp 1.4 Kết đạt - Tổng quan tảng điện toán đám mây MS Azure phần mềm dịch vụ SaaS - Giới thiệu ngơn ngữ, cơng cụ lập trình F# khái niệm sở lập trình hàm - Phương pháp đưa ứng dụng lên Azure sử dụng thư viện Cloud Numerics - Tư phát triển ứng dụng SaaS sử dụng lập trình hàm F# Kiến nghị nghiên cứu Một số hướng nghiên cứu luận văn tương lai: - Phát triển thử nghiệm ứng dụng với thống kê chi tiết tiện ích cho người dùng - Phát triển thử nghiệm ứng dụng với liệu lĩnh vực khác như: y học, tài ngân hàng,… Kết luận Tồn luận văn gồm ba nội dung chính: Giới thiệu ngơn ngữ, cơng cụ lập trình hàm F#,giới thiệu tảng điện toán đám mây MS Azure, thử nghiệm phát triển ứng dụng tảng F# Qua cung cấp phong cách lập trình để phát triển ứng dụng (kết hợp phong cách lập trình quen thuộc), phương pháp đưa ứng dụng lên MS Azure hướng phát triển ứng dụng SaaS lập trình hàm ... NGHIỆM XÂY DỰNG ỨNG DỤNG “PHÂN TÍCH DỮ LIỆU VẬN TẢI” TRÊN AZURE VỚI F# 3.1 Phát triển ứng dụng tảng điện toán đám mây Để phát triển ứng dụng tảng điện toán đám mây, cụ thể ứng dụng F# sử dụng thư viện... Numerics Sử dụng tiện ích đóng gói để mở rộng ứng dụng tới Windows Azure cloud 2 CHƯƠNG 1: NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY MS AZURE 1.1 Nền tảng điện toán đám mây Microsoft Azure Nền tảng MS Azure nhóm... để phát triển ứng dụng - Lập trình theo phong cách lập trình hàm F# nhiều gặp phải khó khăn chưa quen với phong cách lập trình hàm 1.2 Phát triển ứng dụng (SaaS) tảng điện toán đám mây Phát triển

Ngày đăng: 22/10/2014, 22:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan