השכבה שאף אחד לא חושב עליה
כשמפתחים מוצר לשבת, כולם עוסקים בנוריות, בצלילים ובמנועים — כלומר במה שנראה ונשמע. שכבת הנתונים נשארת מתחת לרדאר, וזו טעות: כמעט כל מוצר מודרני כותב לזיכרון עשרות פעמים בדקה. לוג אירועים, מונה שימוש, מטמון, טלמטריה, נתוני כיול. אם חלק מהכתיבות האלה נגרם ישירות ממעשה של המשתמש, המוצר אינו עומד בדרישה גם אם אף נורית לא נדלקה.
שלושה סוגי כתיבה
- כתיבה מונעת אירוע — "המשתמש לחץ, לכן נרשם". זו הבעייתית, וזו שצריכה להיעלם במצב שבת.
- כתיבה מחזורית — "כל חמש דקות נשמר מצב המערכת". זו הצורה המועדפת: המחזור נקבע לפני השבת, והוא רץ בין אם יש אדם בחדר ובין אם לאו.
- כתיבה רציפה — זרם דגימות קבוע, כמו בלוגר טמפרטורה. גם היא בסדר, מאותה סיבה.
ההמרה בין הסוגים היא לב העבודה. במקום לרשום את רגע הלחיצה, המערכת שומרת בזיכרון נדיף את מצב הכניסות, ופעם במחזור כותבת תמונת מצב מלאה. הפעולה של האדם אינה גורמת לכתיבה; היא רק משנה ערך שממילא ייכתב בזמן הקבוע הבא. ההיגיון הזה הוא בדיוק ההיגיון שמתואר במנגנוני גרמא והשהיה, ויישומו בתוכנה דורש הפרדה ברורה בין שכבת הקלט לשכבת האחסון — עיקרון מתחום הממשק בין חומרה לתוכנה.
מלכודות מעשיות
כתיבה שנדחפת מהזיכרון
מערכות רבות משתמשות בחיץ שנשטף כשהוא מתמלא. אם המשתמש הוא זה שממלא אותו — הכתיבה למעשה מונעת אירוע, גם אם הקוד לא נראה כך. הפתרון הוא חיץ בגודל קבוע שנשטף לפי שעון בלבד, גם אם הוא ריק למחצה.
מערכת קבצים חכמה מדי
שכבות ניהול זיכרון מודרניות מבצעות איזון בלאי ואיסוף אשפה בזמנים משלהן. במוצר לשבת רצוי לוותר על מבנה מורכב ולהשתמש במאגר מעגלי פשוט בגודל קבוע — פחות אלגנטי, אבל צפוי לחלוטין, וניתן להסביר אותו לבודק ההלכתי במשפט אחד.
חותמות זמן
לוג בלי חותמת זמן חסר ערך, ולכן נדרש שעון זמן אמת עם גיבוי. השעון הזה משרת ממילא את זיהוי כניסת השבת ויציאתה, כמפורט בחישוב זמני הלכה במוצר, ולכן זו לא עלות נוספת אלא רכיב שממילא קיים.
שידור החוצה
נתונים שנשמרים מקומית בסופו של דבר משודרים. גם כאן חוזר אותו כלל: קצב קבוע, לא דחיפה מונעת אירוע. הארכיטקטורה מפורטת בתקשורת וענן במוצרי שבת, וההשלכות על צריכת הזרם — באנרגיה וסוללות במוצרי שבת.
כשהרישום חובה
יש מוצרים שבהם אי אפשר לוותר על רישום מדויק: מכשור רפואי שחייב לתעד מדידות, מערכת בקרת כניסה שנדרשת ליומן ביטחוני, ציוד תעשייתי שמחויב בעקיבות רגולטורית. במקרים אלה הפתרון אינו לוותר על הרישום אלא להעביר את כולו לדגימה רציפה — לרשום תמיד, בקצב אחיד, כך שהמידע קיים אבל אינו נגזר ממעשה אדם. ההקשר הרפואי מפורט במכשור רפואי ושבת, וההקשר התעשייתי בבקרת איכות בייצור.
איך מוכיחים שזה עובד
הדרך היחידה היא ראיות. מריצים את המוצר יממה שלמה עם משתמש פעיל, מושכים את קובץ הלוג, ובודקים שהמרווחים בין הרשומות אחידים לחלוטין ושאין אף רשומה שאינה יושבת על גריד הזמן. הבדיקה הזו פשוטה לאוטומציה, והיא חלק מובנה מפרוטוקול הוולידציה ההלכתית לתוכנה. מהנדס שיכול להציג את הגרף הזה חוסך לעצמו סבב שלם מול המכון ההלכתי.
רוצים להפוך רעיון למוצר? צרו קשר עם צוות פרוג'קטס האוס בע"מ – טלפון: 054-8936922 | דוא"ל: info@projects-house.com – ונשמח ללוות אתכם משלב הרעיון ועד המדף.