דלג לתוכן הראשי
Cloud Information Model מודל נתונים פתוח ובלתי תלוי אפליקציה לחיבור בין אפליקציות ענן ואפליקציות on-prem בארגון

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

פורמטים של CIM

מודל מידע הענן (CIM) תוכנן מלכתחילה כמודל מבוסס תקנים, יישום-אגנוסטי (application-agnostic) של מושגים עסקיים — לקוחות, הזמנות, מוצרים, חשבונות והקשרים ביניהם. אך מודל מושגי מועיל רק אם המערכות הזקוקות לו באמת יכולות לצרוך אותו. זו הסיבה ש-CIM מפורסם לא כארטיפקט קנייני יחיד, אלא כמשפחה של סריאליזציות (serializations), שכל אחת מהן מכוונת לסוג אחר של כלי עבודה, זמן ריצה וקהל יעד.

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

נקודות מפתח

  • CIM מופץ ב-שתי משפחות: פורמטים של רשת סמנטית (JSON-LD, RDF Schema, SHACL, R2RML) ופורמטים קריאים לבני אדם/רלציוניים (אוצר מילים AML, ניב AML, טיפוסי RAML, JSON Schema, SQL DDL).
  • המודל המושגי (concepts.*) מתאר ישויות ויחסים; הסכימה הקנונית (schema.*) מתארת צורות נתונים ואילוצים. אלו הם ארטיפקטים נפרדים עם מטרות נפרדות.
  • JSON-LD היא הצורה הקנונית הקריאה-מכונה; AML היא הצורה הקריאה-אדם של אותו תוכן; SQL DDL ו-JSON Schema הן הצורות שרוב צוותי היישומים וה-ETL צורכים ישירות.
  • R2RML הוא הגשר: הוא ממפה סכימה רלציונית לגרף RDF, וזו הדרך לחבר מסדי נתונים SQL קיימים לשכבה הסמנטית.
  • בחירת פורמט היא שאלה של צרכן, לא של העדפה — בחר את הפורמט ששרשרת הכלים שלך קולטת באופן טבעי (natively), והשתמש באחרים כבדיקות צולבות.

מדוע CIM מסופק במספר פורמטים

רוב מודלי הנתונים מפורסמים בצורה אחת בלבד — בדרך כלל דיאגרמת ER, גיליון אלקטרוני או קובץ מטא-נתונים ספציפי לספק. זה עובד עד שצריך לשתף את המודל בין ארגונים המשתמשים במחסניות טכנולוגיות (stacks) שונות. פלטפורמה קמעונאית עשויה להריץ PostgreSQL ו-dbt; שותף עשוי להריץ מסד נתונים גרפי ו-triple store; ספק SaaS עשוי לחשוף ממשקי JSON API ולאמת payloads באמצעות JSON Schema. אם המודל המשותף קיים רק באחד מהניבים הללו, כל השאר חייבים לתרגם אותו — ותרגומים נוטים להתרחק מהמקור (drift).

האסטרטגיה מרובת-הפורמטים של CIM היא מענה מכוון לבעיה זו. המודל נכתב פעם אחת ואז מתורגם לפורמטים הממפים בצורה נקייה לתקנים מוכרים, כך שכל צרכן מאמץ את CIM באמצעות כלים שכבר קיימים אצלו. זוהי אותה פילוסופיה שעומדת מאחורי גופי תקנים כגון World Wide Web Consortium (W3C), המפרסמים מפרטים כמו RDF, SHACL ו-R2RML ש-CIM עושה בהם שימוש חוזר במקום להמציא מחדש. היא גם עולה בקנה אחד עם משימת קישוריות הפעולה (interoperability) הרחבה יותר של Linux Foundation, שבמסגרתה פועל פרויקט CIM.

היתרון המעשי הוא כפול: עסקים עם טכנולוגיות שונות יכולים לאמץ את CIM ללא צורך בהחלפה רדיקלית (rip-and-replace), ותורמים יכולים להרחיב את המודל בכל פורמט התואם את מומחיותם, בידיעה שניתן לייצר מחדש את הסריאליזציות האחרות.

המודל המושגי מול הסכימה הקנונית

לפני השוואת פורמטי קבצים, כדאי להפריד בין שתי שכבות ש-CIM שומר נפרדות — ושמצטרפים חדשים נוטים לבלבל ביניהן.

קשורים: — צינור ה-ELT המנוהל במלואו שפשוט ממשיך לפעול.

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

בהפצת CIM, אלה ממפים לשני שמות קבצים: concepts.* עבור השכבה המושגית ו-schema.* עבור השכבה הקנונית. השארתן נפרדות מאפשרת למנתח עסקי לקרוא את המודל המושגי מבלי לדשדש בתחביר של אילוצים, בעוד שמהנדס יכול לאמת payloads מול הסכימה מבלי להזדקק לנרטיב המושגי המלא.

פורמטי הרשת הסמנטית

פורמטים אלו מבטאים את CIM כגרף מבוסס RDF. הם הבחירה הנכונה כאשר הצרכנים שלך כוללים triple stores, גרפי ידע, כלי אונטולוגיה או כל מערכת המבצעת הסקה (reasoning) על נתונים מקושרים.

JSON-LD — concepts.json ו-schema.json

JSON-LD הוא JSON עם הקשר (context) של נתונים מקושרים, מה שהופך אותו לגשר פרגמטי בין ממשקי Web API רגילים לרשת הסמנטית. CIM מפרסם שני ארטיפקטים של JSON-LD:

הבחירה שלנו: — iPaaS בהובלת אוטומציה שצוותים עסקיים יכולים למעשה לבנות עליו.

  • concepts.json — התיאור המושגי של ישויות ויחסים, המובע כ-RDF Schema.
  • schema.json — צורות הנתונים הקנוניות ואילוצים נוספים, המובעים ב-SHACL.

מכיוון שמדובר ב-JSON תקין, ניתן לטעון את concepts.json ו-schema.json באמצעות כלי JSON רגילים, אך מכיוון שהם נושאים @context, הם יכולים להתרחב לשלשות (triples) RDF מלאות. טבע כפול זה הוא הסיבה לכך ש-JSON-LD הוא לרוב ברירת המחדל הטובה ביותר עבור צוותים שרוצים דיוק סמנטי מבלי לאמץ מחסנית RDF ייעודית מהיום הראשון.

RDF Schema — schema.json

RDF Schema (RDFS) מספקת את אוצר המילים לתיאור מחלקות ומאפיינים — המבנים rdfs:Class, rdfs:subClassOf, ו-rdfs:domain/rdfs:range המאפשרים למכונה להבין שהזמנה היא מסמך עסקי ושתכונת הלקוח שלה מפנה אל לקוח. CIM משתמש ב-RDFS כדי להעניק למודל המושגי סמנטיקה פורמלית, כך שהיררכיות של תתי-מחלקות ותחומי מאפיינים יהיו ניתנים לפירוש מכונה ולא רק מתועדים.

SHACL — schema.json

שפת אילוצי הצורות (SHACL) היא תקן W3C לאימות גרפי RDF מול קבוצה של תנאים הנקראים “צורות” (shapes). בעוד ש-RDFS מגדיר מה מחלקה היא, SHACL מגדיר מה מופע תקף חייב לספק — מאפיינים נדרשים, סוגי ערכים מותרים ומגבלות קרדינליות. צורות הנתונים הקנוניות של CIM מבוטאות ב-SHACL, מה שאומר שכל מעבד SHACL יכול לאמת נתונים תואמי CIM ללא צורך בקוד מותאם אישית.

R2RML — schema.rdml

R2RML הוא תקן W3C למיפוי סכימה של מסד נתונים יחסי לגרף RDF. זהו הפורמט החשוב ביותר עבור מהנדסי אינטגרציה ו-ETL, מכיוון שהוא המנגנון שבאמצעותו מסד נתונים SQL קיים — עם הטבלאות, העמודות והמפתחות הזרים שלו — נחשף כנתונים מקושרים (linked data) תואמי CIM. במקום לעצב מחדש את מסד הנתונים התפעולי שלך ידנית, אתה כותב (או יוצר) מיפוי R2RML שמצהיר כיצד כל טבלה ועמודה תואמות לישויות ולמאפיינים של CIM. התוצאה היא גרף RDF וירטואלי מעל הנתונים היחסיים הקיימים שלך.

הפורמטים היחסיים והניתנים לקריאה אנושית

לא כל צרכן זקוק ל-RDF. מפתחי אפליקציות, מעצבי מודלי נתונים ו-DBAs מעוניינים לעיתים קרובות במשהו שהם יכולים לקרוא בעורך טקסט או לטעון ישירות למסד נתונים. CIM מספק להם את סריאליזציות ה-AML, RAML, JSON Schema ו-SQL DDL.

AML — concepts.yaml, schema.yaml, schema.raml

AML, שושלת ה-AnyLogic Modeling Language המשמשת כאן כדיאלקט מידול, היא הביטוי של CIM הניתן לקריאה אנושית. CIM מפרסם שלושה ארטיפקטים של AML:

קשורים: — Push-down ELT שנבנה עבור מחסני נתונים בענן.

  • concepts.yaml — אוצר המילים (vocabulary) של AML, גרסה קריאה של המודל הרעיוני.
  • schema.yaml — הדיאלקט של AML, גרסה קריאה של צורות הנתונים הקנוניות.
  • schema.raml — ייצוג של סוגי הנתונים של RAML עבור הצורות הקנוניות.

ההבחנה בין אוצר מילים לדיאלקט היא חשובה להבנה: אוצר המילים מגדיר את המונחים (שמות העצם והפעלים של המודל), בעוד שהדיאלקט מגדיר כיצד מונחים אלו משולבים למבנים תקפים. אם אתה בוחן את CIM בפעם הראשונה, concepts.yaml הוא בדרך כלל נקודת הכניסה הנגישה ביותר.

JSON Schema — schema.json

JSON Schema הוא התקן דה-פקטו לאימות מסמכי JSON, הנתמך באופן טבעי או באמצעות ספריות כמעט בכל שפה מודרנית. ארטיפקט ה-JSON Schema של CIM מבטא את צורות הנתונים הקנוניות כ-JSON Schema, מה שהופך אותו לשימושי ישירות בשערי API, מתווכי הודעות (message brokers) וצינורות CI שכבר מאמתים עומסי (payloads) JSON. אם ממשק האינטגרציה שלך הוא REST או JSON מונחה אירועים, זהו לרוב הפורמט הרצוי.

SQL DDL — schema.sql

SQL DDL הוא קבוצת הצהרות CREATE TABLE, CREATE VIEW והצהרות אילוצים המממשות את הצורות הקנוניות במסד נתונים יחסי. CIM מכוון לתחביר SQL 2008, מה ששומר על ה-DDL נייד בין מנועי מסדי נתונים יחסיים מרכזיים. זהו הפורמט שאליו פונים DBAs ומהנדסי ETL כאשר הם רוצים להקים סכימה פיזית התואמת ל-CIM — למשל, מסד נתונים של staging או אינטגרציה המשקף את המודל הקנוני.

אם אתה עושה קניות: — לאינטגרציה היברידית של ענן ל-on-prem.

בחירת פורמט: מדריך מעשי

אין פורמט “נכון” אחד. הבחירה הנכונה נקבעת לפי מי או מה צורך את המודל בשלב הבא. השתמש בטבלה שלהלן כעזר לקבלת החלטה.

אם הצרכן שלך הוא…התחל עם…כי…
אנליסט עסקי או מעצב נתונים שסוקר את המודלאוצר מילים של AML (concepts.yaml)קריא לאנוש, מתמקד קודם כל באוצר מילים עסקי
Triple store, גרף ידע או כלי אונטולוגיהJSON-LD (concepts.json, schema.json)RDF טבעי עם גישה נוחה דרך JSON
מאמת SHACL או צינור איכות נתונים סמנטיSHACL (schema.json)אימות אילוצים סטנדרטי מעל RDF
מסד נתונים יחסי קיים שברצונך לחשוף כנתונים מקושריםR2RML (schema.rdml)ממפה טבלאות/עמודות לישויות CIM ללא צורך בעיצוב מחדש
API של REST או JSON מונחה אירועיםJSON Schema (schema.json)מאמת ישירות עומסי JSON
מסד נתונים יחסי שברצונך להתאים ל-CIMSQL DDL (schema.sql)SQL 2008 DDL נייד
API המתואר ב-RAMLסוגי RAML (schema.raml)טבעי לשרשראות כלים של RAML

