Middleware là gì? Hệ thống các phần mềm trung gian HOT hiện nay

Mục lục

1. Middleware là gì? Vai trò của các phần mềm trung gian là gì?

1.1. Middleware là gì?

Middleware là phần mềm máy tính chuyên kết nối các phần mềm khác với nhau. Middleware cung cấp các tương tác giữa những tiến trình chạy trên nhiều máy khác nhau. Phần mềm trung gian này giúp đơn giản hóa các ứng dụng phân tán phức tạp đồng thời hỗ trợ tích cực cho toàn bộ quá trình kết nối.

Ngày nay, hai xu hướng cơ bản ảnh hưởng đến cách chúng ta quan niệm và xây dựng hệ thống máy tính và thông tin mới. Thứ nhất là công nghệ thông tin dưới mọi hình thức đang trở thành hàng hóa cao, tức là các tạo tác phần cứng và phần mềm ngày càng nhanh hơn, rẻ hơn và tốt hơn với tốc độ tương đối có thể dự đoán được. Thứ hai là sự chấp nhận ngày càng tăng của mô hình lấy mạng làm trung tâm - Middleware, trong đó các ứng dụng phân tán với một loạt các nhu cầu về chất lượng dịch vụ (QoS) được xây dựng bằng cách tích hợp các thành phần riêng biệt được kết nối bằng nhiều hình thức dịch vụ truyền thông. Bản chất của sự kết nối Middleware có thể từ:

- Hệ thống tính toán nhiệm vụ điện tử rất nhỏ và được kết hợp chặt chẽ.

- Hệ thống rất lớn và được kết hợp lỏng lẻo, chẳng hạn như hệ thống viễn thông toàn cầu.

Sự tác động lẫn nhau của hai xu hướng này đã tạo ra các khái niệm và dịch vụ kiến ​​trúc mới thể hiện các lớp phần mềm trung gian hay chính là các Middleware. Các lớp này được xen kẽ giữa các ứng dụng và cơ sở hạ tầng phần cứng và phần mềm thường có sẵn để làm cho việc phát triển và phát triển hệ thống bằng phần mềm có thể tái sử dụng trở nên khả thi, dễ dàng hơn và hiệu quả hơn về chi phí.

Middleware bắt nguồn từ việc nhận ra nhu cầu hỗ trợ nâng cao và có khả năng hơn - ngoài kết nối đơn giản - để xây dựng các hệ thống phân tán hiệu quả. Một phần đáng kể của các hoạt động R & D theo định hướng Middleware trong thập kỷ qua đã tập trung vào:

- Việc xác định, phát triển và mở rộng hiểu biết của chúng tôi về các dịch vụ phần mềm trung gian hiện tại trong việc cung cấp phong cách phát triển này.

- Nhu cầu xác định các lớp và khả năng phần mềm trung gian bổ sung để đáp ứng những thách thức liên quan đến việc xây dựng các hệ thống lấy mạng làm trung tâm trong tương lai.

1.2. Các phần mềm trung gian có vai trò như thế nào?

Các yêu cầu về chu kỳ phát triển nhanh hơn, giảm nỗ lực và tái sử dụng phần mềm nhiều hơn thúc đẩy việc tạo và sử dụng phần mềm trung gian và kiến ​​trúc dựa trên phần mềm trung gian. Phần mềm trung gian là phần mềm hệ thống nằm giữa các ứng dụng và hệ điều hành cơ bản, ngăn xếp giao thức mạng và phần cứng. Vai trò chính của nó là:

Về mặt chức năng nó thu hẹp khoảng cách giữa các chương trình ứng dụng và cơ sở hạ tầng phần cứng và phần mềm cấp thấp hơn để điều phối cách các phần của ứng dụng được kết nối và cách chúng tương tác. Đồng thời nó cũng cho phép đơn giản hóa việc tích hợp các thành phần do nhiều nhà cung cấp công nghệ phát triển.

Khi được triển khai đúng cách, phần mềm trung gian có thể giúp:

- Bảo vệ các nhà phát triển phần mềm khỏi các chi tiết nền tảng cấp thấp,sơ sài và dễ xảy ra lỗi, chẳng hạn như mạng lập trình.

- Phân bổ chi phí vòng đời phần mềm bằng cách tận dụng kiến ​​thức chuyên môn phát triển trước đó và nắm bắt các triển khai chính trong các khuôn khổ có thể sử dụng lại, thay vì xây dựng lại chúng theo cách thủ công cho mỗi lần sử dụng.

- Cung cấp một tập hợp nhất quán các bản tóm tắt hướng mạng cấp cao hơn gần với các yêu cầu ứng dụng hơn trong để đơn giản hóa việc phát triển các hệ thống nhúng và phân tán.

- Cung cấp một loạt các dịch vụ hướng đến nhà phát triển, chẳng hạn như ghi nhật ký và bảo mật đã được chứng minh là cần thiết để hoạt động hiệu quả trong môi trường nối mạng.

2. Những thách thức mà các phần mềm trung gian đang gặp phải

Các xu hướng phát triển của công nghệ và kinh tế đã và đang đem lại những thách thức và cơ hội bổ sung cho phần mềm trung gian cho các tổ chức và nhà phát triển, cả trong việc triển khai các giải pháp dựa trên phần mềm trung gian hiện tại cũng như trong việc phát minh và định hình các giải pháp mới. Để hoàn thành phần tổng quan của chúng tôi, chúng tôi tóm tắt những thách thức chính và cơ hội mới nổi để tiến lên phía trước, đồng thời phác thảo vai trò của phần mềm trung gian trong việc đáp ứng những thách thức này.

2.1. Ngày càng tập trung vào tích hợp hơn là lập trình

Có một xu hướng đang diễn ra từ việc lập trình ứng dụng từ đầu sang tích hợp chúng bằng cách cấu hình và tùy chỉnh các thành phần và khuôn khổ có thể tái sử dụng. Mặc dù trên lý thuyết có thể lập trình các ứng dụng từ đầu, nhưng các hạn chế về kinh tế và tổ chức - cũng như các yêu cầu ngày càng phức tạp và áp lực cạnh tranh - đang khiến việc thực hiện điều này trở nên khó khả thi trong thực tế. Do đó, nhiều ứng dụng trong tương lai sẽ được định cấu hình bằng cách tích hợp phần cứng và phần mềm hàng hóa có thể tái sử dụng các thành phần được thực hiện bởi các nhà cung cấp khác nhau cùng với nền Middleware chung cần thiết để làm cho tất cả hoạt động hài hòa.

Nhu cầu về hành vi tự trị và quan trọng về thời gian trong các ứng dụng thế hệ tiếp theo đòi hỏi các thành phần cơ sở hạ tầng hệ thống linh hoạt hơn có thể thích ứng mạnh mẽ với các thay đổi động end-to-end trong ứng dụng  yêu cầu và điều kiện môi trường. Các ứng dụng cũng sẽ cần các mức QoS khác nhau dưới các cấu hình, điều kiện môi trường và chi phí khác nhau, và nhiều thuộc tính QoS phải được phối hợp hoặc trao đổi với nhau để đạt được kết quả ứng dụng dự kiến. Những cải tiến trong QoS Middleware hiện tại và kiểm soát tốt hơn các thành phần phần cứng và phần mềm bên dưới – cũng như các dịch vụ phần mềm trung gian bổ sung để điều phối những điều này – tất cả đều sẽ cần thiết.

2.2. Khả năng tồn tại tăng lên của các hệ thống mở

Tỷ suất lợi nhuận thu hẹp và áp lực cắt giảm chi phí của cổ đông ngày càng tăng khiến các công ty khó đầu tư vào nghiên cứu dài hạn không mang lại lợi nhuận ngắn hạn. Do đó, nhiều công ty không còn đủ khả năng chi trả cho các tổ chức nội bộ sản xuất các thành phần phần cứng và phần mềm hoàn toàn tùy chỉnh với hỗ trợ QoS độc quyền. Do đó, để lấp đầy khoảng trống này, phần cứng và phần mềm dựa trên tiêu chuẩn do bên thứ ba nghiên cứu và phát triển - và được gắn với nhau bởi Middleware - đang ngày càng trở thành chiến lược đối với nhiều ngành.

