GÖRÜNTÜ YAKALAMA AYGITLARINDAN ALINAN GÖRÜNTÜLERİN GPRS TEKNOLOJİSİ İLE TAŞINABİLİR CİHAZLARA AKTARILMASI



Benzer belgeler
Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Toplu İleti Gönderimi

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

TÜRKİYE CUMHURİYETİ ORMAN GENEL MÜDÜRLÜĞÜ DASDIFFUSION DEPARTMENTAL EDITION 1. FAZ TARAMA PC KURULUM KILAVUZU

MCR02-AE Ethernet Temassız Kart Okuyucu

MODBUS GATEWAY KONFİGÜRASYON YAZILIMI

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

Temel Bilgi Teknlolojileri 1. Ders notları 5. Öğr.Gör. Hüseyin Bilal MACİT 2017

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Coslat Monitor (Raporcu)

Programlama Kılavuzu. IPV Serisi IP Santralleri IPV10 IPV20 IPV50

SATIŞ DESTEK DOKÜMANI

TÜRKİYE CUMHURİYETİ ORMAN GENEL MÜDÜRLÜĞÜ DASDIFFUSION DEPARTMENTAL EDITION 1. FAZ İSTEMCİ PC KURULUM KILAVUZU

PERGO TAKİP VE GÜVENLİK SİSTEMLERİ

MOBİL İLETİŞİM CİHAZLARI İLE EV OTOMASYON SİSTEMLERİ (EOS)

Network IP Çözümleri Digital Signage

Mobil Uygulama Kullanma Kılavuzu

RTP TEKNOLOJİSİ İLE ON-LİNE GÖRÜNTÜ İLETİMİ VE İLGİLİ GÖRÜNTÜNÜN ON-LİNE KONTROLÜ

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

COM API v2.0 Belge sürümü : 2.0.3

NA VNC SERVER KULLANIMI. Genel Bilgi NA VNC Server Ayarları

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 5. Yönlendiricilerde İşlem İzleme ve Hata Ayıklama

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

SATIŞ DESTEK DOKÜMANI

INTERNET ARACILIĞIYLA UZAK BİRİMDEKİ DSP KİTİNE VERİ İLETİMİ

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

WiFi Relay Sayfa 1 / 11. WiFi Relay. Teknik Döküman

Sensör Kullanarak Servis Araçlarının Koltuk Doluluk Durumlarının Uzaktan İzlenmesi

Giyilebilir Teknolojiler ve Solar Enerjili Şapka Uygulaması

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

FAKS SUNUCU EĞİTİM DÖKÜMANI

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

1.1.1 Network Konfigürasyonu

Network IP Çözümleri Digital Signage

BİL-141 Bilgisayar Programlama I (Java)

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

BioAffix Ones Technology nin tescilli markasıdır.

Qsign Manager. Digital Signage Software Hızlı Başlangıç Kılavuzu

Cep T Para Ekranları. Cep T Para SIM Menü İşlem Ekranları

Üst Düzey Programlama

e-fatura Portalı Kullanım Kılavuzu

PAKET TRANSFER SİSTEMİ

Asp.Net Veritabanı İşlemleri

Dokunmatik Panel Ürün Ailesi. Eğitim Sunumu: Proje Uyarlama Kılavuzu

Mobil Cihazlardan Web Servis Sunumu

Java 2 Micro Edition (J2ME)

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

Bilgisayar, elektronik bir cihazdır ve kendi belleğinde depolanan talimatları sırasıyla uygulayarak çalışır. İşler. Bilgi İşlem Çevrimi

ML TFT 5 ARAYÜZ KULLANIM KILAVUZU

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Misafirler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Kets DocPlace LOGO Entegrasyonu

SATIŞ DESTEK DOKÜMANI

TVR 12 Hızlı Başlangıç Kılavuzu

OBEE (Call Statistic Reporter)

SERVİS MENÜSÜ KULLANIM REHBERİ

LMS PC aracı ACS420. LMS parametre ayarlarının yapılması için PC yazılımı. Kurlum ve çalıştırma talimatları

Kurulum; Ana Bilgisayar ve Tahtalara ayrı ayrı yapılmaktadır. KURULUM ŞEMASI x.x x.x x.x x.

BioAffix Ones Technology nin tescilli markasıdır.

PAKET TRANSFER SİSTEMİ

ELEKTRA LOGO AKTARIM PROGRAMI...3

SU KALITE SİSTEMİ. Türkiye Halk Sağlığı Kurumu

IV. Ünite A. BAŞLANGIÇ B. TEMEL İŞLEMLER C. FORMÜLLER VE FONKSİYONLAR D. BİÇİMLEME E. İLERİ ÖZELLİKLER ELEKTRONİK TABLOLAMA

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Kurumsal Güvenlik ve Web Filtreleme

Motorola Phone Tools. Hızlı Başlangıç

OPC Data Access (DA) Temelleri

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

NESNEYE YÖNELİK PROGRAMLAMA

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA.

TEMEL BİLGİ TEKNOLOJİLERİ SORU-CEVAP ÇALIŞMA NOTLARI

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

FINDIK Herkese Açık Filtre

ANALOG ADRESLİ YANGIN ALARM SİSTEMİ YAZILIM KULLANMA KILAVUZU

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

EKLER EK 12UY0106-5/A4-1:

Kurumsal Güvenlik ve Web Filtreleme

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

WEB TABANLI OTOMASYON SİSTEMİ TASARIMI VE YAPIMI DESIGN AND APPLICATION OF A WEB BASED AUTOMATION SYSTEM

VIDEOCELL API. Versiyon 1.0.0

Kurulum ve Sistem Gereklilikleri 1

ÜRETİM SÜREÇLERİNİ GÖZLEMLEMEK VE KONTROL ETMEK İÇİN KABLOSUZ ÇÖZÜM

Java Programlama Giriş

BEUN VPN Hizmeti. VPN Nedir?

MİLLİ EĞİTİM BAKANLIĞI YENİ EPOSTA SİSTEMİ HAKKINDA MEB

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

JAVA API v2.0 Belge sürümü: 2.0.2

Aracı Kurumlar İçin EX-API İzleme ve Raporlama Uygulaması APIMON for IT MATRİKS Bilgi Dağıtım Hizmetleri

MODBUS PROTOKOLÜ ÜZERİNDEN KABLOLU VE KABLOSUZ ENERJİ İZLEME SİSTEMİ

Archive Player Divar Series. Kullanım kılavuzu

Öğr. Gör. Serkan AKSU 1

Bilişim Teknolojileri Temelleri 2011

ikiden çok nokta arasında uygulanan Kablosuz Ağlar (Point-to-Multipoint)

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Vmeet Hızlı Kullanım Kılavuzu Birtel İletişim Teknolojileri

CCD KAMERA KULLANARAK SAYISAL GÖRÜNTÜ İŞLEME YOLUYLA GERÇEK ZAMANLI GÜVENLİK UYGULAMASI

Transkript:

5. Uluslararası İleri Teknolojiler Sempozyumu (IATS 09), 13-15 Mayıs 2009, Karabük, Türkiye GÖRÜNTÜ YAKALAMA AYGITLARINDAN ALINAN GÖRÜNTÜLERİN GPRS TEKNOLOJİSİ İLE TAŞINABİLİR CİHAZLARA AKTARILMASI TRANSFERRING IMAGES FROM CAPTURE DEVICES TO MOBILE DEVICES USING GPRS TECHNOLOGY Salih GÖRGÜNOĞLU a, *, Mehmet GÖK b a, * Karabük Üniversitesi Teknik Eğitim Fakültesi Elektronik ve Bilgisayar Eğitimi Bölümü, Karabük, TÜRKİYE, E-posta: salihg@karabuk.edu.tr b Karabük Üniversitesi Fen Bilimleri Enstitüsü, Karabük, TÜRKİYE, E-posta: mgok@karabuk.edu.tr Özet Belli bir yerin uzaktan izlenmesi günümüzde başta güvenlik sistemleri olmak üzere birçok alanda kullanılmaktadır. Uzaktan izleme için kullanılan teknolojilere örnek olarak IP ya da kablosuz kameralar verilebilir. Ancak bu tür kameralar özel donanımlara sahip olduğundan maliyeti yüksektir. Ayrıca bu tür cihazlara mobil telefonlardan erişmek daha zordur. Bu çalışmada, GPRS ve Java destekli herhangi bir taşınabilir iletişim cihazına, zaman ve ücret maliyetleri de düşünülerek görüntü aktarılması gerçekleştirilmiştir. Görüntü yakalama aygıtından görüntüyü alma ve istemciye gönderebilmek için http sunucu temelli bir yazılım geliştirilmiştir. Cep telefonuna yerleştirilen Java uygulaması ile her hangi bir anda kameradaki görüntü alınabilmektedir. Kullanılan işletim sistemi ile uyumlu herhangi bir kamera kullanılabildiğinden sistemin maliyeti de düşüktür. Ev ve işyeri gibi yerlerde uzaktan erişim ile güvenliğin sağlanması istenilen yerlerde düşük maliyetli bir çözüm olarak önerilebilir. Anahtar Kelimeler: Web kamera, Görüntü aktarma, J2ME Abstract Today remote monitoring of a particular place is used on variety of areas initially security systems. Wireless or IP Cameras are the example technologies for remote monitoring. But such devices are not cost effective because of having particular hardware. Also accessing these devices from mobile devices may not be easy. In this paper, task of transferring an image to any Java and GPRS supported mobile communication device is executed considering time and billing costs. An http server based Java application is developed to capture image from the capture device and transfer it to the client. The image can be taken from capturing device using client application installed on mobile phone at any time. This application is cost effective because any camera compatible with operating system can be used. This application can be considered as a low cost solution for providing security via remote access. Keywords: Web Camera, Image Transfer, J2ME 1. Giriş Taşınabilir iletişim cihazlarının sürekli olarak artan yetenekleri, onları basit iletişim araçları olmanın ötesinde özel amaçlar için kullanılabilir hale getirmiştir. Artık bu tür cihazlar yeni buluşlar için yol açan disiplinler arası araştırma konusu haline gelmiştir. Bilgisayar bilimi ile bağlantılı mobil teknoloji, eğlence, sağlık, uzaktan izleme, ev otomasyon sistemleri ve kontrol gibi alanlar için birçok yeni imkân sunmaktadır. Bir mobil cihaz ve sunucu arasındaki iletişim şekli bu alanlarda yapılan uygulamaların kısıtlarını ve yeteneklerini belirlemektedir [1, 2, 3]. Belli bir yerin uzaktan izlenmesi günümüzde başta güvenlik sistemleri olmak üzere birçok alanda kullanılabilmektedir. Uzaktan izleme için kullanılan teknolojilere örnek olarak IP kameralar ya da kablosuz kameralar verilebilir [4]. Ancak bu tür cihazlardan görüntü alan istemcilerin gelişmiş özelliklere sahip olması gerekebilmektedir. Ayrıca bu tür cihazlar yapılan işe özgü özelliklere sahip olduğundan özel uygulamalar gerçekleştirmek güç olabilmektedir. Bu çalışmada amaç GPRS ve Java destekli herhangi bir taşınabilir iletişim cihazına görüntü aktarılmasını, zaman ve ücret maliyetlerinin de ayarlanarak gerçekleştirilmesidir. Aktarılan görüntünün alındığı yakalama aygıtı, kullanılan işletim sistemi ile uyumlu herhangi bir donanım olabilir. (Bir web kamera, TV kartı vb.) Bu da yapılan uygulamanın kolaylıkla geliştirilebilir ve uygulanabilir olmasını sağlamaktadır. Bu çalışmada http (Hyper Text Transfer Protocol) ile bir bilgisayara bağlı herhangi bir görüntü yakalama aygıtından alınan görüntünün taşınabilir iletişim cihazlarına, daha geniş anlamıyla herhangi bir http istemcisine aktarımı gerçekleştirilmiştir (Şekil 1). Görüntü yakalama aygıtından görüntüyü alma ve istemciye gönderme işlemini gerçekleştirmek için http sunucu temelli bir yazılım ile geliştirilmiştir. İstemci uygulama ise GPRS teknolojisi ile geliştirilmiş olan http sunucusuna Internet üzerinden bağlanan bir mobil cihaz uygulamasıdır. Şekil 1 de, sunucu yazılım, çalıştığı bilgisayara bağlı bir web kameradan aldığı görüntüyü Internet üzerinden başka bir bilgisayara ve GPRS yoluyla bir cep telefonuna aktarmaktadır. Türkiye de GSM hizmeti veren operatörlerin GPRS hizmetini ücretli sağladıkları göz önüne alındığında, görüntü aktarımının ekonomik boyutlarının düşünülmesi gerektiği ortaya çıkmaktadır [5]. Günümüzde GPRS ile teorik olarak 115 Kbit hızına ulaşabilmesi mümkündür [2, 6]. Ancak GSM operatörlerinin alt yapısı, iletişim anındaki ağ koşulları ve baz istasyonu uzaklığı gibi faktörler IATS 09, Karabük Üniversitesi, Karabük, Türkiye

