MOBİL TEKNOLOJİLERDE SERVİS TABANLI YAZILIM GELİŞTİRME



Benzer belgeler
MOBİL TEKNOLOJİLERDE SERVİS TABANLI YAZILIM GELİŞTİRME

Mobil Cihazlardan Web Servis Sunumu


Asp.Net Veritabanı İşlemleri

ÖZGÜR YAZILIMLAR İLE J2EE

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

Bilgi Servisleri (IS)

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

Java 2 Micro Edition (J2ME)

BİLGİSAYAR AĞLARI VE İLETİŞİM

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

Video Management Software. ÜrünBilgileri

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Servis olarak Altyapı

Bilgisayar Ağları ve Türleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

Üst Düzey Programlama

VERİ TABANI UYGULAMALARI

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

WEB SERVS TABANLI GELTRLEN MOBL UYGULAMALAR: ODTÜ MOBL ÖRENC LER BLG SSTEM (MOBS)

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

Taşınabilir Teknolojiler

BiliĢim Teknolojileri Alanı

Swing ve JDBC ile Database Erişimi

MOBIL UYGULAMA GELIŞTIRME

BİLİŞİM TEKNOLOJİLERİ

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Doç. Dr. Cüneyt BAYILMIŞ

Uygulamaları ulut bilişime geçirmeden önce, firmanızın/şirketinizin ya da. işinizin gereksinimlerini göz önüne almanız gerekir. Aşağıda bulut bilişime

İNTERNET PROGRAMCILIĞI DERSİ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Film Arşiv Sistemi. Yazılım Tasarım Belgesi

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Öğr. Gör. Serkan AKSU 1

2. hafta Bulut Bilişime Giriş

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

EKLER EK 12UY0106-5/A4-1:

BİLGİSAYAR AĞLARI Bilgisayar İletişimi Nedir? Veri İşleme Modelleri ve Ağ Gelişimi Merkezi İşleme

Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek 1, R. Cenk Erdur 2 1,2

Akdeniz Üniversitesi

BioAffix Ones Technology nin tescilli markasıdır.

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Doç. Dr. Cüneyt BAYILMIŞ

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI

AĞ TEMELLERİ 4.HAFTA CELAL BAYAR ÜNİVERSİTESİ AKHİSAR MESLEK YÜKSEKOKULU

Veritabanı. Ders 2 VERİTABANI

Bir bölgede başka bir bölgeye karşılıklı olarak, veri veya haberin gönderilmesini sağlayan.sistemlerdir.

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi GÜVENLİK VE İZİNLER. BLM401 Dr.Refik SAMET

BÖLÜM 7. Telekomünikasyon, İnternet ve, Kablosuz Teknoloji. Doç. Dr. Serkan ADA

Üniversite Yerleşkelerinde İletişim Gereksinimi ve Bir Çözüm Önerisi

DERS BİLGİ FORMU Mobil Telefon Elektrik-Elektronik Teknolojisi Haberleşme Sistemleri

5. PROGRAMLA DİLLERİ. 5.1 Giriş

FIRAT ÜNİVERSİTESİ SMS - WAP OTOMASYONU UNIVERSITY OF FIRAT SMS - WAP OUTOMASION

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Veritabanı Uygulamaları Tasarımı

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Java Temel Özellikleri

08217 Internet Programcılığı I Internet Programming I

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

HSE RADAR. İş Sağlığı ve Güvenliği Yönetimi Uygulama, Denetim, Eğitim ve Takip HSE GLOBAL YAZILIM A.Ş. 11 Mart 2016

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

Google Cloud Print Kılavuzu

1.PROGRAMLAMAYA GİRİŞ

Hüseyin ÇIRAL

İnternet Programcılığı

Java Programlama Giriş

İletişim Birimleri. Çıkış Birimleri. Giriş Birimleri. İşlem Birimi. Depolama Birimleri. Bellek Birimleri

VERĠ HABERLEġMESĠ OSI REFERANS MODELĠ

Enterprise Resource Planning - ERP - Kurumsal kaynak planlaması ya da iş letme kaynak planlaması,

1.Mailbox Server Role:

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

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

ÖĞRENME FAALİYETİ 2 ÖĞRENME FAALİYETİ 2

Psikolojik Danışman: Hasan KARAKIŞ

Java. Hakkımızda. Java Eğitimi

UHeM ve Bulut Bilişim

Logsign Hotspot. Güvenli, izlenebilir, hızlı ve. bağlantısı için ihtiyacınız olan herşey Logsign Hotspot da!

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

VPN NEDIR? NASıL KULLANıLıR?

08225 AĞ TEMELLERİ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. 17 Eyl Salı. Öğr. Gör. Murat KEÇECİOĞLU

Autodesk Inventor 2012 Yenilikler

Nagios XI Günümüzün talep gören kurumsal gereksinimleri için en güçlü BT altyapısı gözetim ve uyarı çözümüdür.

Grid Bilgi Sistemleri (Grid Information Systems)

Bilgiyi Keşfedin! Özelleştirme, Eklenti ve Veri Entegrasyonu Kurumsal Seviyede Yönetim ve Performans

PAKET TRANSFER SİSTEMİ

Bilişim Teknolojileri Temelleri 2011

Kurumsal Kimlik Yönetimi ve Güçlü Kimlik Doğrulama. Yılmaz Çankaya

İŞ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

Fuel Automation Systems

Transkript:

1 EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) MOBİL TEKNOLOJİLERDE SERVİS TABANLI YAZILIM GELİŞTİRME Oğuz DÖNMEZ Bilgisayar Mühendisliği Anabilim Dalı Bilim Dalı Kodu:619.02.00 Sunuş Tarihi:16.12.2005 Tez Danışmanı: Prof. Dr. Yasemin TOPALOĞLU Bornova-İZMİR

2 Oğuz Dönmez tarafından Yüksek Lisans tezi olarak sunulan Mobil Teknolojilerde Servis Tabanlı Yazılım Geliştirme başlıklı bu çalışma E.Ü. Lisansüstü Eğitim ve Öğretim Yönetmeliği ile E.Ü. Fen Bilimleri Enstitüsü Eğitim ve Öğretim Yönergesi nin ilgili hükümleri uyarınca tarafımızdan değerlendirilerek savunmaya değer bulunmuş ve 16.12.2005 tarihinde yapılan tez savunma sınavında aday oybirliği/oyçokluğu ile başarılı bulunmuştur. Jüri Üyeleri: İmza Jüri Başkanı : Prof. Dr. Yasemin Topaloğlu... Raportör Üye: Doç. Dr. Ata Önal... Üye : Yrd. Doç. Dr. Adil Alpkoçak...

3 ÖZET MOBİL TEKNOLOJİLERDE SERVİS TABANLI YAZILIM GELİŞTİRME DÖNMEZ, Oğuz Yüksek Lisans Tezi, Bilgisayar Mühendisliği Bölümü Tez Yöneticisi: Prof. Dr. Yasemin TOPALOĞLU Aralık 2005, 65 sayfa Servis tabanlı yazılım geliştirme paradigması, kaynakların ve yazılımın yeteneklerinin servisler aracılığıyla, paylaşılmasını sağlar. Öte yandan, mobil cihazlar, sınırlı depolama kapasitesi ve sınırlı çalışma süresi gibi kaynak kısıtlamalarına sahiptir. Bu çalışmada, mobil cihazların kullanımını kolaylaştıran servis tabanlı yazılım geliştirme paradigması ile bir uygulama geliştirilmiştir. Geliştirilen uygulama, bir öğretim kurumunda ders programı ayarlanması, sınav yeri ve zamanı, toplantı yeri ve zamanı ayarlanması gibi işlemlerin mobil cihazlardaki yazılımlarla düzenlenmesini ve izlenmesini sağlamaktadır. Uygulamada istemci mobil cihaz olarak cep telefonu, servis sağlayıcı olarak Palm OS Emulator ler ve ara katman olarak JXTA(Juxtapose) yazılımı kullanılmıştır. Sistem, bir mobil cihazın(örn., cep telefonu), GPRS(General Packet Radio Service) gibi bir teknoloji ile JXTA Shell in kurulu olduğu

4 bilgisayara erişmesi ile kullanılabilir. Mobil cihazlar uzaktaki bilgisayardaki servis sağlayıcı emülatörlere GPRS ağı aracılığıyla sorgu gönderebilirler. Cep telefonları ile uzaktaki bilgisayardaki servis sağlayıcı emülatörler arasındaki iletişim JXTA Shell in kurulu olduğu bilgisayar üzerinden gerçekleştirilir.

5 ABSTRACT SERVICE ORIENTED SOFTWARE DEVELOPMET ON MOBILE TECHNOLOGIES DÖNMEZ, Oğuz MSc in Computer Eng. Supervisor: Prof. Dr. Yasemin TOPALOĞLU December 2005, 65 pages Service oriented software development paradigm provides sharing the resources and the software capabilities by using the services. Mobile devices have restricted resources, like limited storage capacity and limited standby time. In this study, an application has been developed with service oriented software development paradigm which simplifies the use of mobile devices. The application developed, provides arranging and tracking processes of forming the course schedules, setting exam halls and dates, meeting halls and dates in an education association. These processes have been implemented with the software on mobile devices. In the application; mobile phone has been used as a client mobile device, Palm OS Emulators have been used as service providers and JXTA(Juxtapose) has been used as the middleware technology. Application can be used by accessing the computer on which the JXTA Shell has been installed. Accessing can be done by the mobile network technologies like GPRS(General Packet Radio Service). Mobile

6 devices can query the service providers on the remote computer via GPRS network. Mobile phones and service providers on the remote computer communicate over computer on which JXTA Shell has been installed.

7 TEŞEKKÜR Bu çalışma konusunun seçiminde ve çalışmanın yürütülmesinde yardımlarını esirgemeyen sayın hocam Prof. Dr. Yasemin Topaloğlu na teşekkür ederim. Ayrıca yardımlarından dolayı sayın hocam Doç. Dr. Ata Önal a ve çalışma boyunca beni her yönden destekleyen aileme teşekkürü bir borç bilirim.

8 İÇİNDEKİLER Sayfa ÖZET... V ABSTRACT.... VII TEŞEKKÜR.... IX ŞEKİLLER DİZİNİ... XV 1.GİRİŞ... 1 2. SERVİS TABANLI YAZILIM GELİŞTİRME. 3 2.1 Giriş.... 3 2.2 Ara Katman (Middleware) Teknolojileri. 5 2.2.1 Web servisleri(wsdl-soap). 5 2.2.2 ebxml(electronic Business using extensible Markup Language)... 6 2.2.3 CORBA(Common Object Request Broker Architecture)... 6 2.2.4 CCM(CORBA Component Model). 6 2.2.5 EJB(Enterprise Java Beans).. 7 2.2.6 JXTA. 7 2.2.7 JXME(JXTA for J2ME)... 8 2.3 Servis Kayıtçıları.. 8

9 İÇİNDEKİLER(devam) Sayfa 2.3.1 UDDI(Universal Description, Discovery and Integration) kayıtçı...... 9 2.3.2 ebxml kayıtçı.... 9 2.3.3 CORBA keşif servisleri...... 9 2.3.4 JNDI(Java naming and directory interface) API(Application programming interface)....... 10 2.4 Servis Tanımlamaları..... 10 2.5 Servis Tabanlı Mimari... 11 2.5.1 Temel servis tabanlı mimari... 11 2.5.2 Genişletilmiş servis tabanlı mimari.... 12 2.6 Servis Tabanlı Tasarım Yaklaşımları.... 12 2.6.1 EDOC(Enterprise distributed object computing) profili.... 12 2.6.2 UML(Unified modelling language) 2.0.. 12 3. MOBİL TEKNOLOJİLER.. 13 3.1 Donanım.. 13 3.2 Yazılım... 13 3.2.1 SMS.... 14 3.2.2 WAP..... 14 3.2.3 J2ME... 15 3.2.4.NET compact framework.... 15 3.3 Ağ... 16 3.3.1 GSM.... 17

10 İÇİNDEKİLER(devam) Sayfa 3.3.2 CDMA..... 17 3.3.3 WLAN..... 17 3.3.4 GPRS.. 18 3.3.5 Bluetooth........ 18 3.3.6 3G....... 19 4. MOBİL TEKNOLOJİLERLE SERVİS TABANLI YAZILIM GELİŞTİRMENİN ENTEGRASYONU.... 20 4.1 Analiz...... 21 4.1.1 Veri Sözlüğü... 21 4.1.2 Nesne modeli... 22 4.1.3 Servisler... 23 4.2 Tasarım... 25 4.2.1 Veri sözlüğü...... 25 4.2.2 Servisler..... 25 4.2.3 Nesne modeli.. 27 4.2.4 Dinamik modelleme... 29 4.3 Gerçekleştirimde Kullanılan Araç ve Teknolojiler... 32 4.3.1 JBuilder9 32 4.3.2 Palm OS Emulator..... 33 4.3.3 MIDP4Palm1.0...... 33 4.3.4 JXTA Shell. 33 4.3.5 JXME API.. 34 4.3.6 Enterprise Architect(EA) 4.50... 34 4.3.7 GPRS.. 34 4.3.8 Cep telefonu... 35

11 İÇİNDEKİLER(devam) Sayfa 4.4 Sistem Mimarisi... 35 4.5 Gerçekleştirim... 37 4.5.1 Gerçekleştirilen sınıflar..... 37 5. SİSTEMİN KULLANIMI... 40 5.1 Sistem Gereksinimleri... 40 5.2 Genel Tanıtım 40 5.3 Örnek Senaryo 1- Ders Programının Oluşturulması ve Listelenmesi... 54 5.4 Örnek Senaryo 2- Sınavların Ayarlanması ve Listelenmesi. 56 6. SONUÇ... 57 KAYNAKLAR DİZİNİ... 59 EKLER 64 ÖZGEÇMİŞ. 65

12

13

14 Şekil ŞEKİLLER DİZİNİ Sayfa 2.1 Kuruluş Servislerinin Kullanım Senaryosu... 4 4.1 Analiz safhasındaki nesne modeli..... 23 4.2 Uygulamanın Tasarım Safhasındaki Nesne Modeli..... 28 4.3 Öğretim elemanlarının ders yüklerinin izlenmesi senaryosunun tasarım safhasındaki dinamik modeli.. 29 4.4 Öğretim elemanlarının ders programlarının izlenmesi senaryosunun tasarım safhasındaki dinamik modeli... 30 4.5 Dersler için sınav salonu ve saati saptanması senaryosunun tasarım safhasındaki dinamik modeli.. 31 4.6 Bir öğretim elemanına ait gözetmenliklerin listelenmesi senaryosunun tasarım safhasındaki dinamik modeli... 32 4.7 Geliştirilen sistemin mimarisi... 36 5.1 JXTA Configurator penceresinin Basic sekmesi...... 41 5.2 JXTA Configurator penceresi Advanced sekmesi.... 42 5.3 Genel seçimler penceresi... 43

15 ŞEKİLLER DİZİNİ(devam) Şekil Sayfa 5.4 Yönetimsel işlemler penceresi........ 43 5.5 Uygun Olmayan Zaman penceresi..... 44 5.6 Bölüm seçme penceresi...... 45 5.7 Toplantı düzenleme penceresi.... 45 5.8 Ders atama penceresi.. 46 5.9 Sınav ayarlama penceresi... 47 5.10 Ders ekleme penceresi.... 47 5.11 Öğretim elemanı ekleme penceresi. 48 5.12 Salon ekleme penceresi...... 49 5.13 Bölüm ekleme penceresi.... 50 5.14 Genel işlemler penceresi... 50 5.15 Öğretim elemanı seçme penceresi.. 51 5.16 Öğretim elemanı/bölüm penceresi...... 52

16 Şekil ŞEKİLLER DİZİNİ(devam) Sayfa 5.17 Sınıf seçim penceresi... 52 5.18 Sisteme giriş penceresi.... 54 5.19 Örnek senaryo 1 sonucu... 55 5.20 Örnek senaryo 2 sonucu.. 56

17 1.GİRİŞ Son yıllarda, mobil araçların kullanışlılığı ve sundukları çözümlerin özellikleri nedeniyle, geleneksel masaüstü sistemlerden mobil araçlara doğru geçiş hızlanmıştır. Bunun sonucunda mobil araçların kullanımı yaygınlaşmıştır. Toplum mobil hesaplama teknolojisini benimsedikçe; geleneksel sistemlerdeki yazılımın performans ve kalite standartlarını mobil cihazlarda da beklemektedirler (Handorean et al., 2004). Geleneksel yazılım sistemlerindeki performans ve kalite standartlarını mobil cihazlara aktarmada kullanılan paradigmalardan biri, kaynakları ve yetenekleri başka kullanıcılar için kullanışlı hale getiren, yetenekleri dağıtık cihazlara aktarmayı sağlayan servis tabanlı yazılım geliştirme paradigmasıdır. Bu çalışmada mobil teknolojiler ve servis tabanlı yazılım geliştirme paradigması incelenerek, bu alandaki teknoloji ve araçlar ile örnek bir uygulama geliştirilmiştir. Bu uygulamada istemci cihazlar bir mobil cihaz olabilmekte ve bir iletişim teknolojisi ile(örn., GPRS) uzaktaki servis sağlayıcı cihazla iletişim kurabilmektedir. Ayrıca istemci cihazlarla servis sağlayıcı cihazlar arası iletişim JXTA Shell in kurulu olduğu bilgisayar aracılığıyla gerçekleştirilir. Bu uygulama ile bir yüksek öğrenim kurumundaki bölümlerin ders programlarının, sınav tarihlerinin, sınav gözetmenlerinin belirlenmesi yanında toplantı düzenlenmesi, öğretim elemanlarının derslerinin, görevlerinin, toplantılarının, gözetmenliklerinin, ders programlarının takibi amaçlanmaktadır. Tezin ikinci bölümünde servis tabanlı yazılım geliştirme literatürü incelenmiş ve bu konuda bilgi verilmiştir.

18 Tezin üçüncü bölümünde mobil teknolojiler, donanım, yazılım ve ağ teknolojileri açısından incelenmiştir. Tezin dördüncü bölümünde mobil teknolojilerle servis tabanlı yazılım geliştirmenin bütünleştirilmesi üzerinde durulmuştur. Tezin beşinci bölümünde mobil teknolojilerle servis tabanlı yazılım geliştirmenin bütünleştirilmesine örnek olarak geliştirilen sistem tanıtılmış ve sistemin kullanımı açıklanmıştır. Tezin altıncı bölümünde bu çalışmanın sonuçları ve gelecekte yapılabilecekler özetlenmiştir.

19 2. SERVİS TABANLI YAZILIM GELİŞTİRME 2.1 Giriş Servis; kendi kendini tanımlayan, platform bağımsız, hızlı ve düşük maliyette dağıtık uygulamalar geliştirmeyi sağlayan bileşenlerdir (Papazoglou and Heuvel). Servis tabanlı yazılım geliştirme, servisleri uygulama/çözüm geliştirmek için temel elemanlar olarak kullanır (Papazoglou, 2003). Servis tabanlı yazılım geliştirme nesneye dayalı yazılım geliştirmeyi kendisine başlangıç noktası olarak kabul eder. Nesneye dayalı yazılım geliştirmeden ayrılan yanı; problemlerin, nesnelerin sağladığı servisler cinsinden modellenmesidir. Servis tabanlı yazılım geliştirmede; istemci, istediği servisi noktadan-noktaya(peer-topeer)tarzında kullanabilir, belirli bir sunucuya bağlı değildir (Bieber and Carpenter). Servisler; işbirliği yapabilen yazılım bileşenleri olup, çeşitli uygulamalar servis olarak tanımlanabilir. Servis tabanlı yazılım geliştirmenin genel kullanım senaryosu şekil 2.1 de gösterilmiştir. Bu senaryodaki adımlar aşağıda belirtilmiştir(dijkman et al., 2003): 1. Bir kuruluş sağladığı kuruluş servisinin tanımını ve bu servise nasıl erişileceğini servis kayıtçısına gönderir. 2. Başka bir kuruluş, ihtiyaçlarını karşılayacak servis için kayıtçıyı sorgular.

20 3. Kayıtçı kuruluşun isteklerini karşılayabilecek servisleri döndürür. 4. Kuruluş en uygun servise bağlanabilir. Şekil 2.1. Kuruluş Servislerinin Kullanım Senaryosu (Dijkman et al., 2003) Servis tabanlı yazılım geliştirmenin yararları aşağıdaki gibi sıralanabilir (Pallos, 2001): Bir sistem kolayca genişletilebilir. Gerçek anlamda yeniden kullanılabilir bileşenler geliştirilebilir. Yazılım daha kısa sürede gerçekleştirilebilir. Yazılım için başlangıç yatırımları azalır.

21 Yazılım geliştirme ücreti azalır. Risk azalır. Servislere değişik şekilde bağlanıp yeni yetenekler ve değerler kazandırılabilir. 2.2 Ara Katman (Middleware) Teknolojileri Birden çok uygulamanın işbirliği yapabilmesi için gerekli iletişim altyapısı ara katman (middleware) adı verilen yazılımlarla sağlanır. İstemciler bir servisi kullanabilmek için servis sağlayıcısı tarafından sağlanan servislere istekte bulunurlar. Bazı ara katman teknolojilerinde, gerçekleştirilecek bir görevi istemek, servisin işlemini çağırmaya karşılık gelir ve işlemin tamamlanmasıyla sonuç elde edilir. Diğer ara katman teknolojilerinde ise belirli bir görevin gerçekleştirmesi servis sağlayıcısından istenirken mesaj geçirme mekanizması kullanılır. Son yıllarda geliştirilen Web servisleri, servis tabanlı yazılımların en yaygın olarak kullanılan örneğidir (Dijkman et al., 2003). 2.2.1 Web servisleri(wsdl-soap) Internet teknolojileri ile kullanıma sunulan yazılım bileşenlerine Web servisi denir (Pring et al., 2001). Web servis sağlayıcı WSDL(Web Services Description Language) servis tanımını yaratır. WSDL servis tanımında, servisin işlemleri ve her işlem için o işleme geçirilen ve o işlemden alınacak mesajlar belirtilir (Ferris and Farrel, 2003). Web

22 servisleri, XML(Extensible Markup Language) verisi ve SOAP çağrılarıyla haberleşirler. SOAP çağrıları, WSDL de ifade edilen web servislerinin tanımlamalarını taşır (Dijkman et al., 2003). XML, yapısal belgeleme için kullanılan bir işaretleme dilidir (Walsh, 1998). 2.2.2 ebxml(electronic Business using extensible Markup Language) ebxml, bir araya geldiğinde modüler elektronik iş çatısını(framework) oluşturan belirtimler kümesine denir. ebxml in amacı iş ortakları arasındaki elektronik veri değişimini ve birlikte çalışabilmeyi sağlamaktır (Mertz, 2001; Rawlins, 2001). ebxml standardı ile servis sağlayıcıları zaten var olan iş sürecinin parçası olan servisi sağlarlar (Dijkman et al., 2003). 2.2.3 CORBA(Common Object Request Broker Architecture) CORBA, uygulama bütünleştirme teknolojisidir. Farklı uygulamaların bütünleştirilerek dağıtık nesneye yönelik progamlama yapılmasına imkan verir (Vinoski, 1998). CORBA, çağırılabilecek işlemleri tanımlamak için Interface Description Language(IDL) kullanır (Dijkman et al., 2003). 2.2.4 CCM(CORBA Component Model) CCM; çoklu-dil ve çoklu-platform desteği olan bir çerçeve olup(icmgworld), arayüzlerin bileşenlere gruplanmasına izin veren

23 CORBA nın geliştirilmiş halidir (Dijkman et al., 2003). Bileşen tanımlanmasını, kod yaratmayı, ve her tipteki yazılım bileşenlerinin birleştirilmesini, paketlenmesini ve yayılmasını(deployment) destekler (Icmgworld). Tasarım desenlerinin kullanılmasını kolaylaştırır(barlett, 2001). CCM; CORBA ile aynı servis tanımlama ve haberleşme tekniklerini, örneğin IDL nin geliştirilmiş hali olan IDL 3.0 ı kullanır (Dijkman et al., 2003). 2.2.5 EJB(Enterprise Java Beans) EJB, sunucu tarafında yer alan Java tabanlı bir yeniden kullanılabilir bileşen çerçevesidir (Hanson, 2003). CCM tarafından sağlanan ortama benzer bir ortam sağlar ve servisi tanımlamak için Java programlama dilini kullanır. Bu da servis tanımlamasını programlama diline eşleme problemini ortadan kaldırır. Bu yaklaşımın dezavantajı ise belirli bir programlama diline bağımlı olmasıdır. Servisler birden fazla makineye dağılabilirler ve üzerinde çalışılan makinedeymiş gibi erişilebilirler (Hanson, 2003). 2.2.6 JXTA(Juxtapose) JXTA; ağa bağlı cihazların birbiriyle iletişimde bulunup işbirliği yapmasına imkan sağlayan açık ve genelleştirilmiş peer-to-peer protokoller kümesidir. JXTA ağına, hücresel telefondan PDA(Personal Digital Assistant) ya, PC den sunucuya kadar her türlü cihaz bağlanabilir. JXTA protokolleri programlama dili bağımsızdır ve farklı

24 ortamlar için farklı gerçekleştirimlere sahiptir (Sun, 2003). 2.2.7 JXME(JXTA for J2ME) JXME projesinin amacı, CLDC(Connected Limited Device Configuration)ve MIDP kullanan mobil cihazlara JXTA uyumlu fonksiyonları sağlamaktır (Dickman, 2002). JXME API, sadece üç sınıftan oluşur: Message, JXTA mesajları yaratıp bu mesajları işlemek için kullanılan metodları içerir. Element, JXTA mesajlarının temel bileşenlerini oluşturup işlemek için kullanılan metodları içerir. PeerNetwork, JXTA ağından çağrılan işlemleri içerir. Üç sınıftan oluşan API, J2ME için JXTA uygulamaları yazmayı hızlandırır (Arora et al., 2002). 2.3 Servis Kayıtçıları Servis kayıtçıları, kuruluş servislerinin tanımını ve bu servise nasıl erişileceğini tutar. Başka bir kuruluş ihtiyaçlarını karşılayacak servis için kayıtçıyı sorgulayabilir. Kayıtçı da sorgulamayı yapan kuruluşun isteklerini karşılayabilecek servisleri döndürür.

25 2.3.1 UDDI(Universal Description, Discovery and Integration) kayıtçı UDDI kayıtçısı Web Servislerinin tanımlamalarını ve yerlerinin servis sağlayıcıları tarafından duyurulmasını sağlar. Potansiyel servis kullanıcıları bu kayıtçıyı kendi ihtiyaçlarını karşılayacak servisler için tarayabilirler (Dijkman et al., 2003). Uygulamalar UDDI kayıtçısıyla SOAP mesajları aracılığıyla haberleşirler (Capescience, 2002). UDDI, servislerin kendisini tanıttığı Web tabanlı bir telefon rehberine benzetilebilir. 2.3.2 ebxml kayıtçı ebxml, servislerin bulunmasına yardım etmesi bakımından UDDI kayıtçısına benzer fakat ebxml servislerinin duyurulmasına ve keşfedilmesine izin verir (Dijkman, 2003; Service-Architecture). 2.3.3 CORBA keşif servisleri CORBA ve CCM, servislerini yayımlamak ve keşfetmek için CORBA servislerini kullanırlar. UDDI ve ebxml kayıtçıları tarafından sağlanan servisler, kuruluş servislerini tasarım zamanında keşfetmeyi amaçlarken, CORBA servisleri, servisleri çalışma zamanında keşfetmeyi amaçlar (Dijkman et al., 2003).

26 2.3.4 JNDI(Java naming and directory interface) API(Application programming interface) EJB leri keşfetmek ve yayınlamak için JNDI API kullanılır. JNDI kullanarak EJB isimlendirilebilir ve onun hakkında ek bilgiler verilebilir (Dijkman et al., 2003). Kayıtçı, servisinin gerçekleştiriminden bağımsızdır (Sun, 1999). 2.4 Servis Tanımlamaları Organizasyonların servislerini tanımlamak için kullanılan tanımlama teknikleri, tanımlayıcının niteliklerine göre birbirlerinden ayrılırlar. Tanımlama teknolojisi dört seviyeye ayrılır: arayüz tanımlama, servis tanımlama, içsel davranış tanımlama, koreografi tanımlama (Dijkman et al., 2003). Arayüz tanımlama: Organizasyon servisinin alacağı ve yayınlayacağı çağrıları tanımlar (Dijkman et al., 2003). Düzenli işleve sahip basit servisleri tanımlamak için uygun olmakla birlikte, karmaşık servisler için çok soyut kalır (Hall and Zisman, 2004). Servis tanımlama: Belirli bir servis sağlayıcı, arayüzlere yapılan istek ve cevaplar arasındaki ilişkileri tanımlar (Dijkman et al., 2003). İçsel Davranış Tanımlama: Servis sağlayıcının içsel davranışını tanımlar (Dijkman et al., 2003). Öteki servis tanımlama yöntemlerine göre daha somuttur (Hall and Zisman, 2004). Koreografi tanımlama: Belirli amacı gerçekleştirebilmek için

27 organizasyon servisleri arasındaki işbirliğini tanımlar(dijkman et al., 2003). Bu amacı gerçekleştirmek için katılımcı servislerin bir araya geldiği etkileşimi ve bu etkileşimler arasındaki bağımlılıkları tutar (Barros et al., 2005). 2.5 Servis Tabanlı Mimari Servis tabanlı yazılım geliştirme, servis modelini yapılandırabilmek için servis tabanlı mimariye güvenir. Servis tabanlı mimari, yazılım uygulamalarını ve altyapıyı etkileşen servislere dönüştürmek için yeniden düzenler (Papazoglou, 2003). 2.5.1 Temel servis tabanlı mimari Temel servis tabanlı mimari, servis istemci, servis sağlayıcıları ve servis kayıtçıları arasındaki mesaj değişimi şeklinde gerçekleşen etkileşimi tanımlar. İstemciler, bir servisin çalışmasına istekte bulunan yazılım etmenleridir. İstekte bulunulurken ilk olarak, servis kayıtçılarında aranan kriterlere uygun servisin olup olmadığı araştırılır. Araştırma sonucunda uygun servis varsa bu servisi kullanabilmek için gerekli bilgiler istemcilere döndürülür. Daha sonra istemciler servisi çağırabilir (Buhler et al., 2004). Sağlayıcılar, servisi sağlayan ve yayımlayan yazılım etmenleridir. Kayıtçılar, servis sağlayıcılarının yayımladığı servis tanımlamalarının tutulduğu yazılım etmenleridir (Papazoglou, 2003).

28 2.5.2 Genişletilmiş servis tabanlı mimari Temel servis tabanlı mimarinin gerçekleştiremediği yönetim, servis senkronizasyonu, servis iş yönetimi ve koordinasyon, güvenlik ve servislerin mimarisindeki bütün bileşenlere uygulanabilecek öteki konular genişletilmiş servis tabanlı mimari tarafından gerçekleştirilirler (Papazoglou and Georgakopoulos, 2003). 2.6 Servis Tabanlı Tasarım Yaklaşımları 2.6.1 EDOC(Enterprise distributed object computing) profili EDOC profili UML 1.4 versiyonunun genişletilmiş halidir. Middleware teknolojileri üzerine kuruluş uygulamalarının tasarımını kolaylaştıran platform bağımsız çatıdır (Dijkman et al., 2003; Enterprise- Component). 2.6.2 UML(Unified modelling language) 2.0 UML genel amaçlı bir yazılım modelleme dilidir. Servise dayalı tasarım için uygun olan UML kümesi; bileşenler paketi, bileşik yapılar paketi ve davranış modelleme için paketlerden oluşur (Dijkman et al., 2003).

29 3. MOBİL TEKNOLOJİLER 3.1 Donanım Mobil cihazlar, depolama alanı ve pil gücü gibi sınırlı kaynakları bulunan ve bazı işlemleri gerçekleştirebilmek için diğer mobil cihazlara yada masaüstü bilgisayarlara ihtiyaç duyan cihazlardır (Handorean et al., 2004). Mobil servislere ulaşmaya imkan veren mobil cihazlar aşağıda belirtilmiştir(naing, 2003): Dizüstü Bilgisayarlar Cep Telefonları PDA lar PDA lar; hesaplama, telefon/fax, internet ve ağ özelliklerini birleştiren elde taşınabilen cihazlardır. Tipik bir PDA; telefon, fax, web tarayıcısı ve kişisel organizasyon görevlerini gerçekleştirir. PDA platformlarına örnek olarak avuçiçi bilgisayarlar ve palm bilgisayarlar verilebilir (Webopedia). 3.2 Yazılım Mobil uygulama geliştirmek için mevcut standartların üstüne hergün yenileri eklenmektedir.mevcut yazılım teknolojileri (Andersson,

30 2001): SMS(Short Message Service) WAP(Wireless Application Protocol) J2ME(Java 2 Micro Edition).NET Compact Framework 3.2.1 SMS Mobil telefonlar aracılığıyla düz metinden oluşan kısa mesajların gönderilip alınabilmesi özelliğidir (Ericsson). Konuşmanın uygun olmadığı ya da mümkün olmadığı ortamlarda kullanılır. İnternet üzerinden de SMS gönderilebilir (Enck et al., 2005). 3.2.2 WAP Mobil telefon yada PDA gibi cihazlardan internet servislerine ulaşmak için tasarlanan standarttır. WAP, WAP Forum tarafından geliştirilmiştir. WAP Forum internet uygulama geliştirmenin temel prensiplerini kablosuz ortama uyarlamak için oluşturulmuştur (Evans and Ashworth, 2001). WAP Forum kendi mimari ve tasarımı için mevcut endüstri standartlarını kullanmıştır. Aynı zamanda WAP belirtimi cihazdan bağımsızdır (WAP Forum, 2000).

31 3.2.3 J2ME Sun Microsystems tarafından kablosuz cihaz kullanıcılarının isteklerini karşılayabilmek için geliştirilmiştir. Mobil cihazlar için uygulama geliştirme, yükleme ve yönetim standartlarını belirler (Sun). J2ME, Java teknolojisinin içerdiği temel özellikleri içerir (Steiner, 2000): Her yerde her cihazda her zaman çalışabilirler. Nesne tabanlı programlama dilinin özelliklerine sahiptir. Taşınabilir kod üretir. Ağda istenilen noktaya güvenli bir şekilde teslim edilebilirler. J2SE ve J2EE platformlarında çalıştırılabilirler. J2ME, iki grup ürünü hedef alır (Steiner, 2000): Kişisel, mobil, bağlı bilgi cihazları: Kişisel organizatörler, hücresel telefonlar ya da sayfalayıcılar(pager). Paylaşılmış, sabitlenmiş, bağlı bilgi cihazları: Internet TVleri, ekran telefonları, iletişimciler(communicator), otomobil eğlence/navigasyon sistemleri 3.2.4.NET compact framework Masaüstü PC leri ve sunucular için kullanılan yazılım platformu

32 olan.net Framework ünün küçük bir versiyonudur..net programlarının mobil cihazlarda çalıştırılmasını sağlarlar (Neteazy). Kod yönetimi ve Web servisleri için destek sağlar (Tian, 2003)..NET Compact Framework tarafından sağlanan anahtar özellikler (NOOA, 2003): Masaüstü ve sunucu programlama modelleriyle tutarlıdır. Web servisleriyle bağlantı kurulması kolaydır. Optimum performans için JIT(Just-In-Time) derleme vardır. Kod yönetimi, bellek yönetimi ve kod güvenilirliği özelliklerini taşır. 3.3 Ağ Kablosuz ağlar, kablolama yapılmadan bilgisayarların birbiriyle iletişim kurmasını sağlayan ağlardır. Mobil servislere kablosuz ağlar aracılığıyla erişilebilir. Bu kablosuz ağlar (Andersson, 2001): GSM(Global System for Mobile Communication) CDMA(Code Division Multiple Access) WLAN(Wireless Local Area Network) GPRS(General Packet Radio Service)

33 Bluetooth 3G(Third Generation) 3.3.1 GSM 200 ülkede kullanımda olan bir sayısal hücresel yayın ağıdır. GSM sayısal olmasının getirdiği özellikle, yalnızca sesli görüşme ile sınırlı değildir. SMS ile mesaj yollama; ayrıca taşınabilir veya sabit bir bilgisayara bağlanarak faks yollama/alma, e-mail yollama/alma, firmaların yerel ağına bağlanma veya Internet te gezinme olanağı sağlamaktadır (Tripod). 3.3.2 CDMA CDMA ile her haberleşme için eşsiz bir kod kullanılır (Pooyania, 2004). Bu teknolojinin temeli sayılan Kod Bölmeli Çoklu Erişim tekniği temel olarak, iletilmesi istenen sinyalin sadece o aboneye tahsis edilen bir kod ile işleme sokularak geniş bir bant üzerine yayılarak diğer abonelere ait sinyallerin üzerine bindirilerek gönderilmesi, alıcı tarafında da bütün sinyallerin yine aynı kod ile çarpılması sonucunda diğer sinyallerin elenerek istenilen bilginin alınması mantığına dayanmaktadır (Samuk, 2005) 3G teknolojileri CDMA üzerine inşa edilmiştir (Pooyania, 2004). 3.3.3 WLAN Düğümler arasında haberleşmek için kablo yerine yüksek frekanslı

34 radyo dalgalarını kullanan bir tip yerel alan ağıdır (Webopedia). WLAN teknolojisi özellikle işyerlerinde kullanılan yerel ağların kablolamadan dolayı belli bir yerde çalışma kısıtlamasını ortadan kaldırmakta, bununla birlikte klasik yerel ağların sağladığı tüm avantajları sunmaktadır (Kul, 2003). 3.3.4 GPRS Verilerin mevcut GSM şebekeleri üzerinden saniyede 28.8 Kb'den 115 Kb'ye kadar varabilen hızlarda iletilebilmesine imkan veren, cep telefonu, dizüstü bilgisayar, PDA ve diğer mobil cihaz kullanıcılarına kesintisiz İnternet bağlantısı sunan bir mobil iletişim servisidir (Superonline). Tekrarlanan ve zaman alan çevirmeli bağlantı yerine paket tabanlı bağlantı kullanır. Sağlam bağlantı, geniş uygulama desteği ve güçlü güvenlik mekanizmalarına sahiptir (Sicher and Heaton, 2002). 3.3.5 Bluetooth Bluetooth; mobil telefonların, bilgisayarların ve PDA ların birbirleriyle kısa mesafede kablosuz olarak bağlantı kurmasını sağlar (Karygiannis and Owens, 2002). Bluetooth un düşük enerji kullanımı onu şarjlı mobil telefonlar ve PDA lar için ideal bir teknoloji durumuna getirmiştir. Bluetooth un transfer hızı 800Kbps dir. Bu da küçük ve orta büyüklükteki dosyaları transfer etmek için uygun olduğunu gösterir (Man, 2002).

35 3.3.6 3G Gelecek nesil kablosuz iletişim teknoloji ve servislerini tanımlamak için kullanılan genel bir terimdir. 3G ile mobil servislerden son derece yüksek iletişim hızlarında(saniyede 384 kilobit ile 2 megabit) ve multimedya veriler eşliğinde faydalanılabilecektir (Ericsson). 3G sayesinde yeni uygulama alanları ortaya çıkacaktır ve çok çeşitli bilgi ve haberleşme servisleri gerçekleştirilebilecektir. Bilgi ve haberleşme servisleri üzerindeki tek sınırlayıcı faktör hayalgücü olacaktır (Landers et al., 2002).

36 4. MOBİL TEKNOLOJİLERLE SERVİS TABANLI YAZILIM GELİŞTİRMENİN ENTEGRASYONU Mobil cihazlar, yerel olarak sınırlı miktarda kaynağa sahiptir ve kullanıcıya daha fazla işlevsellik sağlayabilmek için diğer mobil cihazların kaynaklarını kullanmak zorundadırlar. Servis tabanlı yazılım geliştirme de kaynakları ve yetenekleri diğer kullanıcılar için kullanışlı hale getirdiğinden mobil teknolojiler ve servis tabanlı yazılım geliştirme birbirini tamamlayan iki kavramdır (Handorean et al., 2004). Servis tabanlı yazılım geliştirme paradigmasında bir kullanıcı yerelde sadece küçük miktarda kod bulundurur. Görevini tamamlayabilmek için öteki servisleri keşfederek onların yeteneklerini kullanır. Mobil cihazlarda sınırlı depolama kapasitesi ve pil gücü olduğundan bu cihazların yerelde depolayabileceği ve çalıştırabileceği program sayısı sınırlıdır. Servis tabanlı yazılım geliştirme bu probleme çözüm olabilir (Handorean et al., 2004). Bu uygulama ile bir yüksek öğrenim kurumundaki bölümlerin ders programlarının, sınav tarihlerinin, sınav gözetmenlerinin belirlenmesinin yanında toplantı düzenlenmesinin, öğretim elemanlarının derslerinin, görevlerinin, toplantılarının, gözetmenliklerinin, ders programlarının takibinin yapıldığı bir sistem geliştirilmesi hedeflenmiştir. Sistemin mobil cihazlar üzerinde çalışması hedeflenmiş ve görevler şu şekilde dağıtılmıştır. Birinci servis sağlayıcıda; ders programının oluşturulması, toplantı düzenlenmesi, sınav yeri ve zamanının ayarlanması, gözetmenlerin belirlenmesi işlemlerinin yapıldığı servisler bulunur. İkinci servis sağlayıcıda; birinci servis sağlayıcıdan gelen veriyi formatlayan servisler bulunur. İstemci cihaz, birinci servis sağlayıcının