מספר הסתייגויות מעשיות:

  • אל תתייחס לפורמטים כאל מודלים עצמאיים. הם סריאליזציות של אותו CIM בסיסי. אם מצאת אי-התאמה בין, נניח, schema.json (JSON Schema) לבין schema.json (SHACL), זהו באג או חוסר סנכרון בגרסאות, ולא בחירה עיצובית — דווח על כך.
  • שים לב להתנגשויות בשמות קבצים. מספר פורמטים חולקים את השם schema עם סיומות שונות (schema.json, schema.yaml, schema.raml, schema.sql, schema.rdml). בעת הורדת ההפצה המלאה, שמור את ספריות הפורמטים נפרדות כדי שלא תדרוס סריאליזציה אחת בשנייה.
  • התאם את הפורמט לשלב האימות. השתמש בפורמטים הרעיוניים לסקירה בזמן התכנון ובפורמטים הקנוניים לאימות בזמן ריצה. אימות מול המודל הרעיוני אינו משמעותי — הוא חסר את האילוצים.
  • העדף קבצים שנוצרו אוטומטית על פני עריכה ידנית. אם אתה מרחיב את CIM, הרחב את המקור וצור מחדש את שאר הסריאליזציות במקום לערוך כל פורמט ידנית, אחרת הם יסגרו מהסנכרון.

הורדת הפצת CIM המלאה

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

  • AML (vocabulary) — המודל המושגי הניתן לקריאה על ידי בני אדם.
  • AML (dialect) — הצורות הקנוניות הניתנות לקריאה על ידי בני אדם.
  • JSON-LD (vocabulary & schema) — המודל הסמנטי הניתן לקריאה על ידי מכונה.
  • R2RML — המיפוי ממסד נתונים יחסי ל-RDF.
  • RAML Types — הצורות הקנוניות כסוגי נתוני RAML.
  • SQL DDL — הצורות הקנוניות כ-SQL נייד.

כל הורדה מכילה את הגדרת ה-CIM המלאה בפורמט זה, מה שאומר שניתן לאמץ את CIM באופן הדרגתי: התחילו עם הפורמט ששרשרת הכלים הנוכחית שלכם תומכת בו, והוסיפו פורמטים אחרים ככל שצורכי האינטראופרביליות (interoperability) שלכם גדלים.

תרומה בין פורמטים

מכיוון ש-CIM הוא פרויקט פתוח, תרומות יתקבלו בברכה — והמבנה הרב-פורמטי מעצב את אופן הפעולה של התרומות. תורמים מתחלקים בדרך כלל לשתי קבוצות:

  • תורמי מודל מציעים ישויות, קשרים או אילוצים חדשים. שינויים אלה נכתבים פעם אחת ולאחר מכן מופצים לשאר הסריאליזציות (serializations).
  • תורמי פורמט משפרים את הנאמנות (fidelity) או את כלי העבודה של סריאליזציה ספציפית — למשל, חידוד מיפויי R2RML או את הניידות של SQL DDL.

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

שאלות נפוצות

מה ההבדל בין concepts.json ל-schema.json ב-CIM?

concepts.json הוא המודל המושגי — הישויות והקשרים ב-CIM, המובעים כ-JSON-LD עם סמנטיקה של RDF Schema. schema.json היא הסכימה הקנונית — צורות הנתונים ואילוצים נוספים, המובעים כ-JSON-LD עם סמנטיקה של SHACL. בקיצור, concepts מתאר מה קיים; schema מתאר כיצד מופע תקף חייב להיראות.

מדוע CIM מפרסם את אותו מודל בכל כך הרבה פורמטים?

מכיוון שצרכנים שונים משתמשים בטכנולוגיות שונות. Triple store זקוק ל-RDF; JSON API זקוק ל-JSON Schema; DBA זקוק ל-SQL DDL; אנליסט עסקי זקוק למשהו שניתן לקריאה על ידי בני אדם. פרסום CIM במספר פורמטים סטנדרטיים מאפשר לכל אחד מהקהלים הללו לאמץ את המודל עם כלים שכבר קיימים אצלם, במקום לכפות על כולם סטאק טכנולוגי יחיד.

למה משמש R2RML ב-CIM?

