1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng hệ thống phần mềm (dạng web trên nền tảng đám mây) hỗ trợ học sinh phổ thông học toán

18 971 11
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Phần Mềm (Dạng Web Trên Nền Tảng Đám Mây) Hỗ Trợ Học Sinh Phổ Thông Học Toán
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 33,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng hệ thống phần mềm (dạng web trên nền tảng đám mây) hỗ trợ học sinh phổ thông học toán

Trang 1

CHƯƠNG 1 GIẢI PHÁP CHO VẤN ĐỀ

1.1 Giải pháp chức năng

Phát biểu chi tiết bài toán sẽ giải quyết

Xây dựng hệ thống phần mềm (dạng web trên nền tảng đám mây) hỗ trợ học sinh phổ thông học toán Hệ thống là một tập những công cụ giải các dạng toán quen thuộc ở chương trình học phổ thông giới hạn trong lĩnh vực đại số & giải tích Cụ thể hệ thống sẽ giải quyết những vấn đề sau :

 Công cụ tính toán : Hệ thống cho phép học sinh chọn một công cụ tính toán, sau đó nhập vào biểu thức toán học tương ứng Hệ thống sẽ đưa ra kết quả tính toán và bài giải chi tiết (nếu có) cho học sinh Danh sách những công cụ được xây dựng :

 Giải phương trình (bậc 1, bậc 2, bậc 3, , phương trình lượng giác)

 Giải hệ phương trình

 Tìm giới hạn (biểu thức, hàm số)

 Tính đạo hàm biểu thức

 Khảo sát và vẽ đồ thị hàm số

 Tìm nguyên hàm với biểu thức cho trước

 Tính tích phân của biểu thức

 Lý thuyết : ứng với mỗi công cụ tính toán là một bộ lý thuyết tóm tắt xoay quanh vấn đề này Sau khi chọn công cụ tính toán, học sinh có thể xem những lý thuyết liên quan đến bài toán mà công cụ này giải quyết (ví dụ : với công cụ khảo sát hàm số, tương ứng sẽ có phần lý thuyết về các bước

để khảo sát hàm số, )

1.2 Giải pháp công nghệ

Cloud computing

Trang 2

Hiện nay, chưa có một sự thống nhất về định nghĩa Cloud computing, mỗi tổ chức hay nhà cung cấp dịch vụ đều đưa ra ý kiến riêng

Theo WIKIPEDIA

Cloud Computing là điện toán trên nền tảng Internet Các Máy Chủ cung cấp tài nguyên, phần mềm, dữ liệu, và các thiết bị khác theo yêu cầu

Theo Ian Foster

Cloud Computing là mô hình điện toán phân tán có tính co giãn linh hoạt về mặt kinh tế, là nơi chứa sức mạnh về tính toán, lưu trữ dựa trên nền tảng và dịch vụ cung cấp

sự ảo hóa tài nguyên và thay đổi linh hoạt để phù hợp với nhu cầu khách hàng trên Internet

Theo Rajkumar Buyya

Cloud là một hệ thống phân tán và xử lý song song gồm nhiều máy tính ảo kết nối với nhau và được cung cấp cho người dùng dựa trên thỏa thuận giữa nhà cung cấp dịch

vụ và người dùng

Tại sao phải dùng Cloud Computing ?

Lợi ích về chi phí đầu tư

Thông thường người dùng hoặc các doanh nghiệp phải đầu tư vào nhiều khoản như: mua ứng dụng, đầu tư cho phần cứng để có thể triển khai được ứng dụng đó, chi phí bảo trì phần cứng và phần mềm, chi phí nâng cấp thiết bị, thuê đội ngũ quản lý, …đôi khi nhiều ứng dụng và thiết bị có giá đắt đỏ được mua về tuy nhiên tần suất sử dụng không cao, khả năng đáp ứng kém, đó là một sự lãng phí lớn

Với điện toán đám mây, người dùng và các doanh nghiệp chỉ các thiết bị cấu hình

đủ để duyệt web, được kết nối với internet là có thể sử dụng được các tài nguyên mà họ đang có nhu cầu Không cần tốn quá nhiều chi phí, nhưng người dùng và các doanh

Trang 3

nghiệp có thể sử dụng các tài nguyên tốt nhất với khả năng đáp ứng cao và chỉ phải trả chi phí cho lưu lượng mà họ đã sử dụng (thường tính bằng thời gian sử dụng ứng dụng)

Công nghệ ảo hóa