37 servislerine uzaktan istekte bulunmak için kullanılır. 4.1 Analiz Uygulamanın analiz safhasında yapılan işlemler aşağıda belirtilmiştir. 4.1.1 Veri sözlüğü Modellemede kullanılan terimlerin tanımları oluşturulan veri sözlüğünde yer alır: Kurum: Bölümlerden oluşan organizasyon. Sınav: Öğrencilerin aldıkları derslerdeki seviyelerini öğrenmek amacıyla öğretim elemanları tarafından yapılan imtihan. Toplantı: Belirli bir amaç doğrultusunda karar verme ya da yeniliklerden haberdar olma amacıyla bir araya gelme. Öğretim Elemanı: Bölümlerde öğrencilere ders vermekle yükümlü kişiler. Salon: Derslerin, sınavların ve toplantıların yapıldığı yer. Ders: Öğretim elemanları tarafından öğrencilere bilgi aktarımı için ayrılan süre.

38 Ders Programı: Derslerin zamanlamasının ve dersliklere yerleştirilişinin gösterildiği çizelge. Bölüm: Kurumlarda belirli bir alana yönelik eğitimin verildiği yer. Görev: Öğretim elemanlarının yapmakla yükümlü olduğu işler. 4.1.2 Nesne modeli Analiz safhasında geliştirilmekte olan sistemin nesne modeli şekil 4.1 de belirtilmiştir.

39 KURUM DERS PROG. ÖĞR. ELEMANI Ad Dönem Yarıyıl Sınıf * Ad Ünvan * * GÖREV BÖLÜM * * DERS Ad Açıklama * Ad No * Ad No Sınıf Kredi Ka_Ogr_Say * TOPLANTI SALON SINAV Konu Tarih Saat Kişi_Sayısı * * Ad Kapasite * Tip Tarih Saat Şekil 4.1. Analiz safhasındaki nesne modeli 4.1.3 Servisler Sunucu avuç içi bilgisayarında yer alması düşünülen servisler aşağıda belirtilmiştir. Ders Programı Servisi: Kurum, Ders Programı, Bölüm, Öğr. Elemanı, Ders sınıflarının etkileşiminden oluşur. Bölümlerin ve öğretim elemanlarının ders

40 programlarının oluşturulması için kullanılır. Toplantı-Düzenleme Servisi: Salon ayarlama ve Zaman ayarlama servislerinden oluşur. Toplantı düzenleme için kullanılır. Ders Atama Servisi: Kurum, Bölüm, Öğr. Elemanı, Ders sınıflarının etkileşiminden oluşur. Öğretim elemanlarına ders atama için kullanılır. Görev Servisi: Kurum, Bölüm, Öğr. Elemanı ve Görev sınıflarının etkileşiminden oluşur. Öğretim elemanlarını görevlendirmek için kullanılır. Sorgulama ve Raporlama Servisi: Arayüz sınıfından oluşur. Servis sağlayıcıyı sorgulama ve servis sağlayıcıdan dönen sonuçları raporlama için kullanılır. Sınav Servisi: Salon ayarlama servisi ve zaman ayarlama servislerinden oluşur. Sınavlar için salon ve zaman ayarlamak için kullanılır. Salon Ayarlama Servisi: Kurum, Bölüm, Sınav, Toplantı, Ders, Salon sınıflarının etkileşiminden oluşur. Sınav, toplantı ya da ders için uygun salonun ayarlanması amacıyla kullanılır. Zaman Ayarlama Servisi: Kurum, Bölüm, Ders, Sınav, Öğr. Elemanı, Toplantı sınıflarının etkileşiminden oluşur. Sınav, toplantı ya da ders için zaman ayarlamak

41 amacıyla kullanılır. 4.2 Tasarım Uygulamanın tasarım safhasında yapılan işlemler aşağıda belirtilmiştir. 4.2.1 Veri sözlüğü Analiz safhasında oluşturulan veri sözlüğüne eklenenler: Oturum: Ders, Sinav ve Toplanti sınıflarının üst sınıfı. 4.2.2 Servisler İstemci cihazlar tarafından kullanılabilecek ve birinci servis sağlayıcıda bulunan servisler aşağıda belirtilmiştir. VTOGRSERVICE: Birinci servis sağlayıcı emülatörde bulunan veritabanındaki öğretim elemanlarının isimlerini döndüren servis. VTBOLSERVICE Birinci servis sağlayıcı emülatörde bulunan veritabanındaki bölümlerin isimlerini döndüren servis. SINAVSERVICE İstemci avuç içi bilgisayarında seçilen bölüm ismi ve sınıfına

42 karşılık gelen sınavları döndüren servis. PROGSERVICE İstemci avuç içi bilgisayarından seçilen bölüm ismi ve sınıfına karşılık gelen ders programları döndüren servis. GOREVSERVICE İstemci avuç içi bilgisayarından seçilen öğretim elemanının görevlerini döndüren servis. OGRELGOZSERVICE İstemci avuç içi bilgisayarından seçilen öğretim elemanının gözetmenliklerini döndüren servis. BOLUMGOZSERVICE İstemci avuç içi bilgisayarından seçilen bölümün gözetmenliklerini döndüren servis. YUKSERVICE İstemci avuç içi bilgisayarından seçilen öğretim elemanının verdiği dersleri döndüren servis. BOLUMTOPSERVICE İstemci avuç içi bilgisayarından seçilen bölümde yapılacak toplantıları döndüren servis. OGRELTOPSERVICE İstemci avuç içi bilgisayarından seçilen öğretim elemanının katılacağı toplantıları döndüren servis.

43 OGRELPROGSERVICE İstemci avuç içi bilgisayarından seçilen öğretim elemanının ders programını döndüren servis. İkinci servis sağlayıcıda bulunan, birinci servis sağlayıcı tarafından kullanılabilecek servisler aşağıda belirtilmiştir. TARIHFORMATSERVICE Birinci servis sağlayıcıdan gelen Date tipindeki veriyi formatlayarak string e çeviren servis. Toplantıları listeleme esnasında kullanılır. SINAVTARIHFORMATSERVICE Birinci servis sağlayıcıdan gelen Date tipindeki veriyi formatlayarak string e çeviren servis. Sınavları, gözetmenleri ve görevleri listeleme esnasında kullanılır. 4.2.3 Nesne modeli Uygulamanın tasarım safhasında gerçekleştirilen nesne modeli şekil 4.2 deki gibidir.

