gRPC

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

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. ^ בתהליכי בנייה "תבנית:Cite web"
  2. ^ בתהליכי בנייה "תבנית:Cite web"
  3. ^ בתהליכי בנייה "תבנית:Cite web"
  4. ^ בתהליכי בנייה "תבנית:Cite web"
  5. ^ בתהליכי בנייה "תבנית:Cite web"
  6. ^ בתהליכי בנייה "תבנית:Cite web"
  7. ^ בתהליכי בנייה "תבנית:Cite web"
  8. ^ בתהליכי בנייה "תבנית:Cite web"
  9. ^ בתהליכי בנייה "תבנית:Cite web"
  10. ^ בתהליכי בנייה "תבנית:Cite web"
  11. ^ בתהליכי בנייה "תבנית:Cite web"
  12. ^ בתהליכי בנייה "תבנית:Cite web"
  13. ^ בתהליכי בנייה "תבנית:Cite web"
  14. ^ בתהליכי בנייה "תבנית:Cite web"