Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 1 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH MÔN HỌC: ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY ĐỀ T
Trang 1Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
MÔN HỌC: ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
ĐỀ TÀI: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG THỐNG KÊ PHẢN HỒI
CỦA NHÂN VIÊN TRÊN CLOUD COMPUTING
CBHD: PGS TS NGUYỄN PHI KHỨ
HỌC VIÊN: TRẦN MẠNH TƯỞNG CH1301070
TP HCM 05-2014
Trang 2Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 2
Mục Lục
I ĐẶT VẤN ĐỀ 3
II KHÁI NIỆM VỀ CLOUD COMPUTING 5
1 Định nghĩa 5
2 Các ưu điểm 6
3 Các khuyết điểm 7
4 Mô hình các lớp dịch vụ 8
5 Mô hình triển khai 9
III KHÁI NIỆM VỀ DATA MINING 11
1 Khái niệm về Data Mining 11
2 Các giai đoạn của quá trình khai phá dữ liệu 13
3 Các kỹ thuật khai phá dữ liệu 14
3.1 Kết hợp 14
3.2 Phân cụm 14
3.3 Phân loại 15
3.4 Hồi quy 16
4 Ứng dụng của Data Mining 16
IV NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG THỐNG KÊ PHẢN HỒI NHÂN VIÊN TRÊN CLOUD COMPUTING 17
1 Thu thập dữ liệu 17
2 Tìm thuật toán để khai phá dữ liệu đã thu thập ở bước 1 17
3 Xây dựng ứng dụng: chọn ngôn ngữ lập trình, môi trường, kiểu phần mềm ứng dụng 18
4 Làm sao để ứng dụng trở thành một SaaS 19
V KẾT LUẬN, HƯỚNG PHÁT TRIỂN 20
TÀI LIỆU THAM KHẢO 21
Trang 3Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 3
I ĐẶT VẤN ĐỀ
Hơn 10 năm qua, công nghệ thông tin (CNTT) đã trở thành ngành kinh tế mũi nhọn
có tốc độ tăng trưởng và hiệu quả cao, đóng góp trực tiếp gần 7% GDP của đất nước, đồng thời có tác động lan tỏa thúc đẩy phát triển nhiều ngành, nhiều lĩnh vực kinh tế-
xã hội
Để có sự phát triển mạnh mẽ đó, các công ty, doanh nghiệp đã được thành lập với tốc
độ khá nhanh Trong khi nhu cầu nguồn lực công nghệ thông tin, nhất là nguồn lực chất lượng cao thì lại chưa thể đáp ứng kịp Do vậy các công ty phần mềm ngoài vấn
đề cạnh tranh tìm khách hàng trong nước cũng như ngoài nước, thì vấn đề nguồn lực cũng là một vấn đề cạnh tranh rất nóng bỏng Các công ty luôn đưa ra các chính sách cao cho việc chiêu mộ nhân viên mới, cũng như chính sách đãi ngộ cho các nhân viên đang làm việc Hàng năm FPT Software chi cả chục tỷ đồng cho việc trả hoa hồng cho việc chiêu mộ nhân viên mới cũng như các đãi ngộ cho nhân viên: nghỉ mát, FPT care, các chương trình đào tạo… Tất cả những việc làm đó đều mục đích là kích thích tinh thần, động lực của nhân viên, để giữ chân nhân viên ở lại
Một đội ngũ nhân viên được động viên tốt sẽ đem lại những sản phẩm và dịch vụ ưu việt, làm hài lòng khách hàng và tăng kết quả bán hàng
Vì vậy, ngày càng có nhiều doanh nghiệp quan tâm đến động viên nhân viên và thực hiện các cuộc khảo sát để tìm hiểu phản hồi của nhân viên về động cơ làm việc và sự gắn bó của họ đối với tổ chức, từ đó định hướng cho các mục tiêu, các đề xuất về vấn
đề nhân sự…FPT Software hàng năm thường định kỳ tổ chức khảo sat hai lần, ngoài những câu hỏi có lựa chọn đáp án, thì có phần ghi cảm nghĩ của bản thân nhân viên của công ty là khá quan trọng, nhưng công ty với quy mô lớn, làm sao có thể tổng hợp hết được nội dung, ý nghĩa bao quát những cảm nghĩ đó, làm sao biết được đa số nhân viên đang nghĩ gì về công ty, mong muốn của họ là gì? Từ đó tôi đã có ý tưởng xây dựng ứng dụng để thống kê những ý kiến phản hồi của nhân viên FPT Software nói riêng và các công ty khác nói chung Mục tiêu của ứng dụng là với đầu vào là các
dữ liệu của khảo sát, cho ra kết quả là bao nhiêu phần trăm nhân viên có cùng suy
Trang 4Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 4
nghĩ, và suy nghĩ đó là gì? Hiện tại ý tưởng chỉ là thống kế phản hồi nhân viên, nếu xây dựng thành công với độ chính xác chấp nhận được, ứng dụng sẽ được dùng cho thống kê các tin tức của trang web, nội dung của siêu văn bản, thống kê comment của các trang mạng xã hội
Trang 5Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 5
II KHÁI NIỆM VỀ CLOUD COMPUTING
1 Định nghĩa
Theo Wikipedia: “Điện toán đám mây (cloud computing) là một mô hình điện toán
có khả năng co giãn (scalable) linh động và các tài nguyên thường được ảo hóa được cung cấp như một dịch vụ trên mạng Internet”
Hình 1: Minh họa về Cloud Computing Điện toán máy chủ ảo, còn gọi là điện toán đám mây (cloud computing), là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được
bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó
Trang 6Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 6
2 Các ưu điểm
1 Miễn phí
Rất nhiều ứng dụng trực tuyến có chất lượng rất tốt nhưng lại hoàn toàn miễn phí,
ví dụ như các gói văn phòng của Zoho hay của Google Ngoài sự thiếu vắng một vài tính năng cao cấp (soạn thảo đồng thời nhiều thư theo một mẫu định sẵn chẳng hạn), thì những dịch vụ này có thể thực hiện phần lớn các công việc mà chúng ta cần
2 Dễ tiếp cận
Vì trang web "đỡ" hộ phần lớn công việc của chúng ta, nên chúng ta khôngg cần phải có một máy tính với cấu hình quá “khủng” khi sử dụng những ứng dụng kiểu này Chẳng hạn, chúng ta hoàn toàn có thể tiếp cận những dịch vụ điện toán đám mây chỉ với một chiếc netbook, phiên bản thu nhỏ của laptop, với mức giá không quá 250 USD
3 Di động
Chúng ta muốn cho bạn bè của mình xem một văn bản trong máy tính của mình? Điều này không hề khó Họ chỉ cần đăng nhập và nhận văn bản này qua dịch vụ điện toán đám mây Nếu cần một tài liệu trình chiếu và sử dụng trong một hội thảo quan trọng, nhưng không may là chiếc laptop của chúng ta lại đột ngột dở chứng trên đường ra sân bay? Điều này sẻ không thành vấn đề khi sử dụng điện toán đám mây,
vì bất kỳ máy tính nào cũng có thể truy cập tài liệu trình chiếu này
4 Linh hoạt
Khi sử dụng dịch vụ điện toán đám mây, chúng ta sẽ không còn chịu cảnh gò bó khi chỉ có thể thao tác các tài liệu số trên các thiết bị thông dụng như desktop hay laptop nữa Có rất nhiều thiết bị có khả năng truy cập Internet hiện đã có thể sử dụng được các dịch này, và chúng ta có thể thoải mái tải xuống các bức ảnh từ Flickr với chú
dế Blackberry, hay sử dụng ứng dụng trên iPhone để “quảng cáo” cuốn tiểu thuyết đang viết dở cho bạn bè mình xem
Trang 7Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 7
5 Yên tâm tuyệt đối
Chắn chắn không ít lần chúng ta đã để mất những dữ liệu quý giá chỉ bởi đã lỡ tay xóa nó đi mất, hay chiếc máy tính thân yêu bất ngờ bị cháy ổ cứng? Một điểm rất tuyệt khi sử dụng các dịch vụ điện toán đám mây là nó sẽ trở thành một mạng lưới thực sự an toàn Nếu chúng ta tải một ảnh của mình lên trang Flickr, chúng ta hãy cứ yên tâm răng dù ổ cứng của chúng ta có bị cháy nổ bao nhiêu lần đi nữa, thì bức ảnh
mà chúng ta tải lên sẽ vẫn an toàn tuyệt đối (Tất nhiên là cho đến khi nào Flickr còn tồn tại.)
3 Các khuyết điểm
Điều lo ngại đầu tiên từ mô hình điện toán đám mây chính là vấn đề tuân thủ luật lệ của các công ty Bằng cách tự lưu trữ ứng dụng của mình, một công ty có thể dễ dàng xác định những mục tiêu kiểm soát và duy trì tình trạng toàn vẹn của dữ liệu theo yêu cầu của luật lệ Tuy nhiên, nếu công ty này muốn đưa những ứng dụng tài chính của mình lên “đám mây”, họ chắc chắn sẽ phải đánh giá lại những mục tiêu kiểm soát để bảo đảm không vi phạm vấn đề tuân thủ luật lệ
Mối lo ngại thứ hai là vấn đề trộn lẫn dữ liệu Các nhà cung cấp dịch vụ điện toán đám mây thường lưu trữ dữ liệu của nhiều khách hàng khác nhau lên cùng một phần cứng Trong khi đó, các công ty muốn dữ liệu của họ được tách biệt rõ ràng so với
dữ liệu của đối thủ cạnh tranh.Một câu hỏi được đặt ra là khi nhà cung cấp dịch vụ sao lưu dữ liệu, liệu dữ liệu giữa các công ty có bị trộn lẫn với nhau hay không Khi một công ty nào đó chấm dứt hợp đồng, liệu nhà cung cấp dịch vụ có chắc chắn là mình chỉ lấy dữ liệu của mỗi công ty đó ra khỏi ổ tape hay không ? Một số công ty
lo ngại dữ liệu của họ có thể rơi vào tay đối thủ cạnh tranh bằng cách này
Mối lo ngại thứ ba đến từ công nghệ ảo hóa Lấy ví dụ như công ty VMware cung cấp một tính năng gọi là Lịch trình tài nguyên phân bổ (Distributed Resource Scheduler) Tính năng này liên tục giám sát việc sử dụng tài nguyên của các hệ điều hành hoạt động trên một máy ảo và phân bổ tài nguyên có sẵn giữa các máy ảo khác Khi những tài nguyên máy ảo trở nên hạn hẹp, năng lực của nó sẽ được bổ sung
Trang 8Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 8
bằng cách đưa những máy chủ ảo còn hoạt động sang một máy chủ vật lý khác.Điều này nghe rất tuyệt, nhưng chuyện gì sẽ xảy ra nếu máy chủ vật lý này nằm ở cách rất
xa công ty chúng ta, chẳng hạn như ở Nga hay Nhật? Khi đó, liệu chúng ta có thể bảo đảm được tính toàn vẹn của dữ liệu mình hay không?
4 Mô hình các lớp dịch vụ
Dịch vụ Cloud Computing rất đa dạng và bao gồm tất cả các lớp dịch vụ điện toán
từ cung cấp năng lực tính toán trên dưới máy chủ hiệu suất cao hay các máy chủ ảo, không gian lưu trữ dữ liệu, hay một hệ điều hành, một công cụ lập trình, hay một ứng dụng kế toán … Các dịch vụ cũng được phân loại khá da dạng, nhưng các mô hình dịch vụ Cloud Computing 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ụ IaaS cung cấp dịch vụ cơ bản bao gồm 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 cho người sử dụng Với dịch vụ này khách hàng làm chủ hệ điều hành, 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ụ 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 Cloud
dó 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
Trang 9Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 9
xây dựng riêng và cung cấp cho khách hàng thông qua một API riêng Khách hàng xây dựng ứng dụng và tương tác với hạ tầng Cloud Computing thông qua API đó Ở mức PaaS, khách hàng không quản lý nền tảng Cloud 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 (ISV)
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 với chỉ một phiên bản cài đặt
SaaS là một giải pháp phần mềm ứng dụng công nghệ điện toán đám mây, cho phép
dữ liệu được truy cập từ bất kỳ thiết bị có kết nối Internet qua trình duyệt Web Trong mô hình phần mềm trên nền web này, nhà cung cấp SaaS sẽ đảm trách lưu trữ
và sao lưu cơ sở dữ liệu, phát triển ứng dụng phần mềm (apps) và duy trì hệ thống máy chủ Đây là sự chuyển hướng mang tính cách mạng từ mô hình truyền thống là phần mềm lưu trữ dữ liệu tại chỗ (on-premise PC installed) Với mô hình SaaS, các công ty ứng dụng SaaS thay vì phải đầu tư tốn kém vào các thiết bị phần cứng để lưu trữ phần mềm, họ sẽ đi thuê ngoài toàn bộ hạ tầng và dịch vụ CNTT Nhà cung cấp dịch vụ phần mềm SaaS sẽ đảm trách mọi vấn đề liên quan đó
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
5 Mô hình triển khai
Từ “đám mây” (cloud) xuất phát từ hình ảnh minh họa mạng Internet đã được sử dụng rộng rãi trong các hình vẽ về hệ thống mạng máy tính của giới CNTT Một cách nôm na, điện toán đám mây là mô hình điện toán Internet Tuy nhiên, khi mô
Trang 10Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 10
hình Cloud Computing dần định hình, các ưu điểm của nó đã được vận dụng để áp dụng trong các môi trường có quy mô và phạm vi riêng, hình thành các mô hình triển khai khác nhau
Đám mây “công cộng”
Mô hình đầu tiên được nói đến khi đề cập tới Cloud Computing chính là mô hình Public Cloud Đây là mô hình mà hạ tầng Cloud Computing đượ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 Cloud Computing được tiế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
Đám mây “doanh nghiệp”
Đám mây doanh nghiệp (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ôt chức đó Private Cloud
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 “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ụ Public Cloud và chia sẻ chung một hạ tầng Cloud Computing để 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 Hybrid Cloud cho phép chia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu
Trang 11Nghiên cứu xây dựng ứng dụng Thống kê phản hồi nhân viên trên Cloud Computing Trang 11
III KHÁI NIỆM VỀ DATA MINING
1 Khái niệm về Data Mining
Khái niệm về khai phá dữ liệu (Data Mining) hay phát hiện tri thức (Knowledge Discovery) có rất nhiều cách diễn đạt khác nhau nhưng về bản chất đó là quá trình
tự động trích xuất thông tin có giá trị (thông tin dự đoán – Predictive Information)
ẩn chứa trong khối lượng dữ liệu khổng lồ trong thực tế ) nhằm mục đích dự đoán các xu thế, các hành vi trong tương lai, hoặc tìm kiếm những tập thông tin hữu ích
mà bình thường không thể nhận diện được
Khai thác dữ liệu (data mining) là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiềm năng trong nguồn dữ liệu đã có
Về cơ bản, khai phá dữ liệu là về xử lý dữ liệu và nhận biết các mẫu và các xu hướng trong thông tin đó để chúng ta có thể quyết định hoặc đánh giá Các nguyên tắc khai phá dữ liệu đã được dùng nhiều năm rồi, nhưng với sự ra đời của big data (dữ liệu lớn), nó lại càng phổ biến hơn
Quá trình phân tích dữ liệu, khám phá dữ liệu và xây dựng mô hình dữ liệu thường lặp lại khi chúng ta tập trung vào và nhận ra các thông tin khác nhau để chúng ta có thể trích ra Chúng ta cũng phải hiểu cách thiết lập quan hệ, ánh xạ, kết hợp và phân cụm thông tin đó với dữ liệu khác để tạo ra kết quả Quá trình nhận ra dữ liệu nguồn
và các định dạng nguồn, rồi ánh xạ thông tin đó tới kết quả đã cho của chúng ta có thể thay đổi sau khi chúng ta phát hiện ra các yếu tố và các khía cạnh khác nhau của
dữ liệu