Phần mềm trung gian chính xác là gì?


202

Gần đây tôi đã nghe rất nhiều người nói về phần mềm trung gian , nhưng định nghĩa chính xác của phần mềm trung gian là gì? Khi tôi nhìn vào phần mềm trung gian, tôi tìm thấy rất nhiều thông tin và một số định nghĩa, nhưng trong khi đọc những thông tin và định nghĩa này, có vẻ như hầu hết tất cả các 'chiến tranh' đều ở giữa một cái gì đó. Vì vậy, tất cả những thứ trung gian?

Hay bạn có một ví dụ về một kho không phải là phần mềm trung gian?

Câu trả lời:


219

Hãy nói rằng công ty của bạn tạo ra 4 sản phẩm khác nhau, khách hàng của bạn có 3 sản phẩm khác nhau từ 3 công ty khác nhau.

Một ngày nào đó khách hàng nghĩ, tại sao chúng ta không tích hợp tất cả các hệ thống của mình vào một hệ thống lớn. Mười phút sau bộ phận CNTT của họ nói rằng sẽ mất 2 năm.

Bạn (nhà phát triển khôn ngoan) cho biết, tại sao chúng ta không tích hợp tất cả các hệ thống khác nhau và khiến chúng hoạt động cùng nhau trong một môi trường đồng nhất? Người quản lý khách hàng nhìn chằm chằm vào bạn ... Bạn tiếp tục, chúng tôi sẽ sử dụng Middleware, chúng tôi sẽ nghiên cứu Đầu vào / Đầu ra của tất cả các hệ thống khác nhau, tài nguyên họ sử dụng và sau đó chọn khung Middleware phù hợp.

Vẫn giải thích cho người quản lý phi công nghệ
Với khung Middleware ở giữa, hệ thống đầu tiên sẽ tạo ra các công cụ X, hệ thống Y và Z sẽ tiêu thụ các đầu ra đó, v.v.


Ví dụ tuyệt vời! Theo cách này, nó sẽ không trở thành một môi trường không đồng nhất? không đồng nhất.
Rabia Naz khan

Middleware là một thành phần dữ liệu (tổng hợp + chuyển đổi).
trao đổi quá

92

Middleware là một thuật ngữ mơ hồ khủng khiếp. "Phần mềm trung gian" trong trường hợp này sẽ không nằm trong trường hợp khác. Nói chung, bạn có thể mong đợi một cái gì đó được phân loại là phần mềm trung gian có các đặc điểm sau:

  • Chủ yếu (thường là độc quyền) phần mềm; thường không cần bất kỳ phần cứng chuyên dụng nào.

  • Nếu nó không có ở đó, các ứng dụng phụ thuộc vào nó sẽ phải kết hợp nó như một phần của ứng dụng của chúng và sẽ gặp rất nhiều sự trùng lặp.

  • Hầu như chắc chắn kết nối hai ứng dụng và truyền dữ liệu giữa chúng.

Bạn sẽ nhận thấy rằng đây là định nghĩa khá giống với một hệ điều hành. Vì vậy, ví dụ, ngăn xếp TCP / IP hoặc bộ nhớ đệm có thể được coi là phần mềm trung gian. Nhưng hệ điều hành của bạn cũng có thể cung cấp các tính năng tương tự. Thật vậy, phần mềm trung gian có thể được coi là một phần mở rộng đặc biệt cho một hệ điều hành, dành riêng cho một bộ ứng dụng phụ thuộc vào nó. Nó chỉ cung cấp một dịch vụ cấp cao hơn.

Một số ví dụ về phần mềm trung gian:

  • bộ nhớ cache phân tán
  • Hàng đợi tin nhắn
  • giám sát giao dịch
  • viết lại gói
  • hệ thống sao lưu tự động

20

Wikipedia có một lời giải thích khá hay: http://en.wikipedia.org/wiki/Middleware

Nó bắt đầu với

Middleware là phần mềm máy tính kết nối các thành phần hoặc ứng dụng phần mềm. Phần mềm bao gồm một tập hợp các dịch vụ cho phép nhiều quá trình chạy trên một hoặc nhiều máy tương tác.

Middleware là gì cho một vài ví dụ.


1
Tôi đã tự tìm thấy nó rồi, nhưng có vẻ như wikipedia nói rằng mọi thứ đều là phần mềm trung gian hoặc bạn có một ví dụ về một kho không phải là phần mềm trung gian
Michel

2
Tôi sẽ làm rõ bằng cách thêm ... "một hoặc nhiều máy để tương tác mà thực tế không thể". Nếu không, đồng ý, không có gì sai với câu trả lời đó.
jeriley

1
Tốt hơn nên nói "một hoặc nhiều [quy trình] để tương tác mà thực tế sẽ không thể".
fstuijt

19

