ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN KIỂU ỨNG DỤNG MÔ HÌNH KIẾN TRÚC HƯỚNG DỊCH VỤ XÂY DỰNG HỆ THỐNG QUẢN LÝ CƠ SỞ VẬT CHẤT TRƯỜNG ĐẠI HỌC QUẢNG BÌNH Chuyên ngành: Kho
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN KIỂU
ỨNG DỤNG MÔ HÌNH KIẾN TRÚC HƯỚNG DỊCH VỤ XÂY DỰNG HỆ THỐNG
QUẢN LÝ CƠ SỞ VẬT CHẤT
TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng - Năm 2018
Trang 2Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS ĐẶNG HOÀI PHƯƠNG
Phản biện 1: TS TRƯƠNG NGỌC CHÂU
Phản biện 2: TS PHẠM XUÂN HẬU
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật họp tại Trường Đại học Bách khoa Đà
Nẵng vào ngày 05 tháng 01 năm 2019
Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu và Truyền thông Trường Đại học Bách khoa Đại học Đà Nẵng
- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa
Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài
Sự phát triển của Internet đã thúc đẩy nhu cầu cộng tác, làm việc qua mạng và sử dụng các dịch vụ trực tuyến dần trở thành một nhu cầu thiết yếu trong cuộc sống của chúng ta Điều này đỏi hỏi các ứng dụng không chỉ là những hệ thống hoạt động đơn lẻ trên một máy trạm (máy client) và chịu phụ thuộc vào một nền tảng cố định nào nữa, mà chúng phải là những hệ thống linh động giúp người dùng làm việc “mọi lúc, mọi nơi” Điều đó đã làm các nhà phát triển phải đối mặt với hàng loạt các vấn đề mới như làm sao để tích hợp các thành phần phân tán lại với nhau, hay tái sử dụng những thành phần sẵn có, vấn đề triển khai và bảo trì… đang là một vấn đề làm các nhà phát triển phải suy nghĩ
Tuy vậy, một thực tế hiện nay là phần mềm đang ngày càng trở nên phức tạp quá mức và dường như đang vượt khỏi khả năng kiểm soát của các mô hình phát triển hiện có Nguyên nhân khiến cho hệ thống có độ phức tạp tăng cao là do sự xuất hiện của nhiều công nghệ mới tạo nên môi trường không đồng nhất, trong khi nhu cầu chia sẽ, trao đổi, tương tác giữa các hệ thống ngày càng tăng và không thể đáp ứng được trong môi trường này Cùng với đó là vấn
đề lập trình dư thừa và không thể tái sử dụng gây tốn kém rất nhiều không những trong giai đoạn phát triển hệ thống mà trong cả vận hành bảo trì phần mềm Giải pháp cho các vấn đề này là gì?
Có nhiều giải pháp khác nhau để xây dựng hệ thống quản lý cơ
sở vật chất nêu trên, tuy nhiên ứng dụng mô hình Kiến trúc hướng dịch vụ hội tụ đủ các khả năng đáp ứng yêu cầu và có nhiều ưu điểm hơn Hiện nay, Kiến trúc hướng dịch vụ đang rất phát triển và có nhiều ứng dụng Giá trị cơ bản của nó dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa
“Service Oriented Architecture” hay “kiến trúc hướng dịch vụ” là mô hình phát triển kiến trúc phần mềm đang được các nhà chuyên môn quan tâm phát triển hiện nay Với ưu điểm linh hoạt khi
mở rộng, kết nối và có thể tái sử dụng dịch vụ
Trang 4o đặc th của các Trường Đại học nói chung và Trường Đại học Quảng Bình nói riêng, khối lượng tài sản khá lớn nhưng giá trị tài sản phần lớn là thấp và nó thuộc về công cụ, dụng cụ… nên cần thiết phải có một hệ thống đáp ứng được các yêu cầu nghiệp vụ của hoạt động quản lý cơ sở vật chất theo yêu cầu đặt ra của nhà trường Hơn nữa, là một Trường Đại học địa phương khả năng tài chính còn hạn chế nên việc sở hữu một phần mềm thương mại để quản lý CSVC của nhà trường là điều rất khó khăn
Xuất phát từ những lý do trên, tác giả đề xuất lựa chọn đề tài
“Ứng dụng mô hình kiến trúc hướng dịch vụ xây dựng hệ thống quản
lý cơ sở vật chất Trường Đại học Quảng Bình” làm đề tài tốt nghiệp
luận văn cao học
2 Mục đích nghiên cứu
Mục đích nghiên cứu của đề tài là nghiên cứu, ứng dụng kiến trúc hướng dịch vụ phát triển hệ thống quản lý cơ sở vật chất Trường
Đại học Quảng Bình
3 Đối tượng và phạm vi nghiên cứu
- Nghiên cứu lập trình phân tán;
- Nghiên cứu mô hình kiến trúc hướng dịch vụ;
- Xây dựng cơ sở dữ liệu phục vụ hoạt động quản lý cơ sở vật chất trường Đại học Quảng Bình;
- Ứng dụng Web Services, Web API phát triển hệ thống quản
lý cơ sở vật chất trường Đại học Quảng Bình;
Đề tài tập trung vào nghiên cứu nắm vững lý thuyết của kiến trúc hướng dịch vụ, cách giải quyết vấn đề trong kiến trúc hướng dịch vụ Vận dụng vào hệ thống quản lý cơ sở vật chất tại trường Đại học Quảng Bình
4 Phương pháp nghiên cứu
4.1 Phương pháp lý thuyết
- Nghiên cứu cơ sở lý thuyết về kiến trúc hướng dịch vụ
- Nghiên cứu công nghệ Web service & Web API;
- Nghiên cứu mô hình logic Model View Controller (MVC) trong phát triển ứng dụng Web
Trang 5vụ sử dụng Web API và mô hình MVC
5 Dự kiến kết quả đạt được
5.1 Về lý thuyết
- Hiểu được mô hình kiến trúc hướng dịch vụ
- Hiểu được mô hình MVC, Web Services, Web API, SOAP, REST…
5.2 Về thực nghiệm
- Xây dựng phần mềm quản lý cơ sở vật chất tại Trường Đại học Quảng Bình
- Ứng dụng chạy trên website Trường Đại học Quảng Bình
6 Ý nghĩa khoa học và thực tiễn
Xây dựng mô hình giải pháp quản lý cơ sở vật chất theo hướng dịch vụ Xây dựng chương trình ứng dụng trên cơ sở mô hình giải pháp để quản lý tài sản và nâng cao tính chính xác, chất lượng trong công tác quản lý
Đề xuất áp dụng mô hình cho các hệ thống phần mềm quản lý khác được cung cấp
7 Cấu trúc luận văn
Luận văn gồm có phần mở đầu, kết luận và 3 chương
Chương 1: Tổng quan về kiến trúc hướng dịch vụ (SOA) Chương 2: Xây dựng giải pháp SOA cho hệ thống quản lý cơ
sở vật chất trường Đại học Quảng Bình
Chương 3: Xây dựng và triển khai hệ thống quản lý cơ sở vật chất trường Đại học Quảng Bình
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC HƯỚNG
DỊCH VỤ 1.1 Thực trạng hoạt động phát triển phần mềm hiện tại
Phần mềm ngày nay đang ngày càng trở nên phức tạp và dường như đang vượt khỏi khả năng kiểm soát của các mô hình phát triển phần mềm hiện có Hiện nay có nhiều hệ thống phần mềm được xây dựng với kiến trúc quá phức tạp, chi phí phát triển và bảo trì cao, đặc biệt là với các hệ thống phần mềm cao cấp Độ phức tạp của các
hệ thống kiến trúc phần mềm ngày một tăng do các nguyên nhân sau:
Sự xuất hiện của nhiều công nghệ mới tạo nên môi trường không đồng nhất trong khi nhu cầu chia sẻ, tương tác, trao đổi của các hệ thống không thể tiến hành trong môi trường như thế Giải quyết vấn đề này nghĩa là cần phải thay đổi hệ thống theo một chuẩn thống nhất chung nào đó Điều chủ yếu là hệ thống cũ cần được sử dụng lại chứ không phải gỡ bỏ thay mới bởi vấn đề chi phí cho thiết lập một hệ thống quản lý mới tốn kém hơn nhiều so với chuyển đổi cái cũ Vấn đề này đưa đến một khái niệm là “Tích hợp hệ thống” (Enterprise Architecture Integration - EAI)
Một nguyên nhân khác cũng góp phần dẫn đến tình trạng khó khăn như thế chính là vấn đề lập trình dư thừa và không thể tái
sử dụng
o đó, kiến trúc phân tán (CORBA, DCOM và EJB) được
áp dụng để xây dựng các hệ thống có khả năng tích hợp nhằm giải quyết vấn đề nêu trên Các kiến trúc này là sự mở rộng của các hệ thống hướng đối tượng bằng cách cho phép phân tán các đối tượng trên mạng Đối tượng đó có thể có không gian địa chỉ bên ngoài ứng dụng, hoăc ở một máy khác với máy chứa ứng dụng trong khi vẫn được tham chiếu sử dụng như một phần của ứng dụng
CORBA (Common Object Request Broker Architecture):
CORBA được định nghĩa bởi Object Management Group (OMG), là một kiến trúc phân tán mở, độc lập nền tảng và độc lập ngôn ngữ Tuy nhiên CORBA có một số nhược điểm là nó là ngôn ngữ lập trình cấp thấp, rất phức tạp, khó học và cần một đội ngũ phát
Trang 7triển có kinh nghiệm Ngoài ra các đối tượng CORBA cũng khó có thể tái sử dụng
EJB – Enterprise Java Bean:
Kiến trúc EJB là một kiến trúc thành tố bên phía máy chủ
d ng cho việc phát triển và triển khai các ứng dụng phân tán hướng đối tượng cỡ vừa và lớn
EJB là một kiến trúc tốt cho việc tích hợp các hệ thống vì nó độc lập nền tảng nhưng nó cũng gặp vấn đề là nó không phải là một chuẩn mở, khả năng giao tiếp với các chuẩn khác vẫn còn hạn chế
DCOM - Distributed Component Object Model:
DCOM là một mô hình phân tán dễ triển khai với chi phí thấp, hỗ trợ tigh coupling giữa các ứng dụng và hệ điều hành COM hỗ trợ kết nối giữa các đối tượng và những kết nối này có thể được thay đổi lúc đang chạy
COM mang đến nhiều ưu điểm như tính ổn định, không phụ thuộc vị trí địa lý, quản lý kết nối hiệu quả và dễ dàng mở rộng,
là một lựa chọn tốt cho các doanh nghiệp sử dụng công nghệ của Windows để chạy các ứng dụng có yêu cầu cao về sự chính xác và
ổn định Tuy nhiên, các công nghệ của Microsoft có một nhược điểm lớn là chúng bị giới hạn trên nền tảng Windows
Các kiến trúc phân tán nêu trên đều hướng đến việc xây dựng một hệ thống “hướng dịch vụ” tuy nhiên chúng vẫn còn gặp phải một số vấn đề:
- Tighly coupled, nghĩa là kiến trúc triển khai cài đặt bên phía nhà cung cấp dịch vụ và phía sử dụng dịch vụ phải giống nhau Điều này đồng nghĩa với khó khăn mỗi khi có sự thay đổi từ một trong 2 phía bởi vì mỗi thay đổi cần được đánh giá, lên kế hoạch và sửa chữa ở cả 2 phía;
- Những chuẩn trên đa phần là chuẩn đóng, chúng hầu như không thể kết hợp, hoạt động với chuẩn khác
Một vấn đề đặt ra là làm thế nào để các hệ thống phân tán phát triển trên các công nghệ khác nhau có thể giao tiếp được với nhau? Và cách tiếp cận “kiến trúc hướng dịch vụ” Service Oriented Architecture (SOA) cho phép giải quyết vấn đề nêu trên [1]
Trang 81.2 Tổng quan kiến trúc hướng dịch vụ (Service Oriented Architecture)
Service Oriented Architecture SOA [2] là một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, chức năng, hệ thống theo dạng module, trong đó mỗi module đóng vai trò là một “dịch vụ” (service) tự hoạt động và liên kết lỏng lẻo, và có khả năng truy cập thông qua môi trường mạng Hiểu một cách đơn giản thì một hệ thống SOA là một tập hợp các dịch vụ được chuẩn hóa trên mạng trao đổi với nhau trong một ngữ cảnh tiến trình nghiệp vụ
Trong SOA có 3 đối tượng chính
Nhà cung cấp dịch vụ (service provider) cần cung cấp thông tin về dịch vụ của mình cho một dịch vụ lưu trữ thông tin dịch vụ (service registry) Người yêu cầu dịch vụ hay khách hàng (service requestor / consumer) thông qua service registry để tìm kiếm thông tin mô tả về dịch vụ cần tìm và sau đó là xây dựng kênh giao tiếp với phía nhà cung cấp
SOA cung cấp giải pháp để giả quyết các vấn đề tồn tại của các hệ thống hiện nay như: phức tạp, không linh hoạt và không ổn định Một hệ thống triển khai theo mô hình SOA có khả năng dễ mở rộng, liên kết tốt Đây chính là cơ sở và nền tảng cho việc tích hợp, tái sử dụng lại những tài nguyên hiện có
1.2.2 Lợi ích của SOA
Giải pháp xây dựng các hệ thống phần mềm dựa trên kiến trúc hướng dịch vụ mang lại những ưu điểm sau:
Trang 9- Sử dụng lại những thành phần có sẵn, kết quả là giảm chi phí cho phần kiến trúc và tích hợp;
- Giải pháp ứng dụng tổng hợp cho doanh nghiệp;
- Tính loose coupling giúp tăng tính linh hoạt và khả năng triển khai cài đặt.;
- Cho phép thích ứng với những thay đổi trong tương lai, phát triển phần mềm có thể tạo nên những quy trình nghiệp vụ uyển chuyển, phức tạp biến đổi t y “theo yêu cầu” và theo “thời gian thực”;
- Hỗ trợ đa thiết bị và đa nền tảng;
- Tăng khả năng mở rộng và khả năng sẵn sàng cung cấp bằng cách thêm nhiều thể hiện (instance) của một service Công nghệ chia tải (load-balancing) sẽ tự động tìm và định tuyến yêu cầu đến thể hiện service thích hợp
1.3 Dịch vụ Web
Đặc điểm chính của SOA là tách rời phần giao tiếp với phần thực hiện dịch vụ Hiện nay có khá nhiều công nghệ để thực hiện SOA dựa trên dịch vụ Web (Web service)
Web Service (WS) là một khái niệm rộng hơn so với khái niệm web thông thường Nó là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà người sử dụng có thể làm việc thông qua các trình duyệt mạng Các WS thường cung cấp các dữ liệu thô mà nó khó hiểu đối với đa số người d ng thông thường, chúng thường được trả về dưới dạng XML hoặc JSON
Ưu điểm của Web service:
- Web service cung cấp nền tảng rộng lớn chạy được trên các
hệ điều hành khác nhau
- Năng cao khả năng tái sử dụng
- Tạo mối quan hệ tương tác lẫn nhau, dễ dàng cho việc phát triển các ứng dụng phân tán
- Thúc đẩy mạnh mẽ vào hệ thống tích hợp và giảm được sự phức tạp của hệ thống, giảm giá thành phần tương tác tốt với hệ thống doanh nghiệp
Trang 10- Sử dụng các giao thức và chuẩn mở, giao thức và định dạng
dữ liệu dựa trên văn bản giúp các lập trình viên dễ dàng hiểu được
Tuy nhiên, bên cạnh đó WS cũng tồn tại một số nhược điểm:
- Có nhiều chuẩn khiến người d ng khó nắm bắt
- Có thể xảy ra thiệt hại lớn vào khoảng thời gian không hoạt động của web service như: có thể lỗi nếu như máy tính không nâng cấp, thiếu các giao tiếp trong việc vận hành
- Phải quan tâm nhiều hơn đến vấn đề bảo mật
Trong SOA, người ta thường sử dụng hai giải chuẩn giao thức giao tiếp cho Web service là: SOAP (Simple Object Access Protocol) và REST (Representational State Transfer)
SOAP Simple Object Access Protocol:
SOAP là một giao thức dựa trên XML cho phép các ứng dụng trao đổi thông tin qua HTTP, được thiết kế đơn giản và dễ mở rộng Hiểu đơn giản, SOAP là một giao thức để truy cập Web Services, một giao thức truyền thông hay một định dạng để gửi thông điệp Tất cả các thông điệp SOAP đều được mã hóa sử dụng XML, cho nên không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào hoặc công nghệ nào SOAP dựa hoàn toàn vào XML để cũng cấp các services truyền tin
REST Representational State Transfer:
REST cung cấp giải pháp thay thế nhẹ hơn Thay vì sử dụng XML để tạo request, REST dựa vào một URL đơn giản Trong một
số trường hợp, cần phải cung cấp thông tin bổ sung theo những cách đặc biệt, nhưng hầu hết các Web service sử dụng REST đều dựa hoàn toàn vào việc thu lại các thông tin cần thiết bằng phương pháp URL REST có thể sử dụng bốn hình thái HTTP khác nhau (GET, POST, PUT, và ELETE) để thực hiện các tasks Không giống như SOAP, REST không phải sử dụng XML để cung cấp response
1.4 Thực trạng hoạt động quản lý cơ sở vật chất trường Đại học Quảng Bình
Đại học Quảng Bình là một địa phương có khối lượng tài sản khá lớn nhưng giá trị tài sản phần lớn là thấp và nó thuộc về công cụ, dụng cụ kinh phí để mua trang thiết bị chưa được đồng bộ, nên hoạt
Trang 11động quản lý cơ sở vật chất của Nhà trường chủ yếu vẫn áp dụng các công cụ thủ công (Word, Excel, …) Mặc d Nhà trường cũng đã xây dựng hệ thống tra cứu, quản lý tài sản, tuy nhiên các chức năng của
hệ thống chỉ mới dừng lại ở mức độ tra cứu, quản lý thông thường; chưa đáp ứng được yêu cầu về mặt hiệu quả công việc
Bên cạnh đó, với sự thay đổi của các nghiệp vụ trong hoạt động quản lý cơ sở vật chất thì việc thay đổi, bổ sung chức năng cho
hệ thống nêu trên cũng gặp nhiều khó khăn do sự không tương thích của các module bổ sung
Vì vậy vấn đề đặt ra là cần thiết phải xây dựng một hệ thống
hỗ trợ nghiệp vụ quản lý CSVC trường Đại học Quảng Bình, không những đáp ứng các nhu cầu nghiêp vụ hiện tại mà còn phải có khả năng mở rộng, thay đổi trong tương lai nhằm nâng cao hiệu quả của hoạt động quản lý cơ sở vật chất của Nhà trường
o đó tác giả lựa chọn đề tài “Ứng dụng kiến trúc hướng dịch vụ xây dựng hệ thống quản lý cơ sở vật chất trường Đại học Quảng Bình”, áp dụng mô hình SOA để phát triển hệ thống nhằm nâng cao khả năng tích hợp linh hoạt, mang lại hiệu quả về mặt kinh tế
1.5 Kết luận
Trong chương 1 tác giả đã trình bày thực trạng trong việc phát triển phần mềm hiện tại; phân tích các mô hình kiến trúc phân tán trong việc phát triển phần mềm, rút ra ưu nhược điểm của các mô hình kiến trúc phân tán và hướng đến cách tiếp cận mô hình kiến trúc hướng dịch vụ Tác giả cũng đã phân tích tổng quan chung về mô hình kiến trúc hướng dịch vụ, nghiên cứu 2 chuẩn giao tiếp của Webservice: SOAP & REST Đồng thời đưa ra vấn đề còn tồn tại trong hoạt động quản lý cơ sở vật chất của trường Đại học Quảng Bình, từ đó đưa ra giải pháp áp dụng mô hình kiến trúc hướng dịch
vụ xây dựng hệ thống quản lý cơ sở vật chất của trường Đại học Quảng Bình
Trang 12CHƯƠNG 2: XÂY DỰNG GIẢI PHÁP SOA CHO HỆ THỐNG QUẢN LÝ CSVC TRƯỜNG ĐẠI HỌC QUẢNG BÌNH 2.1 Mô hình SOA tổng thể
Cơ chế hoạt động quản lý cơ sở vật chất trường Đại học Quảng Bình được thực hiện như sau: đầu mỗi năm, các đơn vị trong nhà trường cần lập kế hoạch mua sắm, sửa chữa trang thiết bị,
phương tiện làm việc hàng năm hoặc đột xuất, phòng Quản trị sẽ
tổng hợp trình Hiệu trưởng xem xét, quyết định phê duyệt Trên cơ
sở kế hoạch đã được duyệt, các đơn vị đề xuất yêu cầu mua sắm 7 sửa chữa chi tiết theo từng thời điểm cụ thể
Các loại thiết bị, máy móc trong trường do Phòng Quản trị quản lý; do đó cần xác định được số lượng, tình trạng, đơn vị sở hữu… của từng thiết bị chi tiết Đồng thời hàng năm cần phải kiểm
kê tài sản, thống kê báo cáo tình hình sử dụng trang thiết bị để nhà trường lập kế hoạch mua sắm và sửa chữa chung cho năm tiếp theo cho ph hợp
o đó vấn đề đặt ra là cần thiết phải xây dựng một hệ thống quản lý cơ sở vật chất trường Đại học Quảng Bình đáp ứng các hoạt động nghiệp vụ nêu trên đồng thời phải có khả năng mở rộng, tích hợp các nghiệp vụ khác trong tương lai Tác giả đề xuất xây dựng hệ thống trên cơ sở mô hình kiến trúc hướng dịch vụ như sau: