2009-09-02 48 views
27

Tôi đang xem xét tích hợp một ESB vào một sản phẩm dựa trên web Java/Maven hiện có. Cụ thể, tôi đang xem ServiceMix và Mule. Sản phẩm sẽ kết nối với một số dịch vụ khác nhau, bao gồm email, Quartz, RESTful webservices qua HTTP, SMS và IM. Tôi chỉ nhanh chóng liếc nhìn tài liệu và hai tùy chọn có vẻ khá nặng và khá phức tạp. Nó có vẻ giống như một cuốn sách giáo khoa ví dụ về khi sử dụng một ESB, nhưng tôi không muốn dành nhiều thời gian chỉ học một hoặc hệ thống khác. Như tôi đã nói, tôi đã có một ứng dụng web được xây dựng bởi Maven và hy vọng tích hợp một trong các hệ thống sẽ khá đơn giản, thậm chí chỉ đơn giản là gửi một email, nhưng có vẻ như việc thêm vào sẽ kéo vào một nửa thế giới về bình và sẽ khó nhúng vào sản phẩm hiện có.Việc tích hợp ESB (ServiceMix/Mule) có xứng đáng với đường cong học tập không?

Có đáng để thử một trong các tùy chọn này không? Có cách nào dễ dàng tích hợp chúng vào một ứng dụng hiện có mà không hoàn toàn tái cấu trúc nó? Có các tùy chọn trọng lượng nhẹ hơn khác không? Có một số khía cạnh mà tôi nên xem xét mà sẽ làm cho việc sử dụng của họ đáng giá?

+2

ESB giúp bạn mua gì ngoài sự phức tạp hơn? Tại sao bạn nghĩ rằng bạn cần nó? Có bao nhiêu dịch vụ là "nhiều", và bạn nghĩ bạn phải tạo ra một ESB cần thiết bao nhiêu? – duffymo

+1

Tôi hy vọng sẽ có số lượng dịch vụ bên ngoài thấp gấp đôi khi chúng tôi đạt sản lượng. Và chúng sẽ khác nhau, nhưng nhiều người trong số họ sẽ phục vụ các mục đích tương tự. Ví dụ: thông báo qua email, IM hoặc SMS, nơi khác biệt duy nhất là phương tiện. – Tim

+4

Một lần theo dõi hơn một năm sau đó. Kết thúc trao đổi Mule cho Camel. Chúng tôi rất hài lòng với Camel. Cộng đồng sôi động đáng kinh ngạc, trọng lượng nhẹ và hiện tại có một cuốn sách để bổ sung cho tài liệu nói chung tốt. Tôi muốn nói bắt đầu với Camel trừ khi có một số lý do rõ ràng bạn cần một ESB chính thức. – Tim

Trả lời

13

Mule là khá đơn giản để sử dụng trong điều khoản của dịch vụ cắm cùng với XML và họ có rất nhiều ví dụ video mà tôi thấy thực sự hữu ích.

ESB được cho là tương lai và như bạn nói - ví dụ của bạn dường như giống như sách giáo khoa về nơi sử dụng nó.

tôi sẽ cố gắng trả lời tất cả câu hỏi của bạn:

Có đáng cố gắng để kéo theo một trong các tùy chọn này? Tôi nghĩ đây là câu hỏi bạn cần phải tự hỏi - bạn đang cố gắng đạt được điều gì? nếu bạn đang cố gắng để làm cho nó dễ dàng hơn để thực hiện nó có thể sẽ mất cùng một lúc thông qua mã tinh khiết hoặc ESB những gì với tất cả các thiết lập bao gồm. Nếu bạn đang nghĩ đến việc thực hiện nó như một bài tập học tập, nó có thể đáng giá.

Có cách nào dễ dàng tích hợp chúng vào ứng dụng hiện có mà không hoàn toàn tái cấu trúc ứng dụng không? Câu trả lời ngắn gọn. Bạn sẽ yêu cầu một số kỹ thuật lại để tích hợp với hầu hết các thư viện/khung bên thứ ba.

Có các tùy chọn trọng lượng nhẹ hơn khác không? Mule khá đơn giản. Bạn có thể sử dụng MQ để thực hiện HTTP, SMS và IM. Có thể ActiveMQ hoặc RabbitMQ.

