Papatyam Forum - Tekil Mesaj gösterimi - J2EE ile .NET karşılaştırması ve WEB Servislerin Oluşturulması
Tekil Mesaj gösterimi
Alt 20 January 2009, 14:41   Mesaj No:2

CoNQueRoR_61

Papatyam Usta Üyesi
Avatar Otomotik
Durumu:CoNQueRoR_61 isimli Üye şimdilik offline konumundadır
Papatyam No : 1397
Üyelik T.: 20 January 2009
Arkadaşları:0
Cinsiyet:
Memleket:istanbul
Yaş:35
Mesaj: 131
Konular:
Beğenildi:
Beğendi:
Takdirleri:10
Takdir Et:
Konu Bu  Üyemize Aittir!
Standart Ynt: J2EE ile .NET karşılaştırması ve WEB Servislerin Oluşturulması

J2EE , .NET içerisinde bulunmayan ve pazarlamayı hızlandıran bazı özellikler sunmaktadır.Örneğin durum yönetim servisleri yazılım geliştiricilerin daha az kod yazmalarını sağlamakta ve durum yönetimi ile uğraşmamalarını saülamakta böylece daha hızlı uygulama geliştirme sağlanmaktadır.Durum yönetim servisleri durumlarını koruyan bileşenler olulturmanızı sağlamaktadır.Veritabanı servisleri(Entity Beans) programcıların veri erişim mantığı kullanmadan kolay ve veritabanından bağımsız uygulamalar oluşturmalarını ve rahatlıkla bakımını sördörmelerine olanak tanır.Programa dayalı transferler daha yüksek hareket kontolünü sağlamakta ve özeleştirilmiş etiketler aracılığı ile çok güçlü yapılar kurulmakta ve geliştiriciler ve web dizayncılar rahatlıkla bir iş bölümü kurabilmektedirler.

Hızlı uygulama geliştirmeyi sağlayan bu özelliklere ek olarak , J2EE destekleyen çok üretici olması sayesinde J2EE bir takım avantajlara daha sahiptir.Bazı üreticiler pazarlamayı hızlandırmak için J2EE ile bazı ek özellikler sunmaktadırlar.Bunlara iş süreci yönetimleri,E-Ticaret bileşenleri,XML tabanlı entegrasyon ve gelişmiş B2B işbirliği örnek gösterilebilir.Burada bir uyarı yapılmalıdır.Bu özelliklerin hepsini optimize etmek isteyen müşteriler taşınabilirliği bir yerde gözden çıkaracaklardır.Tüm bu sayılan özellikler ile J2EE her yönden .NET alternatifi için son çözümde daha fazla taşınabilirlik sunmaktadır.

Microsoft .NET ‘de de J2EE içerisinde bulunmayan geniş yelpazede pazarlama özellikleri bulunmaktadır.Bunun en önemlisi , ASP.NET istemci cihazından bağımsızdır ve kullanıcı arayüzlerinin kodun tekrar yazılmasına ihtiyaç duyulmadan alternative kullanıcı arayüzlerine dönüştürülmesini sağlar.Microsoft ayrıca Sıralanmış Bileşenleri sunarak J2EE MessageDriven Beans den daha güçlü bir yapı sunmaktadır.Microsoft sunucu taraflı programlamayı geleneksel enterprise uygulamalarda bulunan özelliklere desteği çekerek basitleştirmiştir(durumlu sunucular ve basit veri transferleri gibi).Eğer programcılar bu kutunun dışına çıkmak isterlerse yazdıkları kodlar .NET framework’u dışında yer alacak ve avantajlarını kullanamayacaklardır.Microsoft ayrıca sadece bazı J2EE implementasyonlarında bulunan iş süreç yönetimi ve E-Ticaret yeteneklerini sunmaktadır.

Sonuç olarak,J2EE ve .NET tarafından sunulan hızlı uygulama geliştirme yeteneği eşit değildir.Fakat ikisi birbiri ile karşılaştırılabilir durumdadır

Tek Üretici Firma Çözümü
Web servisleri oluşturulurken genellikle tek üretici seçeneği seçilmelidir.Genellikle tek üretici genellikle daha çok güvenilir,çalışılabilir ve çoklu üretici çözümünden daha az hataya yatkındır.

