java rmi n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
JAVA RMI PowerPoint Presentation
Download Presentation
JAVA RMI

Loading in 2 Seconds...

play fullscreen
1 / 26

JAVA RMI - PowerPoint PPT Presentation


  • 263 Views
  • Uploaded on

JAVA RMI. Serdar BAKIR Deniz ÜNAL Harun AYDIN Kocaeli Universitesi Bahar 2012. İÇİNDEKİLER. Uzak Nesne Kavramı Remote Method Invocation(RMI) RMI Mimarisi RMI Uygulaması Yaratmak Kaynakça. Uzak Nesne Kavramı.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'JAVA RMI' - feryal


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
java rmi

JAVA RMI

Serdar BAKIR

Deniz ÜNAL

Harun AYDIN

KocaeliUniversitesi

Bahar 2012

ndek ler

İÇİNDEKİLER

Uzak Nesne Kavramı

Remote Method Invocation(RMI)

RMI Mimarisi

RMI Uygulaması Yaratmak

Kaynakça

uzak nesne kavram
Uzak Nesne Kavramı
    • Nesneye dayalı analiz ve tasarım metodolojilerinin popülerleşmesi ve buna dayalı olarak ortaya çıkan nesne tabanlı bilgisayar yazılımlarının farklı makineler üzerinde haberleşmesi ihtiyacı yüzünden uzak nesne kavramı ortaya çıkmıştır.
  • Hedeflenen; farklı makineler üzerinde çalışan nesnelerin birbirleri ile doğrudan mesajlaşmasını sağlamaktır.
  • Yapısalsistemlerdedağıtıksüreçlerarasındakullanılan RPC (Remote Procedure Call) mekanizmasınabenzerşekildestandartbilgisayarağıprotokolleri (örneğin TCP/IP) üzerindennesnelerinbirbirleriilehaberleşmesidüşünülmüşvebunadayalımimarilergerçekleştirilmiştir.
remote method invocation rmi
Remote Method Invocation(RMI)
  • Java RMI programcının dağıtık java teknolojisi tabanlı uygulamalar geliştirebilmesini sağlar. Farklı yerlerde bulunabilen Java sanal makinelerinden uzak Java nesnelerinin metotları çalıştırılabilir.
  • Uzak Metot Çagrımı (RMI) ilk olarak JDK 1.1 ile gündeme gelmis ve ag programlamayı daha yüksek seviyelere tasımıstır. Uzak Metot Çagrımı’nın kullanımının nispeten kolay olmasının yanında fark edilir güçte teknolojiler arasında gösterilebilir.
remote method invocation rmi2
Remote Method Invocation(RMI)
  • Java RMI ağ işlemleri için kullanıcıya soket ve streamlere göre daha üst düzeyde bir ara yüz sunmaktadır. Bu nedenle, RMI ile dagıtık programlama yapmak soket ve stream kullanımına göre daha az karmasıktır. Programcı açısından bakıldıgında, RMI kullanıldıgında istemci/sunucu uygulamaların gelistirilmesi sırasında ag islem alt düzeydeki ayrıntıları ile ugrasmak gerekmemektedir.
rmi mimarisi
RMI Mimarisi
  • RMI mimarisi 3 bağımsız katmandan oluşur. Bu katmanlar Java uygulaması ile JVM arasında bulunur.
  • Stub and Skeleton Layer : Bu katman sıralama, network üzerinden gönderilen verinin tekrar orjinal haline dönme işleri, bu verileri alarak Remote Referans Layer’a iletme işlerinden sorumludur. Network üzerinden veri gönderme ve bu verilerin tekrar orjinal haline dönme işleri serialization ile gerçekleştirilir.
rmi mimarisi1
RMI Mimarisi
  • Remote Reference Layer : Bu katman isteklerin yürütülme işlerinin gerçekleştirilmesinden sorumludur.
  • Transport Layer : Bu katman ise bağlantı ayarları, gelen istekleri yönetme, görüntüleme ve gelen istekleri dinleme gibi işlerden sorumludur.
