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
מפתח חברת גוגל עריכת הנתון בוויקינתונים
גרסה אחרונה 1.68.0 (16 בנובמבר 2024) עריכת הנתון בוויקינתונים
נכתבה בשפות C עריכת הנתון בוויקינתונים
סוג רישיון אפאצ'י 2.0 עריכת הנתון בוויקינתונים
קוד מקור https://github.com/grpc/grpc עריכת הנתון בוויקינתונים
grpc.io
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

השימוש המורכב של 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.