Giao diện trình diễn của GraphHoper

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát triển thuật toán tìm đường cho nền tảng cung cấp dịch vụ địa chỉ việt nam​ (Trang 25 - 29)

2.5. Giới thiệu về Javascript và NodeJS 2.5.1. Giới thiệu, lịch sử phát triển Javascript 2.5.1. Giới thiệu, lịch sử phát triển Javascript

Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn ngữ lập trình Java lúc đó đang được coi là một hiện tượng [15]. JavaScript được bổ sung vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995. Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liên quan gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triển dựa trên cú pháp của C. JavaScript gồm 2 mảng là client-server thực hiện lệnh trên máy của end-user và web- server.

Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript. JScript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm

1996. JavaScript là một ngôn ngữ lập trình website, được tích hợp và nhúng trong HTML giúp website sống động. JavaScript cho phép kiểm soát các hành vi của trang web tốt hơn so với khi chỉ sử dụng HTML. JavaScript là ngôn ngữ lập trình được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome... thậm trí các trình duyệt trên thiết bị di động.

2.5.2 Giới thiệu về NodeJS

NodeJS là một nền tảng mã nguồn mở được xây dựng trên nền tảng Javascript V8 Engine của Chrome, được sử dụng để phát triển các ứng dụng Web. NodeJS sử dụng cơ chế hướng sự kiện , mô hình vào/ra không khóa, điều này làm cho NodeJS gọn nhẹ và hiệu quả. Các ứng dụng NodeJS được viết bằng Javascript và có thể chạy trên nhiều nền tảng khác nhau như OS X, Microsoft Windows và Linux. NodeJS cung cấp các thư viện phong phú ở dạng các mô-đun khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất [16].

NodeJS được tạo bởi Ryan Dahl từ năm 2009, và phát triển dưới sự bảo trợ của Joyent . NodeJS được tạo lần đầu cho hệ điều hành Linux sử dụng. Nó được phát triển và bảo trì vởi Ryan Dahl và được tài trợ bởi Joyent Trong năm 2011, một bộ phần package manager đã giới tiệu bộ thư viện cho NodeJS gọi là npm. Tháng 6 năm 2011, Microsoft hợp tác với Joyent để tạo ra bản cho Windows. Tháng 12, Do xung đột nội bộ nên NodeJS bị chia rẽ, IO.js được hình thành [16].

Những lý do để sử dụng NodeJS:

• Bất đồng bộ và hướng sự kiện: Tất cả API của các thư viện NodeJS đều bất đồng bộ. Về cơ bản, nó có nghĩa là một máy chủ NodeJS không bao giờ chờ một API trả về dữ liệu. Máy chủ sẽ chuyển sang API tiếp theo sau khi gọi một API và cơ chế thông báo sự kiện của NodeJS giúp máy chủ nhận được phản hồi từ cuộc gọi API trước đó.

NodeJS sử dụng một chương trình luồng duy nhất và cùng một chương trình có thể cung cấp dịch vụ cho một số lượng yêu cầu lớn hơn so với các máy chủ kiểu truyền thống như Apache HTTP Server.

• Không đệm: Các ứng dụng NodeJS không bao giờ đệm dữ liệu.

• Thời gian thực: ở đây chính là xử lý giao tiếp từ máy khách tới máy chủ theo thời gian thực.

2.6. Giới thiệu về Python và các thư viện, bộ thư viện sử dụng 2.6.1. Giới thiệu về Python 2.6.1. Giới thiệu về Python

Python là ngôn ngữ lập trình bậc cao, dùng để phát triển website và nhiều ứng dụng khác nhau. Python được ra bởi Guido van Rossum và được phát triển trong dự án mã nguồn mở [17]. Python đã được hình thành vào cuối những năm 1980, và việc thực hiện nó vào tháng 12 năm 1989 bởi Guido van Rossum tại Centrum Wiskunde & Informatica (CWI) ở Hà Lan như là một kế thừa cho ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có khả năng xử lý ngoại lệ và giao tiếp với Hệ điều hành Amoeba. Van Rossum là tác giả chính của Python, và vai trò trung tâm của ông trong việc quyết định hướng phát triển của Python [17].

Python 2.0 đã được phát hành vào ngày 16 tháng 10 năm 2000 và có nhiều tính năng mới, bao gồm bộ thu gom rác theo chu kỳ và hỗ trợ Unicode. Với việc phát hành này quá trình phát triển đã được thay đổi và trở nên minh bạch hơn và cộng đồng hậu thuẫn. Python 3.0 được phát hành năm 2008, sau một thời gian dài thử nghiệm. Cho tới năm 2017, Python đang có phiên bản 3.7.

