JLCA, Microsoft’un Java Kullanıcılarını .NET’e göç ettirme yolu stratejisinin bir parçası. JLCA, Artinsoft dönüştürme teknolojisi üzerine inşa edilmiş olup var olan Java dilindeki kaynak kodunu otomatik olarak Microsoft’un C# diline dönüştürüyor.
2.0 sürümü, Microsoft’un iddiasına göre kuruluşlarda, ASP.NET olanaklarını iyileştiren geliştirici verimliliğini arttırırken ve başka başka satıcıların ürünlerinden yama yapmak yerine tek bir satıcıya geçiş yaptırarak bakım ve lisans masraflarını düşürürken kuruluşların siteleri daha da kolayca yenileyebilmelerini ve derecelendirebilmelerini mümkün kılan Java Sunucu Sayfalarını (JSP) ve servlet uygulamalarını ASP.NET’e dönüştürme olanağı ekliyor.
Microsoft’un Geliştirme ve Platform yaygınlaştırma Bölümü bölümü yönetmeni John Montgomery: “Müşterilerimiz kendi sitelerinde Java dilinde yazılmış olan Web uygulamalarında var olan yatırımları ASP.NET’e dönüştürerek var olan yatırımlarını geliştirebildikleri için üretkenlik ve performans artışları görüyorlar.” diyor.
Yazılım devi, Infusion Development ile Random House Books’un joint venture’ı CodeNotes tecrübesini de vurguladı. Yazılım geliştiriciler içim tasarlanmış bir eKitap dizisi olup aynı zamanda Web sitesini kitap dizilerinin yardımına sokan CodeNotes, kendi sitesinde çeşitli farklı satıcılardan alınmış çeşitli Java-tabanlı ürünler kullanıyordu. CodeNotes, kullandığı ürünlerin kendi upgrade ve yama zamanlamaları olduğunu ve sabit giderleri düşürüp siteyi geliştirme sürecini kolaylaştırmak için tek bir platforma ve tek bir satıcıya geçmeyi istemiş olduklarını belirtti.
Bu başarmak için Infusion, JLCA 2.0’ı kullanarak siteyi JSP’den ASP.NET’e taşıdı. “ASP.NET’e geçişimizin temel nedeni bakım ve lisans ücretlerini birleştirmekti” diyen Infusion şirketi kıdemli proje müdürü Rob McGovern sözlerini şöyle sürdürdü: “Java sürümü kendisi dışındaki kuruluşlara ait birkaç ürün kullanıyor ve bunların her birinin geliştirme ve yama zamanlamaları ayrı. Tek bir platforma taşınmamızla, genel bakım giderlerimiz çarpıcı bir biçimde düştü. İkincil nedenler arasında ise modifikasyon kolaylığı, daha iyi düşük-maliyetli tırmanabilirlik ve ASP.NET’in sunduklarını, ileride site üzerinde yapacağımız geliştirmeler için geliştirebilmek yer alıyor.”
Asıl CodeNotes.com mimarisi Java dilinde yazılmış ve tasarımı da Java servlet’leri, JSP ve Enterprise Java Beans (EJB) kullanan bir Örnek-Görüntüleme-Denetimi çerçevesi ile yapılmış. Site’nin host hizmetini, Allaire’nin Jrun uygulama sunucusunu kullanan Microsoft Windows 2000 İleri Sunucusu ve Apache Web sunucusu görüyordu. Sitedeki fromlar, üçüncü bir kuruluşa ait olan Jive’ı, sohbet işlevi, JchatBox bileşenini kullanırken arama işlevi de açık kaynak Apache Lucerne ürünü tarafından güçlendirilmişti.
CodeNotes, bu halin sistem bakımını bir “kabus”a çevirdiğini çünkü sitenin birbirleriyle eşzamanlı olmayan ama birbirlerine bağlı olan bileşenlere dayandığını söyledi.
“JLCA dışındaki tek seçeneğimiz, şirkette tamamıyla birbirlerinden ayrı olan satıcılar temasta kalmak üzere birinin bulunmasını zorunlu kılan mevcut sistemi korumaktı.” diyen şirket sözlerini şöyle sürdürdü: “Ayrıca Java mimarisinin, küçük modifikasyonlar için dahi kurulması oldukça zor bir gelişim ortamı olduğunu düşünüyorduk. Birbirinden farklı tüm bileşenleri düzgünce yüklemek, classpath ve ortam değişkenlerinin konfigürasyonlarını yapmak ve sitenin bir gelişim makinesi üzerinde yürütmek için gereken ‘tweaking’ miktarı, yeni gelişimleri yürürlüğe geçirme içini hayli zorlayıcı bir süreç haline getiriyordu.”
Gelelim Microsoft ve JLCA 2.0’a. CodeNotes, JLCA’nın yeni sürümünün sitelerindeki Java kodunun yüzde 80’inini kendiliğinden dönüştürdüğünü ve böylelikle .NET Çerçevesine tam geçiş için sadece bir geliştirmeci ile bir yöneticinin yeterli olmasını sağladığını bildirdi. Şirket, SQL Sunucu veri-tabanının ve depolanmış prosedürlerin hiçbir değişiklik yapılmadan yeniden kullanıldığını da belirtti.
“Sistem göçünün ağırlıklı çoğunluğu yaklaşık bir kişinin 8 haftalık çalışmasıyla tamamlanıyordu.” diyen şirket sözlerini şöyle sürdürdü: “Aşağı yukarı 8 hafta da prototip sistemler ve dönüştürülemeyen kodların yerine geçecek işlevleri bulmak için harcanıyordu. Tüm bunların sonunda da 1 kişinin 4 haftalık çalışması kadar bir zaman da yeni sistemi sınamakla ve takviye etmekle gaçiyordu.”
Geçişi yürüten programcı Michael Van Atter, şunu belirtti: “Benim için JLCA’yı diğerlerinden ayıran ve dönüşüm projesini bu kadar düzgün yürütmesini sağlayan üç neden var.
“Birincisi, JLCA, Visual Studio .NET IDE ile gayet kolayca bütünleşiyor. Örneğin JLCA’nın verdiği upgrade açıklamaları otomatikman Visual Studio .NET görev listesine ekleniyor. Bu sayede sitenin işlevsel denkliği büyük ölçüde sağlanıyor. İkinci neden, JLCA kodun o kadar büyük bir çoğunluğunu dönüştürüyor ki işlevsel denklik de nispeten daha hızlı yapılıyor. Bu, projenin .NET sürümü için gereken takviye süresini hızlandırıyor ve sizi her şeyi bir defada .Net tarzına dönüştürmek zorunda bırakmak yerine sizin istediğiniz zaman .NET olanaklarını oluşturmanızı mümkün kılıyor. Bu da Java-eğilimli insanların öğrenme ivmesini, doğrudan dönüşüm yapmalarından çok daha kolay bir hale getiriyor. Üçüncü olarak da JLCA basit yöntem-haritalamasından çok daha fazlasını yapıyor.
Örneğin künye library dosyalarını Web denetimlerine dönüştürüyor ve JLCA künye library dosyalarını ve servlet’leri haritalamasını dönüştürmek için WEB-INF rehberini sınıyor.”
Dönüştürme süreci hala kusursuz değil. Microsoft’un Visual C# .NET ürün müdürü Dan Fernandez, JSP dönüşümünün JLCA’nın yeni sürümünde çalıştırmak için sarf ettiği çabaları anlatırken, hedef Java pazarının yüzde 80’inin JSP sunucu uygulamaları kullandığını belirtti.
Sunulan ürünün ilk sürümü olan JLCA 1.0 Java Class’larının ve Java küçük uygulamalarının dönüşümüne odaklanmıştı. Ancak Fernandez EJB dönüşümü desteğinin bir sonraki JLCA sürümü için düşünüldüğünü söylese de JLCA halen Enterprise Java Beans’in üstesinden gelemiyor.
“Uzun vadedeki hedefimiz eksiksiz J2EE dönüştürme desteği” diyen Fernandez, Microsoft’un da bazı gelişmeler kat ettiğini de sözlerine ekledi: JLCA’nın ilk sürümüyle karşılaştıklarında, diyor
Fernandez: “müşterilerimiz bunun benim o kadar da değerli olmadığını çünkü çoğunluğu zaten benim olan uygulamaları destekleyemeyeceğimi söylediler.”
CodeNotes, EJB’ye bağlı olan Struts çerçevesinin dönüştürülmesinin bir mesele olduğunu söyledi. “Struts bağlantılı künyeler, JLCA’nın beklediğimiz kadar iyi dönüşüm yapamadığı bir alan oldu” diyen McGovern şöyle konuştu: “Neyse ki Struts bağlantılı künyelerle karşılaştığımız çoğu zaman bir çeşit formatlama künyesi ile birleştirilmiş bir tekrarlama künyesi kullanabiliyoruz. İyi haber, ASP.NET denetleyicilerinin bunların yerini çok kolaylıkla alması. Hemen hemen tüm bağlantılı künyelerin hakkından gelebiliyoruz ve onların yerine basit ızgara denetimi yerleştiriyoruz.”
Böyleyken bile diyor McGovern, bunun gibi sorunlu bir alanla karşılaşıldığında önemli olan kodun değil işlevselliğin dengini bulmaktır.
“Önemli olan ASP.NET’imizin Struts çerçevesinin, Struts class library dosyalarının ve Struts’ta alıştığınız her şeyin tıpa tıp aynısına sahip olması değildir.” diyen McGovern sözlerini şöyle tamamladı: “ASP.NET’in yapması gereken şey, Struts’un bize sağladığı işlevin aynısını taklit etmektir.”