Gần đây, giới CNTT nói nhiều đến công nghệ Enterprise JavaBeans (EJB) và COM+ của Microsoft. Một vài người khăng khăng rằng EJB là công nghệ mới, và do vậy chưa sẵn sàng cho sử dụng với mục đích quan trọng. Một số khác lại đặt câu hỏi về khả năng mở rộng của Windows, và cho rằng việc sử dụng Windows 2000 trong các triển khai diện rộng của họ là không hề dễ dàng. Vậy đâu là khía cạnh mà nhà phát triển cần quan tâm khi quyết định sử dụng một trong 2 môi trường này?
Trong bài báo này, chúng tôi sẽ đưa ra thảo luận một vài câu hỏi mà có thể bạn sẽ đặt ra cho chính mình, nhằm giúp bạn quyết định lựa chọn công nghệ nào là thích hợp cho công việc của mình. Có thể bài báo này không trả lời được tất cả các câu hỏi của bạn, nhưng cũng sẽ giúp bạn hỏi đúng người.
ISV hay IT Shop?
Một câu hỏi quan trọng mà bạn cần đặt ra là: bạn bán phần mềm cho các công ty khác? Hay phát triển phần mềm cho chính mình?
Với phần lớn công ty phát triển phần mềm để bán cho các doanh nghiệp khác, EJB thường là lựa chọn tốt nhất. Tại sao lại như vậy? Vì EJB hỗ trợ một môi trường triển khai không đồng nhất. Trừ khi bạn có thể đảm bảo rằng tất cả khách hàng của mình sẽ chấp nhận giải pháp nền Windows, nếu không bạn sẽ phải giới hạn đội ngũ bán hàng của mình tránh xa các khách hàng lớn – những doanh nghiệp có thể sử dụng các giải pháp trên nền tảng UNIX hay mainframe. Điều này hiếm khi được chấp nhận tại hầu hết các ISV. Nếu bạn không biết khách hàng của mình đang sử dụng nền tảng nào thì hãy nói với nhân viên bán hàng, và các chuyên viên tư vấn của bạn, và đề nghị họ tìm hiểu giúp bạn. Đừng e ngại – bởi bạn biết càng nhiều thông tin thì càng tốt cho công việc của bạn.
Nếu đang phát triển phần mềm cho riêng mình thì bạn có thể kiểm soát được môi trường phát triển. Điều đó cho phép bạn chọn lựa cả COM+ và EJB – 2 lựa chọn trong trường hợp này là tương đương nhau.
Các kỹ năng phát triển hiện có
Các nhà phát triển của bạn có những kỹ năng nào? Họ quen thuộc với Java hay C++? Họ có kinh nghiệm với MTS/COM+, EJB, hay không có cả 2? Điều này tất nhiên là ảnh hưởng tới quyết định của bạn. Sau tất cả, việc tuyển dụng, đào tạo, và giữ nhân viên tiếp tục là vấn đề quan tâm hàng đầu, ngoài lĩnh vực kinh doanh của bạn. Bạn có thể thu được nhiều lợi ích nhờ chọn được 1 công nghệ phù hợp với kỹ năng của các nhà phát triển trong công ty mình.
Tận dụng Java
Lựa chọn ngôn ngữ lập trình của bạn rất quan trọng trong việc lựa chọn middleware. Tại sao vậy? Vì các thành phần EJB phải được viết bằng Java. Nếu bạn không muốn bị bó buộc với ngôn ngữ lập trình Java thì COM+ là một giải pháp hấp dẫn.
Còn nếu bạn theo đuổi Java đến cùng thì EJB lại là một lựa chọn tốt nhất. Nếu bạn nhớ lại một quyết định của toàn án đã làm suy yếu khả năng kiểm soát nền tảng Java của Microsoft. Chính vì điều này, Microsoft đang phát triển các ngôn ngữ lập trình mới, chẳng hạn như COOL. Nếu bạn muốn chắc chắn rằng nhà cung cấp của bạn sẽ vẫn tiếp tục hỗ trợ mạnh Java, thì EJB và CORBA là những lựa chọn ít mạo hiểm nhất.
Các tính năng trong middleware
Phần lớn các so sánh giữa EJB và COM+ đều tập trung vào việc so sánh từng tính năng của 2 nền tảng. Đây đều là các điểm khác biệt quan trọng, và bạn nên đánh giá mỗi tính năng này khi áp dụng cho bài toán của mình khi đưa ra quyết định kiến trúc.
Tuy nhiên, bạn nên lưu ý rằng các hệ thống thương mại điện tử thành công ngày nay thuộc cả 2 nền tảng EJB và COM+. Bất chấp việc thiếu đi hỗ trợ cho những tính năng cụ thể trong mỗi nền tảng, các đội phát triển ngày nay đều học được cách giải quyết với các giới hạn của nền tảng mà họ lựa chọn, chẳng hạn như việc thiếu đi các thành phần bền vững trong COM+, hay thiếu đi các thành phần hàng đợi trong EJB. Rất hiếm có quyết định kiến trúc nào lại chỉ phụ thuộc vào các tính năng cơ bản, vì cả 2 kiến trúc này đều rất rất tương đồng.
Chi phí của các hệ thống
Một tính năng nổi bật của công nghệ Microsoft là luôn luôn hạ gục đối thủ nhờ giá cả. Windows 2000 cũng không là ngoại lệ. Hệ điều hành này có chi phí tính trên mỗi giao dịch rất thấp. Hơn thế nữa, COM+ lại được bán kèm Windows 2000, trong khi các máy chủ ứng dụng EJB là những sản phẩm tách biệt khỏi nền tảng. Khi bạn sử dụng phần cứng giá rẻ của Intel và giải pháp middleware của Microsoft thì chi phí cho mỗi giao dịch sẽ vô cùng thấp.
Tuy nhiên, độc giả cũng cần lưu ý rằng chi phí của middleware, hệ điều hành, và phần cứng luôn chỉ chiếm 1 phần rất nhỏ trong tổng chi phí hoàn thành dự án mà thôi. Khi bạn xem xét chi phí tuyển dụng, đào tạo, và giữ các nhà phát triển, chi phí của việc phát triển và duy trì giải pháp, khả năng thất bại do các quyết định kiến trúc sai lầm thì chi phí cho phần cứng và phần mềm là rất nhỏ.
Mua các thành phần hay viết lại từ đầu
Một lợi ích của EJB và COM+ là chúng cho phép các ISV (các nhà cung cấp dịch vụ độc lập) phân phối ứng dụng như các thành phần. Trong tương lai, điều này sẽ cho phép ghép nối các ứng dụng thương mại điện tử các thành phần được chuyên biệt hóa cho từng thị trường ngành dọc. Mô hình này có lợi hơn so với việc viết lại ứng dụng từ đầu, và cũng ưu việt hơn việc mua một trang thương mại độc quyền, không có khả năng tùy biến. Nếu cần có các thành phần mới thì khách hàng có thể tự xây dựng và tùy biến các thành phần.
Ngày nay, không phải tất cả các thành phần phía máy chủ đều được sản xuất hàng loạt. Tuy nhiên, nếu bạn tìm kiếm một nhà phân phối chuyên cung cấp các thành phần trong ngành dọc của mình thì có một lý do để chọn middleware hỗ trợ chúng. Một vài trang web mà bạn có thể tìm kiếm các thành phần gồm:
http://www.flashline.com
http://www.componentsource.com
Tổng kết
Tóm lại, chọn EJB hay COM+ là một quyết định khó khăn, và bài báo này chỉ có tham vọng củng cố thêm cho quyết định của bạn mà thôi. Hình 1 dưới đây tổng kết lại những điểm khác biệt giữa 2 nền tảng.
|
Tính năng
|
EJB
|
COM+
|
|
Ngôn ngữ
|
Chỉ Java
|
Tất cả
|
|
Nền tảng
|
Tất cả
|
Windows 2000
|
|
Các nhà cung cấp middleware
|
30+
|
Microsoft
|
|
Tích hợp với công nghệ hiện có
|
RMI/JNI, CORBA, Connectors (trong tương lai)
|
COM TI, MSMQ, OLE DB
|
|
Giao thức
|
Tất cả (tương lai: IIOP)
|
DCOM
|
|
Các thành phần phi trạng thái
|
Có
|
Có
|
|
Các thành phần lưu trạng thái
|
Có
|
Không
|
|
Các thành phần persistence
|
Có
|
Không
|
|
Method-granularity transactions
|
Có
|
Không
|
|
Cần bằng tải middle-tier
|
Hầu hết các nhà cung cấp
|
Sẽ sớm xuất hiện
|
|
Cache dữ liệu middle-tier
|
Một vài nhà cung cấp
|
Không
|
|
Các thành phần hàng đợi
|
Không
|
Có
|
|
Phụ thuộc giải pháp của 1 nhà cung cấp duy nhất
|
Không
|
Có
|
|
Chi phí cho mỗi giao dịch thấp
|
Không
|
Có
|
|
Middleware đi kèm hệ điều hành
|
Không
|
Có
|
|
Số bộ xử lý cho mỗi máy
|
256+
|
16 (32 thông qua các OEM)
|
|
Số bộ xử lý phân cụm
|
Không giới hạn (trên lý thuyết)
|
Không giới hạn (trên lý thuyết)
|
|
Các công cụ phát triển
|
Nhiều lựa chọn
|
Microsoft Dev Studio
|
Thông tin chi tiết về sự khác biệt giữa 2 công nghệ này có tại địa chỉ http://www.middleware-company.com/debate.html.
Thay cho lời kết, bạn hãy nhớ rằng: cả EJB và COM+ đều sẽ thành công. Đây không phải là trò chơi một mất một còn, và không có ai là người thắng cuộc. Cả hai sẽ có những thị trường của riêng mình, và đều được ủng hộ bởi những hãng đứng đầu. Đối với những người muốn giảm mức độ rủi ro trong việc phát triển dự án khi phải quyết định lựa chọn giữa EJB và COM+, lời khuyên của chúng tôi là hãy thành lập một nhóm đánh giá, sau đó, tạo mẫu thử cho giải pháp đầu tiên để kiểm thử tính khả thi cho nền tảng mà bạn chọn lựa. Chỉ khi đó, bạn mới biết liệu middleware mà bạn chọn lựa cho đáp ứng được các yêu cầu nghiệp vụ cụ thể của mình hay không.