J2EE ile .NET karşılaştırması ve WEB Servislerin Oluşturulması - Papatyam Forum

Papatyam Forum

Go Back   Papatyam Forum > ..::.BİLGİSAYAR & TEKNOLOJİ.::. > Web Master

Yeni Konu aç  Cevapla
 
Seçenekler
Alt 20 January 2009, 15:41   Mesaj No:1

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 J2EE ile .NET karşılaştırması ve WEB Servislerin Oluşturulması

J2EE ile .NET karşılaştırması ve WEB Servislerin Oluşturulması

Giriş

Bu yazıda , XML tabanlı web servisleri oluşturmak için kullanılabilecek olan iki güçlü alternatif olan Sun Microsystems tarafından geliştirilen Java 2 Enterprise Edition(J2EE) ve Microsoft tarafından geliştirilen Microsoft.NET arasında güçlü bir karşılaştırma yapacağız.Bu karşılaştırmada her ikisi ile oluşturulacak web servislerinin yöntemleri anlatılacaktır.

J2EE ve .NET birçok teknoloji ve standard sunmasına rağmen , biz bu mimariler kullanılarak web servisleri oluşturma konusuna değineceğiz.Bu yazıyı okuduktan sonra , bu mimarilerin birbirleri üzerine olan benzerlikleri ve farklılıklarını daha iyi anlayabileceğiz.

Teknolojiler Hakkında
Dağıtık programlama için yeni jenerasyon günümüzde artık hayata geçmiştir.Geçen birkaç yılda , XML birbirinden farklı bilgi sistemlerinin WWW üzerinden birbirileriyle bilgi alışverişini gerçekleştirmelerine olanak vermiştir.Şimdi ise ayrıca işlevlerin de paylaşılmasına olanak sağlamaktadır.Teknik bakış açısı ile , web servislerinin ortaya çıkışı dağıtık programlamada bir devrim niteliği taşımamaktadır.Bu aslında XML in yapısal bilgi gösteriminden , yapısal uygulama arası mesajlaşma gösterimi şeklinde evrimidir.Devrim ise bu evrimin sağladıkları ile ortaya çıkmaktadır.

Web servisinin tanımı aşağıdaki şekilde yapılmaktadır.

Bir ağ üzerinde diğer programlar tarafından kullanılmak üzere yayınlanan tek bir varlık halinde paketlenen fonksiyonlar topluluğuna web servisleri adı verilir.Web servisleri açık dağıtık sistemleri oluşturmak için kullanılan inşaa bloklarıdır ve şirket ve bireylerin ucuz olarak dijital kaynaklarını küresel hale getirmelerine yardımcı olur.

Web servislerinin çıkışından önce , enterprise uygulama entegrasyonu programlama dillerindeki farklılıklar ve şirketler içerisinde kullanılan orta katmanlı uygulamalar yüzünden oldukça zordu.İki iş sisteminin aynı programlama dili ve aynı middleware kullanıyor olma ihtimali yok denecek kadar azdır ve bundan dolayı bir standard oluşturmak nerdeyse imkansızdır.Bu bileşen savaşları entegrasyonu çok zor hale getirmiştir.

Web servisleri sayesinde bir uygulama internet destekli olduğu sürece entegre edilebilir durumdadır.Web servislerinin çıkışı HTTP gibi standard protokoller üzerinde XML mesajlaşmasından doğmuştur.Herhangi bir programlama dilinin , orta katmanlı uygulamanın veya platformun kolaylıkla kullanabileceği bir yapıya sahiptir.Web servislerine genel bakış , iş kayıtlarında servislerin kendini kayıt etmesi esasına dayanır.Bu web servisleri kendilerini arayüz yapıları,iş tanımları,iş süreçleri ve kullanım şartları dahil olmak üzere tam olarak açıklayacaklardır.Bu servislerin tüketicileri bunları okuyarak web servislerinin kapasitelerini anlayabileceklerdir.Web servisleri akıllı olmalıdır,öyle ki bir web servisi çağrıldığında,işi tamamlamak için diğer servisleri çağırabilmeli ve kullanıcılara tamamen kişisel, ve isteğe bağlı hizmet edebilmelidir.Bu servislerin dinamik olarak etkileşimde bulunmaları,kullanıcın kimliği hakkında veya içerik bilgisini paylaşmalıdırlar.Bu bilgiler bir kere girilmeli ve kullanıcın isteğine göre kendi web servislerinde tanınmalıdır.

Genel kabul görmüş teknolojiler ile web servislerinin oluşturulması
Web servislerinin arkasında yatan genel filozofiden sonra , bir web servisinin nasıl oluşturulması gerektiğini inceleyelim.Web servisleri iş,uygulama ve sistem servisleri için XML tabanlı arayüzlerdir ve esasında yeni bir yüz ile karşımıza çıkan eski teknolojilerdir.İzleyen teknolojiler bir web servisini oluşturmak için genel olarak kabul edilen standardlardır.

Bir sağlayıcı kendi istediği bir programlama dili,middleware ve platform kullanarak bir web servisi oluşturur,birleştirir ve konuşlandırır.
Sağlayıcı web servisini WSDL (Web Servisi Tanımlama Dili) kullanarak tanımlar.WSDL dokümanı web servisini diğer birimlere tarif eder.
Sağlayıcı servisi UDDI(Global Tanım,Keşif ve Entegrasyon) kayıtlarına kayıt eder.UDDI geliştiricilerin web servislerini yayınlamasını ve kendi yazılımının diğer servislerden haberdar olmasını mümkün kılar.
Bir kullanıcı servisi UDDI kayıtlarını arayarak bulur.
Kullanıcın uygulaması web servisine bağlanır ve servisin işlevlerini SOAP(Basit Nesne Erişim Protokolü) kullanarak çağırır.SOAP , HTTP üzerinden parametrelerin ve dönüş değerlerinin temsili için bir XML düzeni sunar.Bu tüm web servislerinin kullandığı bir iletişim protokolüdür.
Yukarıdaki teknolojiler sadece basit web servisleri için yeterlidir.Gelişmiş iş tanımları iş hareketleri,çoklu istek hareketleri,şemalar, ve dokğman tanımları için uzlaşma sağlanmış yapılar gerektirmektedir.Bu uygulama gereksinimleri saf bir SOAP tabanlı gösterimin limitlerini zorlamaktadır.Bu, ebXML kavramının doğmasına yol açmıştır.ebXML B2B uyumu ve entegrasyonu için bir e-altyapı niteliği taşıyan XML spesifikasyonudur.

Yukarıdaki yaklaşım web servislerinin çalışması için kullanılan bir yoldur.Bunun için şüphesiz ki başka yollarda bulunmaktadır ancak bu teknolojiler en önemlileri ve en çok kabul görenleridir.

Sun ve Microsoft SOAP,WSDL,ve UDDI terimlerinin ve türevlerinin gelecekte kullanılacağını söylemektedir
Tüm üretici firmalar bir web servisi standardı oluşturmak için beraber çalışmaktadır.
Web Servislerine J2EE ve Microsoft.NET Yaklaşımı
Eğer kullanılabilir bir web servisi oluşturmak istiyorsanız , web servisleri güvenilir,kolayca ulaşılabilir,hata toleranslı , ölçeklenebilir, ve kabul edilebilir düzeyde işlem yapmalıdır.Bu gereksinimler diğer tüm enterprise uygulamalardakilerin aynısıdır.

J2EE ve .NET böylesi enterprise uygulamalar oluşturmak için kullanılan uygulama-sunucu teknolojilerinin evrimidir.Bu teknolojilerin daha önceki versiyonları web servisleri oluşturmak için kullanılmamışlardır.Web servisleri ile birlikte, her iki tarafta fa web servisleri oluşturmak için platformlar oluşturulmaktadır.

J2EE ve .NET arasında paylaşılan görüş XML interoperasyonu,yük dengeleme ve veri hareketlerinin oluşturulması için çok emek gerekmektedir.Bunları kendiniz implemente etmek yerine şu an bütün bu işleri yapan konteynerler içerisinde uygulama geliştireblirsiniz.

Bu paradigma size yaptığınız işlerde odaklanmanızı sağlamaktadır.Eğer finansal servis firması iseniz o zaman finansal servisler üzerinde uzman olmanız gerekmekte fakat Sun,IBM,BEA,Microsoft,Oracle gibi web servisleri altyapı implementasyonu üzerinde uzman olmanız gerekmemektedir.Size sunulan konteyneri satın alarak bir finansal servis tabanlı web servisini rahatlıkla oluşturabileceksiniz.Altyapıdaki karmaşık teknolojik detaylar yerine elinizdeki iş problemine odaklanarak web servisi teknolojik detaylarını konteynere bırakacaksınız.

J2EE
Java 2 platformu J2EE , geliştirme,konuşlandırma,ve çok katmanlı iş çözümleri için dizayn edilmiştir.J2EE bir endüstri standardıdır ve Sun Microsystems tarafından geliştirilmiştir.J2EE bir standarddır bir ürün değildir.J2EE download edilemez.Bu spesifikasyonda indirebileceğiniz tek şey uygulamalar ve konteynerlerin birbirleri ile olan anlaşma standardlarını öğrenebileceğiniz PDF dosyalarıdır.

J2EE hedefi müşterilere geniş bir ürün,araç ve teknoloji yelpazesi sunarak istediklerini kullanmalarını sağlamaktır.Sun diğer eBusiness platformlarını da (BEA,IBM,Oracle) gibi J2EE tanımlamasına dahil etmiştir.Daha sonra Java Toplum İşlemi(JCP) ile J2EE nin yeni fikirler ile geliştirilmesine destek olmuştur.Sun Microsystems’in bunu yapma sebebi başarıya ulaşmanın herkesin fikrini alarak oluşabileceğine inanmasıdır.

J2EE ilkeleri
J2EE mimarisi Java programlama diline dayalıdır.Java için en ünlü ve önemli nokta organizasyonların kodu bir kere yazmaları ve bu kodu herhangi bir platform üzerinde konuşlandırabilmeleridir.

Uygulama geliştiricileri Java ile kaynak kodunu yazarlar
Java kodu bytecode şeklinde derlenir.Bu bir çapraz-platform ara katmanıdır öyle ki hem kaynak kodu hem de makine dili özellikleri taşımaktadır.
Kod çalışmaya hazır olduğunda,JRE(Java Çalışma Zamanı Ortamı)bu bytecode ‘ u yorumlayarak çalıştırır
J2EE bir Java uygulamasıdır.J2EE bileşenleriniz bytecode haline dönüştürülerek JRE ile çalıştırılır.Konteynerlerin kendisi de Java ile yazılöışlardır.

J2EE ve Web Servisleri
J2EE , Java programlama dili ile sunucu taraflı konuşlandırmalar oluşturmak için kullanılan bir mimaridir.Geleneksel web sayfaları,yazılım bileşenleri, veya paketlenmiş uygulamalr olulturmak için kullanılabilir.J2EE yakın zamanda XML tabanlı web servisleri oluşturmak için de geliştirilmiştir.Bu web servisleri J2EE ile yazılmamış olan diğer web servisleri ile iletişim yapabilme özelliğine sahiptir.

J2EE uygulaması bir konteyner içerisinde tutulur ve bu konteyner enterprise uygulamalar için gereken veri transferi,güvenlik ve veritabanı yönteimi gibi servis kalitesini verir.

İş Katmanı iş süreçleri ve mantığını işler.Büyük J2EE uygulamalrında iş mantıkları EJB(Enterprise JavaBeans) bileşenleri ile tanımlanır.Veritabanlarına JDBC veya SQL/J kullanarak ve varolan sistemlere JCA(Java Bağlantı Mimarisi) kullanrak bağlanır.Ayrıca web servisi teknolojileri (SOAP,UDDI,WSDL,ebXML) kullanrak diğer iş ortağı sistemlerine bağlanabilir.

İş ortakları J2EE uygulamalrına SOAP,UDDI,WSDebXML gibi web servisi teknolojilerini kullanarak bağlanabilirler.Bir servlet(REQUEST/RESPONSE tabanlı bir Java objesi), iş ortaklarından gelen web servis isteklerini karşılayabilir.Servletler web servisi operasyonlarını gerçekleştirmek için JAX API kullanırlar.Paylaşılan içerik servisleri gelecekte J2EE tarafından sağlanacak içerik paylaşım standardları ile standard hale geleceklerdir.

Genelenksel ‘kalın’(thick) istemciler ugulamalar ve appletler gibi Internet ORB Arası Protokolü(IIOP) ile web servislerini kullanmak yerine direkt olarak EJB katmanına bağlanmaktadır.Bu uygulamalr J2EE uygulamasını yazan organizasyon tarafından hazırlandığından XML tabanlı web servisi paylaşımına ihtiyaç duyulmamaktadır.

Web tarayıcılar ve kablosuz cihazlar kullanıcı arayğzlerini HTML,XHTML veya WML formtaında düzenleyen Java Server Pages(JSP) sayfalrına bağlanırlar.

Referans İmplementasyonu
Bu spesifikasyonlara ek olarak , Sun ayrıca J2EE için bir referans implementasyonu sunmaktadır.Uygulama geliştiriciler bileşenleri arasına taşınabilirliği sağlamak için uygulamalrı bu implementasyona yazabilmektedirler.Bu implementasyon üretim için değil sadece test amaçlı kullanılmalıdır.

