Преглед на RMI архитектурата

В разпределената архитектура на приложенията винаги е необходимо комуникация между две различни приложения. В Java-базирани приложения едно приложение комуникира с друго отдалечено / различно приложение, работещо някъде другаде, използвайки механизъм, наречен RMI архитектура.

RMI означава Извикване на отдалечен метод. Това е API, предоставен от java, който позволява на обект, пребиваващ в една JVM (Java Virtual Machine), за достъп или извикване на обект, работещ на друг JVM. Другият JVM може да бъде на същата машина или отдалечена машина. Това е интересна функция, защото в приложения в реално време става много лесно за Java приложенията да комуникират директно помежду си без никакъв външен комуникационен механизъм. Също така, винаги е необходимо сигурна комуникация между приложения, базирана на разпределена архитектура на приложения.

RMI Дизайн

Преди да преминем в подробна архитектура, ще разберем основния дизайн на RMI архитектурата.

  • RMI API се предлага в пакета java.rmi. Нека представим два термина за разбирането на архитектурата на дизайна на RMI. Първо е клиентът; JVM, който ще извика отдалечен обект и втори е сървър; JVM, който съдържа отдалечения обект. Така че клиентът ще се обади на сървъра, в този случай на обекта за извикване на метод.
  • След това сървърът ще върне референцията на обекта на клиента. Уловът тук са както обектите, т.е. локалните, така и отдалечените ще се показват като локален обект на сървъра. Няма да има разлика между двете. Синтаксисът на методите и на двата обекта също е един и същ. Следователно, JVM на сървъра действа като нормален JVM, без да знае за нито един обект дали е локален или отдалечен.
  • Един и същ обект може да бъде и сървър, и клиент. Получава се препратката към отдалечените обекти и се използва така, сякаш е локален обект. Инфраструктурата на RMI е отговорна за намирането на отдалечен обект, прихващане на извикване на метод и обработка на отдалечената заявка от разстояние. Клиентът извиква методи на обекта само след получаване на препратка към отдалечен обект.

RMI Архитектура

По-долу е диаграмата на RMI архитектурата по прост начин. В интернет ще намерите различни форми на една и съща архитектура, но ние имаме проста, която ще помогне да се обясни по-добре.

Нека започнем с свързването на точки от дизайнерска гледна точка с архитектурна диаграма.

Клиентското приложение и сървърното приложение са съответните JVM на клиентската машина и сървърната машина. В приложението на RMI пишем съответно две програми; клиентската програма, която се намира на клиента и сървърната програма, която се намира на сървърната машина.

Слой за приложение:

Този слой са действителните системи, т.е. клиентът и сървърът, които участват в комуникацията. Програмата java от страна на клиента комуникира с програмата java от страна на сървъра.

Модул на:

От интро дизайн, ние имаме клиентски обекти; В архитектурата на RMI той е известен като Stub. Това е обект, който се намира на клиентската машина и действа като прокси за отдалечения обект. Това е като шлюз за клиентската програма.

Стъблото има същите методи като отдалечен обект. Когато клиентът се обади на обекта stub, мъничето препраща тази заявка към отдалечен обект (Skeleton) чрез RMI инфраструктура, която след това се изпълнява на сървъра.

Stub Изпълнява следните събития: -

  1. Инициира връзка с отдалечен JVM,
  2. Записва и предава (Marshals) параметри на отдалечен JVM,
  3. Изчаква резултата,
  4. Чете (Unmarshalls) върнатия резултат,
  5. Предайте получения резултат на обаждащия се.

скелет:

Сървърният обект, който се намира в сървърна машина, е известен като Скелет. Stub комуникира със сървърно приложение с помощта на междинен обект Skeleton.

Отговорността на скелетния обект е да изпраща параметри за изпълнение на метода и да изпраща обратно върнатите стойности на клиента.

Skeleton Извършва следните събития: -

  1. Чете параметъра, предаден от клиента,
  2. Призовава метода върху действителния отдалечен обект,
  3. Предайте / предайте резултата на обаждащия се.

Слой от туш / скелет:

  • Слоят Stub / Skeleton е отговорен за прихващане на повиквания, направени от клиента и пренасочване на тези повиквания към отдалечения обект. Този слой се нарича още като прокси слой. Stub и Skeleton са пълномощниците за клиент и сървър. Обектите Stub и Skeleton са като интерфейс между приложение и останалата част от системата RMI.
  • Целта на този слой е да прехвърля данни към отдалечен референтен слой чрез серийнизация на обекти. Този процес на преобразуване на данни / обект в байтов поток е известен като Marshalling, а обратният е известен като Unmarshalling. Маршалирането се извършва, когато се иска обектът от сървъра, а Демаркирането се извършва, когато данните / обектът се позовава от сървъра.

Дистанционен референтен слой:

  • Прокси прослоят е свързан към механизма RMI чрез отдалечен референтен слой. Този слой е отговорен за комуникацията и прехвърлянето на обекти между клиент и сървър. Семантиката на извикването на RMI връзката е дефинирана и поддържана от този слой.
  • Дистанционният референтен слой е отговорен за поддържането на сесията по време на обаждането на метода. т.е. Той управлява направените от клиента препратки към обекта на отдалечен сървър. Този слой е отговорен и за обработката на дублирани обекти.

Транспортен слой:

Транспортният слой е отговорен за настройката на комуникацията между двете машини. Този слой използва стандартен TCP / IP протокол за връзка. Реалното транспортиране на данни се извършва през този слой. Този слой е част от отдалечен референтен слой.

заключение

  • Removo Method Invocation (RMI) е много полезен API, предоставен в JAVA, който помага в комуникацията между два различни JVM. Тя позволява на обект да извиква метод върху обект, пребиваващ в друго адресно пространство.
  • Той осигурява сигурен начин за приложенията да комуникират помежду си. Той постига тази функционалност с помощта на концепции Stub (клиентски извикващ обект) и скелет (отдалечен обект, пребиваващ на сървъра).
  • RMI се използва за изграждане на разпределени приложения. Той запазва вида на безопасността. RMI архитектурата минимизира сложността на приложението в разпределена архитектура.

Препоръчителни статии

Това е ръководство за RMI Architecture. Тук обсъждаме подробно RMI дизайна и архитектурата с подходяща блокова схема. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Архитектура на склад
  2. Какво е TCP протокол?
  3. Какво е настолен софтуер?
  4. Въпроси за интервю на CCNA