rmi mimarisi2
RMI Mimarisi
  • Java RMI 3 ana başlık altında incelenir.
  • Java RMI servers :  Bu sunucu Java RMI arayüzünü implemente eder ve RMI kayıt kütüğüne (registry) nesneyi kaydeder.
  • Java RMI registry : Tüm uzaktaki objeleri izler. Java RMI sunucusunun sunucu sınıfının iskeletine erişmesi gerekir. Uzaktaki objenin iskeleti dediğimiz şey uzak objelerin metodlarına çağrım yapan sunucu taraflı entity’lerdir.
rmi mimarisi3
RMI Mimarisi
  • Java RMI clients : Önce uzaktaki objelere erişmek için RMI registry’sine bakar. İstemcilerin sunucu sınıfına erişebilmesi gerekir. Bunun için stub adı verilen istemciler için bir proxy vardır. Bu stub uzaktaki objeler için desteklenen tüm arayüzleri implement eder. Stublar ve iskeletler client server arasındaki iletişimi sağlamak amacıyla kullanılırlar.
rmi mimarisi5
RMI Mimarisi
  • Java RMI sunucu programı, istemci tarafından çağrılacak olan nesnenin instance’ını yaratarak JAVA RMI kayıt kütüğüne (registry) ekler.
  • Java RMI client programı, registry’ye bakarak uzaktaki objeye erişmek için girişimde bulunur.
  • Java RMI Registry’si istemciye uzaktaki objenin stub’ının serialize edilmiş halini döner. İstemci de bu nesneyi alır, deserialize eder ve instance’ını yaratır.
  • Client bu stub’ı kullanarak uzaktaki objenin metodlarından birisini çağırır.
  • Stub, RMI Server içerisindeki iskelet ile bağlantı kurar.
  • Bu iskelet istekte bulunulan nesnenin (remote object) metodlarından birisini çağırır.
  • Cevap iskelete döner.
  • İskelet cevabı istemciye döndürür.
  • İstemcideki stub da cevabı alır ve programa iletir.
java rmi uygulamas yaratmak
Java RMI Uygulaması Yaratmak
  • Uzaktaki objeyi (remote object) tanımlayan bir arayüz geliştirilir. Bu arayüz (interface) java.rmi.Remote adındaki arayüzden türemelidir.
  • Bu arayüzü implement eden bir sınıf tasarlanır. (Servent sınıfı)
  • Servent instancelarını yöneten bir server yaratılır. Yaratılan sunucu aynı zamanda registry’ye kayıt işlemlerinden de sorumludur.
  • Uzaktaki objeleri kullanan bir istemci yaratılır. İstemcide kayıt kütüğüne sorgu yapılarak alınan nesne üzerinden istenilen metotlara istek gönderilir.
java rmi uygulamas yaratmak 1
Java RMI Uygulaması Yaratmak 1
  • İlk olarak bir bilgisayarda Server uygulamamızı yazacağız.
  • Önce NetBeans IDE ‘yi açıp File->New Project ‘i seçiyoruz. Açılan pencerede Java Application’ı seçip next diyoruz.
java rmi uygulamas yaratmak 2
Java RMI Uygulaması Yaratmak 2
  • Proje ismimizi ve package ismimizi girip Finish’e tıklıyoruz.
java rmi uygulamas yaratmak 3
Java RMI Uygulaması Yaratmak 3
  • Server klasımızın içini doldurmadan önce, server ile client arasındaki bağı sağlayacak olan interface’i oluşturacağız. Bunun için paketimizin ismine sağ tıklayıp new sekmesinden Java Interface’i seçiyoruz.
java rmi uygulamas yaratmak 4
Java RMI Uygulaması Yaratmak 4
  • Interface ismimizi ve Package ismini girip Finish’e tıklıyoruz.