Có (ít nhất) ba định nghĩa khác nhau mà tôi biết

  • trong điện toán doanh nghiệp, phần mềm trung gian là phần mềm nhắn tin và tích hợp giữa các ứng dụng và dịch vụ

  • trong chơi game, phần mềm trung gian khá tốt bất cứ thứ gì được cung cấp bởi bên thứ ba

  • trong (một số) hệ thống phần mềm nhúng, phần mềm trung gian cung cấp các dịch vụ mà ứng dụng sử dụng, bao gồm các chức năng được cung cấp bởi lớp trừu tượng phần cứng - nó nằm giữa lớp ứng dụng và lớp trừu tượng phần cứng.


15

Đơn giản chỉ cần đặt Middleware là một thành phần phần mềm cung cấp các dịch vụ để tích hợp các hệ thống khác nhau lại với nhau.

Trong một môi trường doanh nghiệp phức tạp, có một số thách thức khi bạn cần tích hợp hai hoặc nhiều hệ thống doanh nghiệp với nhau để nói chuyện với nhau. Thông thường các hệ thống này không hiểu ngôn ngữ của nhau vì chúng được phát triển trên các nền tảng khác nhau bằng các ngôn ngữ khác nhau (như C ++, Java, Cobol, v.v.).

Vì vậy, ở đây có phần mềm trung gian trong hình ảnh cung cấp các dịch vụ như

  • chuyển đổi định dạng tin nhắn từ ứng dụng này sang ứng dụng khác,
  • định tuyến và làm phong phú các thông điệp bên cạnh việc chăm sóc an ninh,
  • mã hóa,
  • xác nhận và
  • áp dụng các quy tắc kinh doanh khác nhau cho các tin nhắn này.