J2EE’nin güçlerinden birisi pazarda birçok araç,ürün ve uygulamaları kapsamasıdır ; bu herhangi bir üreticinin sunabileceği fonksiyonların tümünden kat kat üstündür.Ancak bu güç aynı zamanda bir zayıflık haline de dönüşebilmektedir.J2EE araçları genellikle taşınabilirliğin doiasındaki sorunlardan ötürü birbirleri arasında çalışabilir durumda değildirler.Bu araçların içerikleri ile oynanmadan araçları birbirleri ile bütünleşik olarak kullanmanızda size bazı kısıtlamalar oluşturur.Düşük seviyeli J2EE implementasyonları ile tam bir çözüm için bir karışım yapmak durumundasınız.IBM,Oracle,Bea ve iPlanet gibi büyük üreticiler kendi bütün web servis çözümlerini sunmaktadırlar.

.NET tek bir üreticiden(Microsoft) tam bir çözüm sunmaktadırBu çözüm J2EE’nin sunduğu çözüme karlı bazı uç nokta eksiklikleri içermektedir fakat genel olarak Microsoft’un sunduğu web servis çözümü büyük bir J2EE üreticisinin sunduğu çözüme denktir.

Varolan Sistemlerin Desteklenmesi
Birçok büyük şirket hazlihazırda zaten yazılmış olan değişik programlama dillerinde koda sahiptirler ve birçok sistemleri bulunmaktadır.(CICS/COBOL,C++,SAP R/3,Siebel gibi).En önemli olan nokta şirketlere daha önceki yatırımlarını koruyacakalrı ve tekrar kullanabilecekleri verimli ve hızlı bir yol sunmaktır.Herşeyden önce şirketler varolan sistemlerini değiştirmek için gerekli para ve zamana sahip değildirler.Bir web servis oluşturulurken bu entegrasyon sorunu en zor olandır.

J2EE ile entegrasyonun sağlanması için birçok yol bulunmaktadır.

Varolan mesajlaşma sistemlerinin implementasyonu için Java Mesajlaşma Servisi(JMS)
Herhangi bir sisteme entegrasyon için web servisleri
Diğer makinelerde bulunan ve başka bir programlama dili ile yazılmış olan kod ile etkileşim için CORBA
Yerel kütüphanelerin yüklenmesi ve yerel olarak çağrılması iöin JNI
Şimdiye kadar entegrasyon için en önemli J2EE görüşü J2EE Bağlantı Mimarisidir.(JCA)JCA kaynak adaptörlerinin varolan sistemlerle(SAP R/3 , CICS/COBOL …gibi) nasıl iletişim kuracağını anlayan bir spesifikasyondur.Eğer bu adaptörler bulunmuyorsa istediğiniz an kendi adaptörinizi yazma olanağına sahipsiniz.Bu adaptörler JCA desteklenen her konteynerde tekrar kullanılabilmektedir.Şu an varolan tüm temel sistemler JCA içerisine alınmıştır.

.NET entegrasyonunu Host Integration Server 2000 ile gerçekleştirmektedir.COM TI ana makineler arasında gerçekleşen transferlerin işbirliği yapmasını sağlamaktadır.Microsoft Mesaj Sırası IBM MQSeries ile kurullmuş sistemlerle entegrasyon sağlamaktadır.Son olarak BizTalk 2000 sunucusu B2B protokolleri ile kurulmuş sistemler ile entegrasyon sağlamaktadır.(EDI(Electronic Data Interchange … gibi))

Sonuç olarak J2EE tarafından sunulan entegrasyon özellikleri , .NET tarafından sunulanlardan daha üstündür.JCA pazarı enterprise uygulama entegrasyonunu oldukça kolaylaştıran bir adaptör pazarıdır.Paketlenmiş uygulamalar ve sistemler ile entegrasyon Java programlama ortamından ayrılmadan mümkün olmaktadır.Microsoft alanında buna benzer bir durum yoktur ve Host Integration Server ile sunulan entegrasyonda limitli bir system kümesi ile bağlantı kurulabilmektedir.

Pazar Algılaması
İki platform karşılaştırılırken genellikle içgüdüsel olarak arkalarında yatan teknoloji karşılaştırılır.Talihsiz olan ise genellikle iyi olan teknoloji pazarda nadir olarak başarılı olur çünkü teknolojisi iyidir.Genellikle pazarda kazanan iyi pazarlamadır.