java rmi uygulamas yaratmak 5
Java RMI Uygulaması Yaratmak 5
  • Interface’imize java.rmi.Remote ve java.rmi.RemoteExeption klaslarını import ediyoruz. Ayrıca Remote klasını da extend ediyoruz.
  • Daha sonra interface’te bulunması istenen metotlarımızı yazıyoruz.
  • Burada String döndüren sayHello() metodumuz bulunmakta. Görüldüğü gibi metoda ulaşmada sorun olduğunda RemoteException fırlatabilmesi için bir bildirim yapılıyor.
java rmi uygulamas yaratmak 6
Java RMI Uygulaması Yaratmak 6
  • Server klasımızda da gereken rmi klaslarını import ettik ve interface’imizi de implemente ediyoruz.
  • Bundan sonra boş bir constructer methodumuzu yerleştirdik ve Hello interface’inden gelen sayHello() metodumuzu «Hello» Stringi döndürecek şekilde doldurduk.
java rmi uygulamas yaratmak 7
Java RMI Uygulaması Yaratmak 7
  • Main metodumuzda da ServerRMI klasından ve Hello interface’inden birer nesne oluşturup 1050 portunda bir stub nesnesi oluşturuyoruz.
  • Registry’ye stub nesnemizi Hello adıyla bildiriyoruz.
  • Oluşabilecek hataları try catch blokları ile kontrol ettikten sonra serverımız çalışmaya hazır.
java rmi uygulamas yaratmak 8
Java RMI Uygulaması Yaratmak 8
  • Artık client uygulamamızı yazabiliriz.
  • Aynı server uygulamamızdaki gibi New project’e tıklayarak yeni bir proje oluşturyoruz. Burada dikkat etmemiz gereken şey package adlarının serverla aynı olması. Görüldüğü gibi client’ımızın da package adı Rmi.
  • Aynı Hello interface’imiz burada da var. İçerik olarak da tamamen aynısı.
  • Yine ilk olarak onu ekleyerek başlıyoruz.
java rmi uygulamas yaratmak 91
Java RMI Uygulaması Yaratmak 9
  • ClientRMI klasımızda da yine boş bir constructer metdomuz var.
  • Main metodunda Server’ın bulunduğu IP adresi, bağlanacağımız port numarası paremetreleri ile bir Registry nesnesi oluşturuyoruz. Böylece server’a bağlanmış sayılabiliriz. Hello türündeki nesneyi server tarafında «Hello» adıyla bildirdiğimizi hatırlarsınız. Burada da o nesneyi registry’den «Hello» adıyla buldurarak programımıza katıyoruz. Nesnedeki sayHello metodunun cevabını da ekrana yazdırıyoruz. IP adresinin 127.0.0.1 olması localhost’ta aynı bilgisayara bağlanılacağını göstermektedir. Yani server da client da aynı bilgisayardadır.
java rmi uygulamas yaratmak 10
Java RMI Uygulaması Yaratmak 10
  • Artık hem client hem de server uygulamamız hazır olduğuna göre ilk olarak server uygulamasını çalıştırara deneyebiliriz.
  • ServerRMI.java dosyasına sağ tıklayıp Run File ‘a tıklıyoruz.
  • Konsol output pencesinde yukarıdaki gibi çıktılar olması gerekiyor.
java rmi uygulamas yaratmak 11
Java RMI Uygulaması Yaratmak 11
  • Aynı şekilde ClientRMI.java dosyasını çalıştırdığımızda aşağıdaki gibi bir çıktıyla karşılaşıyoruz.
  • Burada «Hello!» yazısı server uygulamamızdaki sayHello() metodundan gelen cevaptır.
kaynak a
Kaynakça
  • Java RMI, William Grosso, O'Reilly Media,2001
  • http://notes.corewebprogramming.com/student/RMI.pdf
  • http://www.universalteacherpublications.com/Java/rmi/index.htm
  • http://docs.oracle.com/javase/jndi/tutorial/objects/storing/remote.html
  • http://belgeler.cs.hacettepe.edu.tr/yayinlar/eski/CORBA_20122034.pdf