1 / 28

מודל SDMV מערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים

מודל SDMV מערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים. ראשי פרקים. מבוא ורקע מערך הבקרה הממוחשב חישוב וארכיטקטורות אובייקטים מבוזרים המודל דרישות הגדרות SDMV Framework בחירת ארכיטקטורה מבוזרת Design Pattern : Observer מימוש והצצה בקוד מסקנות מילוי הדרישות

rusty
Download Presentation

מודל SDMV מערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מודל SDMVמערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים

  2. ראשי פרקים • מבוא ורקע • מערך הבקרה הממוחשב • חישוב וארכיטקטורות אובייקטים מבוזרים • המודל • דרישות • הגדרות • SDMV Framework • בחירתארכיטקטורהמבוזרת • Design Pattern : Observer • מימושוהצצהבקוד • מסקנות • מילויהדרישות • בעיותפתוחות • תרומתהעבודה

  3. מערך המחשוב הנוכחי • המחשב המרכזי - נקודת כשל וצוואר בקבוק LAN מחשב מרכזי #1 מרכזיתתקשורת מחשב מרכזי #2 • פרוטוקולי תקשורת נמוכים מקשים על הרחבות • קישוריות לגורמים אחרים מחשב מקומי מכ”ם מחשב מקומי מרכב אופטי

  4. טוענים שחישוב מבוזר משפר : • שיתוף פעולה באמצעות קישוריות ורשתות מחשבים • הגברת ביצועים באמצעות חישוב מקבילי • אמינות ונגישות באמצעות שכפול • הנמכת עלות באמצעות שיתוף משאבים והתאמה לסטנדרטים נפוצים • יכולת הרחבה באמצעות קונפיגורציה (דינמית)

  5. Distributed Object Computing • הוספת היתרונות ש- OOPהוסיף לתכנות פרוצדורלי כמו: • Encapsulation • Inheritance • Polymorphism • parameterized types • object-based exception handling • קישוריות בין יישומים ברמת הפשטה גבוהה יותר • תשתית למנגנונים המאפשרים שירותים ברמה גבוהה יותר עבור יישומים מבוזרים.

  6. מודל לאובייקטים מבוזרים • לקוח פונה לאובייקטים ללא תלות במיקום ומימוש • שפה כללית להגדרת ממשקים (Interface Definition Language) • שכבה מתווכת (Object Request Broker) • שירותים נוספים (Naming, Transactions…)

  7. מודל כללי לשירות אירועים סינכרוניא-סינכרוני

  8. יתרונות למודל של אירועים • מצבו של כל משתתף, די בלתי תלוי באחרים - Loose coupling • מספר תהליכים יכול לגדול ללא שינוי המערכת • במקרה של נפילת תהליך, אין אפקט דומינו • רמת הפשטה גבוהה יותר – שירות סטנדרטי • הוספת presistanceבקלות (בתווכה / תהליך נוסף) • קונפיגורציה נוחה - אין צורך לחפש שמות • multicast-broadcast \ filtering • קישוריות בין שירותים שונים (XML) • קרובי משפחה: DOC  MOM, Blackboard

  9. ארכיטקטורות כלליות • CORBA – Common Object Request Broker ArchitectureOMG ‘89: Object bus, Services - Event\Notification. • DCOM – Distributed Component Object ModelCOM: OLE, ActiveX DCOM (‘96), COM+ Events. • JAVA RMI – Remote Method InvocationJMS

  10. ארכיטקטורות לסימולציות • DIS - Distributed Interactive Simulation • ALSP - Aggregate Level Simulation Protocol • HLA - High Level Architecture • Federation Rules • Interface Specification: Run-Time Infrastructure (RTI) • Object Model Template (OMT) • Process, Tools ...

  11. ITEA `93  =

  12. טופולוגיה רצויה

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

  14. המודל - SDMV • Synchronized Distributed Mapped Values • Static Simulated Object • In-Process Active Object • Object Model Template • Federate • Federation

  15. Object Model Template

  16. SDMV Framework

  17. בחירת ארכיטקטורת תוכנה - HLA • עוד רמת הפשטה - יתרונות של ארכיטקטורות שונות • התממשקות עם גורמים חיצוניים • סוגים שונים של סימולציות, משתתפים חיים עם ווירטואליים • שימוש חוזר בקוד • מנגנונים וכלים לסימולציות מבוזרות • סנכרון בין משתתפים • מנגנון publish\subscribe • שירות אירועים מבוזר • כלי פיתוח, ניהול ובקרה של מערכת מבוזרת

  18. Design Patterns • ייצוג של פתרונות לבעיות שכיחות בהקשרים מסוימים • תפיסת המבנה והיחסים הסטטיים והדינמיים בין מרכיבים של תוכנה • קידום של שימוש חוזר בקוד ובעיצוב • שפה !!!: • Intent, AKA, Motivation, Applicability, Structure, Participants, Collaborations, Consequences, Implementation • GOF - 1994 • Framework: מספר DPביחד, תחום ספציפי, קוד

  19. Design Pattern: Observer • Intent:Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. • Motivation: MVC or MFC - Document\View Architecture • Structure: • Implemetation:Mapping, Trigger Event, Update Protocol, Observing More than 1 Object, … -> ChangeManager

  20. SDMV - UML Class Diagram

  21. SDMV - Collaboration Diagram

  22. הצצה בקוד • TestConnector& testConnector = TestConnector::instance(federateName.c_str(), fedExecName, fedFileName); • Position::_positionHandle = testConnector.addPublisher (&pos, &pos, 0, "Entity", attributes); • Position::_positionHandle = testConnector.addSubscriber (&pos, "Entity", attributes); • testConnector.updateAllObjects(); • testConnector.updateObject(Position::_positionHandle );

  23. Callbacks class Position : public IConnectorCallback { double _x, _y, _z; public: // ctor Position () : _x(0.0), _y(0.0), _z(0.0) {} // Callback functions for Position void updateAttr(TcHandle handleObject, TcHandle& userData, void **ppPositionObject, const string& sourceName, const string& attrName, char* attrValue, int& attrValueLength); void reflectAttr(TcHandle handleObject, TcHandle& userData, void **ppPositionObject, const string& sourceName, const string& attrName, const char* attrValue, const int& attrValueLength);

  24. Conversions // cast to the right object pPos = reinterpret_cast<Position*>(*ppPositionObject); // get value according to attribute name if (attrName == "Location") { TypeConvertor conv(attrValue, attrValueLength); conv << pPos->_x << pPos->_y << pPos->_z; }

  25. מילוי הדרישות • שימוש בארכיטקטורות אובייקטים מבוזרים • ביטול המחשב המרכזי • SDMV Framework • שחרור מתלות בפלטפורמה ותווכה • פשטות ומהירות פיתוח, התרכזות בלוגיקה • HLA • הקלטה ושיחזור שילוב סימולציות • קונפיגורציה דינמית  התממשקות לגורמי חוץ • מנגנון סינכרון • הצעה להתממשקות למערכת הקיימת

  26. מדידת ביצועים • יישום לדוגמא - 24Byte + • Pentium III 450 MHz, 64 RAM, Windows NT • 10MB Ethernet • MAK RTI  DMSO RTI, LOCAL  LAN • Mean Update Time (ms) < 10Hz

  27. בעיות פתוחות • Quality of Service - RealTime • HLA • RTIאיטי ומכיל נקודות כשל • RTI APIמסורבל • אין marshalling לטיפוסי נתונים • המשך פיתוח, עמידה בסטנדרטים וכלי תוכנה בעתיד • הנחותבמימושהמודל (שעוןמשותף, בעלותעלשדות) • המשךפיתוח • בחירתטכנולוגיהלמימוש • בסיסינתונים, גרפיקה… • רדיוסהשדה

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

More Related