J2EE çok iyi pazarlanan bir platformdur çünkü 50 den fazla büyük üretici tarafından endüstride pazarlanmaktadır.Birbirinden bağımsız iş ağı sanal bir pazarlama marketi oluşturur ve bu J2EE için çok iyi bir pazar algılaması oluşmasına sebep olmaktadır.

.NET pazarlama gücü Microsoft’un birplatformu nasıl pazarlayacağını çok iyi bilmesinden kaynaklanmaktadır..NET platformunu pazarlama için en iyi takımlarını kullanmaktadırlar.Microsoft’un diğer bir avantajı web servisi stratejisini J2EE dan öne yapmış olmasındandır.Bu sebepten pazarlama cephesinde Microsoft öndedir.

Platformun Olgunluğu
Web servisleri kullanmaya başlayan platformlar altta yatan platformun olgunluğunu araştırmak zorundadırlar.Henüz olgunlaşmamış yeni nesil bir platform hata ve problemlere oldukça yatkın olacaktır.

J2EE varolan Java çözümlerinin üzerine bir kaplamadır.J2EE konuşlandırmaları canlı ve sağlıklı ve şu an birçok kritik iş problemlerinde kullanılmaktadır.fakat geçmişe dönüp bakıldığında bazı konularda J2EE olgunluk açısından bazı riskler taşımaktadır.

EJB tarafından sunulan otomatik vertabanı yönetimi henüz olgunlaşmamıştır
Java Bağlantı Mimarisi(JCA) yeni bir terimdir
Tüm web servis desteği yenidir
Microsoft.NET için ise hikaye biraz daha değişiktir..NET in bazı kısımları birçok kritik web sitelerinde kullanılan ve başarı ile devam eden Windows DNA üzerine kurulmuşltur.Fakat

Yeni CLR ile , .NET platformunun altında yatan büyük bir kısım yeniden yazılmıştır.Fakat platform şu anda bir beta versiyonu üzerinde bulunmaktadır.
C# yenidir
Tüm web servisi desteği yenidir.
Sonuç olarak J2EE , .NET ‘e gore daha olgun bir platformdur.J2EE nin bazı özelliklerinin yeni ve riskli olduğu doğrudur ancak .NET in altında yatan kumaş tamamen bir yeniden yazımdan ibarettir ve tüm C# dili yeni bir üründür.Yeni J2EE özellikleri ile karşılaştırıldığında bu oldukça büyük bir risk taşımaktadır..NET içerisindeki en iyi şey COM Kayıtları üzerindeki bağımlılığın kaldırılmasıdır böylece DLL cehenneminden kurtulunmuştur.Fakat .NET ile ilgili en kötü şey varolan iç yapıyı kaldırmasıdır.Bu da .NET in ilk jenerasyon bir yazılım olmasına ve hataların her an ortya açıkabilme riskini taşımasına yol açmaktadır.

Dil Desteği
J2EE Java tabanlı programlamayı geliştirerek J2EE konuşlandırmasındaki tüm bileşenlerin(Servletler,EJB …) Java programlama dili ile yazılmasını öngörmüştür.J2EE kullanmak için en azından bazı eBusiness sistemlerinizin implementasyonunu Java programlama dili kullanarak yapmalısınız.Diğer diller J2EE çözümüne web servisleri,CORBA,JNI veya JCA kullanılarak köprülendirilebilmektedir.Fakat bu diller Java kodu ile karıştırılamamaktadır.Teoride,JVM bytecode dilden bağımsızdır ancak pratikte bu bytecode sadece Java tarafından kullanılabilmektedir.

Karşılaştırma yolu ile , .NET geliştirmeyi yeni CLR sayesinde Microsoft araçlarının desteklediği herhangi bir programala dili ile yapmanızı sağlamaktadır.Java dışında , tüm diller desteklenmiştir.Microsoft aynı zamanda Java denk olan C# adında kendi dilini geliştirmiş ve isual Studio.NET ortamında bu dili programlama dili olarak belirlemiştir.CLR içerisinde desteklenen tüm diller IL e çevrildiğinde ortak bir dil işlemi görmektedirler.Bu sebepten herhangi bir .NET bileşeni birden çok dil ile yazılabilmektedir.

