Hareket işlem sistemi: Revizyonlar arasındaki fark

k
düzen
k (Bot: Artık Vikiveri tarafından d:q953487 sayfası üzerinden sağlanan 8 vikilerarası bağlantı taşınıyor)
k (düzen)
'''Hareket işlem sistemi''' (''Alm.'' Transaktionssystem; ''İng.'' transaction processing system; kısaca TPS) bir [[işletme]]de meydana gelen yapılandırılmış ve sürekli yinelenen olguları kaydetmek, izlemek, saklamak, işlemek ve yayımlamak için kullanılan bir [[bilgisayar tabanlı bilişim sistemi]]dir. Bu olgulara örnek olarak arasında sipariş almak, fatura ve irsaliye hazırlamak, mal ve hizmet teslim almak ya da etmek, bordro hazırlamak gösterilebilir. Bir işletmede kullanılan kaynakların, işletme içinde ve dışındaki çıkar ve ilgi gruplarının her biri açısından anlamlı olan ve zamanla meydana gelen her bir değişimine ''hareket'' (ya da işlem) denir. Hareketler bir kurumun işleyişi sırasında meydana gelen olgulardır. Bu olgular fiziksel, parasal ya da kavramsal kaynakların özelliklerinden birinin, bir bölümünün ya da tümünün değişimini içerir. Kimi zaman bir hareket başka hareketlerin meydana gelmesine neden olur.
 
Her kaynak, kendisiyle ilgili çıkar grubu açısından anlamlı özelliklerini betimleyen bir [[veri]] kümesi kullanılarak tanımlanabilir. İşletme kaynaklarının geçirdikleri değişimler, kaynakları tanımlamakta ve soyutlamakta kullanılan verilerin de değişimini gerektirir.
 
== Bilgisayar bilimlerinde hareket işlem sistemleri ==
 
[[Bilgisayar bilimleri]] açısından, hareket, bir [[bilgisayar]] sisteminin yerine getireceği birbiriyle ilişkili bir dizi işlemden ibarettir. Bu işlemler bir bütün olarak görülür ve sonuçta bir hareket ya başarıyla gerçekleşir ya da gerçekleşmeyerek hareketin başlamasından hemen önceki noktaya dönülür. Bu işlemlerin gerçekleştirilmesiyle bir [[veri tabanı]]nda yer alan bir dizi [[veri]] değişim geçirerek yeni değerler alır.
 
=== Hareket bütünlüğü ===
 
Tüm işlemlerin sonuçları kalıcı olacak biçimde gerçekleştirildiğinde hareketin bütünlüğü korunmuş ve hareket başarıyla gerçekleşmiş demektir.
 
Hareketin bütünlüğü iki amaca hizmet eder:
 
# Hareketi talep eden kullanıcının isteğni yerine getirmek.
# Veri bütünlüğünü korumak.
 
Bütünlüğü koruyabilmak için hareket sonuçları [[sistem]] arızalarından ya da çökmelerden etkilenmemelidir. En küçük bir aksaklık durumunda, sistem gerçekleşen tüm işlemleri geriye doğru iptal ederek başlangıç durumuna geri dönebilmelidir. Bir hareket bir ya da daha çok veri kaynağı üzerinden gerçekleşebilir. Yerel kaynaklar üzerinde gerçekleşen hareketler kolay yönetilebilir ve tek bir kaynak (veri tabanı ya da ileti kuyruğu) kullanılarak hızla gerçekleşebilirken, dağıtılmış hareketler için birden çok kaynak kullanılır.
 
Bir sanal alışveriş merkezinden bilgisayar satın alındığında, bir çokbirçok hesapta değişiklik yapmak gerekir. Önce alışveriş sepeti oluşturulur. Bilgisayar alışveriş sepetine konur. Ardından sanal kasaya gidildiğinde banka hesabı güncellenir ve bilgisayar stoktan düşülür. Banka hesabı güncellendiğinde bilgisayar stoktan düşülmezse banka hesabı da güncellenmeden önceki durumuna döndürülür. Hareketi oluşturan işlemlerin, veri tabanı üzerinde değil de verilerin kopyaları üzerinde gerçekleştirilmesi geri dönüşü olanaklı kılar. İşlemlerden en az biri başarısız olursa tüm kopyalar silinir.
 
=== Hareket özellikleri ===
 
Bir hareketin dört temel özelliği vardır:
 
# ''Atomsallık'': Bir hareket ya bütünüyle gerçekleştirilir ya da sistem hareket başlamadan önceki durumuna döner. Hareketin gerçekleşmesi, onun başlangıcı ve bitimi arasındaki tüm işlemlerin başarıyla gerçekleşmesine bağlıdır. Atomsallık özelliği harekete kaynak olan amacın geçekleşmesini garanti eder.
# ''Tutarlılık'': Sistem (ya da harekete konu olan veriler) ya yeni ve [[anlambilim]]sel açıdan geçerli bir duruma geçer ya da eski geçerli durumunu korur. Böylelikle verilerin doğruluğu ve bütünlüğü güvence altına alınır. Sistemde tutarlılığı sağlayan kurallara bütünlük kısıtları adı verilir.
# ''Yalıtılmışlık'': İşlemlerin gerçekleşmesi sırasında hareket diğer tüm hareketlerden bağımsız olarak cereyan eder. İdeal olarak ardışık işlemler ve hareketler yalıtılmışlığı garanti altına alırsa da, eşzmanlı işlemler sistem performansını yükseltir.
# ''Devamlılık'': Sistem bir başarısızlık durumunda dahi geçerli durumda bulunur. Bir hareketin gerçekleşmesi sırasında sistem çökerse, veriler hareket başlamadan önceki geçerli değerlerine geri döner. Bir hareket bittikten sonra sistem çökerse, veriler kalıcı hale gelmiş bulunduklarından hareket bittiğinde aldıkları değerleri korurlar.
 
Bu özellikler ACID (‘esid’ okunur; ''İng.'' A: atomicity; C: consistency; I: isolation; D: durability) özellikleri olarak bilinir. Hareket işlem sistemlerinin bu dört özelliği sağlayabilesi, hareketlerin her koşulda geçerliliğini ve sonuçlarının öngörülebilirliğini sağlar; yönetim ve denetim yükünü azaltır. Aynı zamanda bu özellikler, hareket işlemeyi [[toplu veri işleme|toplu işlemden]] (''İng.'' batch processing) ayırır. Toplu işlem, hareketleri önce bir araya getirirek gruplar. Gruplanan hareketler belirli aralıklarla ya da belirli olguların gerçekleşmesinden sonra veri tabanının güncellenmesi için kullanılır. Toplu işlem yaklaşımının işletmecilikte kullanım alanı daha çok bordro v.b. dönemsel hareketlerle sınırlıdır.
 
=== Çevrimiçi hareket işleme (OLTP) ===
# Hataya dayanıklılık.
 
''İki aşamalı üstlenim'' (''İng.'' two-phase commit) bir hareketin iki aşamada oluştuğunu ifade eder. Birinci aşamada hareket için gereken tüm kaynakların oluşacak değişliklikleri üstenmeye hazır olup olmadıkları belirlenir. Bu aşamada gerekiyorsa harekete konu olan veriler kilitlenerek başka bir hareket tarafından kullanılmaları engellenebilir. Eğer veriler kilitlenmemişse ve hareket süresince başka hareketler tarafından değiştirilebiliyorsa hareket tamamlandığında bu durum hesaba katılmalıdır. İkinci aşamada tüm kaynaklar gereken değişiklikleri ve dolayısı ile de hareketi yerine getirirler. İki aşamalı üstlenim hareketin neden olduğu tüm değişikliklerin gerçekleşmesini sağlar; hareket başarısız olursa tüm kaynaklar hareket öncesi duruma dönerler.
 
''Endüstriyel güçteki yazılımlar'', çok miktarda verinin pek çok kullanıcı tarafından eşzamanlı olarak ve hatasız biçimde işlenebilmesini gerektirir. Program kusursuz çalışabilmeli ve sistem aksaklıklarından kaynaklanabilecek hatalara olanak vermemelidir. Veri tabanı yönetim sistemlerinin endüstriyel güçte olmalarını sağlayan, bu iki aşamalı üstlenim özelliğidir.
 
''Hataya dayanıklı'' (fault tolerant) hareket işlem sistemleri, donanımda bir hata oluştuğunda işlevlerini aksatmadan sürdürürler. Bu tür sistemlerin merkezi işlem birimi, bellek, sabit disk, dentim birimi, soğutucu fan ve güç kaynağı gibi kritik bileşenlerinin en az bir yedeği bulunur; asıl bileşende bir arıza oluştuğunda yedek bileşen kesintisiz olarak devreye girer.
 