Ảo hóa làm tăng năng xử lý bằng cách kết hợp các server và các thiết bị lưu trữ Công nghệ ảo hóa đã tạo nên tính linh động của điện toán đám mây Nếu các nhà cung cấp dịch vụ truyền thống chỉ cung cấp cố định tài nguyên và năng lực xử lý đúng như ràng buộc của hai bên (thường thấp hơn so với hợp đồng), thì điện toán đám mây có khả năng cung cấp thêm tài nguyên, năng lực xử lý một cách nhanh chóng chỉ sau những thao tác cấu hình đơn giản và khách hàng chỉ phải trả chi phí đúng theo lưu lượng mà họ sử dụng Người dùng hoặc các doanh nghiệp có thể tiếp cận với các tài nguyên tính toán và lưu trữ khổng lồ

Ngoài ra, xét ở góc độ các lập trình viên và các nhà phát triển ứng dụng, điện toán đám mây cung cấp đầy đủ các công cụ hỗ trợ trong quá trình phát triển một ứng dụng như các cơ sở dữ liệu, các máy chủ ứng dụng, hệ thống quản lý source code, hệ thống quản lý thay đổi, các công cụ lần vết tìm lỗi, … mà không cần đầu tư quá nhiều Cho phép các lập trình viên và nhà phát triển ứng dụng tạo ra các ứng dụng web tùy chỉnh và phát hành nó một cách nhanh chóng , bỏ qua nhiều giai đoạn rắc rối như việc thiết lập hosting, servers, databases, …

Các loại hình dịch vụ

Các mô hình dịch vụ của điện toán đám mây khá da dạng, nhưng phổ biến nhất có thể được phân thành 3 nhóm: dịch vụ hạ tầng (IaaS), dịch vụ nền tảng (PaaS) và dịch vụ phần mềm (SaaS)

Dịch vụ hạ tầng IaaS (Infrastructure as a Service)

Dịch vụ hạ tầng IaaS cung cấp dịch vụ cơ bản, cung cấp năng lực tính toán, không gian lưu trữ, kết nối mạng tới khách hàng Khách hàng (cá nhân hoặc tổ chức) có thể sử dụng tài nguyên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cài đặt ứng dụng riêng

Trang 4

tùy theo mục đích sử dụng Với dịch vụ này khách hàng làm chủ hệ điều hành, không gian lưu trữ và các ứng dụng do khách hàng cài đặt Khách hàng điển hình của dịch vụ IaaS có thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng của mình

Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon Khách hàng có thể đăng ký sử dụng một máy tính ảo trê dịch vụ của Amazon và lựa chọn một hệ thống điều hành (ví dụ, Windows hoặc Linux) và tự cài đặt ứng dụng của mình

Dịch vụ nền tảng PaaS (Platform as a Service)

Dịch vụ nền tảng PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển các phần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng đám mây đó Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa (middleware), các ứng dụng chủ (application server) cùng các công cụ lập trình với ngôn ngữ lập trình nhất định để xây dựng ứng dụng Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho khách hàng thông qua API riêng Khách hàng xây dựng ứng dụng

và tương tác với hạ tầng điện toán đám mây thông qua API đó Ở mức PaaS, khách hàng không quản lý nền tảng đám mây hay các tài nguyên lớp như hệ điều hành, lưu giữ ở lớp dưới Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng dụng

Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép khách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triển dựa trên ngôn ngữ lập trình Java hoặc Python

Dịch vụ phần mềm SaaS (Software as a Service)

Dịch vụ SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu cầu cho nhiều khách hàng Khách hàng lựa chọn ứng dụng phù hợp với nhu cầu và sử dụng

mà không quan tâm tói hay bỏ công sức quản lý tài nguyên tính toán bên dưới

Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho doanh nghiệp mà nổi bật nhất là CRM Các ứng dụng SaaS cho người dùng cuối phổ biến

là các ứng dụng office Online của Microsoft hay Google Docs của Google

Trang 5

Mô hình triển khai

Đám mây “công cộng”

Mô hình đầu tiên được nói đến khi đề cập tới điện toán đám mây chính là mô hình đám mây công cộng (public cloud) Đây là mô hình mà hạ tầng điện toán đám mây được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàng thông qua hạ tầng mạng internet hoặc các mạng công cộng diện rộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ Do vậy, hạ tầng điện toán đám mây được thiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và tách biệt về truy cập

Các dịch vụ của đám mây công cộng hướng tới số lượng khách hàng lớn nên thường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi phí thấp cho khách hàng Do đó khách hàng của các dịch vụ trên đám mây công cộng sẽ bao gồm tất cả các tầng lớp, trong đó khách hàng là cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệ cao, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt

Đám mây “riêng”

Đám mây riêng (private cloud) là mô hình trong đó hạ tầng đám mây được sở hữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó Đám mây riêng có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứ tư)

Đám mây riêng được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Với đám mây riêng, các doanh nghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường

Trang 6

Đám mây “chung”

Đám mây chung (community cloud) là mô hình trong đó hạ tầng đám mây được chia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó Các tổ chức này do đặc thù không tiếp cận với các dịch vụ của đám mây công cộng và chia sẻ chung một hạ tầng điện toán đám mây để nâng cao hiệu quả đầu tư và sử dụng

Đám mây “lai”

Mô hình đám mây lai (hybrid cloud) là mô hình bao gồm hai hoặc nhiều hơn các đám mây trên tích hợp với nhau Mô hình đám mây lai cho phép chia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu

Khảo sát các nhà cung cấp dịch vụ điện toán đám mây

Những hổ trợ cho Developer

Amazon Salesfore GAE Microsoft Rackspace

Hổ trợ HDH Window y y y y y

Hổ trợ HDH Mac OS y y y n n

Hổ trợ HDH Linux/Other y y y n y

.NET y y n y y

Java y y y y y

Python y y y n y

Ruby y y n y n

PHP y y n y n

Flex n y n n n

Trang 7

SQL/ SQL Server y n n y y

MySQL y n y n y

Oracley n n n y

Miễn phí sử dụng y y y y n

Ghi chú :

GAE : Google App Engine

y : có cung cấp

n : không cung cấp

Chi phí sử dụng cho người dùng

Amazon

Miễn phí: http://aws.amazon.com/free/

Có phí: mức phí nhỏ nhất là 1.365$ và sẽ lớn hơn nhiều tùy thuộc nhu cầu sử dụng EC2 : http://aws.amazon.com/ec2/pricing/

Data Tranfer

Amazon Elastic Block Store

Elastic IP Addresses

Trang 8

Amazon CloudWatch.

Elastic Load Balancing

Amazon S3

Salesforce

Google App Engine

Miễn phí: Có dung lượng lưu trữ 1GB và lượng băng thông là 5 triệu pageview trên tháng

Có phí: Mỗi ứng dụng sẽ phải trả tối thiểu 8$/tháng Và tối đa là 1000$/tháng tùy thuộc vào những dịch vụ đăng ký sử dụng

Microsoft (Window Azure)

Giải pháp được lựa chọn

Theo nhu cầu thì loại hình dịch vụ mà nhóm sử dụng là PaaS (nền tảng dịch vụ), với mô hình triển khai là Public Cloud (đám mây chung)

Nhà cung cấp dịch vụ : nhóm chúng em quyết định chọn nhà cung cấp dịch vụ là Google vì những lý do sau :

Trang 9

Google App Engine tích hợp đầy đủ những công nghệ phổ biến hiện nay để phát triển một ứng dụng web (xét ra thì có phần kém linh hoạt hơn so với Amazon và Rackspace) Chúng ta sẽ không cần phải lo lắng về việc mở rộng cho ứng dụng của mình

vì Google sẽ đảm nhận việc này

Hạ tầng của Google đủ tốt để ta có thể tin vào khả năng đáp ứng trước những đột biến bất ngờ có thể xảy ra

Google App Engine hỗ trợ 2 môi trường phát triển ứng dụng là Java và Python Java là ngôn ngữ đang được ưa chuộng để phát triển ứng dụng So với Amazon, Salesfore, Microsoft, thì Google không có hổ trợ NET, một ngôn ngữ cũng rất được yêu thích hiện nay

Google khá thoải mái trong cách tính phí ở thời điểm hiện tại Bạn sẽ có được 1G lưu trữ và lượng băng thông 5 triệu pageview hàng tháng hoàn toàn miễn phí Nếu vượt qua mốc này bạn phải thực hiện trả phí Nhưng một website mới xây dựng thời gian đầu thì khó mà vượt qua được ngưỡng miễn phí này

Tuy nhiên cũng có mặt trái khi ta sử dụng GAE đó là, Hệ thống của chúng ta phải phụ thuộc hoàn toàn vào nền tảng và công nghệ của Google, và rất khó để tách biệt thành một ứng dựng độc lập Nhưng với mức độ cũng như thời điểm hiện tại, nhóm chúng em chưa cần thiết phải nghĩ ngợi xa như vậy Do đó chúng em quyết định chọn Google App Engine làm nhà cung cấp dịch vụ cho mình

Google App Engine

Google App Engine (GAE)

