פניה לWeb Service - איבוד משאבים?

פניה לWeb Service - איבוד משאבים?

יש לי צורך בשני ממשקים שונים ללוגיקה אחת. זה נצרך בגלל שיש לי שני תוכנות לקוח הקוראות לאותם ה"שירותים" רק מצפות לקבל את התשובה בפרוטוקול שונה. (Web Service, ופקוטוקול ישן של ActionScript). ויש לי שני דרכים לבצע את זה: 1. להוציא את הלוגיקה לDLL, ולישם את הממשקים בנפרד. 2. לאחד את הלוגיקה עם הWebService והממשק השני רק יקרא לWC ו"יתרגם" את התשובות לפרוטוקול השני. (בקיצור SOA) בעיקרון אני אוהב מבחינת תחזוקה את אפשרות 2, השאלה היא אם זה לא בזבוז של משאבי שרת לקרוא כל פעם לWC בצורה לוקאלית? (סריאליזציה ודסריאליזציה...) מישהו מכיר מנסיון? חג שמח
 

user32

Well-known member
מנהל
אכן אלה היתרונות והחסרונות

קריאה לWS היא באמת די יקרה כפי שציינת - סריאליזציה, וכו'. בנוסף, הכל הופך לXML שזה גם מגדיל את נפח הנתונים שעוברים ברשת לעומת Stream רגיל. מבחינת תחזוקה ולוגיקה: נכון שאולי יהיה קצת יותר נכון לבחור באפשרות השנייה. אבל לדעתי עדיף מבחינת ארכיטקטורה להפריד בין השכבות. ליצור שכבת שירותים שמבצעת את הפעולות בפועל ושכבה שנייה של ממשקים בצורה של WS או כל סוג אחר. אגב, רעיון טוב יהיה להגדיר interface ושכל הממשקים יממשו אותו וככה תיאורתית יכול להיות לך ממשק שמבוסס WS, ActionScript, Remoting, DCOM או כל צורה אחרת של התממשקות. זה מודל מאוד נפוץ ומקובל.
 

ekampf

New member
גם ןגם

למה שתי האופציות סותרות אחת את השנייה? תיישם את הלוגיקה ב-DLL נפרד ואז תוכל לחשוף אותה גם כ-web service וגם כ<משהו אחר שאני לא מכיר> WebService הוא רק ממשק ללוגיקה עצמה וכהמלצה אני תמיד מממש את הלוגיקה בנפרד וה-WS הוא פשוט מחלקה שיורשת מהמחלקה הלוגית וחושפת ממשקים החוצה. בכלל, אם אתה עובד לוקאלית (ולא בצורה של שרת-לקוח/שני מחשבים וכו') אז אתה לא צריך באמת web service וזה סתם יפגע בביצועים
 
למעלה