Một ví dụ điển hình của phần mềm trung gian là một sản phẩm ESB như nhà môi giới tin nhắn IBM (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule và nhiều sản phẩm khác.

Do đó, phần mềm trung gian chủ yếu nằm ở giữa các ứng dụng tiêu thụ dịch vụ và ứng dụng cung cấp dịch vụ và giúp các ứng dụng này nói chuyện với nhau.


14

Middleware là về cách ứng dụng của chúng tôi đáp ứng các yêu cầu đến. Middleware xem xét yêu cầu đến và đưa ra quyết định dựa trên yêu cầu này. Chúng tôi có thể xây dựng toàn bộ ứng dụng chỉ bằng cách sử dụng phần mềm trung gian. Ví dụ: ASP.NET là một khung web bao gồm các thành phần phần mềm trung gian HTTP chính.

  1. Xử lý ngoại lệ / lỗi
  2. Máy chủ tệp tĩnh
  3. Xác thực
  4. MVC Middleware

Như được hiển thị trong sơ đồ trên, có nhiều thành phần phần mềm trung gian khác nhau trong ASP.NET nhận yêu cầu đến và chuyển hướng nó đến một lớp C # (trong trường hợp này là lớp trình điều khiển).


10

Middleware là một thuật ngữ chung cho các phần mềm dùng để "kết dính" các chương trình riêng biệt, thường phức tạp và đã tồn tại. Một số thành phần phần mềm thường được kết nối với phần mềm trung gian bao gồm các ứng dụng doanh nghiệp và dịch vụ Web.


6

Có một định nghĩa phổ biến trong phát triển ứng dụng web là (và tôi đang thực hiện cách diễn đạt này nhưng nó có vẻ phù hợp): Một thành phần được thiết kế để sửa đổi yêu cầu và / hoặc phản hồi HTTP nhưng không (thường) phục vụ phản hồi trong toàn bộ, được thiết kế để được xích lại với nhau để tạo thành một đường dẫn thay đổi hành vi trong quá trình xử lý yêu cầu.

Ví dụ về các nhiệm vụ thường được thực hiện bởi phần mềm trung gian:

  • Nén đáp ứng Gzip
  • Xác thực HTTP
  • Yêu cầu đăng nhập

Điểm mấu chốt ở đây là không ai trong số này chịu trách nhiệm hoàn toàn cho việc trả lời khách hàng. Thay vào đó, mỗi thay đổi hành vi theo một cách nào đó như là một phần của đường ống, để lại phản ứng thực tế đến từ một cái gì đó sau này trong chuỗi (đường ống).

Thông thường, các phần mềm trung gian được chạy trước một số loại "bộ định tuyến", kiểm tra yêu cầu (thường là đường dẫn) và gọi mã thích hợp để tạo phản hồi.

Cá nhân, tôi ghét thuật ngữ "phần mềm trung gian" vì tính rộng rãi của nó nhưng nó được sử dụng phổ biến.

Dưới đây là một lời giải thích bổ sung cụ thể áp dụng cho Ruby on Rails.


6

Middleware đứng giữa các ứng dụng web và dịch vụ web vốn không thể giao tiếp và thường được viết bằng các ngôn ngữ / khung khác nhau.

Một ví dụ như vậy là OWIN middleware for .NETmôi trường, trước khi người ta buộc phải lưu trữ các ứng dụng web trong một phần mềm lưu trữ microsoft được gọi IIS. Sau khi owin được phát triển, nó đã bổ sung khả năng lưu trữ cả trong IIS và tự lưu trữ, trong IIS chỉ được hỗ trợ thêm cho Owin hoạt động như một giao diện. Ngoài ra, nó trở nên có thể host .NET web apps on Linux via Mono, một lần nữa thêm hỗ trợ cho Owin.

Nó cũng đã thêm khả năng tạo Single Page Applications, Httpbối cảnh yêu cầu / phản hồi xử lý của Owin , vì vậy, trên đầu trang, bạn có thể thêm authentication/authorizationlogic qua OAuth2, ví dụ, bạn có thể định cấu hình phần mềm trung gian để đăng ký một lớp có logic xác thực người dùng (ví dụ như triển khai OAuth2) hoặc lớp chứa logic về cách quản lý thông điệp yêu cầu / phản hồi http, theo cách đó bạn có thể khiến một ứng dụng giao tiếp với các ứng dụng / dịch vụ khác thông qua định dạng dữ liệu khác nhau (như json, xml, v.v. nếu bạn đang nhắm mục tiêu web).


3

Một số ví dụ về phần mềm trung gian: CORBA, Gọi phương thức từ xa (RMI), ...

Các ví dụ được đề cập ở trên là tất cả các phần mềm cho phép bạn đảm nhiệm việc liên lạc giữa các quy trình khác nhau (chạy trên cùng một máy hoặc được phân phối qua internet, ví dụ như internet).


2

Từ kinh nghiệm của riêng tôi với webwork, một phần mềm trung gian là thứ nằm giữa người dùng (trình duyệt web) và cơ sở dữ liệu phụ trợ. Đó là phần mềm lấy những thứ mà người dùng đưa vào (ví dụ: đơn đặt hàng cho iPad, đã thực hiện một số logic kinh doanh kỳ diệu, tức là kiểm tra xem có đủ iPad để điền đơn đặt hàng không) và cập nhật cơ sở dữ liệu phụ trợ để phản ánh những thay đổi đó.


2

Nó chỉ là một phần mềm hoặc công cụ mà ứng dụng của bạn thực thi và khả năng ứng dụng liên quan đến tính sẵn sàng cao, khả năng mở rộng, tích hợp với các phần mềm hoặc hệ thống khác mà bạn không bận tâm về thay đổi mã cấp ứng dụng.

Ví dụ: Hệ điều hành mà ứng dụng của bạn chạy yêu cầu thay đổi IP, bạn không phải lo lắng về nó trong mã của mình, đây là ngăn xếp phần mềm trung gian mà bạn có thể cập nhật cấu hình đơn giản.

Ví dụ 2: Bạn gặp vấn đề với việc cấp phát bộ nhớ thời gian chạy và cảm thấy rằng việc sử dụng ứng dụng của bạn đã tăng lên, bạn không phải lo lắng nhiều về điều đó trừ khi bạn gặp lỗi hoặc tắc nghẽn trong mã, có thể dễ dàng đạt được bằng cách điều chỉnh cấu hình phần mềm trung gian trên ứng dụng của bạn chạy.

Ví dụ 3: Bạn có nhiều phần mềm khác nhau và bạn cần chúng nói chuyện với nhau hoặc gửi dữ liệu theo định dạng chung có thể hiểu được bởi tất cả các hệ thống thì đây là lúc các hệ thống phần mềm trung gian trở nên tiện dụng.

Hy vọng thông tin được cung cấp sẽ giúp.


2

nó là một lớp phần mềm giữa hệ điều hành và các ứng dụng ở mỗi bên của hệ thống máy tính phân tán trong mạng. Trong thực tế, nó kết nối các hệ thống phần mềm và mạng không đồng nhất.


0

Tôi luôn nghĩ về nó như là phần mềm lâu đời nhất tôi phải cài đặt. Tổng số ứng dụng đã sử dụng máy chủ web, máy chủ cơ sở dữ liệu và máy chủ ứng dụng. Máy chủ web là phần mềm trung gian giữa dữ liệu và ứng dụng.


0

Nếu tôi không sai, trong khung ứng dụng phần mềm , dựa trên ngữ cảnh , bạn có thể xem xét middlewarecác vai trò sau có thể được kết hợp để thực hiện một số hoạt động nhất định giữa người dùng requestvà ứng dụng response.

  • Bộ chuyển đổi
  • Vệ sinh
  • Trình xác nhận
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.