nedeniyle bu değer 50 Kbit seviyelerine ulaşabilmektedir [2]. Bu veri iletişim hız değerinin düşük olması da görüntü boyutunun ayarlanmasını gerektirmektedir. Şekil 1. Görüntü aktarım işleminin akışı. 2. Sunucu Yazılım Sunucu yazılım seçilen görüntü yakalama aygıtından aldığı görüntüyü kendisine gelen http isteğine yanıt olarak vermektedir (Bu yanıt image/png http başlık bilgisi ve görüntü verisinden oluşmaktadır). Sunucu yazılım bir http sunucusunun çalışma esasları dikkate alınarak Java ile ağ programcılığı ve JMF (Java Multimedia Framework) API [7] tekniklerini bir araya getirmiştir. Geliştirilmiş olan sunucu yazılımın arabirim görüntüsü Şekil 2 de görülmektedir. Sunucu yazılım Başlat komutu ile hizmete başlamakta ve görüntü aygıtına ait önizleme penceresi de açılmaktadır. Sunucu yazılımda Yakalama Aygıtları bölümü görüntüsü alınacak olan görüntü yakalama aygıtı açılır liste kutusundan seçilebilmektedir. Port ayarı ise http hizmetinin verileceği port numarasını belirlemektedir. Başlat komut düğmesi ile sunucu yazılımın seçilen port numarası üstünden resim gönderme hizmetine başlaması sağlanmaktadır. Durdur komut düğmesi ise http sunucu hizmetini durdurmakta ve yakalama aygıtını serbest bırakmaktadır. Görüntü ayarları panelinde ise görüntü kalitesi ile ilgili ayarlar yapılmaktadır. Gri tonlu resim onay kutusu işaretlendiğinde gönderilen görüntün gri tonlu halde istemciye gönderilmektedir. Genişlik ve Yükseklik kaydırma çubuklarıyla istemciye gönderilen görüntünün geometrik boyutları ayarlanmaktadır. Görüntü ayarları yardımıyla hem istemciye gönderilen görüntünün boyutları istenildiği gibi ayarlanabilmekte hem de görüntünün veri hacmi düşürülerek GPRS aktarım maliyeti düşürülebilmektedir. Buna ek olarak görüntünün yakalanması ve ağ üzerinden gönderilmesi için hiçbir aracı katman bulunmamaktadır [8]. Bu da gelen http isteğine verilen yanıt sürecinin kontrollü ve hızlı olmasını sağlamaktadır. Sunucu yazılımı Java teknolojisi ile geliştirildiği için farklı işletim sistemlerine kolaylıkla taşınabilir bir yapıya sahiptir [1]. Bu çalışmada hem sunucu hem de istemci yazılımının geliştirilmesi için NetBeans yazılım geliştirme ortamı kullanılmıştır. NetBeans hem açık kaynak kodlu hem de ücretsiz olarak erişilebilen bir yazılım geliştirme aracıdır [9]. Sunucu yazılımı, kullanıcı arabirimi ve sunucu iş parçacığı sınıflarından oluşmuştur. Sunucu iş parçacığı Thread sınıfından türetilmiştir. Çünkü kullanıcı arabirimi ve sunucunun çalışma kanallarını birbirinden ayrı olması gerekmektedir. Bunun nedeni sunucu iş parçacığı, istemcilerinden gelen istekleri bir sunucu soketi nesnesi ile sonsuz döngü içinde beklemektedir. Bu durum kullanıcı arabirimini erişilemez hale getirmektedir. Bu olumsuzluğun önüne geçmek için sunucu iş parçacığı kanalı ayrılmıştır. Kullanıcı arabiriminde Başlat komutunun verilmesiyle beraber sunucu iş parçacığı nesnesi oluşmakta, görüntü yakalama aygıtını etkinleşmekte ve ağdan gelen istekler sunucu soketi ile dinlenmeye başlamaktadır (Şekil 3). Şekil 2. Sunucu yazılımının arabirimi (üstte) ve kamera önizleme pencerelerinin (altta) görüntüleri. private void jbtnbaslatactionperformed(java.awt.event.actionevent evt) { // Eğer etkin bir sunucu nesnesi yok ise oluştur. // Oluşacak olan sunucunun hizmet port numarasını belirle. if (sunucu == null) sunucu = new httpsunucuparcasi( Integer.parseInt( jtxtportno.gettext() ) ); // Sunucuya kullanılacak görüntü yakalama aygıtını bildir. sunucu.aygitayarlar( jcmbaygitlar.getselecteditem().tostring() ); sunucu.bilgi = jtxtbilgi; // Önizleme penceresinin konumunun ayarlanması // için gerekli parametreleri belirle. sunucu.x = this.getx(); sunucu.y = this.gety(); // Görüntü yakalama aygıtını etkinleştir. sunucu.init(); // Sunucuyu başlat ve istekleri bekle. sunucu.start(); Şekil 3. Başlat komutu ile sunucu iş parçacığı ve görüntü yakalama aygıtının başlatılması.

Sunucunun başlatılmasıyla beraber görüntü yakalama aygıtı tarafından yakalanan görüntü oluşturulan önizleme penceresinde görülmektedir (Şekil 2). Dikkat edilirse henüz istek gelmeden görüntü yakalama aygıtı başlatılmaktadır. Bunun nedeni, istek geldiği anda görüntü yakalama aygıtının görüntü almaya hazır olması ve bu anda etkinleştirme için zaman kaybedilmemesidir. Sunucu yazılım bundan sonra iki tip isteği kontrol etmektedir. Bunlardan ilki http://localhost:[port numarası]/kapat şeklindeki http isteğidir. Bu isteği sadece sunucu kendi kendine gönderir. Bu istek, sunucunun kendi sonsuz döngüsünün kırılması için gereklidir. Bu istek geldikten sonra sunucu soketi kapatılır ve görüntü yakalama aygıtı durdurulur. İstendiği takdirde tekrar Başlat komutu ile sunucu parçası farklı bir görüntü yakalama aygıtı kullanarak tekrar başlatılabilir. Sunucuya gelen ikinci istek ise http://[sunucu adresi]:[port numarası]/goruntu biçimindeki görüntü isteğidir. Bu istek, istemciye görüntünün gönderilmesi sürecini başlatan istektir. Bu isteklerin belirlenebilmesi için StringTokenizer adlı sınıf kullanılmıştır (Şekil 3). // İstemciden gelen istek tipine bak String str = "."; while (!str.equals("")) { str = in.readline(); // Eğer kapatma komutu gelire kapatma işlemini yap // Eğer görüntü isteği gelirse görüntüyü gönder if (!str.equals(".") &&!str.equals("") ) { StringTokenizer st = new StringTokenizer( str ); String temp = st.nexttoken(); çağrılmaktadır. Bu metodun output parametresi isteği yapan istemciye görüntü bilgisinin akışını sağlayan stream kanalıdır. Bu kanalı kullanan goruntugonder metodu istemciye görüntüyü gönderir. Bu metot, synchronized ifadesi ile tanımlandığından farklı istemci iş parçacıkları tarafından çağrıldığında, threading mekanizması sayesinde otomatik olarak her bir istemciye sırası ile yanıt vermektedir. goruntugonder metodu çağrıldıktan sonra görüntü yakalama aygıtından görüntüyü alıp kullanıcı arabirimindeki parametrelere göre ayarladıktan sonra bir http cevabı olarak istek yapan istemciye göndermektedir. Sunucu arabirimindeki parametrelerden ilki gönderilen görüntüye ait renk paletini belirlemektedir. Eğer Gri Tonlu Resim onay kutusu işaretli ise istemciye görüntü gri tonlu halde gönderilmektedir (Şekilı2). Bu da gönderilen görüntünün veri hacmini azaltmasını sağlayarak ücret ve zaman maliyetlerini düşürmektedir. Diğer parametre ise gönderilecek görüntünün geometrik boyutlarıdır. Kullanıcı arabirimindeki Genişlik ve Yükseklik kaydırma çubukları ile istemciye gönderilecek görüntünün geometrik boyutları ayarlanabilmektedir (Şekilı2). Görüntün geometrik boyutlarının azaltılması da aktarılan veri hacminin azalması bakımından önemlidir. Şekil 5 te sunucu yazılımın çalışmasına ilişkin akış şeması görülmektedir. Sunucu yazılımı başlat Ağdan görüntü isteklerin gelmesini bekle // GET metodunu kontrol et if (temp.equals("get")) { String komut = st.nexttoken(); İstek1 (Thread 1) İstek1 (Thread 1) İstek N (Thread N) if (komut.equals("/goruntu")) { // Eğer komut goruntual ise // Senkronize istekleri sıraya koyarak thread // mekanizması ile çağrı yapılıyor goruntugonder(output); else if (komut.equals("/kapat")) // Eğer sunucu kendi kendine // kapatma komutu yollamışsa if (bilgi!= null) if (dur) bilgi.append( zaman() + ": Sunucu kapatma isteği\r\n"); // Bütün işlemler tamamlandı // Http istek bağlantısını sonlandır remote.close(); Şekil 3. Sunucuya gelen isteklerin ayrıştırılması. Sunucu yazılımında her bir istemciye yanıt vermek için yine iş parçacığı (thread) oluşturulmaktadır. Bu iş parçacıkları görüntü yakalama aygıtına aynı anda erişemeyeceğinden, görüntü istem talepleri Java threading (iş parçacığı) mekanizması sayesinde sıraya konulmaktadır. Şekil 3 te görüldüğü gibi, görüntü isteğinin gelmesi durumunda goruntugonder(output) metodu Şekil 5. Sunucu yazılımın çalışmasına ilişkin akış şeması 3. İstemci Yazılım Gelen istekleri sıraya koy İlgili İstemciye Görüntüyü Gönder İstemci yazılım, J2ME (Java2 Micro Edition) teknolojisi ile geliştirilmiş mobil bir uygulamadır. Java 2 Micro Edition mobil cihazlar için tanımlanmış bir grup belirtim ve teknolojidir. J2ME belli sınıflardaki cihazlar için bir grup konfigürasyon ve profillere bölünmüştür [1, 3]. İstemci uygulamada iş parçacığı (thread) tabanlı bir http istemi gerçekleştirilmekte ve GPRS yoluyla sunucu yazılıma bağlanıp görüntü alınmaktadır. Şekil 6 da istemci uygulamasının J2ME emülatör içindeki çalışması görülmektedir. Geliştirilen J2ME uygulaması, cep telefonuna yüklenmeden önce bu emülatör yardımıyla test edilip çalıştırılabilmektedir. İstemci yazılım Görüntü Al komutu ile belirtilen IP adresi ve portta hizmet vermekte olan görüntü sunucusundan görüntü alınmaktadır (Şekil 7, 8). Görüntü alma komutu aslında sunucu yazılıma http://[sunucu adresi]:[port

numarası]/goruntu şeklinde bir http isteği gönderir. Aldığı yanıt ise sunucu yazılımın istek esnasında görüntü yakalama aygıtından aldığı PNG (Portable Network Graphics) biçimindeki görüntüdür. İstemci uygulamada görülen durum alanında alınan görüntünün boyutu ve ne kadar sürede geldiği gösterilmektedir. İstemci uygulamanın Ayarlar komutu ile uygulama bağlantı ayarları ekranına geçilmektedir. (Şekil 7, 8) Bu ekranda görüntü sunucusunun hizmet verdiği IP adresi ve port numarası ayarlanmaktadır. İstemci uygulama kapatılıp açılsa bile bu parametreleri saklayabilmektedir. Şekil 8. İstemci uygulamanın bağlantı ayarları ekranı. Şekil 6. Görüntü istemci uygulamasının görüntü aktarımı tamamlandıktan sonra Emülatör içindeki görüntüsü. İstemci yazılım üç Java sınıfından oluşmaktadır. Bunlardan ilki uygulamaya ait ayarların kaydedilmesini sağlayan metotları içeren Preferences sınıfıdır. Bu sınıf yardımıyla görüntü sunucusuna ait IP adresi ve hizmet portu kaydedilmektedir. İkincisi görüntü sunucusuna bağlanıp görüntüyü getiren araci adlı sınıftır. Bu sınıf Java nın Runnable arabirimini icra ederek kendisinden miras alan sınıfın kendi metotlarını kullanabilmesini sağlamaktadır. araci adlı sınıf da thread (iş parçacığı) yapısına bağlı olarak çalışır bu sayede ağdan görüntü bilgisi getirilirken kullanıcı arabiriminin erişilemez hale gelmesi engellenmiş olur. İstemci yazılımı oluşturan son sınıf ise goruntuistemci sınıfıdır. İstemci uygulamasının çalıştığı ana sınıf olup kullanıcı arabirimini oluşturan ve icra eden metotları içermektedir. Preferences sınıfı J2ME kütüphanesine ait Record Store (kayıt deposu) yapısını kullanmaktadır. Bir Record Store, kayıtlar halindeki veriyi tutan küçük bir veritabanıdır [9]. Şekil 9 da, istemci uygulamasının başlangıcı esnasında daha önceden kaydedilmiş parametrelerin nasıl okunduğu görülmektedir. public void startmidlet() { switchdisplayable(null, getfrmana()); try { ayarlar = new Preferences("ayarlar"); adres = ayarlar.get("adres"); hizmetportu = ayarlar.get("hizmetportu"); catch (RecordStoreException rse) { strdurum.settext( rse.getmessage() ); Şekil 7. Görüntü istemci uygulamasının menüsü ve Görüntü Al komutu. Şekil 9. Sunucuya ait bilgilerin istemci uygulamasının açılışı sırasında alınması. Uygulamada Ayarlar ekranında, ayarlar değiştiği zaman yine Preferences sınıfı yardımıyla değişen parametreler kaydedilmektedir.

araci sınıfı, kullanıcı arabiriminde goruntual komutu verildiğinde, ayarlar ekranından alınan parametrelerle (görüntü sunucusunun ip adresi ve hizmet portu) sunucuya bağlanıp görüntüyü almakta ve kullanıcı arabirimine göndermektedir. araci sınıfı, GPRS ağı üzerinden sunucuya bağlanırken openconnection adlı metodu kullanır. Bu metot içinde HttpConnection sınıfı yardımıyla sunucuya bağlanılıp görüntü getirilir, görüntünün getirilme süresi hesaplanır ve resmin boyut bilgisi alınır. Bütün bu bilgiler kullanıcı ekranına arabirim (Interface) metotlarıyla aktarılır. HttpConnection nesnesi http veri alış-verişinin üzerinden gerçekleştirildiği J2ME sınıfıdır [10]. private Image openconnection() throws IOException{ lbaslangic = System.currentTimeMillis(); HttpConnection connecton=(httpconnection)connector.open(theurl); DataInputStream is=connecton.opendatainputstream(); // Alınan görüntün boyutunu al boyut = (int) connecton.getlength(); byte[] data = new byte[boyut]; Şekil 11. goruntuistemci sınıfına ait formların tasarım halindeki görüntüsü is.readfully(data); is.close(); connecton.close(); // Görüntü aktarımı için geçen süreyi hesapla lbitis = System.currentTimeMillis(); lgecenzaman = lbitis - lbaslangic; return Image.createImage(data, 0, boyut); // Arabirim public static interface ResponceListener{ // Arabirim fonksiyonları // Alınan görüntü bilgisi ve diğer bilgileri kullanıcı // arayüzüne gönder public void setresponce(image responce); public void handleexception(exception e); public void boyutal(int boyut); public void sureal(long sure); Şekil 10. Sunucudan görüntünün alındığı openconnection() metodu ve arabirim metotları goruntuistemci sınıfı istemci uygulamasının ana sınıfı olup iki adet ekrandan (form) oluşmaktadır. Bunlardan ilki ağdan alınan görüntünün gösterildiği ana form (frmana) ve ikincisi ise görüntü sunucusuna bağlantı için kullanılan parametrelerin (ip adresi ve hizmet portu) ayarlandığı form (frmayarlar) ekranlarıdır (Şekil 11). 4. Sunucu ve İstemci İletişimi İstemci uygulama Nokia E50 ve Sony Ericsson K700 cep telefonu modellerinde test edilmiş ve görüntü aktarımı uygulaması başarıyla gerçekleştirilmiştir. Şekil 12 de sunucu yazılımının bilgilendirme alanında bir iletişim örneği verilmiştir. Bu alanda istek yapan istemcinin IP adresi ve gönderilen görüntünün boyutu verilmektedir. Şekil 12. Sunucu yazılımın bilgilendirme alanında görüntü aktarımı sırasında gerçekleşen bildirim. Çizelge 1 de sunucu arabiriminde ayarlanan görüntü boyutlarına göre (piksel olarak boyutlar) görüntünün kilobayt olarak boyutu ve aktarım süresi verilmiştir. Bu çizelgede verilmiş olan aktarım örnekleri yerel ağda emülatör yardımıyla gerçekleştirilmiştir. Çizelge 1. Görüntünün geometrik boyutlarına göre kilobayt boyutu ve aktarım süresine ilişkin çizelge. Geometrik Boyut Aktarım Boyutlar (Kilobayt) Süresi (ms) 50X50 5 47 100X100 19 63 150X150 39 93 200X200 65 156 Çizelge 1 deki aktarımlar verileri görüntünün renkli haldeki transferine ilişkin verilerdir. 100X100 boyutlarındaki 6 Kb lık gri tonlamalı görüntünün aktarımı en düşük 42 ms de gerçekleştirilmiştir. Görüntünün piksel boyutlarının ve renk tonlamasının düşürülerek görüntünün kilobayt olarak boyutu ve aktarım süresinin düşürülebildiği Çizelge 1 de açıkça görülmektedir. Bu aktarım süresinin sunucu ve istemci yazılımlarının çalıştırıldığı işletim sistemi, donanım ve hizmet sağlayan operatöre bağlı olarak değişebileceği göz önünde bulundurulmalıdır. Nokia E50 cep telefonu üstünde AVEA operatörü üstünden yapılan testte renkli 100X100 piksel boyutlarında 23 Kb lık örnek bir görüntü aktarımı 28245 ms sürmüştür. SonyEricsson K750i cep telefonu üstünde TURKCELL operatörü ile 24 Kb lık bir görüntünün aktarımı 24000 ms sürmüştür. GPRS ağı

üzerinden yapılan bu aktarım süresinin göreceli olarak fazla olduğuna dikkat edilmelidir. Ancak bu aktarım süresi 3G teknolojisinin ile gelen yüksek hızlı veri iletişimi ile oldukça azaltılabilecektir. 3G teknolojisi 384 Kbit ten 2 Mbit e kadar veri iletişim hızı sağlayabilmektedir [6]. 5. Sonuç Gerçekleştirilen uygulama ile sunucu yazılımın yakaladığı görüntüler bilgisayar ve cep telefonu gibi istemcilere başarı ile aktarılmıştır. GPRS teknolojisinin veri aktarım hızının düşük olması görüntü aktarma işlemi süresinin uzun sürebilmesine neden olmaktadır. Ancak uygulamanın Java destekli birçok cihazda çalışabilmesi ve çok uzaklara görüntü aktarılabilmesi büyük bir avantajdır. Aktarım süresi, sunucudaki görüntü ayarları denetimleri yardımıyla görüntü boyutlarının ayarlanarak düşürülebilmektedir. Çalışmanın bir sonraki basamağında sunucu yazılımın çalıştığı bilgisayara bağlı birden fazla kameradan istemcilere görüntü aktarımı, istemci üzerinden sunucuya gönderilecek komutlar ile sunucuya bağlı kapı, elektronik ev aletleri gibi cihazların uzaktan denetimi basit bir donanım ve cep telefonu yardımı ile düşük maliyetli olarak gerçekleştirilebilir. Kaynaklar [1] Knyziaka, T. and Winiecki, W., The new prospects of distributed measurement systems using Java 2 Micro Edition mobile phone, Computer Standards & Interfaces 28 (2005) [2] Muñoz, N.D., Eusse, J.F., Cruz,E. J., Murillo,L.G., Echeverri,A., Robot Teleoperation System Based on GPRS, Fourth Congress of Electronics, Robotics and Automotive Mechanics [3] M. Van Der Werff, X. Gui, and W.L. Xu, A MOBILE- BASED HOME AUTOMATION SYSTEM, [4] Abram, F., Kruegle, H., CCTV Surveillance (Second Edition), Analog and Digital Video Practices and Technology 2006, 123-125 [5] http://abonelik.tnn.net/gprs_faq.asp#2 (07.08.2008) [6] Bates, Regis J., GPRS (General Packet Radio Service), McGraw-Hill Copyright 2004, 59-60 [7] http://java.sun.com/javase/technologies/desktop/media /jmf/ (07.08.2008) [8] http://www.javaworld.com/javaworld/jw-05-2003/jw- 0516-webcam.html (07.08.2008) [9] http://www.netbeans.org [10] Knudsen, J., Wireless Java Developing with J2ME, Second Edition, Apress 2003