44 id Component Model EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Ders Toplanti Sinav EA 4.50 Unregistered Gorev Trial Version - Ad: string EA 4.50 Unregistered Trial Version EA - Konu: 4.50 string Unregistered - Trial Tip: string Version EA 4.50 Unregistered - Ad: string - No: int - Sınıf: int - Açıklama: string - Donem: string EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA - KisiSayisi: 4.50 Unregistered int - Trial Ders: Ders Version EA 4.50 Unregistered + Gozetmenlikmi() : boolean - Kredi: string - Ogrencisayi: string + Toplantimi() : boolean - Salon: string EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - OgrElemani: string - Tarih: string - Saat: string - Saat: string - Tarih: string - Salon: string - Salon: Salon 28 EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered EA 4.50 Unregistered Trial OgrElemani Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - Ad: String Salon - Unvan: string - Ad: string EA 4.50 - Unregistered Dersler: Array of DersTrial Version EA 4.50 Unregistered Trial Iletisim Version EA 4.50 Unregistered Oturum Trial Version EA 4.50 Unregistered - DersProgrami: DersProgram - Gorevvar: boolean EA 4.50 - Unregistered Toplantivar: booleantrial Version EA 4.50 Unregistered + SMSGonder(string) Trial Version : void EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - UygunOlmayanZaman [] []: boolean - Gozetmenlikvar: boolean EA 4.50 - Unregistered Gorevler: Array of Gorev Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - Toplantilar: Array of Toplanti + DersleriDondur() : Ders[] EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version Bolum EA 4.50 Unregistered Trial Version EA 4.50 Unregistered + DersEkle(Ders) : void + DersProgramiDondur() : DersProgram - Ad: string + Gorevivarmi() : boolean - No: int EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered 1..* + Toplantivarmi() : boolean Trial Version EA 4.50 Unregistered + Dersivarmi() : boolean + getuygunolmayanzaman() : UygunOlmayanZaman[] [] - OgrElemanlar: Array of OgrElemani - Dersler: Array of Ders - Salonlar: Array of Salon EA 4.50 + Unregistered DersPrograminaDersEkle(Ders) Trial Version : void EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered + UygunMu(string, string) : boolean + Gozetmenlikvarmi() : boolean - Iletisim: Iletisim - DersProgram []: Array Of DersProgram - Toplantilar: Array of Toplanti 1..* EA 4.50 + Unregistered GorevDondur() : Gorev Trial Version EA 4.50 Unregistered - Trial Sinavlar: Version Array Of SinavEA 4.50 Unregistered Trial Version EA 4.50 Unregistered + GorevEkle(Gorev) : void - OgrElemaniGorev: OgrElemaniGorev - SalonZaman[] []: Array of Oturum EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - Trial SinavZaman Version [] []: array EA of Sinav 4.50 Unregistered Trial Version EA 4.50 Unregistered - ToplantiZaman[] []: array of Toplanti + OgrElemaniDondur() : OgrElemani[] EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered + DersProgramiOlustur() : DersProgram + DersDondur() : Ders[] + DersProgramiDondur(int) : DersProgram EA 4.50 Unregistered DersProgram Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered - Donem: string + ZamanBelirle(Object) : void + SalonBelirle(Object) : void + ToplantiDondur() : Toplanti[] - No: int - Ad: string EA 4.50 Unregistered - Yariyil: string - Bolumler: Array of Bolum Trial Version EA 4.50 Unregistered + Trial SinavDondur() Version : Sinav[] EA 4.50 Unregistered Trial Version EA 4.50 Unregistered 1..* 1..* 1..* «implementation» «implementation» «implementation» - Sinif: int - DersProgZaman [] []: Ders + GozetmenDondur() : OgrElemani [] + GorevDondur() : Gorev [] EA 4.50 Unregistered Trial Version EA 4.50 Unregistered + Trial OgrElemaniGozetmenlikDondur(String) Version EA 4.50 Unregistered : Gorev[] Trial Version + EA BolumSil(int) 4.50 Unregistered : void + DersEkle(Ders) : void 1..* 1..* 1.. 1..* + MailGonder(string) : void 1..* 1.. 1..* + OgrElemaniToplantiDondur(String) : Toplanti[] + GozetmenAyarla() : void - Kapasite: int EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unregistered EA450U i t dti lv i EA450U i t dti lv i EA450U i t dti lv i EA 4 50 U i t d 1..* 1.. 1..* Kurum + BolumleriDondur() : Bolum[] + BolumEkle(Bolum) : void Şekil 4.2. Uygulamanın Tasarım Safhasındaki Nesne Modeli

45 4.2.4 Dinamik modelleme Bazı senaryoların tasarım safhasındaki dinamik modelleri aşağıda verilmiştir. Öğretim Elemanlarının Ders Yüklerinin İzlenmesi: Bu senaryoyu gerçekleştirirken ortaya çıkan etkileşim şekil 4.3 de gösterilmiştir. nesneler arası sd Interactions alt EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Öğretim Elemanların ın EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ders Yüklerinin İzle nm e s i Öğ retim elemanı EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Öğ retim Elemanı İzle Se ç EA 4.50 Unregistered Trial BolumleriDondur Version EA 4.50 Unregistered Trial Version EA 4 Bölümleri Döndür Kurum Bolum OgrElemani EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Bölüm Seç EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 EA 4.50 Unregistered Öğ retim Trial ElemVersion anların ı Döndür EA 4.50 Unregistered Trial Version EA 4 Öğ retim Elemanı Seç OgrElemaniDondur EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Aldığ ı Ders leri Döndür DersleriDondur EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Şekil 4.3. Öğretim elemanlarının ders yüklerinin izlenmesi senaryosunun tasarım safhasındaki dinamik modeli

46 Öğretim Elemanlarının Ders Programlarının İzlenmesi: Bu senaryoyu gerçekleştirirken ortaya çıkan nesneler arası etkileşim şekil 4.4 de gösterilmiştir. sd Interactions EA alt 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ö ğ retim Elemanların ın Ders Program ların ın İzle n m e s i EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ö ğ retim Elemanı EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ders Program ı İzle S e ç Kurum Bolum OgrElemani EA 4.50 Unregistered Trial Bolum Version leridondur EA 4.50 Unregistered Trial Version EA 4 Bölüm leri Döndür EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Bölüm Seç EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 EA 4.50 Unregistered Ö ğ retim Trial Elemanların Version ı Döndür EA 4.50 Unregistered Trial Version EA 4 Ö ğ retim Elemanı Seç OgrElemaniDondur EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ders Program idondur EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Ders Program ı Döndür EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4 Şekil 4.4. Öğretim elemanlarının ders programlarının izlenmesi senaryosunun tasarım safhasındaki dinamik modeli Dersler için sınav salonu ve saati saptanması: Bu senaryoyu gerçekleştirirken ortaya çıkan nesneler arası etkileşim şekil 4.5 de gösterilmiştir.

47 sd Interactions alt EA D ers ler 4.50 için Sınav Unregistered Salonu ve saati Trial Version EA 4.50 Unregistered Trial V saptanması EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V Bölüm Baş kanı EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V S ınav Ayarla Seç Kurum Bolum EA 4.50 Unregistered Trial BolumleriDondur Version EA 4.50 Unregistered Trial V Bölümleri Döndür EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V Bölüm Seç Sınav Bilgi Gir EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V SinavDondur EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V S ınavları Döndür ZamanBelirle(Sinav) SalonBelirle(Sinav) EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial V EA 4 50 Unregistered Trial Version EA 4 50 Unregistered Trial V Şekil 4.5. Dersler için sınav salonu ve saati saptanması senaryosunun tasarım safhasındaki dinamik modeli Bir öğretim elemanına ait gözetmenliklerin listelenmesi: Bu senaryoyu gerçekleştirirken ortaya çıkan nesneler arası etkileşim şekil 4.6 da gösterilmiştir.

48 sd Interactions alt Bir EA Öğ retim 4.50 Elem Unregistered anına Ait Gözetm enliklerin Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Listelenm esi Kurum Bolum OgrElemani Gorev EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Öğ retim Elemanı EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Öğ r. El. Gözetm enlik Listele Seç EA 4.50 Unregistered Trial BolumVersion leridondur EA 4.50 Unregistered Trial Version EA 4.50 Unre Bölüm leri Döndür EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Bölüm Seç EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre OgrElem anidondur EA 4.50 Unregistered Öğ retim Elemanların Trial Version ı döndür EA 4.50 Unregistered Trial Version EA 4.50 Unre Öğ retim Elemanı Seç EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Gorevivarm i EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre Bilgileri Döndür EA 4.50 Unregistered Trial Version EA 4.50 Unregistered Trial Version EA 4.50 Unre loop Gozetm enlikm i Şekil 4.6. Bir öğretim elemanına ait gözetmenliklerin listelenmesi senaryosunun tasarım safhasındaki dinamik modeli 4.3 Gerçekleştirimde Kullanılan Araç ve Teknolojiler 4.3.1 JBuilder9 Uygulamayı gerçekleştirmek için Java programlama dili seçilmiş ve Java programlama dilinde uygulama geliştirmek için ortam olarak JBuilder9 seçilmiştir. JBuilder9, mobil teknolojiler ve öteki kablosuz araçlar için yazılım geliştirmeye imkan sağlayan J2ME Wireless Toolkit i içinde barındırır.