Có một số khía cạnh mà tôi nên xem xét sẽ làm cho việc sử dụng của họ đáng giá không? Có, ESB được thiết kế cho các doanh nghiệp nơi các dịch vụ mới được thêm vào thường xuyên và cấu hình có thể thay đổi. Có tất cả trong XML làm cho thay đổi này dễ dàng hơn một chút. Vì vậy, nếu bạn chỉ xây dựng một phần mềm một lần, nó có thể không phải là cách đi đúng đắn. Nhưng nếu bạn sẽ bổ sung thêm sau này và liên tục kết nối các dịch vụ khác nhau thì đó có thể là tuyến đường tốt nhất.

+1

Tôi đã có thể nhận được Mule làm việc với dự án mà không có * quá * nhiều rắc rối, mặc dù nó dường như kéo trong hầu hết các jar tưởng tượng. Khi cuối cùng tôi đã có đúng câu thần chú, tác động trên mã của tôi khá nhỏ, điều đó là tốt, nhưng tài liệu không phải là tuyệt vời để tích hợp Mule vào một ứng dụng web hiện có. Tôi vẫn không có một cảm giác cho dù nó sẽ là đáng giá, nhưng bây giờ tôi có một phương tiện để xác định điều đó. Cảm ơn. – Tim

4

Ross Mason, người sáng lập dự án Mule đã viết một bài viết thực sự hay về chủ đề này, To ESB or Not to ESB. Tôi khuyên bạn nên xem nó. Ngoài ra, bạn có thể muốn xem Mule iBeans cung cấp một mô hình đơn giản hơn nhiều nếu bạn đang xây dựng ứng dụng này như một ứng dụng web và chỉ muốn thực hiện một số tích hợp nhẹ và không quan tâm đến hòa giải.

+0

https://blogs.mulesoft.com/dev/mule-dev/to-esb-or-not-to-esb/ (liên kết mới) –

12

Bạn cũng có thể muốn xem qua khuôn khổ Apache Camel thực sự mạnh mẽ cho tất cả các nhu cầu tích hợp mà bạn đã đề cập mà không có hình phạt của ESB đầy đủ.

+2

Vui lòng lưu ý rằng khi tôi đánh giá Camel ngay bây giờ là một tùy chọn tiềm năng thay vì Mule vì nó có vẻ nhẹ hơn. Tôi chưa đưa ra bất kỳ quyết định nào, nhưng có vẻ như nó có thể cung cấp cho tôi những gì tôi cần mà không cần phải trả nhiều tiền. – Tim

1

Tôi khuyên bạn không nên lãng phí thời gian quý báu của mình với MULE. Kinh nghiệm của tôi cho đến nay vẫn chưa tốt. Tôi sẽ không sử dụng nó cho bất kỳ hệ thống quan trọng nào. Đó là xa từ một sản phẩm trưởng thành. Ngoài các dịch vụ RESTful đó chắc chắn hứa hẹn rất nhiều sự đơn giản và có trường hợp sử dụng thực tế.

1

Tôi có thể nói rằng đó là giá trị đầu tư nếu bạn có nhiều hơn hai ứng dụng hoặc cơ sở dữ liệu cần nói chuyện với nhau VÀ họ đang sử dụng nhiều giao thức truyền thông. Hoặc, nếu bạn mong đợi tình trạng này là đúng trong tương lai. Âm thanh như yêu cầu của bạn chắc chắn phù hợp với điều này.

Một tình huống khác có thể đề nghị sử dụng ESB hoặc ít nhất một bus thông báo sẽ là nơi bạn mong đợi hoặc cần một hoặc nhiều ứng dụng để phát triển độc lập với những ứng dụng khác. Ví dụ, một trong những phát triển đang hoạt động và những người khác thì không. Một ESB có thể cô lập các hệ thống ổn định từ những thay đổi trong các hệ thống tích cực phát triển, loại bỏ nhu cầu luôn cập nhật mọi thứ.

Sức mạnh thực sự của ESB là các ứng dụng có thể ủy quyền tất cả các quyết định về cách liên lạc và giao tiếp với ESB và để cho thành phần đó chịu trách nhiệm hoàn toàn về các khía cạnh đó. Tất cả các thành phần khác trở nên tách biệt với nhau và không cần phải lo lắng về việc làm giảm đáng kể các vấn đề kết hợp phụ thuộc.

Về mặt đường cong học tập tôi đã tìm thấy Mule ESB là khá thẳng về phía trước để chọn và chắc chắn sẽ là một đường cong học tập thấp hơn nhiều, cố gắng tìm hiểu tất cả các API cần thiết để nói về nhiều dịch vụ mà bạn đang cố gắng để kết nối với.

Các vấn đề liên quan