Çanakkale 18 Mart Üniversitesi Bilgisayar Mühendisliği bölümündeki 4 senelik lisans eğitimim bu sene bitmişti. Ben de, tekrar üniversitemde devam etmek için bölümüme yüksek lisans için başvurmuştum. Bugün sonuçlar açıklandı : 2 sene daha Çanakkale'deyim ve Necdet hocamın yanındayım. Alemlere akma vakti geldi sanırım değil mi hocam :)
26 Ağustos 2008 Salı
30 Mayıs 2008 Cuma
Proje Sunumumu Yaptım
Bugün, uzun süredir araştırmasını yaptığım "IPv6 Destekli Vidyokonferans Yazılımı" konulu diploma projemin sunumunu yaptım. Bir gün öncesinden Necdet Hoca' ya sunduğumdan dolayı bir zorluk yaşamadım. Pazartesi de raporu teslim edeceğim.
4 Mayıs 2008 Pazar
Red5 uygulaması ama nasıl ?
Kaç gündür red5 uygulamasından bahsediyoruz, ama bir red5 uygulaması nasıldır, neye benzer, bu konuda hicbir açıklama yapmadık. Şimdi temel bir red5 uygulamasının yapısı nasıldır, hangi dosya ve dizinlerden oluşur ve bunlar ne işe yarar vs. bunlardan bahsedeceğim.
SUNUCU TARAFI
-----------------------------
Öncelikle daha önceki yazıda bahsettiğim red5 kurulumunu yaptığınızı varsayıyorum. Örnek bir red5 uygulaması "/usr/local/red5-trunk2/doc/templates/myapp/" de WEB-INF dizininde bulunuyor. Şimdilik sadece bu dosyaların içerisindeki bazı yerleri değiştireceğiz ve uygun yere koyacağız. Yaratacağımız yeni uygulamamızın adı "uygulama" olsun."/usr/local/red5-trunk2/dist/weapps/uygulama" dizini içine, bulunduğumuz .../myapp/ içindeki WEB-INF dizinini kopyalayın. Dosyalardaki değişiklikleri /usr/local/red5-trunk2/dist/weapps/uygulama/WEB-INF içinde yapacağız.
1-) log4j.properties : Bu dosya, uygulamadaki log4j kütüphanelerinin kullanacağı ayar dosyasıdır.
Örneğin : "log4j.appender.FLOG2.Threshold=DEBUG" buna benzer satırlardan oluşur. Şu an bu dosya bizi çok ilgilendirmiyor.
2-) red5-web.properties : Uygulama dizini ve sanal host ile ilgili ayarlamalar bu dosyada yapılır. Buradaki contextPath virtualHosts değişkenleri red5-web.xml dosyasından okunuyor.
webapp.contextPath=/myapp olan kısmı
webapp.contextPath=/uygulama yapın ve kaydedin.
3-) web.xml : Jetty/Tomcat Servlet makinasının ilk olarak okuyacağı dosyadır. Bu dosyadaki "webpprootkey" değişkeni uygulamamızın yapısını tanımlar.
4-) red5-web.xml : Yazmış olduğumuz Java sınıfların yolları ile ilgili ayarlar, sanal-host ve uygulamaya özel servislerin ayarları bu dosyada yapılır.
singleton="true" />
singleton="true" /> )
(< id="web.handler">class="org.uygulama"
singleton="true" />
< id="myhandler.service">class="org.uygulama"
singleton="true" /> )yapın ve kaydedin.
Yaptığımız bu değişikliğe göre; "yazacağımız Java sınıfının yolu org.uygulama şeklindedir" demiş olduk. Sınıfı yazarken de bu hiyerarşiye göre oluşturacağız.
Şimdi eclipse, netbeans vs. hangi editörü kullanıyorsak, uygulama adında bir Java projesi oluşturuyoruz. Sonra bu projede de org paketi ve bunun içinde de uygulama isimli java sınıfımızı oluşturuyoruz. Yazacağımız kodun hatasız derlenebilmesi için, yazacağımız sınıfta kullanacağımız Red5 sınıflarını barındıran Red5.jar' ın projemize eklenmesi gerekiyor. Kullandığınız editöre göre Red5.jar'ı red5 dizininden projemize ekliyoruz (bendeki yeri : /usr/local/red5-trunk2). "uygulama.java" dosyamıza şunu yapıştırıyoruz :
package org;
import org.red5.server.adapter.ApplicationAdapter;
public class uygulama extends ApplicationAdapter {
public String mesaj (String mesaj)
{
return mesaj;
}
}
Şu anda bilmemiz gereken ilk şey; bir red5 sınıfı ApplicationAdapter sınıfından türetilir, metoda bakınca ne yaptığını sanırım herkes anlamıştır :) Şimdi uygulama.java dosyamızı derliyoruz(Netbeans' da F9 ile). Projemiz nerede oluşturuldu ise build vs. dizini içinde classes isimli bir dizini bulup, bu dizini red5 dizinimizdeki projemiz içine kopyalıyoruz (/usr/local/red5-trunk2/dist/weapps/uygulama/WEB-INF). Projemizdeki son yapı şu şekilde olmalı :
uygulama - WEB-INF
- classes (dizin)
- log4j.properties
- red5-web.properties
- red5-web.xml
- web.xml
İSTEMCİ TARAFI
------------------------------
Tamam uygulamamızı red5 sunucusuna ekledik ama oluşturduğumuz Java dosyasına yapması gereken işi nasıl yaptıracağız? Bunu da Flash ile yapıyoruz. Flash dökümanları oluşturabileceğimiz Macromedia Flash 8 Wine ile pek güzel kurulup çalıştırılabiliyor. MF 8' i kurduğununuzu varsayarak bir flash dökümanı oluşturuyoruz ve şunu yapıştırıyoruz :
nc = new NetConnection();
nc.connect("rtmp://127.0.0.1/uygulama");
nc.onResult = function (obj) {
trace("Mesaj = " + obj) ;
};
nc.call("mesaj", nc, "Bu bizim ilk Red5 uygulamamız") ;
sonra ctrl+enter a basıyoruz ve mesajımız karşımıza geliyor. Tut ki gelmedi, o zaman Red5' i başlatmamışsınızdır :)./usr/local/red5-trunk2/dist içinde "./red5.sh" deyip red5' i çalıştırıyoruz. Şimdi tekrar deneyelim, çalışmış olmalı. İlk basit Red5 uygulamımız hazırdır :)
Posted by
Cem Sönmez
zaman:
5/04/2008 12:05:00 ÖÖ
0
comments
Labels: bitirme, red5, uygulama, vidyokonferans
24 Nisan 2008 Perşembe
Pardus' a Red5 ve Openmeetings Kurulumu
Daha once bahsettiğim gibi vidyokonferans yazılımı olarak Openmeetings' e donmuştuk. Openmeetings aslında bir Red5 uygulaması. Red5' le biraz ilgilendiğiniz zaman ne kadar faydalı bir eser olduğunu göreceksiniz :) Şimdi Pardus' a (aslında çoğu linux türevi işletim sistemlerine) Red5 ve Openmeetings kurulumu nasıl olur, ondan bahsedeyim biraz.
RED5 KURULUMU
______________
1-) Red5 kurumunda Java inşa aracı Ant kullanılıyor. Bunun için elbette jdk yüklü olması gerekir. Minimum jdk1.5 kurulu olması gerekir sistemde ( "java -version" ile öğrenilebilir). Eğer kurulu değilse pisi paket yöneticisinden "sun-jdk" paketi kurulmalı.
2-) Konsolda "wget http://apache.mirror.transip.nl/ant/binaries/apache-ant-1.7.0-bin.tar.gz" ile Ant 1.7 ' i indiriyoruz ve /usr/local/ant şeklinde açıyoruz. Daha sonra "export ANT_HOME = /usr/local/ant" diyoruz ve ANT_HOME değişkenine indirdiğimiz dizinin yolunu veriyoruz.
3-) Tekrar konsolda "svn co http://svn1.cvsdude.com/osflash/red5/java/server/trunk red5-trunk" ile red5' in 0.6.3 sürümünü svn' den çekiyoruz (red5' in 0.7.0 sürümü de var ancak ona openmeetings kurulamıyor)
4-) Konsolda indirdiğimiz red5-trunk dizini içine geliyoruz ve "/usr/local/ant/bin/ant" komutu ile bir süre red5' in derlenmesini bekliyoruz.
5-) Derleme sonucunda red5-trunk dizini içinde "dist" diye bir dizin oluşacak. Bu dizini "cp -R red5-trunk/dist /usr/local/red5 " yazarak /usr/local içine atıyoruz. Sonra sırayla "cd /usr/local/red5" "chmod 755 red5.sh" ve "./red5.sh" komutlarını veriyoruz.
6-) Eğer bir problem yoksa "http://127.0.0.1:5080 ' de red5 test sayfası sorunsuz bir şekilde karşımıza çıkacaktır.
OPENMEETİNGS KURULUMU
______________________
Şimdi gelelim Openmeetings kurulumuna. Openmeetings kurulumu oldukça basit. Kullanıcı bilgilerinin tutulması için bir veritabanı sunucusu gerekli. mysql-server veya postgresql-server paketi yeterli. "http://code.google.com/p/openmeetings/wiki/InstallationOfRelease05" bu adreste kurulum yönergelerini sırayla yaparsanız adres satırında "http://127.0.0.1:5080/openmeetings/install" da openmeetings kurulum sayfasını göreceksiniz.
Hepsi bu :) Bir süre red5 kurulumu ile uğraştığımdan dolayı, böyle bir yazının ilgilenenler için faydalı olacağını düşündüm.
Posted by
Cem Sönmez
zaman:
4/24/2008 12:16:00 ÖÖ
2
comments
Labels: bitirme, kurulum, openmeetings, red5, vidyokonferans
8 Nisan 2008 Salı
Centos' a Dimdim Kurulumu
Vidyokonferans yazılımı için Dimdim' i inceleyeceğimizi söylemiştim ve ilk olarak bilgi işlemdeki bir makinaya Dimdim' i kuralım dedik. Çok nazlı bir yazılım; ilk olarak Centos sürümünü kontrol ediyor, ondan sonra /usr de yeterli yer yok diye bir yazı geliyor (ne kadar yerin olursa olsun bu hata hic sekmeden karsınıza çıkar), bir de bizde ek olarak lighttp paketinde problem çıkardı ve defalarca yeniden centos ve Dimdim kurulumuyla uğraştık. Bahsetmis oldugum problemleri aşmak için /usr/local/dimdiminstalltemp/dimdim..online.run ve /usr/local/dimdiminstalltemp/scripts/dimdim..pl dosyalarında değişiklikler yapmak gerekiyor. centos sürümü için sürüm no' sunun sorgulandığı yeri commentout yapabilirsiniz. "/usr ' de yeterli yer yok" dediği kısmı ise aynı sekilde belli satırları commentout yaparak aşabilirsiniz (sourceforge.net' de dimdim forumunda hatalardan bir hayli bahsedilmiş).
Neyse sonunda Dimdim' i kurduk ve denemeler yapalım dedik. Görüntü konusunda bir problem yok, ancak ses iletimi çok kötü, hiç anlaşılmıyor ve bayağı geç geliyor. Bağlantı konusunda olur olmaz zamanlarda problem çıkarması da tuzu biberi oldu ve Openmeetings' i incelemeye karar verdik. Dimdim' in tamamen açık kaynak olmadığı zaten çok açık :) Ayrıca kodu da çok karmaşık. Baştan beri ben Openmeetings' le ilgilenmiştim, ama red5' in source koddan kurulması sırasında sorun çıkmıştı. Java' da yazılmış, işletim sistemi konusunda bir sınırlama yok. Bu arada Dimdim i.e. çalışmıyor(Bunda ticari bir amaç güdüldüğünü düşünüyorum)
Posted by
Cem Sönmez
zaman:
4/08/2008 01:24:00 ÖÖ
0
comments
Labels: bitirme, dimdim, openmeetings, vidyokonferans
2 Nisan 2008 Çarşamba
Mevcut Vidyokonferans Yazılımlarına Bakış
Üzerinde duracağımız ve kodunu incelemeye başlayacağımız vidyokonferans yazılımını belirlemek için, mevcut vidyokonferans yazılımlarında biraz araştırma yaptık. Hangi programlama dillerini ve teknolojilerini kullanacağı hakkında bilgi sahibi olduk.
Bazı Vidyokonferans Yazılımları :
- Microsoft Netmeeting*
- Camfrog*
(* Bu iki yazılım açık kaynak kodlu değil !)
- Dimdim (Açık kaynak kodlu)
- Openmeetings (Açık kaynak kodlu)
vs.
Bu yazılımlar içerisinden elbette ilk 2 seçeneği araştırmaya bile kalkışmadık.
Dimdim'de kullanılan programlama dilleri : ActionScript, C++, Java, JavaScript
ActionScript :ActionScript, Flash geliştiricilerinin sunum seviyesi mantığını tasarlamak için kullandıkları bir betik dilidir.
Openmeetings'de kullanılan programlama dilleri : Java
- Her iki yazılımda tarayıcıda çalışıyor
- Dimdim, linux türevi işletim sistemlerinden Centos 4.5 de çalışıyor.
- Open meetings veritabanı olarak mysql ve postgresql seçeneklerine sahip. Flash sunucusu olarak Red5 kullanıyor.
Bu iki yazılım içerisinden Dimdim'in kodunu incelemeye karar verdik. Openmeetings'e göre daha sağlam adımlarla geliştiriliyormuş gibi görünüyor. Zaten hemen hemen hepsinde kullanılan teknolojiler az çok aynıdır diye düşündük.
Posted by
Cem Sönmez
zaman:
4/02/2008 08:19:00 ÖS
0
comments
Labels: bitirme, dimdim, openmeetings, vidyokonferans
26 Mart 2008 Çarşamba
Vidyokonferans Yazılımlarında Kullanılan Teknolojiler
Vidyokonferans Yazılımlarında Kullanılan Teknolojiler
H323
Sesli ve görüntülü iletişimde kullanılan protokolleri kapsayan bir ITU standartıdır. Eski bir protokoldür. Bunun yerini son zamanlarda SIP protokolü almıştır.
VRVS (Virtual Room Videoconferencing System)
Web tabanlı vidyokonferans sistemidir.
VRVS' de 2 yapı vardır :
1.Virtual Room
Aynı yerde olmayan kullanıcıların biraraya geldikleri sanal sınıflara denir.
2.Reflector
Kullanıcıları sanal sınıflara sürekli bir IP tünel vasıtasyla yönlendiren birimdir. Herhangi bir kullanıcı bir işlem yapmak istediği zaman kendisine en yakın reflector ile iletişime gecer. Kullanıcılar birbirleriyle farklı noktalarda bulunan refector' ler yardımıyla iletişim kurarlar.
MPEG (Moving Pictures Experts Group)
Vidyokonferans sırasında, ses ve goruntuyu sıkıştırmak için kullanılan standarttır.
Mpeg-1
Mpeg-2
Mpeg-4 : En yeni sıkıştırma standardıdır. Daha düşük bant genişliğini kullanırlar.
Mpeg-7
Mpeg-21
MJPEG (Motion JPEG)
Görüntünün iletiminden önce, vidyodaki her karenin tek tek sıkıştırılmasına dayanan bir kodlama tekniğidir.
Access Grid
Web Clients
SIP (Session Initiation Protocol)
IETF tarafından sunulan, bir veya birden fazla kullanıcının oturum yaratması, değişiklik yapması, sonlandırma vs. işlemler için kullanılan ve uygulama katmanında çalışan sinyal protokolüdür. H323' ün gelişmiş halidir. IP telefon çağrıları, multimedya sunumlar veya konferanslarda kullanılabilir. Http protokolüne benzerdir.
1-)SIP User Agent
Oturum isteklerine yanıt veren bir sunucu gibi çalışır. Burada temel sunucu/istemci yapısı kullanılır.
2-)SIP Servers
SIP Proxy Server
SIP Redirect Server
3-)SIP Registrar
*SIP'te özel görevleri olan metodlar vardır. "Register" bunların en önemlisidir. "Register" komutunu kabul eden ve kullanıcı kayıtlarını tutan sunuculara registrar denir. Konuşmak isteyen uçlar bir registrar'a kayıt olur. "Register" iki uç arasında bağlantı kurar. "Invite" metodu, diyalog başlatmak için tek yoldur.(wikipedi SIP tanımından alıntı)*
Posted by
Cem Sönmez
zaman:
3/26/2008 03:58:00 ÖS
0
comments
Labels: bitirme, H323, MJPEG, Mpeg, SIP, vidyokonferans, VRVS