Ek Servisler
J2EE platformunu öneren tüm üreticiler standard içerisinde bulunmayan ek özellikler sunmaktadırlar.Bazıları gelişmiş taşınabilirlik standardları,E-Ticaret bileşenleri,veya gelişmiş B2B entegrasyonu sunmaktadır.Yğk dengeleme,geçirgen hata ve cache ‘ leme gibi diğer ek özellikler uygulama kodunun taşınabilirliğini etkilememektedir çünkü bunlar konteyner tarafından arka planda gerçeleştirilen iç servislerdir.

Microsoft .NET Platformu
Microsoft .NET , organizasyonların akıllı,enterprise-sınıfı web servisleri oluşturmaları için sunulan bir üründür. Burada önemli fark .NET bir ürün stratejisi fakat J2EE ürünlerin yazılması için bir standarddır. Microsoft.NET Microsoft’un enterprise uygulamalar için önceden kullandığı Windows DNA yeniden yazılması sonucu oluşmuştur.Windows DNA bugün üretimde kullanılan Microsoft Transaction Server(MTS) ve COM+,Microsoft Mesaj Sırası(MSMQ) ve Microsoft SQL Server veritabanı gibi bir çok ispatlanmış ve önemli teknoloji içermektedir.Yeni .NET framework bu teknolojileri değiştirmiş ve gelişmiş dil desteği ile birlikte web servisi katmanı eklenmiştir.

.NET uygulaması bir enterprise uygulamalr için gerekli olan veri transferi,güvenlik ve mesaj servisleri kalitesini sağlayan konteyner içerisinde tutulur

.NET uygulamasının iş katmanı .NET tarafından yönetilen bileşenler ile oluşturulur.Bu katman iş işleme ve veri mantığını gerçekleştirir.Aktif Veri Objeleri(ADO.NET) kullanarak veritabanlarına ve Microsoft Host Integration Server 2000 servislerini kullanarak varolan sistemlere bağlanır.(COM Transactıon Integrator(COM TI) gibi)Ayrıca iş ortaklarına SOAP,UDDI,WSDL gibi web servisi teknolojilerini kullanarak bağlanır.

İş ortakları .NET uygulamasına SOAP,UDDI,WSDL,BızTalk gibi web servisi teknolojileri ile bağlanırlar

Geleneksel kalın ’thick’ istemciler,web tarayıcıları,kablosuz cihazlar kullanıcı arayüzlerini HTML,XHTML veya WML sayfaları halinde oluşturan ASP.NET (Actıve Server Pages) sayfalarına bağlanırlar.Heavyweight adı verilen kullanıcı arayüzleri Windows Forms kullanılarak hazırlanır.

.NET Framework
Mıcrosoft.NET dil bağımsızlığı ve diller arası işlevsellik sunmaktadır.Bu .NET platformunun en temel özelliklerinden birini oluşturmaktadır.Herhangi bir tek .NET bileşeni kısmi olarak VB.NET (Vısual Basıc .NET versiyonu) ve C# (Microsoft’un yeni nesne yönelimli programlama dili) kullanılarak yazılabilir.

Bu nasıl çalışmaktadır? Öncelikle kaynak kodu Mücrosoft Ara Dili (MSIL veya IL) denilen dilden bağımsız Java bytecode benzei bir koddur.IL kodu bundan sonra yorumlanır ve yerel olarak çalıştırılabilir bir forma dönüştürülür..NET çatısı bunu gerçekleştirmek için Common Language Runtime(CLR) adı verilen ve Java daki (JRE) yapısına benzer bir yapı içerir.CLR , Microsoft’un .NET geliştiricisi tarafından hazırlanan kaynak kodu ve donanımı arasında bir geçiş sağlar ve tüm .NET kodu son olarak CLR içerisinde çalışır.

CLR , Windows DNA içerisinde önceden bulunmayan otomatik çüp toplayıcı(garbage collection),exception yönetimi,çapraz-dil kalıtımı,debugging,ve aynı .NET bileşeninin farklı versiyonlarının yanyana çalıştırılması gibi bir çok özellik içermektedir.

.NET Sunucuları
.NET platformu aşağıdaki .NET sunucularını içermektedir.

SQL Server 2000 Microsoft’un ilişkisel veritabanıdır.
Exchange 2000 Server çekirdek iş servisleri geliştirmek ve çalıştırmak için Windows 2000 ile entegre gelen bir mesajlaşma ve paylaşım platformudur
Commerce Server 2000 daha hızlı ve daha az karmaşık e-ticaret geliştirme ve konuşlandırma çözümü sunmaktadır.
Application Center Server 2000 kümelenmiş(clustered) sunucuların yönetimini sağlamaktadır.
Host Integration Server 2000 genellikle IBM tabanlı diğer platformlarda çalışan sistemlere erişim sağlamaktadır.
Internet Security and Acceleration (ISA) Server 2000 Web cacheleme ve firewall kurma yeteneklerine sahiptir
BizTalk Server 2000 Microft’un paylaşıma açık uygulama entegrasyonu,ticari ortaklar ve internet üzerinden iş süreçlerinin paylaşımı için sunulan XML tabanlı çözümüdür.
Diğer .NET Ürünleri ve Servisleri
Visual Studio’nun yeni versiyonu olan Visual StudioçNET .NET platformu için kullanılan bşr entegre geliştirme ortamıdır..NET sürümünden önce Visaul Studio tarafından desteklenen tüm diller(Java hariç) Visual Studio tarafından desteklenmektedir.

Visual Studio.NET ayrıca Microsoft’un yeni geliştirdiği ve Java ile çok ufak birkaç kural değişikliği dışında aynı olan C# dilini desteklemektedir.

Hailstorm Microsoft’un blok web servisleri için kullandığı belgedir.Microsoft ve muhtemelen Microsoft ortakları Hailstorm web servislerine ev sahipliği yapacaklardır.Bazı Hailstorm web servisleri abonelik sistemine bağlı olacak diğerleri ise ücretsiz olarak sunulacaklardır.Örneğin Microsoft’un Passport servisi şu an web servis tabanlı global bir ücretsiz kimlik tanıma sistemidir.

Microsoft’un Passport u gibi web servisleri aynen Passort örneğinde diğer web servislerinin kimlik bilgilerini paylaştığı gibi bir paylaşım içeriği sunmaktadırlar.Kullanıcılar birden çok web sayfasında kişisel bilgilerini dağıtmak zorunda kalmamaktadırlar.Bilgi adacıkları artık tek bir noktada toplanmakta ve kullanıcı merkezli web servisleri tarafından çağrım yapılan istemci cihazından bağımsız olarak paylaşıma sunulmaktadırlar.

Bilgi gizliliği Hailstorm web servisinde odak noktayı oluşturmaktadır.

J2EE ve .NET Platformunun Anlaşılması
J2EE ve .NET plaformları arasındaki benzerlik aşağıdaki tabloda sıralanmıştır.Benzerlikler sıralandıktan daha sonar farklılıklar anlatılacaktır.

Özellik J2EE .NET
Teknoloji tipi Standart Ürün
Destekleyen Middleware Üreticileri 30+ Microsoft
Yorumcu JRE CLR
Dinamik Web Sayfaları JSP ASP.NET
Orta Katman Bileşenleri EJB .NET Yönetimli Bileşenler
Veritabanı erişimi JDBC SQL/J ADO.NET
SOAP,WSDL,UDDI Var Var
İç middleware(Yük dengeleme …vb) Var Var

Karşılaştırmalı Analiz
Pazarlama Zamanı Özellikler
Bugünün pazarında bir ticaret çözümü üretirken birkaç aylık bir süre sonsuzluk gibidir.Ufak bir fırsatın kaçırılması ile yakalanması arasındaki fark pazara yeni giren bir firma ile yıllardır o pazarda faaliyet gösteren bir firma arasındaki fark ile benzerdir.Bu ortamda zamanın hızlandırılması hızlı uygulama geliştirimi için bir web servisi platformunun seçilmesidir.Bu programcıların kodu yazmalarını ve bakımını yapmalarını hızlandırır böylece uygulama geliştirme zamanı düşer.

Hem Sun J2EE hem de Microsoft .NET bazı bağımlılıklardan yazılımcıları soyutlamak için çalışma zamanı mekanizmaları sunmaktadırlar.Platformlar,diller ve enterprise mimariler arası web servis bazlı XML katmanının yanı sıra J2EE ve .NET JRE ve CLR ile dil seviyeli bir ara katman ortaya çıkarmışlardır.
__________________
Biz Bu Hallere Düşecek Adammıydık ???
Alıntı ile Cevapla
Alt 20 January 2009, 15: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
Cevapla

Bookmarks

Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler

Yeni Sayfa 1

www.papatyam.org Ana Sayfa

Tefekküre Davet Köşesi

Papatyam Sosyal Medya Guruplarımıza Katılın

                       Instagram         

Papatyam alemdarhost.com sunucularında barındırılmaktadır.