Google App Engine cho phép bạn triển khai ứng dụng web của mình trên hạ tầng của Google Việc xây dựng ứng dụng với App Engine rất dễ dàng, thuận lợi trong quá trình bảo trì, dễ mở rộng khi có lượng truy cập tăng, hoặc khi có thêm nhu cầu lưu trữ Với App Engine, bạn chỉ cần upload ứng dụng mình lên và ứng dụng sẽ sẵn sàng phục vụ người dùng

Trang 10

GAE hỗ trợ cho chúng ta 2 môi trường phát triển ứng dụng : Java runtime environment và Python runtime environment

Java Runtime Environment : bạn có thể xây dựng ứng dụng trên công nghệ Java bao gồm Java virtual machine (JVM), Java servlet, và Java programming language - hoặc bất kỳ một ngôn ngữ nào được biên dịch trên JVM chẳn hạn như JavaScript hay Ruby

Python Runtime Environment : là một môi trường chuyên dụng bao gồm một trình thông dịch rất nhanh và một bộ thư viện chuẩn

Một số đặc tính của Google App Engine:

Hỗ trợ các công nghệ web thông dụng, phổ biến nhất

Tự động mở rộng và cân bằng tải

Cung cấp các API để xác thực người dùng và gửi mail sử dụng tài khoản của Google

Cung cấp một môi trường phát triển với đầy đủ các tính năng

App Engine datastore

App Engine cung cấp một dịch vụ lưu trữ phân tán những kho dữ liệu phân tán này sẽ phát triển dần theo dữ liệu của bạn App Engine sẽ cung cấp cho chúng ta những API để thực hiện thao tác với cở sở dữ liệu bên dưới

Google App Engine cung cấp hai dạng datastore:

Master/Slave Datastore: bao gồm một trung tâm dữ liệu (data center) đóng vai trò

là master chịu trách nhiệm đọc và truy vấn, các trung tâm dữ liệu khác đóng vai trò slave Với mô hình này thì dữ liệu được sao lưu không đồng bộ, tuy nhiên lợi thế của mô hình này không gian lưu trữ nhỏ, chi phí CPU thấp

Trang 11

High Replication Datastore: dữ liệu sẽ được sao lưu trên tất cả các trung tâm dữ liệu khác dựa trên thuật toán Paxos Đây là một giải pháp mới, tính sẵn sàng cao và đáng tin cậy Tuy nhiên chi phí cao, do đó nó được sử dụng cho các ứng dụng cực kì quan trọng

App Engine datastore lưu các đối tượng dữ liệu gọi là các thực thể (entity) Một thực thể có một hay nhiều thuộc tính (property), mỗi thuộc tính tương ứng một kiểu dữ liệu (chuỗi, số nguyên, tham chiếu đến một đối tượng khác, …)

Một thao tác với cơ sở dữ liệu gọi là thành công khi mọi hành động trong thao tác

đó thành công Nếu bất kì một hành động nào không thành công, thì thao tác đó sẽ bị ngừng lại Điều này thích hợp với các ứng dụng web phân tán, nơi người dùng có thể truy cập hay thao tác cùng một dữ liệu tại một thời điểm

Datastore với kiến trúc phân tán có nhiều tính năng tương tự cơ sở dữ liệu truyền thống, có khả năng quản lý lượng dữ liệu rất lớn Nó khác với cơ sở dữ liệu quan hệ truyền thống trong cách mô tả quan hệ giữa các đối tượng dữ liệu Hai thực thể cùng loại

có thể có các thuộc tính khác nhau, các thực thể khác nhau có thể có các thuộc tính cùng tên, nhưng khác nhau về kiểu dữ liệu

Thực thể và thuộc tính

Một đối tượng dữ liệu trong Google App Engine được gọi là một thực thể Mỗi thực thể có một hay nhiều thuộc tính, thuộc tính có thể là kiểu chuỗi, số nguyên, ngày, …

Mỗi thực thể có một khóa dùng để định danh Một khóa đơn giản gồm có hai thông tin là loại và ID định danh được cung cấp bởi các datastore Nhờ phân loại các thực thể mà truy vấn dễ dàng hơn ID định danh của một thực thể cũng có thể là một chuỗi

Một ứng dụng có thể lấy các thực thể từ datastore bằng cách sử dụng khóa chính, hoặc truy dựa trên các thuộc tính của thực thể Một truy vấn có thể trả về 0 hoặc nhiều thực thể, và các thực thể có thể được sắp xếp theo thuộc tính Tuy nhiên, số lượng thực

Ngày đăng: 23/01/2013, 14:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w