Middleware là gì? Ứng dụng của Middleware trong thực tế

Nên dùng phiên bản ExpressJS nào để thao tác với Middleware ?

Bạn có bao giờ thắc mắc “thứ gì” hay “cái gì” nằm giữa request và response hay không? Hay bạn có bao giờ đặt câu hỏi rằng có cơ chế nào kiểm tra các request HTTP trước chúng gửi vào ứng dụng của bạn? Nếu bạn đang thắc mắc, Middleware chính là câu trả lời bạn đang tìm kiếm. Vậy, Middleware là gì? Khi nào sử dụng Middleware nhé!

Tìm hiểu về Middleware

Middleware là gì?

Định nghĩa này khá dễ hiểu vì “cái tên nói lên tất cả”: Middleware tạm dịch là phần mềm trung gian, là một phần mềm trung gian giữa 2 phần mềm/ dịch vụ/ ứng dụng để chúng có thể giao tiếp với nhau một cách dễ dàng hơn.

Nếu bạn thường xuyên làm việc với các Proxy, bạn cũng có thể xem Middleware như những hoạt động biên dịch, accumulator dữ liệu hoặc là một cổng Proxy chuyển tiếp request vẫn ổn.

middleware-la-gi

Middleware có những lợi ích gì?

Trong phần định nghĩa, việc làm của Middleware có vẻ như khá đơn thuần. Nhưng quyền lợi mà Middleware mang lại thực sự rất lớn và tạo ra những tác động ảnh hưởng tích lên ứng dụng của bạn như :

  • Thu hẹp khoảng cách giữa ứng dụng và cơ sở hạ tầng phần cứng, cũng như các phần mềm cấp thấp. Từ đó, việc điều phối các phần của ứng dụng trở nên thuận lợi hơn, đồng thời đơn giản hoá các công việc tích hợp phần mềm
  • Hỗ trợ các nhà phát triển tốt hơn trong việc tránh gặp rắc rối do sử dụng các nền tảng cũ, cấp thấp quá sơ sài, những nền tảng này thường sẽ tạo ra rất nhiều lỗi.
  • Cung cấp các báo cáo, tóm tắt để nhà phát triển có thể sửa lỗi, gia tăng bảo mật, lưu trữ phiên bản và nâng cấp phần mềm để người dùng có trải nghiệm tốt nhất
  • Middleware giúp đơn giản hoá các nhu cầu phát triển đa nền tảng, hệ thống phân tán và nhúng trở nên đơn giản hơn.

Vì sao nên sử dụng Middleware?

Những công nghệ tiên tiến tương hỗ tiếp xúc đa nền tảng hay nhu yếu tăng trưởng 1 ứng dụng nhưng hoàn toàn có thể tiếp xúc trên nhiều nền tảng đang trở nên ngày một cao .

Song song đó, rất nhiều nhà tăng trưởng kiến thiết xây dựng ứng dụng / ứng dụng và phân phối loại sản phẩm của họ để người dùng, nhà tăng trưởng khác hoàn toàn có thể “ nhúng ” vào trong loại sản phẩm dịch vụ của họ trở nên phổ cập hơn .

middleware-la-gi

Vì thế, vai trò cầu nối tương tác giữa người dùng với mạng lưới hệ thống, vai trò trung gian giữa request và response cùng như giải quyết và xử lý những loại logic của Middleware trở nên vô cùng hữu dụng và thiết yếu .

Ứng dụng của Middleware trong thực tế

“Người phiên dịch” – Translator

Trong trong thực tiễn, có rất nhiều dạng data-interchange như JSON, XML hay Protobuf. Tuy nhiên, trong thời gian hiện tại JSON là là dạng được sử dụng dùng nhiều nhất và trong hầu hết những trường hợp .

