ניהול תנועות

ניהול תנועות (באנגלית: Transaction processing) הוא עיבוד ממוחשב המחולק ליחידות לוגיות של פעולות הנקראות: תנועות (באנגלית: Transactions). לרוב מבוצע ניהול תנועות באופן מקוון. ניהול תנועות מבוצע באמצעות תוכנה ייעודית הנקראת: מוניטור ניהול טרנזקציות (באנגלית: Transaction Processing Monitor). תנועה (טרנזקציה) היא יחידת עיבוד לוגית בעלת משמעות עסקית, למשל: ביצוע פעולה בחשבון בנק, שחרור מטען סחורות מהמכס, הזמנת ספר מחנות ספרים וכדומה. כל טרנזקציה היא יחידה שלמה המתבצעת במלואה או אינה מתבצעת כלל.
==תיאור==
ניהול תנועות מבוסס על תשתיות תוכנה ותשתיות חומרה ועל יישום מחשב. תשתיות תוכנה חשובות במיוחד בעיבוד תנועות הם מוניטורי טרנזקציות ומסדי נתונים. יישום המחשב מורכב מרכיבי תוכנה שכל אחד מהם מטפל בתנועה. מוניטור הטרנזקציות מספק מסגרת כוללת לניהול התנועות. 

ניהול תנועות מעוצב באופן המיועד לשמור את האינטגרטיביות של תנועה, כלומר: תנועה מתבצעת בשלמותה או אינה מתבצעת כלל. המשמעות של שלמות ביצוע תנועה היא עדכון כל הנתונים המשתנים בה או אף נתון שצריך להשתנות בה. הנתונים נמצאים במסד נתונים או בקבצים. תנועה עשויה לעדכן מספר קבצים, מספר מסדי נתונים או מספר מסדי נתונים ומספר קבצים. גם במקרה זה נדרשת שמירת שלמות הנתונים. כך למשל תנועה של העברת כסף מחשבון בנק לתוכנית חיסכון, עשויה לעדכן בסיס נתונים של חשבונות בנק ובסיס נתונים אחר של תוכניות חיסכון. 

תנועה מחברת מספר פעולות נפרדות לישות לוגית אחת. ניהול תנועות צריך להבטיח שלמות של נתוני אותה ישות לוגית.

==מתודולוגיה==
===מטרות===
המטרות שמנסה מתודולוגיית ניהול תנועות להשיג הן:
# הבטחת שלמות תנועה או שהיא מתבצעת בשלמותה או שהחלקים שבוצעו משוחזרים
# עבודה במקביל של מספר רב של תנועות
# זמני תגובה טובים ויציבים עבור משתמש קצה.
===Rollback===
Rollback מבטיח שלמות נתונים של תנועה. השימוש במושג הוא לרוב בהקשר של בסיסי נתונים אך הוא תקף גם בהקשר של נתונים שאינם מאוחסנים בבסיסי נתונים. עם סיום תנועה מתבצעת פעולת Commit. בפעולת ה-Commit נשמרים כל עדכוני ותוספות הנתונים שהתבצעו במהלך התנועה. במקרה של כישלון בביצוע ה-Commit, משוחזרים כל בסיסי הנתונים שהיו מעורבים בתנועה למצבם לפני תחילת ביצועה.

===Rollforward===
Rollforward היא שיטה להבטחת שלמות טרנזקציות במקרה של תקלה בבסיס הנתונים המחייבת שחזור לגיבוי קודם. בקובץ יומן ייעודי נרשמות התנועות. לאחר שחזור בסיס הנתונים לגיבוי האחרון, מעובד היומן והתנועות מעודכנות לבסיס הנתונים. כל התנועות נרשמות באופן המבטיח את שלמותן.

===Locks===
===Compensation===
Compensation היא שיטה לשמירה על שלמות נתונים כשאין אפשרות לבצע Rollback. הכוונה היא למשל לתהליכים עסקיים החוצים מערכות ומנוהלים באמצעות כלי Business Process Management, או למערכות בארכיטקטורה מוכוונת-שירותים או ל-Web Services. סביבות מחשוב כאלה המבוססות על צימוד רפוי אינן תומכות ב-Rollback. באמצעות Compensation אפשר לשחזר מצב לפני עדכונים באמצעים יישומיים במקום באמצעי טכנולוגי של Rollback. כך למשל עם כחלק מהתהליך נקלטו נתונים לא נכונים ביחס לביצוע פעולות בחשבון בנק. אפשר להזין פעולות מנוגדות באותם סכומים ולהחזיר את המצב למצב שלפני העדכון החלקי.

===ACID===

המונח ACID הוא ראשי תיבות של Atomicity, Consistency, Isolation, ו-Durability. ארבע תכונות אלה מאפשרות שמירה על שלמות בסיס הנתונים.

==כלים למימוש ניהול טרנזקציות==
ניהול טרנזקציות מבוצע באמצעות שרתי יישומים, הנקראים מוניטורי תנועות מוניטורי תנועות. בנוסף לשמירת האינטגרטיביות של כל תנועה, הם מספקים שירותי ניהול נוספים, למשל: שירותים לניהול משאבי מחשב ושירותים לניהול בו זמני של מספר רב של תנועות. מונטורי תנועות, שהשימוש בהם נפוץ במיוחד הם: CICS, IMS/DC ו-Tuxedo.

==ראו גם==
* עיבוד תנועות מקוון
* תנועות
* ACID

==קישורים חיצוניים==
<div style="direction: ltr;">
* [https://web.archive.org/web/20141117065726/http://www.zois.co.uk/index.html#tpm Transaction Processing Monitors], ZOIS

קטגוריה:ערכים שבהם תבנית בריטניקה אינה מתאימה
קטגוריה:מחשבים
קטגוריה:תווכה