Bao Cao Thuc Tap Dao Phu Hung 92164 | Đại học Xây Dựng Hà Nội

Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng biết ơn đến tất cả các cấp lãnh đạo, anh chị em nhân viên đang công tác tại Công ty cổ phần METAWAY TECH đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè. Tài liệu giúp bạn tham khảo, học tập và đạt kết quả cao. Mời bạn đọc đón xem!

Thông tin:
31 trang 3 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bao Cao Thuc Tap Dao Phu Hung 92164 | Đại học Xây Dựng Hà Nội

Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng biết ơn đến tất cả các cấp lãnh đạo, anh chị em nhân viên đang công tác tại Công ty cổ phần METAWAY TECH đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè. Tài liệu giúp bạn tham khảo, học tập và đạt kết quả cao. Mời bạn đọc đón xem!

78 39 lượt tải Tải xuống
lOMoARcPSD|45222017
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
Lời cảm ơn
lOMoARcPSD|45222017
BỘ MÔN KỸ THUẬT HỆ THỐNG & MẠNG MÁY TÍNH
--------------- ---------------
BÁO CÁO THỰC
TẬP CÁN BỘ KỸ THUẬT
Sinh viên thực tập Đào Phú Hưng Mã số sinh viên 92164
Lớp 64MHT2
Giảng viên phụ trách ThS. Lê Đức Quang
Bộ môn Kỹ thuật hệ thống & mạng
máy tính
Địa điểm thực tập Công ty cổ phần
METAWAY TECH
HÀ NỘI 16/09/2023
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ
lòng biết ơn đến tất cả các cấp lãnh đạo, anh chị em nhân viên đang công tác tại
Công ty cổ phần METAWAY TECH đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt
quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học
tập tại trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý
Thầy Cô và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công nghệ
thông tin trường Đại học Xây Dựng đã truyền đạt vốn kiến thức quý báu cho chúng
em trong suốt thời gian học tập tại trường. Nhờ có những lời hướng dẫn, dạy bảo
của các thầy cô nên đề tài nghiên cứu của em mới có thể hoàn thiện tốt đẹp.
lOMoARcPSD|45222017
Một lần nữa, em xin chân thành cảm ơn thầy Lê Đức Quang – người đã trực tiếp
giúp đỡ, quan tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.
Bài báo cáo thực tập thực hiện trong khoảng thời gian gần 5 tuần. Bước đầu đi
vào thực tế của em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những
thiếu sót, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô
để kiến thức của em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện
bổ sung, nâng cao ý thức của mình.
Em xin chân thành cảm ơn!
Mục lục
CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP.........................................................................1
1. GIỚI THIỆU CHUNG..............................................................................................................1
2. LĨNH VỰC HOẠT ĐỘNG.......................................................................................................2
3. CƠ CẤU TỔ CHỨC CỦA CÔNG TY.....................................................................................2
3.1. Cơ cấu tổ chức:.......................................................................................................................2
3.2. Đội ngũ cán bộ, công nhân viên:............................................................................................3
4. MỘT SỐ DỰ ÁN TIÊU BIỂU..................................................................................................4
5. CHÍNH SÁCH, MỤC TIÊU HOẠT ĐỘNG............................................................................4
CHƯƠNG II. CƠ SỞ LÝ THUYẾT....................................................................................................6
1. java.............................................................................................................................................6
2. java Spring boot........................................................................................................................7
3. Maven.........................................................................................................................................8
4. Intellji Idea.................................................................................................................................9
5. Git.............................................................................................................................................10
6. My SQL....................................................................................................................................11
7. My SQL Workbench...............................................................................................................12
CHƯƠNG III. NỘI DUNG NGHIÊN CỨU......................................................................................13
1. NỘI DUNG THỰC TẬP.........................................................................................................13
QUÁ TRÌNH THỰC HIỆN............................................................................................................13
lOMoARcPSD|45222017
1.1. Tuần 1: Nghiêm cứu tài liệu, tự học về mô hình web api, openID...............................14
1.2. Tuần 2, 3: Nghiên cứu nghiệp vụ Dự án Divega endolife, Xây dựng Database,
Xây dựng project, liên kết CSDL..........................................................................................17
1.3. Tuần 4, 5: Viết các API thao tác với CSDL, thiết kế giao diện trang quản trị 18
CHƯƠNG IV. KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................26
1. KẾT LUẬN..............................................................................................................................26
2. KIẾN NGHỊ.............................................................................................................................26
lOMoARcPSD|45222017
1
CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP
1. GIỚI THIỆU CHUNG
Tên công ty: CÔNG TY CỔ PHẦN METAWAY TECH
Tên quốc tế: METAWAY TECH JOINT STOCK COMPANY
Trụ sở chính: CX01, khu đô thị Văn Khê, phường La Khê, quận Hà Đông, Hà
Nội, Việt Nam
Đại diện pháp luật: Trần Nam Chung
Điện thoại: 0902062323 - 1900633815
E-mail: info@metawaytech.com
Website: www.metawaytech.com
Công ty Cổ Phần METAWAY TECH là 1 công ty trong hệ sinh thái của tập
đoàn Metaway Holdings, được thành lập ngày 11 tháng 07 năm 2021 theo giấy
chứng nhận đăng ký kinh doanh số:
0110057231
do sở kế hoạch đầu tư thành phố
Hà Nội cấp ngày 11 tháng 07 năm 2021.
Thành lập vào năm 2021, Metaway Holdings là Tập đoàn kinh tế số được
xây dựng và hoạt động theo cơ chế vốn, có trụ sở chính tại Mỹ và có văn phòng
tại nhiều quốc gia trên thế giới, trong đó có Việt Nam.
Metaway Holdings kiến tạo các nền tảng để hình thành nên các trụ cột của nền
kinh tế số bao gồm: Y tế số, giáo dục số, thương mại số, ngân hàng số, bảo hiểm
số, bất động sản số… dựa trên việc áp dụng tối đa các công nghệ mới nhất để
phụng sự và đáp ứng những nhu cầu kết nối của công dân toàn cầu.
Metaway Tech có gần 8 năm nghiên cứu và phát triển các công nghệ nền tảng.
Những trải nghiệm thực tế và kiến thức chuyên môn sâu rộng chính là tiền đề để
chúng tôi thấu hiểu nhu cầu của thị trường, từ đó đưa ra các sản phẩm thông minh,
tối ưu và hiệu quả nhất cho người dùng.
lOMoARcPSD|45222017
2
2. LĨNH VỰC HOẠT ĐỘNG
- Metaway Tech hướng đến mục tiêu trở thành đơn vị cung cấp các giải pháp công
nghệ hàng đầu, đóng góp tích cực trong việc phát triển kinh tế số và hình thành nên
metaverse.
- Blockchain: Để hình thành một hệ sinh thái đa dạng, có tính liên kết và khả năng
kiểm soát tổng thể, Metaway Tech phát triển blockchain layer 1 ứng dụng vào các
sản phẩm trong hệ sinh thái công nghệ và kinh tế số giúp tăng tính công khai, minh
bạch. Công nghệ blockchain đang tạo ra một cuộc cách mạng k thuật số. Ứng dụng
blockchain vào nhiều dự án thuộc các lĩnh vực bất động sản, tài chính, thương mại
điện tử...,. Blockchain layer 1 của Metaway Tech có khả năng mở rộng cao và tương
thích với các blockchain khác trên thị trường như: Binance Smart Chain, Polygon,
Ethereum, Solana...
- AI, Big data: Metaway Tech ứng dụng công nghệ AI & Big Data trong việc tổng
hợp, phân tích khối lượng dữ liệu khổng lồ và chuyển hóa thành thông tin quan
trọng giúp giải quyết các vấn đề liên quan một cách tối ưu, Metaway Tech ứng dụng
Google BigQuery trong lưu trữ, xử lý thông tin để nâng cao trải nghiệm người dùng,
giúp hệ thống xử lý thông minh, linh hoạt hơn. Metaway Tech, Google Cloud
Pub/Sub được ứng dụng giúp xử lý hiệu quả mọi thông tin, dữ liệu cho các dự án
trong hệ sinh thái.
- VR, AR, XR, METAVERSE: AR/XR, VR, Metaverse chính là những công ngh
được Metaway Tech ứng dụng giúp con người vươn tới một thế giới mới, phá bỏ
toàn bộ những rào cản giới hạn sự sáng tạo
- IOT & AUTOMATION: Metaway Tech ứng dụng EMQX, Espressif, GPS và
Firmware Over-The-Air trong phát triển dự án MetaXe.
3. CƠ CẤU TỔ CHỨC CỦA CÔNG TY
3.1. Cơ cấu tổ chức:
Các phòng ban chức năng:
lOMoARcPSD|45222017
3
- Ban Lãnh đạo
- Phòng Kinh doanh, Marketing
- Phòng Thiết kế
- Phòng Công nghệ
- Phòng Hành Chính
- Phòng Tài chính Kế toán
- Phòng Pháp chế
3.2. Đội ngũ cán bộ, công nhân viên:
Đội ngũ cán bộ công nhân viên là các cán bộ có nhiều kinh nghiệm trong lĩnh
vực công nghệ thông tin. Metaway Holdings sở hữu nguồn lực mạnh mẽ từ con
người, tài chính đến công nghệ. Những người sáng lập đội ngũ điều hành của
Metaway Holdings nhiều năm kinh nghiệm về chiến lược, quản trị doanh
nghiệp, đầu tư, tái cấu trúc và am hiểu các công thức tnh công.
Đội ngũ lãnh đạo
Sau thời gian hoạt động, Công ty cổ phần METAWAY TECH đã từng bước lớn mạnh
một vị trí vững chắc trong các lĩnh vực hoạt động kinh doanh của mình. Công
ty có đội ngũ nhân viên chuyên nghiệp với trình độ chuyên môn cao. Công ty có đội
ngũ nhân viên đồng đều vững vàng, cùng với khả năng được nâng cao, đáp ứng
các yêu cầu của khách hàng. Tận tụy và chuyên nghiệp những giá trị tạo nên lực
đẩy tạo đà cho METAWAY TECH ngày càng hoàn thiện hơn.
lOMoARcPSD|45222017
4
METAWAY luôn tạo điều kiện cho nhân viên của mình đạt được khả năng tối
đa bằng việc trao cho họ những hội tiến bộ trong nghề nghiệp môi trường làm
việc nhiều thử thách. Công ty thường xuyên tổ chức đào tạo, đào tạo lại cán bộ,
nhân viên của mình. Cán bộ nhân viên của Công ty thường được cử tham gia các khoá
học trong ngoài ớc do chuyên gia của các hãng cung cấp thiết bị hàng đầu thế
giới giảng dạy, được cập nhật các thông tin mới nhất về công nghệ tiên tiến của thế
giới trong lĩnh vực viễn thông, tự động hoá và công nghệ thông tin qua các cuộc hội
thảo chuyên đề, tài liệu, sách báo.
Cùng với ng lực cán bộ đội ngũ công nhân lành nghề, kinh nghiệm
Chiến lược: " Vi tm nhìn tr thành tập đoàn kinh tế s hàng đu, chúng
tôi dành nhiu thi gian cho công tác nghiên cu phân tích th trường,
các hình kinh doanh bn vững, đồng thi am hiu sâu sc các công
ngh mi nhm ng dng công ngh vào gii quyết các vấn đề nan gii
ca th trường." Đây chính hướng phát triển quan trọng chiến lược mà chúng
tôi hướng tới.
4. MỘT SỐ DỰ ÁN TIÊU BIỂU:
- Divega: Divega là một trong những dự án nền tảng quan trọng của
MetawayTech- đơn vị tiên phong nghiên cứu, phát triển và cung cấp các giải
pháp, sản phẩm công nghệ mới nhất để hỗ trợ kiến tạo nên các trụ cột của nền
kinh tế số và đáp ứng những nhu cầu của người dùng toàn cầu trong kỷ nguyên
số
Link: https://www.divega.com/
- Pindias: Pindias ứng dụng công nghệ và tích hợp dữ liệu chính xác giúp các
chuyên gia quy hoạch có thể thu thập thông tin địa lý, mô phỏng các kịch bản và
phân tích dữ liệu một cách chi tiết nhất.
Quy hoạch số trên Pindias đảm bảo các quyết định liên quan đến bất đông
sản được đưa ra dựa trên nguồn dữ liệu uy tín, đồng thời tối ưu hóa việc sử
dụng không gian và tài nguyên. Link: https://pindias.com/
- Hyperas Chain: Khai phá tiềm năng của AI phi tập trung, dễ tiếp cận, giá cả
phải chăng bằng blockchain. Chuỗi Hyperas nhằm mục đích xây dựng một
mạng lưới sức mạnh tính toán hiệu suất cao được phân phối vô hạn dựa trên
lOMoARcPSD|45222017
5
công nghệ blockchain và trở thành cơ sở hạ tầng sức mạnh tính toán quan trọng
nhất trong kỷ nguyên AI + Metaverse
Link: https://www.hyperaschain.com/
5. CHÍNH SÁCH, MỤC TIÊU HOẠT ĐỘNG
Công ty Công ty cổ phần METAWAY TECH đang từng bước thực hiện hệ thống
quản lý chất lương theo tiêu chuẩn ISO 9001 2015.
Chính sách chất lượng sản phẩm của Công ty cổ phần METAWAY TECH là :
“Luôn tập trung nâng cao sự hài lòng của khách hàng bằng những sản phẩm, dịch vụ
có chất lượng tốt nhất”
Để đạt được chính sách nêu trên, Công ty cổ phần METAWAY TECH luôn
luôn phấn đấu để thực hiện các mục tiêu:
1. Mỗi cán bộ công nhân viên tự chịu trách nhiệm cao trong công việc của
mình, ý thức trong nhiệm vụ được giao, làm ra sản phẩm đảm bảo chất
lượng phục vụ tốt nhất cho khách hàng.
2. Luôn luôn học tập rè luyện nâng cao năng lực chuyên môn nghiệp vụ.
3. Không ngừng cải thiện điều kiện làm việc và trang thiết bị.
4. Luôn duy trì và hướng tới các hoạt động của hệ thống quản lý chất lượng
theo tiêu chuẩn ISO 9001 2015.
CHƯƠNG II. CƠ SỞ LÝ THUYẾT
1. Java
- Java là một ngôn ngữ lập trình cao cấp được công bố trên toàn thế giới vào năm
1995. Java một ngôn ngữ chạy đa nên tảng như Windows, MacOS…
- Lập trình hướng đối tượng là một kỹ thuật lập trình tạo ra các đối tượng trong
code.
Trừu tượng hóa các đối tượng thực tế trong cuộc sống.
Hay con gọi theo cách khác là k thuật lập trình mà tất cả các logic, yêu cầu thực
tế đều được xây dựng xoay quanh các đối tượng.
- 4 tính chất góp phần tạo nên khái niệm lập trình hướng đối tượng, chúng có thể
tồn tại trong các ngôn ngữ tuân theo hướng đối tượng, đặc biệt đối với những
lOMoARcPSD|45222017
6
ngôn ngữ thuần hướng đối tượng như C++, Java, C#, Ruby,… sẽ có đủ 4 tính chất
này:
Tính đóng gói (Encapsulation): Đóng gói sự che giấu dữ liệu riêng bên trong mỗi
đối tượng của lớp được khai báo chỉ được truy xuất thông qua hệ thống các phương
thức có sẵn của lớp.
Tính đóng gói dùng để bảo vệ dữ liệu, ngăn ngừa việc truy cập và gán giá trị trực tiếp
cho thuộc tính bên trong đối tượng, nhằm bảo vệ tính chính xác của giá trị thuộc tính.
Tính đa hình (Polymorphism): Trong từng trường hợp, hoàn cảnh khác nhau thì đối
tượng có hình thái khác nhau tùy thuộc vào từng ngữ cảnh.
Tính trừu tưởng (Abstraction): Tính trừu tượng trong Java là tính chất không thể
hiện cụ thể mà chỉ nêu tên vấn đề.
Đó là một quá trình che giấu các hoạt động bên trong và chỉ hiển thị những tính năng
thiết yếu của đối tượng tới người dùng.
Tính trừu tượng giúp chúng ta tập trung vào những cốt lõi cần thiết của đối tượng thay
vì quan tâm đến cách nó thực hiện.
Tính trừu tượng cung cấp nhiều tính năng mở rộng khi sử dụng kết hợp với tính đa hình
và kế thừa trong lập trình hướng đối tượng.
Java trừu tượng hóa thông qua các lớp trừu tượng (Abstract class) và các giao diện
(Interface).
Tính kế thừa (Inheritance).
sự liên quan giữa hai class với nhau, trong đó class cha (superclass) class con
(subclass). Khi kế thừa class con được hưởng tất cả các phương thức thuộc tính của
class cha.
- Một ngoại lệ (Exception) trong Java là một vấn đề phát sinh trong quá trình thực thi
chương trình. Khi xảy ra ngoại lệ, luồng xử lý (flow) bị gián đoạn, chương
trình/ứng dụng dừng bất thường. Nó là một đối tượng được ném ra tại Runtime.
- Toán tử instanceof: Toán tử instanceof trong java được sử dụng để kiểm tra một
đối tượng có phải là thể hiển của một kiểu dữ liệu cụ thể không (lớp, lớp con,
interface).
instanceof trong java được gọi là toán tử so sánh kiểu vì nó so sánh thể hiện với kiểu
dữ liệu. Nó trả về giá trị boolean là true hoặc false
- Nạp chồng (Overloading) và Ghi đè (Overriding):
Nạp chồng (Overloading): Là 2 phương thức có cùng tên nhưng khác tham
số sẽ trả về kết quả khác nhau.
lOMoARcPSD|45222017
7
Ghi đè (Overriding): là lớp con cung cấp lại một cài đặt cụ thể cho một
phương thức mà lớp cha đã cung cấp thì đó gọi là ghi đè phương thức. nó được
thục hiện dựa trên 2 lớp có tính chất kế thừa.
- Interface: Được xem như là một bản thiết kế, 1 khuôn mẫu của class, chứa các
phương thức trừu tượng không có lệnh thực thi, cung cấp chức năng cho các class
implement nó, các class implement chúng sẽ phải override lại các phương thức có
trong interface, vì Java không cho phép đa kế thừa nên Interface là một giải pháp
thay thế để có được tính đa kế thừa vì 1 class có thể implement nhiều interface.
- Abstract: là một class được khai báo với từ khoá abstract, Abstract class là một lớp
cha chứa các biến và phương thức để mô tả thuộc tính và hành vi cho tất cả các
class có cùng bản chất. (Tính năng, hành vi, kiểu, loài)
- Một số thuật toán cơ bản trong Java: Bubble sort, Quick sort, Simple selection
sort, Heap sort, Simple insertion sort,Shell sort,Merge sort, Radix sort.
- Các Collection trong Java: Set Interface, List Interface, Queue Interface, Map
Interface
2. Java Spring boot
- Spring là một Java framework siêu to và khổng lồ, làm được đủ mọi thứ. Nó
được chia thành nhiều module, mỗi module làm một chức năng, ví dụ Spring
Core, Web, Data access, AOP,... Spring được xây dựng dựa trên 2 khái niệm
nền tảng là Dependency injection và AOP (Aspect Oriented Programming).
- Đặc điểm nổi bật của Spring Boot
SpringApplication: Đây là class được dùng để khởi chạy ứng dụng từ hàm
main(). Vì thế, khi khởi chạy ứng dụng, các lập trình viên chỉ cần gọi method
run() là được.
Externalized Configuration: Spring Boot cho phép người dùng có thể sử dụng
cấu hình (config) từ bên ngoài. Chính vì vậy mà mỗi ứng dụng được tạo ra có
thể chạy được trên nhiều môi trường khác nhau.
Profiles: Dùng để phân chia các loại cấu hình cho các môi trường khác nhau.
Loggin: Sử dụng phục vụ cho toàn bộ chức năng log trong phạm vi nội bộ.
Những logging này sẽ được quản lý một cách mặc định.
- Ngoài ra còn rất nhiều các tính năng tương tự khác của Spring Boot như:
Developing web Applications, Working with SQL Technologies, Security,
Messaging, Caching, Calling rest Services with RestTemplate/WebClient,
Sending Email, Validation,….
Ưu điểm nổi bật của Spring Boot
Những tính năng nổi bật của Spring Boot mà bạn không thể bỏ qua như:
Phát triển web một cách đơn giản và nhanh chóng.
Config an toàn
lOMoARcPSD|45222017
8
Có thể hỗ trợ YAML
Có tính quản trị cao
Dễ dàng ứng dụng Spring và các sự kiện.
Có thể cấu hình ở bên ngoài và tạo ra những tệp thuộc tính.
Tính bảo mật cao.
Ghi log
3. Maven
Apache Maven là một chương trình quản lý dự án cho phép các developers có
thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) , quản
lý build, tự động download javadoc & source …
Repository: Là một kho chứa các dependencies ( các thư viện sử dụng trong dự
án ). Khi thực hiện build project sử dụng Maven, thì các thư viện được khai báo
trong file pom.xml sẽ được download tự động
4. IntelliJ IDEA
IntelliJ IDEA một IDE Java để phát triển các phần mềm máy tính. Nó được
phát triển bởi JetBrains (trước đây gọi là IntelliJ)
IDE cung cấp các tính năng nhất định
[12]
như hoàn thành mã bằng cách phân tích
ngữ cảnh, điều hướng mã cho phép nhảy vào một lớp hoặc khai báo trong mã trực
tiếp, tái cấu trúc và các tùy chọn để sửa các mâu thuẫn thông qua các đề xuất.
IDE tích hợp sẵn
[12]
các công cụ build/đóng gói như grunt, bower, gradle, và
SBT. Nó hỗ trợ các hệ thống kiểm soát phiên bản như Git, Mercurial, Perforce, và
SVN. Các cơ sở dữ liệu như Microsoft SQL Server, ORACLE, PostgreSQL, và
MySQL có thể được truy cập trực tiếp từ IDE.
IntelliJ hỗ trợ các plugin thông qua đó người ta có thể thêm chức năng bổ sung
cho IDE. Có thể tải xuống và cài đặt các plugin từ trang web của kho lưu trữ plugin
của IntelliJ hoặc thông qua tính năng cài đặt và tìm kiếm plugin sẵn có của IDE.
Hiện tại, phiên bản IntelliJ IDEA Community có 1495
[13]
plugins, trong khi bản
Ultimate có 1626
[14]
. Những con số này nhỏ hơn nhiều so với các trình soạn thảo
như Atom, có hơn 7000 packages (về cơ bản là các plugin). Tuy nhiên, một số tính
năng được bao gồm theo mặc định trong IntelliJ chỉ có thể được thêm vào Atom
bằng cách cài đặt các packages. Ví dụ, linting được tích hợp vào IntelliJ, và nó có
thể được cài đặt trong Atom, theo ngôn ngữ lập trình, với nhiều gói khác nhau.
Ngôn ngữ hỗ trợ: Java, CloudSlang, Clojure, Dart, Erlang, Go, Gosu,
Groovy,Haxe, Perl, Rust, Scala, XML/XSL, Kotlin,Haskell, Lua, Python ,Julia ,
mTypeScript, SQL, Ruby/Jruby, PHP , JavaScript,HTML/XHTML/CSS
lOMoARcPSD|45222017
9
5. GIT
Git (/ɡɪt/) là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus
Torvalds vào năm 2005, ban đầu dành cho việc phát triển nhân Linux. Hiện nay, Git
trở thành một trong các phần mềm quản lý mã nguồn phổ biến nhất. Git là phần
mềm mã nguồn mở được phân phối theo giấy phép công cộng GPL2.
Git có khả năng chạy trên nhiều hệ điều hành khác nhau như Linux, Windows, Mac
OSX v.v..
Khái niệm cơ bản trong GIT:
Repository
Repository (nhà kho) hay được gọi tắt là Repo đơn giản là nơi chứa/cơ sở dữ
liệu (database) tất cả những thông tin cần thiết để duy trì và quản lý các sửa đổi
và lịch sử của dự án.
Trong Repo có 2 cấu trúc dữ liệu chính là Object Store và Index. Tất cả dữ liệu
của Repo đều được chứa trong thư mục bạn đang làm việc dưới dạng folder ẩn
có tên là.git (không có phần tên trước dấu chấm).
Object store
Object store là trái tim của Git, nó chứa dữ liệu nguyên gốc (original data files),
các file log ghi chép quá trình sửa đổi, tên người tạo file, ngày tháng và các
thông tin khác. Git có bốn loại object là: Blobs, Trees, Commits, Tags
Blobs: là file nhị phân có thể chứa được mọi loại dữ liệu bất kể là dữ liệu của
chương trình gì.
Trees: lớp đại diện cho thông tin thư mục như thông tin định danh của blob,
đường dẫn, chứa một ít metadata chứa thông tin cấu trúc và các thư mục nhỏ có
trong thư mục đó.
Commits: Chứa metadata có thông tin về mọi thứ như tên tác giả, người tải lên
(commiter), ngày tải lên, thông tin log...
Tags: đánh dấu cho dễ đọc. Thay vì một cái tên dài như là
9da581d910c9c4ac93557ca4859e767f5caf5169, chúng ta có thể tên tag là Ver-
1.0- Alpha. Dễ nhớ và dễ sử dụng hơn.
lOMoARcPSD|45222017
1
0
Index
Index là file nhị phân động và tạm thời miêu tả cấu trúc thư mục của toàn bộ
Repo và trạng thái của dự án được thể hiện thông qua commit và tree tại một
thời điểm nào đó trong lịch sử phát triển. Git là một hệ thống truy tìm nội dung
(content tracking system).
Index không chứa nội dung file mà chỉ dùng để truy tìm (track) những thứ mà
bạn muốn commit.
6. MY SQL
MySQL là 1 hệ thống quản trị về cơ sở dữ liệu với mã nguồn mở (được gọi tắt là
RDBMS) và đang hoạt động theo mô hình dạng client-server. Đối với RDBMS -
Relational Database Management System thì MySQL đã được tích hợp apache và PHP.
MySQL hình thành như thế nào
Vào năm 1994, một công ty của Thụy Điển là MySQL AB đã phát triển nên
MySQL. Khái niệm MySQL là gìy cũng bắt nguồn từ đây.
Phiên bản MySQL đầu tiên đã phát hành chính thức vào năm 1995.
Trong năm 2008, công ty Sun Microsystems đã mua lại MySQL AB.
Tập đoàn Oracle vào năm 2010 đã thâu tóm Sun Microsystems. Đội ngũ phát
triển ngay lúc đó đã tách MySQL ra trở thành một nhánh trở thành một nhắn
riêng và được gọi là riêng và được gọi là MariaDB. Oracle đã phát triển tiếp tục
MySQL lên với phiên bản 5.5.
Năm 2013 MySQL đã phát hành ra phiên bản 5.6
Năm 2015 MySQL đã phát hành ra phiên bản 5.7
Ở thời điểm hiện tại MySQL đang phát triển lên thành phiên bản 8.0
Cơ chế hoạt động của MySQL
MySQL đang tạo ra bảng để có thể lưu trữ dữ liệu và định nghĩa về sự liên quan
giữa những bảng đó
Client sẽ trực tiếp gửi yêu cầu SQL bằng 1 lệnh đặc biệt có trên MySQL.
Ứng dụng tại server sẽ tiến hành phản hồi thông tin cũng như trả về những kết
quả trên máy client.
Ưu và nhược điểm của MySQL
Ưu điểm:
lOMoARcPSD|45222017
11
Nhanh chóng: Nhờ vào việc đưa ra một số những tiêu chuẩn và cho phép
MySQL làm việc hiệu quả cũng như tiết kiệm chi phí, giúp gia tăng tốc độ thực
thi.
Mạnh mẽ và khả năng mở rộng: MySQL hoàn toàn có thể xử lý số lượng lớn
dữ liệu và đặc biệt hơn thế nữa thì nó còn có thể mở rộng nếu như cần thiết.
Đa tính năng: Ưu điểm MySQL là gì? MySQL hiện đang hỗ trợ nhiều những
chức năng SQL rất được mong chờ từ 1 hệ quản trị CSDL quan hệ cả gián tiếp
cũng như trực tiếp.
Độ bảo mật cao: MySQL là gì? Hiện tại nó đang rất thích hợp cho những ứng
dụng truy cập CSDL thông qua internet khi sở hữu rất nhiều những tính năng về
bảo mật và thậm chí là đang ở cấp cao.
Nhược điểm:
Dung lượng hạn chế: Trong trường hợp nếu như số lượng bản ghi của bạn
đang lớn dần lên thì khi đó quá trình truy xuất dữ liệu sẽ diễn ra vô cùng khó
khăn. Như vậy cần phải áp dụng rất nhiều những biện pháp khác nhau để có thể
gia tăng được tốc độ truy xuất những dữ liệu ví dụ như tạo cache MySQL hoặc
chia tải database ra nhiều server.
Độ tin cậy: Nhược điểm MySQL là gì? Theo đó cách thức nhận chức năng cụ
thể đang được xử lý cùng với MySQL (ví dụ như kiểm toán, những giao dịch,
tài liệu tham khảo,...) khiến cho nó trở nên kém tin cậy hơn một số những hệ
quản trị về cơ sở dữ liệu có quan hệ khác.
Giới hạn: MySQL là gì? Theo thiết kế thì MySQL không có ý định thực hiện
toàn bộ và nó đang đi kèm cùng với những hạn chế liên quan tới chức năng
một số ứng dụng có thể cần tới. Vậy hiện tại điểm khác biệt giữa MySQL Server
và MySQL là gì?
7. MY SQL WORKBENCH
MySQL Workbench chính là một chương trình giúp cho người lập trình có thể giao
tiếp với hệ cơ sở dữ liệu MySQL thay vì phải sử dụng các lệnh Command-line phức
tạp và mất thời gian. MySQL Workbench được thiết kế đơn giản, dễ sử dụng và có thể
thích ứng với nhiều hệ điều hành như là Microsoft Windowns, Max OS, Linux hay
Ubuntu.
MySQL Workbench cung cấp giao diện trực quan và nhiều tính năng tiện ích như tạo
bảng, xem và sửa dữ liệu, viết truy vấn SQL , quản lý người dùng và nhiều hơn nữa.
Điều này giúp cho việc thao tác với cơ sở dữ liệu trở nên thuận tiện hơn, phù hợp cho
các nhà phát triển và quản trị viên cơ sở dữ liệu MySQL.
MySQL Workbench ra đời vào tháng 11 năm 2005. Ban đầu, công cụy được phát
hành dưới dạng công cụ mã nguồn mở và hoàn toàn miễn phí. Sau đó, từ phiên bản 5.0
lOMoARcPSD|45222017
1
2
trở đi, MySQL Workbench đã được Oracle mua lại và phát triển thành một sản phẩm
thương mại nhưng vẫn tiếp tục được sử dụng rộng rãi cho việc quản lý cơ sở dữ liệu
MySQL.
Các tính năng của MySQL Workbench:
Thiết kế cơ sở dữ liệu
MySQL Workbench cho phép bạn thiết kế cấu trúc cơ sở dữ liệu thông qua giao diện đồ
họa. Bạn có thể tạo bảng, các cột, khóa chính và khóa ngoại một cách trực quan và dễ
dàng. Ngoài ra, công cụ còn cung cấp các chức năng tạo, xóa và sửa đổi các thành phần
cơ sở dữ liệu.
Truy vấn và xử lý dữ liệu
MySQL Workbench cho phép bạn viết và thực thi các truy vấn SQL trên cơ sở dữ liệu.
Bạn có thể thực hiện các truy vấn đơn giản như SELECT, INSERT, UPDATE và
DELETE để truy vấn và cập nhật dữ liệu trong bảng. Đồng thời, công cụ cũng hỗ trợ
tính năng xem và sửa đổi dữ liệu trực tiếp trên bảng.
Quản lý người dùng và phân quyền
MySQL Workbench cho phép bạn quản lý người dùng và phân quyền truy cập vào cơ
sở dữ liệu. Bạn có thể tạo, sửa đổi và xóa người dùng, cũng như gán các quyền truy cập
cụ thể cho từng người dùng. Điều này giúp bảo mật cơ sở dữ liệu và quản lý quyền truy
cập một cách linh hoạt.
Mô phỏng và tối ưu hóa truy vấn
MySQL Workbench cung cấp tính năng mô phỏng truy vấn, cho phép bạn xem trực
quan cách truy vấn sẽ hoạt động trên cơ sở dữ liệu. Với công cụ này, bạn có thể tối ưu
hóa truy vấn, giúp cải thiện hiệu suất bằng cách đánh giá và điều chỉnh truy vấn.
Đồ họa hoá cơ sở dữ liệu
MySQL Workbench cho phép bạn tạo biểu đồ ER (Entity-Relationship) để mô phỏng
mối quan hệ giữa các bảng và thực thể trong cơ sở dữ liệu. Điều này giúp bạn hiểu rõ
hơn về cấu trúc cơ sở dữ liệu và quan hệ giữa các đối tượng.
Đồng bộ hóa cơ sở dữ liệu
MySQL Workbench cho phép bạn đồng bộ hóa dữ liệu giữa các máy chủ MySQL. Bạn
có thể sao chép cơ sở dữ liệu từ máy chủ này sang máy chủ khác một cách dễ dàng
nhanh chóng, đảm bảo rằng dữ liệu trên các máy chủ không bị mất.
Server Administration
Chức năng này cho phép bạn dễ dàng quản lý các phiên bản MySQL Server bằng cách
quản lý người dùng, kiểm tra dữ liệu kiểm tra, xem tình trạng cơ sở dữ liệu, thực hiện
sao lưu và phục hồi cũng như giám sát hiệu suất của máy chủ MySQL.
lOMoARcPSD|45222017
13
Data Migration
Chức năng này cho phép bạn chuyển từ máy chủ Microsoft SQL, SQLite, Microsoft
Access, PostgreSQL, Sybase ASE, SQL Anywhere và các bảng, đối tượng và các dữ
liệu RDBMS khác sang MySQL. Bên cạnh đó, công cụ này cũng hỗ trợ chuyển từ các
phiên bản MySQL trước đó sang các phiên bản mới nhất.
CHƯƠNG III. NỘI DUNG NGHIÊN CỨU
1. NỘI DUNG THỰC TẬP
- Tìm hiểu về mô hình web api.
- Phát triển api cho website https://dev.divega.com/
2. QUÁ TRÌNH THỰC HIỆN
2.1. Tuần 1: Nghiêm cứu tài liệu, tự học về mô hình web api.
Web API là gì?
Web API là một phương thức dùng để cho phép các ứng dụng khác nhau có thể giao
tiếp, trao đổi dữ liệu qua lại. Dữ liệu được Web API trả lại thường ở dạng JSON hoặc
XML thông qua giao thức HTTP hoặc HTTPS.
Những điểm nổi bật của Web API
Web API hỗ trợ restful đầy đủ các phương thức: Get/Post/put/delete dữ liệu. Nó giúp
bạn xây dựng các HTTP service một cách rất đơn giản và nhanh chóng. Nó cũng có
khả năng hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching,
versioning, content format.
Tự động hóa sản phẩm
Với web API, chúng ta sẽ tự động hóa quản lý công việc, cập nhật luồng công việc,
giúp tăng năng suất và tạo hiệu quả công việc cao hơn.
Khả năng tích hợp linh động
API cho phép lấy nội dung từ bất kỳ website hoặc ứng dụng nào một cách dễ dàng nếu
được cho phép, tăng trải nghiệm người dùng. API hoạt động như một chiếc cổng, cho
lOMoARcPSD|45222017
1
4
phép các công ty chia sẻ thông tin được chọn nhưng vẫn tránh được những yêu cầu
không mong muốn.
Cập nhật thông tin thời gian thực
API có chức năng thay đổi và cập nhật thay đổi theo thời gian thực. Với công nghệ này,
dữ liệu sẽ được truyền đi tốt hơn, thông tin chính xác hơn, dịch vụ cung cấp linh hoạt
hơn.
Có tiêu chuẩn chung dễ sử dụng
Bất kỳ người dùng, công ty nào sử dụng cũng có thể điều chỉnh nội dung, dịch vụ mà
họ sử dụng.
Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model
binder,, dependency injection, unit test.
Web API hoạt động như thế nào?
Đầu tiên là xây dựng URL API để bên thứ ba có thể gửi request dữ liệu đến máy chủ
cung cấp nội dung, dịch vụ thông qua giao thức HTTP hoặc HTTPS.
Tại web server cung cấp nội dung, các ứng dụng nguồn sẽ thực hiện kiểm tra xác thực
nếu có và tìm đến tài nguyên thích hợp để tạo nội dung trả về kết quả.
Server trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức
HTTP/HTTPS.
Tại nơi yêu cầu ban đầu là ứng dụng web hoặc ứng dụng di động, dữ liệu JSON/XML
sẽ được parse để lấy data. Sau khi có được data thì thực hiện tiếp các hoạt động như
lưu dữ liệu xuống Cơ sở dữ liệu, hiển thị dữ liệu…
lOMoARcPSD|45222017
15
Ưu và nhược điểm của Web API
Mỗi một ứng dụng bất kỳ đều có những ưu nhược điểm riêng, hỗ trợ tốt cho các ứng
dụng. Vì vậy mà web API cũng không ngoại lệ:
Ưu điểm
Web API được sử dụng hầu hết trên các ứng dụng desktop, ứng dụng mobile và ứng
dụng website.
Linh hoạt với các định dạng dữ liệu khi trả về client: Json, XML hay định dạng khác.
Nhanh chóng xây dựng HTTP service: URI, request/response headers, caching,
versioning, content formats và có thể host trong ứng dụng hoặc trên IIS.
Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bất kì client nào hỗ trợ
XML, Json.
Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter,
model binder, dependency injection, unit test.
Giao tiếp hai chiều được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao.
Nhược điểm
Do web API còn khá mới nên chưa thể đánh giá nhiều về nhược điểm của mô hình nay.
Tuy nhiên, có hai nhược điểm dễ dàng nhận thấy:
Web API chưa hoàn toàn phải là RESTful service, mới chỉ hỗ trợ mặc định GET,
POST
Để sử dụng hiệu quả cần có kiến thức chuyên sâu, có kinh nghiệm backend tốt
Tốn thời gian và chi phí cho việc phát triển, nâng cấp và vận hành
Có thể gặp vấn đề về bảo mật khi hệ thống bị tấn công nếu không giới hạn điều kiện
kỹ.
lOMoARcPSD|45222017
1
6
2.2. Tuần 2,3: Nghiên cứu nghiệp vụ Dự án Divega endolife, Xây dựng
Database, Xây dựng project, liên kết CSDL
Trong project gồm 3 package chính:
- Entities
- Repositories
- Api
Trong đó Entities chứa các cấu trúc dữ liệu của project, chứa liên kết với database
(MySql files), các lớp được định nghĩa (thuộc tính và hàm tạo) phục vụ cho việc lưu
trữ tạm thời dữ liệu
Repositories : Service còn có thể tương tác với service khác, hoặc dùng Repository để
gọi DB. Repository là thằng trực tiếp tương tác, đọc ghi dữ liệu trong DB và trả cho
service
Api: xử lý các thao tác logic với dữ liệu
Trong API chứa các thư mục:
- Controllers: Gồm các phương thức phục vụ mục đích nhận request
từ client, trỏ đến các API, sau đó Controller được inject các Service cần
thiết vào và trả về Data responses dưới dạng API. FE sẽ xử lí các data
được trả về dưới dạng JSON rồi hiển thị.
- Services: chứa các business logic code, chứa các code tính toán, xử
lý. Khi Controller yêu cầu, thì Service tương ứng sẽ tiếp nhận và cho ra dữ
liệu trả cho Controller. Đối với các code đơn giản có thể tính toán và trả về
luôn. Nhưng các thao tác cần đụng tới database thì Service phải gọi
Repository để lấy dữ liệu trong DB
- Mappers: mapping các Data Request với Data Reponses và Entities
Sử dụng My SQL WorkBench để thực hiện liên kết Database, mô hình hóa CSDL. Một
khi đã mô hình hóa CSDL dùng trình thiết kế My SQL WorkBench, chúng ta có thể dễ
dàng viết các đoạn lệnh để làm việc với nó.
Sử dụng dataJPA và JDBC để kết nối database và làm việc
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create-drop
#spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
| 1/31

