BEN GEÇERKEN… [A Blog by İBRAHİM DEMİR ]
İBRAHİM DEMİR’ İN RESMİ WEB SİTESİ
İBRAHİM DEMİR’ İN RESMİ WEB SİTESİ
Jul 1st
Merhabalar;
Axis2 web uygulaması ile birlikte sunucu ve istemci arasındaki SOAP mesajlarını izlemeniz ve neler olup bittiğini görebilmeniz için SOAPMonitor uygulaması daha doğrusu modülü geliyor.
Elbetteki SOAP mesajlarını izlemenin tek yolu bu araç değil. İnternette bu iş için pek çok uygulama bulabilirsiniz hatta Ecplispe J2EE versiyonuyla gelen TCP/IP Monitor ‘den de faydalanabilirsiniz. Fakat söz konusu uygulama sunucuları olunca stand-alone bir java uygulaması çalıştırmak yerine web arayüzü üzerinden herkesin erişebileceği bir uygulama haliyle tercih sabebi oluyor.
Axis2 de beraberinde SOAPMonitor’un applet versiyonuyla geliyor fakat bu applet uygulmasını çalıştırmak için ufak bir değişiklik yapmanız gerekli. Her ne kadar bu adreste yazılanları harfiyen yapsam da bir süre aşağıdaki hata mesajıyla boğuştum.
java.lang.ClassNotFoundException: org.apache.axis2.soapmonitor.applet.SOAPMonitorApplet.class
Uygulama sunucumun classpathinde ilgili sınıfın yüklendiğini kontrol etmeme rağmen applet uygulamasını bir türlü çalıştıramamıştım. Okuduğum yazılar sonucunda appletin çalışması için gerekli sınıfları axis2.war uygulamasının içinde o dizin senin bu dizin benim diyerek dolaştırdım ama bir türlü sonuç alamadım. Tabi en basit yer aklıma gelmemişti…
Sınıfları war uygulamasının ana dizinine ekleyince hiçbir sorun kalmadı. Siz de ekteki zip doyasını axis2.war dizinine açtıktan sonra SoapMonitor hizmetinizde olacaktır.
axis2.war\org\apache\axis2\soapmonitor\applet\*.class şeklinde bir hiyerarşiyle açmış olmanız lazım.
Daha sonra da uygulama sunucunuzu ayağa kaldırıp aşağıdaki adresten SoapMonitor uygulamasına erişebilirsiniz.
http://localhost:8080/axis2/SOAPMonitor (8080: uygulama sunucusunun çalıştığı port)
SoapMonitor kurulumu işte bu kadar. Ne şekilde kullanılacağı ve hangi durumlarda hayat kurtarıcı olacağını da ayrı bir yazı ile anlatmayı planlıyorum.
Sağlıcakla kalın.
Jun 18th
Merhaba;
Axis2 ‘nin 1.4.1 versiyonuna ait war uygulamasını JBoss ‘a deploy ederken aşağıdaki gibi bir hata mesajı alabilirsiniz.

[Utils] Exception extracting jars into temporary directory : java.io.FileNotFoundException: —–\JBoss\server\default\.\deploy\axis2.war\WEB-INF (Access is denied) : switching to alternate class loading mechanism[JAXWSDeployer] Deploying Exception Occured with java.io.FileNotFoundException:—\JBoss\server\default\.\deploy\axis2.war\WEB-INF (Access is denied)java.lang.RuntimeException: java.io.FileNotFoundException: —\JBoss\server\default\.\deploy\axis2.war\WEB-INF (Access is denied)at org.apache.axis2.deployment.util.Utils.findLibJars(Utils.java:870)at org.apache.axis2.deployment.util.Utils.createClassLoader(Utils.java:918)
at org.apache.axis2.jaxws.framework.JAXWSDeployer.deployServicesInWAR
Bu hata yüzünden bir müddet 1.3 versiyonu ile yolumuza devam etmek durumunda kalmıştık fakat 1.4.1 ile gelen yeni özelliklere ihtiyaç duyunca sorunun üzerien gitmek kaçınılmaz oldu.
Sorunu çözmek için:
axis2.war\WEB-INF\conf dizinindeki axis2.xml konfigürasyon dosyasında yer alan aşağıdaki satırı silebilir veya comment- out edebilirsiniz.
<deployer extension=”.jar” directory=”servicejars” class=”org.apache.axis2.jaxws.framework.JAXWSDeployer”/>
İyi çalışmalar.
Jun 7th
Yeniden Merhaba;
Melih Sakarya 26 Haziran 2009 tarihinden başlayarak toplam 72 saat sürecek keyifli bir
J2EE eğitimi veriyor. Eğitimin içeriğinde JSF, EJB, JPA,SEAM gibi J2EE uygulamalarında önemli bir yere sahip API ‘ler var.
Eğitim ile ilgili detaylara ve başlıklara http://www.mergecons.com/JSF-EJB-JPA-Seam.pdf adresinden ulaşabilirsiniz.
Hazır konu eğitime gelmişken bugün üye olduğum mail gruplarından birine gelen eleştireye de burada değinmek istiyorum. Eleştiriyi yapan arkadaş bu tip eğitimlerin bu kadar zengin bir içeriği bu kadarlık bir zaman diliminde öğretemeyeceğini , bahsi geçen API ‘lerin dokümantasyonlarının kaçar sayfa olduğunu örnek göstererek söylemiş.
Eğer olaya uzun yıllar bu teknolojileri kullanarak deneyim kazanan birinin tüm deneyimini bu kadarlık bir zamanda aktarması olarak bakarsak… Evet bu mümkün değil. Yani bu tip beklentiyle eğitime katılınmamalı. Burada asıl amaç yoğun iş temposu nedeniyle yanımızdan hızla geçen teknoloji trenine bir yerden tutunmak ve bu teknolojiler hakkında bilgi sahibi olabilmek. En azından hangi teknolojiyi ne tip bir uygulamada kullanacağınızı bilirseniz zamanınızı karar vermekle değil, kullanacağınız teknolojinin detaylarını öğrenmekle harcarsınız. O nedenle bu tip eğitimlerin özellikle de çalışan kesim için çok faydalı olduğunu düşünüyorum.
Zaten her eğitmen eğitimin başında başarının katılımcıların eğitimden sonra yaptıklarına bağlı olduğunu belirtir. Yani katılımcılar öğrendiklerini bir şekilde uygulama fırsatı bulup kullanırlarsa eğitimin faydasını işte o zaman görmüş olurlar. Aksi halde öğrenilen herşey birer anı olarak kalacaktır…
Sağlıcakla kalın.
Sep 26th
Geçtiğimiz ay Microsoft SQL Server için Type 4 özelliklerini sağlayan yeni JDBC sürücüsünün 1.2 sürümünü yayınladı. Yayınlanan bu sürücü hem SQL Server 2005 hem de 2000 sürümüyle uyumlu olarak çalışabilen bu yeni sürücü JDBC 3.0 spesifikasyonunyla tamamen uyumlu olarak hazırlanmış.
Sürücünün Type 4 özelliklerini sağlaması performans konusunda ciddi avantajlar getirecektir. Pure Java Driver yada Thin Driver denilen bu tipteki sürücüler istemcilerden (yazdığımız Java uygulamalarından) gelen JDBC çağrılarını DBMS ‘in anlayacağı şekilde network çağrılarına çevirerek veritabanına doğrudan erişim sağlar. Arada database middleware olmadığı için de diğer sürücülere göre daha hızlı çalışır. (Ne kadar az katman o kadar çok performans) Özellikle intranet uygulamalarında bu tip bir sürücüyü tercih etmek avantajlı olacaktır diye düşünüyorum.(Tabi ne kadar az katman o kadar az kontrol ?? Ondan ötürü kullanım öncesi iyi bir analiz şart.)
Bu sürücü ile uygulama geliştirmek için JDK 1.4 veya daha ileri bir sürümünün makinanızda kurulu olması gerekiyor. Yapılan açıklamalara göre BEA WebLogic, IBM WebSphere, JBoss, and SunBu gibi uygulama sunucuları ile sürücünün sorunsuzca çalıştığı görülmüş. Ama her Microsoft ürününe olduğu gibi bu sürücüye de şüpheyle yaklaşıp kendim de denedim ve ben de SQL Server 2005 Enterprise Edition üzerinde önceden yazdığım ufak uygulamayı sorunsuzca çalıştırdım . Fakat bu herşeyin yolunda olduğu anlamına gelmiyor elbette. Bu adresteki gibi stored proc. içerisinde geçici tablo kullandıklarında sorun yaşayanlar da var. (Final sürümüne ulaşmadan kritik uygulamalarda Mcirosoft ürünlerini kullanmayı Microsoft çalışanları da tavsiye etmiyorlar.)
Bu ücretsiz sürücü ile sağlanan Adaptive Buffering ve SSL Encription gibi özelliklerden uygulamalarınızda faydalanmak isterseniz mutlaka bir test sürüşü yapmalısınız. Adaptive Buffering özelliği sayesinde büyük boyutlu verilerle yaşadığınız performans darboğazlarını aşabilme şansınız var.
Aslında JDBC Type 4 sürücülere çoğumuz büyük umutlar bağlamıştık ama nedense DBMS üreticileri bu konuda beklenen çevikliği gösteremediler. Fakat Microsoft herkesten hızlı davranıp Type 4 sürücüsünü herkesten önce çıkarmıştı. Hatta JDBC-TR mail grubunda bunun önemli bir şirket stratejisi olduğunu daha doğru güzel bir Microsoft Uyanıklığı örneği olduğunu konuşmuştuk.
Yazının sonuna Type 4 sürücülerle ilgili iki tane kısa ve öz yazıyı ekledim. Özellikle de devx.com ‘daki yazıya göz atmanız sürücü seçimi sırasında doğru kararı almanızda faydalı olacaktır.
Şimdilik benden bu kadar. Yaşadığım bir dolu aksilikten sonra blogumu güncellemeye kaldığım yerden devam ediyorum. İlerleyen zamanlarda özellikle de üzerinde çalıştığım Test Driven Development ve Unit Testing konularında keyifli paylaşımlarda bulunmaya çalışacağım.
Types of JDBC technology drivers
JDBC Drivers: How Do You Know What You Need?
Microsoft SQL Server 2005 JDBC Driver 1.2 Community Technology Preview August 2007
Aug 19th
Daha önce blogumda IBM ve Microsoft ‘taki yaz okulu ve staj çalışmalarından bahsetmiş ve bunların önemini vurgulamıştım. Bu sırada çok önemli bir çalışmayı atladığımı fark ettim ve geç de olsa yolun başındaki arkadaşlara yol göstermesi açısından bu konuyu bloguma taşımaya karar verdim.
Turkcell ‘de son senelerde yoğun bir emek harcanarak R&D Software Development ekibine stajyer arkadaşlar alınıp , eğitilerek kariyerlerinde önemli bir adım atmaları sağlanıyor.
Eğer bu süreci yeterince iyi bir şekilde değerlendirirseniz kariyerinize Turkcell ‘de devam etme şansınız da var. Şöyleki staj döneminden sonra part-time çalışma şansına ardından da okul bitiminde full-time çalışma şansına sahip olabilirsiniz.
Her yılın Temmuz ayında başlayan ve Eylül ayının sonunda biten 3 aylık bir süreci kapsıyor bu staj dönemi. Burada 3 ay staj yapmak zorunlu. Yani yoğun ve ciddi bir staj dönemine hazırlıklı olun. Elbette bu dönem sonunda da kolay kolay hiçbir yerde elde edemeyeceğiniz bir bilgi birikimine sahip oluyorsunuz.
Staj döneminiz Turkcell ‘in kullandığı teknolojilere bağlı olarak Oracle ve Java ağırlı bir çalışma dönemini kapsıyor. Bu konularda üç aylık bir dönemi kapsayan teori ve uygulamayı birarada bulabileceğiniz bir staj dönemi geçiriyorsunuz. Burada Turkcell ve Oracle kelimelerini yanyana görmek sizlere birisini çağrıştırdı mı?
Evet bildiniz Hasan Tonguç YILMAZ. Eğer bu staj sürecine dahil olursanız Hasan Tonguç YILMAZ ile birlikte çalışma ve kendisinin deneyimlerinden faydalanma şansına da sahip olacaksınız. Kendisini tanıyanlar ve blogunu takip edenler Tonguç Abi ‘nin engin Oracle bilgisini sadece kendi işi için kullanmayıp etrafındaki kişilere çeşitli yollarla (forumlar,e-mail grupları , blog yazıları vb. ) paylaştığını bilirler. (O nedenle benim gözümde pek çok Oracle uzmanından daha değerlidir.)
Burada en önemli nokta paylaşımın ve iletişimin staj döneminden sonra da devam etmesi. Açıkcası benim öğrenciyken en çok imrendiğim ve başımı taşlara vurmama sebep olan nokta bu olmuştu. (Tonuguç Abi ‘nin Oracle Cost-Based Optimization çalıştayında stajyerlerine ne kadar çok değer verdiğini ve ne kadar çok şey kattığını görünce kıskanmadım desem yalan olur.)
Yazının başında da belirttiğim gibi şu anda staj süreci sürüyor. Bir sonraki alımlar seneye yapılacak ama şimdiden hazırlık yapmakta fayda var. Bu blog yazısına özel bir kaç da tüyo vereyim. Eğer Turkcell ‘deki bu staj sürecine kabul edilmek istiyorsanız önünüzdeki bu eğitim öğretim yılını çok iyi değerlendirin ve SQL, PL/SQL, APEX, JAVA konularına ağrılık verin. Bu noktada yapabileceğiniz en faydalı şey ara projenizi veya diğer derslerden aldığınız projeleri bu teknolojileri kullanarak gerçekleştirmek olacaktır.
Bu teknolojilerle ilgili olarak Oracle ‘ın sitesinde fazlasıyla kaynak mevcut. Ama ben yine de APEX (Application Express) ile yeni tanışacak olanların bu yazıya ve Oracle ile yeni tanışacak olanların da bu yazıya bakmalarını önereceğim. Turkcell ‘deki bu staj süreci ile ilgili olarak Hasan Tonguç Yılmaz ‘ın blogunda yazdığı bu yazıya bakmak da faydalı olacaktır. Yine aynı şekilde staj süreci hakkında bilgi alabileceğiniz diğer bir kaynak da şu anda hala stajyer olarak Turkcell ‘de bulunan Bilal Hatipoğlu ‘nun Blogu. Bilal gerçekten de çok yalın ve anlaşılır bir dille bu süreci ve öğrendiklerini bloguna taşımış. (Bu güzel paylaşımından ötürü Bilal ‘i tebrik ediyorum.)
Umarım bu blog yazısı öğrenci arkadaşlar için motive edici ve yol gösterici olur. Bu yıl içerisinde gereken çabayı gösterip yazıda bahsi geçen teknolojilere odaklanarak seneye siz de Turkcell ‘de stajyer olmaya ve kariyerinize yön vermeye ne dersiniz?
Jun 27th
Çalışma hayatına atılmam ile birlikte kendim için yaptığım işlere ayırdığım vakit de daraldı. Kendimi geliştirmek adına yeri geldiğinde günde 25-30 arasında blog yazısı yada makale okurdum. Fakat çalışma hayatı bunlara yavaş yavaş engel olmaya başladı. Ben de çözüm olarak okumayı planladığım makalelerin çıktısını alıp serviste okumaya karar verdim. İş yerim Anadolu yakasında evim ise Avrupa yakasında olduğundan yolda gün içerisinde yaklaşık 3 saatimi geçiriyorum. Bu zaman dilimi de birşeyler okumak için ideal. (Malesef Musta Abi gibi yolda video izleme lüksüne de sahip değilim
)
Akşam eve dönerken okuduğum yazılardan bir tanesi de SUN Microsystems tarafından yapılan bir test ile ilgili. Yazının başlığı aynen şöyle: Web Services Performance Comparing Java 2 Enterprise Edition and .NET Framework.
Bu blog yazıma verdiğim başlık da testin özet bölümündeki ilk cümle.(Olayı çok güzel özetlemişler
) Biraz fazla iddialı bir söz de olsa test sonuçlarını aynen özetleyen bir cümle.
Kendilerince tarafsız bir test gerçekleştirmişler. Test Windows paltformunda işletim sistemine ait gereksiz servisler etkisiz hale getirilerek yapılmış. Test için de kendi yazdıkları WSTest aracını kullanmışlar. Bu araç çok basitçe tasarlanmış bir web servis test aracı. Tek yaptığı web servisinde tanımlı metodlara parametre göndererek çağrıda bulunmak ve sonucu almak. Metodlarda da hiçbir işlem yapılmıyor yani alınan değerler doğrudan geriye döndürülüyor bu sayede platformların diğer özelliklerinin Web Servis kıyaslamasındaki etkisi en aza indirilmiş.
Test ile ilgili daha fazla detay vermeye gerek yok. Test sonucuna göre J2EE paltformu .NET platfomundan 2 kat hatta yeri geldiğinde 3 kata kadar dah hızlı. Burada en önemli nokta .NET Framework 1.1 ve IIS 6.0′a karşılık Java Web Service Developer Pack 1.3+Tomcat 5.0 kullanılmış olması. Yani .NET Framework 2.0 ile web servisi konusunda ne gibi gelişmeler oldu ve perfomans konusuna bu nasıl yansır bu test ile bu konuda bilgi sahibi olma şansımız yok. (Ama Microsoft ‘un yaptığı testte bu konu ile ilgili bilgiler mevcut. İlgili testi yazının sonunda bulabilirsiniz.)
Aslında perfomans konusunda farkı yaratan J2EE ile kullanılan JAX-RPC implementasyonu. Aman canım ne olacak ne var bir XML ‘i işlemekte deyip geçmemek gerektiğini de bir kere daha görmüş olduk. “Parsing” olayı söz konusu oldu mu fazladan koyulacak bir kontrol ifadesi bile ciddi performans kayıplarına neden olabiliyor. Hele bir de parser RECURSIVE bir algortimayla çalışıyorsa vay haline sistem kaynaklarınızın.
Bu testi sizlerle paylaşmanın asıl nedeni ise bir teknoloji ile çalışmaya karar verdiğinizde size getireceklerinin yanında sizden götüreceklerini de düşünmenizi sağlamak. Ben de bu testin elbette biraz da olsa taraflı olduğunun farkındayım. ( Aynı durum yazının sonunda bulacağınız ve Microsoft tarafından gerçekleştirilen test için de geçerli.) Asıl mevzu ise popüler teknolojilerin (WEB SERVİSİ , XML , AJAX vs.) bilinçsiz kullanıldıklarında bizlere faydandan çok zarar getireceğidir.
Fırsat buldukça servis yolculuklarım sırasında okuduğum güzel makaleleri blogumda paylaşamaya devam edeceğim. Şimdilik benden bu kadar. Sağlıcakla kalın…
KONUYLA İLGİLİ FAYDALI LİNKLER:
Sun tarafından gerçekleştirilen teste ait yazı
Microsoft tarafından gerçekleştirilen web servisi performans kıyaslaması
Mustafa TAN tarafından yazılmış konuya ilişkin çok güzel bir yazı
Web service performance checklist
Recent Comments