Đặc điểm nổi bật

• Ngữ pháp đơn giản, dễ đọc.

• Vừa hướng thủ tục, vừa hướng đối tượng.

• Hỗ trợ module và hỗ trợ gói (package).

• Xử lý lỗi bằng ngoại lệ (Exception).

• Kiểu dữ liệu động ở mức cao.

• Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình.

• Có khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho Jython, hoặc .Net cho IronPython).

2.6.2 Bộ thư viện Scikit-Learn (sklearn)

Dự án này đã được bắt đầu vào năm 2007 như là một dự án Google Summer of Code của David Cournapeau. Cuối năm đó, Matthieu Brucher bắt đầu thực hiện dự án này như một phần của luận án của mình.

Năm 2010, Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort và Vincent Michel của INRIA đã lãnh đạo dự án và phát hành công khai lần đầu tiên vào ngày 1 tháng 2 năm 2010. Kể từ đó, một số bản phát hành đã xuất hiện sau chu kỳ ~ 3 tháng và phát triển mạnh cộng đồng quốc tế đã và đang dẫn đầu sự phát triển [18].

Scikit-learn (viết tắt là sklearn) là một thư viện mã nguồn mở trong ngành học máy, rất mạnh mẽ và thông dụng với cộng đồng Python, được thiết kế trên nền NumPy và SciPy. Scikit-learn chứa hầu hết các thuật toán học máy hiện đại nhất, đi kèm với tài liệu chi tiết. Điểm mạnh của thư viện này là nó được sử dụng phổ biến trong học thuật và công nghiệp, do đó nó luôn được cập nhật và có một cộng đồng người dùng sử dụng lớn [19].

Hiện nay có nhiều thư viện mã nguồn mở phục vụ cho nghiên cứu học máy. Bên cạnh Scikit-learn, có 2 thư viện nổi bật khác là:

• LibSVM: Được viết trên C bởi Chih-Chung Chang và Chih-Jen Lin. Như tên gọi của nó, thư viện này chứa các thuật toán SVM (Support Vector Machine), nhóm thuật toán mạnh mẽ hỗ trợ cả regression và classification tasks [20].

• TensorFlows: Do các nhà khoa học của viện nghiên cứu Google Brain phát triển. TensorFlows được viết trên Python và là thư viện mở [21].

Trong khi TensorFlows ở mức độ cấp thấp thì Scikit-learn cho phép ta sử dụng ngay các thuật toán quan trọng một cách đơn giản và hiệu quả. Nói vậy không có nghĩa Scikit-

2.6.3 Flask

Trong phát triển ứng dụng web, Python có nhiều bộ thư viện hỗ trợ lập trình viên như Django, Tornado, Pyramid,… Trong đó, Flask là một bộ thư viện nhỏ gọn được viết bằng Python. “Nhỏ gọn” không có nghĩa là thiếu chức năng mà “nhỏ gọn” theo triết lý thiết kế là cung cấp một lõi chức năng cần thiết nhất cho ứng dụng web nhưng người dùng có thể mở rộng bất cứ lúc nào. Flask luôn hỗ trợ các thành phần tiện ích mở rộng cho ứng dụng như tích hợp cơ sở dữ liệu, xác thực biểu mẫu, xử lý tải lên, các công nghệ xác thực, mẫu, email, RESTful..., chỉ khác là khi nào bạn muốn thì bạn mới đưa vào thôi [22]. Người dùng có thể tập trung xây dựng ứng dụng web ngay từ đầu trong một khoảng thời gian rất ngắn và có thể phát triển quy mô của ứng dụng tùy theo yêu cầu.

Sau khi cài đặt Python, để cài đặt Flask chỉ cần bạn gõ lệnh: pip install Flask Bây giờ chúng ta thử tạo ứng dụng web với câu chào Hello World!. Thật đơn giản bạn sẽ tạo một thư mục với tên thư mục là tên ứng dụng, sau đó, tạo một tập tin .py và viết mã. Ví dụ như: hello.py như Hình 2.3.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát triển thuật toán tìm đường cho nền tảng cung cấp dịch vụ địa chỉ việt nam​ (Trang 25 - 29)

Tải bản đầy đủ (PDF)

(53 trang)