דוגמאות לשירותים

ייוניי

New member
כשכתבתי coupling

למעשה התכוונתי ל tight coupling... אתה צודק שאנחנו לא מדברים כרגע על No Coupling. השאלה היא האם אנחנו רואים את המונח loosly coupled באותו אופן. בעיני רכיבים בעלי צמידות נמוכה ביניהם צריכים "להסכים" ביניהם על מינימום פרטים. ואני לא בדיוק מתכוון להסכמה במובן של contract. ה contract בהחלט מעודד loose coupling אבל ברגע שעובר באמצע הרבה מידע ששני הרכיבים צריכים להסכים על המהות שלו שלא(!) מוגדרת ב contract נוצר מצב של tight coupling. קח למשל בדיקות תקינות, אני לא בטוח מהי ההגדרה לשדות חובה ב WSDL אבל אני מניח שאתה תרצה להוסיף בדיקה במסך שבו נקלט הערך שבסופו של דבר צריך להישלח לאותו שירות. עכשיו קח שדה שמוגדר כשדה רשות שאתה שולח אותו בלי בדיקת תקינות, פתאום ספק השירות מחליט שזה בכל זאת שדה חובה - והנה לך באג בזמן ריצה ובמקרה הגרוע גם שכתוב של מקומות רבים בקוד שעושים שימוש בשירות הזה. איך אנחנו מתמודדים עם זה? אז אני כבר ארכז גם תגובה להודעה של ארנון שמתחת, השימוש ב adapter הוא פתרון טוב ואכן כמעט בכל מקום שבו אני עובד מול רכיבים חיצוניים אני משתמש ב adapter על מנת ליצור loose coupling. אבל, ברגע ששירותים הופכים להיות לשימוש פנים-אפליקטיבי ולא לטובת אינטגרציה מול גורם זר, אני יכול לחסוך את כל ה adapter-ים הללו בעזרת רכיבים שמעודדים צמידות נמוכה (וביצועים משופרים). כלומר, אני מוכן להיות מפרסם של שירות או לקוח של שירות אבל לא שניהם - ולפי מה שאני רואה SOA מדבר על להיות שניהם.
 

arnonrgo

New member
רמת התלות שלך בשרות היא בידך

אם אתה רוצה להיות פחות תלוי בWS של Amazon (ונאמר) לאפשר לשרות שלך לצרוך כל חברת ספרים אחרת אתה צריך להרחיק אותו מהאפליקציה שלך למשל ע"י שכבה נוספת שתשמש כadapter בנוסף מספסיפיקציה כמו WSDL אתה יכול ליצר proxy עי חילול קוד שיתן לך לקרוא לו בדרך יותר נוחה - למרות שיש בזה לדעתי בעיתיות מסוימת - ראה לינקים מצורפים
 
למעלה