== Hareket işlem sistemi mimarileri ==
 
Hareket işlem sistemleri için başlıca iki tür sistem mimarisi yaklaşımı kullanılmaktadır:
 
# [[Anabilgisayar]] mimarisi.
# [[İstemci-sunucu mimarisi]].
 
Anabilgisayar mimarisinde tüm iş kuralları ve veriler bir merkezi bilgisayarda toplanır; veriler bu bilgisayarda işlenir. Kullanıcılar anabilgisayarla bir ya da daha çok [[uçbirim]] (terminal) veya [[kişisel bilgisayar]]larında çalışan bir [[uçbirim emülatörü]] aracılığı ile etkileşirler. Bilgisayar ağları üzerinden ana bilgisayara bağlanan iş istasyonları da emülatörler vasıtası ile yalnızca birer uçbirim işlevi görür. Uçbirimlerin ve emülatörlerin işlevi, klavye ile girilen verileri anabilgisayara iletmek ve anabilgisayardan gelen bilgileri göstermekten ibarettir. Anabilgisayar mimarisi grafik kullanıcı arayüzü kullanımını kısıtladığı gibi çoklu ve dağıtılmış veri tabanlarının kullanımına olanak vermez.
 
Hareket işlem sistemlerinde en yaygın olarak kullanılan mimari yaklaşım istemci-sunucu modelidir. İstemci-sunucu mimarisi iki bilgisayar programı arasındaki hizmet talebi ve hizmet arzı ilişkisine dayanır. İstemci sunucudan bir hizmet ya da veri talep eder; sunucu da istemciye talep ettiği hizmet ya da veriyi arzeder. İstemci belirli bir uygulama için özel olarak tasarlanmış ve o uygulamaya özgü bir kullanıcı arayüzü olabildiği gibi bir Web sayfası da olabilir. [[Web sayfası|Web sayfaları]], iş mantığından daha çok kullanıcı arayüzü öğelerini içerdiğinden, ''zayıf istemci'' olarak adlandırılır. Buna karşılık bir ''şişman istemci'', veri işlemlerinin hemen tümünü yerine getirir; yalnızca iletişim ve depolama için veri iletimine gerek duyar. Kullanıcı, istemci arayüzü aracılığı ile bir uygulama sunucusu ya da veritabanından gereksindiği hizmet ya da verileri alır, işler ve kimi zaman da geri dönerek sunucuyu günceller.
 
İstemci-sunucu yaklaşımı özellikle bilgisayar ağlarının yaygınlaşması sonucunda farklı bilgisayarların farklı roller üstlenmesi biçimini almıştır. Bir [[yerel alan ağı|yerel]] ya da [[geniş alan ağı]]nda yer alan bazı bilgisayarlar istemci, diğerleri ise sunucu görevleri üstlenmişlerdir. İstemci-sunucu modeli özellikle farklı coğrafi noktalara dağıtılmış sistem bileşenlerinin birbiriyle ilişkilendirilmesini kolaylaştırmıştır.
 
İstemci-sunucu mimarisi en az iki katmandan oluşur: Birinci katman sunuş katmanı olarak adlandırılır ve istemci tarafında yer alır. İkinci katman veri katmanıdır. Veri katmanı ya bir veritabanından ya da tek katmandan oluşan bir uygulama programından ibarettir ve sunucu tarafında yer alır. İki katmandan oluşan istemci-sunucu uygulamaları iki katmanlı istemci-sunucu mimarisi modeli üzerine kurulmuştur.
 
Üç katmanlı istemci-sunucu mimarisi modelinde, sunuş ve veri katmanlarının arasında bir uygulama katmanı bulunur. Uygulama katmanı iş mantığını barındırır ve iş mantığının verilerden ve istemci arayüzünden ayrılmasını sağlar. Bu katmanda yer alan bir uygulama sunucusu, belirli uygulama yazılımlarını üzerinde barındıran bir platformdur.
 