Microsoft’un sunduğu çoklu programlama dili desteği yeni CLR ile oldukça büyük bir avantajdır.Bu .NET in J2EE ye gore oluşturduğu açık bir avantajdır.Fakat CLR nin herkes için bireysel bir iş avantajı oluşturuğ oluşturmadığı ise tartışma konusudur.Eğer CLR birden fazla dil kullanılırsa zayıf bir dizayn seçimi olabilmektedir.

Sonuç olarak her iki durumda da artılar ve eksiler mevcuttur.İş ihtiyaçlarına en çok uygun olan yaklaşım seçilmeli ancak yaklaşımın tüm riskleri önceden hesaplanmalıdır.

Taşınabilirlik
J2EE ve .NET arasdındaki en belirgin farklardan birisi de J2EE nin platformdan bağımsız olması ve çok çeşitli donanım ve işletim sistemleri üzerinde çalışabilmesidir.(Win32,UNIX,ve Mainframe sistemleri gibi)Bu taşınabilirlik JRE nin tüm platformlarda bulunması sebebiyle oluşmaktadır.

Taşınabilirliğin ikinci bir ayrıntısı daha bulunmaktadır.J2EE bir standarddır,böylece birden çok implementasyonu desteklemktedir(BEA,IBM ve SUN).J2EE gibi açık bir standarttaki tehlike eğer üreticiler standarda sıkıca bağlı kalmazlarsa uygulama taşınabilirliği ortadan kalkabilmektedir.Örneğin CORBA CORBA middleware standart ile uyum gösterme zorunluluğu bulunmaması sebebiyle taşınabilirlikte bazı problemler meydana getirmiştir.J2EE ‘ nin ilk günlerinde de aynı problemlerle karşılaşılmıştır.Duruma yardımcaı olmak amacıyla Sun bir J2EE uyum testi aracı üretmiş ve büylece J2EE platformlarının standartlar ile uygunluğu test edilme imkanı doğmuştur.Bu test aracı kritiktir çünkü uygulamaların taşınabilirliğini test etmektedir.

Karşılaştırmalı olarak .NET , sadece Windows üzerinde,Windows çalıştıran donanımlarda ve .NET ortamı üzerinde çalışmaktadır.Taşınabilirlik derecesi “sıfır” dır.Şu an .NET in ek implementasyonlarının diğer platformlarda mümkün olacağı söylenmektedir fakat bunun ne kadarı olacağı bir soru işaretidir.

Burada önemli olan soru taşınabilirliğin size ne kadar önemli olduğudur.Bu şirketlerin kendilerine sormaları gereken anahtar sorudur.Taşınabilirliğin önemi değerlendirilirken şu senrayolar düşünülmelidir.

Eğer şirketiniz başak şirketlere yazlımı satıyorsa veya bir danışmanlık irketiyseniz ve mişterileriniz büyük bir yelpazede platform kullanıyorsa o zaman J2EE mimarisinde odaklanılmalıdır.Tüm müşterilerinizin bir Windows/.NET çözümünde ikna olacağından emin olmadıkça bu kabul edilebilir bir durum değildir.
Eğer müşterilerinizin tümü Windows platformunda ise o zaman hem J2EE hem de .NET yeterli olacaktır çünkü her ikisi de Windows platformunda çalışmaktadır.Bu durumda hangisinin daha uygun olduğunu ihtiyaçlarını ve imkanlarınız belirleyecektir.
Eğer kendi çözümlerinizi konuşlandırırsanız o zmaan konuşlandırma ortamınızı control edersiniz.Bu J2EE seçtiğiniz gibi .NET seçmenizi de mümkün kılar.Eğer Win 32 platformu üzerinde bir standart yaratmak istiyorsanız ve bu platformun oluşturduğu avantaj ve dezavantajları da göz önünde bulundurduysanız o zaman platform çok önemli değildir.Fakat gelecek hiçbir zaman tahmin edilemediğinden eğer sabit bir platform örneği ile gidilirse o zaman oluşan uygulamalar platform değişikliğine ayak uyduramayacaklardır.
Taşınabilirliğin önemini anlatan son bir konu ile bölümü kapatacağız.J2EE ve .NET platformlarını herbirisi kendi kullanıcı grubuna sahiptir.Eğer siz bu kullanıcı gruplarına danışmanlık yapan bir danışman şirket olsaydınız muhtemelen birden fazla platform kullanan müşterileriniz lacaktı.Bundan dolayı kendinizi belirli bir kısıtlama içerisinde tutmamak için büyük ihtimalle seçiminiz J2EE mimarisi arkasında durmak olacaktır.Bu durumda platformun önemi değil uygulamanın önemi ön plana çıkmaktadır.Zaman geçtikçe müşterilersadece web servisi altyapısını sunan çözümü değil aynı zamanda engeniş desteği veren uygulamaları seçecektir.

