Java’da Eclipse ortaminda Axis2 ile Web Servis Uygulamasi

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Ağları ve İnternet
Advertisements

 Teachertube.com sitesinin ana sayfa görüntüsünu sol taraftaki resimden görebiliyoruz. Teachertube.com slideshare.com ‘a benzer bir sosyal paylaşım sitesidir.
SGB.NET’İN TEKNİK ALTYAPISI
WEB TASARIM Temel Kavramlar.
NETBEANS’TE AXİS 2 ile WEB SERVİS GELİŞTİRME
Serdar BAKIR Deniz ÜNAL Harun AYDIN Kocaeli Universitesi Bahar 2012
FTP UYGULAMALARI VE İŞLETİM SİSTEMİ LİSANS YÖNETİMİ
WEB SERVİSLERİ: Internet Devriminde İkinci Aşama?
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
WSDL -SOAP Murat tezgider
.NET FRAMEWORK.
Filezilla Client & Server
Google Talk Kurulumu-Kullanımı
İnternet Programcılığı
İNTERNET VE İLETİŞİM.
YARDIM MASASI Internet Explorer tarayıcısı açılır ve Yardım Masası adresi yazılarak sayfası açılır. Gelen.
İSİM UZAYLARI.
OGM SİTESİNDEN GİRİLEREK E-POSTA HESAP ŞİFRESİ DEĞİŞTİRME
Web Service Uygulaması
Proxy-DNS Nedir?.
AĞ PROTOKOLÜ.
DOVECOT İLE IMAP VE POP3 SERVER KURULUMU
Çerez(Cookie) Kullanımı Oturum Yönetimi
NESNEYE YÖNELİK PROGRAMLAMA
IT 504 İnternet ve Web Programlama Tanıtım Yrd. Doç. Yuriy Mishchenko.
Tools İlk olarak bir tane İnternet Explorer sayfası açarak “Tools” (Araçlar) butonuna tıklıyoruz.
 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.
WİNDOWS XP GRUP İLKESİ.
İnternet Teknolojisi Temel Kavramlar
MERKEZİ KULLANICI TANIMA SERVİSLERİ Mustafa Atakan ODTU-BIDB Teknik Destek Grubu.
WEB TASARIMINDA TEMEL KAVRAMLAR
BTEP 203 – İnternet ProgramcIlIğI - I
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
İnternet Programlama PHP.
U Y A R I Takibeden slaytlarda anlatılan internet explorer / proxy ayarları yapıldıktan sonra ancak KHÜ Bilgi Merkezi tarafından izin verilen web sayfalarına.
Öğr.Gör.İnayet Hakkı ÇİZMECİ Bilgisayar Prog.
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ı.
İnternet Teknolojisi Temel Kavramlar
Chapter 5. Ağ Protokolleri
İKMAP İnternet 1 Ders Notu
VLC MEDİA PLAYER.
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
İLERİ SAYISAL SİSTEM TASARIMI VE SENTEZLEME 10. Hafta: Qsys
Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 3. Hafta.
KIRKLARELİ ÜNİVERSİTESİ
Android Kurulum Elemanlari Android Ortaminin Olusturulmasil icin asaida ifade edilen araclarin olmasi ve kurulumlarinin gerceklestirilmesi gerekmektedir.
Yeni Sayfa Oluşturma ve Buton, EditText, TextView Kavramları Uygulamamıza yeni bir sayfa eklediğimizde bu sayfa için bir java sınıfı da oluşturmamız gerekiyordu.
Android Projesi Olusturma projemiz için isim ve gerekli sdk ayarların ı belirtiyoruz. Uygulamamızın hangi android sürümlerinde çalışabileceğini de bu.
Sayfa Ayarlari Projelerimizde uzerinde yogunlasacagimiz dosyalar Java ve XML dosylari olacaktir.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
LOGMEIN İLK OLARAK, “REMOTE CONTROL” ILE BAŞKA BIR BILGISAYARA BAĞLANMAYı VE ERIŞILEN BILGISAYAR ÜZERINDEN KOLAYCA IŞLEM YAPMAYı ANLATACAĞıM. ”
BIR BLOG SAYFASı NASıL ANDROID PROGRAMıNA DÖNÜŞTÜRÜLÜR? Yrd. Doç. Dr. Erkan YEŞİLTAŞ.
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
Bilgi İşlem Organizasyonu Güz Dönemi Server Çeşitleri ve Aralarındaki Farklar – Burak Eray KAYIŞ.
FTP Nedir ? Deniz Kaya FTP NEDİR ? Ftp (File Transfer Protocol), dosya gönderme protokolü manası gelir. Bir bilgisayardan bir başka bilgisayar.
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.
Asp.Net Veritabanı İşlemleri
Dünyanın bilgisine açılan pencere...
Server Yönetim Programları
MAİL SERVER Oğuz ZARCI –
PROXY SERVER YASİN ÇAKIR
ACTIVE DIRECTORY.
LDAP ( LİGHTWEİGHT DİRECTORY ACCESS PROTOCOL )
İNTERNET PROGRAMCILIĞI 2
INTERNET nedir? Bu slayda şirket ambleminizi eklemek için
Temel Internet Kullanımı Y. Doç. Dr. M. Sıtkı İlkay Ekim 2006.
Program Kurulum Seti Hazırlamak
İstemci sunucu sistemleri ve ağlar
Sunum transkripti:

Java’da Eclipse ortaminda Axis2 ile Web Servis Uygulamasi Kocaeli Üni. Bilgisayar Mühendisliği Dönem Projesi Danışman : Yrd. Doç. Dr. Ahmet Sayar

Kısa geçmişi ve önemi Web servisleri Web üzerinden servis veren program parçacıklarıdır. Haziran 2000'de ortaya çıkmış ve birçok yazılım firması tarafından yoğun bir destek bulmuştur. İnternet üzerinde uygulama bütünleştirmesi için yöntem arayan birçok yazılım geliştirici firma ve kurum Web servisi modeli konusuna yönelmişlerdir. Bu modeli destekleyen Microsoft, IBM, Sun, HP, Oracle ve daha birçok firma bu konuda yoğun bir şekilde çalışmakta, Web servisleri yazılım ve uygulama geliştirme araçları sunmaktadır. Firmaların bu konudaki yoğun desteğinden dolayı, uygulama bütünleştirmesi konusunda ortaya çıkacak hakim ortamın Web servisleri modeline dayanacağı öngörülmektedir.

Tanıtım… Web üzerinden verilen bu servisler standart HTTP protokolü ile olmaktadır. Bu da herkesin bu protokol vasıtası ile bir Web servisine ulaşabileceğini göstermektedir. Bir kullanıcının HTTP üzerinden bir Web servisini kullanmasına RPC (Remote Procedure Call) denilmektedir. HTTP üzerinden yapılan bu çağrımlara karşı SOAP (Simple Obect Access Protocol) denilen protokol XML çıktıları üretir. Bu sayede standart bir veri paylaşım aracı olan XML ile istenilen veriler alınıp kullanılabilir.

Tanıtım… Web servislerinin popüler olmasının en büyük nedeni platform ve dilin bağımsız olmasıdır. Web servisleri açık İnternet standartlarına dayanır. Henüz gelişme ve olgunlaşma aşamasında olan bu modelle ilgili olarak bu aşamada ortaya çıkan ve kullanılan çekirdek standartlar SOAP, WSDL ve UDDI'dır. Ayrıca standart İnternet teknolojilerini kullandığından dolayı, uygulamalara ulaşım kolaydır ve çağrılan programlar güvenlik duvarlarına takılmazlar. 

Web Servisi Modeli

