יותר

איך להגיע לאמצע הדרך דרך ה- Overpass API

איך להגיע לאמצע הדרך דרך ה- Overpass API


אני מנסה לייבא מספר דרכים וצמתים מה- OSM. אבל אני לא רוצה לקבל את הדרכים כדרך עם צמתים שונים, רק באמצע הדרך.

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


עליכם להוסיף את האפשרותמֶרְכָּזלאחרהַחוּצָהparam:

overpass-api.de/api/interpreter?data= [out:json] ;(wayway (45.305,4.183,45.525,4.582) [leisure = playground]); מרכז מרכז;

כעת עליך שיהיה לך מרכז לכל אלמנט דרך:

"center": {"lat": 45.4221048, "lon": 4.4259259}

עליית מפלס הים, הסביר

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

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

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

השינוי בגובה פני הים קשור לשלושה גורמים עיקריים, כולם נגרמים על ידי שינויי אקלים עולמיים מתמשכים:

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

תוכן

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

התנאי ממשק API תיאר בתחילה ממשק רק לתוכניות הפונות למשתמש הקצה, המכונות תוכנות יישום. מקור זה עדיין בא לידי ביטוי בשם "ממשק תכנות יישומים". כיום המונח רחב יותר, כולל גם תוכנות שירות ואפילו ממשקי חומרה. [5]

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

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

המונח "ממשק תוכנית יישומים" (ללא -ינג סיומת) נרשם לראשונה בעיתון שנקרא מבני נתונים וטכניקות גרפיקה ממוחשבת למחשב הוצג בכנס AFIPS בשנת 1968. [7] [5] מחברי מאמר זה משתמשים במונח לתיאור האינטראקציה של יישום - תוכנית גרפית במקרה זה - עם שאר מערכות המחשב. ממשק יישומים עקבי (המורכב משיחות תת-דרכי פורטרן) נועד לשחרר את המתכנת מהתמודדות עם אידיוסינקרציות של מכשיר התצוגה הגרפית, וכדי לספק עצמאות חומרה אם המחשב או התצוגה הוחלפו. [6]

המונח הוצג לתחום מאגרי המידע על ידי C. J. Date [8] במאמר שנקרא משנת 1974 גישות ההתייחסות והרשת: השוואה בין ממשק תכנות היישומים. [9] API הפך לחלק ממסגרת ANSI / SPARC למערכות ניהול מסדי נתונים. מסגרת זו התייחסה לממשק תכנות היישומים בנפרד מממשקים אחרים, כגון ממשק השאילתה. אנשי מקצוע בבסיסי נתונים בשנות השבעים הבחינו שניתן לשלב ממשקים שונים אלה, וממשק יישומים עשיר מספיק יכול לתמוך גם בממשקים האחרים. [4]

תצפית זו הובילה לממשקי API שתמכו בכל סוגי התכנות, ולא רק בתכנות יישומים. עד שנת 1990, ה- API הוגדר בפשטות כ"מכלול שירותים העומדים לרשות מתכנת לביצוע משימות מסוימות "על ידי הטכנולוג קרל מלמוד. [10]

הרעיון של ה- API הורחב שוב עם שחר שיחות הליך מרוחקות ו- API של רשת. כאשר רשתות מחשבים הפכו נפוצות בשנות השבעים והשמונים, מתכנתים רצו להתקשר לספריות הממוקמות לא רק במחשבים המקומיים, אלא גם במחשבים הממוקמים במקום אחר. שיחות הליך מרוחקות אלה נתמכו היטב על ידי שפת Java במיוחד. בשנות התשעים, עם התפשטות האינטרנט, סטנדרטים כמו CORBA, COM ו- DCOM התחרו להיות הדרך הנפוצה ביותר לחשיפת שירותי API. [11]

