שילוב מערכות

בהנדסה ובמחשבים, שילוב מערכות או אִינְטֶגְרַצְיָה (באנגלית: system integration) היא פעולת החיבור של רכיבים ושל תתי-מערכות לקבלת מערכת יחידה, ווידוא שתתי-המערכות פועלות יחד כמערכת שלמה. בעולם טכנולוגיות המידע, אינטגרציה היא תהליך הקישור הפיזי או הפונקציונלי של מערכות מחשוב ויישומי מחשב שונים, על מנת שיפעלו יחד כמערכת שלמה ומתואמת. תפקידו של משלב מערכות (אינטגרטור) הוא לחבר מערכות נפרדות תוך שימוש במגוון טכניקות כדוגמת תקשורת נתונים, Business Process Management, Enterprise Application Integration, או תכנות ידני. מערכת מהווה צבר של תתי-מערכות המשתפות פעולה, כך שהמערכת בכללותה תספק פונקציונליות-על מסוימת. שילוב מערכות כולל את השילוב של מערכות קיימות אשר בדרך כלל מנותקות אחת מהשנייה. כמו כן, שילוב מערכות עוסק בהקניית ערך מוסף למערכת - יכולות אשר מתאפשרות רק בזכות האינטראקציות בין תתי-המערכות. בעולם "המחובר" המודרני, תפקידם של מהנדסי אינטגרציה צובר חשיבות: יותר ויותר מערכות מתוכננות לתמוך בחיבוריות, הן עם מערכות שנמצאות בפיתוח והן עם מערכות שכבר נפרסו. מהנדס אינטגרציה נדרש להיות בעל טווח רחב של כישורים, ובדרך כלל הוא מתאפיין ברוחב ידיעותיו אך לא בעומק ידיעותיו בתחום ספציפי. בדרך כלל כישורים אלה כוללים הנדסת תוכנה וחומרה, פרוטוקולי תקשורת וכישורים כלליים לפתרון בעיות. סביר שהבעיות שיצטרך לפתור לא נפתרו עדיין בעבר חוץ מאשר במובן הרחב ביותר, ונראה שהן יכללו אתגרים חדשים המגיעים מכיוונם של מספר רב של מהנדסים. תפקידו של מהנדס האינטגרציה הוא "לקשור את הכל יחד". אינטגרציה אנכית (בניגוד לאינטגרציה אופקית) היא תהליך של שילוב תתי-מערכות בהתאם לפונקציונליות שלהן, על ידי יצירת ישויות פונקציונליות הנקראות גם information silos ("ממגורות מידע"). היתרון של שיטה זו הוא בכך שהאינטגרציה מבוצעת במהירות ומעורבים בה רק הספקים ההכרחיים, לפיכך שיטה זו זולה יותר בטווח הקצר. מצד שני, עלות הבעלות יכולה להיות משמעותית גבוהה יותר מאשר בשיטות אחרות מאחר שבמקרה ומשתנה או מתווספת פונקציונליות חדשה, הדרך היחידה ליישם אותה (להתאים את המערכת לגידול) תהיה על ידי מימוש silo אחר. שימוש מחדש בתתי מערכות ליצירת פונקציונליות שונה אינו אפשרי. אינטגרציית כוכב נקראת גם אינטגרציית ספגטי, היא תהליך של שילוב מערכות שבו כל תת-מערכת מחוברת לכל אחת מתתי-המערכות האחרות. שיטה זו נקראת כך משום שאם מסתכלים על גרף המערכת מנקודת מבט של אחת מתתי-המערכת, הקשרים מזכירים כוכב, אבל אם מסתכלים על הדיאגרמה הכוללת של המערכת, הקשרים נראים כמו ספגטי. העלות של אינטגרציה כזאת משתנה בהתאם לממשקים שכל תת-מערכת חושפת. במקרה בו תתי-המערכות חושפות ממשקים שונים או קנייניים, עלות האינטגרציה יכולה להיות משמעותית גבוהה יותר. המחיר והזמן הנדרשים לשילוב מערכות גדל מעריכית עם הוספה של כל תת-מערכת נוספת. מנקודת מבט של התכונה המתווספת (feature), לעיתים קרובות שיטה זו נראית מועדפת בזכות הגמישות הרבה בשימוש מחדש (reuse) בפונקציונליות קיימת. אינטגרציה אופקית או (Enterprise Service Bus (ESB היא שיטת אינטגרציה בה תת-מערכת מיוחדת מיועדת לתקשורת בין תתי-המערכות האחרות. זה מאפשר להוריד את מספר החיבורים (ממשקים) הנדרשים לחיבור אחד בלבד עבור כל תת-מערכת, שתתחבר ישירות אל ה-ESB. תפקיד ה-ESB הוא לתרגם בין סוגי ממשקים. זה מאפשר להוריד את העלויות ומספק גמישות רבה ביותר. כאשר מערכות משולבות בשיטה זו, ניתן להחליף לגמרי תת-מערכת מסוימת בתת-מערכת אחרת שמספקת פונקציונליות דומה אבל חושפת ממשקים שונים, וכל זאת בצורה שקופה לחלוטין מבחינת יתר תתי-המערכות. הדבר היחיד שנדרש הוא לממש את הממשק שבין ה-ESB לתת-המערכת החדשה. פורמט נתונים נפוץ/משותף זוהי שיטת אינטגרציה שמטרתה להימנע מכך שכל מתאם (adapter) יצטרך להמיר נתונים בין כל סוגי הפורמטים של כל היישומים האחרים. מערכות (Enterprise Application Integration (EAI בדרך כלל קובעות פורמט נתונים נפוץ ובלתי תלוי בסוגי היישומים. כמו כן, מערכת EAI בדרך כלל מספקת שירות להמרת נתונים כדי לעזור בהמרה בין פורמטים ייחודיים של יישומים ספציפיים לבין פורמטים נפוצים. זה מבוצע בשני שלבים: המתאם ממיר מידע מהפורמט של יישום ספציפי לפורמט המשותף של הערוץ (bus) ולאחר מכן מיושמות עליו טרנספורמציות סמנטיות (לדוגמה, פיצול או מיזוג של אובייקטים של יישום אחד לאובייקטים של יישום אחר). Enterprise Service Bus Enterprise Application Integration בדיקות אינטגרציה Continuous integration