Bu sebepten taşınabilirlik, J2EE nin geleceğinin oldukça aydınlık olacağının göstergesidir ve .NET ve J2EE arasındaki en kritik ayırıcı rolünü üstlenmektedir.

Web Servisleri Desteği
eBusiness işbirliğinin geleceği şüphesiz ki web servisleridir.Bir web servisi stratejisini izleyen veya hazırlanan organizasyonlar için eBusiness altyapılarının güçlü web servisi desteğine sahip olması koşulu bulunmaktadır.

Bugün J2EE web servislerini XML İşleme için kullanılan Java API(JAXP) ile desteklemektedir.Bu API geliştiricelrin XML dokümanlarını işleyerek web servis işlemlerini gerçekleştirmelerini sağlamaktadır.Örneğin JAXP yi SOAP,UDDI,WSDL,ve ebXML ile işlemler gerçekleştirmek için kullanabilirsiniz.Ayrıca ek API ‘ler geliştirme aşamasındadır.Bu geliştiricilerin web servisi operasyonlarını daha hızlı yapmalarını sağlamaktadır.(İş Kayıtlarına erişim,XML den Java ya ve Java’dan XML e dönüşüm,WSDL dokümanlarının ayrıştırılması ve ebXML’de olduğu gibi mesaj işlemlerinin gerçekleştirilmesi gibi)Bugün hızlı web servisleri oluşturulması için birçok J2EE destekli araç bulunmaktadır.Java yı destekleyen en az 16 tane SOAP implementasyonu bulunmaktadır.Bu implementasyonların hemen hepsi J2EE üzerinde(Servlet veya JSP) kurulmuştur.Sadece 5 tane UDDI API implementasyonu bulunmaktadır ve bunlardan 4 ü JAVA’yı desteklemektedir.(IBM UDDI 4 ,BowstreetjUDDI,The Mind Electric GLUE,ve Idoox WASP).Ayrıca Tradia,CapeClear,ve The Mind Electric gibiyazılım üreticileri de web servisleri oluşturmak için araçlar sunmaktadırlar.

Microsoft.NET in önizleme sürümü de web servisleri inşaa etmek için organizasyonlar sağlamaktadır.Microsoft.NET ile gelen araçlar varolan sistemler üzerinde web servisi paketleyicileri kullanarak web servislerinin hızlıca oluşturulmasını sağlamaktadır.SOAP,UDDI ve SDL(WSDL in önceki sürümü) kullanarak operasyonlar gerçekleştirilebilir.Visual Studio.NET web servisi oluşturmak için sihirbazlar sunmaktadır.

Web servisi karşılaştırmalarının sonucu izleyen şekildedir.

J2EE ile JAXP kullanark web servisleri geliştirip konuşlandırabilirsiniz.Fakat bu,web servisleri oluşturmak için ideal yol değildir çünkü çok fazla elle kod yazımı gerektirmektedir.Buna bir alternatifi kütüphanelerin geliştirmeyi hızlandırması için kullanılmasıdır.İleride bu kütüphaneler,JAXP API ile standartlaştırılacaktır.Şimdilik , eğer web servislerini hızlı yaratırsanız kütüphanelerini de uygulama ile birlikte paketlemeniz gerekecektir.

.NET ile .NET in kısmi sürümü ile web servisleri oluşturabilirsiniz.Fakat bu sadece bir beta sürümü olduğundan , gerçekçi bir konuşlandırma platformunu temsil etmemektedir..NET ile ilgili diğer bir konu da gerçek web servislerini desteklememesidir çünkü ebXML e desteği bulunmamaktadır.ebXML , eBusiness işbirliği için çok önemli bir standarttır ve dünya çapında kabul görmektedir.Binlerce üretici ve üretici olmayan firma,hükümet kuruluşları,akademik ve araştırma merkezleri,ticaret grupları,standardlar enstitüleri,ve diğer organizasyonlar ebXML derneğine katılmışlardır.Şüphesiz ebXML , web servislerinde önemli bir güç oluşturacaktır.Microsoft halen kendi SOAP uzantılarına sahip olan BizTalk çatısını kullanmaktadır.

