RMI - czy wciąż warto się tego uczyć?

0

Witam,
Jedną z możliwości komunikacji między aplikacjami Java jest RMI. Czy wciąż jest to aktualne API warte poznania, czy raczej historyczne?

Zależy mi na osiągnięciu takiego efektu, że mam np. skomplikowaną apliację Javy SE, która mocno wykorzystuje współbieżność, server sockets itp. Informacje te sa przekazywane do serwera GlassFish (bo takich aplikacji raczej tam sie nie uruchamia). WebService srednio sprawdza sie w przypadku duzego ruchu. Warto w to isc, czy sa lepsze rozwiazania?

Pozdrawiam,

0

A dużo tych danych byś chciał pchać między procesami? Oprócz RMI i WebServiceów, jest jeszcze np JMS, tudzież innego rodzaju biblioteki do message-passing jak np Akka czy Apache Kafka, chociaż nie wiem czy się nadają do JavyEE.

0

Nadal używane. Choć w przypadku komunikacji z serwerem Java EE stosuje się RMI-IIOP. Jeżeli masz do napiania aplikację kliencką co ma być mocno zintegrowana z Glassfishem to obczaj sobie temat: Application Client Container. Choć ostrzegam że nie jest to jakieś popularne rozwiązanie.

RMI i Web Servicy to trochę dwie inne bestie. RMI to technologia co zapewnia Ci tylko remoting i dobrze się nadaje do komunikacji Java<->Java. W tym temacie możes jeszcze rzucić okiem na Hessian. Web Servicy natomiast jeszcze zapewniają ci interoperowalność, czyli łatwo się z nimi połączyć z aplikacji napisanych w czymś innym niż Java. Ale wtedy dodajesz sobie kłopotu z mapowaniem obiektów na XML lub JSON + zmapowanie usług na HTTP lub coś innego.

PS. JMS'ami to się zainteresuj jeżeli chcesz mieć komunikację asynchroniczną (tzw. message orientated). Nie ma sensu tego brać jeżeli chcesz typowe synchroniczne request-responsy robić.

0

Bede wdziczny za wytlumaczenie komunikacji asynchronicznej. Czy chodzi o to, ze response moze przyjsc w dowolnej chwili od wyslania requesta?

Ogolnie zalezy mi na konfiguracji Java SE <-> Java EE. Chodzi o dane pomiarowe, wiec bedzie ich dosyc duzo i fajnie miec cos lepsze niz parsowanie WSDL.

0
  1. Możesz użyć EJB zamiast webservices.
  2. Komunikacja asynchroniczna oznacza że wysyłasz dane i nie przejmujesz się tym kiedy zostaną odebrane i kiedy przyjdą jakieś odpowiedzi. Komunikacja synchroniczna oznacza ze wysyłasz paczkę danych i czekasz aż odbiorca ci odpowie i dopiero potem wysyłasz kolejną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1