iCloud של אפל זילזל בגלל בעיות סנכרון נתונים הליבה

התוכנית השאפתנית של אפל להפוך את iCloud למרכז הדיגיטלי החדש עבור מסמכים, נתונים וקבצי מדיה של משתמשי Mac ו-iOS נתקלה בתלונות של מפתחים שלפי הדיווחים לא מאמינים שאפל תטפל בבעיות שלהם הקשורות לסנכרון מסדי נתונים. עם זאת, יש תקווה לחשוב שהדברים ישתפרו.

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

התלונות שלהם נאספו על ידי עיתונאים שלעתים קרובות מערבבים את בעיות הסנכרון הספציפיות והמוגבלות הללו של מסדי נתונים עם כל קשת השירותים המקוונים של אפל, וכתוצאה מכך כותרות המבטאות את כל מטריית iCloud כ"שבורה", ללא תקווה באופק, תוך כדי ביטול אפל לפרסום iCloud כ"אוטומטי וללא מאמץ".

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

"אשמח שאפל תגיד לנו שהם תיקנו הכל עם iCloud ב-iOS 7 וסוף סוף נוכל להשתמש בו ללא בעיה שנתיים מאוחר יותר, אבל אני לא מממש את התקוות שלי", דיווח אחד מפתחי iOS ללא שם.סיפר ה-Vergeלמאמר שכותרתו "למה iCloud לא 'פשוט עובד'?"

דברים שמסבכים עוד יותר היא המציאות ש"iCloud" הוא מונח שיווקי רחב במיוחד שאפל משתמשת בו בצורה מעורפלת כדי לכסות כמעט את כל השירותים המקוונים שלה.

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

שירותי ההורדה והקניות הדיגיטליים השונים של אפל, כולל תכני המדיה המובילים בתעשייה שלה ב-iTunes, iBooks ותוכנות iOS ו-Mac App Store מחוברים גם הם יחד תחת מטריית "iCloud". זה גם לא ה-iCloud שעליו מתלוננים המפתחים.

החברה מציעה גם שירות אחסון קבצים מבוסס אפליקציה, השומר מסמכים "בענן" לגישה מכל אחד ממכשירי ה-Mac או iOS השונים של המשתמש, ובמקרים מסוימים, מהאינטרנט. Photo Stream, Find My iPhone, Back to My Mac ושירותי סנכרון נתונים שונים (כגון סימניות Safari ורשימת קריאה) הם גם תכונות הקשורות ל-iCloud.

אף אחת מהתכונות הללו אינה קשורה ישירות לבעיות ה-iCloud שעליהן מדווחים מפתחים, מה שגורם לבלבול עבור רבים מ-250 מיליון המשתמשים שאינם רואים ב-iCloud השימושי והאמין בדרך כלל (אך בהחלט לא ללא רבב) של אפל כ"שבור".

הבטנה הכהה והכסופה של iCloud של אפל

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

אפל הציגה את Core Data עוד ב-Mac OS X Tiger של שנת 2005, והפכה אותו לזמין למפתחי App Store ב-iOS 3.0. נתוני ליבה מאפשרים למפתחים לעבוד עם הנתונים של המשתמש כאובייקטים, ומעבירים עבורם הרבה מהמורכבות של אחסון ואחזור נתונים. מסגרת הנתונים הליבה מספקת אפשרויות כיצד לאחסן את הנתונים המתאימים למשימות שונות: או כקובץ טקסט פשוט של XML או בנתונים בינאריים (שתיהן דוגמאות לקובץ סטנדרטי), או בתוך מסד נתונים של SQLite (קובץ מיוחד המכיל נתונים מאורגנים). שניגשים אליו ומשתנים אותו באמצעות עסקאות מיוחדות).

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

"רעיון הליבה מאחורי iCloud", מסביר תיעוד המפתחים של אפל, "הוא לבטל סנכרון מפורש בין מכשירים. משתמש לעולם לא צריך לחשוב על סנכרון והאפליקציה שלך לעולם לא מקיימת אינטראקציה ישירה עם שרתי iCloud. כשאתה מאמצת ממשקי API לאחסון iCloud כמתואר כאן מסמך, שינויים מופיעים באופן אוטומטי בכל המכשירים המחוברים לחשבון iCloud המשתמשים שלך מקבלים גישה בטוחה, עקבית ושקופה לתוכן האישי שלהם בכל מקום."

למעשה יישום תמיכה ב-iCloud באפליקציה אינו טריוויאלי; אפל עצמה בילתה כשנה בהוספת תמיכה ב-iCloud לאפליקציות שונות המובנות ב-Mac OS X Mountain Lion, ולקח קצת זמן נוסף כדי לגרום לקבצים מבוססי iCloud לעבוד בין גרסאות iOS ו-Mac של יישומי iWork שלה (מתואר להלן).

המאמץ השאפתני יותר של סנכרון שינויים מצטברים שנעשו במסד נתונים של SQLite עם iCloud הוא אפילו יותר מורכב. מספר מפתחים דיווחו על תסכול ניכר בכך שהדבר יפעל בכלל, והמאמצים שלהם מסובכים על ידי פעולות בלתי צפויות של משתמשים, שעלולים, למשל, להתנתק מ-iCloud במכשיר שלהם ולהיכנס כמשתמש חדש, מה שגורם למורכבות נוספת. לתוך המצב.

בעוד שאפל הטמיעה סנכרון iCloud מבוסס מסמכים באפליקציות שלה, לא נראה שהיא או חברת הבת שלה FileMaker עושות שום שימוש משמעותי במסדי נתונים של SQLite המסונכרנים עם iCloud. ואם אפל עדיין לא משתמשת בו, אתה יכול להמר שהוא לא מלוטש גם עבור מפתחי צד שלישי.

מלכוד 22 לחדשנות

פלטפורמות ה-Mac וה-iOS תלויות בארכיטקטורה של Core Data (והשילוב שלה עם iCloud) כדי להציג מספר תכונות חדשניות. הכל משמירה אוטומטיתלגירסאות (למטה) ל-Time Machine ממנפת את הרעיון החדש של שמירה הדרגתית של עבודת המשתמשים, כך שניתן להחזיר אותה לאחור, לאחסן אותה, ואפילו לסנכרן בין מכשירים בזמן אמת. אפל הוציאה ושיפרה בהדרגה את התכונות הללו (והמסגרות הבסיסיות שלהן) במהלך השנים האחרונות.

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

הפתרונות האלטרנטיביים לדילמת ה-iCloud של אפל (ובאופן רחב יותר, כל מה שקשור ל-OS X ו-iOS) יהיו להפחית מאוד את החדשנות בכל החזיתות (לאפשר למתחרים להתעדכן ולמבקרים להגביר את תלונותיהם על כך שאפל לא חדשנית מספיק '); לשים אזהרות "בטא" על תכונות תוכנה חדשות כפי שגוגל עושה כדי להימנע מביקורת חריפה על תוכנות ותכונות חדשות (כפי שעשתה אפל עם סירי, למרות שזהלא הייתה השפעה ממשית); או להרכיב צוותים גדולים יותר לעבודה על פרויקטים שונים (מסבך את הפיתוח והגדלת בעיות כוח האדם והתפעול שהחברה כבר נאבקת בהם בהתחשבקמפוס צפוףוהקושי לגייס מפתחים מוסמכים ומנוסים).

פתרונות אמיתיים לא באים בקלות

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

סיבוך נוסף הוא שאפל דוחפת מפתחים גם לאמץ את נתוני ליבה וגם לתמוך ב-iCloud באפליקציות שלהם. עבור אפליקציות מסוימות, זה מפעיל את המפתח בקצה המדמם של מה שאפשר, מצב שגורם עוד יותר לתלונות שימושיות מצד משתמשי קצה.

פתרון הבעיה מורכב, עצם הסיבה שאפל החלה לעבוד על Core Data מלכתחילה; זה פשוט קשה לנהל את הסנכרון של עסקאות מסד נתונים על פני מכשירים מרובים, במיוחד כאשר יישומי צד שלישי יכולים להיתקל במקרים מיוחדים מאוד או צריכים להתאים לנסיבות חריגות שונות של הלקוחות שלהם. המורכבות הזו היא הסיבה שמפתחי אפליקציות רוצים שאפל תתקן את בעיות סנכרון מסד הנתונים של iCloud במקום שיצטרכו לגלגל פתרונות מותאמים אישית משלהם במאמץ ובהוצאות גדולות.

ברגע שמפתחי אפליקציות או המשתמשים שלהם נתקלים בבעיית סנכרון, זה יכול להיות גם קשה ויקר לפתרון. נוסף על כך, אפל לא מספקת כרגע כלים חזקים להצלת מסד נתונים פגום או נתונים מסונכרנים בצורה לא נכונה בתוך iCloud. ברוב המקרים, האפשרות היחידה למשתמשים עשויה להיות להסיר נתונים קיימים מ-iCloud ולהתחיל מחדש.

פתרון אחד: עשה זאת בעצמך

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

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

Streza המשיך ודן ביתרונות ובחסרונות של בניית תשתית סנכרון משלו או שימוש ב-iCloud של אפל בפירוט רב יותר. "iCloud", הוא סיכם, "אמנם רעיון יפהפה, אינו מוכן לייצור עבור רוב האפליקציות, יגרום לכאבי ראש אינסופיים, וינעל אותך לנצח בפיתוח אפליקציות רק למוצרי אפל".

כל טכנולוגיה מתקדמת מספיק אינה ניתנת להפרדה מקסם

בעוד שחלק מהמפתחים הביעו ספקנות לגבי כל הגישה של אפל לסנכרון מסדי נתונים של Core Data ב-iCloud, החברה השקיעה הרבה בטכנולוגיה. זה גם מוציא מיליארדים כדי לפתח מאסיבימרכזי נתונים חדשיםלארח iCloud, מה שהופך את הסבירות שהחברה פשוט תנטוש את הפרויקט כפי שעשתה עם iWeb או תכונות אחרות של MobileMe קודמות, או כפי שגוגל לאחרונהישעם קורא ה-RSS שלו, תמיכה בסנכרון לוח שנה CalDAV ו-ActiveSync push Gmail.

בנוסף, יש אינדיקציות לכך ששינויי הניהול האחרונים של אפל עשויים לעזור למקד את תשומת הלב בפתרון בעיות השורש של iCloud עם נתוני ליבה. מסגרת הנתונים הליבה ניצלה מהעבודה של NeXT של סטיב ג'ובס על Enterprise Objects Framework בתחילת שנות ה-90. ה-EOF המקורי אפשר לאפליקציות NeXT ו-WebObjects להשתלב עם מסדי נתונים בקנה מידה גדול. Core Data היה ייעוד מחדש של טכנולוגיה זו כדי לפתור בעיות בהן נתקלו מפתחי שולחן העבודה.

המקוריפרויקט EOFנוהל ב-NeXT על ידי קרייג פדריגי, שהצטרף לאפל כשרכשה את NeXT ב-1996 ועזב לאחר שהחברה החליטה להעביר את EOF לג'אווה ב-2001, ולמעשה השמידה אותה.

ב-2009, לאחר שאפל השלימה את עבודת ההמרת EOF ל-Core Data, ראש מערכת ההפעלה X באפל דאז, ברטרנד סרלט, גייס את פדריגי בחזרה לעבודה ב-OS X. שנתיים לאחר מכן, באוגוסט בשנה שעברה, סרלטהכריזפרישתו והציג את פדריגי כמחליף להוביל את מאמצי OS X של אפל.

סרלט אמר בזמנו, "קרייג עשה עבודה נהדרת בניהול צוות Mac OS בשנתיים האחרונות. Lion הוא מהדורה נהדרת והמעבר צריך להיות חלק".

שלושה חודשים לאחר מכן, הודיע ​​מנכ"ל אפל, טים קוקטלטלה נוספתמה ששחרר את סקוט פורסטאל מהמנהיגות שלו ב-iOS, והציב גם את OS X וגם את iOS בניהולו של פדריגי.

עבור מפתחים שמקווים לראות התקדמות ב-Core Data, הרעיון שהמפתח המקורי של EOF מנהל כעת את iOS הוא לפחות חדשות טובות. נותר לראות מה השיגו צוותי מערכת ההפעלה של אפל בשנה האחרונה בהנחייתו של פדריגי, אבל לפחות נותרו חודשים ספורים לפני שהחברה תפרט ב-WWDC מה היא מתכננת לעשות עם iOS 7, OS X 10.9, ו iCloud v3.