AKADEMİK PERSONEL YAYIN TAKİP SİSTEMİ Doç.Dr. Ferruh YILDIZ , Arş.Gör. Murat Can GANİZ , Arş.Gör. Şakir TOPRAK S.Ü. Mühendislik-Mimarlık Fakültesi, Bilgisayar Mühendisliği Bölümü Alaeddin Keykubat Kampüsü , KONYA Özet Üniversiteler eğitim-öğretimin yanı sıra , bilimsel çalışma ve çeşitli akademik faaliyetlerin gerçekleştirildiği yerlerdir. Yapılan bu bilimsel çalışma ve faaliyet bilgilerinin tek bir veritabanında düzenli bir şekilde toplanarak , bu bilgilere erişimin sağlanması bir çok açıdan fayda sağlayacaktır. Bu proje ile daha önce kağıt formlarla yapılan öğretim üyeliğine yükseltilme ve atanma için yapılan başvurular sonucu , adayların faaliyetleri ile ilgili puan bilgisinin hesaplanması ve takip edilmesi işlemi bilgisayar otomasyonuna geçirilmiştir. Bu faaliyetlerden Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içerikleri oluşturulan web tarama arayüzü ile sunulacaktır. Bu sayede bilgiye erişimin her noktadan sağlanması, üniversite içinde ve üniversiteler arasında bilgi paylaşımının arttırılması amaçlanmaktadır. İki kısımdan oluşan projenin web kısmı Java Servlet ve Java Bean teknolojileri kullanılarak Nesne-Yönelimli olarak geliştirilmiştir. Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içeriklerinin taranarak veritabanına aktarılması için kullanılacak uygulama kısmı ise Borland Delphi uygulama geliştirme aracı ile hazırlanmaktadır.Verilerin saklanacağı veritabanı yönetim sistemi olarak Oracle seçilmiştir. Anahtar Kelimeler: Akademik,Akademik Faaliyet, Bilgi, Java, Servlet, Oracle , Delphi Abstract Universities are the places where scientific studies and several academic activities are performed in addition to educational activities. Gathering these scientific study and academic activity information in a single database and enable access to these information , will provide various benefits. Some of these benefits are ; tracking university stuffs academic activities , preparing reports and statistics to the administrators and facilitate sharing knowledge among the academic stuff. Procedure of calculating and tracking score of candidates academic activities for assignment to associate professor and professor are migrated to computer automation by this project. Contents of some of these activities like journal paper, conference paper, conference presentation are going to be stored in database and will be presented via internet by web search interface. It’s aimed to make these information accessable from every point and facilitate sharing knowledge by this project. The project consists of two parts. In the web part of the project Java Servlet ,Java Bean API’s used and code written in Object-Oriented way. The part which transfers the contents of activities like journal paper, conference paper, conference presentation to database is written via Borland Delphi 5.0 IDE. Database selected for the system is Oracle. Keywords : Academic , Academic Activity , Information ,Java , Servlet , Oracle , Delphi 1. GİRİŞ Üniversiteler eğitim-öğretimin yanı sıra , bilimsel çalışma ve çeşitli akademik faaliyetlerin gerçekleştirildiği yerlerdir. Yapılan bu bilimsel çalışma ve faaliyet bilgilerinin tek bir veritabanında düzenli bir şekilde toplanarak , bu bilgilere erişimin sağlanması bir çok açıdan fayda sağlayacaktır. Bu faydalar ; akademik personelin faaliyetlerinin takip edilmesi , bu konuda yöneticilere istatistiklerin sunulması ve akademisyenler arasında bilgi paylaşımının kolaylaştırılması olarak sıralanabilir. Bu proje ile öğretim üyeliğine yükseltilme ve atanma için , adayların faaliyetleri ile ilgili puan bilgisinin hesaplanması ve takip edilmesi işlemi bilgisayar otomasyonuna geçirilmiştir. Bu faaliyetlerden Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içerikleri ,oluşturulan bir tarama arayüzü ile web sayfasından sunulacaktır. Bu sayede bilgiye erişimin her noktadan sağlanması, üniversite içinde ve üniversiteler arasında bilgi paylaşımının arttırılması hedeflenmektedir. 2. PROJENİN FONKSİYONLARI 1- Akademik personelin yapmış olduğu faaliyetlerin veritabanında tutulması. 2- Öğretim üyeliğine yükseltilme ve atanma için yapılan başvurularda adayların faaliyetleri ile ilgili puan bilgisinin hesaplanması ve takip edilmesi. 3- Bu konuda yetkili kullanıcılara (Rektör, Rektör yardımcıları, Dekanlar, Bölüm Başkanları-Anabilimdalı başkanları) istatistik ve raporların sunulması. 4- Bu faaliyetlerden Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içeriklerinin taranarak veritabanına aktarılması. 5- Bu içeriklere sisteme üye olan kullanıcılar tarafından web üzerinden sorgulanarak erişilmesi. 3. PROJE TANIMI Proje temel olarak aşağıdaki kısımlardan oluşmaktadır. 1- Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içeriklerinin taranarak veritabanına aktarılacağı kısım. 2- Kullanıcılar tarafından kendi faaliyetlerinin girildiği kısım. 3- Kullanıcıların faaliyetlerinin yetkili kullanıcılar tarafından (Dekan, Bölüm Başkanı) onaylandığı ve puanların hesaplandığı kısım. 4- Kullanıcılar tarafından faaliyetlerin sorgulandığı ve yayınların içeriklerine erişildiği kısım. 5- Yetkili kullanıcılara (Rektör, Rektör yardımcıları, Dekanlar, Bölüm Başkanları) istatistik ve raporlara erişebildikleri kısım. 4. SİSTEMİN İŞLEYİŞİ Sistemin aşağıda belirtilen şekilde işlemektedir; 4.1. Kullanıcılar Üniversitenin tüm akademik personeli otomatik olarak sistemin kullanıcısıdır ve yayınların içeriklerine erişme hakkına sahiptir. Kullanıcılar kendilerine verilen kullanıcı adı ve şifrelerini kullanarak sisteme giriş yaparlar. Şekil1. Kullanıcı adı ve şifre girişi arayüzü Her kullanıcının bir yetki seviyesi vardır. Sistemdeki işlemler bu yetki seviyesi kontrol edilerek yapılır. Kullanıcı adı ve şifresi ile sisteme giriş yapıldığında , ana menü kullanıcının yetki seviyesine göre görüntülenmektedir. Örneğin Araştırma Görevlisi yetki seviyesine sahip kullanıcı sisteme girdiğinde ana menüdeki Akademik Faaliyet Onaylama seçeneği aktif değilken , Bölüm-Anabilimdalı Başkanı yetki seviyesine sahip kullanıcı ana menüdeki bu seçeneği aktif olarak görecektir. Şekil 2. Ana menü Kullanıcı Araştırma Görevlisi olduğundan yetki seviyesine göre 5. ve 6. menü elemanları aktif değildir. Üniversite akademik personelinin yanı sıra dışarıdan da kullanıcı kabul edilebilir. Dışarıdan gelen kullanıcılar yetki seviyelerine göre sadece yayın bilgilerine veya yayın içeriklerine erişebilirler. Bu kullanıcıların yetki seviyeleri ve programla ilgili diğer ayarlar yönetim mödülünü kullanan görevlendirilmiş kişiler tarafından değiştirilebilir. Dışarıdan gelen kullanıcılar üniversitenin akademik personeli olmadıkları için yayın giremezler ve dolayısı ile puanlama ve istatistik kısımlarının dışındadırlar. 4.2. Faaliyet Girişi Akademik personel kendi kullanıcı adı ve şifrelerini kullanarak web üzerinden kendilerine sağlanan arayüz vasıtasıyla akademik faaliyet bilgilerini gireceklerdir. Kullanıcıya kolaylık sağlamak amacıyla farklı faaliyet tipleri için kullanıcının karşısına farklı bilgi giriş arayüzleri getirilmektedir. Örneğin kitap bilgilerinin giriş arayüzü ile Ödül,Patent bilgilerinin giriş arayüzü farklıdır. Şekil 3. Kitap için bilgi giriş arayüzü Şekil 4. Ödül,Patent için bilgi giriş arayüzü Akademik faaliyetlerde birden fazla kişinin beraber çalıştığı faaliyetler olabilir. Bu faaliyetlerde aynı faaliyetin her bir yazar tarafından sisteme ayrı ayrı girilmesi gereksiz birçok kayıt olmasına sebep olur. Bunu engellemek amacıyla bilgi girişi yapmadan önce , kullanıcının soyadının geçtiği diğer faaliyetler listelenir. Kullanıcı bu listeden gerekli faaliyeti seçerek bu faaliyetteki kendisiyle ilgili bilgileri doldurarak faaliyeti kendi adına kaydetmiş olur. 4.3. Faaliyetlerin Onaylanması Akademik personelin girmiş olduğu faaliyet bilgileri ilk önce , bağlı bulundukları bölüm başkanı tarafından kontrol edilip onaylanacak , daha sonra bağlı bulundukları fakülte dekanı tarafından onaylanarak o faaliyetin puanı kullanıcının toplam puanına eklenecektir. Bölüm başkanları ve Dekanlar doğal olarak sistemin kullanıcılarıdır ve bu yetkili kullanıcılara kendilerine bağlı olan personelin yayın bilgilerinin listeleneceği bir web arabirimi sunulacaktır.Onaylama işlemi iki kademelidir.Dekanlar, bölüm başkanlarının onayladığı faaliyetleri onaylayabilirler. 4.4. Faaliyet Puanlarının Hesaplanması Faaliyet tipleri ve puanlama bilgileri sistemde bir tabloda tutulmaktadır. Kullanıcı faaliyetlerini sisteme girip, bunlar onaylandıktan sonra bu faaliyetlere ait puanlar hesaplama fonksiyonları kullanılarak hesaplanır ve kullanıcının toplam puanına eklenir. Hesaplama fonksiyonları yazar sırası ve yazar sayısına göre puanı hesaplar. 4.5. Yayın İçeriklerinin Sisteme Aktarılması Onaylama işlemi yapılmış olan faaliyetlerden Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içeriklerinin taranarak veritabanına aktarılması web üzerinden değil , tek merkezde veya fakültelerde işleyecek bir uygulama vasıtası ile yapılacaktır.Bu uygulamayı bir bilgisayar operatörünün kullanır . Yayınların taranması ve veritabanına aktarılacak hale getirilmesi bu merkezlerde yapılacaktır. Akademik personelin içeriği aktarılacak yayınlarını bu programın işlediği merkez yada merkezlere sisteme kayıtlı yayın numarası ile birlikte ulaştırması yeterlidir. 4.6. Yayın Bilgilerine Erişim Yayın bilgilerine kullanıcılar web üzerinden erişebilirler. Yayın bilgilerine erişimi kolaylaştırmak amacıyla tarama işlemi belirli alanlara göre yapılır. Bu alanlar yayın adı, anahtar kelime (keyword), yazar adıdır. .Bu alanların yanı sıra taramada tarih aralığı ve faaliyet tipine göre filtreleme yapılabilir. Dışarıdan eklenen kullanıcılar tarama yapabilir ve yetki seviyelerine göre yayın bilgilerine erişebilirler.Sistemin kullanıcısı olmayan kişilerin yayın bilgilerine ve içeriklerine erişmek için belirtilen irtibat adresine başvurarak üyelik başvurusunda bulunmaları gerekir. Şekil 5. Tarama arayüzü 4.7. Faaliyetlerin Takip Edilmesi ve İstatistikler Sistemin yetkili kullanıcıları Rektör, Rektör yardımcıları, Dekanlar, Bölüm başkanları veya Anabilimdalı başkanlarıdır. Yetkili kullanıcılar hiyerarşik yapıdaki yetki seviyelerine göre akademik personelin yapmış olduğu faaliyetleri, puanlarını ve bunlara ait çeşitli istatistikleri web üzerinden izleyebilirler. Bölüm başkanları sadece kendi bölümlerine bağlı kullanıcıların , Dekanlar sadece kendi fakültelerine bağlı kullanıcıların bilgilerine erişebilirler. En üst seviyede Rektör ve Rektör Yardımcıları vardır ve üniversiteye bağlı tüm kullanıcılarla ilgili bilgilere erişebilirler. Bu bilgiler öğretim üyeliğine yükseltilme ve atanma için yapılan başvuruların değerlendirilmesinde kullanılır. En üst düzeydeki bir kullanıcı (Rektör, Rektör Yardımcıları) sunulan raporlar sayesinde çeşitli değerlendirmeler yapabilirler. 4.8. Yönetim Modülü Sistemin kullanıcıları ile ilgili işlemler bu kısımda gerçekleştirilir.Bunlar yeni kullanıcı eklenmesi, silinmesi, kullanıcı yetkilerinin değiştirilmesi, yetkili kullanıcıların düzenlenmesi işlemleridir. Programın parametreleri ile ilgili işlemlerde buradan yapılır. Bunlar programın kullandığı çeşitli dosyaların adları ve yerleri , programın durumu, log seviyesi, ip kontrol seviyesi, güvenlik seviyesi , genel duyuru metini olarak sayılabilir. Program durumu parametresini değiştirmek suretiyle sistemde bilgi girişini veya onaylama kısmını kapatabilir ve bu durumu genel duyuru metni aracılığı ile tüm kullanıcılara duyurabiliriz. Ip kontrol parametresini de ayarlanarak programa sadece belirli ip bloklarından erişilmesi sağlanabilir. Bu ip bloklarının girilmesi işlemi de yönetim modülünden yapılır. 5. KULLANILAN TEKNOLOJİLER Projenin web kısmı Java programlama dilinin Servlet API ‘si kullanılarak , nesne-yönelimli olarak geliştirilmiştir. Araştırma Makaleleri , Seminer Notu , Bildiri , Tez v.b. yayınların içeriklerinin taranarak veritabanına aktarılması için kullanılacak uygulama ise Borland Delphi uygulama geliştirme aracı ile hazırlanmaktadır.Verilerin saklanacağı veritabanı yönetim sistemi ise Oracle ‘dır. Web sayfalarında gerekli çeşitli işlemler için JavaScript kullanılmıştır. 5.1. Java Java programlama dilini tanımlamamız gerekirse , Java ekibinin değerlendirmeleriyle oluşturulmuş aşağıdaki anahtar kelimeleri kullanabiliriz. Bunlar basit, güvenli, taşınabilir, nesne yönelimli, sağlam, çok kanallı, mimari-nötr, yorumlanan, yüksek performans, dağıtık, dinamik olarak sayılabilir. Bunlardan bizim için önemli olanları açıklayalım. Nesne-Yönelimli Atalarından etkilendiyse de Java diğer dillerle kaynak-kod uyumlu olması için tasarlanmadı. Bu Java ekibine temiz bir sicille çalışma özgürlüğü verdi. Bunun bir sonucu nesnelere açık , kullanılabilir ve faydacı bir yaklaşım olmuştur Geçmiş yılların nesne-yazılım ortamlarından cömertçe ödünç alarak Java ; puristlerinin “herşey bir nesnedir” paradigmasıyla , pragmatistlerin “yolumdan çekil” modeli arasında bir denge sağlamıştır. Java’daki nesne modeli , tam sayılar gibi basit tipler yüksek performanslı , nesne-olmayanlar olarak kalınca , basit ve genişletmesi kolay bir modeldir. Bu projede bizim servletler arasında haberleşmeyi sağladığımız BGenelHaber, BOturumHaber , program parametrelerini ve kullanıcı bilgilerini sakladığımız BParametre ve BKullanici , veritabanına bağlantı sağlayan BBaglanti , web sayfası oluşturmak ile ilgili metodlarımızın bulunduğu BSayfa , kendi istisnalarımızı yakalayıp işlememizi sağlayan BIstisna , çeşitli ufak işleri gören metodlarımızın toplandığı BAraclar nesneleri mevcutttur. Sistemde tutulacak çeşitli faaliyet tipleri de nesne olarak tanımlanmıştır Ayrıca servlet içindeki kodu en aza indirmek için her servletin yaptığı işle ilgili kodlar , metodlar şeklinde yine o servlet ismine benzer isim taşıyan nesnelerde toplanmıştır. Sağlam Webin çok platformlu ortamı bir programa aşırı istekler yükler, çünkü program değişik bir sistem yelpazesinde güvenilir bir şekilde icra edilebilmelidir. Bu yüzden , sağlam programlar yapabilme kabiliyeti Java’nın tasarlanmasında öncelikli olarak düşünülmüştür. Güvenilirliği kazanabilmesi için Java , program gelişim aşamasında hatalarınızı bulmaya zorlamak amacıyla sizi birkaç anahtar alanda sınırlandırır , ayrıca birçok ortak programlama hataları yapmaktan da kurtarır. Java katı yazılımlı bir dil olduğu için kodunu , derleme sırasında sürekli kontrol eder , buna rağmen kodunuzu run-time sırasında da kontrol eder. Aslında Java’da tekrarlaması zor run-time durumlarında ortaya çıkan , birçok takip edilmesi zor hata üretmek basitçe imkansızdır. Ne yazdığınız bildiğiniz durumda , yazdığınızın değişik şartlar altında nasıl davranacağını tahmin edebilmek , Java’nın anahtar özelliklerinden birisidir. Projemizde Java mimarisindeki zorunluluklardan da yola çıkarak , kod içindeki istisnai durumlar yakalanmakta ve kendi istisna sınıfımız BIstisna sayesinde gerekli şekilde işlenmektedir. BIstisna sınıfının yakalanan hata mesajını düzenli bir şekilde web sayfasında görüntüleme veya veritabanındaki hata kayıt tablosuna kaydetme özelliği vardır. Mimari-nötr Java tasarımcılarının temel bir konusu da kodun uzun solukluluğu ve taşınabilirliği idi. Bugün yazdığınız bir programın yarın da çalışacağına dair hiçbir garantinin olmaması (aynı makinada olsa bile) programcıların karşılaştığı ana problemlerden birisidir. İşletim sistemlerinin yükseltilmesi (upgrade) , işlemcilerin yükseltilmesi , asıl sistem kaynaklarındaki değişiklikler, bir program hatası verecek şekilde etki edebilirler. Java tasarımcıları , Java dilinde ve Java Virtual Machine ‘de bu sorunu gidermek için bazı zor karalar aldılar. Amaçları “bir kere yaz , her yerde her zaman sonsuza kadar çalıştır”. Büyük oranda bu amaç gerçekleştirilmiştir. Projemizin web kısmı Java ile yazıldığından ve veritabanı olarak da Oracle kullanıldığından , büyük ölçüde platform bağımsızlığına sahiptir. Sistem işletim sistemi olarak MS Windows sunucularından , Linux , Unix , Solaris gibi sunuculara kadar donanım olarak da çok farklı platformlarda , hiçbir değişikliğe ihtiyaç duymadan çalışabilir. Java Bean Api Java Bean farklı ortamlarda yeniden kullanılabilmek için tasarlanmış bir yazılım bileşenidir. Bir bean’in yeteneğinin hiçbir kısıtlaması yoktur. Bir belgenin yazımının kontrolü gibi basit bir işlemden , bir stok portfolyösünün performansının tahmini gibi kompleks işlemlere kadar pek çok işlem bean kullanılarak gerçekleştirilebilir. Bean , uç bir kullanıcıya görünür olabilir. Bunun bir örneği, grafiksel bir kullanıcı arabirimi üstündeki bir düğmedir. Bean , kullanıcıya bir multimedia bilgisi akımının kodunu gerçek zamanda çözen bir yazılım bu tip bir yapı bloğuna örnektir. Son olarak bean bir kullanıcının iş istasyonunda kendi başına veya dağıtılmış bileşenlerle birlikte hareket ederek çalışacak şekilde tasarlanabilir. Bir dizi bilgi noktasından , dairesel çizim üreten bir yazılım yerel olarak işleyen bir bean örneğidir. Bir stoktaki malların veya ürün borsasında anlık zaman –fiyat bilgilerini sağlayan bir bean ise , verisine ulaşabilmek için , diğer dağıtılmış yazılımlarla birlikte hareket etmek zorundadır. Java Servlet Api Servlet’ler platform-bağımsız %100 saf Java modülleri olup, bir web server’ın yeteneğini, yapabileceği işleri arttırırlar. Diğer scripting dilleri gibi, servletler platforma özel durumlar ya da değişiklikler gerektirmez. İkisi birarada, servletler ve JSP, ASP ve Perl gibi dinamik web script/programlama araçlarına Java temelli bir alternatif teşkil ederler. Servletlet Java programlama dilinde yazılıp sayfanın HTML içeriğini üretirler. Aynı zamanda uygulama mantığı server-tabanlı kaynaklarda mesela Java Bean’ lerde durabilir. Dokumanın içindeki bütün diğer HTML ya da XML tagları direkt olarak istemicinin önüne gelecek HTML sayfaya gönderilir. Sayfanın akışını ve mantığını dizayn ve görüntüsünden ayırmak ve tekrar kullanılabilen bileşen-tabanlı teknolojiyi kullanabilmek, Servlet teknolojisini diğer teknolojilerden daha hızlı ve kolay web uygulamaları yapar hale getirmiştir. Servlet kullanmanın bizce geliştirme aşamasındaki avantajları nesne-yönelimli kod yazabilmemiz, Java programlama dilinin gelişmiş özelliklerinden ve oldukça geniş kütüphanelerinden faydalanma imkanıdır. Özellikle bu tür büyük bir web uygulamasında servletler arasında nesne alışverişi yaparak en az miktarda veritabanı erişimi yapmakta ve sistemin genel performansını arttırmaktayız. Kullanıcı oturumunu takip ederek çeşitli güvenlik tedbirleri almakta ve sistemin daha güvenli çalışmasını sağlamaktayız. 5.2. JavaScript Özellikle bilgi giriş ekranlarında girilen verinin kontrol edilmesi , çeşitli dönüşüm işlemleri , form ile ilgili çeşitli işlemler JavaScript fonsiyonları ile kullanıcı tarafında tarayıcıya yaptırılmaktadır. 5.3. Oracle Veritabanı olarak Oracle 8.1.7 kullanılmaktadır. İş yükünün özellikle veritabanına kayıt ile ilgili işlemleri veritabanı prosedür ve fonksiyonlarına aktarılmıştır.Kayıt işlemleri Oracle stored procedure’leri servlet içinden çağrılıp bunlara parametre aktarılarak yapılmaktadır.Bu parametreler ile ilgili her türlü kontrol ve dönüşüm işlemleri stored procedure içinde yapılmaktadır. 6. SONUÇ Bu otomasyondan önce sadece atanma aşamasındaki öğretim üyelerinin yapmış olduğu akademik faaliyet bilgileri kağıt formlar üzerinde , puanlar kendileri tarafından hesaplanarak üniversite yönetime iletilmekteydi. Bu eski yöntemde bu bilgilerin sınıflandırılması ve bunlara erişim çok zordu.Bu yeni sistemle beraber ,toplanan bilgilerin faaliyet tiplerine göre sınıflandırılması, bilgilere ait her türlü istatistiğin çıkarılması , bu bilgilerin yayın bazında veya akademik personel bazında anlık olarak takip edilebilmesi , bilgilere internet üzerinden kolayca erişilebilmesi imkanı sağlanmıştır. İlaveten belli yayınların içeriklerinin saklanması ve bunların sunulması ile üniversite içi ve üniversiteler arasında bilgi paylaşımını arttıracağını düşünmekteyiz. KAYNAKLAR 1. Herbert Schildt , Herkes İçin Java 2 , Alfa , 2001 2. Philip Heller , Simon Roberts , Peter Seymour , Tom McGin , Java 1.1 Uygulama Geliştirme Klavuzu , Alfa , 1998 3. Osman Nihat Şen , Oracle SQL ,SQL*PLUS, PL/SQL ve Veritabanı Yönetimi , Beta ,1998 , İstanbul