Web Servisi Modeli Web servisi modeli üç ana birimin etkileşimine dayanır. Bu birimler şunlardır: Servis Sağlayıcı (Servis Provider): İstemcilerin sağlayıcıda bulunan servislere erişimini sağlar. Kendi sitesinde bulunan Web servisleri tanımını servis kayıt birimine (service registry) kaydederek bu servisinin nasıl çağırılacağını belirtir. Servis İstemcisi (Service Requester): Servis sağlayıcısında bulunan Web servislerini çağırarak kullanan istemci uygulamalardır. Web servisinin nasıl çağırılacağını ve ilgili parametreleri servis kayıt biriminden arayarak bulur ve çağırır. Servis Kayıt Birimi (Service Registry): Servis sağlayıcılarının yayınladıkları Web servisi tanımlarını saklar ve aranıp bulunmasını sağlar. Servis sağlayıcıları, servis kayıt birimini tarayarak istediği servisler hakkında bilgi alabilir. Servis kayıt birimi her servisin nasıl çağırılacağı konusunda tanım bilgileri içerir.

Web Servisi Modeli Web servisi istemcisinin bir servis sağlayıcıdan bir servisi çağırması aşamasındaki temel adımları şöyledir; Web Servisi İstemcisi (SOAP Client) servis kayıt biriminden (UDDI) Web servisini bulur. İstemci bir SOAP mesajı hazırlar. Bu SOAP mesajı bir XML belgesidir. İstemci SOAP mesajını Web sunucu veya uygulama sunucusunda çalışan SOAP istek dinleyicisine gönderir. İstek dinleyiciler gelen isteklere cevap veren sunucu programlardır. Bir JSP, ASP, CGI veya ISAPI programı olabilir. SOAP sunucu, gelen SOAP mesajını ayrıştırır ve gerekli parametreleri göndererek istenen nesnenin istenen yöntemini çağırır. Çağırılan nesnedeki yöntem çalışır ve sonuçları SOAP sunucusuna gönderir. SOAP sunucusu gelen sonucu SOAP mesajı formatında biçimlendirerek istemciye gönderir. İstemci gelen SOAP mesajının içindeki bilgileri alarak istekde bulunan programa gönderir.

Web Servisi Standartları 1) SOAP (Simple Object Access Protocol): İnternet üzerinde Web servislerini çalıştırmak için kullanılan protokoldür. Bir SOAP uygulaması geliştirmek için istemci ve sunucuya SOAP geliştirme araçları ile birlikte gelen kütüphanelerin yüklenmesi gerekmektedir. Bu kütüphaneler bir XML parser ve SOAP işlemcisi içerir. İstemci SOAP uygulaması bir SOAP istek mesajı oluşturarak, bu isteği SOAP sunucusunda tanımlanmış servis uç noktalarından (end point) birisi tarafından çalıştırılması için gönderir. SOAP sunucusu ilgili servisi çalıştırdıktan sonra SOAP yanıt mesajı hazırlar. Hazırlanan SOAP yanıt mesajı istemciye iletilir. SOAP mesajı HTTP POST metodu veri paketinin içinde gönderilir. Bir SOAP mesajı bir SOAP zarfından (SOAP envelope) oluşur. SOAP zarfı isteğe bağlı bir SOAP başlığı (SOAP header) ve SOAP gövdesinden (SOAP body) oluşur. SOAP gövdesi çağırılacak metot ve metodun içerdiği parametreleri içerir.

Web Servisi Standartları 2 ) WSDL (Web Services Description Language): Bir uygulamanın bir Web servisini kullanması için Web servisinin nasıl çağrılacağının, arayüzünün, hangi protokollerin ve kodlama standartlarının kullanılacağının belirtilmesi gerekir. WSDL Web servisini tanımlayan bir XML belgesidir. Bir anlamda dağıtık programlamada kullanılan IDL'e (Interface Definition Language – Arayüz Tanımlama Dili) benzer. Web servisi tanımı, işlemler, giren ve çıkan mesaj biçimleri, ağ ve port adresleri gibi bilgileri tanımlar. Bir Web servisi tanım belgesi aşağıdaki temel elemanları içerir: Types: Mesajlarda kullanılacak veri tiplerini belirtir. Message: İletişimde kullanılacak mesajları tanımlar. PortType: Web servisinin içerdiği işlemleri (methods) ve ilgili mesajları tanımlar. Binding: İşlem ve mesajlarda kullanılacak veri biçimlerini tanımlar. Port: Binding ve Web adresinden oluşan servis noktasını tanımlar. Web adresi servisin çalıştırılacağı URL'dir. Service: Kullanılan portlar kümesidir.

