[Gelistirici] Java Paketleme Kurallari

Suayip Ozmen ozmen at suayip.com
10 Ağu 2010 Sal 12:14:12 EEST


Merhaba;

2010/8/10 Hakan Uygun <hakan.uygun at uygunteknoloji.com.tr>

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

Sanırım 2008 depolarında bu şekilde irili ufaklı jar paketleri bulunuyordu.
Daha sonra bunlar temizlendi. Java dünyası için
gstreamer veya libtorrent kütüphanesi gibi liblerin ayrılmasına gerek yok.
Genelde java uygulamaları ihtiyaç duydukları
kütüphane versiyonlarını kendi jarlarında barındırıyorlar.

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

Kaynaktan derlemeden kastınız jbossun kaynak kodunun indirilip derlenmesi
mi? Bunun yerine derlenmiş bir jbossu
/opt veya /usr altında uygun bir yere açmak daha mantıklı değil mi? Tomcat
için de aynı şey geçerli.


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

Ubuntu ve diğer dağıtımlarda OpenJDK geçişleri yapıldı. Sunjdk şimdilik
yeterli olsa da openjdknın da depoya girmesi gerekecektir.
jdk7 ile de zaten jdk5-6-7 üçlüsü depoda bulunması haliyle gerekecek.


>
>
> > - 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
>
> _______________________________________________
> Gelistirici mailing list
> Gelistirici at pardus.org.tr
> http://liste.pardus.org.tr/mailman/listinfo/gelistirici
>
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20100810/4c496f09/attachment-0002.htm>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi