Jarná diaľková komunikácia s hesiánom a vrecovinou

1. Prehľad

V predchádzajúcom článku s názvom „Úvod do jarného vzdialeného ovládania pomocou vyvolávačov HTTP“ sme videli, aké ľahké je nastaviť aplikáciu klient / server, ktorá využíva vzdialené vyvolanie metódy (RMI) prostredníctvom Jarná diaľková komunikácia.

V tomto článku si ukážeme ako Jarná diaľková komunikácia podporuje implementáciu RMI pomocou Hessian a Vrecovina namiesto toho.

2. Maven závislosti

Oboje Hessian a Vrecovina sú poskytované nasledujúcou knižnicou, ktorú budete musieť vo svojom adresári explicitne zahrnúť pom.xml spis:

 com.caucho hesián 4.0.38 

Najnovšiu verziu nájdete na serveri Maven Central.

3. Hesensko

Hessian je ľahký binárny protokol z Caucho, tvorcovia Živica aplikačný server. Hessian implementácie existujú pre niekoľko platforiem a jazykov vrátane Java.

V nasledujúcich pododdieloch upravíme príklad „rezervácie taxíka“ uvedený v predchádzajúcom článku, aby klient a server komunikovali pomocou Hessian namiesto Jarný vzdialený HTTP založený protokol.

3.1. Vystavenie Služby

Poďme vystaviť službu konfiguráciou a RemoteExporter typu HessianServiceExporter, nahradzujúci HttpInvokerServiceExporter predtým použité:

@Bean (name = "/ booking") RemoteExporter bookingService () {HessianServiceExporter exportér = nový HessianServiceExporter (); exporter.setService (nový CabBookingServiceImpl ()); exporter.setServiceInterface (CabBookingService.class); spätný vývozca; }

Teraz môžeme server spustiť a udržiavať ho aktívny počas prípravy klienta.

3.2. Klientská aplikácia

Realizujme klienta. Tu sú opäť úpravy celkom jednoduché - musíme vymeniť HttpInvokerProxyFactoryBean s HessianProxyFactoryBean:

@Configuration public class HessianClient {@Bean public HessianProxyFactoryBean hessianInvoker () {HessianProxyFactoryBean invoker = nový HessianProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); návratový vyvolávač; } public static void main (String [] args) hodí BookingException {služba CabBookingService = SpringApplication.run (HessianClient.class, args) .getBean (CabBookingService.class); out.println (service.bookRide ("13 Seagate Blvd, Key Largo, FL 33037")); }}

Poďme teraz spustiť klienta, aby sa pripojil k serveru pomocou Hessian.

4. Pytlovina

Vrecovina je ďalší ľahký protokol z Caucho, založené na XML. Caucho prestal ju udržiavať už dávno, a preto bola jej podpora v najnovších jarných vydaniach zastaraná, aj keď už je k dispozícii.

Preto by ste mali rozumne pokračovať v používaní Vrecovina iba ak máte aplikácie, ktoré sú už distribuované a ktoré sa nedajú ľahko migrovať na inú Jarná diaľková komunikácia implementácia.

4.1. Vystavenie Služby

Môžeme použiť Vrecovina presne rovnakým spôsobom, aký sme použili my Hessian - musíme zvoliť správnu implementáciu:

@Bean (name = "/ booking") RemoteExporter burlapService () {BurlapServiceExporter exportér = nový BurlapServiceExporter (); exporter.setService (nový CabBookingServiceImpl ()); exporter.setServiceInterface (CabBookingService.class); spätný vývozca; }

Ako vidíte, práve sme zmenili typ vývozcu z HessianServiceExporter do BurlapServiceExporter. Celý nastavovací kód môže zostať nezmenený.

Opäť spustíme server a necháme ho bežať, zatiaľ čo pracujeme na klientovi.

4.2. Implementácia klienta

Môžeme tiež zameniť Hessian pre Vrecovina na strane klienta, výmena HessianProxyFactoryBean s BurlapProxyFactoryBean:

@Bean public BurlapProxyFactoryBean burlapInvoker () {BurlapProxyFactoryBean invoker = nový BurlapProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); návratový vyvolávač; }

Teraz môžeme klienta spustiť a zistiť, ako sa pomocou aplikácie úspešne pripája k serverovej aplikácii Vrecovina.

5. Záver

Na týchto rýchlych príkladoch sme si ukázali, ako je to jednoduché Jarná diaľková komunikácia zvoliť si medzi rôznymi technológiami na implementáciu vzdialeného vyvolania metód a ako môžete vyvinúť aplikáciu bez toho, aby ste si boli vedomí technických podrobností protokolu použitého na predstavenie vzdialeného vyvolania metódy.

Ako obvykle, zdroje nájdete na GitHube, kde sú klienti pre oba Hessian a Vrecovina a JUnit test CabBookingServiceTest.java ktorý sa postará o chod servera aj klientov.


$config[zx-auto] not found$config[zx-overlay] not found