Web Servisi Standartları 3 ) UDDI (Universal Description Discovery and Integration) : Bir Web servisini kullanmak için kullanıcının, Web servisi sağlayan kurumları ve bu kurumların verdikleri Web servislerinin neler olduğunu bilmesi gerekmektedir. UDDI kısaltmasında geçen Evrensel, Tanım, Buluş ve Bütünleştirme kelimelerinin ifade ettiği gibi UDDI kurumların kendilerini, sağladıkları servisleri yayınlayarak tanımlamalarını ve bu bilgilerin daha sonra diğer kurumlarca taranıp bulunmasını sağlayan bir standarttır. UDDI Kurum Kayıt Servisi (UDDI Business Registry) kurum ve Web servisleri bilgilerini saklayan sunuculardır. Bu sunucular servis sağlayıcılarından gelen bilgilerini kendi veritabanlarına kayıt ederek diğer kurumların erişimine açmaktadır. Şu anda aktif olarak çalışan kurum kayıt sunucuları uddi.microsoft.com ve uddi.ibm.com'dur. UDDI sunucuları kurum ve servis kayıt, güncelleme ve tarama işlemlerini Web servisleri (SOAP mesajları) ile gerçekleştirmektedir.

Eclipse Indigo, Tomcat, Axis2, Jigloo Örnek Web Servisi Uyg. Eclipse Indigo, Tomcat, Axis2, Jigloo

Uygulama Hedefi ! Amaç : Aynı networkte bulunan 2 bilgisayardan birini Server, diğerini Client olarak kullanarak; web servisi yayınlamak. Hiçbir güvenlik engeline takılmadan, Server makinamızda bulunan dataları Client makinamıza çekebilmek ve istenilen Fonksiyonları kullanmak…

Gerekenler… Eclipse Indigo (3.7.1) Apache Axis2 (1.6.1) Apache Tomcat (6.0.33) Jigloo Designer (4.6.4)  ( http://cloudgarden1.com/update-site/ ) Not : İndirmek için tıklayın…

Ve Başlıyoruz… İlk başta IP ayarlarını yapıyoruz. Server IP : 192.168.0.1 /24 Client IP : 192.168.0.2 /24 Ayrıca aynı ağda olduklarından da emin olmak gerekir.

Eclipse-Tomcat Ayarları Eclispe açtıktan sonra kendi dizininde bir workspace (çalışma alanı) oluşturuyoruz. (C:\eclipse-jee-indigo-win32\EclipseCalismalar gibi…) Oluşturulan bu dizinde eclipse kendi ayarlarını, plug-in lerini yüklüyor. Projeler varsayılanda bu dizine oluşturuluyor. Tomcat’i indirdikten sonra onu da eclipse gibi yine C: dizinine içindeki bir klasöre açmakta fayda var. Bağlantı işlemlerinin yapmak için: **Eclispe>Window>Show Views>Servers Sol tarafta bir alan açılacaktır. Sağ tılayıp Add>New Server tıklayıp, Tomcat sürümünü seçiyoruz ve C: dizinine açmış olduğumuz Tomcat klasörünün yolunu belirtiyoruz. Ve Finish diyoruz.

Axis2 Ayarları Neden Axis2 Kullandık ? Axis 2, web servisler için oluşturulmuş çekirdek makinadır(core engine). Bize SOAP kullanılarak dizayn ve yazma sağlayan apache tarafından geliştirilmiş proje diyebiliriz. Java ve C programlama dillerini desteklemektedir.  Axis 2 bazı özellikleri şunlardır: Yeni XML işleme(process) çekirdeği modeli, AXIOM (Axis Object Model) A blocking ve non-blocking istemci API (application programming interface) WS-Addressing desteği HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), ve TCP (Transmission Control Protocol) iletişimi için destek

