Trước khi chuẩn Microprofile được xác lập, thị trường các Framework Enterprise của ngôn ngữ lập tình Java được phân chia thành 2 chiến tuyến khá rõ ràng là Spring Framework và JavaEE hậu thuẫn bởi Oracle.

Giới thiệu

TheCodeRoot đã có bài phân tích gửi đến các bạn độc giả về sự khác nhau giữa các khái niệm của ngôn ngữ lập trình Java như: J2EE, JDK, ... Các bạn có thể tìm đọc lại ở đây để có thể hiểu thêm về các khái niệm cơ bản trước khi vào bài phân tích:

Sự ra đời của Microprofile

Trước khi chuẩn Microprofile được xác lập, thị trường các Framework Enterprise của ngôn ngữ lập tình Java được phân chia thành 2 chiến tuyến khá rõ ràng là Spring Framework hậu thuẩn bởi Pivotal và JavaEE hậu thuẫn bởi Oracle. Như các bạn J2EE chỉ là một tập hợp các chuẩn định nghĩa ban đầu được khởi tạo bởi Sun và sau này được tiếp tục duy trì và phát triển bởi Oracle sau khi mua lại hãng Sun. Phiên bản mới nhất của J2EE là phiên bản J2EE được phát hành vào năm 2017, phiên bản trước đó được phát hành vào năm 2013. Trong một khoảng thời gian khá dài như vậy, ngành công nghiệp phần mềm nói chung và lập trình Java đã có nhiều sự thay đổi đáng kể với sự ứng dụng ngày càng rộng rãi của chuẩn JSON hay sự bắt đầu của HTTP2 nhưng trên hết đó là sự phát triển ngày càng mạnh của Kiến Trúc Microservice.

Nhưng khi đó cộng đồng lập trình viên Java không thấy được sự phát triển nào từ J2EE hay chính xác hơn là từ phía Oracle để đáp ứng được các xu thế phát triển nói trên. Trong khi đó người ta lại thấy Spring Framework đang làm rất tốt điều này. Năm 2014 Spring Boot ra đời làm đơn giản hoá đi các thao tác cấu hình rối rắm trên file XML hay các định nghĩa "Bean" chồng chéo cho lập trình viên khi sử dụng Spring Framework. ORM Hibernate được tích hợp một cách dễ dàng và nhanh chóng bằng Spring Data, và đặc biệt nhất chính là khái niệm "embedded container", Spring Boot không cần bất kỳ một Application Server nào như Tomcat hay Glassfissh,... để chạy ứng dụng, thay vào đó lập trình viên chỉ cần build ứng dụng thành 1 gói Jar và chạy như một Java Application bình thường với thời gian startup được rút ngắn tối đa.

Và do đó một số lập trình viên kỳ cựu và một số nhà đầu tư đã cùng nhau sáng lập ra cộng đồng Microprofile - cái tên nói lên mục tiêu của group chính là hướng đến Kiến trúc Microservie. 

"The MicroProfile is a baseline platform definition that optimizes Enterprise Java for a microservices architecture and delivers application portability across multiple MicroProfile runtimes". (Eclipse MicroProfile)

Mục tiêu

Mục tiêu của dự án MicroProfile Eclipse là lặp lại và đổi mới trong các chu kỳ ngắn để đề xuất các API và chức năng chung mới, nhận được sự chấp thuận của cộng đồng, phát hành và lặp lại. Cuối cùng, các kết quả đầu ra của dự án này có thể được gửi tới Eclipse Jakarta EE, JCP, OpenJDK hoặc bất kỳ cơ quan tiêu chuẩn nào có liên quan. Sau đó các chuẩn này sẽ được các hãng công nghệ đưa vào ứng dụng phát triển của mình, ví dụ như các phiên bản J2EE của Oracle.

Microprofile version 1.4

 

Kết luận

Thị trường của ngành công nghiệp phần mềm vốn dĩ không đơn giản như chúng ta vẫn nghĩ về nó. Bản thân các Framework hay nói xa hơn là các chuẩn định nghĩa cũng vốn dĩ được tạo ra bởi con người, thì nó sẽ chịu ảnh hưởng bởi tư duy và định hướng của con người. Sự thay đổi về tư duy và định hướng không đơn thuần chỉ xuất phát từ nhu cầu kỹ thuật mà còn bao hàm nhiều yếu tố kinh tế (lợi nhuận - bản quyền) hay chính trị (quan hệ đối lập giữa các công ty).

Một ví dụ điển hình dễ thấy nhất chính là sự ra đời và cập nhật liên tục của phần mềm JDK, hay nói chính xác hơn là phiên bản Oracle JDK, cứ mỗi 6 tháng lại một phiên bản ra đời. Hầu hết các lập trình viên Java đều cảm thấy ngộp và "choáng" trước tốc độ cập nhật kể trên. Gần như toàn bộ Hệ thống hay ứng dụng Java tại thời điểm đó đều vẫn đang ổn định với phiên bản JDK 8 và nếu họ nâng cấp lên JDK 9 (vốn gần như thay máu toàn bộ) thì Hệ thống hay ứng dụng của họ sẽ chết không kịp ngáp. Khi mà lập trình viên dần quen với cấu trúc module mới từ JDK 9 thì lúc đó JDK đã kịp ra phiên bản .. 12

Là lập trình viên đôi khi chúng ta phải nhìn nhận vấn đề ở nhiều góc độ và khía cạnh và bảo vệ quan điểm khi cần thiết. Không hẳn luôn sử dụng cái mới nhất là tốt nhất, càng nên đặc biệt chú ý hơn đối với mã nguồn mở.

minhnhatict@gmail.com Java Programming