Table of Contents
מבוא
מערכות ניטור הנדסה הן עמוד השדרה של תשתיות מודרניות, להבטיח את הבטיחות, היעילות והאמינות של נכסים מורכבים כגון גשרים, רשתות חשמל, צמחים תעשייתיים ומרכזי נתונים.מערכות אלה חייבות להתמודד עם זרמים עצומים של נתוני חיישן, להסתגל לתצורה חומרה משתנה, להישאר שמירה על פני עשרות שנים של פעולה. שילוב דפוסי עיצוב יצירתיים לפיתוח של מערכות כאלה יכול לשפר באופן דרמטי גמישות, קיבולת, שמירה על מאמר זה מספק כדי שילוב של שיטות פעולה, כדי למנוע מודלים מדויקים כדי לפתח מודלים, מודלים של פעולות, עיצוב קונקרטיים, כדי לפתח מודלים מדויקים, כדי לפתח מודלים של שיטות פעולה, וטכניקות עיצוב עיצוב עיצוביים, כדי לפתח שיטות פעולה, כדי שילוב של עיצוב קונקרטיות, כדי לפתח שיטות פעולה, כדי שילוב של שיטות פעולה, כדי לפתח שיטות פעולה, מודלים מדויקים, כדי לפתח מודלים מדויקים, כדי לפתח של עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוב עיצוביים, כדי לפתח מערכות כאלה, כדי לפתח מודלים יעיל יותר, כדי לפתח מערכות כאלה, כדי לפתח של שיטות פעולה, כדי לפתח מערכות כאלה יכול לשפר באופן יעיל יותר, כדי לפתח שיטות פעולה, כדי לפתח מערכות כאלה יכול לשפר באופן יעיל יותר, כדי לפתח שיטות פעולה, כדי לפתח שיטות פעולה, כדי לפתח שיטות פעולה, כדי לפתח שיטות פעולה, כדי לפתח שיטות פעולה, כדי לפתח שיטות פעולה, כדי לפתח
מדוע שיטות יצירה חשובות במערכות מעקב
מערכות ניטור הנדסה הן דינמיות מטבען ולעתים קרובות מבוזרות.הם חייבים לנהל מגוון של תרחישים יצירת אובייקטים: הקמת קשרים לחיישנים heterogeneous, הטמעת צינורות נתונים, בניית כללים אזהרות מורכבות, ולטפל אובייקטים תצורה המשתנה לאורך זמן. ליצור דפוסים מופשטים תהליך ההרגעה, דה-קופיד של הלקוחות ממימוש קונקרטי.
ללא דפוסים יצירתיים, קוד ניטור יכול להיות מוצף עם קשיח קודקוד (FLT:0) הצהרות, מה שהופך אותו לפענוח וקשה להרחיב. כאשר סוג חיישן חדש נוסף, מפתחים עשויים להיות צריכים לשנות עשרות שיעורים.על ידי יישום דפוסים כמו מפעל או מפעל אבסטרקטי, המערכת מקבלת את היכולת להציג סוגים חדשים של רכיבים עם הפרעה מינימלית באופן דומה, Singleton מבטיח כי משאבים כגון מנהלים או יומני תצורה הם סכסוכים, ומונעים באופן עקבי, חסופים.
המונחים: key Creational Patterns
בעוד דפוסים רבים של הבריאה קיימים, להלן רלוונטיות ביותר עבור מערכות ניטור הנדסיות.כל דפוס מתייחס לאתגר מסוים ליצירת אובייקט.
Singleton Pattern
דפוס ה- Singleton מגביל מעמד לדוגמה אחת ומספק נקודת גישה גלובלית אליו. במערכות ניטור, Singleton אידיאלי לניהול משאבים קריטיים שחייבים להישאר ייחודיים במערכת, כגון חנות תצורה מרכזית, לוגר מאובטח חוט, או שכבת חומרה מופשטת אינטראקציה עם כרטיס רכישה יחיד.
(FLT:0) דוגמה אמיתית לעולם: מערכת ניטור רטט עבור מכונות רוטטת משתמש מנהל חיבור של Singleton המחזק שקע מתמשך לבקר לוגיקה הניתן לתוכנה (PLC) על ידי הבטחת חיבור אחד קיים, המערכת נמנעת מתכנים משאבים ומבטיחה תעריפים עקביים של נתונים.
שיטת המפעל
שיטת המפעל מגדיר ממשק ליצירת אובייקט, אך מאפשר תת-classes להחליט איזה שיעור למידיט.תבנית זו היא בלתי-סבירה כאשר מערכת ניטור חייבת לתמוך במשפחות חיישן מרובות, כל אחת עם פרוטוקול משלה או לוגיקה ראשונית שלו. מסגרת ניטור הבסיס מגדירה שיטת מפעל FLT:1, ו subclasses קונקרטי ליישם אותה עבור חיישנים טמפרטורה, לחץ, או גלאי גז.
(FLT:0)Example:FLT:1 , פלטפורמה מבוססת תנאי משתמש בשיטת המפעל כדי למתן מיידית של מנהלי רכישת נתונים.כאשר מודל חיישן חדש של ספק IoT מוצג, תת-קבוצה חדשה של מפעל נוסף ללא שינוי קוד לקוח הקיים שקורא נתונים של חיישן. גישה זו מפחיתה את הסיכון התוקפנות ומזרזת מחזורי אינטגרציה.
תבנית המפעל
מפעל אבסטרקטי מספק ממשק ליצירת משפחות של אובייקטים קשורים מבלי לציין שיעורים קונקרטיים. במערכות ניטור, הוא מאיר כאשר המערכת חייבת להתאים לסביבות פריסה שונות – לדוגמה, על גבי תחזיות מול הענן, או ספקים חומרה שונים המספקים מערכות אקולוגיות שלמות (בקרים, תצוגות, תצוגות, מודולי תקשורת) המפעל מופשטים מייצרים את כל המרכיבים הדרושים לסביבה זו: חיישן, מפעל תצוגה, מפעל תקשורת, וכל מפעל תקשורת עקבי עם הפלטפורמה שנבחרה.
(FLT:0) השימוש האקלקטי: FLT:1, חברה גדולה של תשתיות משתמשת במפעל אבסטרקטי כדי לתמוך בציוד מבוסס-סדרה ומכשיר מבוסס IP מודרני, כל מפעל מייצר קבוצה של אובייקטים תואמים: ⁇ נתונים, משווקים אזעקה ושרביטי לוח המחוונים. Switch בין מפעלים בסטארט-אפ מאפשר בסיס קוד אחד לשרת מתקנים ישנים וחדשים.
המונחים:
דפוס הBuild מפריד את בניית אובייקט מורכב מהייצוג שלו.זה אידיאלי ליצירת תצורה מפורטת של ניטור - כגון כללי התראה רב-שלב, צינורות פיזור נתונים, או לוחות מחוונים מותאמים אישית - שבו תהליך הבנייה חייב לתמוך קלטים מגוונים וסדר של פעולות. Builder נותן שליטה על מדרגות ההפקה ומאפשר את תהליך הבנייה זהה לייצר ייצוגים שונים.
(FLT:0)Example:FLT:1 , A SCADA מערכת בונה שרשרת עיבוד נתונים על ידי הוספת שלבים מסנן, שלבים טרנספורמציה, נקודות קצה מתמיד.הבנייה מאפשרת למפעיל לבחור אילו ערוצי טלמטארי לכלול, להחיל סף, ולבחור סוגי הדמיה, כל זאת תוך שמירה על הפרדה נקייה בין הלוגיקה של הרכבה לבין האובייקט הסופי של הצינור.
תבנית Prototype
תבנית הפרוטוטיפ יוצרת אובייקטים חדשים על ידי העתקה של מקרה קיים (clone) זה שימושי בעת יצירת אובייקטים יקר (למשל, רכישת חיבור מסד נתונים או קבצי תצורה טעינה) וכאשר המערכת זקוקה למקרים רבים דומים אך מעט שונים. במערכות ניטור, Prototype יכול לשמש לייצור תצורה של חיישן בסיס מראש ולאחר מכן לשכט אותם עבור כל חיישן פיזי, תוך התאמה רק של תצורה של מיקום או מטבולית או מטבולית.
(FLT:0) מקרה: רשת ניטור מזג אוויר משתמשת Prototype כדי לשכפל אובייקט איסוף נתונים כללי.כל אחד משובד מצויד בהגדרות ספציפיות לאתר (גישה, קלמנטים, ערוץ תקשורת) זה נמנע מדמיון חוזר של משאבים כבדים כמו הקשרים הצפנה ו שקעים ברשת.
המונחים:
למרות פחות נפוץ, דפוס בריכת האובייקט הוא ערך לניהול משאבים מוגבלים כגון חיבורי מסד נתונים, יציאות תקשורת או קונטקסטים חוטים. במקום ליצור ולהרוס חפצים על הביקוש, הבריכה שומרת על קבוצה של מקרים הניתנים לחזרה. במערכות ניטור באמצעות חישוב גבוה שבו הגינות היא קריטית, מאגר אובייקט יכול למנוע את פני הקצאת האובייקטים תכופים ואסוף האשפה.
(FLT:0) שכפול: ⁇ 1 (מערכת ניתוח רטט מבוזר משתמש מאגר אובייקטים של FFT (Fast Fourier Transform) אובייקטים חישוביים.אובייקטים האלה יקרים ליצור כי הם לפני הכלכלים buffers וטבלאות מבט.הבריכות מהדהדים אותם על פני מסגרות נתונים, חיתוך עצלות עיבוד עד 40%.
שיטות טובות ביותר לשילוב תבניות הבריאה
דרישות מערכת אובססיביות תורניות
לפני בחירת דפוס, לבצע ניתוח עמוק של ההקשר התפעולי של מערכת ניטור. Determine כי חלקים של המערכת צפויים להשתנות - חיישנים חדשים, תקני נתונים מתפתחים, תרחישים פריסה, או מודלים מטבעיים.תבניות הם מועילים ביותר כאשר הם מבודדים נקודות וריאציות. להימנע משימוש דפוס פשוט כי זה פופולרי; כל דפוס מציג מורכבות כי חייב להיות מוצדק על ידי רווחים עתידיים, ליצור החלטה מעוברת כי מפות (אפקטיביות), דרישות בקרה קונקרטיות).
לשמור על גמישות עם תבניות המפעל
שיטת המפעל ומפעל אבסטרקטי הם חיוניים עבור מערכות אשר חייבות להתאים רכיבי חומרה או תוכנה חדשים ללא שילוב של מודולים קיימים. יישום מפעלים כמו ממשקים או כיתות מופשטות, ולהגדיר אותם בסטארט-אפ באמצעות הזרקת תלות או קבצי תצורה.כאשר סוג חדש של רכיב נדרש, להוסיף יישום מפעל חדש ללא קוד לקוח נוגע אשר צורכת את האובייקטים שנוצרו.זה תואם את קוד פתוח / סגור של תוכנה.
(FLT:0)Tip:cioFLT:1) השתמש בדפוס רישום לצד מפעלים כך שנהגי חיישן חדשים או מתאם תקשורת יכולים להיות רשומים באופן דינמי באמצעות תצורה, הימנעות מהצורך לשנות את קוד המפעל בכל פעם.
להבטיח את בטיחות הקישור במשאבים משותפים
Singletons ו- Object Pools חייבים להיות מאובטחים כי מערכות ניטור בדרך כלל לרוץ חוטים מרובים כדי להתמודד עם רכישת נתונים, עיבוד, ואזהרה במקביל. השתמש בדמיונים סינכרונים כגון mutexes, סמפורים, או טכניקות ללא מנעול מתאים לשפה. for Singletons, ליישם מנעולים כפולים או להשתמש במקרים גלובליים מחולקים שפה (למשל, סטטינים השבויים, המאפשרים השבויים).
שמור על תבניות פשוטות וממוקדות
עמיד בפני הפיתוי להשתמש בתבנית הפשוטה ביותר שמפתורה ביעילות את הבעיה.לדוגמה, אם רק סוג חיישן אחד צפוי אי פעם, בונה פשוט יכול להספיק - אל תוסיף היררכיה של שיטת המפעל מוקדם מדי פעם, להימנע יצירת מפעל אבסטרקטי מלא כאשר שיטת מפעל יחיד יעבוד.שימוש של דפוסים יכול לטשטש את כוונת הקוד ולהגביר את הנטל הרגיל של האדריכלות והסטנדרט.
מסמך דפוס עקבי ושימוש
דפוסים הבריאה לעתים קרובות כרוכים עקיפין שיכול לבלבל חברים חדשים של צוות.כל בחירת דפוס צריכה להיות תועדות עם רציונלית: מדוע הוא נבחר, אילו וריאציות הוא מבודד, וכיצד יש להרחיב את זה.
שילוב דפוסים עם הזרקת תלות
תבניות כמו מפעל בונה ומחולק פועלות היטב עם הזרקת התלות (DI) מכולות DI יכול באופן אוטומטי להזריק יישומים מסוימים במפעל או אובייקטים בנויים לצרכנים, צמצום חיפוש ידני.לדוגמה, מיכל DI יכול לספק יישום מפעל ספציפי בריצה על בסיס קובץ תצורה, ללא הצרכן יודע את הסוג קונקרטי.
Prototype for Performance-Sensitive Cloning
בעת שימוש Prototype, ודא כי פעולת השיבוט היא עמוקה או רדודה כפי שנדרש.דישוי עמוק הוא הכרחי אם אבטיפוס מתייחס אובייקטים חד-פעמיים כי חייב להיות עותקים עצמאיים.על שיטת השיבוט בזהירות, ביצוע עותק עמוק של כל שדות שאינם טריוויאליים.חשב באמצעות שיבוט מבוסס סיידור או העתק ידני במקום להסתמך על ברירת המחדל של השפה, אשר עשוי לייצר עותקים רדודים.
פול אובייקטים Sizing and Lifecycle Management
עבור בריכת אובייקטים, לבחור גודל בריכה אשר מאזן את השימוש בזיכרון כנגד ביצועים.שימוש בבריכות מידע כדי להתאים גבולות. ליישם מדיניות זמן ופינוי כדי לשחזר אובייקטים מסולקים (למשל, חיבורי מסד נתונים פגים) להבטיח כי אובייקטים משולים יוחזרו אפילו בנתיבי שגיאה - שימוש במכשולים סופיים או אובייקטים מוקלטים RAII.
אתגרים ומלכודות
המונחים: Complex Architecture
הטעות הנפוצה ביותר היא שכבת דפוסים רבים מדי על גבי אחד מהשני.מערכת המשתמשת Singleton עבור תצורה, שיטת המפעל עבור חיישנים, מפעל אבסטר עבור סביבות, וBuild for fibros עשוי להיות קשה לעקוב ול debug. מפתחים חייבים להכות איזון: להשתמש בתבניות רק כאשר החיוונות או ניהול משאבים אכן קיים.כלל טוב של אצבע הוא דפוס צריך להפחית את מספר השינויים הדרושים כאשר תכונה חדשה, אם זה לא יכול להוסיף.
תלות נסתרת עם Singleton
סינגלים יכולים ליצור הפיכה נסתרת. מחלקה שמכנה ישירות FLT:2 , הופכת לבלתי ניתנת לתיאור בבידוד כי המדינה העולמית של הטון דולפת לכל מבחן.מיגייט זה על ידי הזרקת הטון דרך ממשק - רוב מסגרות DI יכולות לאכוף מקרה אחד ללא גישה גלובלית אנטי-מחדש זה משמר את היתרון של שיתוף המשאבים תוך שמירה על יכולת הבדיקה.
המפעלים
הוספת מעמד קונקרטי חדש עשוי לדרוש תת-קבוצה במפעל חדש, המוביל להתפוצצות קבצים.כדי לצמצם, לשקול שימוש במפעלים פרמטריים שמקבלים סוג מזהה ולהשתמש בהשתקפות או במרשם כדי למתן את המעמד הנכון.עם זאת, עסקאות אלה מאגדות את הבטיחות של זמן לגמישות ריצה.בחר את הגישה שמתאימה לדרישות האמינות של המערכת.
המונחים: Complexity
אובייקטים עם גרפים מורכבים (למשל, תצורה של חיישן מתייחס אובייקטים אחרים) יכול להיות שגיאה-prone.לוודא כי שיטות שיבוט לטפל הפניות מעגליות ולא לעזוב מדינה משותפת mutable. השתמש ממשקים הניתנים ללחיש באופן עסיסי ומעדיפים אובייקטים לא תואמים שבו יש צורך שיבוט.
מחקר מקרה: יישום פלטפורמה למעקב רב-ודור
שקול צוות בניית מערכת ניטור הנדסה אזרחית עבור מבנים הגשר.המערכת חייבת לתמוך בחיישנים משלושה יצרנים שונים - כל אחד עם פרוטוקול התקשורת שלו, פורמט נתונים, והליך קלריסה. בתחילה, הצוות קשה קודר לוגיקה חיישן ישירות בקרי ניטור.
הצוות ארגן מחדש את בסיס הקוד באמצעות תבנית המפעל הפשטנית. A (FLT:3) ממשק הגדיר שיטות ליצירת חיישנים, ⁇ נתונים, ומטפלים קלבריציה שלושה מפעלים קונקרטיים יושמו - אחד לכל מוכר.היישום במפעל נבחר בסטארט-אפ בהתבסס על קובץ תצורה.הוספת מוכר רביעי נדרש כעת רק מחלקה חדשה בתוספת שיעורי מוצר קונקרטיים; שאר המערכת נותרה בלתי-כלהה.
בנוסף, מנהל התצורה המרכזי היה מספק ל- Singleton, גישה דרך מיכל הזרקת התלות.בטיחות של צ'יל הייתה מובטחת באמצעות נתיב קריאה ללא מנעול ו- mutex לעדכונים תצורה.הביצועים של מערכת המעקב השתפרו כי ה- Singleton נמנע מחיפושי מסד נתונים אדומים, ואת תבנית המפעל הפחיתה את זמן הפיתוח לשילובים חדשים של ספקים על ידי 60%.
המונחים חיצוניים
לקריאה נוספת על תבניות עיצוב ויישום במערכות ניטור, ראה את המשאבים הבאים:
- (ב) ,0) שיפור גורו - עיצוב דפוסים מקטלוגים של ההרחבה 1 (איור 1) - תיאורים אינטראקטיביים מצוינים של תבניות הבריאה עם דוגמאות קוד.
- מרטין פולר - תבניות של מערכות דיסטריות של Distributed SystemsFLT:1 - תובנות על יישום דפוסים בתשתיות ניטור מבוזרות.
- (FLT:0)O'Reilly - הנדסה תוכנה עבור ניטור מערכות למערכות למערכות גלוב 1 (FLT: מדריך מעשי לתכנון פתרונות ניטור חזקים ושמירה על פתרונות ניטור.
מגמות עתידיות בדפוסי הבריאה
בעוד ניטור הנדסי עובר לעבר מחשוב קצה ו-IoT, דפוסים יצירתיים יצטרכו להתאים.מפעלים קלים שיכולים לפעול בסביבות מחוסנים משאבים (למשל מיקרובקרים) יהפכו חשובים. Prototype ו- Object Pool יהיו קריטיים במערכות אשר מעבדות זרם נתונים גבוה של נתונים עם מהירויות מינימליות יותר, עם עלייה של תשתיות-קוד, דפוסים יצירתיים עשויים להיות ביטויים מובשים באמצעות תצורה יעילה של ימינו, אך לא צריך גם את המגמות ידניות, אלא גם כיום, אלא גם כדי לשמור על ידי למערכות ידניות.
מסקנה
תבניות הבריאה הן כלים חזקים לבניית מערכות ניטור הנדסיות גמישות, דרוגניות, ושמירה על דרישות המערכת בזהירות, בחירת דפוסים מתאימים כגון Singleton, Factory Method, Factory, Builder, Prototype ו- Object Pool, ולאחר שיטות הטובות ביותר כמו יישום שימוש והבטחת בטיחות חוט, צוותי פיתוח יכולים ליצור פתרונות אשר מתפתחים בחסד עם דרישות שינוי תשתיות.