mġllġ prodüktġvġte merkezġ bġlgġ teknolojġlerġ bölümü
Transkript
mġllġ prodüktġvġte merkezġ bġlgġ teknolojġlerġ bölümü
MĠLLĠ PRODÜKTĠVĠTE MERKEZĠ BĠLGĠ TEKNOLOJĠLERĠ BÖLÜMÜ UZMANLIK TEZĠ eDÖNÜġÜM KAPSAMINDA DEVLET KURUMLARI ARASINDA BĠRLĠKTE ÇALIġABĠLĠR MĠNĠMAL BĠR SĠSTEM ALTYAPISI VE ÖRNEK BĠR MODEL ÖNERĠSĠ Hazırlayan Erdoğan CEVHER Tez DanıĢmanı Prof. Dr. Hadi GÖKÇEN Ankara - 2008 i eDÖNÜġÜM KAPSAMINDA DEVLET KURUMLARI ARASINDA BĠRLĠKTE ÇALIġABĠLĠR MĠNĠMAL BĠR SĠSTEM ALTYAPISI VE ÖRNEK BĠR MODEL ÖNERĠSĠ (Uzmanlık Tezi) Erdoğan CEVHER MĠLLĠ PRODÜKTĠVĠTE MERKEZĠ BĠLGĠ TEKNOLOJĠLERĠ BÖLÜMÜ ġubat 2008 ÖZET Kamu kurumları, teknolojinin geliĢmesiyle birlikte müĢterileri statüsündeki vatandaĢa yönelik olarak verdikleri hizmetleri internet platformuna taĢımıĢ sağlamıĢlardır. kurumunun ve Ancak olduğu aynı hizmetlerin hizmetle durumların çevrimiçi iliĢkili hemen birden hemen sunulmasını fazla kamu hepsinde kamu kurumları, süreçlerde birbirlerinden bağımsız hareket etmiĢlerdir. Bu ise süreçlerde etkinsizliğe neden olmuĢtur. Dolayısıyla, kullandıkları teknolojileri her ne kadar iyileĢtirseler de kamu kurumlarının, eDönüĢümü gerçekleĢtirmek için ortak hareket etmeleri gereği ortaya çıkmıĢtır. Bu aĢamada teknoloji, bu ortak hareket için kamu kurumlarına yeni bir felsefe önermektedir: “Birlikte ÇalıĢabilirlik”. Bu çalıĢmada, birlikte çalıĢabilirliği sağlayacak çözüm çatısının tek olmadığı, farklı devletlerin değiĢik mimariler benimsediği bulunmuĢtur. Bu yüzden bu tezde birlikte önerilmeyecektir. çalıĢabilirliği Farklı sağlayacak devletlerin spesifik kullandıkları bir farklı mimari mimariler ii sunularak olması gereken mimarinin asgari hangi koĢulları sağlaması gerektiği verilecektir. Bilim Kodu: 280106 Örgütler Arası Bilgi Sistemleri Sınıflandırması) Anahtar Kelimeler: eDönüĢüm, eDevlet, birlikte çalıĢabilirlik Sayfa Adedi: 139 Tez Yöneticisi: Prof. Dr. Hadi GÖKÇEN (RFCD iii AN INTEROPERABLE MINIMAL SYSTEM INFRASTRUCTURE AMONG GOVERMENT AGENCIES IN THE SCOPE OF eTRANSFORMATION AND A SAMPLE MODEL PROPOSAL (Specialization Thesis) Erdoğan CEVHER NATIONAL PRODUCTIVITY CENTER OF TURKEY DEPARTMENT OF INFORMATION TECHNOLOGY February, 2008 Abstract Government agencies have taken their services that they offer to citizens having the status of their customers to the internet platform along with the development of technology and thereby provided those services to be offered online. But, in almost all of the cases that many agencies are concerned with the same service, government agencies handled the processes independently from each other. This lowered the efficiency of the processes considerably. That is why, the need to the collaboration of government agencies in order to achieve eTransformation appeared clearly no matter how much they improve their technologies they use. At this point, technology offers government agencies a new philosophy for the aforementioned collaboration: interoperability. In this study, it has found that the solution framework that can enable interoperability is not unique, and iv that different countries have adopted different architectures. That is why, a specific architecture that can provide interoperability will not be offered in this thesis. But rather, the minimum requirements that the architecture needs to assure interoperability will be given by presenting different architectures employed by different countries. Science Code: 280106 Interorganisational Information Systems (RFCD Classification) Key Words: eTransformation, eGovernment, interoperability Total Pages: 139 Advisor: Prof. Dr. Hadi GÖKÇEN v ĠÇĠNDEKĠLER Sayfa 1. GĠRĠġ ..........................................................................................................1 2. DEVLET HĠZMETLERĠNĠN EVRĠMĠ ............................................................5 2.1 Gartner Olgunluk Modeli ...........................................................................6 2.1.1 Var olma ................................................................................................7 2.1.2 EtkileĢim ................................................................................................8 2.1.3 Hareket (iĢlem).......................................................................................9 2.1.4 DönüĢüm .............................................................................................11 2.1.4.1 Mevcut süreçlerin yeniden yapılandırılması ......................................14 2.1.4.2 Formların otomatik iĢlenmesine yönelik MS baĢvuru mimarisi ..........18 3. BĠRLĠKTE ÇALIġABĠLĠRLĠĞĠN FĠKĠRSEL ALTYAPISI ..............................21 3.1 Birlikte ÇalıĢabilirliğin Kısa Bir Tarihçesi .................................................21 3.2 Birlikte ÇalıĢabilirlik Öncesi Öncül Adımlar .............................................24 3.3 Microsoft‟un Bağlantılı Devlet Çatısı Çözümü .........................................25 3.3.1 Microsoft Teknoloji Olgunluk Modeli (altyapı optimizasyonu) ...............31 3.3.2 ĠĢ verimliliği altyapı optimizasyonu .......................................................32 3.3.3 Uygulama platformu altyapı optimizasyonu .........................................33 3.3.4 Bağlantılı devlet çatısı mimari tasarım düĢünceleri ..............................33 3.3.5 Dünyadaki bağlantılı devlet çatısı uygulamaları ...................................36 3.3.5.1 Mısır Hükümeti‟nin uygulaması .........................................................36 3.3.5.2 Çek Cumhuriyeti Sosyal Hizmetler Birliği (CSSA) uygulaması..........38 4. BĠRLĠKTE ÇALIġABĠLĠRLĠĞĠN TEKNĠK ALTYAPISI .................................41 4.1 Hizmet Odaklı Mimari (Service Oriented Architecture, SOA) ..................41 4.2 Simple Object Access Protocol (SOAP) ..................................................51 4.2.1 SOAP‟a GiriĢ ........................................................................................51 4.2.2 SOAP‟la Uzak Veriye EriĢim ................................................................53 vi 4.2.3 SOAP Discovery (DISCO, Discovery of Web Services) .......................57 4.2.4 Web Service Description Language (WSDL) .......................................57 4.2.5 SOAP‟ın ASP.NET‟le Kullanımı ...........................................................58 4.3 Web Servisleri .........................................................................................58 4.3.1 Bir Web Servisinin Yapımı ...................................................................59 4.3.2 Bir Web Servisinin Tüketimi .................................................................65 5. BĠR eDEVLET UYGULAMASI MODELĠNDE ................................................ KULLANILABĠLECEK ÖRNEK BĠR ALT MODÜL ÖNERĠSĠ ..........................72 5.1 Belediyeden VatandaĢa Hizmetler Alt Modülü ........................................80 5.2 Belediyeden Hastaneye Hizmetler Alt Modülü ........................................84 5.2.1 Mevcut sistemin durumu ......................................................................84 5.2.2 Mevcut sistemin yetersizlikleri ..............................................................84 5.2.3 Modellenen sistemin amaçları..............................................................84 5.2.4 Kritik baĢarı faktörü ..............................................................................85 5.2.5 Alt modülün iĢleyiĢi ..............................................................................85 5.3 Belediye Veritabanı .................................................................................86 6. SONUÇ VE ÖNERĠLER ............................................................................93 EK 1: Önerilen Modelin Kaynak Kodları ........................................................96 EK 2: eDevlet Kapısı (eKapı) ......................................................................122 EK 3: eDevlet Ağ Geçidi Projeleri ve eDevlet Mimarileri .............................135 vii ġEKĠLLER ġekil 2.1 Devlet hizmetlerinin evrimi: Gartner olgunluk modeli ...................... 6 ġekil 2.2 Gartner olgunluk modeli aĢamaları ................................................. 7 ġekil 2.3 Var olma aĢaması ........................................................................... 8 ġekil 2.4 EtkileĢim aĢaması ........................................................................... 9 ġekil 2.5 Hareket aĢaması ........................................................................... 10 ġekil 2.6 DönüĢüm aĢaması ........................................................................ 12 ġekil 2.7 Formların elle iĢlenmesine dayalı mevcut süreç ............................ 15 ġekil 2.8 Yeniden yapılandırılmıĢ süreçte formların otomatik iĢlenmesi ....... 17 ġekil 2.9 Microsoft Ofis ĠĢ Uygulaması BaĢvuru Mimarisi ............................ 19 ġekil 3.1 Teknoloji çözümlerinin farklılaĢan yatay platformları ..................... 22 ġekil 3.2 Microsoft Bağlantılı Devlet Çatısı .................................................. 29 ġekil 3.3 Microsoft teknoloji olgunluk modeli ................................................ 31 ġekil 3.4 ĠĢ verimliliği altyapı optimizasyonu ................................................ 32 ġekil 3.5 Uygulama platformu altyapı optimizasyonu ................................... 33 ġekil 3.6 Bağlantılı devlet çatısı mantıksal mimarisi ..................................... 35 ġekil 3.7 Mısır hükümeti bağlantılı devlet çatısı çözümü .............................. 37 ġekil 3.8 Çek Cumhuriyeti devlet ağ geçidi .................................................. 40 ġekil 4.1 Web servisleriyle, farklı ortamlardan gelen verilerin kullanımı ....... 44 ġekil 4.2 Ayrık iĢ kolu uygulamalarının tek bir hizmet gibi sunumu .............. 45 ġekil 4.3 Tipik bir üç katmanlı uygulama mimarisi........................................ 46 ġekil 4.4 Hizmet odaklı uygulama mimarisi .................................................. 46 viii ġekil 4.5 Microsoft‟un hizmet odaklı altyapı tasarımı ................................... 47 ġekil 4.6 Microsoft‟un hizmet odaklı altyapıyı kurarken kullandığı ürünler ... 48 ġekil 4.7 Kurumsal hizmet veriyolu: hizmetin sağlayıcılarıyla tüketicileri arasındaki köprü ................................................................................... 50 ġekil 4.8 Farklı ortamlarda SOAP istemi ...................................................... 54 ġekil 4.9 VH_BH.asmx cevabı (VH_BH web servisinden alınan cevap) ...... 65 ġekil 5.1 Üyelik öncesi menülere kısıtlı eriĢim ............................................. 73 ġekil 5.2 Üyelik modülüne iliĢkin dosya yapısı ............................................. 73 ġekil 5.3 Üyelik klasörünün varsayılan default.aspx dosyasına kısıtlı eriĢim 74 ġekil 5.4 Üyelik giriĢ ekranında sayfa düzeyi doğrulamalar ......................... 74 ġekil 5.5 Üyelik kayıt formu .......................................................................... 75 ġekil 5.6 Belediye taraflı alt sistemlere eriĢim isteği yapılan kayıt formu ..... 76 ġekil 5.7 Sisteme giriĢ sonrası açılan ekran ................................................ 76 ġekil 5.8 ÇalıĢılan kurum bilgisinin doğrulanması sonucu açılan ekran ....... 77 ġekil 5.9 Yönetici paneli modülüne iliĢkin dosya yapısı ............................... 77 ġekil 5.10 Yönetici paneli giriĢ ekranı .......................................................... 78 ġekil 5.11 Yönetici paneli ............................................................................. 78 ġekil 5.12 Yönetici paneli: çalıĢan bilgisi onaylama formu ........................... 78 ġekil 5.13 Belediye-VatandaĢ menünün Vergi ve Harçlar alt menüsü ......... 80 ġekil 5.14 Vergi ve Harçlar sayfası (http://localhost/BV_VergiHarc.aspx) .... 81 ġekil 5.15 Emlak vergisi hesaplanıĢı (V ....................................................... 82 ġekil 5.16 Web servisinin sonuç döndürümü ............................................... 82 ġekil 5.17 Web servisinin metotları .............................................................. 83 ġekil 5.18 Veri sağlayıcısı VH_BH.asmx web servisindeki metotlar ............ 85 ix ġekil 5.19 Veri tüketicisi http://localhost/VHIstemci_BH_Secim.aspx sayfası .............................................................................................................. 85 ġekil 5.20 Web servisinin cevabı ................................................................. 86 ġekil 5.21 Belediye veritabanıyla sonuçlanan birim iliĢki diyagramı ............. 87 x ÇĠZELGELER Çizelge 2.1 Devletlerin geldikleri eDevlet aĢaması……………………………13 Çizelge 2.2 Dünyadaki 198 ülkenin eDevlet derecesi…………………………14 Çizelge 4.1 Sınıfların, aduzaylarının ve derlemelerin adlandırma standardı.60 Çizelge 4.2 Adlandırma standardına eĢlik eden komut satırları ve kullanılan dizinler……………………………………………………………………………………………………………………..……60 1 1. GĠRĠġ 20. yüzyılda baĢlayan biliĢim çağı toplumsal dönüĢümleri tetiklemiĢ ve sanayi toplumundan bilgi toplumuna geçiĢ süreci yaĢanmıĢtır. Ancak bilgi toplumu sürecine devĢirilmiĢ toplumlar arasında da teknolojiyi kullanma boyutu itibarı ile oldukça büyük farklılıklar gözlemlenmiĢtir. Bu noktadaki geliĢmeleri ifade etmek üzere “sayısal uçurum” gibi birçok değiĢik kavram ortaya çıkmıĢtır. Toplumları koordine eden birimler olarak görülebilecek devletler ise teknolojinin sürüklediği bu yarıĢta geri kalmamak için kendi toplumlarını dönüĢtürebilmek adına hatırı sayılır yatırımlara imza atmaya baĢlamıĢlardır. Ülkemize dönersek, kamu kurumları özeline inildiğinde, her kurum kendi imkânları ölçüsünde teknolojik altyapılarını çağın gerektirdiği koĢullara güncellemiĢ ve biliĢim tabanlı etkinliklerini artırmaya çalıĢmıĢtır. Kamu kurumları arasında teknolojiyi donanımsal anlamda takip etme ve fikirsel dönüĢümü gerçekleme anlamında bazı farklar ortaya çıksa bile genel itibarı ile çoğu kurumda bütünlüklü bir dönüĢümü gerçekleĢtirmek için gerekli olan donanımsal altyapı önemli ölçüde tedarik edilmiĢtir. Artan biliĢim yetkinlikleri ile birlikte de birçok kurum, vatandaĢa sunmuĢ oldukları hizmetlerin önemli bir bölümünü internet platformuna taĢımıĢtır. Hizmetlerin evrildiği bu süreçte, kurumlar arası iĢbirliklerini gerektiren iĢ akıĢları gözönünde tutulduğunda, kurumların tek baĢlarına kendi biliĢimsel politikalarını belirleyip dört dörtlük bir platforma sahip olmaları artık yeterli olmamaktadır. Zira artık “dönüĢümle” gerçekten algılanması gereken mana hakkıyla anlaĢılmaya baĢlanmıĢtır. Bu mana, (e)dönüĢümün nasıl olması gerektiğini vermektedir: dönüĢüm ancak el ele verip paylaĢılan iĢ süreçlerini önemli ölçüde sadeleĢtirip gereksiz iĢ süreçlerini ortadan kaldırmakla mümkündür. Ortak hareketin artık zorunlu olduğu noktaya gelindiğinde, ülkemizde de önemli geliĢmeler yaĢanmıĢtır. Kurumların biliĢimsel koordinasyonunda ve 2 tek bir merkezden yapılandırılmalarında gerçi hala tek bir otorite merci olabilen bir kurum oluĢturulamamıĢ ve görevlendirilememiĢ olsa da “eDevlet Kapısı” gibi bazı önemli projelerde oldukça önemli ilerlemeler sağlanmıĢtır (en azından bahsi geçen projede artık neyin nasıl olması gerektiği, yani mimarinin nasıl yapılandırılması gerektiği çoğu kimse tarafından bilinen bir Ģey olmuĢtur). Bu noktada eKapıdan bahsedilmesinin nedeni, yukarıda bahsedilen bir otorite mercinin hizmet ve görev konusu olarak iĢleyebilecek altyapıların yavaĢ yavaĢ ortaya çıkmıĢ olmasıdır. Yukarıdaki paragraflar boyunca yapılan kısa giriĢte, dönüĢüm gerekliliğinden bir parça bahsedilmiĢtir. Peki, o halde eDönüĢüm nedir? Sadece teknoloji dönüĢümü müdür? Yoksa daha köklü bir değiĢim midir? eDönüĢümün tanımına bakıldığında bu sorulara verilebilecek cevaplar apaçık hale gelir: eDönüşüm ≡ Bilgi ve iletiĢim teknolojilerini etkin kullanarak, mevcut kültürün, iĢ modelinin, iĢ süreçlerinin, ürün ve hizmetlerin; çalıĢan, vatandaĢ, iĢ ortakları ve diğer tüm sosyal paydaĢlarının yararına, bir bütünlük içerisinde değiĢtirilmesidir [1]. eDönüĢümün gerçekleĢtirilmesi için, dönüĢümde yer alan tüm tarafların (vatandaĢ, devlet, özel sektör) buna hazırlanması gerekmektedir. eDönüĢüm tanımında geçen “bir bütünlük içerisinde” tabiri ile oluĢturulacak yapının tüm tarafların aynı anda düĢünülüp kurgulanması zorunluluğundan hareketle; biliĢimsel boyut perspektifinden bakıldığında bütünlüğün nasıl sağlanacağı sorusu ile karĢılaĢılmaktadır. Bunun için hangi kavramlar ve bu kavramları Ģekillendiren hangi teknolojiler vardır? Hangi teknolojiler sorusuna bu tezin ilerleyen bölümlerinde doyurucu cevaplar verilmeye çalıĢılacaktır. Ancak önce bu giriĢ kısmında, “birlikte çalıĢabilirlik” kavramının basit bir tanımı yapılıp ardından tezin bölümlerinde sırasıyla hangi konuların iĢleneceği verilecektir. 3 Birlikte çalışabilirlik ≡ Birden fazla sistemin veya bileĢenin bilgilerini değiĢebilme ve değiĢilen bu bilgileri kullanabilme yeteneğidir (IEEE tanımı) [2]. Kamunun kendi kaynaklarını ve bilgilerini etkin yönetmesi için oldukça önemli olan birlikte çalıĢabilirlik kavramı, teknolojik geliĢmeyle birlikte ciddi kapsam kazanmıĢ ve biliĢim sektöründe çok daha önemli bir noktaya gelmiĢtir. Birlikte çalıĢabilirlik eDönüĢümün anahtar oyuncusu olup ilerleyen bölümlerde bir eDönüĢüm için gerekli olan altyapı verilecektir. eDönüĢüm altyapısını sağlamak üzere tez içerisinde yer alan bölümlere bakıldığında; Ġkinci bölümde, eDönüĢümün aĢamaları olarak sıralanan “var olma”, “etkileĢim”, “hareket”, “dönüĢüm” aĢamaları “Devlet Hizmetlerinin Evrimi için Gartner Olgunluk Modeli” yardımıyla verilecektir. Dördüncü aĢama olan dönüĢüm aĢamasında, mevcut süreçlerin yeniden yapılandırılıĢı iĢlenecektir. Bu noktada, formların otomatik iĢlenmesine yönelik Microsoft baĢvuru mimarisi de yeniden yapılandırılma bağlamında ele alınacaktır. Üçüncü bölümde, birlikte çalıĢabilirliğin fikirsel altyapısı Ģekillendirilecektir. Bölümün baĢında, birlikte çalıĢabilirliğin kısa bir tarihçesi verilecektir. Daha sonra, birlikte çalıĢabilirlik öncesi atılması gereken öncül adımlara temas edilecektir. Microsoft‟un birlikte çalıĢabilirlik için önerdiği Bağlantılı Devlet Çatısı çözümünün iĢlendiği son kısımda Microsoft Teknoloji Olgunluk Modeli (altyapı optimizasyonu), iĢ verimliliği altyapı optimizasyonu ve uygulama platformu altyapı optimizasyonu verilecektir. Bölümün sonunda, bağlantılı devlet çatısı mimari tasarım düĢünceleri yer alacaktır. Dördüncü bölümde, birlikte çalıĢabilirliğin teknik altyapısına yönelik olarak Hizmet Odaklı Mimari (Service Oriented Architecture) mantıksal 4 düĢüncesinden yola çıkılıp bu mantığı hayata geçirecek olan Simple Object Access Protocol (SOAP) ve web servisleri gibi belli baĢlı teknolojiler verilecektir. SOAP‟ın iĢlendiği alt bölümde, bu teknoloji yardımıyla uzak veriye nasıl eriĢileceği, SOAP Discovery, web service description language (WSDL) ve SOAP‟ın ASP.NET‟le kullanımı konuları iĢlenecektir. Web servislerinin iĢlendiği alt bölümde ise, bir web servisinin yapımı ve tüketimi konuları iĢlenecektir. BeĢinci bölümde, iki farklı örgütün birlikte çalıĢabilirlik modeli kurgulanılacaktır. Bu tezde bu iki örgüt için seçilen belediye ve hastane tamamen kukla değiĢken olarak düĢünülebilir. Verilen mimari geniĢleyebilir özellikte olup üçüncü ve dördüncü … örgütler de sunulacak olan modele benzer mantık içerisinde katıĢtırılabilir. Tezin ekler kısmında bu bölümde oluĢturulan birlikte çalıĢabilirlik modelinin kaynak kodları da verilmiĢ olup konu üzerinde çalıĢan kimselere karınca kararınca da olsa bir katkı sağlayabilmek arzu edilmiĢtir. Altıncı bölümde, sonuç ve öneriler olarak birlikte çalıĢabilirliğin hangi kıstaslar dikkate alınarak takip edilmesi gerektiği verilecektir. Tezin EKLER kısmında ise; Türkiye‟nin eDevlet kapısının geliĢimine yer verilecek, daha sonra ise sunulacaktır. Ayrıca “eDevlet mimarileri ile ilgili bazı çizimler yukarıda bahsedilen, beĢinci bölümün çalıĢabilirlik modelinin kaynak kodları da yine bu kısımda verilecektir. birlikte 5 2. DEVLET HĠZMETLERĠNĠN EVRĠMĠ ġu anda dünya üzerindeki devletlerin birçoğunda hizmetler, kâğıt tabanlı olup elle yapılmaktadır. “Bağlantılı Devlet”in arkasında yatan fikir ise devletlerin kâğıt tabanlı yürüyen ve elle yapılan süreçlerden alınıp oldukça farklı elektronik eriĢim kanallarından (cep telefonu, kiosk, internet vb.) ulaĢılabilen ve otomatik yürüyen hizmetlerin sunulması süreçlerine taĢınmasıdır. Bağlantılı devlet çatısı altında pasaportlardan sürücü ehliyetlerine kadar sıralanabilecek birçok hizmet için devletin müĢterisi olarak nitelendirilebilecek olan vatandaĢ, bugünlerde ilgili kamu kurumuna gitmekte, bir form doldurmakta, bu formu değiĢik onay makamlarından geçirmekte, böylelikle bir masadan diğerine gitmektedir. Ġstenen ise tüm hizmetlerin elektronik ortamda otomatik olarak alınmasıdır. Bağlantılı devlet çatısında bu tür hizmetler daha etkin verilmektedir: vatandaĢ ilgili web sitesine girer, çevrimiçi olarak bir web form doldurur ve tüm süreç otomatik olarak yürür. Böylelikle süreçler daha hızlı ve kolay iĢlediğinden vatandaĢlar kamu hizmetlerinden daha kolay yararlanabilir ve ilgili süreçlere daha kolay katılabilirler. Devlet hizmetleri eDönüĢüm süreci içerisinde olgunlaĢırken, hizmetlerin sunum kalitesi artmakta ve süreçler daha hızlı ve etkin bir biçimde iĢlemektedir. Ġnternetin ortaya çıkıĢından önce, kamu hizmetlerinden yararlanacak bir vatandaĢın, alacağı hizmetin veriliĢi ile ilgili ve süreçlerin iĢleyiĢi ile ilgili konularda bile yeterince bilgi edinmek için ilgili kamu kurumuna bizzat gitmesi, hizmetle ilgili kılavuzları takip etmesi gerekmekteydi. Daha sonra, kamu kurumları kendi web sitelerini oluĢturarak verdikleri hizmetlerle ilgili bilgileri ayrıntılı olarak web ortamına taĢıdılar. Daha sonraki aĢamada, aynı hizmetle ilintili kamu kurumları birbirleriyle iĢbirliği yapma arayıĢına girdiler. En nihayet, süreçlerin yeniden analizinin yapılıp gereksiz süreçlerin elenmesi ve süreçlerde tamamen otomatikleĢtirilmeye gidilmesi ihtiyacı ortaya çıktı. Devlet hizmetlerinin evrimi ile ilgili 6 aĢamalandırma çalıĢması olan “Gartner Olgunluk Modeli”, devlet hizmetlerinin evrimini (ġekil 2.1) daha da açıklayıcı olacaktır: ġekil 2.1 Devlet hizmetlerinin evrimi: Gartner olgunluk modeli 2.1 Gartner Olgunluk Modeli Oldukça karmaĢık bir konu alan eDevlet felsefesinin daha iyi kavranması, konuyu değiĢik aĢamalara ayırarak daha kolay olabilmektedir. Bu aĢamaların belirlenmesinde ise teknolojinin kamu hizmetlerini biçimlendirirken geçtiği köĢe taĢları kullanılabilir. 1996-1998 yılları, devletler için eDevletin ve eDevlet programlarının nasıl çalıĢtığının araĢtırıldığı yıllar olmuĢtur. Bu amaçla, birçok devlet ileride sunacakları eDevlet hizmetlerinin geliĢimine yönelik olarak geçirecekleri aĢamaları ele alan programlar hazırlamıĢlardır. Gartner firması, geliĢtirdiği olgunluk modelinde, eDevletteki devlet hizmetlerinin sunum derecelerini dört farklı aĢamada ele almıĢtır: var olma, etkileĢim, iĢlem (transaction), dönüĢüm. Teknolojinin sürekli geliĢmesi ile birlikte önerilen ayırım aĢamaları da farklılaĢabilmektedir. BaĢlangıçta farklı olarak algılanan bazı aĢamalar teknolojinin ilerlemesiyle birlikte aynı algılanır hale de 7 gelmektedir. Geleneksel basit devlet hizmetlerinin sunumundan tamamen bağlantılı hizmet sunumuna kadar uzanan Gartner olgunluk modeli, devletlerin yaptıkları iĢleri nasıl iyileĢtirebileceklerini gösteren bir modeldir (ġekil 2.2). ġekil 2.2 Gartner olgunluk modeli aĢamaları 2.1.1 Var olma Kamu kurumları hala web sayfaları yapıp, hizmetlerini çevrimiçi vermeye çalıĢmaktadırlar. VatandaĢlara içerik sunulurken kamu kurumlarının çoğu halen kurum odaklı bakıĢ açısıyla iĢleyiĢi ele almaktadır: her kurum kendi web sitesinde kurum bilgilerinin sunuluĢunu ve sunulacak hizmetlerin planlanıĢını ve daha sonra da bunların yayınlanıĢını kendisi planlamaktadır. Yani her kurum “kendi gemisini kurtaran kaptan” edasıyla hareket etmektedir. Birden fazla kamu kurumunu ilgilendiren bir hizmeti alacak bir vatandaĢ, ilgili hizmet kurum odaklı planlandığından bir kurumdan öbürüne gitmek zorunda kalmaktadır. Bu iyileĢtirilebilirdir. yüzden, devletlerin sundukları hizmetlerin çoğu 8 Var olma aĢamasında (ġekil 2.3) webte var olma (bir servis sağlayıcıda site barındırma), bilgi paylaĢımı, muhasebe kayıtlarının yansıtımı ve ofis otomasyonu gibi faaliyetler yürütülmektedir. ġekil 2.3 Var olma aĢaması 2.1.2 EtkileĢim Bu aĢamadaki yeni kavram, “portal” kavramıdır. Portallarla bilgiler bir araya getirilerek vatandaĢın daha rahat anlayabileceği biçimde vatandaĢa sunulmaya baĢlandı. Portallar, internet kullanıcılarına çekici hizmetler, bilgiler, link adresleri ve arama motorları vb. sunarlar. Ayrıca, bilgilerin araĢtırılması ve farklı kullanıcı profiline sahip vatandaĢlara bilginin sorunsuz bir biçimde iletilmesini sağlarlar. Böylelikle vatandaĢlarla kolay iletiĢim kurulmasını mümkün hale getirirler. VatandaĢlar da bu rahat iletiĢim sayesinde devletle daha rahat iletiĢim kurmaya baĢlayabilirler. Facebook ve Myspace gibi toplumsal ağ sitelerinde bilgilerle kullanıcılar bir araya getirilmiĢtir. Buna benzer bir devrim, kamu kurumları tarafında, teknolojinin ilgili avantajları kullanılmadığından henüz görülememiĢtir. Kamu kurumları 9 vatandaĢa böyle bir yeniliği sunabilmek için bilgilerini olabildiğince paylaĢmalı ve birden fazla kurumu ilgilendiren hizmetlerin sunumunda iĢbirliğine gitmelidirler. EtkileĢim aĢamasında web sitelerinden eFormların indirilmesi, basit iĢ akıĢlarının çevrimiçi yapılması, web sayfaları yayınlanmasının otomatikleĢtirilmesi, basit iĢ kolu (muhasebe, tedarik zinciri yönetimi, kurumsal kaynak planlaması vb.) uygulamaları, ePosta hizmetlerinin sağlanması ve arama (search) gibi faaliyetler yürütülmektedir (ġekil 2.4). ġekil 2.4 EtkileĢim aĢaması 2.1.3 Hareket (iĢlem) Hareketlerin (iĢlem, transaction) çevrimiçi yapılabileceği düĢüncesinin öne çıktığı hareket aĢamasına devlet perspektifinden bakıldığında oldukça ilginç geliĢmeler gözlemlenmektedir. Sürücü ehliyetleri, pasaportlar, vergilerin ödenmesi ile ilgili iĢlemlerin çevrimiçi verildiği bu aĢamada teknoloji altyapısının tek baĢına yetkinliği yeterli olmamaktadır: teknolojik altyapıya yasal çerçevenin eĢlik etmediği durumlarda birçok sorunla karĢılaĢılmaktadır. 10 Sayısal imza ihtiyaçları ve mevcut süreçlerin yeniden yapılandırılması ile ilgili iĢ süreçleri analizleri bu aĢamada ortaya çıkmıĢtır. Hareketlerin çevrimiçi gerçekleĢtirildiği bu aĢama, hem vatandaĢlar hem de kamu kurumları için eDevletin gerçek faydalarının yavaĢ yavaĢ ortaya çıkmaya baĢladığı aĢamadır. Hareket aĢamasında self-servis uygulamalar, kamu kurumları arası hizmetler, kamu kurumlarının iç portalları, ERP sistemleri, bütünleĢik iĢ akıĢları, ileri düzeyde iĢ kolu uygulamaları, mobil personel desteğinin yanı sıra belge ve kayıt yönetimi yer almaktadır (ġekil 2.5). ġekil 2.5 Hareket aĢaması 11 2.1.4 DönüĢüm Bu aĢama, teknolojinin devletlerin iĢ yapma biçimini iĢ dönüĢümleri sayesinde gerçekten değiĢtirdiği aĢamadır. Normalde, bir okul için kaydolan bir öğrencinin daha sonrasında iĢ hayatına atılması ve en nihayet vergi vermeye baĢlayan bir vatandaĢ olması yaĢam döngüsü beklendik bir durumdur. ĠĢte tam bu noktada, bir devletin tüm bu döngü içerisinde ortaya çıkabilecek bilgileri bütünlükçü bir bakıĢ açısıyla ele alıp, yaĢam döngüsünün içerisindeki vatandaĢların bilgileri doğru bütünlükçü hizmetlere bir açıdan doğru yönetmesi zamanda sayesinde, eriĢebilmeleri sağlanmaktadır. Devletler artan bir biçimde teknolojiye yatırım yaptıklarından çok yakın bir gelecekte birçok devletin bu aĢamaya geleceği söylenebilir. Bir devlet dairesine gitme zorunluluğu olmadan vatandaĢın ilgili her iĢini otomatik olarak yaptığı, doğru bilgiye zamanında ulaĢtığı ortamda, hayatın iĢleyiĢi hem vatandaĢ hem de kamu kurumları açısından daha kolay ve daha verimli olacaktır. Bu dördüncü aĢamaya daha erken geçen bir devletin bugünün rekabet dünyasında bir adım öne geçeceği kolaylıkla söylenebilir: Bu aĢamayı sağlayan bir devlet diğer alanlara ayırdığı yatırımı zamanla daha kolay yapabilir hale gelecektir. Teknoloji, kamu kurumlarında hizmet için ihtiyaç duyulan personel sayısını da azaltacaktır. Avrupa Birliği‟ndeki ve Kuzey Amerika‟daki devletlerin Ģu sıralarda gelmeye çalıĢtıkları aĢama bu aĢamadır. Bu aĢamaya gelebilmek için oldukça disipliner bir yöntem izlenmelidir. Bu aĢamada, iĢ süreçlerinin iyileĢtirilmesi en üst düzeye çıkarılacağından eDönüĢümün hizmet alımı noktasında vatandaĢa olan katkıları daha belirgin olacaktır. DönüĢüm aĢamasında, birden fazla elektronik kanaldan eriĢim stratejisi, aynı hizmetin birden fazla kamu kurumu tarafından verilebilir hale getirilmesi, bütünleĢik uygulamalar, bütünleĢik müĢteri bilgisi, bütünleĢik kimlik Ģeması (ID schema), paylaĢılan hizmetler, performans yönetimi ve iĢ zekâsı yer almaktadır (ġekil 2.6). 12 ġekil 2.6 DönüĢüm aĢaması PaylaĢılan hizmetlere birkaç örnek olarak aĢağıdakiler verilebilir: eĠnsan Kaynakları (ĠĢ gücü bilgi ağı): Kamu kurumları birbirlerinin personellerinden yararlanabilir. Devletin amacının vatandaĢa en iyi biçimde hizmet etmek olduğu düĢünüldüğünde, kamu kurumları birbirlerinin rakipleri değil, iĢ ortaklarıdır. eTedarik: Kamu kurumları bir bütün olarak düĢünüldüğünde bir kurumda artık ihtiyaç duyulmayan bazı kalemlerin diğer bir kurumun tedarik etmek için uğraĢ verdiği malzemeler olabileceği durumlar ortaya çıkacaktır. eAlım: Kamuyu bir bütün olarak düĢündüğümüzde bazen bir kurumun eleman alım için yaptığı bir sınav baĢka bir kurumun eleman alım sınavıyla çakıĢmaktadır. Kamu kurumları, KPSS sınavı sonrasındaki süreci de ortak Ģekillendirmek zorundadır. Bu, kamuya eleman alım etkinliğini daha da artıracaktır. 13 eÖğrenme: Bir kamu kurumunun tedarik ettiği bir eÖğrenme (eLearning) modülü baĢka bir kurumda da kullanılabilir. eÖğrenme modüllerinin paylaĢılması kamuda maliyetlerin de düĢmesine neden olacaktır. eFinans: Kamu kurumları iĢleyiĢ süreçlerinde bir kurum yatırıma konu meta arayıĢında iken baĢka bir kurumun mali yapısında bozukluklar görülebilmektedir. Devlet kamu kurumlarının bütçe dengelerini eTakas olanakları ile daha da sağlam bir zemine oturtabilir. Devletlerin gelmiĢ oldukları eDevlet aĢamaları ve eDevletleĢme derecesi ile ilgili birçok araĢtırma yapılmıĢtır. Bu araĢtırmalardan ikisinin sonucu aĢağıda verilmektedir: Çizelge 2.1 Devletlerin geldikleri eDevlet aĢaması 1.Var olma 2.EtkileĢim Çin Letonya Lüksemburg Hindistan Slovakya Çek Cum. Güneydoğu Asya Polonya Yunanistan Ġsviçre Kıbrıs R.K. Litvanya 3.Hareket 4.DönüĢüm Almanya Ġsveç Belçika Ġngiltere Hollanda Norveç Ġspanya Estonya Ġtalya Malta Macaristan Avusturya Portekiz Ġzlanda Ġrlanda Fransa Finlandiya Danimarka Slovenya A.B.D. Kaynak: Gartner olgunluk modeli temelinde Capgemini Consulting EU araĢtırması: eGovernment Benchmarking 2006 Ġngiltere ve Kanada gibi ülkeler, eHizmetlerin verilebilmesine yönelik olarak yasal çerçevelerini düzenleyerek hareketleri çevrimiçi yapmaya baĢlamıĢlardır. Ancak, her ne kadar Gartner‟ın 2006 yılı kıyaslamasında Ġngiltere ve bazı ülkeler dördüncü aĢamada görünseler bile, aynı olgunluk modeline kendi perspektifinden değiĢik bir gözle bakan Microsoft uzmanlarına göre dördüncü aĢamaya gelebilmiĢ bir ülke hala yoktur. 14 Microsoft, geliĢtirdiği “Connected Government Framework” yaklaĢımıyla, devletleri bu dördüncü aĢamaya getirmeyi amaçlamaktadır. Microsoft‟un Bağlantılı Devlet Çatısı yaklaĢımı ilerleyen bölümlerde anlatılacaktır. Çizelge 2.2 Dünyadaki 198 ülkenin eDevlet derecesi Sıra Ülke Skor Sıra Ülke Skor 1 Güney Kore 74,9 14 Dominik Cum. 41,0 2 Singapur 54,0 15 Bahreyn 40,3 3 Tayvan 51,1 16 Ekvator Ginesi 40,0 4 A.B.D. 49,4 16 LihtenĢtayn 40,0 5 Ġngiltere 44,3 18 Andorra 39,0 6 Kanada 44,1 19 Yeni Zellanda 38,4 7 Portekiz 43,8 20 Ġtalya 38,0 8 Avustralya 43,5 21 Ġspanya 37,7 8 Türkiye 43,5 22 Hong Kong 37,5 10 Almanya 42,9 23 Finlandiya 37,3 11 Ġrlanda 42,4 24 Vatikan 37,0 12 Ġsviçre 42,3 25 Malezya 36,9 13 Brazilya 41,1 Kaynak: Brown Üniversitesi Global eGovernment araĢtırması (2007 yılı) DönüĢüm aĢaması ile mevcut süreçlerin oldukları halleriyle teknoloji yardımıyla daha iyi iĢletilmesi kastedilmemektedir. Bundan çok farklı olarak, bu süreçlerin yeniden ele alınması, sadeleĢtirilebilecek olanların sadeleĢtirilmesi, gereksiz olanların iptal edilmesi, birleĢtirilebilecek olanların birleĢtirilmesi, kısacası tüm süreçlerin yeniden ele alınarak yeniden yapılandırılması ifade edilmektedir. Bir sonraki alt bölümde dönüĢüm aĢamasına hizmet etmek üzere mevcut bir sürecin nasıl yeniden yapılandırılabileceği verilecektir. 2.1.4.1 Mevcut süreçlerin yeniden yapılandırılması Süreçler yeniden yapılandırılarak (reengineering) dönüĢüm aĢamasında eHizmetlerin daha etkin ve verimli bir biçimde verilmesi sağlanır. Yeniden yapılandırılmıĢ süreçler (reengineered processes) dördüncü aĢamada 15 eDönüĢümün katalizörleridirler. ġimdi mevcut bir sürecin yeniden yapılandırılıĢını inceleyelim [3]: Mevcut Süreç: Kamu kurumlarının çoğundaki mevcut uçtan uca süreçler, elle yapılan ve zaman alıcı adımlara dayanmaktadır. Tipik bir akıĢta, vatandaĢ kamu kurumunun web sitesine girer, bir uygulama formu indirir, indirdiği formu yazdırır, bu formu doldurur ve sonra kamu kurumuna postalar. Diğer bir akıĢ da Ģöyle olabilir: vatandaĢ kamu kurumunun bölge müdürlüğüne gider, formu doldurup bir kurum çalıĢanına teslim eder. Burada, ilk akıĢa odaklanalım. Sonuçta tanıtılacak çözüm mimarisi, “Ģahsen bölge müdürlüğüne gitmeyi” önleyecek bir çözümü de sağlayacaktır. ġekil 2.7 Formların elle iĢlenmesine dayalı mevcut süreç VatandaĢın doldurduğu form kamu kurumu tarafından alındığında, gözden geçirme/onaylama yetkisi olan bir kurum çalıĢanına (bundan sonra “onay makamı” olarak anılacak) elle gönderilir. Onay makamı formun eksiksiz doldurulup doldurulmadığına bakar; vatandaĢın isteğine kabul/ret kararı vermeden önce adres ve adli sicil doğrulama için gerek gördüğünde formu dıĢ hizmet birimlerine gönderebilir. Süreçte kullanılan formlardaki veri ve kabul/ret kararının sonuçları nedenleriyle birlikte elle arka uçtaki iĢ kolu dalı 16 bilgisayar sistemlerine girilir. Genellikle, kâğıt formlar, kayıt koruma ve ihtiyaç duyulduğunda tekrar kullanmaya yönelik olarak dosya dolaplarında saklanır. BaĢvuru sonucuna yönelik tebliğler vatandaĢlara/kullanıcılara genellikle bir mektupla bildirilir. VatandaĢın/kullanıcının ilgili isteği onaylanmıĢsa, vatandaĢın/ kullanıcının istediği kâğıt belgeler de mektupla gönderilir. Yeniden YapılandırılmıĢ Süreç: Otomasyonun ana amacı, teknolojinin akıllı uygulamalarıyla süreçleri en iyi hale getirmektir. Klasik form iĢleme süreçleri, kâğıt kullanımına ve hata oluĢmasına meyilli elle yapılan iĢlere dayandığından vatandaĢ ve kamu kurumu arasındaki hizmetin sunuluĢ süresi (istek + cevap) uzundur. Kamu sektöründeki kurumlar dikkate alındığında, uçtan uca formların iĢlenmesinde süreçlerin en iyi hale getirilmesi için birçok fırsat vardır. VatandaĢın form gönderim sürecinde kâğıt kullanımı tamamen elenebilir ve kâğıtların yerini eFormlar alabilir. VatandaĢlar, bir kamu kurumunun web sitesinden güvenli biçimde formları elektronik olarak doldurup gönderebilirler. Formu alan kamu kurumunun tarafında, eFormların otomatikleĢtirilmiĢ süreç iĢ akıĢları elle yapılan adımların hamaliyesini yok eder. AĢağıda verilen eForm iĢleme örneği, bir çözüm çatısı olup diğer benzer form iĢleme süreçlerinde uçtan uca form iĢleyiĢ etkinliklerine uyarlanabilir. 17 ġekil 2.8 Yeniden yapılandırılmıĢ süreçte formların otomatik iĢlenmesi Formların otomatik iĢlenmesine dayalı yeniden yapılandırılmıĢ süreç için kamu kurumu tarafındaki ortaya çıkan fırsatlar Ģunlardır: 1. Süreç adımlarını otomatik onaylama (form gönderiminin eFormlar yardımıyla otomatikleĢtirilmesi vb.) 2. Üçüncü Ģahısların yazdığı doğrulama hizmetleriyle web servis tabanlı bütünleĢme 3. VatandaĢ senaryolarının odaklı kullanıcı iyileĢtirilmesi tecrübelerinden (formlara yararlanarak yönelik iĢ onaylama akıĢlarının otomatikleĢtirilmesi) 4. Kayıtların elektronik yönetimi 5. Gereksiz veri giriĢleri gerektirmeden kamu kurumundaki iĢ kolu uygulamalarıyla veri bütünleĢmesi 6. VatandaĢın baĢlattığı sürecin eDurumunun bildirimi (state of application). 18 Sistemi kullananların (dıĢtaki kullanıcılar ve kamu kurumunun kendi çalıĢanları) memnuniyeti ve formların daha iyi iĢleniĢine paralel olarak yüksek yatırım dönüĢü bu fırsatlardan yararlanıldığında elde edilebilir. Kamu kurumlarının eFormların iĢleniĢlerinde dikkat edilmesi gereken noktalar olarak ise aĢağıdakiler sıralanabilir: Güvenli form gönderimi VatandaĢların kiĢisel gizliliği Belge onaylama ilkeleri Üçüncü Ģahısların hizmetleriyle bütünleĢmeye bağlı standartlar Belge koruma ilkeleri Olası aksiliklere karĢı sağlamlık (disaster recovery) Düzenleyici ve uyumlaĢtırıcı gereksinimlerin değiĢimine esneklik 2.1.4.2 Formların otomatik iĢlenmesine yönelik MS baĢvuru mimarisi Formların otomatik iĢlenmesine yönelik çerçevede, sektör lideri Microsoft‟un Ofis ĠĢ Uygulaması BaĢvuru Mimarisi‟nin eForm iĢlemede sunduğu çözüm çatısı ise aĢağıdaki Ģekilde verilmiĢtir (ġekil 2.9). 19 ġekil 2.9 Microsoft Ofis ĠĢ Uygulaması BaĢvuru Mimarisi Form iĢlemeyi otomatikleĢtirmek ve form iĢleme sürecini iyileĢtirip en üst düzeye çıkarmak için kullanılan teknoloji çözüm çatısının dört katmanı veri, uygulama hizmetleri, verimlilik ve sunumdur. Veri katmanı, çözümün etkileĢeceği veri depolarını içerir. Belgeleri depolamakta kullanılan içerik veritabanları, iĢ kolu veri depoları, kimlik depoları ve kullanıcı dizinleri ve form iĢlemede bir rolü olan üçüncü Ģahısların hizmetleri veri katmanını oluĢturur. Uygulama hizmetleri katmanı, formları iĢleme hizmetleri ve bu hizmetlerin iĢ akıĢları, arka uç iĢ kolu sistemleriyle ve üçüncü Ģahısların hizmet sağlayıcılarıyla bütünleĢecek bütünleĢme hizmetlerinden oluĢur. Verimlilik katmanı; belge oluĢturma ve arĢivlemenin yanı sıra içerik yönetim süreçleri ile güvenli iĢbirliği ve iletiĢim için vatandaĢ odaklı arabirimlerin sunulduğu hizmetlerden oluĢur. Sunum katmanı, dıĢ kullanıcılar/vatandaĢlar ve içteki kurum çalıĢanları tarafından kullanılan kullanıcı arabirimi öğelerinden oluĢur. 20 eFormlarla ilgili dikkat edilmesi gereken birçok nokta vardır. DıĢ kullanıcılara sunulan kullanıcı arabirimi, farklı platform ve tarayıcılarda çalıĢabilmelidir. eFormların görsellenme yetenekleri yeterince esnek olmalıdır. eFormların çatısı, istemci tarafındaki girdileri doğrulayabilmeli ve hataları anlayıp formu gönderenleri uyarabilmelidir. Bu noktada “form düzeyi doğrulama” kullanılabilir. Bu düzeyde, kullanıcı daha formu doldurduğu aĢamada yani henüz gönder tuĢuna tıklamadan form elemanlarındaki doğrulama kuralları yürütülür (programcı tarafında .NET platformundaki “RequiredFieldValidator” nesnesine benzer olan diğer platformlardaki nesneler bu amaca yönelik olarak kullanılabilir). Kurum çalıĢanlarının kullanacakları kullanıcı arabirimleri, verimlilik istemcileriyle sorunsuz bütünleĢebilmelidir. Sunum katmanında yer alan kullanıcı arabirimleri ve verimlilik istemcileri arasındaki farkı gösteren somut bir örnek tezin beĢinci bölümünde sunulan uygulamada verilecektir. 21 3. BĠRLĠKTE ÇALIġABĠLĠRLĠĞĠN FĠKĠRSEL ALTYAPISI Devlet hizmetlerinin evriminin anlatıldığı ikinci bölümde, Gartner‟ın olgunluk modelinden bahsedilmiĢti. Bu modelin dördüncü aĢaması olan dönüĢüm aĢamasının devletlerin eDevlet felsefesinin getirdiği avantajlardan gerçek anlamda yararlanacakları aĢama olacağı verilmiĢti. DönüĢüm aĢamasının anahtar kavramı olan birlikte çalıĢabilirliği sağlayan teknolojik altyapıya geçiĢ yapacağımız bu bölümde, önce birlikte çalıĢabilirliğin kısa bir geçmiĢi verilecek, daha sonra ise birlikte çalıĢabilirlik için öncül adımlardan biri örnek olarak verilecektir. Bölüm sonunda Microsoft‟un birlikte çalıĢabilirliğe çözüm için geliĢtirdiği Bağlantılı Devlet Çatısı iĢlenecektir. 3.1 Birlikte ÇalıĢabilirliğin Kısa Bir Tarihçesi Günümüzde iĢ ihtiyaçlarını karĢılamaya yönelik teknoloji, çeĢitli yatay platformlarda geniĢlemeye devam etmektedir. ĠĢ ihtiyaçlarını karĢılamaya yönelik teknoloji farklılaĢtıkça, farklı teknolojileri benimseyen kamu kurumları arasındaki iletiĢim ve veri değiĢimi de gittikçe zorlaĢmıĢtır. Teknoloji çözümlerinin farklılaĢan yatay platformları aĢağıda gösterilmektedir (ġekil 3.1) [5]. ĠĢ ihtiyaçları için farklı teknolojileri kullanan kurumların etkileĢimi de kullanılan teknolojiler arası iletiĢimin zorluğu arttığından zayıflamaya baĢlamıĢtır. Bunu önlemek için birlikte çalıĢabilirliği sağlayacak bir takım standartların geliĢtirilmesi zorunlu olmuĢtur. Birlikte çalıĢabilirliğin kısa bir tarihçesinin verileceği bu bölümde birlikte çalıĢabilirliği sağlayıcı bu standartlardan da bahsedilecektir. 22 Ġstemci Uygulamaları Sunucu Uygulamaları Open Office, Star Office, Microsoft Office, Adobe Photoshop, Symantec, Norton, Firefox, Opera,.. Jboss, BEA, Zope, WebSphere, JD Edwards, Oracle, SAP, Apache, Microsoft Biz Talk, .NET,.. Veritabanları IBM, MS, Oracle ĠĢletim Sistemleri & Aracı Yazılımlar Apple, HP, IBM, MS, Sun Sistem Sağlayıcılar HP, Sun, Fujitsu, IBM, Dell Ağ Sağlayıcılar Cisco, Extreme, Nortel, 3COM, Juniper ĠĢlemciler X86-32, X86-64, Sparc, PPC, IA64 Depolama EMC, Dell, Network Appliance, HP ġekil 3.1 Teknoloji çözümlerinin farklılaĢan yatay platformları Birlikte çalıĢabilirliğin tarihçesine bakıldığında [5]; IBM, kiĢisel bilgisayarı ürettiğinde bir takım teknik belirtimler (spesifikasyonlar) de yayınlamıĢtır. IBM‟in yayınladığı bu teknik belirtimler “açık standartlar” değildi. Ancak, bu belirtimler üçüncü Ģahısların yeni çevre birimleri geliĢtirip geliĢtirmelerine bu platform etrafında olanak vermiĢtir. Ġhtiyaç rekabetçi duyulan en bir ekosistem önemli birlikte çalıĢabilirlik istemi, büyük veri hacimlerini iĢlemek ya da birçok uçbirime birden hizmet vermek üzere tasarlanmıĢ ana çatı bir bilgisayara 3270 uç birim donanımın bağlanması olmuĢtur. Daha sonra, Microsoft, kendi iĢletim sistemi için, sistemin fonksiyon ve verilerini kullanmasına izin veren uygulama programı arayüzleri yayınlamıĢ, böylelikle program geliĢtiricileri program geliĢtirebilmiĢtir. Microsoft‟a özel olup açık olmayan bu arayüzler, güçlü ve rekabetçi uygulamalar pazarının doğmasına neden olmuĢtur. 23 Daha sonra, müĢteriler bu cihazlar arasında kaynaklarını paylaĢabilmek istemiĢlerdir. Birden fazla firma bu isteği karĢılayabilecek protokol geliĢtirip tekelleĢmeye çalıĢmıĢlardır: IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange): Novell Netware iĢletim sistemleri kullanan ağlar için geliĢtirilmiĢtir. NetBIOS (Network Basic Input/Output System): NetBIOS, Sytek firması Tarafından IBM‟in kiĢisel bilgisayarlardan oluĢan ağı için 1983‟te geliĢtirilmiĢtir. Vines (Virtual Integrated NEtwork Service): Banyan firması, VINES sistemini Unix üzerine geliĢtirilmiĢtir. Pazar geliĢip belirgin bir büyüklüğe ulaĢtığında, müĢteriler birlikte çalıĢabilmek istemiĢlerdir. Birlikte çalıĢabilirlik çözümüne, açık bir standart olan TCP/IP‟nin geliĢtirilmesiyle ulaĢılmıĢtır. Bugün, tüm üreticiler TCP/IP‟yi varsayılan protokol olarak otomatik olarak desteklemektedirler. TCP/IP‟nin geliĢtirilip kullanılmaya baĢlanması, cihazlar arasında daha büyük ölçekli bağlantılılığı sağlamıĢ, bu ise ağ üzerinde kaynak paylaĢımı ve sunumu için daha geliĢmiĢ protokollerin olmasını gerektirmiĢtir. Bu gereksinim, sonuçta HTTP, HTML ve iliĢkili teknolojilerin keĢfedilip geliĢtirilmesiyle sonuçlanmıĢtır. Bu standartlar dünyanın her yerinde aynı anda kullanılabildiğinden, taban iletiĢim altyapılarının karmaĢıklığını önemli ölçüde gidermiĢtir. TCP/IP ve HTTP‟nin evrimiyle birlikte, iletiĢim altyapıları boyunca elektronik iĢlemlerin (transaction) ve iĢ süreçlerinin yapılabilmesi için müĢteriler makinaları birbirlerine bağlamanın faydalı olacağını anlamıĢlardır. Bu talep, biliĢim sektörünün XML‟i ve web servisleriyle iliĢkili standartları geliĢtirmesiyle 24 sonuçlanmıĢtır. Bu standartlar sektördeki IBM, Sun ve Microsoft gibi birçok oyuncu tarafından iĢbirliği içinde geliĢtirilmiĢtir. Birlikte çalıĢabilirlikle ilgili yukarıda verilen kısa tarihçeden, birlikte çalıĢabilirliğin geliĢtirilmesi noktasında müĢteri talebinin anahtar etken olduğu ve bu süreçte birçok aĢamanın olduğu sonucu çıkarılabilir. GeçmiĢte yaĢanılan bu tarihi akıĢ içinde belirli bir döngünün gelecekte de yaĢanacağı kolaylıkla söylenebilir: 1. Ġlk önce, herhangi bir yeni teknolojinin emekleme aĢamalarında müĢteri talebini karĢılamak üzere birçok rekabetçi ve tekelci çözümler geliĢtirilecektir. 2. Sonra, talep gerçekten kritik sayılabilecek bir düzeye ulaĢtığında bir konsensüs geliĢecek ve ortak ihtiyaçları karĢılamak üzere açık standartlar ortaya çıkacaktır. 3. Sorun yığınları arttıkça müĢteri ihtiyaçlarını karĢılamak için biliĢim sektöründe daha çok iĢbirliğine ihtiyaç duyulacaktır. 4. Sonuçta, teknolojinin bugünkü durumu itibarıyla, kendi geliĢim stratejisi içerisinde birlikte çalıĢabilirliği odak nokta olarak ele almayan herhangi bir sağlayıcı, müĢteri talebini karĢılayamayacaktır. 3.2 Birlikte ÇalıĢabilirlik Öncesi Öncül Adımlar Yüksek düzey teknolojilerin kullanılmasını zorunlu kılan birlikte çalıĢabilirliğin bir sistem olarak yerleĢtirilmesinden önce, dikkat edilmesi gereken bazı noktalar vardır. Bu alt bölümde bu noktalardan biri örnek olarak iĢlenecektir: Kamu kurumlarındaki veritabanları kurumsal ölçekli projelerde verimli kullanılabilmeli ve buna bağlı olarak iĢ zekası ve entegrasyon gibi konulara hizmet edebilmelidir. Veri, çok farklı teknolojilerle bilgiye dönüĢtürülebilir. Verinin bilgiye dönüĢtürülmesinden önce ele alınabilecek konulardan biri, hareketsel (iĢlemsel) sistemlerde yer alan verilerin tutarlılığı, temizliği ve 25 amaca hizmet etmesidir. Birlikte çalıĢabilirliği iĢlevlendiren yüksek düzey biliĢim teknolojileri, bu özellikteki verilerden sağlıklı bilgi elde edebilir. Birçok kurumda ve birçok uygulamada, iĢlemleri yönetecek operasyonel veritabanlarında verinin tutarlılığı ve temizliği, ilgili veritabanlarından önce bu verinin toplandığı uygulama ayağında baĢlamaktadır. Ġlgili verilerin toplandığı uygulamada, kullanıcıya belirli bir desen ve standardı olmayan veri girme imkânı sağlayan birçok zorunlu veya seçimli alan vardır. Bu değiĢik ölçekteki kamu kurumlarının operasyonel uygulamalarında var olan bir durumdur. Böyle uygulamalarla toplanan verinin bilgiye dönüĢtürülmesi sürecinde veri madenciliği, veri modellemeye dayanan OLAP, raporlama gibi iĢ zekâsına yönelik teknolojileri uygularken uygulamada toplanan verinin standardının olmamasından dolayı bu veriden madencilik yaparak sonuç üretmek oldukça güçtür. Belirli standartlar ortaya konularak, uygulamadan üretilen ve kurumsal tabanda biriktirilen verilerin eDevlet ortamında kurumlar arasında kullanılabilirliği garanti altına alınmalıdır. Örneğin, trafik kazalarının bilgilerinin (kazanın yeri, tarihi, kazaya karıĢan araçlar vb.) toplandığı bir iĢlemsel uygulamada, tutanağı hazırlayan kiĢiler kazaların yerini serbest alan (free format) girebiliyorlarsa, veritabanına daha gelmeden önce uygulama ayağında, aynı yer bilgisi için farklı yazımlar olabilecektir (Pendik KavĢağı, Pendik KvĢ., Pendik E-5 2. Km vb.). Bu, aynı bilginin çok zor biçimde standardize edilebilecek Ģekilde veritabanına alınmasına neden olur. Dolayısıyla uygulama katmanında veri standartlaĢtırma çalıĢmaları yapılmalıdır. Bu standartlaĢtırma çalıĢmalarında her kurum kendi verisinin temizliğinden sorumludur. 3.3 Microsoft’un Bağlantılı Devlet Çatısı Çözümü Bir üst bölümde verilen veri desenlerinin standartlaĢtırılması gibi birçok önemli unsur, eDevlete geçiĢte dönüĢüm aĢamasından çok çok daha önce ele alınması gerekli unsurlardır. Bu bölümde artık bu tür sorunların aĢıldığı varsayımı altında birlikte çalıĢabilirliğin sağlanmasına odaklanılacaktır. 26 Sunulan hizmetleri birbirleriyle bağlantılı hale getirip birlikte çalıĢabilir bir çatı kurmaya yönelik olarak dünyadaki çalıĢmalar, ulusal çaptaki uygulamalar ile yerel ve bölgesel uygulamalar olmak üzere ikiye ayrılabilir: Ulusal çaptaki uygulama örnekleri: Ġngiltere (Gateway), Kolombiya (Connectividad), Hindistan(India One), Tayland (Gateway). Yerel ve bölgesel uygulama örnekleri: Ġtalya (Easi II), Avusturya ve Ġsviçre (E-GORA), Almanya (eGSK), Ġspanya (Digital Cities), Hindistan (Softframe), Endonezya (DIY), Latin Amerika (eGov.net), Ġsveç (Ġsveç Yerel Devlet Perspektif Tasarımı), Letonya (Starter Kit), A.B.D. (CGF – City of Camden, NJ). Yukarıda verilen ulusal çaptaki uygulamalar ile yerel ve bölgesel uygulamalarda birlikte çalıĢabilirlik noktasında çözüm üretmek için birçok firma kendine özgü strateji geliĢtirmiĢtir. Bu tezde Microsoft‟un sunduğu Bağlantılı Devlet Çatısı‟nın (BDÇ, Connected Government Framework) incelenmesinin seçilmesi bu firmanın sektörde lider olması ve yönelim belirleyici olmasından kaynaklanmaktadır (Burada buna yönelik olarak iki veri vermek gerekirse: IDC 2004 yerel katma değer raporuna göre; MS 1 $‟lık ciro karĢılığında 7,5 $‟lık bir iĢ hacmi yaratmaktadır; Türkiye biliĢim sektörünün 150000 çalıĢanının 99000‟i Microsoft ekosisteminde çalıĢmaktadır). Microsoft, teknolojik geliĢme vizyonunu, birlikte çalıĢabilirlik noktasına odaklamıĢ olup bu doğrultuda adımlar atmaktadır. Microsoft‟un birlikte çalıĢabilirliğe bir çözüm olarak geliĢtirdiği bağlantılı devlet çatısının tanımına gelindiğinde: 27 Microsoft Bağlantılı Devlet Çatısı (BDÇ) ≡ Kamu kurumlarında, eğitim ve sağlık sektöründe bağlantılı sistemlerin gerçekleĢtirilmesini destekleyen, birlikte çalıĢabilirliğin sağlanmasında ortaya çıkan sorunları gideren ve böylelikle birlikte çalıĢabilirliğe olanak veren, açık ve geniĢleyebilir planlar, yeniden kullanılabilir fikri mülkiyet, yol haritaları ve referanslar sağlayan bir çatıdır. Microsoft, BDÇ‟nı zaman içinde geliĢtirmektedir. BDÇ, birlikte çalıĢabilirliği baĢarmada bazı referanslara sahiptir (Ġngiltere, Ġtalya, Avusturya, Ġsviçre, Almanya, A.B.D., Ġspanya, Ġsveç, Romanya, Çek Cumhuriyeti, Tayvan, Mısır, Slovakya). BDÇ‟nın özünde, açıkça altı farklı düzeye odaklanmıĢ devletin birlikte çalıĢabilirliği planı vardır. Bunlar: 1. Altyapı ve Ağ OluĢturma 2. Veri EriĢimi 3. Hizmet ve BileĢenler 4. Hizmet ve Süreç BütünleĢmesi 5. Güvenlik ve Kimlik 6. Yönetim BDÇ, devlet içerisinde teknoloji kullanımını iyileĢtirerek en üst düzeye çıkarmayı amaçlamaktadır. Varlık amacı vatandaĢa ve kurumlara hizmet olan devlet, BDÇ ile yapısını hizmet odaklı ve hizmetten geriye doğru yapılandırdığından bu amacına ulaĢabilmektedir. eDevlete geçiĢ aĢamasında, devletin sahip olduğu teknolojilerden daha iyi yararlanabilmesini sağlamak ve kullandığı teknolojiyi iyileĢtirmek oldukça önem kazanmıĢtır. Bu amaçla, devlet hizmetlerinin daha etkin sunumu için iĢ süreçleri oluĢturulmuĢtur. ĠĢte tüm bu iĢ süreçlerinin entegrasyonuna dayalı bir çözüm çatısı olan BDÇ ile teknoloji kullanılarak devletin dönüĢtürülmesi, devleti 28 oluĢturan parçalarda sonuçların iyileĢtirilmesi ile mümkün olmaktadır. Bu çatının ayrıntılı bir çizimi aĢağıda verilmektedir (ġekil 3.2) [4]. 29 ġekil 3.2 Microsoft Bağlantılı Devlet Çatısı 30 Bu çatının katmanlarını inceleyecek olursak: 1. Ġlke Katmanı: Bu katman, ilkeler ve stratejiler katmanıdır. Bu katmanda devletlerin eDevlete geçiĢlerinden önce aĢmaları gereken bazı adımlar yer almaktadır. Dijital imzalar ve iĢ süreçlerinin yeniden yapılandırılması için gerekli yasal çerçeve gibi bazı öğeler bu katmanda yer almaktadır. Devletlerin politikalarının teknolojinin uygulanmasına etkileri bu katmanda farklılık gösterebilmektedir. Microsoft, bu farklılıklara karĢı gereken duyarlılığı gösterip yapıyı yeniden Ģekillendirebilme çalıĢmaları yapmaktadır. 2. Altyapı Katmanı: Örgütsel verimliliğe katkı sağlayan ve farklı devlet organları arasında bilginin etkin paylaĢımına olanak veren SharePoint teknolojisi ile Active Directory ve tüm güvenlik yönetimi ürünleri bu katmandadır. 3. ĠĢlemsel Uygulamalar Katmanı: Gerekli olan temel hizmetlerin sunulduğu katmandır. Burada gayet kapsamlı ve bağlantılı olan eDevlet hizmetlerine odaklanılmaktadır. Bu katmandaki “MüĢteri Çağrı Merkezi” ile ilgili bir durum olarak: bir çağrı merkezinden gelen ve birden fazla kamu kurumuyla iliĢkili bir kamu hizmet isteği bilgisi ilgili kamu birimlerine yönlendirilebilir (bunun için çağrı merkezinde kamu kurumlarından bir kiĢinin olması gerekmektedir). Bu yönlendirme, ilgili süreci basitleĢtirir. Bunun gibi, birden fazla kamu kurumunu ilgilendiren süreçlerde birçok sadeleĢtirmeye gidilebilir. Sürücü ehliyetleri, ePasaport, çağrı merkezi gibi hizmetler bu katmanda bulunmaktadır. Microsoft teknolojileri BDÇ‟nı gerçekleĢtirebilecek yapıdadır. Özel bir takım gereksinimleri olan sağlık ve eğitim gibi alanlarda Microsoft fikri mülkiyetler ve rehberlik hizmetleri geliĢtirmiĢtir. Bu spesifik alanlar için geliĢtirilen çözüm önerileri benzer isimlendirme terminolojisini taĢımaktadır (Connected Health Framework, Connected Education Framework). Alt bölümlerde çok kısa bir biçimde değinilecek olan Microsoft‟un teknoloji olgunluk modeli, iĢ verimliliği altyapı optimizasyonu ve uygulama platformu altyapı optimizasyonu BDÇ‟nın gerçekleĢtirilmesine yardımcı modellerdir. 31 3.3.1 Microsoft Teknoloji Olgunluk Modeli (altyapı optimizasyonu) Bağlantılı devlet çatısının gerçekleĢtirilebilmesinde; devletler, hizmet veriĢ biçimlerini iyileĢtirmek için birtakım değiĢikliklere gitmek zorundadırlar. Sektördeki en iyi uygulamalar dikkate alınarak geliĢtirilen “Teknoloji Olgunluk Modeli”yle Ģirketlerin (daha genelde kurumların) teknolojiyi ne denli etkili kullanabildikleri ölçülmektedir. Bu model sayesinde; Ģirketler sahip oldukları teknolojiyi daha iyi kullanarak sahip oldukları teknolojiden daha çok yararlanabilirler, teknolojik olarak bulundukları noktayı ve gelmek istedikleri nokta için ihtiyaç duydukları teknolojileri de anlayabilirler. ġekil 3.3 Microsoft teknoloji olgunluk modeli Yukarıdaki çizimde soldan sağa gidildikçe “teknolojik yetkinliklerin” ve “varolan teknolojinin kullanımının” olgunluğu gittikçe artmaktadır. 32 3.3.2 ĠĢ verimliliği altyapı optimizasyonu ĠĢ verimliliği altyapı optimizasyonunda üç noktada ele alınmaktadır: BirleĢik iletiĢim ve iĢbirliği: eDevletin etkin biçimde iĢleyebilmesi için vatandaĢlarla devletin farklı eriĢim kanallarından iletiĢim kurabilmeleri gerekmektedir. Dolayısıyla, ortak çalıĢma alanları ve portallar, mesajlaĢma, anında mesajlaĢma/ses iletiĢimi, web konferansı gibi teknikler olabildiğince mümkün olmalıdır. Kurumsal içerik yönetimi: Kurumsal içerik yönetiminde, bilgi paylaĢımına ve etkin biçimde yönetimine odaklanılır. Belgelerin ve kayıtların yönetimi, web içerik yönetimi, formların yönetimi ve arama bu bağlamda ele alınır. VatandaĢla devlet arasında etkin bilgi paylaĢımı döneminin baĢladığı portallarla birlikte bilgilerin tekrar etmemesi ve gerekli bilginin hangi kamu kurumunda tutulacağı belli olmalıdır. Bunun için kamu kurumları arasında etkin bilgi paylaĢımı olmalıdır. ĠĢ zekâsı: Son zamanlarda oldukça vurgulanılan iĢ zekâsı noktasında, performans yönetimi, raporlama ve analizin yanı sıra veri depolama incelenir. ġekil 3.4 ĠĢ verimliliği altyapı optimizasyonu 33 3.3.3 Uygulama platformu altyapı optimizasyonu Uygulama platformu altyapı optimizasyonunda, son kullanıcıların deneyimlerinden faydalanılarak sunulan hizmetlerin kalitesi arttırılmaya çalıĢılmaktadır. 4. Bölüm‟de iĢlenecek olan hizmet odaklı mimari ile vatandaĢ odaklı hizmet sunumlarının sağlanması kolaylaĢmaktadır. ġekil 3.5 Uygulama platformu altyapı optimizasyonu 3.3.4 Bağlantılı devlet çatısı mimari tasarım düĢünceleri Mimari tasarım ile ilgili açıklamalardan önce “mimari” ile neyin kastedildiğinin verilmesi doğru olacaktır. “Mimari”, bilgi teknolojileri tabanlı çözümlerin sunumu için temel oluĢturan standartlar ve teknolojiler kümesidir. Ġyi bir mimarinin özellikleri olarak; göze alınabilir maliyetinin olması, güvenilirlik, BTtabanlı çözümlerin güvenli sunumu, sürekli değiĢen ihtiyaçlara hızlı ve etkin bir biçimde uyarlanabilme esnekliği sayılabilir. 34 Microsoft‟un sunduğu birlikte çalıĢabilirlik çözümü olan BDÇ‟nda, kamu kurumlarının hâlihazırda kullandıkları sistemler, birlikte çalıĢabilirlik sayesinde mirasçı sistemler olarak kullanılmaya devam edilebilirler. Teknolojik platformların çok sağlayıcılı ortamı ve sunulan yazılımların devam eden yeni sürümlerinin ortaya çıkması da BDÇ çözümünde ele alınmıĢtır. Hizmet odaklı mimariyi oluĢturan temel protokoller (web servisleri, XML, SOAP, WSDL, BPEL) ve iliĢkili teknolojiler, iĢ ve teknoloji odaklı hizmetler, uygulamaların ölçeklenebilmesi (hareket (transaction) hacimlerinin geniĢlemesine duyarlılık, iĢlevsellik), güvenlik ile tasarım, program yazılım geliĢtirme ve dağıtım, kimlik bütünleĢtirimi gibi etkenler de BDÇ‟nın kurgulanmasında hesaba katılan diğer etmenler olmuĢlardır. BDÇ‟nın mantıksal mimarisi aĢağıda verilmektedir (ġekil 3.6). 35 Hizmetin EriĢim Kanalları Uygulama Hizmetleri Portal Hizmetleri içerik yönetimi hizmetleri içerik yayınlama hizmetleri Sunum Hizmetleri eForm hizmetleri Kimlik Yönetimi * Kullanım Ģartları * Hizmete kaydolma Doğrulama ve Yetkilendirme * Doğrulama Metadata Hizmetleri Katma Değerli Hizmetler MesajlaĢma Hizmetleri Arama ve Dizinleme Hizmetleri * Belge Gönderimi Hizmetleri * ĠĢ süreci uyumlandırması * Hizmet dizini Kurum barındırımı (hosting) Ödeme Hizmetleri ĠĢ zekası * Analiz * Tahmin * Temel Performans Göstergeleri Kurumsal veri deposu Duyuru Hizmetleri * ePosta * SMS Altyapı Hizmetleri Kurumsal Mimari Altyapısı Güvenli Devlet Ağı DıĢ Bakanlıklar EriĢim Kanalları Yönetimi Hizmetleri personel alımı hizmetleri * Yetkilendirme * Güvenlik jetonu hizmeti Yönlendirme ve BütünleĢtirme Hizmetleri Self-Servis EriĢim Kanalları (Ģirketler) KiĢiselleĢtirme Hizmetleri * Hizmet Yönetimi * Hizmet yapılandırması eDevlet Ağ Geçidi Kimlik ve Güvenlik Hizmetleri Self-Servis EriĢim Kanalları (devlet çalıĢanları) Çağrı Merkezi Self-Servis EriĢim Kanalları (vatandaĢlar) DıĢ Bakanlıklar ġekil 3.6 Bağlantılı devlet çatısı mantıksal mimarisi BirleĢtirilmiĢ mesajlaĢma BirleĢtirilmiĢ iletiĢim Yönetim ve iĢlemler Sistem iĢletimi ve yönetimi Yedekleme, geri getirme hizm. Dosya, yazıcı hizm. Yama (patch) yönetimi hizm. 36 Önceki paragraflar boyunca, bağlantılı devlet çatısının mantıksal çerçevesi çizilmeye çalıĢıldı. Bu mantıksal çerçeveyi gerçeklemek üzere, hizmet odaklı mimari (SOA) son yıllarda en çok kendisinden bahsettiren çözüm olarak ortaya çıkmaktadır. SOA tekniğine 4. Bölüm‟de ayrıntılı olarak giriĢ yapılacak ve bu mimariyi gerçekleĢtirecek temel teknolojiler olan SOAP (simple object access protocol) ve web servisleri de yine 4. Bölüm‟de tanıtılacaktır. 3.3.5 Dünyadaki bağlantılı devlet çatısı uygulamaları Bu altbölümde Mısır‟da ve Çek Cumhuriyeti‟nde BDÇ‟nın uygulanmasına yer verilecektir. Bu altbölümde verilecek iki çizim 4. Bölüm‟e bir ön hazırlık niteliğindedir. 3.3.5.1 Mısır Hükümeti’nin uygulaması Mısır‟daki eDevlet çalıĢmaları uygulamaları Ġdareyi GeliĢtirme Devlet Bakanlığı ve ĠletiĢim ve Bilgi Teknolojileri Bakanlığı bünyesinde yürütülen bir çalıĢmadır. Haziran 2007 itibariyle birçok hizmet çevrimiçi verilmeye baĢlamıĢtır. “http://www.egypt.gov.eg/english/default.asp” sitesinden ilgili çalıĢmaların içeriği hakkında daha ayrıntılı bilgi alınabilir. GerçekleĢtirilen bağlantılı çatının ekonomiye katkısı büyüktür: sürücülerle ve motorlu araçlarla ilgili tüm hizmetler tek bir baĢlık altında toplanmıĢtır; vatandaĢlar bir araç kaydı veya sürücü ehliyetli almak için farklı ofislere gitmek gibi durumlardan kurtulmuĢlardır. Elektrik ve telefon faturalarının ödenmesi ve pasaport yenileme gibi iĢlemler kolaylaĢmıĢtır. Mısır hükümeti için aĢağıdaki BDÇ çözümü önerilmiĢtir. 37 MISIR: eDEVLET PORTALI XML ġema mesajlaĢması Yetkilendirme Motoru ĠletiĢim Merkezi Ġzleme Motoru (Tracking Engine) Öncelik Motoru (Priority Engine) Yönlendirme Motoru (Routing Engine) Kaydolma Motoru (Registration Engine) Abone Motoru (Subscription Engine) Güvenli Profiller Mısır Ağ Geçidi Yönlendirme Motoru Bağlama Motoru (Binding Engine) XML ġema mesajlaĢması XML ġema mesajlaĢması Hizmet Bağlayıcı Hizmet Bağlayıcı Hizmet Bağlayıcı 1. HĠZMET 2. HĠZMET 3. HĠZMET ġekil 3.7 Mısır hükümeti bağlantılı devlet çatısı çözümü Bu çatıda, eDevlet portalı: Çevrimiçi devlet hizmetlerine eriĢilmesini sağlar. Yetkilendirme motoru: Yetkilendirme, doğrulama ve kullanıcı üyelik bilgisi sağlar. Yönlendirme motoru: ĠletiĢim izleme ve günlükleme (loglama) sayesinde öncelik tabanlı içerik duyarlı yönlendirme sağlar. Hizmet bağlayıcı (SDK adapter, service connector gibi isimlerle anılmaktadır): Hizmetin arka ucuyla mesaj çevrimini ve bütünleĢmesini sağlar. Hizmet bağlayıcı ile kamu kurumlarının içteki mirasçı uygulamaları ve diğer uygulamaları, açık XML standardı sayesinde ağ geçidine kolaylıkla bağlanmaktadır. Tüm iletiĢim XML üzerinde yürüdüğünden çapraz platformlarda birlikte çalıĢabilirlik de mümkün olmaktadır. 38 3.3.5.2 Çek Cumhuriyeti Sosyal Hizmetler Birliği (CSSA) uygulaması Çek Cumhuriyeti Sosyal Hizmetler Birliği (Czech Social Services Association, CSSA) emeklilik sigortası, hastalık sigortası ve sağlık değerlendirmesi gibi sosyal hizmetlerle uğraĢan bir kurum olup iĢlerinin bir kısmını merkezde bir kısmını da 90 bölgesel ofisinde yürütmektedir. CSSA; ÇalıĢma ve Sosyal ĠliĢkiler Bakanlığı, Sağlık Bakanlığı, ĠçiĢleri Bakanlığı, ġehirler Birliği, Bölgeler Birliği ve bölgesel ve yerel düzeyde kamu idaresiyle iĢbirliği içerisindedir. Birlik, sosyal hizmetlerle ilgili kimselere bilimsel veriler sağlamanın yanı sıra üyelerine değiĢik ülkelerdeki tecrübeleri de aktarmaktadır. Birliğin üyeleri, kurumlar ve gerçek Ģahıslardır. Bölgesel düzeyde 90 ofisiyle temsil edilen CSSA‟nın bu ofisleri birbirlerinden bağımsız olup bölgesel kamu idaresi noktasında iĢ ortakları olarak çalıĢmaktadırlar. Çek Cumhuriyeti‟nin bir nevi Sosyal Güvenlik Ġdaresi olan CSSA‟nın diğer kurumlarla iliĢkisi aĢağıda verilmektedir (ġekil 3.8). BDÇ‟ndan önce CSSA‟nın hizmet verdiği kitle, CSSA‟yla nasıl iletiĢim kuracağına karar verememekteydi. CSSA, bunu önlemek için bilgi sistemlerini geliĢtirerek müĢterilere sunulan hizmetin kalitesini iyileĢtirip süreçlerle yordamların bütünleĢmesini sağlayarak müĢterilerin bilgiye herhangi bir zamanda herhangi bir ofisten eriĢmesini sağlamayı amaçlamıĢ ve bu amacı gerçekleĢtirmek için kendi kurum uygulamalarını bütünleĢtirmiĢtir. CSSA BDÇ modeli temelde Mısır‟da kullanılan BDÇ ile aynıdır: merkezi bir ağ geçidi vardır; bu ağ geçidi sayesinde sunulan tüm farklı hizmetler bütünleĢtirilebilir olup böylelikle tüm kamusal hizmetlere tek bir noktadan “one stop shop” konseptiyle eriĢim mümkündür. Kurum uygulamalarının bütünleĢtirilmesinde, veri bütünleĢmesi web servislerle; uygulama bütünleĢmesi Microsoft BizTalk Server 2004 tabanlı iĢ akıĢı sistemleriyle yapılmıĢtır. BDÇ, iĢlerlik kazandıktan sonra, CSSA 39 müĢterileri bilgiye herhangi bir zamanda herhangi bir ofisten eriĢebilmiĢlerdir. XML ve SOAP tabanlı standartlaĢtırılmıĢ iletiĢim kurulup varolan bilgi sistemleri arasında akıllı veri değiĢimi sağlanmıĢtır. BDÇ uygulamasının kazandırdıklarına gelince, Haziran 2005 itibarıyla 1.937.000 emeklilik formu (5811 kg kâğıt tasarrufu) iĢlenmiĢtir. Bu yönü itibarıyla çevresel katkı ve iĢ gücü tasarrufu katkısı da büyük olmuĢtur. Ağustos 2006 itibarıyla, 4.400.000 emeklilik ve sağlık sigortası formu kabul edilmiĢtir (13200 kg kâğıt tasarrufu). Daha sonraları kabul edilen emeklilik ve sağlık sigortası formu sayısı 11.000.000‟a çıkmıĢtır. CSSA, yaklaĢık 5.000.000 $ belge taraması ve teslimi giderinden kurtulmuĢtur (33000 kg kâğıt tasarrufu). Uygulamayla birlikte kazanılan zaman tasarrufu da ayrıca önemlidir [4]. ÇalıĢmalar sırasında Avustralya, Yeni Zelanda ve Sri Lanka‟nın yanı sıra biliĢim alanında önde gelen ülkelerden olan Hindistan‟ın farklı eDevlet mimarileri ile de karĢılaĢılmıĢtır. Bu mimariler tezin EKLER kısmında verilmiĢtir. 40 Devlet Ağ Geçidi Devlet Dairesi Bilişim Bakanlığı Çek Cumhuriyeti Sosyal Güvenlik İdaresi Maliye Bakanlığı Çevre Bakanlığı Çek Cumhuriyeti Gümrükler İdaresi Ulaşım Bakanlığı ġekil 3.8 Çek Cumhuriyeti devlet ağ geçidi Orta Bohemya Belediye Binası Çek Cumhuriyeti İstatistik Bürosu 41 4. BĠRLĠKTE ÇALIġABĠLĠRLĠĞĠN TEKNĠK ALTYAPISI Üçüncü bölümün sonlarında, Mısır ve Çek Cumhuriyeti‟ndeki devlet ağ geçitlerinin çizimleri yapılmıĢtı. Bu bölümde bu çizimlerin fiziksel gerçekleĢtirmelerini sağlamak üzere; önce hizmet odaklı mimari felsefesi ve bu mimariyi gerçekleĢtirmek için kullanılan Simple Object Access Protocol (SOAP) ve web servisleri teknikleri iĢlenecektir. 4.1 Hizmet Odaklı Mimari (Service Oriented Architecture, SOA) Hizmet odaklı mimari, birlikte çalıĢabilirliğin gerçekleĢtirilmesinde her ne kadar bir “felsefe” olsa da bu tezde 3. Bölüm ile teknik altyapının sunulacağı 4. Bölümü birleĢtirici bir tutkal olarak görev yapması uygun olacaktır. Çünkü SOA felsefesinin bu bölümün baĢında verilmesi, SOA‟nın uygulanmasında sıklıkla kullanılan SOAP ve web servisleri gibi temel teknolojilere düĢünsel bir altyapı oluĢturmuĢ olacaktır. Hizmet odaklı mimari, SOAP ve web servisleri bu tezde yararlanılan kaynaklarda ([6], [7], [8]) oldukça basit ve yalın bir biçimde verilmiĢ olup bu bölümde ilgili kaynaklardaki bilgiler daha da sadeleĢtirilerek sunulmaya çalıĢılacaktır. SOA, satılan bir bilgisayar yazılımı veya ürünü olmayıp birlikte çalıĢabilirliğin gerçekleĢtirilmesinde çözümün nasıl olacağını söyleyen bir sistem tasarım felsefesidir. SOA, web servis tabanlı standartlar ve protokollerle daha kolay gerçekleĢtirilip daha kalıcı olabilir. SOA, BT kaynaklarının nasıl bütünleĢtirileceğini ve hangi servislerin kullanıma sunulacağını gösteren mimari çizimler ve taslaklardan oluĢur. Web servisleri ise bir SOA çözümünü gerçekleĢtirmek için belirli standartları ve dil protokollerini kullanır. Bu yüzden web servisleri SOA‟nın uygulanma yöntemlerinden sadece birisidir. 42 Kamu tarafında çok değiĢik teknolojilerle bir arada çalıĢılırken karĢılaĢılan asıl sorun, iĢ süreçleri birden fazla uygulamadan aynı anda faydalanmayı gerektirdiği halde müĢteri iliĢkileri yönetimi ve kurumsal kaynak yönetimi gibi önemli iĢ sistemlerinin diğer iĢ sistemlerinden ayrı olarak tek baĢlarına, diğerleriyle bağlantısız çalıĢmasıdır. Bu sorunu aĢmak için kullanılan hizmet oryantasyonunda (service orientation), dağıtık bilgi teknolojileri kaynakları bütünleĢik bir çözüm olarak düzenlenir. Bu yolla, BT kaynakları birimselleĢtirilirek bilgileri iĢ sistemlerinde bütünleĢtiren gevĢek bağlı iĢ süreçleri oluĢturulur. SOA‟da bilgi teknolojileri altyapısının kısıtlarından olabildiğince bağımsız iĢ süreçleri çözümleri üretilir. SOA‟nın yararlandığı uygulamalarla, elle yapılan iĢler otomatikleĢtirilir, müĢteri ve paydaĢlarla iliĢkiler dolayısıyla da iĢ süreçleri uyumlandırılır. Hizmet oryantasyonunda farklı sistemler bütünleĢtirilir; her BT kaynağına (uygulama, sistem, ticari bir paydaĢ vb.) arabirimlerle (genellikle arabirimler web servisleridir) bir hizmet olarak eriĢilir. Hizmet sağlayıcıların iĢletim sistemleri ve iletiĢim protokoleri farklıyken, hizmet sağlayıcılarına eriĢim zordur. Hizmet oryantasyonunda, farklı sistemlerdeki iĢ mantığına ve bilgiye eriĢirken standart protokoller ve arabirimler kullanılarak bu eriĢim sorunları çözülür. Günlük iĢ uygulamalarının baĢarıyla gerçekleĢtirilmesinde ihtiyaç duyulan temel hizmet yetenekleri ve arabirimler süreçlere devĢirilir (yani “parçala böl yut”ta yutulmuĢlar birleĢtirilir). Her yeni süreç standart bir arabirimle sunulduğundan, her bir hizmet sağlayıcının uygulaması, hizmet tüketiliĢini etkilemeden değiĢtirilebilir. Bunun pratikte nasıl yapıldığı, 5. Bölüm‟de adlandırma standardı oluĢturulup farklı web servisleri farklı kitaplıklara derlenerek somut bir biçimde veilecektir. SOA‟nın belirli bir hayat döngüsü vardır: Bir kurumun BT kaynaklarının (veri sistemleri, mirasçı sistemler, iĢ kolu uygulamaları, paket uygulamalar ve ticari paydaĢlara yönelik uygulamalar vb.) her biri, mal stokları ve müĢteri verileri gibi çok özel çıktılar üretmekten sorumlu olan birer hizmet sağlayıcılarıdır. Hizmet oryantasyonu, bu farklı ve bağlantısız bilgi kaynaklarını birbirine 43 bağlayıp, oldukça farklı iĢletim sistemleri, teknolojiler ve iletiĢim protokolleri arasında köprü oluĢturur. Hizmet oryantasyonunun bu iĢleri yapıĢ süreci tekrarlanır bir süreç olup yeni hizmetlerin oluĢturulması (“sun”), bu hizmetlerin daha büyük toplu uygulamalara birleĢtirilmesi (“birleĢtir”), çıktıları tüketim amaçlı olarak iĢ kullanıcılarına sunulması (tüket) döngüsünden oluĢmaktadır. Bu döngünün aĢamalarına bakılırsa: SOA‟nın sunum aĢaması: hizmetlerden hangilerinin taban uygulamalardan ve verilerden oluĢturulacağına odaklanılır. Hizmet oluĢturumu ince veya iri olabilir (sırasıyla: fine-grained ≡ tek bir hizmetin tek bir iĢ süreciyle eĢleĢmesi; coarse-grained ≡ birçok hizmetin iliĢkili fonksiyonlardan oluĢan bir iĢ süreci oluĢturması). Sunum aĢaması, hizmetlerin nasıl uygulanacağıyla da ilgilidir. Taban BT kaynakları, web servisleriyle iletiĢime geçebildikleri ölçüde iĢlevseldir. SOA‟nın birleĢtirme aĢaması: Hizmetler oluĢturulduktan sonra, bu oluĢturulan hizmetler daha karmaĢık hizmetlerin, uygulamaların veya çapraz iĢlevselliği olan (birden fazla oluĢturulmasında bölüm kullanılabilir. baĢkanlığını ilgilendiren) iĢ süreçlerinin Hizmetler birbirlerinden ve taban BT altyapısından bağımsız olarak varolduklarından, en üst düzey esneklikle birleĢtirilip tekrar kullanılabilirler. ĠĢ süreçleri geliĢtikçe, yeni iĢ kuralları ve pratikler oluĢabilir. Bu yeni iĢ kuralları ve pratikler, taban uygulamaların kısıtlarından bağımsız olarak yeni durumlara uyarlanabilirler. SOA‟nın tüketim aĢaması: Yeni bir uygulama veya iĢ süreci oluĢturulduktan sonra, ya diğer BT sistemlerince ya da son kullanıcılar tarafından bu iĢlevselliğe eriĢilebilinmelidir (tüketim). Tüketim sürecinin amacı, iĢ performansında verimliliği ve anlayıĢı artıracak yeni ve dinamik uygulamalar sunmaktır. Kullanıcılar, birleĢtirilmiĢ hizmeti; web portalları, zengin istemciler, ofis iĢ uygulamaları ve mobil cihazlarla tüketebilirler. 44 Belirli bir sistemde hizmetlerin sağlanması farklı birçok ortamdan gelen bilgilerin kullanılmasına dayanmaktadır: veritabanı uygulamaları, mirasçı uygulamalar (bilgi iĢlem sisteminde önceden kalan uygulama programları), iĢ kolu uygulamaları, paket uygulamalar, ticari ortaklara yönelik uygulamalar (iĢletme için, bilgi paylaĢma durumunda olanlar). SOA felsefesiyle web servisler kullanarak bu uygulamaların birlikte çalıĢabilirliği sağlanabilir. Web 2.0 Paket Uygulamalar portal Cihazlar ve Ġnsanlar Veritabanı Uygulamaları Mirasçı İş Kolu Uygulamalar Uygulamaları Paket uygulamalar Ticari Ortaklara Yönelik Uygulamalar ġekil 4.1 Web servisleriyle, farklı ortamlardan gelen verilerin kullanımı Web servislerinin ayrıntılı teknik açıklaması daha sonraki alt bölümlerde iĢlenecek olup, bu noktada sadece SOA ile bağlantısı anlamında web servislerine bir giriĢ yapılacaktır. Web servisleri; iĢ süreçleri, veriler ve örgütsel bilgiler gibi çok farklı düzeyleri birleĢtirirler. Tek bir tüketici uygulamayı düĢünelim (uygulama, internet üzerinden Ģirketle etkileĢebilme özelliği olan bir uygulama olabilir). Bu uygulama Ģirketteki bazı iĢ süreçlerine katılmak istediğinde, bu iĢ süreçlerini mümkün kılmak için; Ģirketin içte iki ayrık sistemi (A: kurumsal kaynak planlaması, B: müĢteri iliĢkileri vb. kombinasyonlar olabilir) kullanan bir süreç 45 çağırması gerektiği varsayıldığında, hizmet odaklı mimari sayesinde, uçtan uca sürecin tümü, tüketici uygulamaya tek bir servis gibi sunulur. Ġri web servisi uygulamaları Ġnce nesne ve veritabanı çağrıları Ġnce iç hizmet iĢlemleri ĠĢ BileĢeni A Sistemi ĠĢ BileĢeni B Sistemi Tüketici Uygulama Güvenlik Duvarı Uçtan uca iĢ süreci ġekil 4.2 Ayrık iĢ kolu uygulamalarının tek bir hizmet gibi sunumu Mimari noktadan iĢleyiĢe yaklaĢırsak, iyi bir mimaride sorumluluklar ayrılmalıdır. Örneğin, sunum katmanı sunum bileĢenlerini yönetir; iĢ mantığı katmanı iĢ mantığı bileĢenlerini yönetir; veri eriĢimi katmanı ise veri eriĢimi bileĢenlerini yönetir. Bu ayrım, sistemde hata toleransı, kolay bakım ve sürdürülebilirliği sağlar. Ġyi bir hizmet odaklı mimari, bir bileĢenin sorumluluklarını akıllıca ayırma (ve sunma) yolu olup klasik nesne yönelimli fikirlere dayanmaktadır. Hizmet odaklı bir mimaride; istemciler ayrık metot çağrılarını doğrudan çağırmak yerine hizmetleri tüketirler. Üç katmanlı bir modelde (ġekil 4.3); nesneler, süreç sınırları içerisinde sıralanır. Bir katmanın sadece bitiĢiğindeki katmanla iletiĢimde olması buradaki temel felsefedir. Mimari düzeyde, iletiĢim bağlantılarının sayısı, nesne yönelimli olmanın bir dezavantajıdır. Ġstemci kodu, karmaĢık nesne modellerindeki sıkıntıları gidermek ve alana (domain) özgü mantığın ayrıntılarını anlamakla 46 sorumludur. Hizmet odaklı bir modelde, ayrıca bir “dolaylılık katmanı” vardır. Bu dolaylılık katmanı, karmaĢık nesne modellerindeki sıkıntıların bazılarını gidermektedir. AĢağıda verilen hizmetler katmanı, kara kutu iĢlevselliği sağlar (ġekil 4.4). Veri / Kalıcılık ĠĢ Nesneleri Sunum Windows Ġstemcisi ġekil 4.3 Tipik bir üç katmanlı uygulama mimarisi Sunum Hizmetler ĠĢ Nesneleri Veri / Kalıcılık Windows Ġstemcisi ġekil 4.4 Hizmet odaklı uygulama mimarisi Hizmetlerin ve nesnelerin tasarlanması noktasına gelindiğinde; Hizmet odaklı bir tasarımda, hizmetler iri (birçok hizmetin bir araya gelerek bir süreç oluĢturması) olmalıdır. Ġri hizmetler, iĢ süreçlerinden sonra modellenirler ve böylelikle iĢ süreçleriyle aynı hizada olmaları sağlanır. Nesneler ince (hizmetlerle iĢ süreçlerinin bire-bir eĢleĢmesi) olmalı ve gerçek iĢ birimleriyle aynı hizada olmalıdır. Ġnce ve ayrık bu nesneler, iĢ mantığını ayrıntılı olarak verirler. Her iĢ nesnesi, kendi davranıĢından ve iĢ kuralı uygulamasından (veritabanı tablosu güncelleme, bir ePosta gönderme, kuyruğa bir ileti koyma vb.) sorumludur. Her iĢ nesnesinin kendi davranıĢından sorumlu olduğu bu özgüllük, ayrık iĢ nesnelerini yaparken iyi bir nitelik olup örgütsel bilgiyi bir sistem Ģeklinde düzenlemenin iyi bir yoludur. 47 Hizmetler, ayrık iĢ nesnelerine yapılan çağrıları uyumlandırırlar, cevapları yönetirler ve uygun biçimde davranırlar. Böylelikle, ayrıntılı iĢ nesnelerini müĢterilere tam bir hizmet sunabilmek amacıyla uyumlandırırlar (orkestrasyon: Bir birleĢik hizmet içinde yer alması gereken tüm web servislerinin uygun bir iĢ akıĢı içerisinde tanımlanması ve yönetilmesidir). Hizmet metotları, tüm bunları yaparken çok çeĢitli iĢ nesnelerini çağırabilir ve yönetebilir. Bu kısımda, son olarak, Microsoft‟un hizmet odaklı bir altyapıyı nasıl planladığının çizimi ve bu altyapıyı gerçekleĢtirmek için hangi ürünlerini kullandığı verilip literatürde karĢılaĢılan “kurumsal hizmet veriyolu” kavramına da çok kısa bir biçimde değinilecektir. Hizmet Odaklı Altyapı Standart Hizmet TK SOAP Tüketici si Uyumlandırma (Orchestration) DönüĢtürme Yönlendirme Desteklenen Hizmet Sağlayıcı Ayrıklık Yönetimi (exception management) HK SOAP Yönetim Portalı TK: Tüketici Kesici (consumer interceptor) HK: Hizmet Kesici (service interceptor) Doğal (Native) KHV Çekirdek Motoru (ESB Core Engine) Uyum (Adaptation) Uyum (Adaptation) Desteklenen Hizmet Doğal Tüketicisi (Native) Tedbir Çatısı (provisioning framework) Hizmet Kaydı / Havuzu Hizmet Yönetimi Güvenlik ġekil 4.5 Microsoft‟un hizmet odaklı altyapı tasarımı Standart Hizmet Sağlayıcı 48 Hizmet Odaklı Altyapı Desteklenen Hizmet Doğal Tüketicisi (Native) Doğal (Native) Desteklenen Hizmet Sağlayıcı Standart Hizmet TK SOAP Tüketici si Framework HK SOAP Standart Hizmet Sağlayıcı Hizmet Kaydı / Havuzu TK: Tüketici Kesici (consumer interceptor) HK: Hizmet Kesici (service interceptor) Hizmet Yönetimi Güvenlik ġekil 4.6 Microsoft‟un hizmet odaklı altyapıyı kurarken kullandığı ürünler Literatürde, hizmet odaklı mimarinin anlatıldığı birçok yerde “Kurumsal Hizmet Veriyolu”ndan (KHV, Enterprise Services Bus, ESB) da bahsedilmiĢtir. Bir yazılım mimarisi yapıtaĢı olan KHV ne tek bir ürün ne de formal bir standart olduğundan açıklaması güç bir kavram olup, belli bir mimarinin gerçekleĢtirilmesini sağlayan yazılım altyapısını göstermekte kullanılmaktadır. KHV, bir SOA gerçekleĢtirmez ancak bir SOA gerçekleĢtirimi için bazı özellikler sağlar. KHV, web servis tabanlı olmak zorunda değildir. Bir uygulama, KHV‟dan faydalanan kurumsal bir mimaride veriyoluyla iletiĢim kurduğundan, veriyolu uygulamalar arasında bir mesaj simsarıdır. Böyle bir yaklaĢım sayesinde, uygulamaların haberleĢebilmesi için 49 gerekli olan noktadan noktaya (sadece iki uçbirimi bağlantılayan veri kanalına iliĢkin) bağlantı sayısı düĢer. Farklı uygulamalar arasındaki bilgi temas noktalarını yöneten merkezileĢtirilmiĢ aracı bilgi sistemi olan KHV, farklı uygulamaları bağlamak, genel mimariyi basitleĢtirmek ve birden fazla sistemin kullanılmasını gerektiren iĢ süreçlerini iyileĢtirmek için kullanılır. KHV, bağlantılı bir devletin temel yapıtaĢı bloğudur. AĢağıdaki Ģekildeki (ġekil 4.7) kısaltmalar altta verilmektedir: ERP: Kurumsal Kaynak Planlaması (Ent. Res. Mang.) BPM: ĠĢ Süreci Yönetimi (Business Process Management) CRM: MüĢteri ĠliĢkileri Yönetimi (Customer Relations Management) SFA: Stratejik Çatı Düzenlemesi (Strategic Framework Arrangement) Hizmet Tüketicileri 50 Portallar BPM ERP, CRM, SFA G2G Mobil Uygulamalar Hizmet Sağlayıcları Kurumsal Hizmet Veriyolu (Enterprise Service Bus, ESB) ERP, CRM, SFA Kurumsal Veri Mirasçı Sistemler Web Servisleri ġekil 4.7 Kurumsal hizmet veriyolu: hizmetin sağlayıcılarıyla tüketicileri arasındaki köprü J2EE Uygulamaları .NET Uygulamaları 51 4.2 Simple Object Access Protocol (SOAP) SOA felsefesini hayata geçirmek için kullanılan bir SOA protokolü olan SOAP .NET platformunun yanı sıra farklı bilgi iĢlem ortamlarında da kullanılmaktadır. Bu alt bölümde SOAP ile ilgili değiĢik konular iĢlenecektir [6]. ASP.NET platformu, dağıtık farklı tür (.NET, Java vb.) bilgi iĢlem ortamlarında birlikte çalıĢabilirliği desteklerken açık internet standartlarını benimser. ASP.NET‟le, uygulama istemcisi hangi iĢletim sistemi, programlama dili, nesne modeli üzerinde kurulursa kurulsun iĢ mantığı herhangi bir uygulama istemcisine sunulabilir ve böylelikle web servisler kullanılarak dağıtık uygulamalar yapılabilir. Bu yaklaĢım, SOAP‟ın “istemcinin veya sunucunun iĢletim platformu ne olursa olsun iletiĢimin herhangi bir tarafında herhangi bir özel yazılım olmadan internetteki veya bir intranetteki iĢ nesnelerinin atıflarını desteklemesi” özelliğiyle sağlanır. 4.2.1 SOAP’a GiriĢ SOAP; sunucular, hizmetler, bileĢenler, nesneler üzerinde metot çağırmak için kullanılan bir protokoldür. Ġnternet daima artan hizmetler ve uygulamalar sunmak üzere geniĢlerken, CORBA (Common Object Request Broker Architecture), COM (Component Object Model), vb. çok farklı platformlar arası iletiĢimin önemi; iĢten-iĢe, iĢten-ticarete, iĢten-herkese (B2B, B2C, B2E) ortamlarındaki uygulamalar arasındaki iletiĢim ihtiyacı ortaya çıktığından artmıĢtır. Dağıtık ve farklı platformlarda bulunabilen yazılım nesnelerinin bir arada çalıĢtırılması problemi için CORBA, Java RMI (Remote Method Invocation) ve DCOM (Distributed COM) çözümünde bağlantının iki ucunda uyumlu sistemler bulunmalıydı (sırasıyla: iki uçta aynı ORB (Object Request Broker) uygulaması; iki uçta Java uygulaması; iki uçta Windows uygulaması). SOAP 52 ise Ġstem/Yanıt mesajlaĢmalarını birer birer zarflayarak iki uçta farklı türde uygulamaların bulunmasını destekler. SOAP‟tan önce, veri aramasını ve yayınını destekleyen Java Servlet olarak yazılmıĢ bir iĢ bileĢeni nesnesini bir güvenlik duvarının karĢı tarafında çalıĢan COM-tabanlı iĢ bileĢeniyle yansıtmak çok zordu. CORBA platformundaki Java servlet‟i, dağıtık uygulamalardaki etkileĢim için normalde Nesne Yönetim Grubu‟nun Ġnternet Inter-ORB Protokolünün (IIOP) kullanılmasını isterken COM bileĢeni dağıtık nesneler arasındaki etkileĢim için COM Ġnternet Servislerinin (CIS) yanısıra Distributed Component Object Model (DCOM), Remote Data Services kullanılmasını isterdi. Bu yüzden, (RDS) veya Remote Scripting‟in tüketici veya sağlayıcı uygulamalar internette vekil sunucular ve güvenlik duvarları boyunca çok zor iletiĢim kurardı. Bu sorunun üstesinden gelmek üzere Microsoft, IBM, DevelopMentor, UserLand tarafından W3C‟ye sunulan SOAP‟ın iki ana amacı vardır: TaĢıma protokolü için HTTP, veri kodlaması için XML kullanılarak internet standartları üzerine kurulu standart nesne istem protokolü sağlamak Zamanla geliĢen geniĢleyebilir bir protokol ve bir taĢıma biçimi oluĢturmak SOAP; atık toplama (garbage collection), tür güvenliği, sürümleme, baĢvuruyla nesne geçirimi ve diğer benzer iletiĢim meselelerin nasıl ele alınacağını belirtmeyerek DCOM ve IIOP gibi diğer dağıtık nesne istem çözümlerindeki karmaĢıklığın çoğunu eler. SOAP; iletiĢimin herhangi bir yanındaki iĢletim sistemi, programlama dili ve nesne modeline bağımlı olmadan komutların ve parametrelerin HTTP istemcileri ve sunucuları arasında geçirilmesinin tanımlanıĢına odaklanır. 53 4.2.2 SOAP’la Uzak Veriye EriĢim SOAP‟ın, iki uygulamanın güvenlik duvarları boyunca çalıĢırken birbirlerine servis sağlarkenki etkileĢimine izin veriĢi bu kısımda bir örnek yardımıyla iĢlenilecektir. www.soapla.com, müĢterilerine kiĢiselleĢtirilmiĢ portal sayfaları sunan teorik bir web sitesi olsun. Sun Solaris platformunda çalıĢan www.soapla.com, hisse senetlerine yönelik olarak, hisse senedi alım satım hizmetleri ve sektördeki ilgili konulardaki çeĢitli araĢtırmaları müĢterilerine Java Servlets‟le sunar (.jsp sayfaları olarak). www.hissesenedisunucusu.com ise B2B hizmeti olarak gerçek zamanlı hisse senetleri, satıĢ hacimleri ve ticari veri sağlayan bir servistir. Windows 2000tabanlı mimaride çalıĢan www.hissesenedisunucusu.com, hizmet verirken ASP.NET kullanır. www.soapla.com, www.hissesenedisunucusu.com‟daki HisseSenedi servisinin SenetGetir metoduna eriĢmek, sonrasında hizmetin sonuçlarını www.soapla.com son kullanıcılarına döndürmek istemektedir. SOAP‟tan önce, en basit çağrılar için bile bu türden bir iletiĢimin geliĢtirilmesi uygulamalar iki farklı nesne modeli (CORBA ve COM) üzerinde çalıĢtığından oldukça güçtü. SOAP‟la birlikte bu farklı ortamlar kolaylıkla haberleĢebilir ve böylelikle Java Servlets, www.hissesenedisunucusu.com‟daki COM nesnelerini kolaylıkla etkinleĢtirebilir. AĢağıdaki Ģekilde, www.soapla.com müĢterisinin www.soapla.com web sitesine eriĢmesi ve www.soapla.com‟un www.hissesenedisunucusu.com‟dan çektiği hisse senedini alması çizilmiĢtir. 54 1. Ġstemci www.soapla.com ’u ziyaret eder ve bir hisse senedi ister 9. Ġstemci, Sonuç içeren HTML HTML + HTML sayfasını alır HTML + HTML Ġnternet HTML + XML HTML + XML HTML + HTML HTML + XML yalnız 80 portundan trafiğe izin veren güvenlik duvarı http://www.soapla.com * Sun Solaris platformu * Java Server sayfaları http://www.hissesenedisunucusu.com * Windows 2000 platformu * ASP sayfaları hissesenedi.jsp sayfası hissesenedi.asmx sayfası 2. Son kullanıcıdan IBM’in hisse senedinin alınması isteğini alır 5. www.soapla.com/hissesenedi.jsp ’den HTTP isteği gelir, parametreler XML içinde kodlanmıĢtır 3. Sayfa hisse senedi vekil nesnesini oluĢturur 6. ASP.NET SenetGetir() metodunu çağırır SOAP İstemci Vekil: SenetGetir() 4. Çağrıyı, her SOAP belirtimi için HTTP ve XML’e çevirir ve http://www.hissesenedisunucusu.com/ hissesenedi.asmx ’e Postalar 10. Vekil, sonuçları HTTP üzerinden XML içinde alıp fonksiyonun 110$ döndürülen değerini çevirir 8. Vekilden gelen sonuçları kabul eder, sonuçları kullanıcıya HTML sayfasında gösterir ġekil 4.8 Farklı ortamlarda SOAP istemi Function SenetGetir(SenetSembolu as String) Hisse senedi değerini SQL sunucudan getirir Senet değerini tamsayı olarak döndürür End Metot 7. ASP.NET, sonuçları SOAP olarak biçimleyip döndürür, döndürüm XML ve HTTP’dir 55 ġekil, SOAP ĠletiĢiminde gerçekleĢen her adımı göstermektedir: 1. MüĢteri, www.soapla.com‟un hissesenedi.jsp sayfasını açıp bir hisse senedi adı girip gönder tuĢuna basarak hisse senedi ister. 2. hissesenedi.jsp sayfası, kullanıcının girdiği hisse senedi sembolünü (“IBM”) tutar. 3. hissesenedi.jsp sayfası www.hissesenedisunucusu.com SenetGetir nesnesi için istemci vekil çağırır. 4. Bu vekil, bir SOAP istemci isteği üretip, bu isteği bir HTTP POST‟a sarmalar: POST /HisseSenedi.asmx HTTP/1.1 Host: www.hissesenedisunucusu.com Content-Type: text/xml; charset=”utf-8” Content-Length: nnn <SOAP-ENV:Envelope> <SOAP-ENV:Body> <m:SenetGetir xmlns:m=”Some-Namespace-URI”> <symbol>IBM</symbol> </m:SenetGetir> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Ġlk dört satır standart HTTP‟dir http://www.hissesenedisunucusu.com/HisseSenedi.asmx‟ye ve içeriğin gideceğini gösterir. Ġçerik türü text/xml tanımlanarak sunucunun taĢınan verinin bir XML iletisi olarak gideceğini bilmesi sağlanır. SOAP, iki tür ileti (Call ve Response) tanımlar: istemcilerin uzak bir prosedür çağırabileceği ileti ve sunucuda çağrılmıĢ prosedürün uygun değerlerle cevap verdiği ileti. 56 Yukarıdaki Call örneği, zarfı (envelope) ve esas metni (body) standart XML yapısında tanımlar. Bu yapı, SenetGetir metoduna eriĢildiğini ve parametre olarak “IBM” değerinin geçirildiğini gösterir. 5. Bu istek, XML gömülü standart bir HTTP POST isteği olduğundan www.hissesenedisunucusu.com sitesini koruyan güvenlik duvarından sorunsuz geçer. 6. hissesenedi.asmx sayfası isteği aldıktan sonra isteğin XML yapısının Ģifresini çözerek SenetGetir metodunu çağırarak parametre olarak “IBM” değerini geçirir. [SOAP, sağlayıcının kendindeki metotları nasıl çağırması gerektiğini tanıtmadığından, sağlayıcının dil veya iĢletim sistemi ile ilgili tek kısıt sağlayıcının SOAP protokolünü desteklemesidir]. 7. Değer çekildikten sonra, bir SOAP cevap iletisi oluĢturulur: HTTP/1.1 200 OK Content-Type: text/xml; charset=”utf-8” Content-Length: nnnn <SOAP-ENV:Envelope> <SOAP-ENV:Body> <m:SenetGetirCevap xmlns:m=”Some-Namespace-URI”> <result>110</result> </m:SenetGetirCevap> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 8. www.soapla.com/hissesenedi.jsp‟de çağrılmıĢ vekil sunucu, yukarıdaki SOAP cevap paketini kabul eder ve sonuçları çağıran fonksiyona geri geçirir. 9. Kullanıcı, hissesenedi.jsp sayfasınca biçimlendirilen HTML sayfasını alır. 57 4.2.3 SOAP Discovery (DISCO, Discovery of Web Services) MüĢteri veya istemci, SOAP discovery belirtimi yardımıyla web servisinin sağladığı hizmetleri ve metotları otomatik olarak belirleyebilir. Sağlayıcı, uygulama tüketicisiyle diyalog kurulabilmek için SOAP discovery ile bu bilgileri uygulama tüketicisine raporlayabilir. DISCO, keĢif belgesini bilinen bir URL‟den almak için XML‟e bağlı bir belge biçimi ve bir ptotokol tanımlayan belirtimdir. Bir yazılım geliĢtirici, DISCO‟yla belli bir URL‟de varolan yayınlanmıĢ hizmetleri araĢtırabilir. DISCO‟yla, Web servisimizin potansiyel istemci uygulamaları yayınlanmıĢ hizmetleri araĢtırabilir. 4.2.4 Web Service Description Language (WSDL) WSDL ile web servisi istemci uygulamaları geliĢtiricileri web servisine eriĢmek için ihtiyaç duydukları vekil oluĢturma bilgisini alırlar. WSDL; web servisindeki public fonksiyonları, zorunlu ve seçimsel parametreleri, bu parametrelerin sıralamasını ve veri türlerini tanıtır. WSDL, tüketicinin uygun biçimde cevabı ele alması için döndürülen verinin biçimini, türünü ve yapısını ayrıca belirtir. HisseSenedi Servisi için WSDL‟nin bir HTTP POST isteğiyle gönderilen bu isteklerini tanıtan kısmı aĢağıdaki gibidir: ... <httppost xmlns=”urn:schemas-xmlsoap-org:post-sdl-2000-01-25”> <service> <requestResponse name=”SenetGetir” href=”http://www.hissesenedisunucusu.com/HisseSenedi.asmx/SenetGetir”> <request> <form> <input name=”Symbol”/> </form> </request> <response> <mimeXml ref=”s0:double”/> </response> </requestResponse> </service> </httppost> ... 58 Bu örnekte, <request> etiketleri <symbol> girdi parametresini tanıtırken <response> etiketleri bu servisten beklenebilen cevap biçimini (örnekte, double değer türü) tanıtır. Bu servis tüketicisinin servis sağlayıcıyı kullanmaya baĢlamak için diğer bazı Ģeyler daha vardır: 4.2.5 SOAP’ın ASP.NET’le Kullanımı SOAP, ASP.NET‟le web servisleri oluĢtururken kullanılan standart iletim protokolüdür. Bu protokolle, gerekli isteklerin sağlanması için istenen belirli bir XML kodunun uygulamasının ayrıntılarının bilinmesine gerek yoktur. Ayrıca, ASP.NET‟in bir belgenin WSDL‟sini sunan tümleĢik olanağı (herhangi bir .asmx dosyasının sonuna “?WSDL” eklenmesi) vardır. Bir sonraki alt bölümde, ASP.NET‟in dağıtık bilgi iĢlem ortamını gerçeklerken bu yayınlanmıĢ açık standartları ASP.NET web servisleriyle kullanıĢı iĢlenecektir. 4.3 Web Servisleri Bu bölümde, web servisinin ne olduğu, görevi, bir web servisi oluĢturulması, web servislerinin tanıtılıĢı ve web servislerine programlamayla eriĢim iĢlenecektir. Ġnternet Ģu anda sunucular, iĢletim sistemleri, veritabanları vb. gibi oldukça farklı tür birimlerden oluĢmuĢtur. Konu bu farklı birimler arasındaki iletiĢim olunca, baĢkalığın içte ve dıĢta olması kötüdür. Herkesin iletiĢimde kullanabildiği standartlar kümesi oluĢturmak bu problemi çözmenin bir yoludur. Ancak, herkes kendi standartlar veya protokoller kümesine sımsıkı sarılmıĢken evrensel bir standart üzerinde uzlaĢmak neredeyse imkânsız hale gelir. Bu durumda ne yapılabilir? Herkesin kullandığı bir Ģey(ler) alınır, birleĢtirilir ve böylelikle bir standart yapılır. Bu bir Ģeyler, HTTP ve XML‟dir. HTTP (Hypertext Transfer Protocol), tüm web tarayıcılarının web sayfaları 59 isterken ve tüm sunucuların web sayfaları sunarken kullandığı protokoldür. XML (Extensible Markup Language), HTTP üzerinden gönderilen bilgileri kodlamak için bir çapraz platform metodudur. .NET Çatısında HTTP ve XML‟e web servislerini çağırma rolü vermiĢtir. Web servisi, sunucudaki nesnelerin HTTP‟yle bir istemciden gelen istekleri kabul etmesinin ve XML-tabanlı cevap döndürmesinin sorunsuz bir yoludur. Web servisleri HTTP ve XML üzerine kurulduklarından, pratikte internetteki herkes tarafından kullanılabilir. Bu kısımda, web servisi yapımı ve baĢkalarının web servislerinin keĢfedilip kullanımı gösterilecektir. 4.3.1 Bir Web Servisinin Yapımı Bir web servisinin yapımı bir örnek ile iĢlenecktir. Bir veritabanındaki (belediye.mdb; tezin eki olarak verilen destekleyici CD‟de bulunmaktadır) veriyi sunan web servisi yazılacaktır. Bir web servisi yapmak için herhangi bir metin editörü (Notepad vb.) veya Visual Studio kullanılabilir. Web servislerinin dosya uzantısı .asmx olup bu yönüyle .aspx uzantısına sahip ASP.NET sayfalarından farklıdırlar. Bu yüzden, VH_BH.asmx adlı bir dosya oluĢturacağız (Veri Hizmetleri: BelediyedenHastaneye). Uygulamalarda Çizelge 4.1‟de verilen adlandırma standardı kullanılacaktır. Çizelgedeki ilgili dönüĢtürümlerin nasıl yapılacağı ilerleyen paragraflarda örneklerle verilecektir. 60 Çizelge 4.1 Sınıfların, aduzaylarının ve derlemelerin adlandırma standardı web servisi (Veri sağlayıcısı) Dosya Ad .asmx X Sınıf, .asmx dosyaya yazılır. BaĢına <WebService(Namespace:="XVB")> yazılır. sınıf WSDL.exe ile .asmx dosyadan .vb dosya elde edilir (class) (X.vb). vbc.exe ile X.vb dosyası derlenerek X.dll elde edilir. Sınıfın bildirildiği .asmx dosyasında sınıf bildiriminin olduğu satırda sınıf bildiriminden önce <WebService(Namespace:="XVB")> yazılarak aduzayı aduzayı tanıtılır. X‟nin yanındaki “VB” eki dosyada (namespace) visual basic kodlarının olduğunu ve dosyanın visual basic derleyicisi (vbc.exe) ile elde edildiğini göstermek için eklenmektedir. kurgu X.dll assembly dosyası vbc.exe ile X.vb dosyasından (assembly) elde edilir. .aspx. Veri istemcisini temsil eden .aspx dosyasının baĢında Veri istemcisi <%@ Assembly Name="X" %> <%@ Import Namespace="XVB" %> bildirimleri eklenir. *: veri istemcisinin iĢlevini belirten herhangi bir ad verilebilir. X XVB X * Çizelge 4.1‟de verilen adlandırma standardına eĢlik eden komut satırları Çizelge 4.2‟de verilmiĢtir. Çizelge 4.2 Adlandırma standardına eĢlik eden komut satırları ve kullanılan dizinler C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\WSDL.exe WSDL /language:VB http://localhost/X.asmx?WSDL /namespace:XVB C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe (VB.NET) C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe (C Sharp.NET) (Not: csc.exe baĢka bir klasöre taĢındığında tek baĢına çalıĢmamaktadır) Cd /d D:\edevlet\araclar cd /d C:\Windows\Microsoft.NET\Framework\v2.0.50727\ vbc /out:D:\edevlet\bin\X.dll /t:library /r:System.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:System.Data.dll d:\edevlet\Araclar\X.vb 61 VH_BH.asmx dosyası açılıp dosyanın baĢına aĢağıdaki kod yazılır: <%@ WebService Language="VB" Class="VH_BH" %> Bu kod satırı, dosyayı web servis olarak tanımlayıp hizmetin yazımında VB.NET kullanılacağını gösterir. class özniteliği, web servisinin sunacağı sınıfı gösterir. ASP.NET sayfasında yapıldığı gibi, VH_BH web servisinin gerçekleĢtirilmesinde gerekli aduzayları çekilir (import edilir). Belediye.mdb veritabanına eriĢileceğinden, System.Data, System.Data.OleDb ve System.Data.OleDbClient aduzayları çekilir. Ayrıca, web servis yazılırken System.Web.Services aduzayı da çekilmelidir. AĢağıdaki Imports deyimleri VH_BH.asmx dosyasına eklenir: Imports System Imports System.Web.Services Imports System.Data Imports System.Data.OleDb Imports System.Data.OleDbClient Ġhtiyaç duyulan aduzayları çekildiğinden gerçekleĢtirim için gerekli sınıflara eriĢilebilir; VH_BH sınıfını bildirelim. VB.NET sınıfı tanımlama yapısı aĢağıdadır: Class [Sınıf Adı] „ Özellikler ve Metotlar End Class VH_BH sınıfının bildirimi aĢağıdaki gibi olacaktır: Class VH_BH „Özellikler ve Metotlar End Class 62 Web servis olarak iĢleyecek sınıf kullanıldığından, sınıf WebService sınıfından türetilmelidir. Ayrıca, VH_BH sınıfı VH_BHVB aduzayı içine konacağından VH_BH sınıfının bildirimi aĢağıdaki gibi değiĢtirilir: <WebService(Namespace:=" VH_BHVB")> Class VH_BV Inherits : WebService „Özellikler ve Metotlar End Class VH_BH sınıfının WebService sınıfından türetilmesi isteğe kalmıĢ bir Ģeydir, ancak böyle bir türetim kod okunabilirliğini artırır. VH_BH web servisinin bir Ģey yapabilmesi istendiğinden, VH_BH sınıfına bir metot eklenir. Eklenecek metoda ToplamPrimOdemeGunuSayisi diyelim. ToplamPrimOdemeGunuSayisi metodu, parametre olarak TC Kimlik No geçirildiğinde bir VeriKümesi döndürecektir. Bu VeriKümesinde belediyede çalıĢan personelin sosyal güvenlik kurumuna yapmıĢ olduğu prim ödemelerinin sayısı bir alan içinde görünecektir. VB.NET‟te bir sınıfa public bir metot aĢağıdaki gibi eklenir: Metodun web servisi yoluyla çağrılabilir olması için fonksiyon tanımına <WebMethod()> özniteliği eklenir. ToplamPrimOdemeGunuSayisi metodu, gerçekleĢtirim kodu öncesi aĢağıdaki gibidir: <WebMethod()> Public Function TCKimlikNo As String) As DataSet „ GerçekleĢtirme kodu End Function ToplamPrimOdemeGunuSayisi(ByVal VH_BH sınıfının tam kodu (VH_BH.asmx): (AĢağıda verilen kodlardan yararlanacak olanlar için kod satırlarının editörde alt satırlara sarkmaması gerektiği gerçeğinden hareketle kodlar yatay sayfaya basılmıĢtır. Okur, kodları denerken bu gerçeği göz önünde bulundurmalıdır.) 63 <%@ WebService Language="VB" Class="VH_BH"%> Imports System Imports System.Web.Services Imports System.Data Imports System.Data.OleDb Imports System.Data.OleDbClient <WebService(Namespace:="VH_BHVB")> Class VH_BH : Inherits WebService <WebMethod()> Public Function ToplamPrimOdemeGunuSayisi(ByVal TCKimlikNo As String) As DataSet Dim Baglantim As OleDbConnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=d:\edevlet\belediye.mdb") Dim Komutum As OleDbCommand Dim VeriBagdastiricim As OleDbDataAdapter Dim Parametrem As OleDbParameter Dim VeriKumem As New DataSet Dim tckimlikten_calisan_no_denetimi As IDbCommand Dim SQLim As String Dim atanan_teklik_sn As Integer = 0 SQLim = "SELECT calisan_sn FROM [calisan] WHERE [TCKimlikNo]='" & TCKimlikNo & "'" Baglantim.Open() tckimlikten_calisan_no_denetimi = New OleDbCommand(SQLim, Baglantim) TCKimlikNo = tckimlikten_calisan_no_denetimi.ExecuteScalar() Parametrem = New OleDbParameter("@TCKimlikNo", OleDbType.VarChar, 100) Parametrem.Value = TCKimlikNo Komutum = New OleDbCommand 64 Komutum.CommandType = CommandType.TableDirect Komutum.CommandText = "select * from calisan_sgk where calisan_sn=" & TCKimlikNo Komutum.Parameters.Add(Parametrem) Komutum.Connection = Baglantim VeriBagdastiricim = New OleDbDataAdapter VeriBagdastiricim.SelectCommand = Komutum VeriBagdastiricim.Fill(VeriKumem, "calisan_sgk") VeriBagdastiricim.Dispose() VeriBagdastiricim = Nothing Komutum = Nothing Baglantim.Dispose() Baglantim = Nothing Return VeriKumem End Function End Class 65 Artık web servisi baĢarıyla yazılmıĢtır. ġimdi, VH_BH web servisi kurulup iĢletime alınmalıdır. Web servislerinin dağıtımı için, ASP.NET‟te IIS‟den yerel sürücüde dosyaları barındıran klasör bir web sitesi olarak tanıtılır. VH_BH web servisini web tarayıcısından çağırmak için web servisinin yolu girilir. VH_BH web servisinin yolu: http://localhost/VH_BH.asmx ġekil 4.9 VH_BH.asmx cevabı (VH_BH web servisinden alınan cevap) VH_BH web servisinin Ģekildeki cevabı Web Services çalıĢma zamanı tarafından otomatik olarak üretilmiĢtir. Bu cevapta, web servisin adı, web servisince gerçekleĢtirilen metotlar, VH_BH web servisinin metotlarını çağırırken kullanılabilecek gerekli parametreler, dönüĢ veri türü ve protokoller (SOAP, HTTP GET, HTTP POST vb.) vardır. Ayrıca, VH_BH web servisinin test edileceği bir olanak eklenmiĢtir. TCKimlikNo metinkutusuna belediyede çalıĢan bir personelin TC Kimlik No‟su girilip Çağır düğmesine basıldığında yapılan istek için yeni bir tarayıcı penceresi açılır, VH_BH web servisinin XML cevabı verilir. 4.3.2 Bir Web Servisinin Tüketimi Temelde bir web servisini kullanmanın iki yolu vardır: ya daha önce yapıldığı gibi web servisi tarayıcıdan doğrudan çağrılır ya da web servisini programla çağırmak için bir uygulama kullanılabilir. Doğrudan bir tarayıcı isteği yapmak kolaydır, bir web servisine programla eriĢmek kullanılmak istenen web servisi hakkında hiçbir Ģey bilinmediğinde zordur. Bir web servisiyle haberleĢebilmek için web servisinin desteklediği metotlar, girdi parametrelerinin ne olduğu, her 66 metodun ne döndürdüğü bilinmelidir. Yani, web servisiyle bir nevi iletiĢim sözleĢmesi yapılmalıdır. Web servislerinin kendi kendilerini tanıtmalarıyla bu bilgiler elde edilir. .NET web servisleri, kendilerini tanıtan XML-biçimli WSDL belgesini otomatik olarak üretirler. Bir web servisinin URL‟sine “?WSDL” eklenince istemci bir uygulamaya web servisinin keĢfedilmesini sağlayan bir WSDL belgesi döndürülür. VH_BH web servisinin WSDL belgesi için http://localhost/ VH_BH.asmx?WSDL URL‟si kullanılır. Bu yapılınca, tarayıcı penceresinden bir XML belgesi alınır. Bu XML-biçimli WSDL belgesi VH_BH web servisini tanıtan “iletiĢim sözleĢmesi”dir. Bu WSDL, web servisince desteklenen HTTP GET, HTTP POST, SOAP gibi protokollerin ayrıntısını ve hizmetlerin çağrılıĢlarının ve döndürülen değerlerin anlambilimini (semantics) verir. Artık VH_BH web servisinin konumunu ve desteklediği metot(lar)ı biliyoruz. Artık, bir uygulamadan VH_BH web servisine eriĢmek için bir vekil sınıf oluĢturmaya ihtiyaç duyulmaktadır (örneğimizde bu bir ASP.NET sayfasıdır). Aslında vekil (proxy), yerel bir nesne gibi davranan bir sınıftır, gerçekte VH_BH web sitesiyle iletiĢim için bir mekanizmadır. Vekil, metot isteklerini sıralar (serialize), gönderir, alır, deserialize eder (Bu faaliyetlere, sıklıkla sıralama (marshaling) ve taĢıma (transport) faaliyetleri denir). Komut satırı araçlarını kullanarak bir web servis vekili oluĢturulabilir. WSDL.exe (VS2005 varsayılan konumlarla kurulduğunda, C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin klasöründedir) komut satırı aracıyla bir vekil oluĢturulacaktır. WSDL.exe; bir WSDL belgesine bağlı olarak vekil sınıf oluĢturan bir komut yardımcı programıdır. Kendi vekil sınıfımızı oluĢturduktan sonra, bu vekil sınıfı bir kurguya (assembly) derleyebilir ve bir web servisi çağırırken sıralama veya taĢıma mantığı yazmaya gerek kalmadan kullanabiliriz. 67 Eğer web sitemizin yerel dosyalarını “d:\edevlet” klasörüne yerleĢtiriyorsak, bu dizin altında iki klasör açmakta fayda vardır: Bunlardan birincisi bazı komut satırı yardımcı programlarını içine koyacağımız “Araclar” klasörü, diğeri ise kurguların (.dll dosyalarının) konacağı “bin” klasörü. WSDL.exe programı tek baĢına çalıĢabilen bir program olduğundan C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin klasöründen kopyalanıp “d:\edevlet\araclar” klasörüne alınabilir. vbc.exe dosyası da tek baĢına çalıĢabilen bir program Framework\v2.0.50727” olduğundan klasöründen “C:\Windows\Microsoft.NET\ kopyalanıp “d:\edevlet\araclar” klasörüne alınabilir. VH_BH web servisine bağlı olarak bir vekil sınıf oluĢturmak için, bilgisayarımızın komut satırında WSDL /language:VB http://localhost/ VH_BH.asmx?WSDL /namespace: VH_BHVB yazıldığında “\VH_BH.vb” iletisi alınır. VH_BH.vb vekil sınıfı, varsayılan olarak WSDL.exe‟nin çalıĢtırıldığı dizinde oluĢturulur. Vekil sınıfın oluĢturulacağı fiziksel yol, /o[ut]: anahtarıyla varsayılandan farklı da belirtilebilirdi: Örneğin, /o:C:\. VH_BH.vb vekil sınıfı oluĢturulduğundan, artık bir kurguya derlenebilir. VH_BH.vb vekil sınıfına bağlı VH_BH.dll kurgusu oluĢturup /bin dizinine koymak için vbc /out:D:\edevlet\bin\VH_BH.dll /t:library /r:System.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:System.Data.dll d:\edevlet\Araclar\VH_BH.vb komutu çalıĢtırılınca VH_BH.dll üretilir. 68 Derleyici, /r[eference]: anahtarıyla belirtilen bir kurguyu içerir. Bir web servisi derlenirken, System.XML.dll ve System.Web.Services.dll daima içerilmelidir. VH_BH web servisinde ADO.NET kullanıldığı için System.Data.dll dâhil edilir. VH_BH.dll bileĢeni /bin dizinine dağıtıldığından, bir ASP.NET sayfasından VH_BH web servisi çağrılabilir. Örnek (VHIstemci_BH_Secim_.aspx): AĢağıda verilen kodlardan yararlanacak olanlar için kod satırlarının editörde alt satırlara sarkmaması gerektiği gerçeğinden hareketle kodlar yatay sayfaya basılmıĢtır. Okur, kodları denerken bu gerçeği göz önünde bulundurmalıdır. 69 <%@ Page Language="VB" debug="true"%> <%@ Assembly Name="VH_BH" %> <%@ Import Namespace="VH_BHVB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <script language="VB" runat="server"> Sub tiklandiginda(ByVal Sender As Object, ByVal E As EventArgs) Dim oDS As DataSet Dim Hizmet As New VH_BHVB.VH_BH Dim k As String k = Operand1.Text oDS = Hizmet.ToplamPrimOdemeGunuSayisi(k) dgMembers.DataSource = oDS.Tables(0).DefaultView dgMembers.DataBind() End Sub </script> <html> <head> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); 70 //--> </script> <title>Music</title></head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye.js"></script> </div> <div align="center"> <form id="Form2" runat="server"> <table border="2"> <tr> <td> <br /> <strong> Toplam Prim Ödeme Günü Sayısı Kontrolü</strong><br /> <br /> TC Kimlik No:<asp:TextBox id="Operand1" runat="server"/><br /> <input type="submit" id="Mesken" value="Denetle" OnServerClick="tiklandiginda" runat="server"> <asp:DataGrid id="dgMembers" BorderWidth="1" GridLines="both" runat="server" /> </td> </tr> </table> </form> </div> </body> </html> 71 Bu basit örnekle iĢlerin nasıl yürüdüğü anlaĢılabilir. Hizmet değiĢkeni bildirimi için “Dim Hizmet As New VH_BHVB.VH_BH” kullanıldı. Bu satırda, VH_BHVB aduzayındaki VH_BH sınıfına bağlı olarak yeni bir nesne oluĢturulmaktadır. Hizmet nesnesi oluĢturulduğundan bu nesnenin ToplamPrimOdemeGunuSayisi metodu çağrılabilir. Web servislerinin kurgular içine derlenip veri istemcilerine bu Ģekilde sunulması bir zorunluluk değildir. Yani .asmx sayfaları oldukları hal ile web sunucularına konup oyunun içinde bırakılabilirler. Ancak, .asmx sayfalarından WDSL.exe ve vbc.exe süreçleri sonrasında .dll elde edilip veri istemcisi .aspx sayfasından bu .dll çekildiğinde aduzayı baĢvuruları ile karĢılaĢılan sorunlar tamamen ortadan kalkmaktadır. Bu gerçekten hareketle, bu tezde böyle bir yaklaĢım benimsenmiĢtir. 72 5. BĠR eDEVLET UYGULAMASI MODELĠNDE KULLANILABĠLECEK ÖRNEK BĠR ALT MODÜL ÖNERĠSĠ Bu bölümde eBelediye ve eHastane uygulamalarını birleĢtiren ve bu uygulamaların birlikte çalıĢabilirliğini destekleyen çok basit bir eDevlet uygulaması gerçekleĢtirilmeye çalıĢılacaktır. Seçilen “belediye” ve “hastane” kurumları tamamen tesadüfî olup oluĢturulan model herhangi iki kurum arasında uygulanabilir ve sisteme bütünleĢik yapı bozulmadan üçüncü, dördüncü… kurumlar da eklenebilir. Sistemdeki alt modüller Ģu Ģekildedir: Belediyeden ÇalıĢana Belediyeden Hastaneye Belediyeden VatandaĢa Hastaneden ÇalıĢana Hastaneden Belediyeye Hastaneden VatandaĢa Yukarıda bahsedilen alt modüllere geçmeden önce sistemin üyelik ve yönetim tabanlı iĢleyiĢinden biraz bahsetmek sisteme okuru alıĢtırmak için faydalı olacaktır. Sistemde üyelik öncesi ana menüden açılan alt menüler oldukça kısıtlıdır (ġekil 5.1). Bir belediye (veya hastane) çalıĢanının kendi kurumuyla ilgili kendine has iĢlemlerin yapılabildiği menülere eriĢebilmesi için üyelik ekranından giriĢ yapması gerekmektedir. Kullanıcı sisteme giriĢ yapmadan önce eBelediye ve eHastane menüsünde eriĢebileceği kısım kısıtlıdır. Kullanıcı sisteme kayıt esnasında belediye (hastane) çalıĢanı olduğu bilgisini girer ve bu bilgi sistem yöneticisi tarafından onaylanırsa eBelediye (eHastane) menüsünde “Belediyeden ÇalıĢana” (“Hastaneden ÇalıĢana”) alt menüsü açılır. 73 ġekil 5.1 Üyelik öncesi menülere kısıtlı eriĢim Kullanıcının üyeliğine yönelik olarak kurgulanılan Üyelik Modülü‟nün dosya yapısı aĢağıdadır (ġekil 5.2). Üyelik modülüne iliĢkin kaynak kodları tezin ekler kısmındadır. ġekil 5.2 Üyelik modülüne iliĢkin dosya yapısı http://localhost/uyelik/default.aspx‟ten yapılan bağlantılarda http://localhost/Uyelik/giris.aspx?ReturnUrl=%2fUyelik%2fdefault.aspx sayfasına yönlendirim vardır (ġekil 5.3). Kullanıcı adı ve Ģifresi girildiğinde default.aspx‟den giriĢ.aspx‟e yönlendirim ortadan kalkar. 74 ġekil 5.3 Üyelik klasörünün varsayılan default.aspx dosyasına kısıtlı eriĢim Hiçbir kullanıcı adı ve Ģifre girilmeden “Gir” tuĢuna basıldığında sayfa düzeyi doğrulamalar (page level validation) olduğundan kullanıcı uyarılmaktadır: ġekil 5.4 Üyelik giriĢ ekranında sayfa düzeyi doğrulamalar Daha önceden kayıtlı olmayan bir kullanıcı “Kayıt Olunuz!” bağlantısına tıkladığında bilgilerini girip kayıt olabileceği bir form açılmaktadır: 75 ġekil 5.5 Üyelik kayıt formu Yukarıdaki formdan elde edilen kullanıcı bilgileri veritabanında toplanır. Kullanıcılar bu sayfaya hem belediyenin hem de hastanenin sayfasından eriĢebilirler. EriĢilen yere bağlı olarak çalıĢılan kısım bölümünde diğer kurum seçilmiĢse ilgili veri ihmal edilebilir. Eğer kullanıcı bir belediye çalıĢanı olup belediyenin sunmuĢ olduğu Telefon Bilgi Sistemi ve Bordro Bilgi Sistemi gibi belediye taraflı sistemlere eriĢmek istiyorsa kayıt formunda ilgili kısımda bu isteğini belirtecek harfi girer (ġekil 5.6). 76 ġekil 5.6 Belediye taraflı alt sistemlere eriĢim isteği yapılan kayıt formu Kullanıcı kayıt olduğunda giriĢ ekranına tekrar yönlendirilir ve kayıtta verdiği kullanıcı adı ve Ģifreyi girerek sisteme giriĢ yapar (ġekil 5.7). Belediyede çalıĢtığı bilgisini giren kullanıcının bu bilgisi, teyit edilmek üzere yönetici paneline düĢer, yönetici panelinde sistem yöneticisi bu bilgiyi doğrularsa eBelediye hizmetleri kısmında “Belediyeden ÇalıĢana” alt menüsü görünür hale gelir (ġekil 5.8). ġekil 5.7 Sisteme giriĢ sonrası açılan ekran 77 ġekil 5.8 ÇalıĢılan kurum bilgisinin doğrulanması sonucu açılan ekran Sistemin gerek belediye tarafında gerekse hastane tarafında ayrı ayrı sistem yöneticisi vardır. Dolayısıyla belediye çalıĢanı olduğunu bildiren birisinin bu kontrolü belediye tarafındaki sistem yöneticisi tarafından sağlanmaktadır (ġekil 5.9). Yönetici Paneli ġekil 5.9 Yönetici paneli modülüne iliĢkin dosya yapısı Kullanıcıların yapmıĢ oldukları çalıĢılan kurum bildirimlerini onaylayan sistem yöneticisinin onay formları da web form tabanlı olup yönetici paneline de web üzerinden eriĢilebilmektedir. Yönetici paneline eriĢmek için sistem yöneticisi, kullanıcı adı ve Ģifre girmelidir (ġekil 5.10). 78 ġekil 5.10 Yönetici paneli giriĢ ekranı Yönetici doğru kullanıcı adı ve Ģifre sağladığında yönetim paneli açılır (ġekil 5.11). ġekil 5.11 Yönetici paneli Yönetici panelinde daha önce de bahsedildiği gibi yöneticinin, kullanıcıların çalıĢan bilgisini onaylayabileceği bir form vardır (ġekil 5.12). Yine ayrıca bu panelde sisteme geçersiz bilgiler girerek kayıt yaptıran kullanıcıların silinebileceği bir form daha vardır. ġekil 5.12 Yönetici paneli: çalıĢan bilgisi onaylama formu 79 Sistemle ilgili dosya yapılandırmasına gelindiğinde; veri hizmetleri sağlayan her bir alt modülün kendine özgü web servisi vardır. Dolayısıyla alt modüller itibarıyla, veri sağlayıcısı konumundaki bu web servislerin dosya adları aĢağıdaki gibidir: VH_BC.asmx (Veri Hizmetleri: Belediyeden ÇalıĢana) VH_BH.asmx (Veri Hizmetleri: Belediyeden Hastaneye) VH_BV.asmx (Veri Hizmetleri: Belediyeden VatandaĢa) VH_HC.asmx (Veri Hizmetleri: Hastaneden ÇalıĢana) VH_HB.asmx (Veri Hizmetleri: Hastaneden Belediyeye) VH_HV.asmx (Veri Hizmetleri: Hastaneden VatandaĢa) Veri sağlayıcısı olarak hizmet eden bu web servisler gerek belediye tarafında gerekse hastane tarafında kullanıcıların iĢlemlerine veri istemcileri (tüketicileri) vasıtasıyla yanıt verirken iki durum söz konusu olabilir. Birinci durumda, kullanıcı veritabanından sadece seçme yapar, yani veritabanında bir değiĢiklik söz konusu değildir. Bu durumu ifade etmek için, ilgili veri istemcisi .aspx dosyasının adına “_secme” ibaresi eklenecektir. Ġkinci durumda ise veritabanından veri çekmenin ötesinde veritabanında değiĢikliklere gidilmekte bazı kayıtların içeriği değiĢmekte bazende yepyeni bir kayıt ortaya çıkmaktadır. Bu durumu ifade etmek için, ilgili veri istemcisi .aspx dosyasının adına “_islem” ibaresi eklenecektir. Dolayısıyla yukarıdaki yapılandırmaya eĢlik eden dosya adları aĢağıdaki gibidir: VHIstemci_BC_Secim.aspx VHIstemci_BC_Islem.aspx VHIstemci_BH_Secim.aspx VHIstemci_BH_Islem.aspx VHIstemci_BV_Secim.aspx VHIstemci_BV_Islem.aspx VHIstemci_HC_Secim.aspx VHIstemci_HC_Islem.aspx VHIstemci_HB_Secim.aspx VHIstemci_HB_Islem.aspx VHIstemci_HV_Secim.aspx VHIstemci_HV_Islem.aspx 80 5.1 Belediyeden VatandaĢa Hizmetler Alt Modülü Bu alt modül belediyenin vatandaĢlara hizmet sağlamakla sorumlu olan modülüdür. Bu modülün bir çok alt modülü olabilir (Vergi ve Harclar, Online Nikah, Bilgi Edinme, Veterinerlik, ĠĢ BaĢvurusu vb.). eBelediye menüsündeki “Belediyeden VatandaĢa” alt menüsünün “Vergi ve Harçlar” alt menüsüne tıklandığında (ġekil 5.13) Vergi ve Harçlar ile ilgili hizmetlere eriĢilebilinecek baĢka bir sayfaya (http://localhost /BV_VergiHarc.aspx) yönlendirme yapılmaktadır (ġekil 5.14). Burada dikkat edilmesi gereken nokta BV_VergiHarc.aspx sayfasının sunum katmanının ilk kısmını oluĢturduğu gerçeğidir. Veri istemcisine gelmeden önce sunum katmanındaki sayfanın http://localhost/BV_VergiHarc.aspx yapılıĢ amacı sunum katmanının sayfasına ikinci eriĢilir. kısmını Bu oluĢturan http://localhost/ VHIstemci_BV_Secim.aspx veri istemcisi sayfasına seçilecek hizmet türünü gösteren bir parametre geçirmektir. Sunum katmanındaki VHIstemci_BV_Secim.aspx sayfası asıl veri istemcisi (tüketicisi) durumunda olan sayfadır. ġekil 5.13 Belediye-VatandaĢ menünün Vergi ve Harçlar alt menüsü 81 ġekil 5.14 Vergi ve Harçlar sayfası (http://localhost/BV_VergiHarc.aspx) Bu sayfada Belediye Vergileri kısımındaki “Emlak Vergisi” seçildiğinde kullanıcı bir sonraki sayfaya BV_VergiHarc_hizmet_no=1 parametre değeriyle yönlendirilir: http://localhost/ VHIstemci_BV_Secim.aspx?BV_VergiHarc_hizmet_no=1 http://localhost/VHIstemci_BV_Secim.aspx sayfası artık sunum katmanındaki veri istemcisi sayfa olup veriyi tüketecek olan sayfadır (ġekil 5.15). 82 ġekil 5.15 Emlak vergisi hesaplanıĢı (VHIstemci_BV_Secim.aspx) Veri istemcisi (tüketicisi) bu sayfada bir değer girilip ilgili vergi türüne tıklandığında bu sayfa veri sağlayıcısının içinde gömülü olduğu VH_BV (Veri Hizmetleri: BelediyedenVatandaĢa) kurgusuna yönelir. Bu kurgu veri istemcisi sayfada çekilmiĢtir. Kurgunun içinde bulunan metot sayesinde gerekli vergi hesaplamaları yapılır ve perde gerisinde duran VH_BV.asmx sayfasının (veri sağlayıcısının) etkimesi bu kurgu vasıtasıyla sağlanır. ġekil 5.16 Web servisinin sonuç döndürümü http://localhost/VH_BV.asmx sayfasında VH_BV web servisinin metotları görülmektedir (ġekil 5.17): 83 ġekil 5.17 Web servisinin metotları 84 5.2 Belediyeden Hastaneye Hizmetler Alt Modülü Bu alt modül belediyenin hastaneye hizmet sağlamakla sorumlu olan modülüdür. Bu modülün bir çok alt modülü olabilir (sosyal güvenlik ile ilgili hizmetler vb.). 5.2.1 Mevcut sistemin durumu Mevcut durumda bir devlet hastanesine gidecek belediye çalıĢanı hastaneye giderken vizite kâğıdını götürmektedir. Bu kâğıdın temelde sağladığı katkı hastanenin belediye çalıĢanının 90 günlük asgari çalıĢma süresini karĢılayıp karĢılamadığını göstermektir. 5.2.2 Mevcut sistemin yetersizlikleri Mevcut süreç eDönüĢümü gerçekleĢtirmek için oldukça önemli ipuçları vermektedir. Sistemde birçok gereksiz iĢ akıĢı vardır. Örneğin, izinde olan bir çalıĢan hastaneye gitmek istediğinde bazı hastaneler tarafından hala vizite kağıdı istenebilmektedir. Böyle bir durumda ilgili çalıĢan izin süresi içinde kendi iĢ yerine uğrama mecburiyeti ile karĢı karĢıya kalmaktadır. 5.2.3 Modellenen sistemin amaçları Modellenen belediyeden hastaneye hizmetler alt modülünde, mevcut sıkıntıları ortadan kaldırmak için çalıĢanın toplam prim ödeme süresini gösteren belediye tarafındaki bir web servisin hastane tarafından eriĢilebilmesi ve çalıĢanın prim ödeme süresi ile ilgili sorgulamaların bu web servis aracılığıyla yapılabilmesi amaçlanmıĢtır. 85 5.2.4 Kritik baĢarı faktörü Modellenen sistemde, belediye tarafındaki ilgili web servisin hastane tarafından belediyenin web sitesine girilmeden doğrudan hastaneni web sitesinden belediye tarafındaki vekil sınıftan yararlanılarak gerçekleĢtirilmesi bir kritik baĢarı faktörüdür. 5.2.5 Alt modülün iĢleyiĢi Bu alt modül VH_BH.asmx web servisindeki ToplamPrimOdemeGunuSayisi metodunu kullanmaktadır. ġekil 5.18 Veri sağlayıcısı VH_BH.asmx web servisindeki metotlar Hastane tarafındaki bir yetkili, http://localhost/VHIstemci_BH_Secim.aspx veri istemcisi sayfasını açarak sorgulamak istediği çalıĢanın TC Kimlik No‟sunu girer (ġekil 5.19) ġekil 5.19 Veri tüketicisi http://localhost/VHIstemci_BH_Secim.aspx sayfası 86 Sorgunun sonucunu verebilmek için web sevis, belediyenin veritabanına bakar. “5.2”deki yapının “5.1”deki yapıdan önemli bir farkı budur. Çünkü buradaki alt modülde artık veri katmanı da iĢin içindedir. Oysaki, “5.1” alt bölümündeki yapıda süreç en nihayet iĢ katmanında sonuçlanıyordu. Web servisi sorgunun sonucunu hastane yetkilisine bildirir (ġekil 5.20). ġekil 5.20 Web servisinin cevabı Burada tanıtılan süreç ile vizite kâğıdının iĢlevselliği tamamen ortadan kalkmaktadır. 5.3 Belediye Veritabanı Belediye veritabanı (belediye.mdb) bütünleĢik sistemin belediye tarafındaki iĢlemleri yürütmekten sorumlu olan veritabanıdır. Bu veritabanına neden olan birim iliĢki diyagramı ve belediye veritabanının iliĢkisel veri modeli aĢağıda verilmektedir (ġekil 5.21, ġekil 5.22). 87 Vatandas_iletisim M 1 Vatandas YöneticiPaneli M 1 1 1 Görevler 1 M Calisan_sgk 1 Calisan 1 1 1 Teklik 1 1 Ġller 1 M Calisan_iletisim M 1 M M OnlineNikah Bordro ġekil 5.21 Belediye veritabanıyla sonuçlanan birim iliĢki diyagramı 88 ġekil 5.22 Normalizasyonu zayıf iliĢkisel veri modeli 89 Veritabanındaki tablolar incelendiğinde; Teklik tablosu ÇalıĢan ve VatandaĢ tablolarının süpertürü olarak iĢlev görmektdir. ġekilde görüldüğü gibi tablolar arasında bire çok ve çoka çok iliĢki vardır: Ġller-ÇalıĢan_ĠletiĢim: Aynı il ietiĢim bilgisine sahip birçok çalıĢan olabilir. Görevler-ÇalıĢan_sgk: Aynı görevde olan birçok çalıĢan olabilir. ÇalıĢan-ÇalıĢan_iletiĢim: Bir çalıĢan birden fazla iletiĢim adresi verebilir. ÇalıĢan-ÇalıĢan_sgk: Bir çalıĢanın SGK bilgileri yalnız bir tanedir ve iliĢki ters yönde de geçerlidir. ÇalıĢan-Yöneticipaneli: Buradaki iliĢkinin bire çok olmasının nedeni aynı çalıĢan için farklı kullanıcı adları tasarlanıp bu çalıĢanın ilgili kullanıcı adı sayesinde sistemin farklı alt modüllerine eriĢebilmesi sağlanabilir. Böylelikle yöneticiler arasında da bir ayrıĢım gerçekleĢtirilebilir. ÇalıĢan-Bordro: ÇalıĢanların ay bazında bordro bilgisi tabloya iĢlendiğinden iliĢkinin bire çok olduğu açıktır. ÇalıĢan-Teklik: Buradaki iliĢki bire birdir. ÇalıĢan tablosu Teklik tablosunda tutulan hizmet yararlanıcılarının belediye çalıĢanlarına bir projeksiyonudur: Teklik |Belediye =ÇalıĢan Teklik-VatandaĢ: Buradaki iliĢki bire birdir. VatandaĢ tablosu Teklik tablosunda tutulan hizmet yararlanıcılarının belediye çalıĢanları olmayanlara bir projeksiyonudur: 90 Teklik | Belediye𝐶 =ÇalıĢan VatandaĢ-VatandaĢ_iletiĢim: Bir vatandaĢ birden fazla iletiĢim adresi verebilir. Teklik-Online Nikâh: Bir kimse (belediye çalıĢanı veya değil) birden fazla kez nikâh baĢvurusu yapabilir. BoĢanma durumları olduğu gibi mevcut evlilik durumundan vazgeçip baĢka bir kimseyle evlenmek için yeniden baĢvurabilir. Bu birim iliĢki diyagramının ürettiği iliĢkisel veritabanı normalizasyon açısından oldukça zayıf kalmaktadır. Teklik, VatandaĢ ve ÇalıĢan tabloları Kullanıcı adlı tek bir tabloda birleĢtirildiğinde ve vatandaĢ ve çalıĢanın iletiĢim bilgileri kullanıcı_iletiĢim adlı tek bir tabloya alındığında normalize edilmiĢ bir yapı elde edilir (ġekil 5.23) 91 ġekil 5.23 Normalize edilmiĢ iliĢkisel veri modeli 92 Bordro tablosu, kurum personeline ait bordro bilgilerinin saklandığı veri dosyasıdır. Tabloda tüm çalıĢanlara ait ay bazında brüt ve net ücretler saklamaktadır. Bordro_sn burada anahtar (primary key) alanıdır. Yani her bordro numarası için bir kayıt söz konusudur. Görevler tablosu, hem belediye içindeki çalıĢanların hem de birleĢik sistemi kullanacak vatandaĢların meslek bilgilerinin tutulduğu tablodur. Gorev_sn bu tablo için anahtar alandır. ÇalıĢan_sgk tablosu, belediye çalıĢalarının Sosyal Güvenlik Kurumu‟na yönelik bilgilerinin tutulduğu tablodur. Bir kiĢi iĢini bırakıp baĢka bir iĢte çalıĢabilir ve sonra tekrar kendi iĢine geri dönebilir. Bu ve buna benzer durumlar için bu tabloda calisan_sgk_sn adlı bir birincil anahtar oluĢturulmuĢtur. Yönetici paneli tablosunda sistem yöneticilerine ait bilgiler tutulmaktadır. Kullanıcı tablosunda sistemin kullanıcılarının (hem belediye çalıĢanı hem de belediye çalıĢanı olmayan) bilgileri tutulmaktadır. Kullanıcı iletiĢim tablosuna sistemin kullanıcılarına yönelik bilgiler tutulmaktadır. Online nikah tablosunda sistemdeki kullanıcılardan online nikah için baĢvuran kullanıcılara ait nikah talep bilgisi tutulmaktadır. 93 6. SONUÇ VE ÖNERĠLER Bu tezde eDevlet dönüĢümünün gerçekleĢtirilmesi adına farklı teknolojiler somut örnekler verilerek iĢlenmiĢtir. Bu farklı teknolojiler farklı eDevlet mimarilerinin ortaya çıkmasına neden olmuĢtur. Ancak bu farklı mimarilerin önemli bir ortak özelliği vardır: eDevlet mimarileri, temel internet standartlarına bağlı hizmet odaklı mimariye doğru geliĢmektedirler [5]. Etkili bir mimari bu temel internet standartlarına bağlı olarak çok farklı tekniklerle gerçekleĢtirilebilir: Bazıları bu tez kapsamında ayrıntılı olarak verilen temel internet standartları özetlenirse [5]: TCP/IP (Transmission Control Protocol/Internet Protocol): iki makine arasında internet ortamında bilgi paketlerinin değiĢimine imkân veren temel iletiĢim protokoleridir. HTTP (HyperText Transfer Protocol): World Wide Web‟in üzerine kurulduğu temel protokoldür. HTML (HyperText Markup Language): World Wide Web‟te tarayıcıda bilginin nasıl gösterileceğini tanımlamakta kullanılan dildir. XML (eXtensible Markup Language): Ġki veya daha fazla uygulama veya sistem arasında yapılandırılmıĢ bilgi değiĢimini kolaylaĢtıran bir dildir. SOAP (Simple Object Access Protocol): Bir sistem üzerinde baĢka bir sistem tarafından hizmet yürütümünü sağlayan XML tabanlı bir protokoldür. WS* (Web Services*): Ġnternet altyapısı üzerinde sürdürülebilir dağıtık uygulamalar yapılmasını kolaylaĢtıran SOAP ve XML üzerine kurulu hizmetler kümesidir. 94 Birlikte çalıĢabilirlik ekolüne Milli Prodüktivite Merkezi (MPM) perspektifinden bakıldığında, araĢtırma projeleri bir web servisi aracılığıyla sunulabilir. Bunun ötesinde KOBĠ‟lerle ilgili veritabanı oluĢturulmasında web servisleri tüketicileri tasarlanabilir. Ayrıca, Merkez, web arayüzüyle verdiği hizmetlerin bazılarının veriliĢ biçimini değiĢtirebilir ve web servislerin kullanıldığı platformları iĢlevlendirebilir. MPM, web servisleriyle ilgili geliĢmeleri takip ederken aĢağıdaki sonuç paragrafına odaklandığında yatırım dönüĢünü daha kolay hale getirebilir: eDevlet mimarisinin gerçekleĢtirilmesinde bahsi geçen hizmet odaklı mimarinin nasıl gerçekleĢtirileceği 4. Bölüm‟de ayrıntılı olarak iĢlenmiĢtir. DeğiĢen teknolojinin değiĢim yapısının nasıl olduğunu ve standartların oluĢum sürecinin döngüsel yapısını özetleyen “3.1” alt bölümünün sonuç paragrafı göz önünde bulundurularak; eldeki mevcut sistemlerin Ģu an itibarıyla yeni olanların bile değiĢim karĢısında mirasçı sistem durumuna düĢeceği göz ardı edilmemelidir. Bu noktadan hareketle, eDevlet çatısı hizmet odaklı yapılandırılırken kurgulanan çatının yıllar itibarıyla atıl duruma düĢmemesi için ortaya çıkan yeni standartlara uygun yapılanmaya gidilmesi zorunluluğu bileĢenlerinin ortadadır. Ülkemizde sonuçlandırılma de eKapı aĢamasına gibi eDevlet yaklaĢıldığı çatısının bugünlerde, bileĢenlerin sürdürülebilir yapılandırılması “yeni ortaya çıkan standartların” yakın bir biçimde takibinden geçmekte olduğu unutulmamalıdır. 95 KAYNAKÇA [1] Arifoğlu, A., 2004, “eDönüĢüm: Yol Haritası, Dünya, Türkiye”, SAS BiliĢim Yayınları, 1. Basım, Ankara, s.3-6. [2] Institute of Electrical and Electronics Engineers, 1990, “IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries”, New York, NY. [3] Ravindran, K., “Office Business Application Reference Architecture Pack (OBA RAP): eForms Processing in the Public Sector: Business Enablement” (http://www.microsoft.com) [4] Bruno, C., 2007, “Microsoft Connected Government Framework”, BiliĢim‟07 Etkinlikleri, Ankara. [5] Ramusack, R., “eGovernment Services Foundation Interoperability and the GAP Principles”, (http://css.escwa.org.lb/ictd/19dec06/S62.ppt) [6] Butler, J. and Caudill, T., 2002, “ASP NET Database Programming Weekend Crash Course”, Hungry Minds, Inc., New York. [7] Irek, C., “Realizing a Service-Oriented Architecture with .NET”, (http://www.15seconds.com/issue/031215.htm) [8] Learn About Service Oriented Architecture (SOA) (http://www.microsoft.com/biztalk/solutions/soa/overview.mspx) [9] Gökçen, H., 2007, “Yönetim Bilgi Sistemleri”, Palme Yayımcılık, Ankara. [10] Erten, M., 2007, “eKapı‟nın tanımı, dünyadaki uygulamaların standartları ve benzer örnekleri”, BiliĢim‟07 Etkinlikleri, Ankara. [11] Tanrıverdi, C., (Türk Telekom) “eDönüĢüme Türk Telekom‟un Katkıları”, BiliĢim‟07 Etkinlikleri, Ankara. [12] Kaplan, A., (Türksat) “eKapı ve Türksat”, BiliĢim‟07 Etkinlikleri, Ankara. [13] Tabak, H., (OYTEK) “eDevlet Kapısı”, BiliĢim‟07 Etkinlikleri, Ankara. 96 EK 1: Önerilen Modelin Kaynak Kodları BELEDĠYEDEN HASTANEYE YÖNELĠK HĠZMETLER MOLÜLÜ: [VH_BH Web Servisi (Veri Sağlayıcısı): VH_BH.asmx] <%@ WebService Language="VB" class="VH_BH" %> Imports System Imports System.Web.Services Imports System.Data Imports System.Data.OleDb Imports System.Data.OleDbClient <WebService(Namespace:="VH_BHVB")> Public Class VH_BH : Inherits WebService <WebMethod()> Public Function GetTitleAuthors() As DataSet Dim MyConnection As OleDbConnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=d:\edevlet\belediye.mdb") Dim MyCommand1 As OleDbDataAdapter = New OleDbDataAdapter("select * from calisan_sgk", MyConnection) Dim MyCommand2 As OleDbDataAdapter = New OleDbDataAdapter("select * from calisan", MyConnection) Dim DS As New DataSet MyCommand1.Fill(DS, "calisan_sgk") MyCommand2.Fill(DS, "calisan") Return DS End Function <WebMethod()> Public Function PutTitleAuthors(ByVal DS As DataSet) As Integer Return DS.Tables(0).Rows.Count End Function <WebMethod()> Public Function CalisanSNdenSureGetir(ByVal clsn As Integer) As DataSet Dim oConn As New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=d:\edevlet\belediye.mdb") Dim oCmd As New OleDbDataAdapter("SELECT * FROM calisan_sgk WHERE [calisan_sn]=?", oConn) Dim oParam As New OleDbParameter("stor_id", OleDbType.Integer) oParam.Value = clsn oCmd.SelectCommand.Parameters.Add(oParam) Dim oDS As New DataSet() 97 oCmd.Fill(oDS, "calisan_sgk") Return oDS End Function End Class [Veri Ġstemcisi (Tüketicisi): VHIstemci_BH_Secim.aspx] <%@ Page Language="VB" debug="true"%> <%@ Assembly Name="VH_BH" %> <%@ Import Namespace="VH_BHVB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script language="VB" runat="server"> Sub tiklandiginda(ByVal Sender As Object, ByVal E As EventArgs) Dim oDS As DataSet Dim Hizmet As New VH_BHVB.VH_BH Dim k As String k = Operand1.Text oDS = Hizmet.ToplamPrimOdemeGunuSayisi(k) dgMembers.DataSource = oDS.Tables(0).DefaultView dgMembers.DataBind() End Sub </script> <html> <head> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Music</title></head> 98 <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye.js"></script> </div> <div align="center"> <form id="Form2" runat="server"> <table border="2"> <tr> <td> <br /> <strong> Toplam Prim Ödeme Günü Sayısı Kontrolü</strong><br /> <br /> TC Kimlik No:<asp:TextBox id="Operand1" runat="server"/><br /> <input type="submit" id="Mesken" value="Denetle" OnServerClick="tiklandiginda" runat="server"> <asp:DataGrid id="dgMembers" BorderWidth="1" GridLines="both" runat="server" /> </td> </tr> </table> <!-- <asp:Label id="Sonuc" runat="server"/> --> </form> </div> </body> </html> BELEDĠYEDEN VATANDAġA YÖNELĠK HĠZMETLER MOLÜLÜ: [VH_BV Web Servisi (Veri Sağlayıcısı): VH_BV.asmx] <%@ WebService Language="VB" Class="VH_BV" %> Imports System Imports System.Data Imports System.Data.OleDb 99 Imports System.Web.Services <WebService(Namespace:="VH_BVVB")> Public Class VH_BV : Inherits WebService <WebMethod()> Public Function Emlak_Mesken_Vergisi_Hesapla(ByVal A As System.Single) As System.Single Return A * 0.001 End Function <WebMethod()> Public Function Emlak_Isyeri_Vergisi_Hesapla(ByVal A As System.Single) As System.Single Return A * 0.002 End Function <WebMethod()> Public Function Emlak_Arsa_Vergisi_Hesapla(ByVal A As System.Single) As System.Single Return A * 0.003 End Function <WebMethod()> Public Function Emlak_Arazi_Vergisi_Hesapla(ByVal A As System.Single) As System.Single Return A * 0.001 End Function End Class [Veri Ġstemcisi (Tüketicisi): VHIstemci_BV_Secim.aspx] <%@ Page Language="VB"%> <%@ Assembly Name="VH_BV" %> <%@ Import Namespace="VH_BVVB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDbClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head id="Head1" runat="server"> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <script language="VB" runat="server"> Dim Op1 As Single = 0 Dim Op2 As Single = 0 100 Public Sub Submit_Click(Sender As Object, E As EventArgs) Try Op1 = Single.Parse(Operand1.Text) ' Op2 = Single.Parse(Operand2.Text) Catch Exp As Exception ' Ignored End Try Dim Hizmet As VH_BVVB.VH_BV = New VH_BVVB.VH_BV() Select (CType(sender,Control).ID) Case "Mesken" Sonuc.Text = "<b>Sonuç</b> = " & Hizmet.Emlak_Mesken_Vergisi_Hesapla(Op1).ToString() Case "Isyeri" Sonuc.Text = "<b>Sonuç</b> = " & Hizmet.Emlak_Isyeri_Vergisi_Hesapla(Op1).ToString() Case "Arsa" Sonuc.Text = "<b>Sonuç</b> = " & Hizmet.Emlak_Arsa_Vergisi_Hesapla(Op1).ToString() Case "Arazi" Sonuc.Text = "<b>Sonuç</b> = " & Hizmet.Emlak_Arazi_Vergisi_Hesapla(Op1).ToString() End Select End Sub </script> <title>Ödeme Hizmetleri</title> </head> <body style="font: 10pt verdana; color: #000000; text-align: center;"> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye.js"></script> </div> <br /> <strong>Web Servisleriyle Veri EriĢimi: Veri Ġstemcisi (Tüketicisi) </strong> <br /> <form id="Form1" runat="server"> <% Dim BV_VergiHarc_hizmet_no As Integer BV_VergiHarc_hizmet_no = Request.QueryString("BV_VergiHarc_hizmet_no") %> 101 <%Select Case BV_VergiHarc_hizmet_no%> <% Case 1%> 01: Emlak Vergisi <div> Lütfen emlak vergisi matrahınızı girip, ilgili emlak vergisi türüne tıklayınız:<br /> <br><asp:TextBox id="Operand1" Text="15" runat="server"/><br> <!-- 1. Sayi <br><asp:TextBox id="Operand2" Text="15" runat="server"/><br> --> <input type="submit" id="Mesken" value="Mesken" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Isyeri" value="Isyeri" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Arsa" value="Arsa" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Arazi" value="Arazi" OnServerClick="Submit_Click" runat="server"> <p> <asp:Label id="Sonuc" runat="server"/> </div> <% Case 2%> 02: Ġlan ve Reklam Vergisi <div> 1. Sayi <br><asp:TextBox id="TextBox1" Text="15" runat="server"/><br> 2. Sayi<br><asp:TextBox id="TextBox2" Text="5" runat="server"/><p> <input type="submit" id="Submit1" value="Add" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Submit2" value="Subtract" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Submit3" value="Multiply" OnServerClick="Submit_Click" runat="server"> <input type="submit" id="Submit4" value="Divide" OnServerClick="Submit_Click" runat="server"> <p> <asp:Label id="Label1" runat="server"/> </div> <%End Select %> </form></body></html> ÜYELĠK MODÜLÜ: [default.aspx] <%@ Page Explicit="True" Language="VB" Debug="True" validateRequest="false" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script language="VB" runat="Server"> 102 Sub Page_Load() KullaniciDogrulama.Text = User.Identity.Name End Sub Sub CikisYap(Src As Object, E As EventArgs) FormsAuthentication.SignOut() Response.Redirect("giris.aspx") End Sub </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <script type="text/javascript" id="Script2"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Uyelik Modulu</title> </head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye_BelCal.js"></script> </div> <div align="center"> <br /> <table border="1" cellpadding="0" cellspacing="0"> <form runat="server"> <tr> <td><font face="Tahoma" size="2">Belediye ÇalıĢanı: <font color="#0000CC"> 103 <asp:Label Runat="server" ID="KullaniciDogrulama"></asp:Label></font> Özel Alanı. <br /><!--(bu sayfadaki kod diğer sayfalar için kullanılabilir)--> </font></td> <td> <a href="logout.aspx"> <asp:LinkButton Runat="server" OnClick="CikisYap" ID="linkLogout">ÇıkıĢ</asp:LinkButton> </a></td> </tr> </form> </table> </div> </body> </html> [giris.aspx] <%@ Page Explicit="True" Language="VB" Debug="True" validateRequest="false" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script language="VB" runat="Server"> Sub btngiris_OnClick(Src As Object, E As EventArgs) If Page.IsValid Then Dim Adresim As String Dim Baglantim As OleDbConnection Dim SQLim As String Dim KayitKumem As String Dim Sayacim As OleDbCommand Dim Sifrem As OleDbCommand Dim KullaniciSayisi As Integer Dim strSifre As String If Request.QueryString("ReturnUrl") = "" Then Adresim = "default.aspx" Else Adresim = Request.QueryString("ReturnUrl") End If SQLim = "SELECT COUNT(*) FROM teklik Where kullanici_adi = '" & txtkullanici_adi.Text & "'" 104 KayitKumem = "SELECT sifre FROM teklik Where kullanici_adi = '" & txtkullanici_adi.Text & "'" Baglantim = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("/belediye.mdb") & ";") Sayacim = New OleDbCommand(SQLim, Baglantim) Sifrem = New OleDbCommand(KayitKumem, Baglantim) Baglantim.Open() KullaniciSayisi = Sayacim.ExecuteScalar() strSifre = Sifrem.ExecuteScalar() Baglantim.Close() If KullaniciSayisi > 0 Then If strSifre = txtsifre.Text Then FormsAuthentication.SetAuthCookie(txtkullanici_adi.Text, True) Response.Redirect(Adresim) Else lblMsg.Text = "Geçersiz ġifre" End If Else lblMsg.Text = "Geçersiz K.Adı" End If Else Exit Sub End If End Sub </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html" lang="tr" /> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else 105 document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title> eBELEDĠYE & eSAĞLIK ENTEGRASYONU </title> </head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye.js"></script> </div> <div align="center"> <form id="Form1" runat="server"> <table cellpadding="0" cellspacing="2" width="100" height="50" class="tblMain" border="2"> <tr> <td height="20" align="center" width="80" colspan="2" style="text-align: right"> <asp:Label CssClass="Treb10Blue" Runat="server" ID="lblMsg">Üye Girişi</asp:Label> </td> </tr> <tr> <td height="20" width="68"><font face="Tahoma" size="2"> <label for="txtkullanici_adi">K.Adı:</label></font></td> <td height="20"> <asp:TextBox ID="txtkullanici_adi" CssClass="Treb10Blue" Runat="server" width="80"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator27" Runat="server" ErrorMessage="*" Display="Dynamic" ControlToValidate="txtkullanici_adi"></asp:RequiredFieldValidator> </td> </tr> <tr> <td height="20" width="68"><font face="Tahoma" size="2"> <label for="txtsifre">ġifre:</label></font></td> <td height="20"> <asp:TextBox ID="txtsifre" CssClass="Treb10Blue" Runat="server" TextMode="Password" width="80"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator26" Runat="server" ErrorMessage="*" Display="Dynamic" ControlToValidate="txtsifre"></asp:RequiredFieldValidator> </td> 106 </tr> <tr> <td height="20" align="right" width="74"></td> <td height="20" align="center" width="80"> <asp:Button ID="btngiris" Runat="server" CssClass="button" Text="Gir" OnClick="btngiris_OnClick"></asp:Button> </td> </tr> </table> </form> </div> <div align="center"> <a href="kayit.aspx">Kayıt Olunuz!</a> <br> <font face="Tahoma" size="2">GiriĢ yaparsanız <a href="default.aspx">bu</a> sayfaya tekrar yönlendirilmezsiniz!</font></div> </body> </html> [kayit.aspx] <%@ Page Explicit="True" Language="VB" Debug="True" validateRequest="false" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script runat="server" language="VB"> Function Fixquotes(thesqlenemy as String) Fixquotes = Replace(thesqlenemy, "'" , "''") End Function Sub btnkayit_Onclick(Src As Object, E As EventArgs) If page.IsValid Then Dim Baglantim As IDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("/belediye.mdb") & ";") Dim chkkullanici_adi As IDbCommand Dim atanan_teklik_sn_denetimi Dim atanan_vatandas_sn_denetimi Dim atanan_vat_ilt_sn_denetimi As IDbCommand As IDbCommand As IDbCommand 107 Dim teklikten_vatandasa_denetimi As IDbCommand Dim teklikten_vatandas_iletisime_denetimi As IDbCommand Dim teklik_doldurumu As IDbCommand Dim vatandas_doldurumu As IDbCommand Dim vatandas_iletisim_doldurumu As IDbCommand Dim strSQL1 As String Dim strSQL2 As String Dim strSQL3 As String Dim strSQL4 As String Dim strSQL5 As String Dim strSQL6 As String Dim strSQL7 As String Dim strSQL8 As String Dim strSQL9 As String Dim atanan_teklik_sn As Integer Dim atanan_vatandas_sn As Integer Dim atanan_vat_ilt_sn As Integer Dim strUserCount As Integer strSQL1 = "SELECT COUNT(*) FROM [teklik] WHERE [kullanici_adi]='" & Fixquotes(txtkullanici_adi.Text) & "'" strSQL2 = "INSERT INTO [teklik] ([TCKimlikNo], [bel_calisani_mi] , [kullanici_adi], [sifre])" strSQL2 = strSQL2 & " VALUES " strSQL2 = strSQL2 & "('" & Fixquotes(txtTCKimlikNo.Text) & "', '" & Fixquotes(txtBelCal.Text) & "', '" & Fixquotes(txtkullanici_adi.Text) & "', '" & Fixquotes(txtsifre.Text) & "');" strSQL3 = "INSERT INTO [vatandas] ([ad], [soyad] , [gorevi])" strSQL3 = strSQL3 & " VALUES " strSQL3 = strSQL3 & "('" & Fixquotes(txtad.Text) & "', '" & Fixquotes(txtsoyad.Text) & "', '" & Fixquotes(txtgorev.Text)& "');" strSQL4 = "INSERT INTO [vatandas_iletisim] ([telno], [adres] , [semt], [postakod], [il], [eposta])" strSQL4 = strSQL4 & " VALUES " strSQL4 = strSQL4 & "('" & Fixquotes(txttelefon.Text) & "', '" & Fixquotes(txtadres.Text) & "', '" & Fixquotes(txtsemt.Text)& "', '" strSQL4 = strSQL4 & Fixquotes(txtpostakodu.Text) & "', '" & Fixquotes(txtil.Text) & "', '" & Fixquotes(txteposta.Text) & "');" ' vatandas tablosundan üretilen vatandas_sn‟yi bul strSQL5 = "SELECT max(vatandas_sn) FROM [vatandas]" ' teklik tablosundan üretilecek teklik_sn‟yi bulmak için strSQL6 = "SELECT max(teklik_sn) FROM [teklik] " 108 ' vatandas_iletisim tablosundan üretilen vat_ilt_sn‟yi bul strSQL8 = "SELECT max(vat_ilt_sn) FROM [vatandas_iletisim]" Baglantim.Open() 'Veritabanından bir alandan bir değer getirmek için aĢağıdaki iki satır güzel mantık veriyor chkkullanici_adi = New OleDbCommand(strSQL1, Baglantim) strUserCount = chkkullanici_adi.ExecuteScalar() If strUserCount = 0 Then 'teklik tablosunu doldur teklik_doldurumu = New OleDbCommand(strSQL2, Baglantim) teklik_doldurumu.ExecuteNonQuery() ' teklik tablosundan üretilen teklik_sn‟yi bul atanan_teklik_sn_denetimi = New OleDbCommand(strSQL6, Baglantim) atanan_teklik_sn = atanan_teklik_sn_denetimi.ExecuteScalar() ' vatandas tablosunu doldur vatandas_doldurumu = New OleDbCommand(strSQL3,Baglantim) vatandas_doldurumu.ExecuteNonQuery() ' vatandas tablosundan üretilen vatandas_sn‟yi bul atanan_vatandas_sn_denetimi = New OleDbCommand(strSQL5, Baglantim) atanan_vatandas_sn = atanan_vatandas_sn_denetimi.ExecuteScalar() ' Vatandas tablosunda teklik_sn‟ye teklik tablosunda üretilen teklik_sn‟yi koy strSQL7= "UPDATE [vatandas] SET [teklik_sn]= " & atanan_teklik_sn & " WHERE vatandas_sn = "& atanan_vatandas_sn &";" 'Vatandas tablosunda teklik_sn yerine teklik tablosundan üretilen teklik_sn yi koy teklikten_vatandasa_denetimi = New OleDbCommand(strSQL7, Baglantim) teklikten_vatandasa_denetimi.ExecuteNonQuery() 'vatandas iletisim tablosunu doldur vatandas_iletisim_doldurumu = New OleDbCommand(strSQL4,Baglantim) vatandas_iletisim_doldurumu.ExecuteNonQuery() ' vatandas_iletisim tablosundan üretilen vat_ilt_sn‟yi bul atanan_vat_ilt_sn_denetimi = New OleDbCommand(strSQL8, Baglantim) atanan_vat_ilt_sn = atanan_vat_ilt_sn_denetimi.ExecuteScalar() ' Vatandas_iletisim tablosunda teklik_sn‟ye teklik tablosunda üretilen teklik_sn‟yi koy strSQL9= "UPDATE [vatandas_iletisim] SET [teklik_sn]= " & atanan_teklik_sn & " WHERE vat_ilt_sn = "& atanan_vat_ilt_sn &";" 'Vatandas_iletisim tablosunda teklik_sn yerine teklik tablosundan üretilen teklik_sn yi koy teklikten_vatandas_iletisime_denetimi = New OleDbCommand(strSQL9, Baglantim) teklikten_vatandas_iletisime_denetimi.ExecuteNonQuery() 109 Baglantim.Close Response.Redirect("giris.aspx") Else lblMsg.Text = "Böyle bir kullanıcı adı zaten var. Lütfen baĢka bir kullanıcı adı seçiniz." End If Baglantim.Close() End If End Sub </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Kayıt Sayfası</title> </head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/eBelediye.js"></script> </div> <form runat="server" id="Form1"> <div align="center"> <table cellpadding="0" cellspacing="2" height="80" class="tblMain" style="width: 364px" border="2" id="TABLE1" onclick="return TABLE1_onclick()"> <tr> <td height="25" align="center" width="400" colspan="2" style="text-align: right"> 110 <asp:Label CssClass="Treb10Blue" ID="lblMsg" Runat="Server">Üyelik Formu</asp:Label> <span style="font-size: 8pt; font-family: Arial"><em>"<span style="color: #ff3333">*</span>":zorunlu alanlar</em></span></td> </tr> <tr> <td height="20" width="129"><font face="Tahoma" size="2"> <label for="txtkullanici_adi"> <span style="font-size: 8pt">Kullanıcı Adı <span style="color: #ff3333; font-family: Arial"> <strong>*</strong></span> :</span></label></font></td> <td height="20" width="100"> <asp:TextBox width="120" ID="txtkullanici_adi" CssClass="Treb10Blue" Runat="server" Font-Names="Arial" FontSize="8pt"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtkullanici_adi" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator><span style="color: #ff3333"></span></td> </tr> <tr> <td height="20" width="100"><font face="Tahoma" size="2"> <label for="txtsifre"> <span style="font-size: 8pt; font-family: Arial;">Şifre <span style="color: #ff3333"> <strong>*</strong> </span>:</span></label></font></td> <td height="20" width="80"> <asp:TextBox width="120" ID="txtsifre" CssClass="Treb10Blue" Runat="server" TextMode="password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtsifre" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator><span style="color: #ff3333"></span></td> </tr> <tr> <td height="20" width="129"><font face="Tahoma" size="2"> <label for="txtTCKimlikNo"> <span style="font-size: 10pt"><span style="font-size: 8pt; font-family: Arial">TCKimlikNo <span style="color: #ff3333"><strong>*</strong></span></span>:</span></label></font></td> <td height="20" width="100"> <asp:TextBox width="120" ID="txtTCKimlikNo" CssClass="Treb10Blue" Runat="server" MaxLength="11"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtTCKimlikNo" 111 Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator></td> </tr> <tr> <td colspan="2" style="height: 18px; text-align: center"> <span style="font-size: 8pt; font-family: Arial">Çalışılan Kurum (e veya h girilir):</span></td> </tr> <tr> <td colspan="2" style="height: 18px; text-align: center"> <span style="font-size: 8pt"><span style="font-family: Arial">Belediye(e/h):</span><span style="font-family: Tahoma"> <strong> </strong></span></span> <asp:TextBox width="29" ID="txtBelCal" runat="server" CssClass="Treb10Blue" MaxLength="1"></asp:TextBox> <span style="font-family: Arial"> </span> <label for="txtHasCan"><span style="font-size: 8pt; font-family: Tahoma"><span style="font-family: Arial">Hastane</span>(e/h): <strong> </strong><asp:TextBox ID="txtHasCal" runat="server" CssClass="Treb10Blue" Width="29px" MaxLength="1"></asp:TextBox></span></label></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial">Adı <span style="color: #ff3333"> *</span>:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtad" runat="server" CssClass="Treb10Blue" Font-Names="Arial" Font-Size="8pt"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtad" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial">Soyadı <span style="color: #ff3333"> *</span>:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtsoyad" runat="server" CssClass="Treb10Blue" Font-Names="Arial" Font-Size="8pt"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="txtsoyad" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator></td> 112 </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial"> Görevi:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtgorev" runat="server" CssClass="Treb10Blue" Font-Names="Arial" FontSize="8pt"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial"> Tel. No.:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txttelefon" runat="server" CssClass="Treb10Blue" Font-Names="Arial" FontSize="8pt"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial"> Adres:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtadres" runat="server" CssClass="Treb10Blue" Font-Names="Arial" FontSize="8pt"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial"> Semt:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtsemt" runat="server" CssClass="Treb10Blue" Font-Names="Arial" FontSize="8pt"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> 113 <span style="font-size: 8pt; font-family: Arial"> Posta Kodu:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtpostakodu" runat="server" CssClass="Treb10Blue" Font-Names="Arial" Font-Size="8pt" MaxLength="6"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial"> İl:</span></td> <td style="height: 18px" width="100"> <asp:TextBox width="120" ID="txtil" runat="server" CssClass="Treb10Blue" Font-Names="Arial" Font-Size="8pt"></asp:TextBox></td> </tr> <tr> <td style="height: 18px" width="100"> <span style="font-size: 8pt; font-family: Arial">ePosta <span style="color: #ff3333"> *</span></span><span style="font-size: 10pt; font-family: Tahoma">:</span></td> <td style="height: 18px" width="100"> <asp:TextBox ID="txteposta" width="120" CssClass="Treb10Blue" Runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txteposta" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator15" ControlToValidate="txteposta" ValidationExpression=".*@.*\..*" ErrorMessage="*" Display="Dynamic" Runat="server"></asp:RegularExpressionValidator></td> </tr> <tr> <td colspan="2" height="20" style="text-align: center"> <asp:Button ID="btnkayit" Runat="server" CssClass="button" Text="Kaydol" OnClick="btnkayit_OnClick" Font-Names="Arial" Font-Size="8pt"></asp:Button> </td> </tr> </table> </div> <div align="center"> <font face="Tahoma" size="2"><span style="font-size: 8pt; font-family: Arial">Hesabınızı hatırladınız mı? </span> 114 <a href="giris.aspx"><span style="font-size: 8pt; font-family: Arial"> Buradan GiriĢ Yapınız!</span></a></font></div> </form> </body> </html> [web.config] <?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <customErrors mode="Off"></customErrors> <compilation debug="true"/> <authentication mode="Forms"> <forms name="DogrulamaFormu" loginUrl="giris.aspx"/> </authentication> </system.web> <location path="default.aspx"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location> </configuration> YÖNETĠCĠ PANELĠ MODÜLÜ: [Default.aspx] <%@ Page Language="VB" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> 115 <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Birlesik Sistemin Belediye Yönetici Paneli</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body style="text-align: center"> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/yoneticipaneli_bel.js"></script> </div> <strong><span style="font-family: Arial"> <br /> <br /> Belediye Tarafı Yönetici Paneli</span></strong> <br /> <br /> Bu panel ile üyelerin bilgilerini doğrulama ve sisteme yanlış üyelik bilgileriyle girenlerin silinmesi gibi yönetim işlemlerini gerçekleştirilebilir. </body> </html> [belediye_calisani_onayla.aspx] <%@ Page Language="VB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <%@ Import Namespace="System.Data.OleDbClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script language="VB" runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) 116 Dim Baglantim As OleDbConnection Dim Komutum1 As OleDbCommand Dim Komutum2 As OleDbCommand Dim VeriOkuyucum As OleDbDataReader Dim strOnaylanacakKayitlar As String Dim arrSilinecekKayitlar As Array Dim I As Integer ' OleDb bağlantı dizgisiyle bağlantı nesnesi oluĢtur Baglantim = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + Server.MapPath("\belediye.mdb")) ' Veritabanı bağlantısını aç Baglantim.Open() ' Komut nesnesi oluĢtur Komutum1 = New OleDbCommand() Komutum1.Connection = Baglantim ' Komut nesnesi oluĢtur Komutum2 = New OleDbCommand() Komutum2.Connection = Baglantim ' Onaylanacak kayıt olup olmadığını görelim. strOnaylanacakKayitlar = Request.Form("chkOnayla") If strOnaylanacakKayitlar <> "" Then ' Tablomuza SQL injection atak olmadığından emin olalım arrSilinecekKayitlar = Split(strOnaylanacakKayitlar, ",") For I = LBound(arrSilinecekKayitlar) To UBound(arrSilinecekKayitlar) If Not IsNumeric(arrSilinecekKayitlar(I)) Then strOnaylanacakKayitlar = "0" Exit For End If Next I Komutum1.CommandText = "update teklik set bel_calisani_onay ='e' WHERE teklik_sn IN (" & strOnaylanacakKayitlar & ");" 'Response.Write(Komutum1.CommandText) Komutum1.ExecuteNonQuery() lblRecordsDeleted.Text = "Onaylanan Kayıtların teklik_sn'ları: " & strOnaylanacakKayitlar Else lblRecordsDeleted.Text = Nothing End If 117 ' Tabloda geriye kalan satırları çekip gösteriyoruz Komutum1.CommandText = "SELECT * FROM teklik ;" Komutum2.CommandText = "SELECT * FROM vatandas ;" ' ExecuteReader metoduyla sorguyu çalıĢtırıp sonuçları döndürelim VeriOkuyucum = Komutum1.ExecuteReader(CommandBehavior.CloseConnection) 'DataGridimize verileri veri bağlayalım (DataBind) dgRecKill.DataSource = VeriOkuyucum dgRecKill.DataBind() ' Veriokuyucu ve bağlantının kapatalıĢı VeriOkuyucum.Close() Baglantim.Close() End Sub </script> <html> <head> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Belediye ÇalıĢanı Onayla</title> </head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/yoneticipaneli_bel.js"></script> </div> <form runat="server" onsubmit="return(confirm('Seçili kayıtları gerçekten onaylamak istiyor musunuz?'));"> <p> <asp:Label id="lblRecordsDeleted" runat="server" /> </p> 118 <p style="text-align: center"> <asp:DataGrid id="dgRecKill" runat="server" EnableViewState = "False" BorderWidth = "1" CellSpacing = "2" CellPadding = "2" HeaderStyle-Font-Bold = "True" AutoGenerateColumns = "False" ShowFooter = "True" Font-Size="Smaller" > <Columns> <asp:BoundColumn HeaderText="teklik sn" DataField="teklik_sn" /> <asp:BoundColumn HeaderText="TC Kimlik No" DataField="TCKimlikNo" /> <asp:BoundColumn HeaderText="bel calisani mi" DataField="bel_calisani_mi" /> <asp:BoundColumn HeaderText="bel calisani onay" DataField="bel_calisani_onay" /> <asp:BoundColumn HeaderText="kullanici adi" DataField="kullanici_adi" /> <asp:BoundColumn HeaderText="sifre" DataField="sifre" /> <asp:TemplateColumn HeaderText="Onayla?"> <ItemTemplate> <input type="checkbox" name="chkOnayla" value="<%# DataBinder.Eval(Container.DataItem, "teklik_sn") %>"> </ItemTemplate> <FooterTemplate> <input type="submit" value="Onayla!"> </FooterTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateColumn> </Columns> <HeaderStyle Font-Bold="True" /> </asp:DataGrid> </p> </form></body></html> gereksiz_kullanici_sil.aspx <%@ Page Language="VB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <%@ Import Namespace="System.Data.OleDbClient" %> <script language="VB" runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) Dim Baglantim As OleDbConnection Dim Komutum1 As OleDbCommand Dim Komutum2 As OleDbCommand 119 Dim VeriOkuyucum As OleDbDataReader Dim strSilinecekKayitlar As String Dim arrSilinecekKayitlar As Array Dim I As Integer ' OleDb bağlantı dizgisiyle bağlantı nesnesi oluĢtur Baglantim = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + Server.MapPath("\belediye.mdb")) ' Veritabanı bağlantısını aç Baglantim.Open() ' Komut nesnesi oluĢtur Komutum1 = New OleDbCommand() Komutum1.Connection = Baglantim ' Komut nesnesi oluĢtur Komutum2 = New OleDbCommand() Komutum2.Connection = Baglantim ' Silinecek kayıt olup olmadığını görelim. strSilinecekKayitlar = Request.Form("chkDelete") If strSilinecekKayitlar <> "" Then ' Tablomuza SQL injection atak olmadığından emin olalım arrSilinecekKayitlar = Split(strSilinecekKayitlar, ",") For I = LBound(arrSilinecekKayitlar) To UBound(arrSilinecekKayitlar) If Not IsNumeric(arrSilinecekKayitlar(I)) Then strSilinecekKayitlar = "0" Exit For End If Next I Komutum1.CommandText = "DELETE FROM teklik WHERE teklik_sn IN (" & strSilinecekKayitlar & ");" 'Response.Write(Komutum1.CommandText) Komutum1.ExecuteNonQuery() Komutum2.CommandText = "DELETE FROM vatandas WHERE teklik_sn IN (" & strSilinecekKayitlar & ");" Komutum2.ExecuteNonQuery() lblRecordsDeleted.Text = "Silinen Kayıtların teklik_sn'ları: " & strSilinecekKayitlar Else lblRecordsDeleted.Text = Nothing End If ' Tabloda geriye kalan satırları çekip gösteriyoruz 120 Komutum1.CommandText = "SELECT * FROM teklik ;" Komutum2.CommandText = "SELECT * FROM vatandas ;" ' ExecuteReader metoduyla sorguyu çalıĢtırıp sonuçları döndürelim VeriOkuyucum = Komutum1.ExecuteReader(CommandBehavior.CloseConnection) 'DataGridimize verileri veri bağlayalım (DataBind) dgRecKill.DataSource = VeriOkuyucum dgRecKill.DataBind() ' Veriokuyucu ve bağlantının kapatalıĢı VeriOkuyucum.Close() Baglantim.Close() End Sub </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <script type="text/javascript" id="sothink_dhtmlmenu"> <!-st_siteroot="file:///D|/edevlet"; st_jspath="/js/stmenu.js"; if(!window.location.href.indexOf("file:") && st_jspath.charAt(0)=="/") document.write('<script type="text/javascript" src="'+st_siteroot+st_jspath+'"><\/script>'); else document.write('<script type="text/javascript" src="'+st_jspath+'"><\/script>'); //--> </script> <title>Veritabanı Gereksiz Kullanıcı Silimi</title> </head> <body> <div style="text-align: center"> <script type="text/javascript" language="JavaScript1.2" src="/js/stmenu.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/js/yoneticipaneli_bel.js"></script> </div> <form runat="server" onsubmit="return(confirm('Seçili kayıtları gerçekten silmek istiyor musunuz?'));"> <p> <asp:Label id="lblRecordsDeleted" runat="server" /> 121 </p> <p style="text-align: center"> <asp:DataGrid id="dgRecKill" runat="server" EnableViewState = "False" BorderWidth = "1" CellSpacing = "2" CellPadding = "2" HeaderStyle-Font-Bold = "True" AutoGenerateColumns = "False" ShowFooter = "True" Font-Size="Smaller"> <Columns> <asp:BoundColumn HeaderText="teklik sn" DataField="teklik_sn" /> <asp:BoundColumn HeaderText="TC Kimlik No" DataField="TCKimlikNo" /> <asp:BoundColumn HeaderText="bel calisani mi" DataField="bel_calisani_mi" /> <asp:BoundColumn HeaderText="bel calisani onay" DataField="bel_calisani_onay" /> <asp:BoundColumn HeaderText="kullanici adi" DataField="kullanici_adi" /> <asp:BoundColumn HeaderText="sifre" DataField="sifre" /> <asp:TemplateColumn HeaderText="Sil?"> <ItemTemplate> <input type="checkbox" name="chkDelete" value="<%# DataBinder.Eval(Container.DataItem, "teklik_sn") %>"> </ItemTemplate> <FooterTemplate> <input type="submit" value="Sil!"> </FooterTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateColumn> </Columns> <HeaderStyle Font-Bold="True" /> </asp:DataGrid> </p> </form> </body> </html> 122 EK 2: eDevlet Kapısı (eKapı) Bu bölümde “BiliĢim 2007” etkinliklerinde verilen eKapı ile ilgili bazı seminerlerin bir özeti verilecektir: eDevlet Kapısı Projesi Tanıtımı [13] Devlet kapısı teknik altyapısının kurulması görev ve sorumluluğu eDönüĢüm Ġcra Kurulu 03.12.2004 tarih ve 4915 sayılı yazısı üzerine, Bakanlar Kurulu‟nun 25.01.2005 tarih ve 2005/8409 Sayılı Kararı ile Türk Telekomünikasyon A.ġ.‟ye verilmiĢtir. Türk Telekomünikasyon A.ġ., söz konusu kararname ile kendisine verilmiĢ olan görev doğrultusunda yürüttüğü ihale süreci sonunda Oyak Teknoloji BiliĢim ve Kart Hizmetleri A.ġ. ve Crimson Logic ortak giriĢimi ile 07.11.2005 tarihinden itibaren bir yıllık bir sözleĢme imzalayarak çalıĢmalara baĢlamıĢtır. Türk Telekomünikasyon A.ġ., hisselerinin %55‟i özel sektöre devredilmek suretiyle 14.11.2005 tarihinde özelleĢtirilmiĢtir. Bu geliĢmeler çerçevesinde, Devlet kapısının kurulması ve yönetilmesi görev ve sorumluluğunun baĢbakanlık adına UlaĢtırma Bakanlığı‟nca üstlenilmesinin uygun olacağı kararlaĢtırılmıĢtır. Türk Telekomünikasyon A.ġ. tarafından eDevlet kapısı teknik altyapısının kurulmasına yönelik iĢ ve iĢlemler ile bu amaçla tahsis edilmiĢ olan mali kaynaklar da dahil olmak üzere bütün hak ve sorumluluklar 20.04.2006 tarih ve 2006/10316 sayılı Bakanlar Kurulu kararnamesi çerçevesinde Türksat Uydu HaberleĢme ve Kablo TV iĢletme Anonim ġirketine devredilmiĢtir. eKapı’nın Tarihçesi ve Finansal Boyutu: eDevlet kapısının geçmiĢi 2005 yılının ilk aylarına kadar gitmektedir: 2005 yılı içerisinde OYTEK (OYAK Teknoloji) ve Crimson Logic konsorsiyumu, konu ile ilgili düzenlenen ihaleyi kazanmıĢ, akabinde bu konsorsiyum sözleĢmeyi imzalamıĢtır. Bu sözleĢme çerçevesinde, 2006 yılı sonuna kadar 19 kamu 123 hizmetinin 10‟unun eDevlet kapısından hizmet vermesi gerekmektedir. Devlet Planlama TeĢkilatı‟nın hazırlamıĢ olduğu Bilgi Toplumu Stratejisi ve ekinde Eylem Planları, Temmuz 2006‟da Yüksek Planlama Kurulu tarafından onaylanmıĢtır. Bilgi Toplumu Stratejisine ve Eylem planına bakıldığında, mali portresi yaklaĢık 3 milyar YTL‟yi bulan 111 tane eylem bulunmaktadır; bu eylemlerden 71 no‟lu olanı “eDevlet Kapısı Hizmetlerinin YaygınlaĢtırılması” baĢlığını taĢımaktadır ve proje değeri yaklaĢık 14,6 milyon YTL‟dir. Bu 111 eyleme eDevlet kapısıyla ilgili olarak bakılırsa: eDevlet kapısıyla ilgili 39 eylem (71. Eylem de dâhil) vardır (toplam eylemlerin %35‟i). 111 eylemin yer aldığı projenin finansal karĢılığı yaklaĢık 3 Milyar YTL olup 871,6 milyon YTL‟si yani bütün harcamaların yaklaĢık %30‟u bu 39 eylemi kapsamaktadır. eKapı’nın TaĢıması Gereken Özellikler: eKapı, bazı araĢtırmacılara göre bir portal (devletin eriĢim portalı) olarak görülmektedir [10]. eKapı ister bir portal olarak görülsün, ister ise daha geliĢmiĢ bir yapı olarak düĢünülsün, karĢılayacağı bazı özellikleri barındıracaktır. eKapı‟da kullanıcıların aradıklarını kolayca bulmaları, sayfa içeriklerinin düzenlenmesi, bilgi ve uygulamaların kullanıcılar açısından anlamlı ve mantıksal olarak gruplanması, eKapı‟nın kullanım kolaylığını artırıcı unsurlar olarak ortaya çıkmaktadır. Ayrıca, oluĢturulacak listeler de dolaĢımı/eriĢimi kolaylaĢtıracak bir tekniktir. eDevlet yaklaĢımıyla hizmet üretim zinciri kurum bankosuyla geri plandaki sanal banko arasında bölünmüĢtür. Kamu kuruluĢları, verdikleri hizmetleri elektronik ortamda da vermeye baĢlamıĢlardır. eDevlet kapısı yaklaĢımları bu aĢamada kamu kuruluĢları ile vatandaĢlar ve özel sektör kuruluĢları arasında yaratıcı iletiĢim olanakları sağlarlar: Sadece kurumun verdiği hizmetlerden değil; aynı zamanda, amaçlara uygun olarak tüm devlet hizmetlerinden de yararlanabilmesi gerekmektedir. eDevlet kapısı, sadece bir web sayfası değil, kamu hizmetlerinin verildiği tümleĢik bir eriĢim noktasıdır. VatandaĢların ve özel sektörün kamu 124 hizmetlerine kesintisiz eriĢimine ve bu hizmetlerden yararlanmasına olanak tanır. Kamunun bürokratik yapısından bağımsız olarak, tüketici kesiminin ve özel sektörün çıkarlarına yönelik bilgi iĢlem olanağı sağlar. Kamudaki mevcut hizmetler entegre olarak verilebilir, yani verilen hizmetler entegre olarak çalıĢabilir. MüĢteri ĠliĢkileri Yönetim Sistemi (CRM) homojen olarak bütün kamu kurumları arasında uygulanabilir. eKapı, ortak bir görünüm ve ortak bir eriĢim olanağı sağladığı için kamuya olan eriĢimlerde rahatlık sağlar. Kurumlar arasında teknoloji paylaĢımını güçlendirmesi açısından da bu önemli bir yaklaĢım olup eKapı ortak fonksiyonları destekler. eKapı‟ya değiĢik kanallardan eriĢilebilir. Her kamu kurumu kendi içeriğinin sürümünü kontrol edebilir. Güvenli eriĢim için kimlik doğrulama gibi fonksiyonları destekler. eKapı‟nın web sayfasından önemli bazı farkları vardır [10]. Bunlar: Kamu kuruluĢları web sayfaları eKapı Ana sayfa kamunun yapısına göre Ana sayfa kullanıcıların ihtiyaçlarına düzenlenmiĢtir. ve ilgi alanlarına göre düzenlenmiĢtir: Örneğin, pasaport alacak biri emniyet, maliye ve askerlik Ģubesine eriĢebilir, bütün bunlar bir arada sağlanmıĢtır. Genellikle eriĢilebilecek kamu Kullanıcının amacına göre farklı iĢ kuruluĢlarının ve hizmetlerinin listeleri seçenekleri sunar. bulunur. Esas olarak statik bilgi vardır ve az Sadece bilgi değil, etkileĢim ve iĢlem sayıda iĢlem olanağı sunar. Kamu kuruluĢları birbirlerinden farklıdır, yapabilme olanağı sunar. sayfaları Tüm kuruluĢların sayfaları için ortak ortak bir bir görünüm sunar. görünüm yoktur. Sayfa içinde eriĢim kuruluĢtan Tutarlı bir eriĢim sistemi sunar: Ortak kuruluĢa farklılıklar gösterir. bir navigasyon sistemi vardır. KuruluĢun bilgi sistemleri ile farklı Mevcut bilgi sistemleri ile tutarlı bir 125 Ģekillerde entegre olan bağımsız entegrasyon sunarlar. sayfalardır. Gerektiğinde sorulara cevap vermek EtkileĢimli Sesli Yanıt sistemine amacıyla insanların devreye girmesini bağlantıları bulunan MüĢteri ĠliĢkileri sağlayan bir sesli yardım sistemi Sistemi veritabanı ve geri besleme bulunabilir. mekanizmaları vardır. eDevlet kapısının mimarisi ise aĢağıdaki gibidir [10]: Fiziksel ağ eriĢimi: Standart ağ eriĢimine, cep telefonu (kameralı cep telefonu, PDA cep telefonu, GSM telefon, bluetooth telefon veya GPS telefon) eriĢimine açıktır. Sesli yanıt desteği de bulunabilir. Sayfanın sunuluĢu ve organizasyonu: Sayfanın kullanıcı gruplarının ihtiyaçlarına göre planlanması gerekir. Bağlantılar (linkler) buna göre düzenlenmelidir. Kullanıcı grupları (vatandaĢlar, kamu kurumları, özel sektör, ziyaretçiler) net bir biçimde belirlenmelidir. Belediyeler ise ihtiyaçları biraz daha farklı bir kesimdir. Yani, sayfa ihtiyaçlara göre düzenlenmelidir. Konu temalarına göre gruplandırma: sanal kamu kuruluĢları da yaygın bir biçimde kullanılmaktadır. Örneğin, turizm ve rekreasyon sanal kamu hizmeti gibi bir Ģey düĢünülürse, Turizm Bakanlığı, Çevre Bakanlığı, belki belediyenin Park ve Bahçeler Müdürlüğü ve Ġmar Müdürlüğü de böyle bir hizmet için devrede olacaktır. Dolayısıyla eKapı‟daki sanal kamu kuruluĢu bütün bu ilgili sanal oluĢumlara eriĢim olanakları sağlamalıdır. Ortak Portal Fonksiyonları: Arama motorları, hava durumu, trafik durumu gibi bazı bilgilerdir. ePosta hizmeti ortak portal hizmeti olarak verilebilir. Sıkça Sorulan Sorular bölümü konulabilir. Bazı olayların duyuruları da verilebilir. Dolayısıyla, eKapının ortak hizmet veren bütün kuruluĢlara hizmet veren fonksiyonları bulunması gerekir. PaylaĢılan servis modülleri: Örneğin, ev kirasını kredi kartıyla yatırılmak istensin. Dolayısıyla kredi kartı merkezlerine bir eriĢim olanağı olması lazımdır. Dolayısıyla bu olanaklara her kamu kurumu kendisi açısından 126 baktığı için farklı önlemler alınabilir. Ama eKapının kendisine sağlamıĢ olduğu altyapıdan da yararlanabilmelidir. Güvenlik açısından kimlik doğrulama, pin kodları, kripto, biyometrik araçlar gibi güvenlik önlemleri eKapı‟da kullanılabilir. Keza MüĢteri ĠliĢkileri Yönetimi (CRM) ortak olarak paylaĢılabilinmelidir. Ayrıca, sesli yanıt sisteminin bir desteği olmalıdır. Kurum Bilgi ĠĢlem servisleriyle iliĢkiler: Virüslere ve saldırılara karĢı eKapı altyapısı, kamu kuruluĢlarının bilgi iĢlem sistemlerini korumalıdır. eKapı kurulduktan sonra bütün bilgi iĢlem hizmetlerine buradan ulaĢılacağı için kurumların bilgi iĢlem merkezlerinin önemleri daha da artacaktır, çünkü eKapı‟ya etkileĢimli hizmet verdikleri için altyapılarını daha da güçlendirmeleri gerekecek, daha da fazla önem kazanacaklardır. eDevlet kapısının cevap vermesi gereken diğer hususlara bakıldığında; EriĢilebilirlik ve “Sayısal BölünmüĢlük”: EriĢelemeyen bir portalın kullanılması da düĢünülemez. Sunulacak bilgiler: Her bilgi verilemeyebilir, bazı bilgiler kontrollü verilebilir. Tanıtım-pazarlama-marka: eKapının duyurusu ve tanıtımı çok iyi yapılmalıdır. Yönetim/YönetiĢim: eKapıyı kim yönetecek, kim güncelleyecek, kararlar nasıl alacak, koordinasyon nasıl yürütülecek gibi sorulara cevap verilmelidir. Maddi ve teknik destek: “eKapı finansal olarak nasıl desteklenecek?”, “Kamu kuruluĢları eKapının yürütülmesine maddi ve teknik açıdan katkı yapacaklar mı?” soruları yanıtlanmalıdır. Maddi kaynaklar ve gelir üretimi: “Verilen hizmetlerden ücret alınacak mı?”, “Alınan ücretler nasıl paylaĢılacak?” soruları yanıtlanmalıdır. eKapı, eDönüĢümün bir parçası olup eKapı‟nın yanı sıra eDönüĢümün diğer bileĢenlerine Türk Telekom‟un olası katkılarına bakıldığında [11]: eDönüĢüm sürecinde Türk Telekom‟un bu dönüĢüme önemli katkıları olabilir. 127 eDevlet iĢleyiĢ üçgenini; 1. Organizasyon, 2. EriĢim – alt yapı – ortak veri merkezi, 3. ĠĢbirliği tamamlamaktadır. Bu üçgeni sağlayabilmek için ise eDevlet altyapısı ihtiyaçları aĢağıdaki gibi sıralanabilir: GeniĢ bant eriĢim altyapısı: Hem eriĢim bazında “vatandaĢ ve eriĢim” + “omurga bazında geniĢ bant eriĢim altyapısı” Ortak veri merkezleri Kurumların bilgi altyapıları / içerik Ortak bilgilerin derlenmesi, paylaĢılması, güvenliği Tanımlama ve onay kurumları Türk Telekom eDevlet platformunda, 1. EriĢim – GeniĢ Bant Veri Omurgası, 2. Ortak Veri Merkezi, 3. Çağrı Merkezi üçgeninde platforma destek sağlayabilecek konumdadır. Türk Telekom, eDevlet Yatırım Projelendirmelerinde oldukça büyük bir katkı sağlayabilecek bir kurumdur. eDevlet altyapısına yönelik olarak Türk Telekom altyapısı üzerinden yürüyen büyük çapta projeler bulunmaktadır. Bunlar: VEDOP I-II / Vergi Daireleri (VEDOP III sürmekte olan bir projedir) ULAKNET / Üniversiteler (Tüm üniversitelerin altyapısına yönelik olarak devam eden ve hızla geliĢmekte olan bir projedir. Türk Telekom‟un 5 MB‟den 1 GB‟e kadar geniĢ bantta hizmet verebilen Metro – Ethernet altyapısı üzerinden bu proje yürütülmektedir). MERNĠS / Nüfus ve VatandaĢlık UYAPNet / Yargı – Adliye PolNet, MOBESE / Emniyet Birimleri MUHASEBAT / Saymanlıklar (proje ile tüm ülke genelindeki saymanlıkların bir altyapı üzerinde birleĢtirilmesi amaçlanmıĢtır). MEB / Okullar: 28412 okul internet eriĢimi altyapısına entegre edilmiĢ durumdadır. SSK-SGK / Ġlgili birimler Yüksek Seçim Kurulu / Ġlgili Birimler Devlet Hava Meydanları ĠĢletmesi (DHMĠ) / Hava Alanları Türk ĠĢ Kurumu / Ġlgili birimler 128 Kara UlaĢtırması Genel Müdürlüğü / Gümrük Numune Hastanesi Yukarıda sayılan hizmetler mevcut veri hizmetleri ile yürütülmekte olup bu veri hizmetlerinin tüm il ve ilçelere yaygın alt yapı ile gitmesi en önemli noktalardan biridir; en uç noktalara kadar gitmesi sayesinde hizmetlerden faydalanacakların eriĢim olanağı da oldukça artmıĢtır. eDevlet‟te kullanılabilecek GeniĢ Bant Altyapı‟na yönelik olarak, Türk Telekom‟un aĢağıdaki hizmetleri bulunmaktadır: Frame Relay (FR)/ATM/Leased Line (LL): Yukarıdaki büyük projeler için 2, 34, 155, 622 Mbps bant geniĢliği eriĢim kapasitesinin kullanılmasını desteklemektedir. Asenkron DSL: Uç kullanıcılara yönelik olarak sunulan hizmet 4 MBps‟e kadar hizmet verebilmektedir. Senkron DSL (g.shdsl): 2 MBps‟e kadar hizmet verebilmektedir. Metro – Ethernet: 5 MBps‟tan – 1 GBps‟a kadar değiĢebilen geniĢ bant hizmeti. Ġnternet Veri Barındırma Merkezi (IDC): 2x622 MB bant geniĢliğindedir. Yukarıda sayılan Türk Telekom‟un mevcut hizmetleri, eDevlete yönelik projelendirmelerde gerek eriĢim gerekse altyapı bazında kullanılabilir. Türk Telekom 10 GBps‟lik veri altyapısında link kapasitesine sahiptir. YaklaĢık 114 km toplam fiber altyapısına sahiptir. 3 lokasyonda 90 GBps yurt dıĢı kapasitesi bulunmaktadır (Bu kapasitenin 10‟dan fazla lokasyonda Avrupa, ABD yurtdıĢı terminasyonu sağlanmıĢtır). Türk Telekom’un eDönüĢüme destek olabilecek bazı GeniĢ Bant Altyapı hizmetleri de planlanmıĢtır: TT-VPN hizmeti: 64 Kbps – 1 Gbps aralığında; Çoğu eriĢim tiplerini destekleyen gerçek zamanlı, kritik, standart servis sınıfları olan, çok noktadan çok noktaya IP eriĢim sağlayan (IP‟nin ölçeklenebilirliğini ve esnekliğini katan) Servis Seviyesi (Service level assurance; SLA) garantisine 129 sahip ülke çapında geniĢ bir yaygınlığı olan (300‟den fazla lokasyonda yaygınlık olanağını verecek) altyapı da planlanmıĢtır. Türk Telekom bu altyapıyı hayata geçirdiğinde eDevlet projelendirmesine ve altyapısına IP-VPN‟nin esnekliğinden dolayı daha fazla katkıda bulunabilecektir. Planlanan EriĢim Altyapısına Bakılırsa: Uç kısımda eriĢim bazında yüksek hızda DSL (VDSL) 2008 yılının çok yakın planlamaları içerisinde bulunmaktadır. Uç kullanıcılara 25 – 30 Mbps kadar bant geniĢliği eriĢim imkanı verme imkanı bulunmaktadır. Türk Telekom Veri Merkezi: Bilginin en değerli Ģey olduğu günümüzde, bilginin taĢınması, korunması, depolanması, yedeklenmesi, paylaĢılmasına yönelik ortak veri merkezlerine ihtiyaç bulunmaktadır. Türk Telekom‟un eriĢim ve altyapı faaliyetlerinin yanı sıra bir de ortak veri merkezi bulunmaktadır. Bu merkez, kurumların veri barındırma ihtiyaçlarını karĢılamak amacıyla kurulmuĢtur ve Türkiye‟nin büyük kapasiteli veri barındırma merkezlerinden birisidir. Ġlk olarak, eDevlet iĢleyiĢ üçgeninde Ortak Veri Merkezleri‟nden bahsedilmiĢti. Türk Telekom‟da, Ģu anda bir tane olan ortak veri merkezi sayısı felaket kurtarmaya (disaster recovery) yönelik olarak planlananla birlikte ikiye çıkarılacaktır. Türk Telekom Veri Merkezi‟nin biliĢim mimarisi, eDevlet projelendirmelerine bir olanak olarak hızlı internet bağlantısı sunabilir, güvenli ve yedekli ağ ve sunucu altyapısına sahiptir, özel ve paylaĢtırılmıĢ hizmetler verebilir. Türk Telekom Veri Merkezi, eDevlet projelerine yardımcı olma imkânını Ģu yapısıyla sunmaktadır: Sunucu barındırma (PC veya Rack VPN, Firewall); IDC Ġnternet eriĢimi (64 Kbps – 1000 Mbps); Yüksek kapasitede depolama (1 GByte‟dan 1 Tera Byte‟a); Web ve ePosta hosting; bütünleĢik güvenlik hizmeti. Ayrıca, Veri Merkezi‟nde kesintisiz güç kaynağı, havalandırma sistemi, yangın söndürme sistemi, güvenlik alarmı, güvenlik görevlileri, sunucu sistemleri, Ģebeke sistemleri varolup, Merkez‟deki uzman personel kurulum, 130 konfigürasyon ve entegrasyon, iĢletim ile ilgili konularda 7gün/24 saat teknik destek imkanı sunmaktadır. Altyapı ve insan kaynağı yatırımlarından tasarruf yapılarak, yatırım ve iĢletim maliyetlerinde önemli bir düĢüĢle, geniĢ bantlı eriĢim, eDevlet, eSağlık, eEğitim, eĠĢ kısaca eToplum hizmet ve uygulamalarına altyapı olanağı bulunmaktadır. Bu da Türk Telekom‟un elinde bulunan potansiyellerinden bir tanesidir. Türk Telekom çağrı merkezi: Kamu kurumlarının istek ve taleplerine göre farklı çağrı merkezi hizmetleri verme olanağı bulunmaktadır. Ġlk örneğini Türk Telekom RTÜK ile baĢlatmıĢtır. eKapı’ya Türksat perspektifinden bakıldığında [12] : Türksat Bilgi Teknolojileri direktörlüğü, eKapı projesini Nisan 2006 tarihinde bakanlar kurulu kararıyla, UlaĢtırma Bakanlığı koordinasyonunda almıĢtır. Daha sonra yüklenici firma OYTEK‟le çalıĢmaya baĢlamıĢtır. Ġlk amaç, sistem odasının teslim edilip kullanıma açılması olmuĢtur. eKapı projesinin devir süreci ve tekrardan bir takım maddi sorunların aĢılması aĢamaları geçildikten sonra sistem odası teslim edilmiĢ, yüklenici firma cihazları kurmuĢ, yazılımları kurmuĢ, montajı tamamen kabul edilecek aĢamaya getirmiĢ ve montajı bitirmiĢtir. Türksat bu esnada, kamu kurumlarının üst düzey temsilcilerinden oluĢan bir kurulu her ay düzenli olarak toplayıp, eKapı hakındaki geliĢmeleri ve hangi kurumdaki hangi hizmetlerin nasıl bağlanabileceği hususunda devamlı bilgilendirme yapmıĢ ve görüĢ birliği sağlamıĢtır. 2. Toplantıda eKapının tasarımı oylamaya sunulmuĢ ve bir taslak belirlenmiĢtir, tasarımın olgunlaĢması zaman almıĢtır. Daha sonra kullanıcı kaydında değiĢik alternatifler önerilmiĢtir. Kullanıcı kayıt senaryosunda eĠmzanın yeri, Ģifre dağıtılması meselesi (PTT yoluyla dağıtılması, valilik yoluyla dağıtılması vb.) karara bağlanmıĢtır. Daha sonra logo ve slogan yarıĢması düzenlenmiĢtir. 131 eDevlet logosu: , slogan: “Devletin kısa yolu” belirlenmiĢtir. Türksat birçok kurumla bağlantılarını yapmıĢtır. Nüfus ve VatandaĢlık ĠĢleri G.M.lüğü ilk planda kurum bağlantısında Türksat‟ın önünü açmıĢtır ve login kısmındaki bütün bağlantı aĢamalarını geçmesini sağlamıĢtır. Türksat, Sosyal Güvenlik Kurumu‟nu oluĢturan üç kurumla da ayrı ayrı çalıĢarak bağlantı iĢlemlerini bitirmiĢ ve web servislerini bağlamıĢtır. BaĢbakanlık BĠMER sistemi, Türksat‟a web servis bağlantısını sunmuĢtur. Aynı Ģekilde, Ģifre dağıtım esnasında kayıtlı verileri sorgulama çalıĢmalarında gerekli altyapı oluĢturulup ilgili bağlantılar yapılmıĢtır. Türksat, dağıtılacak Ģifrenin basımı dağıtımı konusundaki testlerde ilerleme kaydetmiĢtir. Bu arada proje kapsamında yürüyen Milli Güvenliği Yönetim Sistemi çalıĢmalarında da, eKapı projesinin bir ayağında da ĠSO 27001 (eKapının Bilgi Güvenliği Yönetim Sistemi) belgesinin alınmasına yönelik çalıĢmalarda Türksat etkinliğini artırmıĢ ve risk analizleri incelemesini tamamen bitirmiĢtir. eKapı projesi sayesinde devlet, ilk defa sunduğu hizmetlerin bir envanterini çıkartmıĢtır. BaĢbakanlık Ġdareyi GeliĢtirme Merkezinin baĢkanlığında 2000‟e yakın devlet hizmeti baĢlık olarak listelenmiĢtir. Türksat da bunun 1300‟e yakın olanının detay bilgisini (“hizmetin vatandaĢ tarafından alınıĢ biçimi”) çıkarmıĢtır. Türksat, kategoriler konular altkonular denilen bir kırınım tasarlamıĢtır. Her bir kamu kurumu hangi konuda veya alt konuda kendi hizmeti var bunu belirlemiĢ, buna dair olarak Türksat bu bilgileri, yaptığı bir yazılımla kamu kurumlarından almıĢtır. eKapı ile ilgili fizibilite çalıĢmaları noktasında; ilk baĢtaki fizibilite ile Türksat‟ın yaptığı fizibilitenin Ģu farkı vardır: Ġlk baĢtaki fizibilite “Hangi hizmetler pilot olarak verilebilir?” anlayıĢına sahipken Türksat‟ın bu proje kapsamında yapılan fizibilitede, bundan sonraki 19 pilot hizmetin alınmasından sonraki 132 hizmetler neler olabileceği (vatandaĢın fayda/maliyet analizi en yüksek vatandaĢ memnuniyetine ulaĢılacak hizmetler neler olmalı?) esas alınmıĢtır. Türksat bu analizleri DPT‟ye vermiĢtir. ġu anda 90 elektronik hizmetin analizi yapılmıĢtır. Analizlerin DPT tarafından kullanılmasıyla da yapılacak hizmetlere ait yatırım planlarında kamu kurumları çok daha rahat bütçe sağlayabileceklerdir. Ödeme birimi, eKapının en önemli ayaklarından birisidir. Ödeme biriminden kastedilen herhangi bir devlet hizmetinden alınması gereken harç, vergi gibi bir takım parasal iĢlemlerin eKapı üzerinden yapılmasını sağlamak. Bu konuda da Türksat bankalar birliğiyle 10‟un üzerinde bankayla ve Maliye Bakanlığı‟yla birebir çalıĢmaktadır. Türksat‟ın amacı: devletin bankalarla olan çalıĢmalarını tek elden yürütmek ve herhangi bir hizmetin eKapı tarafından verilmesi durumunda eKapının bilgiyi vatandaĢa sunması, vatandaĢın bankasını seçmesi, bankada gerekli iĢlemler yapıldıktan sonra ödendi bilgisinin kuruma iletilmesi, aynı zamanda Maliye‟ye tahakkuk bilgisinin iletilmesine dair bütün bu aĢamalarda eKapının aracı rol üstlenerek iĢlemleri kolaylaĢtırmasıdır. Kurumların hizmet verirken en büyük sıkıntılarından biri kullanıcı kimlik doğrulama iĢlemleridir. eKapı da Ģifre ve eĠmza uygulamasıyla yapının geliĢtirilmesi hedeflenmiĢtir. Türksat, hizmetleri verirken mevzuatta sıkıntılar yaĢamıĢtır: Sıkıntıları aĢmak için “Ģahsen verilir” “eline verilir” vs. gibi terimlerin elektronik ortamda verilmeye imkân taĢıyacak hale getirmek amaçlanmıĢtır. Entegrasyon standartları konusunda, Türksat‟ın ilk yaptığı iĢ bir Veri Sahipliği kavramının kamu kurumlarında oturtulması olmuĢtur. “Hangi kurum hangi verinin sahibi?”. Birçok kurum vatandaĢların adresleri gibi değiĢik bilgiler tutuyor. “Bilgiler hangi kurumda daha güncel?”, “bir bilgi diğer kurumdan alınsa daha mı doğru olur?” gibi soruları yanıtlamak için verinin sahibinin kim olduğunun bilinmesi gereklidir. Veri sahipliği konusunda Türksat kurumlardan 133 veriler toplamıĢtır (“verilerin tutulduğu format”). Bir sonraki aĢama: bu verilerin paylaĢılması için Service Layer Agreement aĢaması. ġu an gelinen aĢamada, Türksat 16 Ekim 2006‟da sistem odasını yüklenici firmaya teslim etmiĢtir. eKapı proje süresi 1 yıl olduğundan 16 Ekim 2007‟de yüklenici firma OYTEK‟in süresi dolmuĢtur. Türksat, Kasım 2007 sonuna kadar OYTEK‟e süre vermiĢtir. Bu süre içerisinde OYTEK‟in bu yazılımı bitirmesini beklemiĢtir. Türksat, hali hazırda kamu kurumlarından içerik bilgilerinin toplanmasını tamamıyla bitmiĢtir. Entegrasyon Standartları konusunda çalıĢmalar yapmıĢtır. eDevlet kapısı, bir iletiĢim altyapısı bütünleĢmesidir [13]: eKapının Katmanları: eKapı, üç katmandan oluĢmaktadır: 1. DıĢ kullanıcıların eriĢimine yönelik olarak kullanıcı katmanı 2. Kamu kurumlarının güvenliği söz konusu olduğundan kamu kurumlarının eriĢebileceği katman 3. Üzerinden geçen trafiğin tutulduğu (loglandığı) depolama bölümü. Kullanıcı Katmanı Uygulama Katmanı Veritabanı ve Sunucu Katmanı EriĢim Kontrolü (FW/VPN) Trafik Kontrolü (IPS) Uygulama Denetimi (App FW) Ġçerik Kontrolü Virüs Kontrolü SSL VPN EriĢim Kontrolü (FW/VPN) Trafik Kontrolü (IPS) Uygulama Denetimi (App FW) Uygulama Sunucuları Kamu Kurum Bağlantıları EriĢim Kontrolü (FW/VPN) Trafik Kontrolü (IPS) Uygulama Denetimi (App FW) DMZ Sunucuları Web Sunucuları SAN Altyapısı Depolama Üniteleri Felaket Kurtarım Merkezi Bağlantıları Kritik 134 Kamu Kurumlarının eKapı ile Bağlantıları [13]: eDevlet Kapısı 2. Katman VPN Sonlandırıcılar # Kurum yerel alan ağına dolaylı erişim # Kullanılacak ürünler: Uygulama sunucusu, Geniş alan ağı erişim cihazları (yönlendirici, modem vb.), Firewall ve VPN yazılımı (Erişim kontrolü, VPN tünelleme) VPN Tünel # Geniş alan ağı üzerinde VPN tünelleme Firewall/VPN Uygulama sunucusu (İşletim sistemi, Antivirüs yazılımı, Kurum Yerel Alan Ağı Yönetim yazılımı) Her kamu kurumunun kendi ağ geçidine koyduğu web servisler ile kurumun sunmuĢ olduğu hizmetlerle ilgili yapılara eriĢilir. eDevlet Kapısı‟nın güvenliği ile ilgili olarak üç seviye vardır: 1. Seviye: EriĢim kontrolü (FW/VPN); Trafik kontrolü (IPS) 2. Seviye: Ġçerik kontrolü, Virüs kontrolü 3: Seviye: Uygulama denetimi (Application Firewall) 135 EK 3: eDevlet Ağ Geçidi Projeleri ve eDevlet Mimarileri eDevlet Ağ Geçidi Projeleri: Romanya: http://www.e-guvernare.ro Slovakya: http://www.obcan.sk Çek Cumhuriyeti: http://portal.gov.cz/ Bulgaristan: http://egateway.government.bg/ Polonya: http://www.wrotamalopolski.pl İngiltere: http://www.gateway.gov.uk/ 136 Hindistan eDevlet Mimarisi 137 Yeni Zelanda eDevlet Mimarisi 138 Avustralya eDevlet Mimarisi 139 .Sri Lanka eDevlet Mimarisi 140