280 likes | 491 Views
מודל SDMV מערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים. ראשי פרקים. מבוא ורקע מערך הבקרה הממוחשב חישוב וארכיטקטורות אובייקטים מבוזרים המודל דרישות הגדרות SDMV Framework בחירת ארכיטקטורה מבוזרת Design Pattern : Observer מימוש והצצה בקוד מסקנות מילוי הדרישות
E N D
מודל SDMVמערכת בקרה לסימולציה מבוזרת ביישום ארכיטקטורות אובייקטים מבוזרים
ראשי פרקים • מבוא ורקע • מערך הבקרה הממוחשב • חישוב וארכיטקטורות אובייקטים מבוזרים • המודל • דרישות • הגדרות • SDMV Framework • בחירתארכיטקטורהמבוזרת • Design Pattern : Observer • מימושוהצצהבקוד • מסקנות • מילויהדרישות • בעיותפתוחות • תרומתהעבודה
מערך המחשוב הנוכחי • המחשב המרכזי - נקודת כשל וצוואר בקבוק LAN מחשב מרכזי #1 מרכזיתתקשורת מחשב מרכזי #2 • פרוטוקולי תקשורת נמוכים מקשים על הרחבות • קישוריות לגורמים אחרים מחשב מקומי מכ”ם מחשב מקומי מרכב אופטי
טוענים שחישוב מבוזר משפר : • שיתוף פעולה באמצעות קישוריות ורשתות מחשבים • הגברת ביצועים באמצעות חישוב מקבילי • אמינות ונגישות באמצעות שכפול • הנמכת עלות באמצעות שיתוף משאבים והתאמה לסטנדרטים נפוצים • יכולת הרחבה באמצעות קונפיגורציה (דינמית)
Distributed Object Computing • הוספת היתרונות ש- OOPהוסיף לתכנות פרוצדורלי כמו: • Encapsulation • Inheritance • Polymorphism • parameterized types • object-based exception handling • קישוריות בין יישומים ברמת הפשטה גבוהה יותר • תשתית למנגנונים המאפשרים שירותים ברמה גבוהה יותר עבור יישומים מבוזרים.
מודל לאובייקטים מבוזרים • לקוח פונה לאובייקטים ללא תלות במיקום ומימוש • שפה כללית להגדרת ממשקים (Interface Definition Language) • שכבה מתווכת (Object Request Broker) • שירותים נוספים (Naming, Transactions…)
מודל כללי לשירות אירועים סינכרוניא-סינכרוני
יתרונות למודל של אירועים • מצבו של כל משתתף, די בלתי תלוי באחרים - Loose coupling • מספר תהליכים יכול לגדול ללא שינוי המערכת • במקרה של נפילת תהליך, אין אפקט דומינו • רמת הפשטה גבוהה יותר – שירות סטנדרטי • הוספת presistanceבקלות (בתווכה / תהליך נוסף) • קונפיגורציה נוחה - אין צורך לחפש שמות • multicast-broadcast \ filtering • קישוריות בין שירותים שונים (XML) • קרובי משפחה: DOC MOM, Blackboard
ארכיטקטורות כלליות • 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
ארכיטקטורות לסימולציות • 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 ...
ITEA `93 =
דרישות כלליות מהמערכת • בניה מעל ארכיטקטורות אובייקטים מבוזרים תוך ניצול השירותים שלהן • ביזור הפונקציונליות של המערכת • יכולת הקלטה ושיחזור של מצבי המערכת המבוזרת • קונפיגורציה דינמית • יכולת שילוב אלמנטים פיסיקליים עם אלמנטים סימולטיביים • קישוריות והחלפת מידע עם גורמים חיצוניים • עמידה באילוצי זמן אמת של ניסויים • התממשקות עם המערכת הקיימת
המודל - SDMV • Synchronized Distributed Mapped Values • Static Simulated Object • In-Process Active Object • Object Model Template • Federate • Federation
בחירת ארכיטקטורת תוכנה - HLA • עוד רמת הפשטה - יתרונות של ארכיטקטורות שונות • התממשקות עם גורמים חיצוניים • סוגים שונים של סימולציות, משתתפים חיים עם ווירטואליים • שימוש חוזר בקוד • מנגנונים וכלים לסימולציות מבוזרות • סנכרון בין משתתפים • מנגנון publish\subscribe • שירות אירועים מבוזר • כלי פיתוח, ניהול ובקרה של מערכת מבוזרת
Design Patterns • ייצוג של פתרונות לבעיות שכיחות בהקשרים מסוימים • תפיסת המבנה והיחסים הסטטיים והדינמיים בין מרכיבים של תוכנה • קידום של שימוש חוזר בקוד ובעיצוב • שפה !!!: • Intent, AKA, Motivation, Applicability, Structure, Participants, Collaborations, Consequences, Implementation • GOF - 1994 • Framework: מספר DPביחד, תחום ספציפי, קוד
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
הצצה בקוד • 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 );
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);
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; }
מילוי הדרישות • שימוש בארכיטקטורות אובייקטים מבוזרים • ביטול המחשב המרכזי • SDMV Framework • שחרור מתלות בפלטפורמה ותווכה • פשטות ומהירות פיתוח, התרכזות בלוגיקה • HLA • הקלטה ושיחזור שילוב סימולציות • קונפיגורציה דינמית התממשקות לגורמי חוץ • מנגנון סינכרון • הצעה להתממשקות למערכת הקיימת
מדידת ביצועים • יישום לדוגמא - 24Byte + • Pentium III 450 MHz, 64 RAM, Windows NT • 10MB Ethernet • MAK RTI DMSO RTI, LOCAL LAN • Mean Update Time (ms) < 10Hz
בעיות פתוחות • Quality of Service - RealTime • HLA • RTIאיטי ומכיל נקודות כשל • RTI APIמסורבל • אין marshalling לטיפוסי נתונים • המשך פיתוח, עמידה בסטנדרטים וכלי תוכנה בעתיד • הנחותבמימושהמודל (שעוןמשותף, בעלותעלשדות) • המשךפיתוח • בחירתטכנולוגיהלמימוש • בסיסינתונים, גרפיקה… • רדיוסהשדה
תרומת העבודה • בחינה של ארכיטקטורות תוכנה חדשות בתחום של חישוב אובייקטים מבוזרים • פיתוח מודל מבוזר ליישומי בקרה וסימולציה • מיפוי בין המודל לבין ארכיטקטורות תוכנה של אובייקטים מבוזרים • יישום שיטות של הנדסת תוכנה ותכנות מונחה עצמים עבור יישום מבוזר • פיתוח תשתית שתאפשר פיתוח מהיר וזול של מערכת הבקרה ושל הרחבותיה בהמשך