מהי SOA?
SOA או Service Oriented Architecture היא ארכיטקטורת תוכנה שנועדה לתמוך בפיתוח
של אפליקציות הבנויות משירותים משולבים.
בפוסט זה, נבין את מושגי המפתח של SOA, היתרונות שלה והחסרונות שלה.
מושגי מפתח של SOA
שירות – שירות הוא יחידת פונקציונליות עצמאית הנגישה דרך רשת.
השירותים יכולים להינתן על ידי רכיבי תוכנה שונים, הפועלים על מכונות שונות, ובאמצעות טכנולוגיות שונות.
שירות יכול לשמש על ידי שירותים אחרים או על ידי יישומי לקוח.
הורדת צמידות – SOA בנויה על העיקרון של Loose Coupling.
השירותים מתוכננים להיות בלתי תלויים זה בזה, כך ששינויים בשירות אחד לא ישפיעו על הפונקציונליות של שירותים אחרים.
Loose Coupling מאפשר גם החלפה או שדרוג של שירותים מבלי להשפיע על שאר המערכת.
תזמור (Orchestration) – במערכת SOA, השירותים מבצעים Orchestration לספק את הפונקציונליות הרצויה.
Orchestration כרוך בהגדרת רצף הפניות לשירותים הדרושים לביצוע משימה ספציפית.
ניתן לעשות זאת באמצעות מנוע Orchestration ייעודי, או באמצעות שילוב של סקריפטים ולוגיקת תכנות.
רג’יסטרי – רג’יסטרי הוא מיקום מרכזי שבו ניתן לכתוב ולגשת לשירותים.
הרג’יסטרי מספק מדריך שירותים זמינים, יחד עם מידע על היכולות והממשקים שלהם.
לקוחות יכולים להשתמש ברישום כדי לאתר את השירותים שהם צריכים.
היתרונות של SOA
גמישות – SOA מספקת ארכיטקטורת תוכנה גמישה שיכולה להתאים לצרכים העסקיים המשתנים.
ניתן להוסיף או להסיר שירותים לפי הצורך, מבלי להשפיע על שאר המערכת.
כך קל יותר להגיב לשינויים בשוק, או לדרישות עסקיות חדשות.
שימוש חוזר – SOA מקדם פיתוח של שירותים לשימוש חוזר שניתן להשתמש בהם באפליקציות מרובות.
זה מפחית את העלות והמאמץ של פיתוח תוכנה חדשה, וזה משפר את האיכות והעקביות של התוכנה.
יכולת פעולה הדדית – SOA מספקת ממשק סטנדרטי לשירותים, המקל על שילוב יישומים ומערכות המשתמשות בטכנולוגיות שונות.
זה מאפשר לארגונים למנף השקעות קיימות בטכנולוגיה, ולהשתלב עם שותפים וספקים חיצוניים.
סקילביליות – SOA תומכת בפיתוח של אפליקציות מבוזרות הניתנות לשינוי אופקי או אנכי.
ניתן לשכפל שירותים על פני מספר שרתים, או שניתן להגדיל אותם או להקטין אותם כדי לטפל בשינויים בעומס העבודה.
חסרונות של SOA
מורכבות – SOA יכולה להיות מורכבת לתכנון, יישום ותחזוקה.
זה דורש רמה גבוהה של כישורי אדריכלות תוכנה, כמו גם מומחיות בתכנות, בדיקות ופריסה.
המורכבות יכולה לגדול עם מספר השירותים ומורכבות התזמור.
ביצועים – SOA מציגה תקורה נוספת בצורה של פניות לשירות ותקשורת רשת.
זה יכול לגרום לביצועים איטיים יותר בהשוואה ליישומים מונוליטיים הפועלים על מכונה אחת.
ניתן לצמצם את השפעת הביצועים על ידי שימוש במטמון, איזון עומסים וטכניקות אופטימיזציה אחרות.
אתגרי אינטגרציה – SOA דורש תכנון ותיאום קפדניים כדי להבטיח שהשירותים משולבים בצורה נכונה.
אתגרי האינטגרציה יכולים להתעורר עקב הבדלים בטכנולוגיות, פרוטוקולים ופורמטים של נתונים.
יכולת פעולה הדדית יכולה להיות מושפעת גם משינויים בשירותים או בסביבה.