Ví dụ, tất cả chúng ta có 2 dịch vụ cần tiếp xúc với nhau, tất cả chúng ta hoàn toàn có thể tạo ra một Middleware sử dụng những thư viện quy đổi tài liệu, dịch dữ liệu sang định dạng mà dịch vụ còn lại hoàn toàn có thể hiểu được .

middleware-la-gi

Tích luỹ – nhân bản dữ liệu

Microservice là một dạng kiến trúc đang rất thông dụng trong những ứng dụng tân tiến, có tính phức tạp cao .

Middleware là gì? Ứng dụng của Middleware trong thực tế 3

QUẢNG CÁO

Nếu bạn chưa biết về Microservice, bạn hoàn toàn có thể hiểu đơn thuần Microservice là một ứng dụng / ứng dụng được tạo nên từ rất nhiều ứng dụng, module dịch vụ nhỏ được tăng trưởng tách biệt với nhau và sử dụng những giải pháp tiếp xúc với nhau để tạo thành một ứng dụng lớn .

Ví dụ, bạn tăng trưởng một dự án Bất Động Sản ứng dụng thương mại điện tử, để những nguồn thông tin được phân chia riêng không liên quan gì đến nhau nhằm mục đích để hoàn toàn có thể nghiên cứu và phân tích và nghiên cứu và điều tra hành vi của người mua. Bạn hoàn toàn có thể sử dụng những Microservice riêng không liên quan gì đến nhau cho tàng trữ, truy xuất tài liệu và một Microservice khác để xác nhận, tàng trữ những thông tin về người dùng .

middleware-la-gi

Chúng ta sẽ có 2 trường hợp để giải quyết và xử lý yếu tố này gồm có :

  • Accumulating Data
  • Duplicating Data

Accumulating Data

Bạn sử dụng một Middleware để gửi thông tin đến cả 2 server và nhu yếu chúng tìm kiếm thông tin trong cơ sở tài liệu loại sản phẩm và cơ sở tài liệu người dùng. Sau đó, tìm ra loại sản phẩm tương thích với nhu yếu của người dùng và trả hiệu quả về cho người dùng .

Trong trường hợp này, nếu bạn có nhiều server, Microservice khác nhau, lượng tài liệu sẽ tăng tuyến tính theo số lượng server, Microservice bạn có. Đồng nghĩa với việc thời hạn giải quyết và xử lý sẽ lâu hơn .

Duplicating Data

Đối với chiêu thức này, bạn sẽ tàng trữ tài liệu tại cơ sở tài liệu người dùng, cơ sở tài liệu mẫu sản phẩm và thêm 1 cơ sở tài liệu thứ 3 chứa cả 2 tài liệu trên .

Điều này sẽ giúp người dùng hoàn toàn có thể tìm kiếm tài liệu trực tiếp và nhanh gọn hơn khi nào hết. Tuy nhiên, giải pháp này rất hao tổn bộ nhớ nếu bạn có nhiều cơ sở tài liệu khác nhau .

Như trong ảnh dưới đây, bạn sẽ thấy Middleware như sau dùng để phân chia tàng trữ tài liệu một cách hiệu suất cao hơn :

middleware-la-gi

Bảo mật API

Trong bất kỳ front end nào của client đều cung hoàn toàn có thể nhìn thấy những request được gửi đi trong bảng điều khiển và tinh chỉnh của trình duyệt hoặc Proxy. Vì thế, khi người dùng đăng nhập, ĐK, đăng xuất những địa chỉ xác nhận trên server sẽ bị lộ .

Nếu bạn đã học về những kiến thức và kỹ năng về địa chỉ IP backend, bạn hoàn toàn có thể sử dụng những công cụ để tiến công vào server .

Vì thế, tất cả chúng ta sẽ sử dụng Middleware như một cánh cổng Proxy nhằm mục đích để ẩn URL xác nhận của server. Lúc này, Middleware sẽ là “ người ” tiếp xúc với người dùng và truyền nhu yếu của họ đến sever xác nhận sau đó gửi lại phản hồi cho người dùng .