R2RML הוא תקן W3C למיפוי סכימת מסד נתונים יחסי לגרף RDF. ב-CIM הוא הגשר שחושף מסדי נתונים של SQL קיימים כנתונים מקושרים (linked data) תואמי CIM, כך שניתן לחבר מערכות יחסיות תפעוליות לשכבה הסמנטית מבלי לעצב אותן מחדש ידנית.

האם AML זהה לפורמטים של JSON-LD?

לא. AML הוא הביטוי הניתן לקריאה על ידי בני אדם של CIM — אוצר המילים (concepts.yaml) והדיאלקט (schema.yaml, schema.raml). JSON-LD הוא הביטוי המבוסס על RDF הניתן לקריאה על ידי מכונה. הם מתארים את אותו מודל אך פונים לקהלים ולשרשראות כלים שונות.

באיזה פורמט CIM כדאי לי להתחיל?

זה תלוי בצרכן שלכם. אם אתם בוחנים את המודל, התחילו עם אוצר המילים של AML. אם אתם בונים JSON API, התחילו עם JSON Schema. אם אתם מחברים מסד נתונים יחסי, התחילו עם R2RML או SQL DDL. אם אתם עובדים עם גרף ידע, התחילו עם JSON-LD ו-SHACL.

האם אני יכול לערוך פורמט CIM אחד מבלי לעדכן את האחרים?

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

קריאה נוספת

שאלות נפוצות

מה ההבדל בין `concepts.json` ל-`schema.json` ב-CIM?

concepts.json הוא המודל הרעיוני - הישויות והיחסים ב-CIM, המתבטאים כ-JSON-LD עם סמנטיקה של RDF Schema. schema.json היא הסכמה הקנונית - צורות הנתונים והאילוצים הנוספים, המובעים כ-JSON-LD עם סמנטיקה של SHACL. בקיצור, מושגים מתארים את הקיים; סכימה מתארת ​​כיצד מופע חוקי חייב להיראות.

מדוע CIM מפרסמת את אותו דגם בכל כך הרבה פורמטים?

כי צרכנים שונים משתמשים בטכנולוגיות שונות. חנות משולשת צריכה RDF; JSON API צריך JSON Schema; DBA צריך SQL DDL; אנליסט עסקי צריך משהו קריא אנושי. פרסום CIM במספר פורמטים סטנדרטיים מאפשר לכל אחד מאותם קהלים לאמץ את המודל עם כלים שכבר יש להם, במקום לכפות על כולם ערימה אחת.

למה משמש R2RML ב-CIM?

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

האם AML זהה לפורמטים של JSON-LD?

לא. AML הוא הביטוי הניתן לקריאה של CIM - אוצר המילים (concepts.yaml) והדיאלקט (schema.yaml, schema.raml). JSON-LD הוא הביטוי המבוסס על RDF הניתן לקריאה במכונה. הם מתארים את אותו מודל אך מכוונים לקהלים ושרשרת כלים שונים.

באיזה פורמט CIM עלי להתחיל?

זה תלוי בצרכן שלך. אם אתה בודק את המודל, התחל עם אוצר המילים של AML. אם אתה בונה JSON API, התחל עם JSON Schema. אם אתה מחבר מסד נתונים יחסי, התחל עם R2RML או SQL DDL. אם אתה עובד עם גרף ידע, התחל עם JSON-LD ו- SHACL.

האם אוכל לערוך פורמט CIM אחד מבלי לעדכן את האחרים?

אתה יכול, אבל אתה לא צריך. הפורמטים הם הסדרות של מודל בסיס אחד, כך שעריכה של פורמט בודד ביד גורמת למשפחה להיסחף מסונכרן. הרחב את מודל המקור וצור מחדש את ההמשכים האחרים במקום זאת. קריאה נוספת - [World Wide Web Consortium (W3C)](https://www.w3.org/) - גוף התקנים מאחורי RDF, RDF Schema, SHACL ו-R2RML, המפרטים ש-CIM מתבססים עליהם. - [Shapes Constraint Language (SHACL)](https://en.wikipedia.org/wiki/SHACL) - רקע על שפת האילוץ המשמשת לצורות הנתונים הקנוניים של CIM. - [Linux Foundation](https://en.wikipedia.o


ראה כיצד בומי מטפל במפת האינטגרציה ההיברידית שלך

Enterprise iPaaS לאינטגרציה היברידית של ענן ל-on-prem