• Thứ Sáu, 03/06/2005 17:02 (GMT+7)

    Dịch vụ web: Java hay .NET?


    Dịch vụ web là thế hệ ứng dụng mới có khả năng liên tác trên internet.

    Hiện hầu hết các tạp chí về CNTT trên thế giới đều hết lời tán dương dịch vụ web (web service) như là một bước phát triển lớn lao của CNTT, thế hệ tiếp theo của môi trường tính toán phân tán, bước phát triển kế tiếp của internet. “Mọi thứ, mọi lúc, mọi nơi” là khẩu hiệu mới định hướng cho mô hình dịch vụ web.

    Các chuyên gia CNTT đã từ lâu tìm kiếm cách thức quản lý thống nhất các tiến trình nghiệp vụ trong môi trường xí nghiệp và internet. Tính tích hợp và sẵn sàng đáp ứng của ứng dụng đã trở thành yêu cầu quan trọng đối với các tổ chức theo đuổi giải pháp thương mại điện tử. Việc kết nối các hệ thống ứng dụng truyền thống và/hoặc hệ thống trên web với các tiến trình nghiệp vụ, dữ liệu và công nghệ khác hiện vẫn là công việc tốn kém và khó khăn. Tuy hầu hết các tổ chức, công ty đều có ứng dụng chạy trên web, nhưng vẫn thiếu một kiến trúc thích hợp giải quyết vấn đề liên tác. Dịch vụ web là giải pháp cho vấn đề trên, có khả năng tích hợp và cho phép tương tác thông tin giữa các hệ thống trên internet hoặc intranet.

     

    Dịch vụ web là gì?

    Dịch vụ web là dịch vụ ứng dụng triển khai trên internet theo một định dạng chuẩn, ví dụ như XML trên HTTP. Về mặt kỹ thuật, bất kỳ dịch vụ ứng dụng nào cũng đều có thể chuyển thành dịch vụ web, nhưng chủ yếu dịch vụ web được dùng cho truy cập giữa các doanh nghiệp với nhau. Ví dụ bạn muốn viết một ứng dụng chạy trên web có sử dụng thông tin dự báo thời tiết hàng ngày, bạn có thể dùng dịch vụ web để truy cập đoạn mã chương trình thực hiện công việc này và dùng nó trong ứng dụng của bạn thay vì phải tự viết.

    Dịch vụ web là cách tiếp cận mới về cả phương diện kỹ thuật lẫn nghiệp vụ đối với các vấn đề tái sử dụng, công nghệ thành phần, và tính toán phân tán. Nó dựa trên ý niệm là phần mềm - gồm hệ điều hành, ứng dụng, chương trình, và các công việc tính toán khác liên quan đến các đối tượng, thông điệp, văn bản - đều có thể mô hình hóa theo dạng dịch vụ. Các trình sự kiện lớn có thể được phân thành các tác vụ riêng biệt nhỏ hơn, và các tác vụ nhỏ có thể được nhóm thành đơn vị công việc. Nói chung, bất kỳ phần mềm nào cũng đều có thể chuyển thành dịch vụ web nếu nó thể hiện những đặc tính sau:

    - Cung cấp giao tiếp cho phép các chương trình khác gọi tới.

    - Có thể đăng ký và được định vị với một hoặc nhiều danh mục dịch vụ.

    Phần cốt lõi quan trọng nhất của mô hình dịch vụ web là việc liên lạc thông tin được xây dựng trên các chuẩn UDDI (Universal Discovery Description Integration), WSDL (Web Service Description Language), SOAP (Simple Object Access Protocol), và lược đồ XML. Toàn bộ các định nghĩa và cấu hình của các giao thức được xác định bởi các file XML. UDDI định ra phương thức khai thác dịch vụ web, WSDL mô tả dịch vụ và cách thức truy cập dịch vụ, SOAP và XML là giao thức nền dùng để truy cập UDDI và liên lạc với dịch vụ web.

    Giao thức truyền tải mặc định của dịch vụ web là HTTP (cũng có thể dùng các giao thức FTP và email).

     

    Ứng dụng của dịch vụ web

    Các ứng dụng dịch vụ web có thể phân làm ba loại chính:

    • Thông tin nghiệp vụ: Chia sẻ thông tin với người dùng hoặc các đối tác khác. Ví dụ, báo cáo thời tiết, lịch bay, thông tin chứng khoán, và catalog sản phẩm.

    • Dịch vụ nghiệp vụ: Cung cấp các dịch vụ giao dịch có tính phí cho khách hàng, chẳng hạn như kiểm toán, đặt vé, kiểm tra thẻ tín dụng.

    • Hướng ngoại tiến trình nghiệp vụ: Kết hợp các tiến trình nghiệp vụ bên trong với tiến trình nghiệp vụ của công ty khác, tạo nên các tiến trình nghiệp vụ bao trùm nhiều công ty. 

     

    Lựa chọn nền tảng phát triển: Microsoft .NET hay J2EE

    Dịch vụ web phải đảm bảo tính tin cậy, sẵn sàng cao, có khả năng chịu lỗi, nâng cấp mở rộng.

    J2EE và .NET là hai mô hình phát triển của công nghệ ứng dụng server hiện được dùng để xây dựng các ứng dụng cấp xí nghiệp. Các phiên bản trước đây của hai công nghệ này không phải dùng để xây dựng dịch vụ web nhưng với sự ra đời của mô hình dịch vụ web, hai công nghệ này định hướng lại giải pháp của mình như là nền tảng dùng để xây dựng dịch vụ web.

    J2EE và .NET có điểm chung, đó là xây dựng sẵn các khối hệ thống tạo nên dịch vụ web như khả năng tương tác XML, xử lý tải và giao dịch. Người phát triển chỉ phải viết ứng dụng chạy bên trong một khối lớp đã có sẵn các dịch vụ cần thiết.

    Mô hình này cho phép bạn tập trung vào nghiệp vụ của mình. Ví dụ, nếu bạn là một công ty dịch vụ tài chính và muốn thực hiện dịch vụ web về tài chính, bạn thành thạo các nghiệp vụ tài chính nhưng không có nhiều kinh nghiệm về hệ thống dịch vụ web so với các công ty phần mềm chuyên nghiệp như Sun, IBM, BEA, Oracle hay Microsoft. Bạn có thể tập trung vào nghiệp vụ của mình và giao phó vấn đề thiết lập dịch vụ web cho khối hệ thống xây dựng sẵn.

     

    J2EE

    Java 2 Platform, Enterprise Edition (J2EE) được thiết kế nhằm làm đơn giản hóa các vấn đề phức tạp trong việc phát triển, triển khai và quản lý các giải pháp xí nghiệp đa cấp. J2EE là chuẩn công nghệ, và là kết quả của một sáng kiến công nghiệp qui mô do Sun Microsystems đề xướng.

    Mục tiêu của trường phái J2EE là cung cấp cho người dùng khả năng lựa chọn nhà cung cấp phần mềm và sản phẩm, đồng thời khuyến khích việc phát triển sản phẩm phần mềm tốt thông qua cạnh tranh (ngược lại với sự độc quyền của Microsoft).  Chuẩn J2EE được thiết lập trên cơ sở hợp tác của Sun với các hãng cung cấp nền tảng phát triển thương mại điện tử khác như BEA, IBM, và Oracle. Java Community Process (JCP) do Sun đề xướng nhằm duy trì việc cải tiến và phát triển J2EE.

     

    Microsoft .NET

    Microsoft .NET là bộ sản phẩm cho phép xây dựng các dịch vụ web thông minh cấp độ xí nghiệp. Lưu ý sự khác biệt quan trọng: .NET là sản phẩm, trong khi J2EE là chuẩn.

    Microsoft.NET phần lớn được viết lại từ Windows DNA, nền tảng HĐH trước đây của Microsoft dùng để phát triển ứng dụng xí nghiệp. Windows DNA bao gồm nhiều công nghệ đã được kiểm nghiệm trong thực tế như MTS (Microsoft Transaction Server) và COM+, MSMQ (Microsoft Message Queue), và Microsoft SQL Server. Nền tảng phát triển .NET thay thế các công nghệ này, và có thêm các lớp dịch vụ web cũng như sự cải tiến về hỗ trợ ngôn ngữ.

    Về cơ bản, hai nền tảng phát triển J2EE và .NET tương tự nhau (bảng 1). Cả hai đều có những đặc tính công nghệ giống nhau; đều dựa trên nền ngôn ngữ lập trình, mô hình thành phần, và máy ảo. Máy ảo Java (JVM) của J2EE giống hệt khái niệm CLR (Common Language Runtime – môi trường thực thi ngôn ngữ chung) của .NET.

    Nền tảng .NET có ưu thế về kỹ thuật hơn so với J2EE nhờ khả năng liên tác thông qua XML và hỗ trợ giao thức SOAP. .NET cũng có kiến trúc dịch vụ web vượt trội hơn. Kiến trúc J2EE thiết kế ban đầu không tích hợp dịch vụ web. Xét về các phương diện dễ sử dụng, hỗ trợ nhiều ngôn ngữ lập trình, hỗ trợ tích hợp các chương trình truyền thống hiện hữu, tốc độ phát triển ứng dụng thì ưu thế cũng nghiêng về .NET của Microsoft. Tuy nhiên, J2EE lại có ưu thế hơn .NET về chuẩn mở và hỗ trợ nhiều nền hệ thống. Bảng 2 cho điểm hai nền tảng phát triển .NET và J2EE theo các tiêu chí đánh giá trên.

     

    Kết luận

    Hiện có nhiều tranh luận về việc lựa chọn nền tảng phát triển dịch vụ web giữa .NET và J2EE. Tuy nhiên, thị trường hiện vẫn rộng mở và nhiều hứa hẹn cho cả hai. Cả hai nền tảng phát triển đều hữu ích và đều có thể dẫn bạn đến cùng một mục tiêu. Để lựa chọn nền tảng phát triển, bạn nên cân nhắc đến các vấn đề như kỹ năng của lập trình viên, hệ thống ứng dụng hiện hữu, các mối quan hệ với các hãng cung cấp phần mềm và khách hàng của bạn. Khả năng làm việc chung với cả hai nền tảng không phải là bất khả thi, miễn là chúng có thể liên tác được với nhau.

    Tài liệu tham khảo:

    - Enterprise Wars: J2EE vs. .NET, EAI Journal, January 2002

    - Web Service - A Business Perspective on Platform Choice, By Ben van Eyle

    - TheServerside.com

    - Java Developers Journal

    - Web Services Journal


    Thanh Phong

     

    ID: A0204_60