Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Java SE

Java Remote Method Invocation Nedir?

Paylaş

Remote Method Invocation bu yazıda kısaca RMI olarak adlıracağımız kavramdan bahsedeceğim.

İçindekiler

  •  RMI Örneği

Remote Method Invocation yani RMI farklı sunucularda olan metodların başka bir sunucudan çağırılarak kullanılmasında kullanılmaktadır. Java Nesnelerinin kullanmak için farklı bir sunucuya/sanal makina’ya bağlanıtyorsa buna biz Dağıtık Programlama diyoruz. RMI, Dağıtık Programlama yapmamıza olanak sağlamaktadır.

RMI Mimarisi

sfgwewrfw

Katmanlardan oluşmaktadır. Bu katmanlar bize istek, cevaplama , yönlendirme işlemlerini yapmaktadır.

  • Stub

Uygulamadan gelen isteklerin ulaştığı yer Stub’dur. Stub Bağlantı ile başlatır JVM (Java Virtual Machine) ile iletişime geçer. Hataları yakalar, Skeleton’dan gelen sonuçları istemciye iletir.

  • Skeleton

Ulaşn isteklerin ne olduğuna bakarak yönlendirme görevini sağlar. Parametre okur, uzak nesneyi çağırır, metotdan gelen sonucu almakla görevlidir.

  • Remote Reference

Uzak’ta ki nesnelerin ne yapması gerektiğinin anlaşıldığı yerdir. Skeleton’dan gelen istekleri Transport katmanının anlayacağı şekle çevirir. Nesne işlemlerinin yürütüldüğü yerdir.

  • Transport

Bağlantı ile ilgili işlemlerin yapıldığı katmandır. TCP’nin kullanılması işlemlerini yapmaktadır.

 RMI Örneği

 

import java.rmi.*; 
public interface Merhaba_arayuz extends Remote {
  public String mesaj() throws RemoteException;
}

 

import java.rmi.*;
import java.rmi.server.*;

public class Merhaba extends UnicastRemoteObject 
 implements Merhaba_arayuz {
  private String mesaj;
  public Merhaba (String msg) throws RemoteException {
  mesaj = msg;
  }
  public String mesaj() throws RemoteException {
  return mesaj;
  }
}

 

import java.rmi.Naming;

public class Merhaba_Server 
{
  public static void main (String[] argv) 
  {
  try {
  Naming.rebind 
   ("Merhaba", new Mesaj ("Merhabalar"));
  } 
  catch (Exception e) {
  System.out.println ("Bağlanılamadı: " + e);
  }
  }
}

 

import java.rmi.Naming;

public class Hello_istemci
{
  public static void main (String[] argv) {
  try {
Merhaba_arayuz mesaj =(Merhaba_arayuz)
 Naming.lookup ("//xxx.xx..xxx.xx/Merhaba");
  System.out.println (mesaj.mesaj());
  } 
  catch (Exception e){
  System.out.println ("Hata Oluştu " + e);}
  }
}

Tags:

java blogjava notlarıjava örnek

Paylaş

Diğer Yazılar

blank
Previous

Tanıyalım: Tim Berners-Lee

blank
Next

Tanıyalım: Donald Knuth

Next
blank
01 Mayıs 2014

Tanıyalım: Donald Knuth

Previews
20 Nisan 2014

Tanıyalım: Tim Berners-Lee

blank

4 Comments

  1. amigo dedi ki:
    26 Mayıs 2016, 11:49

    Madem böyle bir bilgi paylaşmak istiyorsun o zaman düzgün bir dil kullanmak gerekiyor ve açık şekilde ifade etmek lazım. cümleler kesik, düşük… copy paste bir paylaşım gibi. kod açıklanmamış. insanlar birşey öğrenirken doğru ve açık bilgiye ulaşması önemli. buna özen göstermek gerek.

    Cevapla
    1. Burak dedi ki:
      26 Mayıs 2016, 18:00

      Olması gerekeni sen yaz yayınla o zaman. Burası benim sitem istediğim gibi yazarım. Bu kod parçacığından bir şey anlamıyorsan zaten senin bu işlerle işin olmasın.

      Cevapla
  2. Nohacking dedi ki:
    22 Ekim 2016, 09:39

    Uzak metod çağrımını , çok amatör olarak , istemci web server ve Rmi server üzerinde merhaba örneğiyle açıklamış site sahibi , bilgi paylaşımı ve emeğe nankörlük yapmamak gerekir . Yukarıda site sahibine haksızlık yapılmış . Eleştiri yapılabilir hatta magazinsel bulabilirsin ama nezaket önemlidir..

    Cevapla
  3. Alihaydar dedi ki:
    23 Ekim 2016, 15:21

    Zahmet etmişsiniz, yazmışsınız. Teşekkür ederim. Emeğe saygımız var. Ama bir az daha açıklamalı olsaydı iyi olurdu. Bir de karakter hataları o kadar çok ki, okumakda zorluk çektim ve açıklama da neredeyse yok. Aynı zamanda yorum bildiren arkadaşa burası benim sitem istediğimi yaparım demeniz de çok kabaca. Tabii ki, istediğinizi yaparsınız ama bir süre sonra kullanıcı bulmazsınız sitede.

    Cevapla

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

javb

JSF Navigation Sayfa Yönlendirme (1)

javb

JSP Sayfaya Applet Eklemek ( JSP Plugin )

blank

Tanıyalım: Rasmus Lerdorf Kimdir

blank

JSF Bileşeni – h:commandButton

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Tanıyalım
Veritabanı
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale