SlideShare uma empresa Scribd logo
1 de 27
TRƯỜNG ĐẠI HỌC AN GIANG
KHOA KỸ THUẬT – CÔNG NGHỆ - MÔI TRƯỜNG
Sinh viên: Nguyễn Thiện An – DH114081
GVHD: Th.S Huỳnh Lý Thanh Nhàn
BÁO CÁO KHÓA LUẬN TỐT NGHIỆP
Đề tài: TÌM HIỂU FRAMEWORK SPRING
VÀ XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHẠC PHÍA CLIENT
Nội dung
• Lý do thực hiện đề tài
• Cơ sở lý thuyết:
• Spring framework
• AngularJS
• Cài đặt ứng dụng
• Kết luận
2
Lý do thực hiện đề tài
- 16.2% dự án là hoàn thành đúng hạn và nằm trong giới
hạn ngân sách.
- Và hơn 83.8% dự án thất bại hoặc không đáp ứng được
những yêu cầu ban đầu
Do các thành phần quá phụ thuộc lẫn nhau, chồng
chéo, không có tính sử dụng lại.
- Ngoài ra chi phí cho việc bảo trì và mở rộng hệ thống
luôn lớn hơn nhiều lần so với các pha khác. 3
3 3
5
7
15
67
Xác định yêu cầu Đặt tả Thiết kế
Lập trình Kiểm thử Bảo trì
Lý do thực hiện đề tài (tt)
- Hầu hết các hệ thống đều được phát triển trên
nền web.
- Công nghệ di động đang ngày càng trở nên phổ
biến, số lượng người sử dụng và truy cập qua các
thiết bị di động tăng một cách nhanh chóng.
4
=> Do đó chúng tôi thực hiện đề tài “Tìm hiểu Framework Spring và xây dựng
ứng dụng quản lý nhạc phía client”.
Spring framework
5
- Là framework Java mã nguồn mở
được sử dụng nhiều nhất hiện nay.
- Spring có cách tạo và liên kết các
thành phần rất riêng và hữu ích nhờ
vào IoC container và Dependencies
Injection (DI).
- Được giới thương mại công nhận
như một framework có tầm quan
trọng trong chiến lược kiến tạo phần
mềm
Spring framework (tt)
6
Spring được sử dụng rộng rãi nhờ:
- Đơn giản: Spring framework thực sự rất đơn giản vì nó áp dụng mô hình
POJO (Plain Old Java Objects) và POJI (Plain Old Java Interfaces).
- Dễ dàng kiểm soát lỗi: Môi trường giả lập đơn giản. Có thể sử dụng
Console để kiểm thử các thành phần riêng lẽ.
- Ít phụ thuộc: Trong Spring các đối tượng ít phụ thuộc lẫn nhau, đây là vấn
đề cốt lõi của Spring framework -> dễ sửa đổi, nâng cấp bảo trì.
Spring MVC
7
- Spring MVC cung cấp kiến trúc
Model – View - Controller và các
components sẵn có để sử dụng và
phát triển ứng dụng web một cách
nhanh chóng và linh hoạt.
- Spring MVC được thiết kế xung
quanh Dispatcher Servlet để xử lý tất
cả các HTTP request và HTTP
response.
Spring MVC (tt)
8
Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic
đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành
phần đó một cách “lỏng lẻo”.
- Model: đóng gói dữ liệu ứng dụng và bao gồm các POJO.
- View: Chịu trách nhiệm nhận giá trị của model và vẽ ra trang HTML mà trình
duyệt có thể hiển thị được.
- Controller: Chịu trách nhiệm nhận và xử lý các yêu cầu từ người dùng và tạo các
model phù hợp và trả về cho view
Spring MVC (tt)
9Mô hình Spring MVC và sơ đồ luồng xử lý
Spring Security
10
- Spring Security cung cấp các giải pháp để bảo vệ một ứng dụng được phát triển
bằng Spring framework.
- Thực hiện 2 nhiệm vụ chính của việc bảo mật ứng dụng là "xác thực"
(authentication) và "ủy quyền" (authorization) hay "kiểm soát truy cập" (access -
Scontrol)
• Xác thực là quá trình xác nhận và chứng thực một principal.
• Uỷ quyền đề cập đến quá trình quyết định có một principal được phép thực
hiện những hành động gì trong phạm vi ứng dụng của chúng ta.
Spring Security (tt)
11
Sơ đồ cơ chế bảo vệ
ứng dụng REST API
với Spring Security
AngularJS
12
Ngày nay các ứng
dụng web hiện đại
thường được xây
dựng như một Single
Page Application (SPA)
và AngularJS là một
framework tuyệt vời
để xây dựng 1 SPA
AngularJS (tt)
13
Những đặc trưng
nổi bật tạo nên sức
mạnh cho AngularJS
AngularJS (tt)
14
Đối với Angular, View sẽ là DOM, Controller là các hàm JavaScript, còn Model sẽ là
dữ liệu được lưu ở thuộc tính của các đối tượng trong JavaScript.
MVC giúp chúng ta tách ứng dụng thành 3 thành phần khác nhau. Model (xử lý, truy
xuất database), View (giao diện) và Controller (điều hướng yêu cầu từ người dùng)
AngularJS (tt)
15
One-way binding và Two-way binding
AngularJS (tt)
16
Directives thực sự là đặc điểm tạo nên một khoảng cách lớn giữa Angular và bất kỳ
framework JavaScript khác.
Directives đề cập đến một tính năng để mở rộng HTML, việc dùng directive sẽ giảm
thiểu được số lượng thẻ HTML, code HTML nhìn sẽ gọn gàng và sáng sủa hơn.
Directtive không chỉ giới hạn một phần tử HTML mà còn có thể là thuộc tính, lớp
hoặc các chú thích HTML. AngularJS cung cấp cho chúng ta 3 loại directive:
• Directive dạng element (một thẻ HTML) viết tắt là E
• Directive dạng attribute (thuộc tính của một thẻ HTML) viết tắt là A
• Directive dạng class(class CSS) viết tắt là C
Cài đặt ứng dụng
17
Mô hình ứng dụng Music Manager
Cài đặt ứng dụng (tt)
18
Module Client và Module Server của ứng dụng
Cài đặt ứng dụng (tt)
19
Cài đặt ứng dụng (tt)
20Nội dung 1 message
Cài đặt ứng dụng (tt)
21Response cho request update 1 bài hát
Cài đặt ứng dụng (tt)
22Giao diện chương trình
Kết quả đạt được
23
Về mặt lý thuyết:
- Nắm được kiến trúc tổng quan của Spring Framework cũng như các nguyên lý cơ
bản và cơ chế hoạt động của framework này.
- Nắm được mô hình web MVC trong Spring framework và các cơ chế để bảo mật
một ứng dụng web được hỗ trợ trong module Spring Security.
- Hiểu cơ chế giao tiếp giữa client và server trong mô hình web hiện đại theo hướng
RESTful service; cách giao tiếp giữa các thành phần của một hệ thống hoặc giữa các
hệ thống với nhau thông qua mô hình Messaging system.
Kết quả đạt được (tt)
24
Về mặt ứng dụng:
- Thiết kế và cài đặt được ứng dụng web với mô hình web server và data server tách
biệt nhau, giao tiếp với nhau thông qua ActiveMQ.
- Xây dựng được ứng dụng web dạng SPA mà việc giao tiếp với server thông qua
RESTful service với sự hỗ trợ của AngularJS.
- Thiết kế giao diện người dùng với HTM5 và Bootstrap có hỗ trợ responsive.
- Xây dựng thành công ứng dụng quản lý nhạc với đầy đủ các chức năng cơ bản.
- Xây dựng thành công một ứng dụng quản lý nhạc trên nền web có áp dụng các
công nghệ mới trong quá trình phát triển một ứng dụng Web enterprise hiện đại.
Hạn chế và khó khăn
25
Các chức năng cơ bản của ứng dụng đã hoàn thành tốt, tuy nhiên do yêu cầu và
phạm vi đề tài chỉ dừng lại ở mức demo công nghệ nên ứng dụng chưa hấp dẫn.
Hạn chế về vật chất, không có host trên internet có cài đặt đầy đủ các phần mềm
cần thiết tạo khó khăn trong việc thực hiện demo chương trình trên internet. Vấn đề
triển khai những công nghệ nêu trên không khó về mặt kỹ thuật nhưng phải xây
dựng một cơ sở hạ tầng đầy đủ và tốt để có thể thực thi ứng dụng
Hướng phát triển
26
Tiếp tục tìm hiểu về một số cơ chế xác thực và phân quyền trong module Spring
Security như cơ chế xác thực Oauth, Oauth2, OpenID,… để xây dựng ứng dụng với
cơ chế bảo mật hơn.
Bên cạnh đó tiếp tục tìm hiểu các module còn lại của Spring Framework như Spring
AOP nhằm tích hợp vào hệ thống để thực hiện một số chức năng đặc biệt như ghi
log người dùng.
Tìm hiểu về web socket và kết hợp với AngularJS để hướng đến việc xây dựng một
ứng dụng web động với thời gian thực.
Cám ơn quý thầy
cô và các bạn đã
lắng nghe.
27

Mais conteúdo relacionado

Mais procurados

Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...hoainhan1501
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Thuyet Nguyen
 
Kiến trúc-hướng-dịch-vụ-webservice
Kiến trúc-hướng-dịch-vụ-webserviceKiến trúc-hướng-dịch-vụ-webservice
Kiến trúc-hướng-dịch-vụ-webserviceThuyet Nguyen
 
lập trình di động
lập trình di độnglập trình di động
lập trình di độngtruong le hung
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...nataliej4
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Cao
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmThuyet Nguyen
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHan Nguyen
 
Hướng dẫn thiết kế web thương mại điện tử với joomla
Hướng dẫn thiết kế web thương mại điện tử với joomlaHướng dẫn thiết kế web thương mại điện tử với joomla
Hướng dẫn thiết kế web thương mại điện tử với joomlaNguyễn Hưng
 
Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Hai Te
 

Mais procurados (20)

Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
 
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.docKIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
 
Kiến trúc-hướng-dịch-vụ-webservice
Kiến trúc-hướng-dịch-vụ-webserviceKiến trúc-hướng-dịch-vụ-webservice
Kiến trúc-hướng-dịch-vụ-webservice
 
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đĐề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
 
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAYĐề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
 
lập trình di động
lập trình di độnglập trình di động
lập trình di động
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềm
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Đề tài: Tìm hiểu về JQsuery – UI – Bootstrap và ứng dụng, 9đ
Đề tài: Tìm hiểu về JQsuery – UI – Bootstrap và ứng dụng, 9đĐề tài: Tìm hiểu về JQsuery – UI – Bootstrap và ứng dụng, 9đ
Đề tài: Tìm hiểu về JQsuery – UI – Bootstrap và ứng dụng, 9đ
 
Đề tài: Kiểm thử phần mềm trên thiết bị di động, HAY, 9đ
Đề tài: Kiểm thử phần mềm trên thiết bị di động, HAY, 9đĐề tài: Kiểm thử phần mềm trên thiết bị di động, HAY, 9đ
Đề tài: Kiểm thử phần mềm trên thiết bị di động, HAY, 9đ
 
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đĐề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
Hướng dẫn thiết kế web thương mại điện tử với joomla
Hướng dẫn thiết kế web thương mại điện tử với joomlaHướng dẫn thiết kế web thương mại điện tử với joomla
Hướng dẫn thiết kế web thương mại điện tử với joomla
 
Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)
 

Destaque

Spring mvc
Spring mvcSpring mvc
Spring mvcBa Big
 
RichTetxtBox control
RichTetxtBox controlRichTetxtBox control
RichTetxtBox controlAn Nguyen
 
Tài Liệu SEO - IUH
Tài Liệu SEO - IUHTài Liệu SEO - IUH
Tài Liệu SEO - IUHNhan Han
 
đồ án lt nhóm 9
đồ án lt   nhóm 9đồ án lt   nhóm 9
đồ án lt nhóm 9Dinh Minh
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaHuy Vũ
 
Tổng hợp các lệnh cơ bản trong autocad
Tổng hợp các lệnh cơ bản trong autocadTổng hợp các lệnh cơ bản trong autocad
Tổng hợp các lệnh cơ bản trong autocadbotemkin
 
Một số lệnh tắt trong auto cad và những lệnh hay trong autocad
Một số lệnh tắt trong auto cad và những lệnh hay trong autocadMột số lệnh tắt trong auto cad và những lệnh hay trong autocad
Một số lệnh tắt trong auto cad và những lệnh hay trong autocadTrung Lưu
 

