[Gelistirici] Java Paketleme Kurallari

Hakan Uygun hakan.uygun at uygunteknoloji.com.tr
10 Ağu 2010 Sal 11:57:01 EEST


Merhaba, 

Listeye ulaşıp ulaşmadığımdan emin olamadığım için tekrar yolluyorum. İkinci kez alanlardan özür diliyorum... 



Öncelikle genel olarak fikrimi söyleyeyim. 

Java'nın yapısı nedeniyle çoğu zaman sistemde aynı anda farklı JVM'den tutunda aynı uygulamanın farklı sürümlerinin bir arada çalışması gerekiyor. Dolayısı ile uygulamaların ihtiyaç duyduğu jarların ayrı ayrı paketlenip sistem üzerinde takip edilmesi çok anlalı olmuyor. Bu paketlerin güncelleme ile ilgili kolaylıklar sunmasına rağmen aynı zamanda otomatik güncellemelerin çeşitli uygulamlarda sorun çıkarabileceği gerçeği var. Minör bir sürüm değişikliği bir uygulamanın çalışmamasına neden olabiliyor. Bu nedenle uygulama sunucular içinde koşan ear paketleri çoğu zaman ihtiyaç duyduğu bütün kütüphaneleri de içerisinde barındırır. Örnek vermek gerekirse aynı uygulama sunucu içerisinde koşan ve benzer teknolojileri kullanan iki farklı uygulama aynı kütüphanenin farklı sürümleri ile çalışıyor olabiliyor. 

Bu noktada önerim her uygulamanın kendi ihtiyaç duyduğu bütün kütüphanelerle bir arada paketlenmesidir. Örneğin Jboss 4 ile Jboss 5 aynı kütüphaneleri kullanıyor olsa bile kendi içerisinde bütünlükle paketlenmeliler. Dez avantajı diskte fazla yer kaplaması olmakla birlikte uygulamanın bütünlüğü açısından önemli. 

Ayrıca Java uygulama sunucuların, jvm'lerin v.s. paketlenmesi sırasında orjinal dosya ağacını dağıtmanın da kullanıclar açısından sorun yaratabileceğini düşünüyorum. Log v.s. için symbolic linkler konuyor olabilir ama onun ötesinde uygulamanın orjinal dokümantasyonlarını takip edecek bir kullanıcı için işler çok zorlaşıyor... 

----- "selim ok" <selimok at gmail.com> wrote: 
> Merhabalar, 
> 
> 
> - Kaynaktan mi derleyelim, yoksa dogrudan ikilileri mi? ("Önceligimiz kaynaktan derleme, fakat cok cok zor olursa ikili kabulümüz!" gibi arada kalmis cevaplar da verilebilir bu soruya.) 
> 
> - Kitapliklari derleyelim mi? 
> 

Bence uygulamanın orjinal derleme sistemini çok bozmadan mümkün olduğunca kaynaktan derlemeliyiz. Örneğin Jboss'u derlemeye kalktığımızda kendi derleme sistemi gereken kütüphanleri orjinal paket içerisinden derlenmiş olarak alıp derliyor. Aksi halde daha önce bahsettiğim kütüphane sürüleri ile ilgili sorunlar çıkabiliyor. Örneğin Jboss üzerinde bir derleme yapıyoruz fakat kullanılan bir kütüphanenin en güncel sürümü bu derleme içerisinde kullanılmamış olabilir. O kütüphanenin güncel sürümünü kullandığımızda büyük ihtimal Jboss'un derleme ve daha kötüsü çalışma zamanı problemleriyle uğraşmak zorunda kalırız. 

> - Ayni uygulamanin birden fazla sürümünü depoya ekleyebilir miyiz? Bkz. jre5-jre6, tomcat5, tomcat6, jboss4-jboss6 vs. 
> 

Bence kesinlikle eklenmesi gerekiyor. Aynı sistem üzerinde farklı JVM'ler üzerinde farklı uygulama sunucu sürüleri üzerinde koşan uygulamalar olabiliyor. Sismenin kaynak kullanım problemleri sistei yöneten kişinin sorumluluğunda diye düşünüyorum... Burada sistem yöenticisi bir zahmet diğer sürümleri kendi kursun deniyor olabilir ama özellikle JVM konusunda farklı sürüleri kesinlikle desteklemeliyiz diye düşünüyorum... 

> - Farkli java sanal makine gerceklemelerini paketleyelim mi? (icedtea vs.) Yani is gücünü buldugumuzu var sayiyorum, politik olarak mümkün mü? 
> 

Bence bu da mümkün olsa iyi olur. Özellikle önümüzdeki dönemde jdk7 ile birlikte Sun/Oracle jvm'i ve OpenJDK ve icedtea kullanıcı tercihine göre kurulması ciddi bir ihtiyaç olacaktır. 

> - Dosya türlerine göre dizin secimimiz nasil olmali. (birlikte gelen jar paketleri nereye gitmeli, genel olarak opt yada usr altina kurulmali vs.) 
> 

Bence jvm ve uygulama sunucuları dağıtmamalıyız. Opt altında yaşıyor olabilirler. Dokümanlar ve Loglar için symlink konuyor olabilir. Hatta jvm örnekleri v.s. ayrıca paketleniyor olabilir ama mümkünse orjinal dokümanlarda belirtilen yerlerde bulunuyor olsalar iyi olur. 

Hakan Uygun 
-- 
____________________________________ 
Uygun Teknoloji Bil.Hiz.Tic.Ltd.Şti. 
web: www.uygunteknoloji.com 
tel: +90 212 2589780 
gsm: +90 533 2761692 
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20100810/efc747bd/attachment-0002.htm>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi