PracticU

Pattern - Request-Reply

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › Pattern - Request-Reply
מילון מושגים:
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
אסינכרוני - אופן פעולה שבו פעולה ארוכה רצה ברקע והתוכנית ממשיכה בלי להמתין לה, ומטופלת כשתסתיים.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.

Pattern - Request-Reply
השיעור מציג את תבנית החילופין הראשונה בין הלקוח לשרת, Request-Reply, ובודק איך היא מתנהגת גם כשהפונקציה אינה מחזירה ערך.
Request-Reply
1. הלקוח קורא לפונקציה ושולח לה פרמטרים.
2. השרת מבצע את הפונקציה ומחזיר ערך.
3. הלקוח ממתין עד שהתשובה מגיעה, ורק אחר כך ממשיך בקוד.
בהדגמה נוסף לפונקציה Add השהיה של חמש שניות בעזרת Thread.Sleep. ההוסט והצרכן רצים יחד, והצרכן ממתין חמש שניות לפני שהתשובה מוצגת.
פונקציה ללא ערך מוחזר
נוספה פונקציה SendFeedback מסוג void, שמדפיסה את המשוב בקונסול של השרת. בצד הלקוח הכפתור שולח את הטקסט מתיבת הטקסט.
1. בברירת המחדל, Request-Reply ממתין לסיום הפונקציה גם כשאין ערך מוחזר.
2. בהדגמה, כשיש בשרת השהיה של חמש שניות, הלקוח מקבל את אישור השליחה רק אחרי חמש שניות.
מסקנה
ההמתנה נובעת מדפוס החילופין עצמו, ולא מסוג הערך המוחזר. בקריאה אסינכרונית אפשר לשחרר את הטופס, אבל הדפוס נשאר Request-Reply.
כברירת מחדל, כל קריאה לשירות היא Request-Reply, וזה משפיע על הזמן שהלקוח ממתין.
השיעור הבא בקורס: Pattern - One Way

פרקי ההרצאה: Pattern - Request-Reply

  1. 00:00

    שלוש שיטות Message Exchange Pattern

  2. 00:38

    Request-Reply: הלקוח ממתין לתשובה

  3. 01:33

    הרצת השירות והלקוח ביחד

  4. 02:19

    השהיה של 5 שניות בצד השרת

תמלול ההרצאה: Pattern - Request-Reply

הטקסט המלא של הדקות הראשונות בהרצאה «Pattern - Request-Reply» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:19

    אנחנו מגיעים לנושא שנקרא Message Exchange Pattern, וזה בעצם אומר מהי השיטה שבה הקליינט והסרבר מתקשרים ביניהם מבחינת קריאות לפונקציות. ויש סך הכל שלוש שיטות.

  2. 00:36

    בואו נראה את הראשונה קודם. השיטה הראשונה נקראת Request Reply. מה זה אומר? לקוח, בואו נסתכל רגע על הקוד שלו. יש לנו כאן קריאה לפונקציה, לפונקציה Add.

  3. 00:50

    אז לקוח קורא לפונקציה, שולח לה פרמטרים. הפונקציה יכולה להחזיר ערך והיא יכולה לא להחזיר ערך. כרגע הפונקציה הזאת מחזירה ערך. הפונקציה שבפועל מתבצעת בשרת, בואו נסתכל עליה, במחלקה קלקולטור, נקראת add, מקבלת את הפרמטרים, עושה מה שעושה ומחזירה ערך.

  4. 01:11

    ואז, כאשר הלקוח קורא לה, אז הוא צריך להמתין עד שהפונקציה מסתיימת. ואז הוא מקבל את הערך וממשיך הלאה בקוד שלו. אז בואו נרשום כאן שהשיטה הזאת היא request, מפני שהוא מבצע ריקווייסט וממתין לריפליי מהצד של השרת.

  5. 01:33

    אוקיי, בואו נבדוק את זה. נרים את ההוסט לאוויר, לאחר מכן נרים גם את הלקוח לאוויר, מבצע סטארט-אפ פרוג'קט, נרים אותו, נשלח פרמטרים, ואנחנו רואים שהפעולה עובדת כמו שצריך, הכל בסדר.

  6. 01:57

    אם הלקוח היה לדוגמה לוקח הרבה זמן לביצוע, בואו נשים פה thread sleep 5 שניות ונריץ שוב פעם את צד הלקוח, נכניס ערכים, אנחנו קיבלנו פה שגיאה כי אנחנו מנסים להריץ את הסרוויס גם כן, אז בואו נחבר אותו ונריץ את שניהם ביחד על ידי פרופרטיז, נגדיר בפרופרטיז ששני הפרויקטים רצים, נגדיר שההוסט רץ ראשון, אין צורך בדיבאגינג כרגע,

  7. 02:41

    נגדיר שהConsumer רץ שני ושוב פעם נריץ את שניהם ביחד. אז אם אנחנו מריצים את שניהם עכשיו אנחנו רואים שהלקוח לוקח לו 5 שניות עד שהוא מקבל את התשובה.

  8. 02:57

    במהלך ה-5 שניות האלה הלקוח לא זז מילימטר עד שהוא יקבל את התשובה מפני שהוא חייב לקבל אותה בשביל להמשיך הלאה. זאת אומרת שכל פעם שהשרת מחזיר לי מפונקציה ערך אני חייב פשוט לשבת ולהמתין עד שהערך חוזר אלא

לקורס המלא: קורס WCF אונליין בדוט-נט

ההרצאה הקודמת: Multiple Contracts

ההרצאה הבאה: Pattern - One Way

הרצאות קשורות מקורסים אחרים

  • The Listener Pattern
  • Angular4 - Validator Pattern
  • הוספת Request לטסט
  • פייטון design pattern factory

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C