עבודת הדוקטורט של רוי פילדינג סגנונות אדריכליים ועיצוב ארכיטקטורות תוכנה מבוססות רשת ב- UC Irvine בשנת 2000 התווה העברת מדינות ייצוגיות (REST) ​​ותיאר את הרעיון של "ממשק תכנות יישומים מבוסס רשת", ש- Fielding עמד בניגוד לממשקי API מסורתיים "מבוססי-ספריה". [12] ממשקי ה- API של XML ו- JSON ראו אימוץ מסחרי נרחב החל בשנת 2000 ונמשך משנת 2021. ה- API של האינטרנט הוא כעת המשמעות הנפוצה ביותר של המונח API. [2]

הרשת הסמנטית שהציע טים ברנרס-לי בשנת 2001 כללה "ממשקי API סמנטיים" המעבירים מחדש את ה- API כממשק נתונים פתוח ומופץ ולא כממשק התנהגות תוכנה. [13] ממשקים וסוכנים קנייניים התרחבו יותר מאשר פתוחים, אך הרעיון של ה- API כממשק נתונים תפס את מקומו. מכיוון שממשקים מקוונים של API משמשים להחלפת נתונים מכל הסוגים באופן מקוון, API הפך למונח רחב המתאר חלק ניכר מהתקשורת באינטרנט. [11] כאשר משתמשים בדרך זו, המונח API חופף את משמעותו למונח פרוטוקול תקשורת.

ספריות ומסגרות עריכה

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

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

ההפרדה בין ה- API ליישומו יכולה לאפשר לתוכניות הכתובות בשפה אחת להשתמש בספריה שנכתבה בשפה אחרת. לדוגמה, מכיוון ש- Scala ו- Java מתקבצים לקוד Bytec תואם, מפתחי Scala יכולים לנצל כל Java API. [14]

השימוש ב- API יכול להשתנות בהתאם לסוג שפת התכנות המעורבת. ממשק API לשפה פרוצדוראלית כמו Lua יכול לכלול בעיקר שגרות בסיסיות לביצוע קוד, מניפולציה בנתונים או טיפול בשגיאות ואילו API לשפה מונחית עצמים, כגון Java, יספק מפרט של מחלקות ושיטות הכיתה שלה. [15] [16]

כריכות שפה הן גם ממשקי API. על ידי מיפוי התכונות והיכולות של שפה אחת לממשק המיושם בשפה אחרת, איגוד שפה מאפשר להשתמש בספריה או בשירות הכתוב בשפה אחת בעת פיתוח בשפה אחרת. [17] כלים כגון SWIG ו- F2PY, מחולל ממשקי Fortran-to-Python, מאפשרים יצירת ממשקים כאלה. [18]

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

יתר על כן, זרימת השליטה הכוללת בתכנית יכולה להיות מחוץ לשליטתו של המתקשר ובידי המסגרת על ידי היפוך שליטה או מנגנון דומה. [19] [20]

מערכות הפעלה עריכה

ממשק API יכול לציין את הממשק בין יישום למערכת ההפעלה. [21] POSIX, למשל, מציין קבוצה של ממשקי API נפוצים שמטרתם לאפשר יישום שנכתב עבור מערכת הפעלה תואמת POSIX להיערך למערכת הפעלה תואמת POSIX אחרת.

הפצת תוכנות לינוקס וברקלי הן דוגמאות למערכות הפעלה המיישמות את ממשקי ה- API של POSIX. [22]

מיקרוסופט הראתה מחויבות חזקה לממשק API תואם לאחור, במיוחד בספריית Windows API (Win32) שלה, כך שיישומים ישנים יותר עשויים לפעול בגרסאות חדשות יותר של Windows באמצעות הגדרה ספציפית להפעלה הנקראת "מצב תאימות". [23]

API שונה מממשק בינארי של יישומים (ABI) בכך שממשק API מבוסס קוד מקור ואילו ABI מבוסס על בינארי. לדוגמא, POSIX מספק ממשקי API בעוד שבסיס ה- Linux Standard מספק ABI. [24] [25]