Axis2 Ayarları Binary dosyasını istediğimiz herhangi bir dizine açtıktan sonra Eclipse IDE’sini açıyoruz. Menüden sırasıylaWindow -> Preferences seçeneğini tıklıyoruz. Açılan menüden Web Services’dan Axis2 Prefences seçeneğini seçiyoruz. Karşımıza aşağıdaki resimdeki gibi bir ekran gelecektir. Axis2’nin kurulu olduğu dizini seçiyoruz. 

WS-Server Ayarları Öncelikle bir web application oluşturuyoruz. File>New>Dynamic Web Application kısmından Project Name olarak “ws-server” ismini verdik. Runtime Server olarak Tomcat 6.0 ‘ın seçilmiş olması gerekiyor. Ardından Next ve Finish ile projeyi oluşturuyoruz. Web Servis olarak yayınlayacağımız Class’mızı oluşturmamız gerekiyor. Biz uygulama olarak basir bir hesap makinası uygulaması yazacağız. HesapIslemleri.java isminde bir class oluşturup, içine metotlarımı yazıyorum.

WS-Server Ayarları Eclipse IDE nin sol tarafında bulunan Project Explorer kısmında projemize sağ tıklayıp New> Package tıklayıp ismine ce.kocaeli.edu.tr diyorum. Ardından Package’a sağ tıklayı New>Class tıkladıktan sonra ismine HesapIslemleri yazarak Finish tıklıyorum.

WS-Server Ayarları

WS-Server Ayarları Sıra geldi web Service oluşturmaya : Eclipse IDE nin sol tarafında bulunan Project Explorer kısmında projemize sağ tıklayıp new>Others>Web Services>Web Service tıklıyoruz. Açılan pencerede Web Service Type kısmında bottom up Java bean web service, Service Implementation kısmında da ce.kocaeli.edu.tr seçili olması gerekiyor. Alt kısımda bulanan Hyperlinkler’den Server Runtime olarak Tomcat 6.0 seçili olmalı. Web Service Runtime olarak Apache Axis2 seçili olmalı. Değiştirmek isterseniz hyperlinke sağ tılayarak açılan pencereden değiştirebilirsiniz. Service Project olarak da tabiki oluşturduğumuz ws-server projemiz seçili olması gerekiyor.Ardından Finish’ e tıklayarak web service oluşturma işlemlerini tamamlıyoruz.

WS-Server Ayarları

WS-Server Ayarları Projeye sağ tıklayıp Run as>Run on Server tıkladığımızda açılan sayfada services>HesapIslemleri ni açıyoruz. Açılan sayfa web servisimizin wsdl’i oluyor. Benm bilgisayarımda Tomcat 9090 portunu kullandığı için, localhost’a bu porttan bağlanıyor. Bu wsdl Client tarafında oluşturacağımız projemizde kullanılacaktır. http://localhost:9090/ws-server/services/HesapIslemleri?wsdl

WS-Client Ayarları Server Tarafındaki ayarlamalarımız bittikten sonra şimdi client tarafındayız. İstersek aynı ağda birbirini gören farklı bir bilgisayarda da çalışabiliriz. Yada aynı bilgisayar da localhost dan bağlanabiliriz. File>new>Dynamic Web Application diyip, proje ismine “ws-client” dedikten sonra finish’e tıklayoruz. Oluşan projemiz bir web application gibi dursa da, biz ilerki ayarlamalarımızla bunu bir desktop application olarak kullanacağız.