Sonuçlar
Her iki platformda da bulunan özellikler

Hangi platformu seçerseniz seçin,yeni program geliştiricilerin eğitilmesi gerekecektir.(J2EE için Java eğitimi , .NET için Nesne Yönelimli Programlama Eğitimi)
Her iki platformu kullanarak web servisleri oluşturabilirsiniz
Her iki platform da düşük sistem maliyeti önermektedir.J2EE de JBOSS/Linux/Cobalt veya .NET ‘de Windows/Win32 donanımı gibi
Her iki platform da tek üreticili bir çözüm önermektedir.
Her iki çözümünde ölçeklenebilirliği teorik olarak sınırsızdır.
.NET avantajları

.NET in profesyonel bir pazarlama takımı bulunmaktadır.
.NET web servislerini J2EE den önce çıkarmıştır
.NET J2EE den daha iyi bir paylaşım içeriği gösterimi gerçekleştirmiştir
.NET Visual Studio.NET ile çok kullanışlı bir araç sunmaktadır.
.NET’te daha basit bir programlama modeli bulunmaktadır,böylelikle geliştiriciler daha üretici olabilmektedirler
.NET size yeni eBusiness uygulamaları geliştirirken dil bağımsızlığı sunar,fakat J2EE içerisinde diğer diller diğer uygulamalar anlamına gelmektedir
.NET altında yatan işletim sistemi ilegüçlü bir bağa sahiptir
J2EE Avantajları

J2EE tüm endüstri tarafından pazarlanmaktadır
J2EE ispatlanmış bir platformdur sadece içerisinde yeni bir kaç web servisi API bulunmaktadır. .NET ise bir yeniden yazımdır ve ilk kullanılan teknolojilerde bulunan riskleri taşımaktadır
Bugün sadece J2EE web servisleri kullanmanızı sağlamaktadır.
Varolan J2EE kodu yeniden yazıma gerek kalmadan J2EE web servislerine dönüştürülebilir.Herhangi gerçek bir Windows DNA kodu .NET teknolojisine taşınmamıştır.
.NET web servisleri şu anki endüstri standardlarında interoperasyona musaüt değildir.BizTalk çatısı kendi SOAP uzantılarına sahiptir ve ebXML i desteklemektedir
J2EE daha gelişmiş bir programlama modeline sahiptir,gelişmiş performans ve nense modeli oluşturmal isteyen eğitimli program geliştiriciler için daha uygundur.
J2EE varolan donanımınızı değiştirmeden kullanmanıza olanak tanır.
J2EE size Windows dahil olmak üzere istediğiniz platformu kullanma lüksünü tanır.Ayrıca iyi bir taşınabilirlik elde edersiniz. Böylece birbirinden farklı ortamlarda tek bir ortamda çalışıyormuş gibi hareket edebilirsiniz
J2EE , JCA sayesinde daha iyi bir entegrasyona sahiptir.
J2EE ile uygulama geliştiricileri daha verimli oldukları herhangi bir işletim sistemi üzerinde çalışabilmektedirler.
J2EE programlama için Java programlama dilini kullanmaktadır.Bu olgunluk ve Pazar payı bakımından C# tandaha iyi bir programlama dilidir.Dünya üzerinde 2,5 milyon Java geliştiricisi vardır.2003 yılının sonunda 4 milyon Java geliştiricisi olacaktır.Dünyadaki üniversitelerin %78 i Java öğretmekte ve %50 si Java bilgisi gerektirmektedir.Birçok danışman şirket J2EE geçmektedir çünkü müşterinin kullandığı platformu kontrol etmek olanaksızdır.Bu uygulama seçimi özgürlüğü zaman geçtikçe J2EE'ın pazara daha çok hakim olmasını sağlayacaktır.
__________________
Biz Bu Hallere Düşecek Adammıydık ???
Alıntı ile Cevapla