ממשקי API מרחוק ערוך

ממשקי API מרוחקים מאפשרים למפתחים לתפעל משאבים מרוחקים באמצעות פרוטוקולים, סטנדרטים ספציפיים לתקשורת המאפשרים לטכנולוגיות שונות לעבוד יחד, ללא קשר לשפה או לפלטפורמה. לדוגמא, ה- API של קישוריות מסד הנתונים של Java מאפשר למפתחים לשאול סוגים רבים ושונים של מאגרי מידע עם אותה קבוצה של פונקציות, בעוד שממשק ה- API של קריאת שיטת Java מרחוק משתמש בפרוטוקול Java Remote Method כדי לאפשר הפעלה של פונקציות הפועלות מרחוק, אך נראות מקומיות המפתח. [26] [27]

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

שינוי של אובייקט ה- proxy יביא גם לשינוי מקביל של האובייקט המרוחק. [28]

ממשקי API לעריכה

ממשקי API של האינטרנט הם הממשקים המוגדרים באמצעותם מתקיימת אינטראקציה בין ארגון ליישומים המשתמשים בנכסיו, שהוא גם הסכם רמת שירות (SLA) כדי לציין את הספק הפונקציונלי ולחשוף את נתיב השירות או ה- URL עבור משתמשי ה- API שלו. גישת API היא גישה אדריכלית אשר סובבת סביב מתן ממשק תוכנה למערך שירותים ליישומים שונים המשרתים סוגים שונים של צרכנים. [29]

כאשר משתמשים בהקשר לפיתוח אתרים, API מוגדר בדרך כלל כקבוצה של מפרטים, כגון הודעות בקשת פרוטוקול Hypertext Transfer (HTTP), יחד עם הגדרה של מבנה הודעות תגובה, בדרך כלל בשפת סימון מורחבת (XML). ) או בפורמט JSON (JavaScript Notation Notation). דוגמה יכולה להיות ממשק API של חברת שילוח שניתן להוסיף לאתר ממוקד מסחר אלקטרוני בכדי להקל על הזמנת שירותי משלוח וכולל באופן אוטומטי את תעריפי המשלוח הנוכחיים, מבלי שמפתח האתר יצטרך להזין את טבלת התעריפים של המשלח למסד נתונים באינטרנט. בעוד ש- "API של רשת" היה מבחינה היסטורית כמעט שם נרדף לשירות אתרים, המגמה האחרונה (מה שמכונה Web 2.0) התרחקה משירותי אינטרנט מבוססי Simple Object Access Protocol (SOAP) ומארכיטקטורה מוכוונת שירות (SOA) לכיוון ישיר יותר. משאבי רשת בסגנון העברת מצב ייצוגי (REST) ​​וארכיטקטורה מכוונת משאבים (ROA). [30] חלק ממגמה זו קשורה לתנועת האינטרנט הסמנטי לעבר Resource Description Framework (RDF), מושג לקידום טכנולוגיות הנדסת אונטולוגיה מבוססי רשת. ממשקי API של אינטרנט מאפשרים שילוב של מספר ממשקי API ליישומים חדשים המכונים Mashups. [31] במרחב המדיה החברתית, ממשקי API ברשת אפשרו לקהילות אינטרנט להקל על שיתוף תוכן ונתונים בין קהילות ליישומים. באופן זה, ניתן לפרסם ולתעדכן תכנים הנוצרים במקום אחד באופן דינמי למספר מיקומים באינטרנט. [32] לדוגמא, ה- REST API של טוויטר מאפשר למפתחים לגשת לנתוני ליבה של טוויטר ו- API API לחיפוש מספק שיטות למפתחים לקיים אינטראקציה עם חיפוש טוויטר ונתוני מגמות. [33]