Xu hướng này cũng yêu cầu các công ty chuyển đổi từ các kiến ​​trúc độc quyền sang các hệ thống mở hơn để thu được lợi ích của các thành phần được phát triển bên ngoài, trong khi vẫn duy trì khả năng cạnh tranh với các giải pháp dành riêng cho miền có thể khác biệt và tùy chỉnh.  Việc tái cấu trúc nhiều phần mềm trung gian độc lập với miền thành các bản phát hành mã nguồn mở dựa trên các tiêu chuẩn mở đang thúc đẩy việc áp dụng các nền phần mềm phổ biến trong nhiều ngành. Nó cũng nhấn mạnh vai trò của kiến ​​thức miền trong việc lựa chọn, tổ chức và tối ưu hóa các thành phần phần mềm trung gian thích hợp cho các yêu cầu trong các miền ứng dụng cụ thể.

2.3. Tăng đòn bẩy cho các công nghệ đột phá dẫn đến tăng cạnh tranh toàn cầu

Một hệ quả của việc hàng hóa các giải pháp đi kèm lớn hơn dựa trên các thành phần tích hợp phần mềm trung gian là các ngành được bảo vệ từ lâu bởi các rào cản gia nhập cao, chẳng hạn như viễn thông và hàng không vũ trụ, dễ bị tổn thương hơn trước các công nghệ đột phá và cạnh tranh toàn cầu, khiến giá cả tăng lên mức chi phí cận biên. Ví dụ, những tiến bộ trong phần cứng COTS hiệu suất cao đang được kết hợp với các dịch vụ phần mềm trung gian chịu lỗi và thời gian thực để đơn giản hóa việc phát triển các phần tử mạng có thể dự đoán và đáng tin cậy.

Các hệ thống kết hợp các phần tử mạng này, từ PBX đến bộ định tuyến đường trục tốc độ cao - và cuối cùng là các thiết bị chuyển mạch và dịch vụ lớp sóng mang được xây dựng xung quanh các thành phần này - giờ đây có thể sử dụng các thành phần phần cứng và phần mềm tiêu chuẩn ít tốn kém hơn các hệ thống độc quyền cũ, nhưng chúng đang trở nên gần như  như đáng tin cậy.

2.4. Giới hạn độ phức tạp tiềm ẩn cho các hệ thống thế hệ tiếp theo

Mặc dù phần mềm trung gian hiện tại giải quyết được một số vấn đề cơ bản về phân phối và tính không đồng nhất, nhiều vấn đề nghiên cứu thách thức vẫn còn. Đặc biệt, các vấn đề về quy mô, tính đa dạng của môi trường hoạt động và mức độ tin cậy cần thiết vào hoạt động bền vững và hoạt động chính xác của các hệ thống thế hệ tiếp theo có khả năng vượt xa những gì có thể xây dựng. Nếu không có khả năng được cải thiện đáng kể trong một số lĩnh vực, chúng tôi có thể đạt đến điểm mà giới hạn của điểm xuất phát đặt ra mức trần về quy mô và mức độ phức tạp cho các hệ thống trong tương lai.

Nếu không có sự đầu tư vào R & D cơ bản để phát minh, phát triển và phổ biến các khả năng phần mềm trung gian mới cần thiết để xây dựng các ứng dụng tập trung vào mạng thế hệ tiếp theo một cách thực tế và hiệu quả về chi phí, thì động thái dự kiến ​​hướng tới "hệ thống các hệ thống" phân tán quy mô lớn trong nhiều lĩnh vực có thể  không thành hiện thực. Ngay cả khi có, nó có thể làm như vậy với rủi ro cao không thể chấp nhận được vì không đủ hỗ trợ phần mềm trung gian COTS cho các giải pháp đã được chứng minh, có thể lặp lại và đáng tin cậy. Sự phức tạp bổ sung buộc vào lĩnh vực phát triển ứng dụng sẽ chỉ làm trầm trọng thêm tỷ lệ thất bại dự án vốn đã cao trong các lĩnh vực hệ thống phân tán phức tạp.

3. Mách bạn danh sách những Middleware nổi bật nhất hiện nay

Middleware có thể bạn không quen thuộc, nhưng khi nhắc đến những phần mềm trung gian sau thì chắc chắn rằng bạn đã ít nhất “gặp nó ở đâu rồi!”. Vậy những Middleware - phần mềm trung gian đó là: 