WS-Client Ayarları Projemize sqğ tıklayıp New>Other>Web Services>Web Service Client Tıklıyoruz. ! Önemlİ Service Definition Kısmına, Server tarafında belirttiğimiz wsdl linkini yazmamız gerekiyor. Daha önceden de dediğim gibi eğer localde çalışıyorsak http://localhost:9090/ws- server/services/HesapIslemleri?wsdl linkteki localhost aynen kalır. Ancak Client bilgisayarımız uzakta olacaksa, linkteki localhost yerine daima hizmet verecek olan server’ın IP adresini yazarız. Başlangıçta belirttiğimiz gibi, Server olarak kullanacağımız bilgisayarın IP sini 192.168.1.1/24 olarak belirlemiştik. Yeni linkimiz http://192.168.1.1:9090/ws-server/services/HesapIslemleri?wsdl olmuş oldu. Server tarafında yaptığımız gibi yine Web Service Runtime olarak Axis2 yi, Client Project olarak ws-client’ı seçiyoruz. Ve Finish tıklıyoruz.

WS-Client Ayarları

WS-Client Ayarları İşin içine birazcık görsellik katmak için, form oluşturacağız. Bunun için eclispe bir plug-in ekliyeceğiz. Help>Install New Software kısmından Add Url kısmına, daha önce gerekenler kısmında vermiş olduğumuz, Jigloo Designer’ın linkini yazıp, gerekli yüklemeyi yapıyoruz. Tasarım kısmına girmeden, kısaca bahsedip geçmek istiyorum. Yüklemeyi başarıyla yaptıktan sonra: File>New>Other>Gui Forms>Swing> Jframe diyerek form oluşturulabilir.

WS-Client Ayarları

WS-Client Ayarları

WS-Client Ayarları Her Jbutton, JtextBox ve JRadioButton için temel eventleri yazdıktan sonra asıl bizi ilgilendiren kısmı Web Server’a bağlanma kısmı : double s1= Double.valueOf(txtSay1.getText()); double s2= Double.valueOf(txtSay2.getText()); HesapIslemleriStub stub = new HesapIslemleriStub(); if (islem.equals("1"))// Toplama { HesapIslemleriStub.Topla topla = new HesapIslemleriStub.Topla(); topla.setSay1(s1); topla.setSay2(s2); HesapIslemleriStub.ToplaResponse response = stub.topla(topla); lblSonuc.setText(String.valueOf(response.get_return ())); }

WS-Client Ayarları Kod kısmını açıklayacak olursak : Eğer Öncesinde İşlem Butonuna basmadan önce hangi radio butona tıklanıldı ise, islem string ifademiz bir değer alır. (“1” Toplama, “2” cikarma… gibi) Örnek kodda Eğer toplama radio butonu tıklanıldı ise, islem string 1 olacağından, örnekteki parça run olacaktır. HesapIslemleriStub nesnesi ile ws’ye bağlanıp, gerekli metodumuzun nesnesini olurşturuyoruz. Ve Double’a çevirdiğimiz Textbox değerlerini metoda gönderiyoruz. Projeyi Run etmek için, Anasayfa.java’ya Sağ tıklayıp>Run as>Java Application diyoruz. İşte bu noktada Projeyi ilk başta bir dynamic web app olarak oluşturmamıza rağmen, bir desktop app gibi kullanıyoruz.

WS-Client Ayarları

WS-Client Ayarları Client projesini uzak bilgisayarda kullanmak için, (tabi eğer wsdl’i IP olarak verdiyseniz) ws-client’ı executable jar file ‘a çevirmek gerekecektir.Bunun için ws-client’a sağ tıklayıp, Export>Export>Executable Jar File seçip, Launch Conf kısmından ise Anasayfa.java yı seçmeniz gerekir. Çünkü static Main metoduna o sahiptir. Ve export edilecek yeri seçiyoruz ardından finish diyip bitiyoruz. Bu biraz zaman alabilir. Sorduğu tüm sorularda “Ok” butonunu tıklayın.

Dinlediğiniz için teşekkür ederim Recep Bostancı