לתכנון ממשק API השפעה משמעותית על השימוש בו. [3] עקרון הסתרת המידע מתאר את תפקיד ממשקי התכנות המאפשרים תכנות מודולרי על ידי הסתרת פרטי ההטמעה של המודולים כך שמשתמשים במודולים אינם צריכים להבין את המורכבות שבתוכם המודולים. [34] לפיכך, תכנון ממשק API מנסה לספק רק את הכלים שהמשתמש יצפה להם. [3] תכנון ממשקי התכנות מייצג חלק חשוב בארכיטקטורת התוכנה, ארגון של פיסת תוכנה מורכבת. [35]

ממשקי API הם אחת הדרכים הנפוצות יותר לשילוב חברות טכנולוגיה. אלה המספקים ממשקי API ומשתמשים בהם נחשבים כחברים במערכת אקולוגית עסקית. [36]

המדיניות העיקרית לשחרור API היא: [37]

  • פְּרָטִי: ה- API מיועד לשימוש פנימי בלבד של החברה.
  • בת זוג: רק שותפים עסקיים ספציפיים יכולים להשתמש ב- API. לדוגמה, חברות להשכרת רכב כמו Uber ו- Lyft מאפשרות למפתחי צד ג 'מאושרים להזמין ישירות נסיעות מתוך האפליקציות שלהם. זה מאפשר לחברות לבצע בקרת איכות על ידי אצור לאילו אפליקציות יש גישה ל- API, ומספק להן זרם הכנסות נוסף. [38]
  • פּוּמְבֵּי: ה- API זמין לשימוש הציבור. לדוגמא, מיקרוסופט הופכת את ה- API של חלונות לציבורי, ואפל משחררת את ה- API Cocoa שלה, כך שניתן יהיה לכתוב תוכנה לפלטפורמות שלהם. לא כל ממשקי ה- API הציבוריים נגישים בדרך כלל לכולם. לדוגמא, ספקי שירותי אינטרנט כמו Cloudflare או Voxility, משתמשים בממשקי API של RESTful כדי לאפשר ללקוחות ולמשווקים גישה למידע התשתית שלהם, לסטטיסטיקה של DDoS, לביצועי הרשת או לפקדי לוח המחוונים. [39] גישה לממשקי API כאלה ניתנת על ידי "אסימוני API", או אימות סטטוס לקוח. [40]

השלכות API ציבוריות עריכה

גורם חשוב כאשר ממשק API הופך לציבורי הוא "יציבות הממשק" שלו. שינויים בממשק ה- API - למשל הוספת פרמטרים חדשים לשיחת פונקציה - עלולים לשבור תאימות ללקוחות התלויים בממשק API זה. [41]

כאשר חלקים מממשק API המוצג באופן ציבורי נתונים לשינויים ולכן אינם יציבים, יש לתעד חלקים כאלה מממשק API מסוים במפורש כ"לא יציבים ". לדוגמה, בספריית גויאבה של גוגל, החלקים שנחשבים לא יציבים, ואשר עשויים להשתנות בקרוב, מסומנים בהערת Java @Beta. [42]

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

קוד לקוח עשוי להכיל שימושים חדשניים או אופורטוניסטים שלא נועדו על ידי מעצבי ה- API. במילים אחרות, עבור ספריה עם בסיס משתמשים משמעותי, כאשר אלמנט הופך לחלק מה- API הציבורי, ניתן להשתמש בו בדרכים מגוונות. [44] ב- 19 בפברואר 2020 פרסם Akamai את הדו"ח השנתי "מצב האינטרנט", שהציג את המגמה ההולכת וגוברת של פושעי סייבר המכוונים לפלטפורמות API ציבוריות בשירותים פיננסיים ברחבי העולם. מדצמבר 2017 עד נובמבר 2019, אקמאי היה עד 85.42 מיליארד התקפות הפרת אישורים. כ -20%, או 16.55 מיליארד, היו נגד שמות מארח שהוגדרו כנקודות קצה של API. מתוכם 473.5 מיליון פנו לארגונים במגזר השירותים הפיננסיים. [45]

