gRPC

מתוך ויקיפדיה, האנציקלופדיה החופשית
GRPC
מפתח חברת גוגל עריכת הנתון בוויקינתונים
גרסה אחרונה 1.62.2 (17 באפריל 2024) עריכת הנתון בוויקינתונים
נכתבה בשפות C עריכת הנתון בוויקינתונים
סוג רישיון אפאצ'י 2.0 עריכת הנתון בוויקינתונים
קוד מקור https://github.com/grpc/grpc עריכת הנתון בוויקינתונים
grpc.io
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

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.