Zayıf istemcili istemci-sunucu uygulamaları dört katmanlı model çerçevesinde oluşturulur. Bu modelde uygulama katmanı, sunuş ve veri katmanları arsındaki geçişi sağlar. [[Web tarayıcısı]]nın meydana getirdiği sunuş ve veri tabanı sunucusunun meydana getirdiği veri katmalarının arasında Web ve uygulama katmanları bulunmaktadır. Kullanıcı arayüzü olarak Web tarayıcısından yararlanıldığından, dört katmanlı model zayıf istemci-sunucu kategorisine girmektedir. Genel istemci-sunucu modeli ise çok katmanlı (n-katmanlı) olarak nitelendirilir.
 
Zayıf istemcili sistemler, daha ucuz ve kolay yönetilebilir olmalarına karşın, hem iş hem de sunuş verilerini aynı zamanda gereksindiklerinden [[bilgisayar ağı]] üzerinde daha yüksek veri iletim hızlarına gereksinim duyarlar. Zayıf istemcilere hizmet veren sunucular diğerlerinden daha masraflı olmakla birlikte, sunuş katmanı her bir istemci üzerinde ayrı ayrı değil de, bir defaya mahsus olmak üzere yalnızca [[Web sunucusu]] üzerinde kurulur ve güncellenir. Arayüzdeki değişimler kurum içi ve dışındaki tüm kullanıcılara eşzamanlı olarak yansır.
 
== Hareket işlem yönetimi yazılımları ==
 
Yerel ve yalın hareket işlem uygulamalarda, uygulama sunucusu hareketin sınırlarını belirleyip denetleyebilir. Fakat bir bilgisayar ağı üzerinde dağıtılmış sistemlerde karmaşıklığın azaltılması ve alt sistemlerin eşgüdümlenmesi için daha yetkin bir uygulama ortamına gereksinme duyulmaktadır.
 
Büyük işletmelerde çok katmanlı sistemler çok sayıda veri, uygulama ve Web sunucusu ile kurum içi ve dışı kullanıcılara şişman ve zayıf istemciler üzerinden hizmet verirler. Kurumsal veriler ve iş mantığı sistemi oluşturan sunucular arasında dağıtılır. Sonuçta sunucular arasında karmaşık bir ilişkiler yumağı ve veri alışverişi ortamı meydana gelir. Bu durum, sistemden yararlanan iç ve dış kullanıcı sayısının dönem dönem azalıp artmasıyla daha da karmaşık bir hal alır. Sunuculardan veri ve hizmet talebinin düzensiz ve öngörülemez olması, bilgisayar ağı üzerinde iletişim ve işlem yükünün dengelenmesini, sunuculara olabildiğince eşit ölçüde dağıtılmasını önemli kılar. Bir sunucuya olan talebin aşırı artması, benzer taleplerin aynı işleve sahip başka bir sunucuya yönlendirilmesini gerektirir.
 