תיעוד API מתאר אילו שירותים מציעים API וכיצד להשתמש בשירותים אלה, במטרה לכסות את כל מה שלקוח יצטרך לדעת למטרות מעשיות.

תיעוד הוא קריטי לפיתוח ותחזוקה של יישומים באמצעות ה- API. [46] תיעוד API נמצא באופן מסורתי בקבצי תיעוד אך ניתן למצוא אותו גם ברשתות חברתיות כמו בלוגים, פורומים ואתרי Q & ampA. [47]

קבצי תיעוד מסורתיים מוצגים לעיתים קרובות באמצעות מערכת תיעוד, כגון Javadoc או Pydoc, בעלת מראה ומבנה עקביים. עם זאת, סוגי התוכן הכלולים בתיעוד שונים מ- API ל- API. [48]

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

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

ניתן להעשיר את תיעוד ה- API במידע מטא-נתונים כמו הערות Java. ניתן להשתמש במטא נתונים זה על ידי המהדר, הכלים ועל ידי ה- זמן ריצה סביבה ליישום התנהגויות מותאמות אישית או טיפול מותאם אישית. [50]

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

בשנת 2010 תבעה חברת אורקל את גוגל על ​​כך שהפיצה יישום חדש של ג'אווה המוטמע במערכת ההפעלה אנדרואיד. [52] גוגל לא רכשה כל הרשאה לשכפל את ה- API של Java, אם כי ניתן הרשאה לפרויקט OpenJDK דומה. השופט ויליאם אלסופ פסק ב אורקל נ 'גוגל במקרה ש- API לא יכול להיות מוגן בזכויות יוצרים בארה"ב וכי ניצחון של Oracle היה מרחיב באופן נרחב את הגנת זכויות היוצרים ל"מערכת סמלים פונקציונלית "ומאפשר זכויות יוצרים על פקודות תוכנה פשוטות:

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

אולם בשנת 2014, פסיקתו של אלסופ בוטלה בערעור לבית המשפט לערעורים במעגל הפדרלי, אם כי השאלה האם שימוש כזה בממשקי API מהווה שימוש הוגן לא נפתרה. [55] [56]

בשנת 2016, לאחר משפט של שבועיים, חבר מושבעים קבע כי הטמעה מחודשת של גוגל ב- API של Java מהווה שימוש הוגן, אך אורקל נשבעה לערער על ההחלטה. [57] אורקל זכתה בערעור, כאשר בית המשפט לערעורים על המעגל הפדרלי קבע כי השימוש של גוגל בממשקי ה- API אינו מעניק שימוש הוגן. [58] בשנת 2019, גוגל ערערה לבית המשפט העליון של ארצות הברית על פסיקת זכויות היוצרים והשימוש ההוגן, ובית המשפט העליון נתן ביקורת. [59] עקב מגיפת ה- COVID-19, הדיונים בעל פה בתיק עוכבו עד אוקטובר 2020. [60]


היסטוריה של המזרח התיכון

המזרח התיכון מכונה לעתים קרובות "ערש הציוויליזציה", ומבט קצר על ההיסטוריה של האזור מסביר בבירור מדוע זה נכון. חלק זה של העולם, ובמיוחד אזור מסופוטמיה סביב נהרות החידקל והפרת, הוא ביתם של רבים מההישגים המוקדמים ביותר של האנושות. בני האדם הניאוליתיים עברו כאן את המעברים הראשונים מאורחות החיים הנוודים לחקלאיים על ידי המצאת הגלגל, החקלאות הבסיסית והתחלת המילה הכתובה לפני כ 12,000 שנה. שומר הקדום היה הציוויליזציה הראשונה על פני כדור הארץ, והפיק את קטע הספרות העתיק ביותר הידוע, האפוס של גילגמש, שכיום הוא בן למעלה מ -4000 שנה. אזור זה היה גם ביתם של האימפריות האכדיות, הבבליות והאשוריות הקדומות, בעוד שמרחוק מערבה אזור המזרח התיכון ראה את האיחוד והעלייה של מצרים העתיקה. כמה אימפריות פרסיות שמקורן באיראן המודרנית עלו לשליטה גם במזרח התיכון, ואילו הרומאים ומדינתם היורשת במזרח, האימפריה הביזנטית, שלטו בסופו של דבר באזור מחופי הים התיכון ועד נהר הפרת.

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

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

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

