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, 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