מייקל צ'ן | אסטרטג תוכן | 28 במרץ 2024
ארכיטקטורה מוכוונת שירות (SOA) היא גישה לעיצוב תוכנה המתמקדת בבניית מערכות תוכנה פונקציונליות וניתנות להרחבה מרכיבים בודדים, הנקראים שירותים. השירותים יכולים לתקשר אחד עם השני כדי לבצע משימות, כגון מתן אפשרות להתחבר למערכת פעם אחת ולגשת למגוון יישומים עסקיים. ב-SOA, הדגש הוא על מודולריות, שימוש חוזר ויכולת הפעלה הדדית - כאשר עסקים מפרקים יישומים מורכבים לאבני בניין קטנות שקל יותר לנהל, התוצאה היא גמישות ויכולת התרחבות טובות יותר.
השירותים אינם מקודדים ביישומים. במקום זאת, שירותים מתפרסמים במרשם הנתונים, וכאשר יישום רוצה להשתמש בשירות, הוא מבקש ממרשם הנתונים למצוא את הגרסה העדכנית ביותר. בדרך זו, אנשים יכולים לשנות או לעדכן את השירותים בקלות גם ללא ידע מפורט על היישום. גישת SOA מקלה על הסתגלות לצרכים העסקיים המשתנים ועל שילוב המערכות המספקות פונקציונליות קשורה.
עם SOA, שירותים בודדים משתלבים באופן רופף ויכולים לתקשר ולהעביר נתונים לפי הצורך. לדוגמה, לנקיטת גישת SOA לפיתוח תוכנה בענן יש יתרונות, כגון:
דוגמאות לארכיטקטורות מוכוונות שירות יכולות להיות:
ארכיטקטורה מוכוונת שירות (SOA) היא פרדיגמה עיצובית שיוצרת או מוסיפה יישומים בעלי אבני בניין עצמאיות הניתנות לשימוש חוזר - שירותים - המספקים פונקציות ספציפיות שניתן להפעיל ברשת. לכל שירות יש היקף מוגדר וניתן לגשת אליו דרך רכיבים או שירותים אחרים בארכיטקטורה כדי לשפר את הפונקציונליות והביצועים הכוללים של המערכת.
דוגמאות לשירותים בארכיטקטורה מוכוונת שירות יכולות להיות שירות לעיבוד תשלומים, שירות לניהול לקוחות או שירות להמלצות מוצרים שניתן להטמיע באתר מסחר אלקטרוני. יש שירותים אחרים הפשוטים בהרבה, כמו שירות המציין את הזמן הנוכחי בעיר בצד השני של העולם. דוגמה ליתרון רב עוצמה של שימוש ב-SOA היא היכולת לבצע החלפת מעבדי תשלום מבלי לשנות יישומים שצריכים להשתמש בשירות.
SOA מאפשרת תשתית תוכנה מודולרית וגמישה, שבה ניתן לפתח, לבדוק ולפרוס שירותים בודדים באופן עצמאי. שני יתרונות עיקריים הם קלות התחזוקה ויכולת ההתרחבות.
אופן העבודה של גישת SOA הוא צימוד שירותים באופן רופף במסגרת של היישום. כל שירות פועל כמודול המסוגל לספק את הקלט/פלט המבוקש. היישום אינו צריך לדעת את גרסת השירות שבו הוא משתמש. במקום, הוא בודק במרשם הנתונים ומוצא את השירות העדכני ביותר המציע את הפונקציונליות הדרושה. הסתכל על תהליך העבודה הבא של אתר האינטרנט של קמעונאי שנבנה במודל SOA.
SOA מאיצה את הפיתוח של אתר מסוג זה בכך שהיא מאפשרת שילוב של שירותים בזמינות גבוהה. בדוגמה זו, הקמעונאי לא רק נמנע מהנטל שבפיתוח כל אחד ממודולים אלה בנפרד, אלא גם נמנע מהצורך לעקוב אחר עדכוני שירות. צוות ה-IT יכול פשוט להשתמש בשירותים שנבדקו עם פונקציונליות, אבטחה וזמינות מוכחות.
המפתח לפיתוח SOA הוא לחשוב באופן מודולרי ולהבין היכן קיימות הזדמנויות לשילוב שירות. יישומים שפותחו בענן יכולים בקלות לנצל מערכים ענקיים של שירותים בסגנון SOA המיושמים כשירותי אינטרנט.
לתשתית SOA מודולרית וגמישה יתרונות גדולים עבור חברות שמאמצות את הענן. הנה עוד מגמות מובילות.
מהי דוגמה לארכיטקטורה מוכוונת שירות?
דוגמה לצריכה של ארכיטקטורה מוכוונת שירות היא יישום עבור אנשים שאוהבים לרוץ. במקום לבנות כלים מותאמים אישית למעקב מרחוק ומפות, היישום יכול לשלב שירותים עבור מכשיר ה-GPS של הטלפון ושירות מפות קיים, כגון גוגל מפות. אפשר גם למשוך נתונים על מזג האוויר המקומי משירות מזג האוויר הלאומי. זהו התפקיד של היישום - להציג נתונים משירותים אלה בצורה חלקה לטובת האדם שרץ.
מה ההבדל בין SOA למיקרו-שירותים?
לשירותי SOA ולמיקרו-שירותים יש מטרה דומה - לספק ליישומים פונקציונליות באמצעות קריאות פונקציה מבוססות רשת. עם זאת, SOA עושה שימוש ברמה רחבה, ובדרך כלל גבוהה יותר. מיקרו-שירותים עושים שימוש ברמת היישום ומספקים שירות למשימה ייעודית אחת שחוזרת לפי הצורך. לדוגמה, תוסף אימות להתחברות מאובטחת ייחשב חלק מ-SOA; אולם, שירות שחוזר על עצמו ומצפין את הסיסמה הוא מיקרו-שירות. מיקרו-שירותים יכולים להיקרא במסגרת שירות SOA או להשתלב בפרויקט הגדול יותר. בדוגמה זו, שירות האימות ישתמש במיקרו-שירות של ההצפנה כדי לבצע את עבודתו. ההיקף הוא ההבדל העיקרי בין השניים.
מהם המאפיינים העיקריים של ארכיטקטורה מוכוונת שירות?
המאפיינים העיקריים של ארכיטקטורה מוכוונת שירות הם:
היכן נעשה שימוש בארכיטקטורה מוכוונת שירות?
ארכיטקטורה מוכוונת שירות יכולה לשמש כמעט כל יישום כל עוד קיימים שירותים עצמאיים העומדים בדרישות המערכת. בגלל המערכת האקולוגית של פיתוח השירותים הנרחבים, רוב יוצרי התוכנה יכולים למצוא את השירות כדי למלא צורך - אפילו הפרויקט המותאם אישית ביותר עדיין יוכל להשתמש בשירות עצמאי עבור משהו כמו אימות זהות או משיכת נתוני מפה.