פיגועי הטרור ב- 11 בספטמבר ב ארצות הברית בשנת 2001 גרמו לפלישה לאפגניסטן ומאוחר יותר לעירק כחלק מ"מלחמה בטרור "המתמשכת, בעוד שסדרת מהפכות שהחלה בשנת 2010 בשם האביב הערבי כללה מחאות גדולות והפלת הדיקטטורה. משטרים בתוניסיה, מצרים, לוב ותימן. פעילות מהפכנית בסוריה הביאה לתגובות ממשלתיות קשות שהובילו למלחמת האזרחים הסורית הממושכת, סכסוך גדול יותר עדיין נמשך והרג בין 250,000 ל -470,000, עקרו מעל 7.5 מיליון בתוך סוריה, ואילצו מעל 4 מיליון אנשים לברוח מהמדינה כפליטים. .

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


פיתרון לאומי לפער הדיגיטלי מתחיל עם מדינות

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

החלוקה הדיגיטלית היא אתגר יקר לפתרון: דו"ח מוועדת התקשורת הפדרלית (FCC) מ -2017 מצא כי 14% מהעסקים למגורים ועסקים קטנים ובינוניים חסרים גישה לפס רחב ושהיה עולה 40 מיליארד דולר להשיג סיבים אופטיים כבל - הנושא אותות פס רחב - ל 98% מהנחות אלה. זה יעלה עוד 40 מיליארד דולר לשרת את שני האחוזים האחרונים.

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

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

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

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

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

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

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

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

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

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

A suite of policies creates the framework that supports Colorado’s broadband program and goals, including the executive order that created the CBO and enabling legislation for the DORA grant program—as well as policies focused on expanding broadband access and ensuring the quality of those services, such as addressing barriers to broadband deployment by electric cooperatives and requiring DORA grantees to adhere to the principles of net neutrality.

Other states are taking a similarly comprehensive approach, including steps to ensure that grants and loans support projects that meet connectivity needs over the long term. For example, states have set speed goals that exceed the FCC’s 25 megabits per second (Mbps) download and 3 Mbps upload standard for deployment, such as Minnesota’s goal of border-to-border residential access of 100 Mbps download and 20 Mbps upload by 2026, Washington’s goal of 150 Mbps symmetrical service by 2028, and Vermont’s goal of 100 Mbps symmetrical service by 2024.

Like Colorado, Maine and North Carolina provide planning and technical assistance to aid communities in identifying local solutions. California and Virginia have provided grants for middle mile infrastructure to help decrease the cost of deploying last mile service to homes and businesses, in addition to grants targeted toward building last mile infrastructure. And Tennessee and Minnesota have technology neutral grant programs that can provide funding to any technology that delivers internet service at broadband speeds, and either encourage or require that grant-funded networks are built in such a way that they can be upgraded to significantly higher speeds.

As all levels of government work to address gaps in broadband access, policymakers can learn from states about effective strategies to expand high-speed internet. These efforts are built on multiple, mutually reinforcing activities that address components of what makes broadband deployment so difficult—from setting goals that look to future needs, to building expertise at the local level, to funding support to reduce the cost of infrastructure deployment. Through these efforts, states are making meaningful progress in ensuring that their citizens have access to reliable, high-speed internet access.

Anna Read is an officer with The Pew Charitable Trusts’ broadband research initiative.