middleware-la-gi

Bằng cách này, tất cả chúng ta hoàn toàn có thể chặn gần như hàng loạt request đến server xác nhận trừ những request của Middleware. Điều này sẽ khiến server xác nhận của tất cả chúng ta trở nên bảo đảm an toàn hơn .

Hiển thị API công khai

Trong phần trước, chúng ta đã biết rằng Middleware có thể sử dụng để hạn chế truy cập vào các API của chúng ta.

Nhưng hiện tại bạn lại muốn san sẻ, cấp quyền truy vấn một cách hạn chế vào API thì sao ?

Ví dụ, tất cả chúng ta là một nhóm kỹ sư ứng dụng trong ngân hàng nhà nước và ngân hàng nhà nước đang lên kế hoạch để tổ chức triển khai một cuộc thi Hackathon ? Trong trường hợp này, tất cả chúng ta sẽ phải cấp quyền truy vấn API .

middleware-la-gi

Vì tất cả chúng ta là ngân hàng nhà nước, nên, tất cả chúng ta không san sẻ hàng loạt quyền truy vấn vào những API do chúng tương quan trực tiếp đến tài liệu người dùng và gia tài của họ. Vậy giải pháp là tất cả chúng ta sẽ cần phải san sẻ API một cách có tinh lọc .

Trong trường hợp này, tất cả chúng ta hoàn toàn có thể tiến hành một Middleware chỉ hiển thị 1 số ít endpoint và chuyển hướng nhu yếu đến những API được cấp. Sau đó, tất cả chúng ta sẽ thực thi cung ứng những API này đến những nhà tăng trưởng tham gia vào Hackathon .

Sau quy trình tìm hiểu và khám phá về Middleware là gì cũng như ứng dụng của Middleware trong thực tiễn thế nào, bạn cũng đã nắm rất nhiều kỹ năng và kiến thức có ích rồi đúng không ? Tino Group hy vọng rằng những kiến thức và kỹ năng này hoàn toàn có thể trở thành hành trang trong việc tăng trưởng sự nghiệp lập trình của bạn. Cuối cùng, Tino Group chúc bạn luôn thành công xuất sắc trên con đường lập trình web đã chọn !

Bài viết có tìm hiểu thêm nội dung từ nhiều nguồn : FreeCodeCamp, TopDev, Redhat, IBM, …

Những câu hỏi thường gặp về Middleware

Middleware trong Laravel là gì?

Middleware trong Laravel có công dụng tựa như với chính sách được cho phép người dùng hoàn toàn có thể tham gia vào những luồng giải quyết và xử lý request trong ứng dụng được dựng bằng Laravel .

Cách tạo Middleware trong Laravel ra sao?

Để tạo một Middleware trong Laravel, bạn sử dụng cú pháp như sau :

  • php artisan make:Middleware [MiddlewareName]

Các loại Middleware trong ExpressJS là gì?

Trong ExpressJS, có 5 loại Middleware gồm có :

  • Application-level Middleware
  • Router-level Middleware
  • Error-handling Middleware
  • Built-in Middleware
  • Third-party Middleware

Nên dùng phiên bản ExpressJS nào để làm việc với Middleware?

Tốt nhất, bạn nên sử dụng ExpressJS phiên bản 4. x trở lên. Vì từ phiên bản này, ExpressJS không còn nhờ vào vào thư viện Connect nữa, hầu hết những hàm Middleware đều được tách thành những module riêng không liên quan gì đến nhau khiến việc lập trình với ExpressJS trở nên thuận tiện hơn .

Hiện tại, chỉ còn duy nhất Middleware express.static vẫn chưa được tách ra thành module riêng không liên quan gì đến nhau .

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
    Văn phòng đại diện: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí Minh
  • Điện thoại: 0364 333 333
    Tổng đài miễn phí: 1800 6734
  • Email: [email protected]
  • Website: www.tino.org