3.1. Phần mềm DOC

Trong thập kỷ qua, nhiều công nghệ khác nhau đã được phát minh ra để giảm bớt nhiều phức tạp liên quan đến việc phát triển phần mềm cho các ứng dụng phân tán. Những thành công của họ đã bổ sung một loại phần mềm hệ thống mới vào hệ điều hành, ngôn ngữ lập trình, mạng và cơ sở dữ liệu quen thuộc của thế hệ trước. Một số thành công nhất của những công nghệ này tập trung vào phần mềm trung gian tính toán đối tượng phân tán (DOC). DOC là một mô hình phần mềm trung gian nâng cao, trưởng thành và đã được thử nghiệm tại hiện trường, hỗ trợ hành vi linh hoạt và thích ứng. 

Kiến trúc phần mềm trung gian DOC bao gồm các đối tượng phần mềm tương đối tự trị có thể được phân phối hoặc sắp xếp trong một loạt các mạng và kết nối với nhau.  Khách hàng gọi các hoạt động trên các đối tượng mục tiêu để thực hiện các tương tác và gọi chức năng cần thiết để đạt được các mục tiêu ứng dụng.  Thông qua những tương tác này, một loạt các dịch vụ dựa trên phần mềm trung gian được cung cấp sẵn sàng để đơn giản hóa việc phát triển ứng dụng. Tổng hợp các tương tác đơn giản, được trung gian bởi phần mềm trung gian này tạo thành cơ sở cho việc triển khai hệ thống phân tán quy mô lớn.

Cũng giống như ngăn xếp giao thức mạng có thể được phân tách thành nhiều lớp, chẳng hạn như lớp vật lý, liên kết dữ liệu, mạng, truyền tải, phiên, bản trình bày và ứng dụng, do đó, phần mềm trung gian DOC cũng có thể được phân tách thành nhiều lớp.

3.2. Các phần mềm trung gian máy chủ

Phần mềm trung gian của cơ sở hạ tầng máy chủ đóng gói và tăng cường cơ chế giao tiếp và đồng thời của hệ điều hành gốc để tạo ra các thành phần lập trình mạng có thể tái sử dụng, chẳng hạn như bộ phản ứng, bộ chấp nhận, đối tượng giám sát, đối tượng hoạt động và cấu hình thành phần. Các thành phần này loại bỏ các đặc thù của các hệ điều hành riêng lẻ và giúp loại bỏ nhiều khía cạnh tẻ nhạt, dễ xảy ra lỗi và không di động trong việc phát triển và duy trì các ứng dụng được nối mạng thông qua API lập trình hệ điều hành cấp thấp, chẳng hạn như Sockets hoặc POSIX pthreads. Các ví dụ được sử dụng rộng rãi về phần mềm trung gian của cơ sở hạ tầng máy chủ bao gồm:

- Máy ảo Sun Java (JVM), cung cấp cách thực thi mã độc lập với nền tảng bằng cách trừu tượng hóa sự khác biệt giữa hệ điều hành và kiến ​​trúc CPU. JVM chịu trách nhiệm thông dịch mã bytecode của Java và dịch mã bytecode thành một lệnh gọi hành động hoặc hệ điều hành. JVM có trách nhiệm đóng gói các chi tiết nền tảng trong giao diện bytecode di động, để các ứng dụng được bảo vệ khỏi các hệ điều hành và kiến ​​trúc CPU khác nhau mà phần mềm Java chạy trên đó.

- .NET là nền tảng của Microsoft dành cho các dịch vụ Web XML, được thiết kế để kết nối thông tin, thiết bị và mọi người theo cách chung nhưng có thể tùy chỉnh. Thời gian chạy ngôn ngữ chung (CLR) là nền tảng phần mềm trung gian của cơ sở hạ tầng máy chủ lưu trữ mà các dịch vụ .NET của Microsoft được xây dựng. Microsoft CLR tương tự như Sun’s JVM, nghĩa là nó cung cấp môi trường thực thi quản lý mã đang chạy và đơn giản hóa việc phát triển phần mềm thông qua cơ chế quản lý bộ nhớ tự động, tích hợp nhiều ngôn ngữ, khả năng tương tác với mã và hệ thống hiện có, triển khai đơn giản và hệ thống bảo mật.

