1 / 0

Java’da Eclipse ortaminda Axis2 ile Web Servis Uygulamasi

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.

tracen
Download Presentation

Java’da Eclipse ortaminda Axis2 ile Web Servis Uygulamasi

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java’da Eclipse ortaminda Axis2 ileWeb ServisUygulamasi

    Kocaeli Üni. Bilgisayar Mühendisliği Dönem Projesi Danışman : Yrd. Doç. Dr. Ahmet Sayar
  2. 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.
  3. 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 (RemoteProcedureCall)denilmektedir. HTTP üzerinden yapılan bu çağrımlara karşı SOAP (SimpleObect 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.
  4. 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. 
  5. Web Servisi Modeli
  6. 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.
  7. 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.
  8. Web Servisi Standartları 1) SOAP (SimpleObject 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 (endpoint) 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.
  9. Web Servisi Standartları 2 ) WSDL (Web ServicesDescriptionLanguage): 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 (InterfaceDefinitionLanguage – 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.
  10. Web Servisi Standartları 3 ) UDDI (UniversalDescriptionDiscoveryandIntegration) : 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 BusinessRegistry) 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.
  11. Örnek Web Servisi Uyg.

    EclipseIndigo, Tomcat, Axis2, Jigloo
  12. 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ı Clientmakinamıza çekebilmek ve istenilen Fonksiyonları kullanmak…
  13. Gerekenler… EclipseIndigo (3.7.1) Apache Axis2 (1.6.1) ApacheTomcat (6.0.33) JiglooDesigner (4.6.4) ( http://cloudgarden1.com/update-site/ ) Not : İndirmek için tıklayın…
  14. 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.
  15. 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ıpAdd>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.
  16. 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 (AxisObject Model) A blocking ve non-blocking istemci API (applicationprogramminginterface) WS-Addressing desteği HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), ve TCP (TransmissionControlProtocol) iletişimi için destek
  17. Axis2 Ayarları Binary dosyasını istediğimiz herhangi bir dizine açtıktan sonra EclipseIDE’sini açıyoruz. Menüdensı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. 
  18. WS-Server Ayarları Öncelikle bir web application oluşturuyoruz. File>New>Dynamic Web Applicationkı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.
  19. WS-Server Ayarları Eclipse IDE nin sol tarafında bulunan Project Explorer kısmında projemize sağ tıklayıp New> Packagetıklayıp ismine ce.kocaeli.edu.tr diyorum. Ardından Package’asağ tıklayıNew>Class tıkladıktan sonra ismine HesapIslemleriyazarakFinish tıklıyorum.
  20. WS-Server Ayarları
  21. 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 bottomup Java bean web service, Service Implementationkısmında da ce.kocaeli.edu.tr seçili olması gerekiyor. Alt kısımda bulanan Hyperlinkler’denServer Runtimeolarak Tomcat 6.0seçili olmalı. Web Service Runtimeolarak 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.
  22. WS-Server Ayarları
  23. WS-Server Ayarları Projeye sağ tıklayıp Run as>Run on Server tıkladığımızda açılan sayfada services>HesapIslemlerini 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 wsdlClient tarafında oluşturacağımız projemizde kullanılacaktır. http://localhost:9090/ws-server/services/HesapIslemleri?wsdl
  24. 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 Applicationdiyip, proje ismine “ws-client” dedikten sonra finish’etıklayoruz. Oluşan projemiz bir web application gibi dursa da, biz ilerki ayarlamalarımızla bunu bir desktopapplication olarak kullanacağız.
  25. 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 localhostyerine 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 Runtimeolarak Axis2 yi, Client Project olarakws-client’ıseçiyoruz. Ve Finish tıklıyoruz.
  26. WS-Client Ayarları
  27. 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 AddUrl kısmına, daha önce gerekenler kısmında vermiş olduğumuz, JiglooDesigner’ı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>GuiForms>Swing> Jframe diyerek form oluşturulabilir.
  28. WS-Client Ayarları
  29. WS-Client Ayarları
  30. 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()); HesapIslemleriStubstub = newHesapIslemleriStub(); if (islem.equals("1"))// Toplama { HesapIslemleriStub.Topla topla = newHesapIslemleriStub.Topla(); topla.setSay1(s1); topla.setSay2(s2); HesapIslemleriStub.ToplaResponseresponse = stub.topla(topla); lblSonuc.setText(String.valueOf(response.get_return ())); }
  31. WS-Client Ayarları Kod kısmını açıklayacak olursak : Eğer Öncesinde İşlem Butonuna basmadan önce hangi radio butona tıklanıldı ise, islemstring ifademiz bir değer alır. (“1” Toplama, “2” cikarma… gibi) Örnek kodda Eğer toplama radio butonu tıklanıldı ise, islemstring 1 olacağından, örnekteki parça run olacaktır. HesapIslemleriStubnesnesi 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 Applicationdiyoruz. İşte bu noktada Projeyi ilk başta bir dynamic web app olarak oluşturmamıza rağmen, bir desktopapp gibi kullanıyoruz.
  32. WS-Client Ayarları
  33. WS-Client Ayarları Client projesini uzak bilgisayarda kullanmak için, (tabi eğer wsdl’i IP olarak verdiyseniz) ws-client’ıexecutablejar file ‘a çevirmek gerekecektir.Bunun için ws-client’a sağ tıklayıp, Export>Export>ExecutableJar File seçip, LaunchConf kısmından ise Anasayfa.javayı seçmeniz gerekir. Çünkü staticMain 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.
  34. Dinlediğiniz için teşekkür ederim

    Recep Bostancı
More Related