Preview text:

lOMoARcPSD| 45222017
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI Lời cảm ơn lOMoARcPSD| 45222017
BỘ MÔN KỸ THUẬT HỆ THỐNG & MẠNG MÁY TÍNH
--------------- --------------- BÁO CÁO THỰC
TẬP CÁN BỘ KỸ THUẬT
Sinh viên thực tập Đào Phú Hưng Mã số sinh viên 92164 Lớp 64MHT2
Giảng viên phụ trách ThS. Lê Đức Quang Bộ môn
Kỹ thuật hệ thống & mạng máy tính
Địa điểm thực tập Công ty cổ phần METAWAY TECH
HÀ NỘI – 16/09/2023
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ
lòng biết ơn đến tất cả các cấp lãnh đạo, anh chị em nhân viên đang công tác tại
Công ty cổ phần METAWAY TECH đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt
quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học
tập tại trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công nghệ
thông tin trường Đại học Xây Dựng đã truyền đạt vốn kiến thức quý báu cho chúng
em trong suốt thời gian học tập tại trường. Nhờ có những lời hướng dẫn, dạy bảo
của các thầy cô nên đề tài nghiên cứu của em mới có thể hoàn thiện tốt đẹp. lOMoARcPSD| 45222017
Một lần nữa, em xin chân thành cảm ơn thầy Lê Đức Quang – người đã trực tiếp
giúp đỡ, quan tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.
Bài báo cáo thực tập thực hiện trong khoảng thời gian gần 5 tuần. Bước đầu đi
vào thực tế của em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những
thiếu sót, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô
để kiến thức của em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện
bổ sung, nâng cao ý thức của mình.
Em xin chân thành cảm ơn! Mục lục
CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP.........................................................................1 1.
GIỚI THIỆU CHUNG..............................................................................................................1 2.
LĨNH VỰC HOẠT ĐỘNG.......................................................................................................2 3.
CƠ CẤU TỔ CHỨC CỦA CÔNG TY.....................................................................................2
3.1. Cơ cấu tổ chức:.......................................................................................................................2
3.2. Đội ngũ cán bộ, công nhân viên:............................................................................................3 4.
MỘT SỐ DỰ ÁN TIÊU BIỂU..................................................................................................4 5.
CHÍNH SÁCH, MỤC TIÊU HOẠT ĐỘNG............................................................................4
CHƯƠNG II. CƠ SỞ LÝ THUYẾT....................................................................................................6 1.
java.............................................................................................................................................6 2.
java Spring boot........................................................................................................................7 3.
Maven.........................................................................................................................................8 4.
Intellji Idea.................................................................................................................................9 5.
Git.............................................................................................................................................10 6.
My SQL....................................................................................................................................11 7.
My SQL Workbench...............................................................................................................12
CHƯƠNG III. NỘI DUNG NGHIÊN CỨU......................................................................................13 1.
NỘI DUNG THỰC TẬP.........................................................................................................13
QUÁ TRÌNH THỰC HIỆN............................................................................................................13 lOMoARcPSD| 45222017 1.1.
Tuần 1: Nghiêm cứu tài liệu, tự học về mô hình web api, openID...............................14 1.2.
Tuần 2, 3: Nghiên cứu nghiệp vụ Dự án Divega endolife, Xây dựng Database,
Xây dựng project, liên kết CSDL..........................................................................................17
1.3. Tuần 4, 5: Viết các API thao tác với CSDL, thiết kế giao diện trang quản trị 18
CHƯƠNG IV. KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................26 1.
KẾT LUẬN..............................................................................................................................26 2.
KIẾN NGHỊ.............................................................................................................................26 lOMoARcPSD| 45222017
CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 1. GIỚI THIỆU CHUNG
Tên công ty: CÔNG TY CỔ PHẦN METAWAY TECH
Tên quốc tế: METAWAY TECH JOINT STOCK COMPANY
Trụ sở chính: Lô CX01, khu đô thị Văn Khê, phường La Khê, quận Hà Đông, Hà Nội, Việt Nam
Đại diện pháp luật: Trần Nam Chung
Điện thoại: 0902062323 - 1900633815
E-mail: info@metawaytech.com
Website: www.metawaytech.com
Công ty Cổ Phần METAWAY TECH là 1 công ty trong hệ sinh thái của tập
đoàn Metaway Holdings, được thành lập ngày 11 tháng 07 năm 2021 theo giấy
chứng nhận đăng ký kinh doanh số: 0110057231 do sở kế hoạch đầu tư thành phố
Hà Nội cấp ngày 11 tháng 07 năm 2021.
Thành lập vào năm 2021, Metaway Holdings là Tập đoàn kinh tế số được
xây dựng và hoạt động theo cơ chế vốn, có trụ sở chính tại Mỹ và có văn phòng
tại nhiều quốc gia trên thế giới, trong đó có Việt Nam.
Metaway Holdings kiến tạo các nền tảng để hình thành nên các trụ cột của nền
kinh tế số bao gồm: Y tế số, giáo dục số, thương mại số, ngân hàng số, bảo hiểm
số, bất động sản số… dựa trên việc áp dụng tối đa các công nghệ mới nhất để
phụng sự và đáp ứng những nhu cầu kết nối của công dân toàn cầu.
Metaway Tech có gần 8 năm nghiên cứu và phát triển các công nghệ nền tảng.
Những trải nghiệm thực tế và kiến thức chuyên môn sâu rộng chính là tiền đề để
chúng tôi thấu hiểu nhu cầu của thị trường, từ đó đưa ra các sản phẩm thông minh,
tối ưu và hiệu quả nhất cho người dùng. 1 lOMoARcPSD| 45222017 2.
LĨNH VỰC HOẠT ĐỘNG
- Metaway Tech hướng đến mục tiêu trở thành đơn vị cung cấp các giải pháp công
nghệ hàng đầu, đóng góp tích cực trong việc phát triển kinh tế số và hình thành nên metaverse.
- Blockchain: Để hình thành một hệ sinh thái đa dạng, có tính liên kết và khả năng
kiểm soát tổng thể, Metaway Tech phát triển blockchain layer 1 ứng dụng vào các
sản phẩm trong hệ sinh thái công nghệ và kinh tế số giúp tăng tính công khai, minh
bạch. Công nghệ blockchain đang tạo ra một cuộc cách mạng kỹ thuật số. Ứng dụng
blockchain vào nhiều dự án thuộc các lĩnh vực bất động sản, tài chính, thương mại
điện tử...,. Blockchain layer 1 của Metaway Tech có khả năng mở rộng cao và tương
thích với các blockchain khác trên thị trường như: Binance Smart Chain, Polygon, Ethereum, Solana...
- AI, Big data: Metaway Tech ứng dụng công nghệ AI & Big Data trong việc tổng
hợp, phân tích khối lượng dữ liệu khổng lồ và chuyển hóa thành thông tin quan
trọng giúp giải quyết các vấn đề liên quan một cách tối ưu, Metaway Tech ứng dụng
Google BigQuery trong lưu trữ, xử lý thông tin để nâng cao trải nghiệm người dùng,
giúp hệ thống xử lý thông minh, linh hoạt hơn. Metaway Tech, Google Cloud
Pub/Sub được ứng dụng giúp xử lý hiệu quả mọi thông tin, dữ liệu cho các dự án trong hệ sinh thái.
- VR, AR, XR, METAVERSE: AR/XR, VR, Metaverse chính là những công nghệ
được Metaway Tech ứng dụng giúp con người vươn tới một thế giới mới, phá bỏ
toàn bộ những rào cản giới hạn sự sáng tạo
- IOT & AUTOMATION: Metaway Tech ứng dụng EMQX, Espressif, GPS và
Firmware Over-The-Air trong phát triển dự án MetaXe. 3.
CƠ CẤU TỔ CHỨC CỦA CÔNG TY
3.1. Cơ cấu tổ chức: Các phòng ban chức năng: 2 lOMoARcPSD| 45222017 - Ban Lãnh đạo
- Phòng Kinh doanh, Marketing - Phòng Thiết kế - Phòng Công nghệ - Phòng Hành Chính
- Phòng Tài chính Kế toán - Phòng Pháp chế
3.2. Đội ngũ cán bộ, công nhân viên:
Đội ngũ cán bộ công nhân viên là các cán bộ có nhiều kinh nghiệm trong lĩnh
vực công nghệ thông tin. Metaway Holdings sở hữu nguồn lực mạnh mẽ từ con
người, tài chính đến công nghệ. Những người sáng lập và đội ngũ điều hành của
Metaway Holdings có nhiều năm kinh nghiệm về chiến lược, quản trị doanh
nghiệp, đầu tư, tái cấu trúc và am hiểu các công thức thành công. Đội ngũ lãnh đạo
Sau thời gian hoạt động, Công ty cổ phần METAWAY TECH đã từng bước lớn mạnh
và có một vị trí vững chắc trong các lĩnh vực hoạt động kinh doanh của mình. Công
ty có đội ngũ nhân viên chuyên nghiệp với trình độ chuyên môn cao. Công ty có đội
ngũ nhân viên đồng đều và vững vàng, cùng với khả năng được nâng cao, đáp ứng
các yêu cầu của khách hàng. Tận tụy và chuyên nghiệp là những giá trị tạo nên lực
đẩy tạo đà cho METAWAY TECH ngày càng hoàn thiện hơn. 3 lOMoARcPSD| 45222017
METAWAY luôn tạo điều kiện cho nhân viên của mình đạt được khả năng tối
đa bằng việc trao cho họ những cơ hội tiến bộ trong nghề nghiệp và môi trường làm
việc có nhiều thử thách. Công ty thường xuyên tổ chức đào tạo, đào tạo lại cán bộ,
nhân viên của mình. Cán bộ nhân viên của Công ty thường được cử tham gia các khoá
học trong và ngoài nước do chuyên gia của các hãng cung cấp thiết bị hàng đầu thế
giới giảng dạy, được cập nhật các thông tin mới nhất về công nghệ tiên tiến của thế
giới trong lĩnh vực viễn thông, tự động hoá và công nghệ thông tin qua các cuộc hội
thảo chuyên đề, tài liệu, sách báo.
Cùng với năng lực cán bộ đội ngũ công nhân lành nghề, có kinh nghiệm và
Chiến lược: " Với tầm nhìn trở thành tập đoàn kinh tế số hàng đầu, chúng
tôi dành nhiều thời gian cho công tác nghiên cứu và phân tích thị trường,
các mô hình kinh doanh bền vững, đồng thời am hiểu sâu sắc các công
nghệ mới nhằm ứng dụng công nghệ vào giải quyết các vấn đề nan giải
của thị trường." Đây chính là hướng phát triển quan trọng và chiến lược mà chúng tôi hướng tới.
4. MỘT SỐ DỰ ÁN TIÊU BIỂU:
- Divega: Divega là một trong những dự án nền tảng quan trọng của
MetawayTech- đơn vị tiên phong nghiên cứu, phát triển và cung cấp các giải
pháp, sản phẩm công nghệ mới nhất để hỗ trợ kiến tạo nên các trụ cột của nền
kinh tế số và đáp ứng những nhu cầu của người dùng toàn cầu trong kỷ nguyên số Link: https://www.divega.com/
- Pindias: Pindias ứng dụng công nghệ và tích hợp dữ liệu chính xác giúp các
chuyên gia quy hoạch có thể thu thập thông tin địa lý, mô phỏng các kịch bản và
phân tích dữ liệu một cách chi tiết nhất.
Quy hoạch số trên Pindias đảm bảo các quyết định liên quan đến bất đông
sản ̣ được đưa ra dựa trên nguồn dữ liệu uy tín, đồng thời tối ưu hóa việc sử
dụng không gian và tài nguyên. Link: https://pindias.com/
- Hyperas Chain: Khai phá tiềm năng của AI phi tập trung, dễ tiếp cận, giá cả
phải chăng bằng blockchain. Chuỗi Hyperas nhằm mục đích xây dựng một
mạng lưới sức mạnh tính toán hiệu suất cao được phân phối vô hạn dựa trên 4 lOMoARcPSD| 45222017
công nghệ blockchain và trở thành cơ sở hạ tầng sức mạnh tính toán quan trọng
nhất trong kỷ nguyên AI + Metaverse
Link: https://www.hyperaschain.com/
5. CHÍNH SÁCH, MỤC TIÊU HOẠT ĐỘNG
Công ty Công ty cổ phần METAWAY TECH đang từng bước thực hiện hệ thống
quản lý chất lương theo tiêu chuẩn ISO 9001 – 2015.
Chính sách chất lượng sản phẩm của Công ty cổ phần METAWAY TECH là :
“Luôn tập trung nâng cao sự hài lòng của khách hàng bằng những sản phẩm, dịch vụ
có chất lượng tốt nhất”
Để đạt được chính sách nêu trên, Công ty cổ phần METAWAY TECH luôn
luôn phấn đấu để thực hiện các mục tiêu:
1. Mỗi cán bộ công nhân viên tự chịu trách nhiệm cao trong công việc của
mình, ý thức trong nhiệm vụ được giao, làm ra sản phẩm đảm bảo chất
lượng phục vụ tốt nhất cho khách hàng.
2. Luôn luôn học tập rè luyện nâng cao năng lực chuyên môn nghiệp vụ.
3. Không ngừng cải thiện điều kiện làm việc và trang thiết bị.
4. Luôn duy trì và hướng tới các hoạt động của hệ thống quản lý chất lượng
theo tiêu chuẩn ISO 9001 – 2015.
CHƯƠNG II. CƠ SỞ LÝ THUYẾT 1. Java
- Java là một ngôn ngữ lập trình cao cấp được công bố trên toàn thế giới vào năm
1995. Java là một ngôn ngữ chạy đa nên tảng như Windows, MacOS…
- Lập trình hướng đối tượng là một kỹ thuật lập trình tạo ra các đối tượng trong code.
Trừu tượng hóa các đối tượng thực tế trong cuộc sống.
Hay con gọi theo cách khác là kỹ thuật lập trình mà tất cả các logic, yêu cầu thực
tế đều được xây dựng xoay quanh các đối tượng.
- 4 tính chất góp phần tạo nên khái niệm lập trình hướng đối tượng, chúng có thể
tồn tại trong các ngôn ngữ tuân theo hướng đối tượng, đặc biệt đối với những 5 lOMoARcPSD| 45222017
ngôn ngữ thuần hướng đối tượng như C++, Java, C#, Ruby,… sẽ có đủ 4 tính chất này:
Tính đóng gói (Encapsulation): Đóng gói là sự che giấu dữ liệu riêng bên trong mỗi
đối tượng của lớp được khai báo và chỉ được truy xuất thông qua hệ thống các phương thức có sẵn của lớp.
Tính đóng gói dùng để bảo vệ dữ liệu, ngăn ngừa việc truy cập và gán giá trị trực tiếp
cho thuộc tính bên trong đối tượng, nhằm bảo vệ tính chính xác của giá trị thuộc tính.
Tính đa hình (Polymorphism): Trong từng trường hợp, hoàn cảnh khác nhau thì đối
tượng có hình thái khác nhau tùy thuộc vào từng ngữ cảnh.
Tính trừu tưởng (Abstraction): Tính trừu tượng trong Java là tính chất không thể
hiện cụ thể mà chỉ nêu tên vấn đề.
Đó là một quá trình che giấu các hoạt động bên trong và chỉ hiển thị những tính năng
thiết yếu của đối tượng tới người dùng.
Tính trừu tượng giúp chúng ta tập trung vào những cốt lõi cần thiết của đối tượng thay
vì quan tâm đến cách nó thực hiện.
Tính trừu tượng cung cấp nhiều tính năng mở rộng khi sử dụng kết hợp với tính đa hình
và kế thừa trong lập trình hướng đối tượng.
Java trừu tượng hóa thông qua các lớp trừu tượng (Abstract class) và các giao diện (Interface).
Tính kế thừa (Inheritance).
Là sự liên quan giữa hai class với nhau, trong đó có class cha (superclass) và class con
(subclass). Khi kế thừa class con được hưởng tất cả các phương thức và thuộc tính của class cha.
- Một ngoại lệ (Exception) trong Java là một vấn đề phát sinh trong quá trình thực thi
chương trình. Khi xảy ra ngoại lệ, luồng xử lý (flow) bị gián đoạn, chương
trình/ứng dụng dừng bất thường. Nó là một đối tượng được ném ra tại Runtime.
- Toán tử instanceof: Toán tử instanceof trong java được sử dụng để kiểm tra một
đối tượng có phải là thể hiển của một kiểu dữ liệu cụ thể không (lớp, lớp con, interface).
instanceof trong java được gọi là toán tử so sánh kiểu vì nó so sánh thể hiện với kiểu
dữ liệu. Nó trả về giá trị boolean là true hoặc false
- Nạp chồng (Overloading) và Ghi đè (Overriding):
Nạp chồng (Overloading): Là 2 phương thức có cùng tên nhưng khác tham
số sẽ trả về kết quả khác nhau. 6 lOMoARcPSD| 45222017
Ghi đè (Overriding): là lớp con cung cấp lại một cài đặt cụ thể cho một
phương thức mà lớp cha đã cung cấp thì đó gọi là ghi đè phương thức. nó được
thục hiện dựa trên 2 lớp có tính chất kế thừa.
- Interface: Được xem như là một bản thiết kế, 1 khuôn mẫu của class, chứa các
phương thức trừu tượng không có lệnh thực thi, cung cấp chức năng cho các class
implement nó, các class implement chúng sẽ phải override lại các phương thức có
trong interface, vì Java không cho phép đa kế thừa nên Interface là một giải pháp
thay thế để có được tính đa kế thừa vì 1 class có thể implement nhiều interface.
- Abstract: là một class được khai báo với từ khoá abstract, Abstract class là một lớp
cha chứa các biến và phương thức để mô tả thuộc tính và hành vi cho tất cả các
class có cùng bản chất. (Tính năng, hành vi, kiểu, loài)
- Một số thuật toán cơ bản trong Java: Bubble sort, Quick sort, Simple selection
sort, Heap sort, Simple insertion sort,Shell sort,Merge sort, Radix sort.
- Các Collection trong Java: Set Interface, List Interface, Queue Interface, Map Interface 2. Java Spring boot -
Spring là một Java framework siêu to và khổng lồ, làm được đủ mọi thứ. Nó
được chia thành nhiều module, mỗi module làm một chức năng, ví dụ Spring
Core, Web, Data access, AOP,... Spring được xây dựng dựa trên 2 khái niệm
nền tảng là Dependency injection và AOP (Aspect Oriented Programming). -
Đặc điểm nổi bật của Spring Boot
SpringApplication: Đây là class được dùng để khởi chạy ứng dụng từ hàm
main(). Vì thế, khi khởi chạy ứng dụng, các lập trình viên chỉ cần gọi method run() là được.
Externalized Configuration: Spring Boot cho phép người dùng có thể sử dụng
cấu hình (config) từ bên ngoài. Chính vì vậy mà mỗi ứng dụng được tạo ra có
thể chạy được trên nhiều môi trường khác nhau.
Profiles: Dùng để phân chia các loại cấu hình cho các môi trường khác nhau.
Loggin: Sử dụng phục vụ cho toàn bộ chức năng log trong phạm vi nội bộ.
Những logging này sẽ được quản lý một cách mặc định. -
Ngoài ra còn rất nhiều các tính năng tương tự khác của Spring Boot như:
Developing web Applications, Working with SQL Technologies, Security,
Messaging, Caching, Calling rest Services with RestTemplate/WebClient,
Sending Email, Validation,….
Ưu điểm nổi bật của Spring Boot
Những tính năng nổi bật của Spring Boot mà bạn không thể bỏ qua như: •
Phát triển web một cách đơn giản và nhanh chóng. • Config an toàn 7 lOMoARcPSD| 45222017 • Có thể hỗ trợ YAML • Có tính quản trị cao •
Dễ dàng ứng dụng Spring và các sự kiện. •
Có thể cấu hình ở bên ngoài và tạo ra những tệp thuộc tính. • Tính bảo mật cao. • Ghi log 3. Maven
Apache Maven là một chương trình quản lý dự án cho phép các developers có
thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) , quản
lý build, tự động download javadoc & source …
Repository: Là một kho chứa các dependencies ( các thư viện sử dụng trong dự
án ). Khi thực hiện build project sử dụng Maven, thì các thư viện được khai báo
trong file pom.xml sẽ được download tự động 4. IntelliJ IDEA
IntelliJ IDEA là một IDE Java để phát triển các phần mềm máy tính. Nó được
phát triển bởi JetBrains (trước đây gọi là IntelliJ)
IDE cung cấp các tính năng nhất định[12] như hoàn thành mã bằng cách phân tích
ngữ cảnh, điều hướng mã cho phép nhảy vào một lớp hoặc khai báo trong mã trực
tiếp, tái cấu trúc mã và các tùy chọn để sửa các mâu thuẫn thông qua các đề xuất.
IDE tích hợp sẵn[12] các công cụ build/đóng gói như grunt, bower, gradle, và
SBT. Nó hỗ trợ các hệ thống kiểm soát phiên bản như Git, Mercurial, Perforce, và
SVN. Các cơ sở dữ liệu như Microsoft SQL Server, ORACLE, PostgreSQL, và
MySQL có thể được truy cập trực tiếp từ IDE.
IntelliJ hỗ trợ các plugin thông qua đó người ta có thể thêm chức năng bổ sung
cho IDE. Có thể tải xuống và cài đặt các plugin từ trang web của kho lưu trữ plugin
của IntelliJ hoặc thông qua tính năng cài đặt và tìm kiếm plugin sẵn có của IDE.
Hiện tại, phiên bản IntelliJ IDEA Community có 1495[13] plugins, trong khi bản
Ultimate có 1626[14]. Những con số này nhỏ hơn nhiều so với các trình soạn thảo
như Atom, có hơn 7000 packages (về cơ bản là các plugin). Tuy nhiên, một số tính
năng được bao gồm theo mặc định trong IntelliJ chỉ có thể được thêm vào Atom
bằng cách cài đặt các packages. Ví dụ, linting được tích hợp vào IntelliJ, và nó có
thể được cài đặt trong Atom, theo ngôn ngữ lập trình, với nhiều gói khác nhau.
Ngôn ngữ hỗ trợ: Java, CloudSlang, Clojure, Dart, Erlang, Go, Gosu,
Groovy,Haxe, Perl, Rust, Scala, XML/XSL, Kotlin,Haskell, Lua, Python ,Julia ,
mTypeScript, SQL, Ruby/Jruby, PHP , JavaScript,HTML/XHTML/CSS 8 lOMoARcPSD| 45222017 5. GIT
Git (/ɡɪt/) là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus
Torvalds vào năm 2005, ban đầu dành cho việc phát triển nhân Linux. Hiện nay, Git
trở thành một trong các phần mềm quản lý mã nguồn phổ biến nhất. Git là phần
mềm mã nguồn mở được phân phối theo giấy phép công cộng GPL2.
Git có khả năng chạy trên nhiều hệ điều hành khác nhau như Linux, Windows, Mac OSX v.v..
Khái niệm cơ bản trong GIT: • Repository •
Repository (nhà kho) hay được gọi tắt là Repo đơn giản là nơi chứa/cơ sở dữ
liệu (database) tất cả những thông tin cần thiết để duy trì và quản lý các sửa đổi
và lịch sử của dự án. •
Trong Repo có 2 cấu trúc dữ liệu chính là Object Store và Index. Tất cả dữ liệu
của Repo đều được chứa trong thư mục bạn đang làm việc dưới dạng folder ẩn
có tên là.git (không có phần tên trước dấu chấm). • Object store •
Object store là trái tim của Git, nó chứa dữ liệu nguyên gốc (original data files),
các file log ghi chép quá trình sửa đổi, tên người tạo file, ngày tháng và các
thông tin khác. Git có bốn loại object là: Blobs, Trees, Commits, Tags •
Blobs: là file nhị phân có thể chứa được mọi loại dữ liệu bất kể là dữ liệu của chương trình gì. •
Trees: lớp đại diện cho thông tin thư mục như thông tin định danh của blob,
đường dẫn, chứa một ít metadata chứa thông tin cấu trúc và các thư mục nhỏ có trong thư mục đó. •
Commits: Chứa metadata có thông tin về mọi thứ như tên tác giả, người tải lên
(commiter), ngày tải lên, thông tin log... •
Tags: đánh dấu cho dễ đọc. Thay vì một cái tên dài như là
9da581d910c9c4ac93557ca4859e767f5caf5169, chúng ta có thể tên tag là Ver-
1.0- Alpha. Dễ nhớ và dễ sử dụng hơn. 9 lOMoARcPSD| 45222017 • Index •
Index là file nhị phân động và tạm thời miêu tả cấu trúc thư mục của toàn bộ
Repo và trạng thái của dự án được thể hiện thông qua commit và tree tại một
thời điểm nào đó trong lịch sử phát triển. Git là một hệ thống truy tìm nội dung (content tracking system). •
Index không chứa nội dung file mà chỉ dùng để truy tìm (track) những thứ mà bạn muốn commit. 6. MY SQL
MySQL là 1 hệ thống quản trị về cơ sở dữ liệu với mã nguồn mở (được gọi tắt là
RDBMS) và đang hoạt động theo mô hình dạng client-server. Đối với RDBMS -
Relational Database Management System thì MySQL đã được tích hợp apache và PHP.
MySQL hình thành như thế nào
Vào năm 1994, một công ty của Thụy Điển là MySQL AB đã phát triển nên
MySQL. Khái niệm MySQL là gì này cũng bắt nguồn từ đây. •
Phiên bản MySQL đầu tiên đã phát hành chính thức vào năm 1995. •
Trong năm 2008, công ty Sun Microsystems đã mua lại MySQL AB. •
Tập đoàn Oracle vào năm 2010 đã thâu tóm Sun Microsystems. Đội ngũ phát
triển ngay lúc đó đã tách MySQL ra trở thành một nhánh trở thành một nhắn
riêng và được gọi là riêng và được gọi là MariaDB. Oracle đã phát triển tiếp tục
MySQL lên với phiên bản 5.5. •
Năm 2013 MySQL đã phát hành ra phiên bản 5.6 •
Năm 2015 MySQL đã phát hành ra phiên bản 5.7 •
Ở thời điểm hiện tại MySQL đang phát triển lên thành phiên bản 8.0
Cơ chế hoạt động của MySQL
MySQL đang tạo ra bảng để có thể lưu trữ dữ liệu và định nghĩa về sự liên quan giữa những bảng đó •
Client sẽ trực tiếp gửi yêu cầu SQL bằng 1 lệnh đặc biệt có trên MySQL. •
Ứng dụng tại server sẽ tiến hành phản hồi thông tin cũng như trả về những kết quả trên máy client.
Ưu và nhược điểm của MySQL Ưu điểm: 1 0 lOMoARcPSD| 45222017 •
Nhanh chóng: Nhờ vào việc đưa ra một số những tiêu chuẩn và cho phép
MySQL làm việc hiệu quả cũng như tiết kiệm chi phí, giúp gia tăng tốc độ thực thi. •
Mạnh mẽ và khả năng mở rộng: MySQL hoàn toàn có thể xử lý số lượng lớn
dữ liệu và đặc biệt hơn thế nữa thì nó còn có thể mở rộng nếu như cần thiết. •
Đa tính năng: Ưu điểm MySQL là gì? MySQL hiện đang hỗ trợ nhiều những
chức năng SQL rất được mong chờ từ 1 hệ quản trị CSDL quan hệ cả gián tiếp cũng như trực tiếp. •
Độ bảo mật cao: MySQL là gì? Hiện tại nó đang rất thích hợp cho những ứng
dụng truy cập CSDL thông qua internet khi sở hữu rất nhiều những tính năng về
bảo mật và thậm chí là đang ở cấp cao. Nhược điểm:
Dung lượng hạn chế: Trong trường hợp nếu như số lượng bản ghi của bạn
đang lớn dần lên thì khi đó quá trình truy xuất dữ liệu sẽ diễn ra vô cùng khó
khăn. Như vậy cần phải áp dụng rất nhiều những biện pháp khác nhau để có thể
gia tăng được tốc độ truy xuất những dữ liệu ví dụ như tạo cache MySQL hoặc
chia tải database ra nhiều server. •
Độ tin cậy: Nhược điểm MySQL là gì? Theo đó cách thức nhận chức năng cụ
thể đang được xử lý cùng với MySQL (ví dụ như kiểm toán, những giao dịch,
tài liệu tham khảo,...) khiến cho nó trở nên kém tin cậy hơn một số những hệ
quản trị về cơ sở dữ liệu có quan hệ khác. •
Giới hạn: MySQL là gì? Theo thiết kế thì MySQL không có ý định thực hiện
toàn bộ và nó đang đi kèm cùng với những hạn chế liên quan tới chức năng mà
một số ứng dụng có thể cần tới. Vậy hiện tại điểm khác biệt giữa MySQL Server và MySQL là gì? 7. MY SQL WORKBENCH
MySQL Workbench chính là một chương trình giúp cho người lập trình có thể giao
tiếp với hệ cơ sở dữ liệu MySQL thay vì phải sử dụng các lệnh Command-line phức
tạp và mất thời gian. MySQL Workbench được thiết kế đơn giản, dễ sử dụng và có thể
thích ứng với nhiều hệ điều hành như là Microsoft Windowns, Max OS, Linux hay Ubuntu.
MySQL Workbench cung cấp giao diện trực quan và nhiều tính năng tiện ích như tạo
bảng, xem và sửa dữ liệu, viết truy vấn SQL , quản lý người dùng và nhiều hơn nữa.
Điều này giúp cho việc thao tác với cơ sở dữ liệu trở nên thuận tiện hơn, phù hợp cho
các nhà phát triển và quản trị viên cơ sở dữ liệu MySQL.
MySQL Workbench ra đời vào tháng 11 năm 2005. Ban đầu, công cụ này được phát
hành dưới dạng công cụ mã nguồn mở và hoàn toàn miễn phí. Sau đó, từ phiên bản 5.0 11 lOMoARcPSD| 45222017
trở đi, MySQL Workbench đã được Oracle mua lại và phát triển thành một sản phẩm
thương mại nhưng vẫn tiếp tục được sử dụng rộng rãi cho việc quản lý cơ sở dữ liệu MySQL.
Các tính năng của MySQL Workbench:
Thiết kế cơ sở dữ liệu
MySQL Workbench cho phép bạn thiết kế cấu trúc cơ sở dữ liệu thông qua giao diện đồ
họa. Bạn có thể tạo bảng, các cột, khóa chính và khóa ngoại một cách trực quan và dễ
dàng. Ngoài ra, công cụ còn cung cấp các chức năng tạo, xóa và sửa đổi các thành phần cơ sở dữ liệu.
Truy vấn và xử lý dữ liệu
MySQL Workbench cho phép bạn viết và thực thi các truy vấn SQL trên cơ sở dữ liệu.
Bạn có thể thực hiện các truy vấn đơn giản như SELECT, INSERT, UPDATE và
DELETE để truy vấn và cập nhật dữ liệu trong bảng. Đồng thời, công cụ cũng hỗ trợ
tính năng xem và sửa đổi dữ liệu trực tiếp trên bảng.
Quản lý người dùng và phân quyền
MySQL Workbench cho phép bạn quản lý người dùng và phân quyền truy cập vào cơ
sở dữ liệu. Bạn có thể tạo, sửa đổi và xóa người dùng, cũng như gán các quyền truy cập
cụ thể cho từng người dùng. Điều này giúp bảo mật cơ sở dữ liệu và quản lý quyền truy
cập một cách linh hoạt.
Mô phỏng và tối ưu hóa truy vấn
MySQL Workbench cung cấp tính năng mô phỏng truy vấn, cho phép bạn xem trực
quan cách truy vấn sẽ hoạt động trên cơ sở dữ liệu. Với công cụ này, bạn có thể tối ưu
hóa truy vấn, giúp cải thiện hiệu suất bằng cách đánh giá và điều chỉnh truy vấn.
Đồ họa hoá cơ sở dữ liệu
MySQL Workbench cho phép bạn tạo biểu đồ ER (Entity-Relationship) để mô phỏng
mối quan hệ giữa các bảng và thực thể trong cơ sở dữ liệu. Điều này giúp bạn hiểu rõ
hơn về cấu trúc cơ sở dữ liệu và quan hệ giữa các đối tượng.
Đồng bộ hóa cơ sở dữ liệu
MySQL Workbench cho phép bạn đồng bộ hóa dữ liệu giữa các máy chủ MySQL. Bạn
có thể sao chép cơ sở dữ liệu từ máy chủ này sang máy chủ khác một cách dễ dàng và
nhanh chóng, đảm bảo rằng dữ liệu trên các máy chủ không bị mất.
Server Administration
Chức năng này cho phép bạn dễ dàng quản lý các phiên bản MySQL Server bằng cách
quản lý người dùng, kiểm tra dữ liệu kiểm tra, xem tình trạng cơ sở dữ liệu, thực hiện
sao lưu và phục hồi cũng như giám sát hiệu suất của máy chủ MySQL. 1 2 lOMoARcPSD| 45222017
Data Migration
Chức năng này cho phép bạn chuyển từ máy chủ Microsoft SQL, SQLite, Microsoft
Access, PostgreSQL, Sybase ASE, SQL Anywhere và các bảng, đối tượng và các dữ
liệu RDBMS khác sang MySQL. Bên cạnh đó, công cụ này cũng hỗ trợ chuyển từ các
phiên bản MySQL trước đó sang các phiên bản mới nhất.
CHƯƠNG III. NỘI DUNG NGHIÊN CỨU
1. NỘI DUNG THỰC TẬP
- Tìm hiểu về mô hình web api.
- Phát triển api cho website https://dev.divega.com/
2. QUÁ TRÌNH THỰC HIỆN 2.1.
Tuần 1: Nghiêm cứu tài liệu, tự học về mô hình web api. Web API là gì?
Web API là một phương thức dùng để cho phép các ứng dụng khác nhau có thể giao
tiếp, trao đổi dữ liệu qua lại. Dữ liệu được Web API trả lại thường ở dạng JSON hoặc
XML thông qua giao thức HTTP hoặc HTTPS.
Những điểm nổi bật của Web API
Web API hỗ trợ restful đầy đủ các phương thức: Get/Post/put/delete dữ liệu. Nó giúp
bạn xây dựng các HTTP service một cách rất đơn giản và nhanh chóng. Nó cũng có
khả năng hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content format.
Tự động hóa sản phẩm
Với web API, chúng ta sẽ tự động hóa quản lý công việc, cập nhật luồng công việc,
giúp tăng năng suất và tạo hiệu quả công việc cao hơn.
Khả năng tích hợp linh động
API cho phép lấy nội dung từ bất kỳ website hoặc ứng dụng nào một cách dễ dàng nếu
được cho phép, tăng trải nghiệm người dùng. API hoạt động như một chiếc cổng, cho 13 lOMoARcPSD| 45222017
phép các công ty chia sẻ thông tin được chọn nhưng vẫn tránh được những yêu cầu không mong muốn.
Cập nhật thông tin thời gian thực
API có chức năng thay đổi và cập nhật thay đổi theo thời gian thực. Với công nghệ này,
dữ liệu sẽ được truyền đi tốt hơn, thông tin chính xác hơn, dịch vụ cung cấp linh hoạt hơn.
Có tiêu chuẩn chung dễ sử dụng
Bất kỳ người dùng, công ty nào sử dụng cũng có thể điều chỉnh nội dung, dịch vụ mà họ sử dụng.
Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model
binder,, dependency injection, unit test.
Web API hoạt động như thế nào?
Đầu tiên là xây dựng URL API để bên thứ ba có thể gửi request dữ liệu đến máy chủ
cung cấp nội dung, dịch vụ thông qua giao thức HTTP hoặc HTTPS.
Tại web server cung cấp nội dung, các ứng dụng nguồn sẽ thực hiện kiểm tra xác thực
nếu có và tìm đến tài nguyên thích hợp để tạo nội dung trả về kết quả.
Server trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS.
Tại nơi yêu cầu ban đầu là ứng dụng web hoặc ứng dụng di động, dữ liệu JSON/XML
sẽ được parse để lấy data. Sau khi có được data thì thực hiện tiếp các hoạt động như
lưu dữ liệu xuống Cơ sở dữ liệu, hiển thị dữ liệu… 1 4 lOMoARcPSD| 45222017
Ưu và nhược điểm của Web API
Mỗi một ứng dụng bất kỳ đều có những ưu nhược điểm riêng, hỗ trợ tốt cho các ứng
dụng. Vì vậy mà web API cũng không ngoại lệ: Ưu điểm
• Web API được sử dụng hầu hết trên các ứng dụng desktop, ứng dụng mobile và ứng dụng website.
• Linh hoạt với các định dạng dữ liệu khi trả về client: Json, XML hay định dạng khác.
• Nhanh chóng xây dựng HTTP service: URI, request/response headers, caching,
versioning, content formats và có thể host trong ứng dụng hoặc trên IIS.
• Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bất kì client nào hỗ trợ XML, Json.
• Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter,
model binder, dependency injection, unit test.
• Giao tiếp hai chiều được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao. Nhược điểm
Do web API còn khá mới nên chưa thể đánh giá nhiều về nhược điểm của mô hình nay.
Tuy nhiên, có hai nhược điểm dễ dàng nhận thấy:
• Web API chưa hoàn toàn phải là RESTful service, mới chỉ hỗ trợ mặc định GET, POST
• Để sử dụng hiệu quả cần có kiến thức chuyên sâu, có kinh nghiệm backend tốt
• Tốn thời gian và chi phí cho việc phát triển, nâng cấp và vận hành
• Có thể gặp vấn đề về bảo mật khi hệ thống bị tấn công nếu không giới hạn điều kiện kỹ. 15 lOMoARcPSD| 45222017 2.2.
Tuần 2,3: Nghiên cứu nghiệp vụ Dự án Divega endolife, Xây dựng
Database, Xây dựng project, liên kết CSDL
Trong project gồm 3 package chính: - Entities - Repositories - Api
Trong đó Entities chứa các cấu trúc dữ liệu của project, chứa liên kết với database
(MySql files), các lớp được định nghĩa (thuộc tính và hàm tạo) phục vụ cho việc lưu
trữ tạm thời dữ liệu
Repositories : Service còn có thể tương tác với service khác, hoặc dùng Repository để
gọi DB. Repository là thằng trực tiếp tương tác, đọc ghi dữ liệu trong DB và trả cho service
Api: xử lý các thao tác logic với dữ liệu
Trong API chứa các thư mục: -
Controllers: Gồm các phương thức phục vụ mục đích nhận request
từ client, trỏ đến các API, sau đó Controller được inject các Service cần
thiết vào và trả về Data responses dưới dạng API. FE sẽ xử lí các data
được trả về dưới dạng JSON rồi hiển thị. -
Services: chứa các business logic code, chứa các code tính toán, xử
lý. Khi Controller yêu cầu, thì Service tương ứng sẽ tiếp nhận và cho ra dữ
liệu trả cho Controller. Đối với các code đơn giản có thể tính toán và trả về
luôn. Nhưng các thao tác cần đụng tới database thì Service phải gọi
Repository để lấy dữ liệu trong DB -
Mappers: mapping các Data Request với Data Reponses và Entities
Sử dụng My SQL WorkBench để thực hiện liên kết Database, mô hình hóa CSDL. Một
khi đã mô hình hóa CSDL dùng trình thiết kế My SQL WorkBench, chúng ta có thể dễ
dàng viết các đoạn lệnh để làm việc với nó.
Sử dụng dataJPA và JDBC để kết nối database và làm việc
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create-drop
#spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true 1 6