gRPC

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

שגיאת לואה ביחידה יחידה:תבנית_מידע בשורה 261: תבנית תוכנה ריקה. gRPC (ראשי תיבות של gRPC Remote Procedure Calls[1]) היא פלטפורמת תוכנה חוצת-פלטפורמות בקוד פתוח לRPC. שכבת התוכנה gRPC נוצרה בתחילה על ידי גוגל, שהשתמשה בתשתית RPC יחידה למטרות כלליות בשם Stubby כדי לחבר את ההיקף הגדול של ה-microservices הפועלים בתוך ולרוחב מרכזי הנתונים שלה משנת 2001 בערך [2] במרץ 2015, גוגל החליטה לבנות את הגרסה הבאה של Stubby ולהפוך אותה לקוד פתוח. התוצאה הייתה gRPC, שמשמשת כיום בארגונים רבים מלבד גוגל להעצים מקרי שימוש מע-microservices ועד ל"last mile" של מחשוב (ניידים, אינטרנט ואינטרנט של הדברים). הוא משתמש ב-HTTP/2 לתעבורת מידע, במאגרי פרוטוקול (Protocol Buffers) כשפת תיאור הממשק, ומספק תכונות כגון אימות, סטרימינג דו-כיווני ובקרת זרימה, חסימה או אי-חסימה של קישורים, וכן ביטול וחדלות-זמן (timeouts). הוא מייצר חיבורים בין פלטפורמות ללקוח ולשרת עבור שפות רבות. תרחישי השימוש הנפוצים ביותר כוללים חיבור שירותים בארכיטקטורה בסגנון מיקרו-שירותים, או חיבור לקוחות מכשירים ניידים לשירותי קצה.[3]

השימוש המורכב של gRPC ב-HTTP/2 לא מאפשר ליישם לקוח gRPC בדפדפן, אלא עם שימוש בפרוקסי.[4]

אימות

gRPC תומך בשימוש ב- TLS ובאימות מבוסס אסימון ( token-based authentication). חיבור לשירותי גוגל חייב להשתמש ב-TLS. ישנם שני סוגים של אישורים: אישורי ערוץ ואישורי שיחה. להרשאה מבוססת אסימון, gRPC מספקת שרת מיירט [5] ויירוט לקוח.[6]

הצפנה

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

אימוץ

מספר ארגונים שונים אימצו את gRPC, כגון Uber, [8] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks, [9] Spotify, [10] Zalando, [11] Dropbox, [12] ו-Google כמפתחת המקורית.

פרויקט הקוד הפתוח u-bmc משתמש ב-gRPC כדי להחליף ממשק ניהול פלטפורמה חכמה (IPMI).[13] ב-8 בינואר 2019, Dropbox הודיעה כי הגרסה הבאה של "Courier", מסגרת ה-RPC שלהם בליבת הארכיטקטורה מוכוונת השירות (SOA), תועבר להתבסס על gRPC, בעיקר בגלל שהיא תואמת היטב את המנהג הקיים שלהם. מסגרות RPC.[14]

חלופות ל-gRPC

  • Cap'n Proto
  • Apache Thrift
  • Apache Avro
  • JSON-RPC
  • XML-RPC

קישורים חיצוניים

הערות שוליים

  1. ^ "FAQ". gRPC.
  2. ^ "gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments". 24 באוגוסט 2016. נבדק ב-2023-04-03. {{cite web}}: (עזרה)
  3. ^ "About gRPC". gRPC (באנגלית). נבדק ב-2021-05-25.
  4. ^ "The state of gRPC in the browser". gRPC (באנגלית אמריקאית). 8 בינואר 2019. {{cite web}}: (עזרה)
  5. ^ "gRPC Server Interceptor".
  6. ^ "gRPC". grpc.io. נבדק ב-2020-02-24.
  7. ^ JamesNK. "Compare gRPC services with HTTP APIs". docs.microsoft.com (באנגלית אמריקאית). נבדק ב-2020-02-24.
  8. ^ "gRPC at Uber". 19 במאי 2021. {{cite web}}: (עזרה)
  9. ^ "gRPC". grpc.io. נבדק ב-2020-02-24.
  10. ^ "gRPC at Spotify" (PDF). jfokus.se. נבדק ב-2020-05-12.
  11. ^ "Zalando Tech Radar". opensource.zalando.com. נבדק ב-2021-04-08.
  12. ^ "How we migrated Dropbox from Nginx to Envoy". Dropbox.Tech. נבדק ב-2020-10-30.
  13. ^ "u-bmc". GitHub.com. 5 באוקטובר 2022. {{cite web}}: (עזרה)
  14. ^ Nigmatullin, Ruslan; Ivanov, Alexey (2019-01-08). "Courier: Dropbox migration to gRPC". נבדק ב-2019-01-09.
Logo hamichlol 3.png
הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0