Serdar BAKIR Deniz ÜNAL Harun AYDIN Kocaeli Universitesi Bahar 2012

Slides:



Advertisements
Benzer bir sunumlar
SGB.NET’İN TEKNİK ALTYAPISI
Advertisements

WEB TASARIM Temel Kavramlar.
P2P NETWORKS (PEER TO PEER)
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
TEMEL AĞ TANIMLARI.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Bilgisayar Ağlarına Giriş
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
1 BTME: Mobil Peer-to-Peer Uygulamalar İçin Bluetooth Uygulama Çatısı.
WSDL -SOAP Murat tezgider
Filezilla Client & Server
HTTP’yi (istemci tarafı) kendi kendinize deneyin
İNTERNET VE İLETİŞİM.
Programlama-II (Java ile Bilgisayar Programlama)
OGM SİTESİNDEN GİRİLEREK E-POSTA HESAP ŞİFRESİ DEĞİŞTİRME
KONTROL ÖZELLİKLERİ.
Bilgisayar Ağlarına Giriş
BT SINIFLARINDA DYNED KURULUMU
Çevre ve Orman Bakanlığı Bilgi İşlem Dairesi Başkanlığı
AĞ PROTOKOLÜ.
Bilgisayar Mühendisliği Bölümü Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN.
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
ARP DİNLEME.
Open Systems Interconnection
DERS ADI: AĞ TEMELLERİ KONU ADI: İKİNCİ KATMAN CİHAZLARI (SWİTCH-BRİDGE) HAZIRLAYAN: MUSTAFA DERELİ  
Veritabanı Kopyalama/Taşıma
 HTML nin en önemli araçlarından biri de bilgi girişinde kullanılan form kontrolleridir.  Formlar, web sayfası tasarlayan kişi veya şirketlerle internet.
İSİM UZAYLARI (NAMESPACE)
İnternet Teknolojisi Temel Kavramlar
JAVA Remote Method Invocation (RMI) Geylani Kardaş 2006 Güz Dönemi Dağıtık Sistemler Dersi 30/10/2006 Ege Üniversitesi Uluslararası.
Görsel Programlama Dr. Muhammet Balcılar
Net Class Framework ’ ün en üst yapısına İsim Uzayı denir. İsim uzayları ; pascal programlama dilinde 1990 ve hatta öncesinden beri varolmuş, C’de yer.
TCP/IP Sorun Çözme ve Ağ Komutları
SAMED ÖZCAN T-12/D 2446
BLM619 Bilgisayar Ağları ve Uygulamaları
AKILLI KART SAĞLIK SİSTEMİ
Quest Atlantis Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel Bir Bilgisayar Oyununun Teknik Yapısı.
BİLGİSAYAR AĞLARINA GİRİŞ
 AppLocker teknik olarak merkezi uygulama yönetim sistemi olarak tanımlanabilir. Windows 2008 R2 sürümü ile bir merkez üzerinden çeşitli grup politikaları.
Algoritma ve Programlama BMÜ 112
Bilgisayar Ağlarına Giriş. Tarihsel Gelişim Main- frame OS yoktu Batch Systems (Toplu İşlem) Birden fazla işin arka arkaya çalıştırılması.
BİLGİSAYAR AĞLARINA GİRİŞ
Bölüm 12: DNS Altyapı Mimarisini Oluşturmak
M İ CROSOFT RPC YÜKLENECEK PROGRAMLAR Microsoft Visual Studio 2008 Microsoft SDK 7.0  FamilyID=c17ba a63e-
İnternet Teknolojisi Temel Kavramlar
Chapter 5. Ağ Protokolleri
BTÖ 306 Bilgisayar Ağlarına Giriş Dr. Şirin Karadeniz Çelebi Uluyol.
TCP/IP Sorun Çözme ve Ağ Komutları
Dyned eba şifre güncelleme işlemleri için
KIRKLARELİ ÜNİVERSİTESİ
Lınk layer ProtoCol (ARP,INARP) YUNUS EMRE BAYAZIT.
LOGMEIN İLK OLARAK, “REMOTE CONTROL” ILE BAŞKA BIR BILGISAYARA BAĞLANMAYı VE ERIŞILEN BILGISAYAR ÜZERINDEN KOLAYCA IŞLEM YAPMAYı ANLATACAĞıM. ”
Bilgi İşlem Organizasyonu Güz Dönemi Server Çeşitleri ve Aralarındaki Farklar – Burak Eray KAYIŞ.
SUNUCU İŞLETİM SİSTEMLERİ
KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi KBT208 SUNUCU İŞLETİM SİSTEMİ DNS Öğr.Gör. Ruslan ABDULLA 11. HAFTA.
NetOpenX-REST Burak Çelik Uyarlama Araçları Uzmanı.
Asp.Net Veritabanı İşlemleri
Bilgisayar Ağlarına Giriş
Dünyanın bilgisine açılan pencere...
HAZIRLAYAN HÜRREM SİNCAP
ACTIVE DIRECTORY.
Bilgisayar Ağlarına Giriş
PORTLAR Gizem GÜRSEL
VISUAL STUDIO İÇERİSİNDE VERİ TABANI BAĞLANTISI ACCESS DATA SOURCE SAVAŞ TUNÇER
Asp.Net Veritabanı İşlemleri
Dünyanın bilgisine açılan pencere...
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı
Program Kurulum Seti Hazırlamak
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
FIRAT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ
Sunum transkripti:

Serdar BAKIR Deniz ÜNAL Harun AYDIN Kocaeli Universitesi Bahar 2012 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ı 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ısal sistemlerde dağıtık süreçler arasında kullanılan RPC (Remote Procedure Call) mekanizmasına benzer şekilde standart bilgisayar ağı protokolleri (örneğin TCP/IP) üzerinden nesnelerin birbirleri ile haberleşmesi düşünülmüş ve buna dayalı mimariler gerçekleştirilmiştir.

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(RMI)

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 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 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 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 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 Mimarisi

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 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 İ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 Proje ismimizi ve package ismimizi girip Finish’e tıklıyoruz.

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 Interface ismimizi ve Package ismini girip Finish’e tıklıyoruz.

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 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 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 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 9

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 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 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 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