This op-ed was originally published in TechDirt on December 16, 2020.


Under the Hood

The help pages are built on top of the ApiExplorer class, which is part of the Web API framework. ה ApiExplorer class provides the raw material for creating a help page. For each API, ApiExplorer contains an ApiDescription that describes the API. For this purpose, an "API" is defined as the combination of HTTP method and relative URI. For example, here are some distinct APIs:

If a controller action supports multiple HTTP methods, the ApiExplorer treats each method as a distinct API.

To hide an API from the ApiExplorer, add the ApiExplorerSettings attribute to the action and set IgnoreApi to true.

You can also add this attribute to the controller, to exclude the entire controller.

The ApiExplorer class gets documentation strings from the IDocumentationProvider מִמְשָׁק. As you saw earlier, the Help Pages library provides an IDocumentationProvider that gets documentation from XML documentation strings. The code is located in /Areas/HelpPage/XmlDocumentationProvider.cs. You can get documentation from another source by writing your own IDocumentationProvider. To wire it up, call the SetDocumentationProvider extension method, defined in HelpPageConfigurationExtensions

ApiExplorer automatically calls into the IDocumentationProvider interface to get documentation strings for each API. It stores them in the Documentation property of the ApiDescription ו ApiParameterDescription חפצים.


Financial Management Information Systems (FMIS)

The FMIS Data Mapper provides quick access to 149 Bank-funded FMIS projects in 83 countries in Google Maps. Detailed information about the Bank-funded FMIS projects can be found in the FMIS Database [XLS]. FMIS Database was originally developed as a basis for the first FMIS Study (FMIS: 25 Years of World Bank Experience on What Works and What Doesn't) published in April 2011 (available in nine languages) to share the developments and lessons learned in World Bank Funded projects.

The FMIS World Map presents basic information about 194 FMIS solutions in 198 economies worldwide using Google Maps. Detailed information about these FMIS platforms and government practices related to publishing open budget data can be found in the FMIS & OBD Database [XLS]. This database was developed as a part of the World Bank study (FMIS & Open Budget Data: Do Governments Report on Where the Money Goes?) released in September 2013 (available in nine languages) to present good practices and guidelines for publishing reliable open budget data from FMIS.

PFM Systems and e-Services

In collaboration with the 2016 World Development Report team, another global dataset was developed to present the trends in modernization and integration of public financial management (PFM) systems and online services (e-Services) in 198 economies worldwide. Basic information on core government systems and online services can be found in the PFM Systems and e-Services Database [XLS].

STATUS OF FMIS PROJECTS

The World Bank Group has leading edge knowledge and substantial global experience to assist in the development or modernization of treasury systems and the establishment of integrated Public Financial Management (PFM) frameworks. Since 1984, the World Bank has financed 149 projects (114 completed + 33 active + 2 pipeline) in 83 countries.


VPN means "Virtual Private Network". It is a generic concept which designates a part of a bigger network (e.g. the Internet at large) which is logically isolated from the bigger network through non-hardware means (that's what "virtual" means): it is not that we are using distinct cables and switches rather, isolation is performed through use of cryptography.

SSL (now known as TLS) is a technology which takes a bidirectional transport medium and provides a secured bidirectional medium. It requires the underlying transport medium to be "mostly reliable" (when not attacked, data bytes are transferred in due order, with no loss and no repetition). SSL provides confidentiality, integrity (active alterations are reliably detected), and some authentication (usually server authentication, possibly mutual client-server authentication if using certificates on both sides).

So VPN and SSL are not from the same level. A VPN implementation requires some cryptography at some point. Some VPN implementations actually use SSL, resulting in a layered system: the VPN transfers IP packets (of the virtual network) by serializing them on a SSL connection, which itself uses TCP as a transport medium, which is built over IP packets (on the physical unprotected network). IPsec is another technology which is more deeply integrated in the packets, which suppresses some of those layers, and is thus a bit more efficient (less bandwidth overhead). On the other hand, IPsec must be managed quite deep within the operating system network code, while a SSL-based VPN only needs some way to hijack incoming and outgoing traffic the rest can be down in user-level software.

As I understand your question, you have an application where some machines must communicate over the Internet. You have some security requirements, and are thinking about either using SSL (over TCP over IP) or possibly HTTPS (which is HTTP-over-SSL-over-TCP-over-IP), or setting up a VPN between client and server and using "plain" TCP in that private network (the point of the VPN is that is gives you a secure network where you need not worry anymore about confidentiality). With SSL, your connection code must be aware of the security from a programming point of view, you do not open a SSL connection as if it was "just a socket". Some libraries make it relatively simple, but still, you must manage security at application level. A VPN, on the other hand, is configured at operating system level, so the security is not between your application on the client and your application on the server, but between the client operating system and the server operating system: that's not the same security model, although in many situations the difference turns out not to be relevant.

In practice, a VPN means that some configuration step is needed on the client operating system. It is quite invasive. Using two VPN-based applications on the same client may be problematic (security-wise, because the client then acts as a bridge which links together two VPN which should nominally be isolated from each other, and also in practice, because of collisions in address space). If the client is a customer, having him configure a VPN properly looks like an impossible task. However, a VPN means that applications need not be aware of security, so this makes it much easier to integrate third-party software within your application.


Key Concepts of a Man-in-the-Middle Attack

  • Are a type of session hijacking
  • Involve attackers inserting themselves as relays or proxies in an ongoing, legitimate conversation or data transfer
  • Exploit the real-time nature of conversations and data transfers to go undetected
  • Allow attackers to intercept confidential data
  • Allow attackers to insert malicious data and links in a way indistinguishable from legitimate data

To learn more about software security, including man-in-the-middle attacks and other vulnerabilities, download our free State of Software Security v11 report.


"Walk through the tunnel" means to enter the tunnel on one end and emerge out the other end.

"Walk across the tunnel" could mean the same thing, but only if the context establishes that. It could also mean to enter the tunnel through a side entrance, and exit out another side entrance (i.e. the short way, not the long way) or it could mean to go across the top of the tunnel (e.g. if it's underground and the road goes over it) or variations on those themes.

In general, "through" implies entering the middle of something and then going out the other side, whereas "across" implies crossing the middle, but not necessarily going ב the thing you're crossing.

Across is used with surfaces, places, flat objects/areas, or things that you are "on."

Across is also used if it's important to mean "on the other side of", or "moving over" something like a river, hole, bridge, etc.

Through X is used if you are surrounded by or "in"/"inside" X.

So you go דרך a tunnel, but not across זה. If you say you went across a tunnel, it would mean you somehow went over and on top of the tunnel (likely perpendicular to it) and avoided going in it.

You might go through a tunnel to get across a mountain range, though.

Both of these words are used to indicate a movement from one place to another.

Using "across" is somehow like using עַל. We usually use across to talk about moving from one side to the other, usually on the surface. It is used for a two-dimensional and open space (across a wall, city, sheet of paper, road and . ).

  1. We took a boat across the river.
  2. Looking out across the ocean, he saw land.

Using "דרך", however, is somehow like using ב אוֹ בְּתוֹך. Imagine a place which is surrounded by something (for example a tunnel or a forest which is covered with tall trees). When we want to move from one side of this surrounded place to the other, we use "through". Through is used for a movement in a three-dimensional and covered place.

  1. I am driving דרך the tunnel.

  2. She loves walking דרך the forest.

About grass and lawn, if we are talking about a place which is covered with tall or long grass, we should use "through":

When my dog runs דרך long grass, it’s difficult to find him.

but if we are talking about a field covered with short or small grass or lawn, we should use "across":

Tomorrow at this time you'll be chasing peacocks across the lawn.


צפו בסרטון: How to use overpass turbo interface for Open Street Map data