49 4.3.2 Palm OS Emulator Palm OS yazılımının test edilmesini ve bu yazılımdaki hataların ayıklanmasını sağlayan ve bu işlemi Macintosh, Unix ya da Windowstabanlı masaüstü bilgisayarlarda yapmayı sağlayan, palm donanım araçlarını benzeştiren yazılımdır. Geliştirilen uygulamada palm OS emulator ler, servis sağlayıcı olarak kullanılmıştır. 4.3.3 MIDP4Palm1.0 MIDP(Mobile Information Device Profile); mobil telefonlar, gelişmiş sayfalayıcılar ve PDA lar gibi taşınabilir elektronik cihazlar için Java teknolojisidir. MIDP J2ME teknolojisinin bir parçasıdır. MIDP4Palm OS, MIDP uyumlu gerçekleştirimdir. Java HQ, Palm OS cihazı için MIDP gerçekleştirimidir. Palm OS cihazına MIDP4Palm OS kurulduktan sonra MIDP için yazılan herhangi Java uygulaması çalıştırılabilir. Geliştirilen uygulamada MIDP4Palm1.0, istemci palm cihazlarına yüklenmiştir. Bu sayede istemci palm cihazlarında Java tabanlı uygulama çalıştırılabilmesi sağlanmıştır. 4.3.4 JXTA Shell JXTA Shell, Sun ın JXTA peer-to-peer çatısı için komut satır

50 arayüzüdür. JXTA platformunun bazı anahtar özelliklerini içinde barındırır (Dornfest, 2001). Geliştirilen uygulamada JXTA Shell in bir bilgisayara kurulması gerekir. Bu bilgisayar sayesinde istemci ve servis sağlayıcı cihazlar arasında iletişim kurulabilir. 4.3.5 JXME API JXME hakkında bilgi bölüm 2.2.7 de verilmiştir. Geliştirilen uygulamada JXME API, istemci ve servis sağlayıcı cihazlardan JXTA fonksiyonlarını kullanabilmek için kullanılmıştır. 4.3.6 Enterprise Architect(EA) 4.50 Yazılım modelleme, yapım ve yönetimini hızlandıran UML tabanlı CASE(Computer Aided Systems Engineering) aracı olarak, Enterprise Architect(EA) 4.50 kullanılmıştır. Geliştirilen uygulamada Enterprise Architect 4.50, uygulamanın analiz ve tasarım safhalarında nesne modellerinin ve dinamik modellemelerin yapılması için kullanılmıştır. 4.3.7 GPRS GPRS hakkında bilgi bölüm 3.3.4 te verilmiştir. İstemci cep telefonlarının uzaktaki servis sağlayıcıları sorgulayabilmesi için

51 kullanılmıştır. 4.3.8 Cep telefonu Uygulamada istemci cihaz olarak Nokia 6630 cep telefonu kullanılmıştır. 4.4 Sistem Mimarisi Geliştirilen sistemde palm OS emulator ler ve cep telefonu kullanılmıştır. GSM özelliği olmayan mobil cihazlar, internete bağlanmak için cep telefonuna ya da internet bağlantısı bulunan bir bilgisayara ihtiyaç duyarlar. Ayrıca diğer mobil cihazlar cep telefonlarına göre daha az yaygındır. Bir bilgisayarda JXTA Shell in kurulu olması ve çalıştırılması gereklidir. Cep telefonlarının ve emülatörlerin birbirleriyle iletişimde bulunması için JXTA Shell in kurulu olduğu bilgisayarı kullanmaları gerekmektedir. JXTA Shell cep telefonlarının ve emülatörlerin JXTA ağına erişmelerine izin verir. Sistemde iki tane servis sağlayıcı bulunmaktadır. Birinci servis sağlayıcı yerelde işlem yapabilmek için arayüze ve dersleri, öğretim elemanları, bölümleri ve salonları tutmak için veritabanına sahiptir. Ayrıca, istemci cep telefonları için servis sağlar ve JXME API yi kullanarak JXTA Shell ile haberleşir. İkinci servis sağlayıcı birinci servis sağlayıcı için servis sağlar ve JXME API yi kullanarak JXTA Shell ile haberleşir.

52 İstemci cep telefonlarında ise servislere erişmek için arayüz bulunur. Ayrıca istemciler JXME API yi kullanarak JXTA Shell ile haberleşirler. İstemci cep telefonlarının JXTA Shell ile haberleşebilmesi için GPRS ağ bağlantısını kullanması gerekir. Geliştirilen sistemin mimarisi şekil 4.7 de gösterilmiştir. BİRİNCİ SERVİS SAĞLAYICI (PALM EMÜLATÖR) Veritabanı Arayüz JXME API Servisler VTOGRSERVICE VTBOLSERVICE SINAVSERVICE PROGSERVICE GOREVSERVICE OGRELGOZSERVICE BOLUMGOZSERVICE YUKSERVICE BOLUMTOPSERVICE BİLGİSAYAR JXTA Shell (JXME Proxy) GPRS GPRS İKİNCİ SERVİS SAĞLAYICI (PALM EMÜLATÖR) JXME API Servisler GPRS TARIHFORMATSERVICE SINAVTARIHFORMATSERVICE GPRS İSTEMCİ CEP TEL-1 Arayüz JXME API GPRS İSTEMCİ CEP TEL-2 Arayüz JXME API İSTEMCİ CEP TEL-N Arayüz JXME API Şekil 4.7 Geliştirilen sistemin mimarisi Servis sağlayıcı olarak emülatörler kullanılmıştır. Servis sağlayıcı olarak gerçek mobil cihazlar uygun donanım temin edilemediği için

53 kullanılamamıştır. Servis sağlayıcı olarak gerçek mobil cihazların kullanılmasının taşınabilirlik avantajı vardır. 4.5 Gerçekleştirim Uygulamanın gerçekleştirim safhasında kullanılan araçların tanıtımı ve gerçekleştirim safhası sonunda elde edilen kodlar aşağıda verilmiştir. 4.5.1 Gerçekleştirilen sınıflar Uygulamada gerçekleştirilen sınıflar: BolBasMIDlet1: Birinci servis sağlayıcı emülatördeki arayüzü oluşturan, arayüzden eklenen verileri veritabanına ekleyen, servislerin bulunduğu, istemci cihazlarla iletişimi sağlayan sınıf (Bkz. Ek 1). Bolum: Bölümle ilgili bilgilerin tutulduğu, öğretim elemanları arasında toplantı oluşturma, bölümün ders programını oluşturma, bölümün sınav tarihlerini oluşturma, sınavda görevli gözetmenleri ayarlama işlemlerini gerçekleştiren, Serializable sınıfını gerçekleştiren, birinci servis sağlayıcıda bulunan sınıf (Bkz Ek 2). Ders: Derslerle ilgili bilgilerin tutulduğu Serializable sınıfını gerçekleştiren Oturum sınıfının alt sınıfı. Birinci servis sağlayıcıda bulunur (Bkz Ek 3). DersProgram: Ders programıyla ilgili bilgilerin tutulduğu birinci servis

54 sağlayıcıda bulunan sınıf (Bkz Ek 4). Gorev: Öğretim elemanlarına verilen görevlendirmelerle ilgili bilgilerin bulunduğu birinci servis sağlayıcıda bulunan sınıf (Bkz Ek 5). Kurum: Kurumla ilgili bilgilerin tutulduğu, bolum ekleme, bolum silme, öğretim elemanı ekleme, öğretim elemanı silme gibi işlemlerin yapıldığı birinci servis sağlayıcıda bulunan sınıf (Bkz Ek 6). OgrElemani: Öğretim elemanlari ile ilgili bilgilerin tutulduğu, Serializable sınıfını gerçekleştiren birinci servis sağlayıcıda bulunan sınıf (Bkz Ek 7). Oturum: Ders, Sinav ve Toplanti sınıflarının üst sınıfı. Birinci servis sağlayıcıda bulunur (Bkz Ek 8). Salon: Salonlarla ilgili bilgilerin tutulduğu Serializable sınıfını gerçekleştiren sınıf. Birinci servis sağlayıcıda bulunur (Bkz Ek 9). Serializable: Nesneleri veritabanına yazıp, veritabanından okumak için kullanılan, Salon, OgrElemani, Bolum ve Ders sınıflarının gerçekleştirdiği abstract sınıf. Birinci servis sağlayıcıda bulunur (Bkz Ek 10). Sinav: Sınavlarla ilgili bilgilerin tutulduğu Oturum sınıfının alt sınıfı. Birinci servis sağlayıcıda bulunur (Bkz Ek 11). Toplanti: Toplantılarla ilgili bilgilerin tutulduğu Oturum sınıfının alt sınıfı. Birinci servis sağlayıcıda bulunur (Bkz Ek 12).