Destaque (11)

Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
RichTetxtBox control
RichTetxtBox controlRichTetxtBox control
RichTetxtBox control
 
Tài Liệu SEO - IUH
Tài Liệu SEO - IUHTài Liệu SEO - IUH
Tài Liệu SEO - IUH
 
Richtextbox
RichtextboxRichtextbox
Richtextbox
 
đồ án lt nhóm 9
đồ án lt   nhóm 9đồ án lt   nhóm 9
đồ án lt nhóm 9
 
Do an tot nghiep
Do an tot nghiepDo an tot nghiep
Do an tot nghiep
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
IoC and Mapper in C#
IoC and Mapper in C#IoC and Mapper in C#
IoC and Mapper in C#
 
Tổng hợp các lệnh cơ bản trong autocad
Tổng hợp các lệnh cơ bản trong autocadTổng hợp các lệnh cơ bản trong autocad
Tổng hợp các lệnh cơ bản trong autocad
 
Một số lệnh tắt trong auto cad và những lệnh hay trong autocad
Một số lệnh tắt trong auto cad và những lệnh hay trong autocadMột số lệnh tắt trong auto cad và những lệnh hay trong autocad
Một số lệnh tắt trong auto cad và những lệnh hay trong autocad
 

Semelhante a Spring framework

01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5Thanh Nguyen
 
429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdfToNguyen16
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi duKim Hyun Hai
 
Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc  Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc truong nguyen
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netnataliej4
 
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptx
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptxNHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptx
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptxPhuongPhan826909
 
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupBáo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupTinh Ngo
 
3-Requirements_VI.pdf
3-Requirements_VI.pdf3-Requirements_VI.pdf
3-Requirements_VI.pdfEllieHuynh3
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềmLượng Võ Đại
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASPHannie Mia
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmTrần Gia Bảo
 

Semelhante a Spring framework (20)

01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc  Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc
 
Lecture01
Lecture01Lecture01
Lecture01
 
Aspnet 3.5_03
Aspnet 3.5_03Aspnet 3.5_03
Aspnet 3.5_03
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.net
 
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptx
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptxNHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptx
NHÓM 1010_ĐỒ ÁN LẬP TRÌNH WEB .docx.pptx
 
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupBáo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
 
3-Requirements_VI.pdf
3-Requirements_VI.pdf3-Requirements_VI.pdf
3-Requirements_VI.pdf
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềm
 
Chuong 2. cnpm
Chuong 2. cnpmChuong 2. cnpm
Chuong 2. cnpm
 
5.spring.net
5.spring.net5.spring.net
5.spring.net
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASP
 
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soaLuận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
 
04 de cuong
04 de cuong04 de cuong
04 de cuong
 
thuyet trinh mon cnpm.ppt
thuyet trinh mon cnpm.pptthuyet trinh mon cnpm.ppt
thuyet trinh mon cnpm.ppt
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
 

Mais de An Nguyen

Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and JenkinsAn Nguyen
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Introduce to Credstash
Introduce to CredstashIntroduce to Credstash
Introduce to CredstashAn Nguyen
 
Introduction To AWS & AWS Lambda
Introduction To AWS & AWS LambdaIntroduction To AWS & AWS Lambda
Introduction To AWS & AWS LambdaAn Nguyen
 
Introduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmAn Nguyen
 
Secret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on KubernetesSecret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on KubernetesAn Nguyen
 
Terminal Services and VPN
Terminal Services and VPNTerminal Services and VPN
Terminal Services and VPNAn Nguyen
 
Tân sinh viên TECH - AGU 2014
Tân sinh viên TECH - AGU 2014Tân sinh viên TECH - AGU 2014
Tân sinh viên TECH - AGU 2014An Nguyen
 
Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#An Nguyen
 
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làm
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làmNêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làm
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làmAn Nguyen
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàngAn Nguyen
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàngAn Nguyen
 
Hội nghị học tốt CNTT 2013 - An Giang University
Hội nghị học tốt CNTT 2013 - An Giang UniversityHội nghị học tốt CNTT 2013 - An Giang University
Hội nghị học tốt CNTT 2013 - An Giang UniversityAn Nguyen
 

Mais de An Nguyen (15)

Terraform
TerraformTerraform
Terraform
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Introduce to Credstash
Introduce to CredstashIntroduce to Credstash
Introduce to Credstash
 
Introduction To AWS & AWS Lambda
Introduction To AWS & AWS LambdaIntroduction To AWS & AWS Lambda
Introduction To AWS & AWS Lambda
 
Introduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker Swarm
 
Secret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on KubernetesSecret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on Kubernetes
 
Terminal Services and VPN
Terminal Services and VPNTerminal Services and VPN
Terminal Services and VPN
 
Tân sinh viên TECH - AGU 2014
Tân sinh viên TECH - AGU 2014Tân sinh viên TECH - AGU 2014
Tân sinh viên TECH - AGU 2014
 
Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#
 
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làm
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làmNêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làm
Nêu cao tinh thần trách nhiệm, chống chủ nghĩa cá nhân, nói đi đôi với làm
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàng
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàng
 
Hội nghị học tốt CNTT 2013 - An Giang University
Hội nghị học tốt CNTT 2013 - An Giang UniversityHội nghị học tốt CNTT 2013 - An Giang University
Hội nghị học tốt CNTT 2013 - An Giang University
 

Spring framework

  • 1. TRƯỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT – CÔNG NGHỆ - MÔI TRƯỜNG Sinh viên: Nguyễn Thiện An – DH114081 GVHD: Th.S Huỳnh Lý Thanh Nhàn BÁO CÁO KHÓA LUẬN TỐT NGHIỆP Đề tài: TÌM HIỂU FRAMEWORK SPRING VÀ XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHẠC PHÍA CLIENT
  • 2. Nội dung • Lý do thực hiện đề tài • Cơ sở lý thuyết: • Spring framework • AngularJS • Cài đặt ứng dụng • Kết luận 2
  • 3. Lý do thực hiện đề tài - 16.2% dự án là hoàn thành đúng hạn và nằm trong giới hạn ngân sách. - Và hơn 83.8% dự án thất bại hoặc không đáp ứng được những yêu cầu ban đầu Do các thành phần quá phụ thuộc lẫn nhau, chồng chéo, không có tính sử dụng lại. - Ngoài ra chi phí cho việc bảo trì và mở rộng hệ thống luôn lớn hơn nhiều lần so với các pha khác. 3 3 3 5 7 15 67 Xác định yêu cầu Đặt tả Thiết kế Lập trình Kiểm thử Bảo trì
  • 4. Lý do thực hiện đề tài (tt) - Hầu hết các hệ thống đều được phát triển trên nền web. - Công nghệ di động đang ngày càng trở nên phổ biến, số lượng người sử dụng và truy cập qua các thiết bị di động tăng một cách nhanh chóng. 4 => Do đó chúng tôi thực hiện đề tài “Tìm hiểu Framework Spring và xây dựng ứng dụng quản lý nhạc phía client”.
  • 5. Spring framework 5 - Là framework Java mã nguồn mở được sử dụng nhiều nhất hiện nay. - Spring có cách tạo và liên kết các thành phần rất riêng và hữu ích nhờ vào IoC container và Dependencies Injection (DI). - Được giới thương mại công nhận như một framework có tầm quan trọng trong chiến lược kiến tạo phần mềm
  • 6. Spring framework (tt) 6 Spring được sử dụng rộng rãi nhờ: - Đơn giản: Spring framework thực sự rất đơn giản vì nó áp dụng mô hình POJO (Plain Old Java Objects) và POJI (Plain Old Java Interfaces). - Dễ dàng kiểm soát lỗi: Môi trường giả lập đơn giản. Có thể sử dụng Console để kiểm thử các thành phần riêng lẽ. - Ít phụ thuộc: Trong Spring các đối tượng ít phụ thuộc lẫn nhau, đây là vấn đề cốt lõi của Spring framework -> dễ sửa đổi, nâng cấp bảo trì.
  • 7. Spring MVC 7 - Spring MVC cung cấp kiến trúc Model – View - Controller và các components sẵn có để sử dụng và phát triển ứng dụng web một cách nhanh chóng và linh hoạt. - Spring MVC được thiết kế xung quanh Dispatcher Servlet để xử lý tất cả các HTTP request và HTTP response.
  • 8. Spring MVC (tt) 8 Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”. - Model: đóng gói dữ liệu ứng dụng và bao gồm các POJO. - View: Chịu trách nhiệm nhận giá trị của model và vẽ ra trang HTML mà trình duyệt có thể hiển thị được. - Controller: Chịu trách nhiệm nhận và xử lý các yêu cầu từ người dùng và tạo các model phù hợp và trả về cho view
  • 9. Spring MVC (tt) 9Mô hình Spring MVC và sơ đồ luồng xử lý
  • 10. Spring Security 10 - Spring Security cung cấp các giải pháp để bảo vệ một ứng dụng được phát triển bằng Spring framework. - Thực hiện 2 nhiệm vụ chính của việc bảo mật ứng dụng là "xác thực" (authentication) và "ủy quyền" (authorization) hay "kiểm soát truy cập" (access - Scontrol) • Xác thực là quá trình xác nhận và chứng thực một principal. • Uỷ quyền đề cập đến quá trình quyết định có một principal được phép thực hiện những hành động gì trong phạm vi ứng dụng của chúng ta.
  • 11. Spring Security (tt) 11 Sơ đồ cơ chế bảo vệ ứng dụng REST API với Spring Security
  • 12. AngularJS 12 Ngày nay các ứng dụng web hiện đại thường được xây dựng như một Single Page Application (SPA) và AngularJS là một framework tuyệt vời để xây dựng 1 SPA
  • 13. AngularJS (tt) 13 Những đặc trưng nổi bật tạo nên sức mạnh cho AngularJS
  • 14. AngularJS (tt) 14 Đối với Angular, View sẽ là DOM, Controller là các hàm JavaScript, còn Model sẽ là dữ liệu được lưu ở thuộc tính của các đối tượng trong JavaScript. MVC giúp chúng ta tách ứng dụng thành 3 thành phần khác nhau. Model (xử lý, truy xuất database), View (giao diện) và Controller (điều hướng yêu cầu từ người dùng)
  • 15. AngularJS (tt) 15 One-way binding và Two-way binding
  • 16. AngularJS (tt) 16 Directives thực sự là đặc điểm tạo nên một khoảng cách lớn giữa Angular và bất kỳ framework JavaScript khác. Directives đề cập đến một tính năng để mở rộng HTML, việc dùng directive sẽ giảm thiểu được số lượng thẻ HTML, code HTML nhìn sẽ gọn gàng và sáng sủa hơn. Directtive không chỉ giới hạn một phần tử HTML mà còn có thể là thuộc tính, lớp hoặc các chú thích HTML. AngularJS cung cấp cho chúng ta 3 loại directive: • Directive dạng element (một thẻ HTML) viết tắt là E • Directive dạng attribute (thuộc tính của một thẻ HTML) viết tắt là A • Directive dạng class(class CSS) viết tắt là C
  • 17. Cài đặt ứng dụng 17 Mô hình ứng dụng Music Manager
  • 18. Cài đặt ứng dụng (tt) 18 Module Client và Module Server của ứng dụng
  • 19. Cài đặt ứng dụng (tt) 19
  • 20. Cài đặt ứng dụng (tt) 20Nội dung 1 message
  • 21. Cài đặt ứng dụng (tt) 21Response cho request update 1 bài hát
  • 22. Cài đặt ứng dụng (tt) 22Giao diện chương trình
  • 23. Kết quả đạt được 23 Về mặt lý thuyết: - Nắm được kiến trúc tổng quan của Spring Framework cũng như các nguyên lý cơ bản và cơ chế hoạt động của framework này. - Nắm được mô hình web MVC trong Spring framework và các cơ chế để bảo mật một ứng dụng web được hỗ trợ trong module Spring Security. - Hiểu cơ chế giao tiếp giữa client và server trong mô hình web hiện đại theo hướng RESTful service; cách giao tiếp giữa các thành phần của một hệ thống hoặc giữa các hệ thống với nhau thông qua mô hình Messaging system.
  • 24. Kết quả đạt được (tt) 24 Về mặt ứng dụng: - Thiết kế và cài đặt được ứng dụng web với mô hình web server và data server tách biệt nhau, giao tiếp với nhau thông qua ActiveMQ. - Xây dựng được ứng dụng web dạng SPA mà việc giao tiếp với server thông qua RESTful service với sự hỗ trợ của AngularJS. - Thiết kế giao diện người dùng với HTM5 và Bootstrap có hỗ trợ responsive. - Xây dựng thành công ứng dụng quản lý nhạc với đầy đủ các chức năng cơ bản. - Xây dựng thành công một ứng dụng quản lý nhạc trên nền web có áp dụng các công nghệ mới trong quá trình phát triển một ứng dụng Web enterprise hiện đại.
  • 25. Hạn chế và khó khăn 25 Các chức năng cơ bản của ứng dụng đã hoàn thành tốt, tuy nhiên do yêu cầu và phạm vi đề tài chỉ dừng lại ở mức demo công nghệ nên ứng dụng chưa hấp dẫn. Hạn chế về vật chất, không có host trên internet có cài đặt đầy đủ các phần mềm cần thiết tạo khó khăn trong việc thực hiện demo chương trình trên internet. Vấn đề triển khai những công nghệ nêu trên không khó về mặt kỹ thuật nhưng phải xây dựng một cơ sở hạ tầng đầy đủ và tốt để có thể thực thi ứng dụng
  • 26. Hướng phát triển 26 Tiếp tục tìm hiểu về một số cơ chế xác thực và phân quyền trong module Spring Security như cơ chế xác thực Oauth, Oauth2, OpenID,… để xây dựng ứng dụng với cơ chế bảo mật hơn. Bên cạnh đó tiếp tục tìm hiểu các module còn lại của Spring Framework như Spring AOP nhằm tích hợp vào hệ thống để thực hiện một số chức năng đặc biệt như ghi log người dùng. Tìm hiểu về web socket và kết hợp với AngularJS để hướng đến việc xây dựng một ứng dụng web động với thời gian thực.
  • 27. Cám ơn quý thầy cô và các bạn đã lắng nghe. 27

Notas do Editor

  1. Trong một khảo sát với khoảng 8.000 dự án phần mềm, Standish Group cho biết có chỉ có: Bên cạnh đó chi phí cho việc bảo trì và mở rộng hệ thống luôn lớn hơn nhiều lần so với các pha khác trong quy trình phát triển một hệ thống => Vì vậy trong quy trình phát triển phần mềm hiện đại, xây dựng và phát triển một hệ thống bao giờ cũng đặt việc tạo ra các thành phần riêng rẽ độc lập, có sự phân biệt rõ ràng về trách nhiệm, có tính sử dụng lại cao lên làm ưu tiên hàng đầu. Bởi vì một khi đã tạo ra các thành phần như vậy, chúng ta sẽ tiết kiệm được rất nhiều thời gian và công sức trong quá trình bảo trì và mở rộng hệ thống sau này
  2. Bởi vì các ứng dụng web đem lại khả năng phát triển và triển khai sản phẩm nhanh chóng, giảm thời gian đưa sản phẩm ra thị trường, có khả năng cập nhật tính năng liên tục hàng ngày Ứng dụng web có thời gian phát triển nhanh, với chi phí phát triển và triển khai thấp, tin cậy, có thể truy cập từ bất cứ đâu, mọi người có thể sử dụng mà không mất thời gian tìm hiểu nhờ giao diện trực quan Xu hướng thiết kế và viết các ứng dụng thích hợp với các thiết bị di động đang trở thành một xu hướng tất yếu
  3. 1. Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping (một bản đồ cấu hình URL) để xác định controller nào sẽ xử lý yêu cầu này. 2. Controller sẽ nhận các request và gọi các phương thức dịch vụ (service methods) phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller. Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet 3. DispatcherServlet gửi gói ModelAndView cho ViewResolver để tìm xem view (thông thường là một trang JSP, HTML) nào sẽ được load lên. 4. Sau khi hoàn tất, DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt
  4. Một principal thường có nghĩa là một người sử dụng, thiết bị hoặc một số hệ thống khác mà có thể thực hiện một hành động trong ứng dụng. Để được ủy quyền thì quá trình xác thực là cần thiết và phải được thực hiện trước, ủy quyền chỉ được thực hiện khi xác thực thành công. Đây là những khái niệm rất phổ biến cho hầu hết các ứng dụng và nó không phải là riêng của Spring Security
  5. - Cơ chế này cũng được áp dụng trong Music Manager
  6. Một SPA là một ứng dụng web hiển thị vừa vặn trên một mặt của trang với mục đích giúp người dùng có trải nghiệm giống như đang dùng ứng dụng trên desktop và làm tăng hiệu suất của ứng dụng. Hay nói một cách khác là ứng dụng chạy bên trong trình duyệt mà không yêu cầu phải tải lại toàn bộ trang web mỗi lần sử dụng.
  7. Những đặc trưng nổi bật của AngularJS: kiến trúc MVC, Two-way binding, Templates, Expressions, Modules, Scopes, Dependency injection, Directives, Routing, Services, Filters, Form validation, Testing,… Two-way binding cùng với Directive là hai trong những đặc trưng nổi bật mang lại sức mạnh cho AngularJS
  8. Khi làm việc với các mô hình MVC framework khác chúng ta sẽ rơi vào trường hợp model và view chỉ được ghép với nhau một lần duy nhất, vì vậy mọi sự cập nhật dữ liệu từ một trong hai lớp đó đều không liên quan gì đến lớp còn lại. Hệ quả là developer phải viết thêm phần “đồng bộ hóa” giữa hai lớp này. Đó chính là one-way binding Two-way binding trong AngularJS là tính năng đồng bộ hóa giữa model và view. Quá trình đồng bộ luôn xảy ra giữa model và view. Mọi sự thay đổi dữ liệu trong lớp này, ngay lập tức được cập nhật vào lớp kia [7, 11]. Chúng ta chỉ cần “bind” một lần, và mọi thứ hoạt động trơn tru Cũng vì dữ liệu mà view hiển thị thực chất là sự ánh xạ từ model, nên controller cũng hoàn toàn không cần các thao tác data binding phức tạp và phụ thuộc vào cấu trúc DOM của view, kết quả là controller sẽ không quan tâm xem view của chúng ta là gì. Và dĩ nhiên, logic giữa controller và view được bóc tách rất rõ ràng. Code của chúng ta sẽ rất dễ để debug, viết unit-test
  9. Nhằm mục đích áp dụng các lý thuyết cũng như các kỹ thuật đã nêu ở phần trên, chúng tôi sẽ phân tích và cài đặt một ứng dụng quản lý nhạc trên nền web. Ứng dụng được xây dựng theo mô hình sau
  10. Chúng tôi sẽ chia ứng dụng thành 2 module lớn: Module server và module client. - Module server sẽ chịu trách nhiệm tương tác với database. Module client bao gồm việc xây dựng các API dưới dạng RESTful web service. HTML, CSS, Bootstrap và AngularJS sẽ được sử dụng để thiết kế giao diện và lập trình phía front-end. Phía back-end sẽ sử dụng Spring framework bao gồm Spring MVC để cài đặt các API RESTful service, Spring Security để xác thực và phân quyền người dùng và Camel Client được sử dụng để giao tiếp với database server thông qua ActiveMQ. Việc giao tiếp qua lại giữa client và server sẽ được cài đặt theo mô hình một Messaging System
  11. Luồng thực thi của ứng dụng
  12. Trong một hệ thống gửi nhận thông điệp thì cấu trúc của message là rất quan trọng. Để giao tiếp với nhau các thành phần của hệ thống phải hiểu được cấu trúc của message, vì vậy cấu trúc của nó thường được các thành phần thống nhất với nhau ngay từ khi bắt đầu xây dựng hệ thống. Việc thiết kế message phải đảm bảo được tính mềm dẻo và dễ dàng mở rộng của hệ thống. Nếu request của client cần phải thao tác với CSDL thì một message sẽ được controller build và chuyển nó cho producer để gửi nó lên MOM. Module server sẽ chịu trách nhiệm xử lý message này và kết quả sau khi xử lý xong sẽ được gửi lại cho producer đã gửi lên Về mô hình gửi nhận message, message trong hệ thống sẽ được cài đặt theo mô hình point – to – point vì mô hình này có sự đảm bảo chặt chẽ về việc một message thì chỉ được xử lý một lần, điều này là phù hợp với ứng dụng của chúng ta