Hareketlerin işlem sırasında bir aşamadan diğerine geçişini gözeten, yönlendiren, hareketlerin kaybolmasını ya da hatalı oluşmasını engelleyen, ve sistemde yük dengesi oluşturan [[ara yazılımı|ara yazılımlarına (''İng.' middleware) hareket işlem yöneticisi (''İng. '' transaction processing monitor) denir. Bir hareket işlem yöneticisi üç amaca hizmet eder:
 
# Dağıtılmış bir yapıda ve pek çok kaynak kullanılarak gerçekleşen karmaşık hareketlerin atomsallık, tutarlılık, yalıtılmışlık ve dayanıklılığını sağlamak.
# Sistem üzerinde kullanıcı taleplerindeki değişimlerinden kaynaklanan yükleri, sistem işlevini ve performansını olumsuz yönde etkilemesine engel olacak biçimde sistem kaynaklarına dağıtmak.
# Bir veri ya da uygulama sunucusu devreden çıktığında başarısız olan hareketi başka bir sunucuya yönlendirerek sistemin yararlanılabilirliğini yükseltmek.
 
Kavramsal olarak bir hareketin bağlamı, o hareket hakkındaki bilgileri içeren bir veri yapısıdır. Hareket bağlamı, hareketin özgün bir tanımını, kapsamını ve hangi koşullarda zaman aşımına uğrayacağını içerir. Gerekirse hareketi parallel görevlere böler; işlemin parallel ilmekler halinde gerçekleşmesini sağlar. Birden fazla hareket işlem yöneticisinin yer aldığı ortamlarda, bağlamın bir yöneticiden diğerine aktarılabilmesi gerekir.
 
Hareket işlem yönetimi teknolojisi, iletilerin sıraya sokulmasını, işlem zamanlaması ve işlem önceliklerinin belirlenmesini sağlar. İstemciler, uygulama sunucuları ya da veri tabanları yerine, önce hareket işlem yöneticisine bağlanırlar. Yönetici işlem sorumluluklarını üzerine alarak istemciyi serbest bırakır; hareket tamamlanıncaya dek tüm işlemlerin gerçekleşmesini gözetir; birden çok veri tabanını günceller; hareketin başarılı ya da başarısız olduğunu istemciye iletir. Hareket işlem yönetimi yazılımları bir hareket işlem sisteminin ölçeklenebilirliğini büyük ölçüde artırır. Sistem herbiri farklı hareketleri gerçekleştiren binlerce kullanıcıya aynı anda hizmet verebilir. Yönetici büyük ölçekli çevrimiçi hareket işlem uygulamalarının etkin ve güvenilir biçimde çalışmasını sağlar.
 
Hareket işlem yönetimi pazarında bulunan belli başlı yazılımevleri ve ürünleri şunlardır:
 
* [[Unix]] işletim sistemi için [[Oracle]] Tuxedo; eskiden BEA Tuxedo idi.
* [[Oracle]] EJB JTS (Java Transaction Service); eskiden [[Sun]] JTS idi.
* [[Microsoft]] COM+.
* [[Software AG]] Adabas TPF.
 
Günümüzde uygulama sunucularının çoğu Web uygulamaları barındırdığından, hem bu sunucuların hem de hareket işlem yöneticilerinin [[C (programlama dili)|C]] ve [[COBOL]] gibi geleneksel programlama dillerinin yanı sıra [[Java (programlama dili)|Java]] ve [[C#(programlama dili)|C#]] gibi modern dilleri desteklemesi gerekmektedir.
 
# [[yönetim bilişim sistemi|Yönetim bilişim sistemleri]] ve [[karar destek sistemi|karar destek sistemleri]] gibi sistemlerin hareket işlem verilerine gereksinim duyması.
# Hareket işlem sistemlerinin kurum dışındaki paydaşlara kısmen açık ve onlarla ilişkide olması.
 
Birinci özelliğin önemi, kurumsal [[rapor]]ların doğruluğu ve yönetim [[karar]]larının isabetliliğinin hareket işlem sisteminin tasarımının yetkinliğine ve işleyişinin sağlıklılığına bağlı olmasından kaynaklanmaktadır. Hareket işlem sistemi yasal ve kurumsal belge ve raporların hazırlanmasında olduğu gibi stratejik ve operasyonel kararların alınabilmesi için gereken verilerin bir bölümünü de içlerinde barındırır.
* Claybrook, B. G. (1992). ''OLTP: Online Transaction Processing Systems.'' Wiley.
* Gray, J. ve A. Reuter. (1992). ''Transaction Processing: Concepts and Techniques.'' Morgan Kaufmann.
* Weikum, G. ve G. Vossen. (2001). ''Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery.'' Morgan Kaufmann.
 
==== Dağıtılmış sistemler ====
* Mullender, S. (1993). ''Distributed Systems. 2. Basım.'' Longman.
* Özsu, M. T. ve P. Valduriez. (2011). ''Principles of Distributed Database Systems. 3. Basım.'' Springer.
* Tanenbaum, A. S. ve M. Van Steen. (2006). ''Distributed Systems: Principles and Paradigms. 2.'' Basım. Prentice Hall.
 
==== Veri tabanları ve hareket işlemleri ====
 
* [http://research.microsoft.com/en-us/um/people/philbe/ccontrol.zip Bernstein, P, V. Radzilacos ve V. Hadzilacos. (1987). ''Concurrency Control and Recovery in Database Systems.'' Addison Wesley].
* Elmasri, R. ve S. B. Navathe. (2007). ''Fundamentals of Database Systems. 5. Basım.'' S.596-680. Addison Wesley.
* Silberschatz, A., H. F. Korth ve S. Sudarshan. (2006). ''Database System Concepts. 5. Basım''. S. 609-718. McGraw-Hill.
 
 
 
[[Kategori:Bilişim bilimi]]
463.024

düzenleme