שאלה על Agents

  • פותח הנושא idv
  • פורסם בתאריך

idv

New member
שאלה על Agents

אני יוצר תוכנה שמשתמשת בשני רכיבים: שרת שמחזיק את הנתונים ולוח זמנים Agents שיושבים במחשבים שונים ומבצעים פעילויות לפי נתונים שמתקבלים מהשרת (ברגע שהנתונים מתקבלים הagent מתחיל לעבוד) השאלה איך ליישם את עניין הפעלת ה agent? חשבתי על אפשרות אחת שה agent אחרי ההתקנה פותח פורט TCP מחכה לקבל דרכו נתונים ואז מתחיל לפעול. אבל הבעיה היא שאני משאיר פורט TCP פתוח. יש עוד אופציות?
 
גישה בין לקוח לשרת

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

idv

New member
בהנחה שהבנתי נכון

הagent לא אמור להתחיל לעבוד כשהוא עולה, אלא לחכות במצב המתנה להוראה מהשרת להתחיל לעבוד. אני יכול לגרום לagent לשאול כל פרק זמן מסויים את השרת אם יש עבודה אבל זה, לדעתי, יוצר סתם עבודה של ה agent, גורם לתעבורה מיותרת ברשת ובנוסף גורם לכך שהעבודה לא תתחיל בדיוק בזמן שהיא צריכה אלא תחכה עד שהagnet ישאל את השרת. אני צריך שברגע שהשרת מחליט (עפי" נתונים מהמשתמש) שיש עבודה לagent הוא ישלח לו נתונים והagent יתחיל לבצע בו ברגע.
 
מנגנון רישום

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