Witam,
Chcę nauczyć się integracji usług (JMS, WebServices, REST, WebSockets, pliki itp). Zastanawiam się jaką technologie wybrać, bo dostawców ESB jest całkiem sporo.
Cele jakie chce osiągnąć:
- kolejka komunikatów: możliwość wznowienia komunikatu, gdy jakaś usługa (właściwie punkt końciwy) padnie: czyli w przypadku, gdy nie uda się dostarczyć, chcę aby komunikat pozostał w kolejce, z możliwością wznowienia.
- konwersja w szczególności SOAP, REST, JMS, WebSocket i inne adaptery typu plik, JDBC (czyli z tego co patrzyłem raczej standard). Na przykład, aby udostępniać SOAP jako REST API przez JSON. Udostępnić WebSocket przez SOAP dla konserwatywnego systemu, który nie musi mieć go z kosmicznie niskim latency itp.
- możliwość dostarczenia komunikatu w kilka różnych miejsc, niekoniecznie w tej samej postaci (np. do jednego źródła jako REST, do innego SOAP, jeszcze innego np. WebSocket).
Na 1 rzut oka atrakcyjne wydają się dwie opcje:
- MuleESB: wiele opcji (brakuje tylko wsparcia dla WebSockets, ale wygląda na to, ze nad tym pracują). Z tego co widzę jest to jakiś open-source (wersja komercyjna i otwarta), więc mogę go użyć komercyjnie.
- Apache Camel: lżejszy, czy podoła ze wszystkimi trzem wymaganiom?
Kryteria na których mi zależy:
- możliwie krótka krzywa uczenia się, aby osiągnąć cele 1 i 2.
- dobra dokumentacja
Obydwie szyny mają community, jest dostępna literatura itp. Intuicja podpowiada, aby wybrać MuleESB nad Camel, ponieważ jest to pełna ESB, a nie lekka, czyli uboższa. Czy mam racje?
Pozdrawiam,