- ADAPTIVE (ACE)  là một bộ công cụ có tính di động cao được viết bằng C++ đóng gói các khả năng lập trình mạng của hệ điều hành (OS) gốc, chẳng hạn như thiết lập kết nối, phân kênh sự kiện, giao tiếp giữa các quá trình, sắp xếp, tĩnh và động  cấu hình các thành phần ứng dụng, đồng thời và đồng bộ hóa. Sự khác biệt cơ bản giữa ACE, JVM và .NET CLR là ACE luôn là một giao diện được biên dịch, chứ không phải là một giao diện bytecode thông dịch, điều này loại bỏ một cấp độ hướng dẫn khác và giúp tối ưu hóa hiệu suất thời gian chạy.

3.3. Các phần mềm trung gian phân phối

Phần mềm trung gian phân phối xác định các mô hình lập trình phân tán cấp cao hơn có các thành phần và API có thể tái sử dụng tự động hóa và mở rộng khả năng lập trình mạng của hệ điều hành gốc được gói gọn bởi phần mềm trung gian của cơ sở hạ tầng máy chủ. Phần mềm trung gian phân phối cho phép khách hàng lập trình các ứng dụng phân tán giống như các ứng dụng độc lập, tức là bằng cách gọi các hoạt động trên các đối tượng mục tiêu mà không cần mã hóa cứng phụ thuộc vào vị trí, ngôn ngữ lập trình, nền tảng hệ điều hành, giao thức giao tiếp và kết nối và phần cứng. Trung tâm của phần mềm trung gian phân phối là các nhà môi giới yêu cầu, chẳng hạn như:

- OMG (CORBA), là một tiêu chuẩn mở cho phần mềm trung gian phân phối cho phép các đối tượng tương tác giữa các mạng bất kể ngôn ngữ mà chúng được viết hoặc nền tảng mà chúng được triển khai. Năm 1998, OMG đã thông qua đặc tả CORBA thời gian thực (RT-CORBA) [Sch00a], mở rộng CORBA với các tính năng cho phép các ứng dụng thời gian thực dự trữ và quản lý tài nguyên CPU, bộ nhớ và mạng.

- Sun's Java Remote Method Invocation (RMI) đây là phần mềm trung gian phân phối cho phép các nhà phát triển tạo các ứng dụng Java-to-Java phân tán, trong đó các phương thức của các đối tượng Java từ xa có thể được gọi từ các JVM khác, có thể trên các máy chủ khác nhau. RMI hỗ trợ các tương tác đối tượng phức tạp hơn bằng cách sử dụng tuần tự hóa đối tượng thành các tham số thống nhất và không quản lý, cũng như toàn bộ đối tượng.  Tính linh hoạt này có được nhờ kiến ​​trúc máy ảo của Java và được đơn giản hóa rất nhiều bằng cách sử dụng một ngôn ngữ duy nhất ..

- Mô hình đối tượng thành phần phân tán (DCOM) của Microsoft, là phần mềm trung gian phân phối cho phép các thành phần phần mềm giao tiếp qua mạng thông qua việc khởi tạo thành phần từ xa và gọi phương thức. Không giống như CORBA và Java RMI, chạy trên nhiều hệ điều hành, DCOM được thực hiện chủ yếu trên nền tảng Windows.

- SOAP là một công nghệ phần mềm trung gian phân phối mới nổi dựa trên một giao thức dựa trên XML nhẹ và đơn giản cho phép các ứng dụng trao đổi thông tin có cấu trúc và được đánh máy trên Web. SOAP được thiết kế để kích hoạt các dịch vụ Web tự động dựa trên cơ sở hạ tầng Web được chia sẻ và mở. Các ứng dụng SOAP có thể được viết bằng nhiều ngôn ngữ lập trình, được sử dụng kết hợp với nhiều giao thức và định dạng Internet (chẳng hạn như HTTP, SMTP và MIME), và có thể hỗ trợ một loạt các ứng dụng từ hệ thống nhắn tin đến RPC.

Hy vọng rằng thông qua bài viết này bạn đã nắm rõ những thông tin về các phần mềm trung gian cũng như tự trả lời cho mình câu hỏi Middleware là gì?

Đăng ngày 20/11/2020, 10 lượt xem