شبكة بحوث وتقارير ومعلومات
تجربة هيدر2
اليوم: الاربعاء 24 ابريل 2024 , الساعة: 3:15 م


اخر المشاهدات
الأكثر قراءة
اعلانات

مرحبا بكم في شبكة بحوث وتقارير ومعلومات


عزيزي زائر شبكة بحوث وتقارير ومعلومات.. تم إعداد وإختيار هذا الموضوع [ تعرٌف على ] بروتوكول التخزين المؤقت # اخر تحديث اليوم 2024-04-24 فإن كان لديك ملاحظة او توجيه يمكنك مراسلتنا من خلال الخيارات الموجودة بالموضوع.. وكذلك يمكنك زيارة القسم , وهنا نبذه عنها وتصفح المواضيع المتنوعه... آخر تحديث للمعلومات بتاريخ اليوم 27/03/2024

اعلانات

[ تعرٌف على ] بروتوكول التخزين المؤقت # اخر تحديث اليوم 2024-04-24

آخر تحديث منذ 28 يوم و 4 ساعة
2 مشاهدة

تم النشر اليوم 2024-04-24 | بروتوكول التخزين المؤقت

ملخص


طورت Google Protocol Buffers للاستخدام الداخلي وقدمت منشئ رمز للغات متعددة بموجب ترخيص مفتوح المصدر (انظر أدناه). أكدت أهداف تصميم بروتوكول التخزين المؤقت على البساطة والأداء. على وجه الخصوص، تم تصميمه ليكون أصغر وأسرع من XML . تُستخدم بروتوكول التخزين المؤقت على نطاق واسع في Google لتخزين وتبادل جميع أنواع المعلومات المنظمة. تعمل هذه الطريقة كأساس لنظام استدعاء إجراء بعيد مخصص (RPC) يتم استخدامه تقريبًا لجميع الاتصالات بين الأجهزة في Google. تشبه بروتوكول التخزين المؤقت المؤقتة Apache Thrift (التي يستخدمها Facebook ، وEvernote)، أو Ion (التي أنشأتها Amazon)، أو بروتوكولات Microsoft Bond ، وتقدم أيضًا حزمة بروتوكول RPC ملموسة لاستخدامها في خدمات محددة تسمى gRPC . يتم وصف هياكل البيانات والخدمات في ملف تعريف .proto (.proto) ويتم تجميعها باستخدام protoc . ينشئ هذا التجميع رمزًا يمكن استدعاؤه بواسطة مرسل أو متلقي هياكل البيانات هذه. على سبيل المثال، يتم إنشاء example.pb.cc و example.pb.h example.proto . يعرّفون فئات ++C لكل رسالة وخدمة في example.proto . من الناحية القانونية، يتم تسلسل الرسائل إلى تنسيق سلكي ثنائي يكون مضغوطًا ومتوافقًا مع الأمام والخلف، ولكنه لا يصف نفسه (أي، لا توجد طريقة لمعرفة الأسماء أو المعنى أو أنواع البيانات الكاملة للحقول بدون مواصفات خارجية). لا توجد طريقة محددة لتضمين أو الإشارة إلى مثل هذه المواصفات الخارجية (المخطط) داخل ملف Protocol Buffers. يشتمل التطبيق المدعوم رسميًا على تنسيق تسلسل ASCII ، ولكن هذا التنسيق - على الرغم من أنه يصف ذاتيًا - يفقد سلوك التوافق الأمامي والخلفي، وبالتالي لا يعد اختيارًا جيدًا للتطبيقات بخلاف التصحيح. على الرغم من أن الغرض الأساسي للمخازن المؤقتة للبروتوكول هو تسهيل الاتصال بالشبكة، إلا أن بساطتها وسرعتها تجعل من المخازن المؤقتة للبروتوكول بديلاً لفئات وهياكل ++C المتمحورة حول البيانات، خاصةً حيث قد تكون هناك حاجة للتشغيل البيني مع لغات أو أنظمة أخرى في المستقبل.

مثال

مخطط لاستخدام معين للمخازن المؤقتة للبروتوكول يربط أنواع البيانات بأسماء الحقول، باستخدام الأعداد الصحيحة لتحديد كل حقل. تحتوي بيانات المخزن المؤقت للبروتوكول على الأرقام فقط، وليس أسماء الحقول، مما يوفر بعض توفير عرض النطاق الترددي / التخزين مقارنة بالأنظمة التي تتضمن أسماء الحقول في البيانات.
//polyline.proto
syntax = "proto2"; message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
} message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
} message Polyline {
repeated Point point = 1;
optional string label = 2;
} تحدد رسالة «النقطة» عنصري بيانات إلزاميين، x و y . تسمية عنصر البيانات اختيارية. كل عنصر بيانات له علامة. يتم تحديد العلامة بعد علامة التساوي. على سبيل المثال، x لديه العلامة 1. توضح الرسائل "Line" و "Polyline"، اللتان تستخدمان Point ، كيفية عمل التركيب في بروتوكول التخزين المؤقت. يحتوي Polyline على حقل متكرر يتصرف مثل المتجه. يمكن بعد ذلك تجميع هذا المخطط لاستخدامه من قبل لغة برمجة واحدة أو أكثر. توفر Google protoc يسمى protoc والذي يمكنه إنتاج مخرجات لـ ++C أو Java أو Python. تتوفر برامج التحويل البرمجي للمخططات الأخرى من مصادر أخرى لإنشاء مخرجات تعتمد على اللغة لأكثر من 20 لغة أخرى.
على سبيل المثال، بعد إنتاج إصدار ++ C من مخطط المخزن المؤقت للبروتوكول أعلاه، يمكن لملف شفرة المصدر C ++ ، polyline.cpp ، استخدام كائنات الرسالة على النحو التالي:
// polyline.cpp
#include "polyline.pb.h" // generated by calling "protoc polyline.proto" Line* createNewLine(const std::string& name) {
// create a line from (10, 20) to (30, 40)
Line* line = new Line;
line->mutable_start()->set_x(10);
line->mutable_start()->set_y(20);
line->mutable_end()->set_x(30);
line->mutable_end()->set_y(40);
line->set_label(name);
return line;
} Polyline* createNewPolyline() {
// create a polyline with points at (10,10) and (20,20)
Polyline* polyline = new Polyline;
Point* point1 = polyline->add_point();
point1->set_x(10);
point1->set_y(10);
Point* point2 = polyline->add_point();
point2->set_x(20);
point2->set_y(20);
return polyline;
}

اللغات البرمجية المدعومة


يوفر Protobuf 2.0 مولد أكواد لـ ++C وJava و#C و وPython . يوفر Protobuf 3.0 مولد أكواد لـ ++ C ، وJava (بما في ذلك JavaNano ، وهي لغة مخصصة للبيئات منخفضة الموارد)، وPython ، وGo ، وRuby ، وObjective-C ، و#C . كما أنه يدعم JavaScript منذ 3.0.0-beta-2. تتوفر تطبيقات الطرف الثالث أيضًا لـ Ballerina ، C ، C ++ ، Dart ، Elixir ، Erlang ، Haskell ، JavaScript ، Perl ، PHP ، R ، رست، سكالا، سويفت، جوليا ونيم.

شرح مبسط


تعديل - تعديل مصدري - تعديل ويكي بيانات
شاركنا رأيك

 
التعليقات

لم يعلق احد حتى الآن .. كن اول من يعلق بالضغط هنا

أقسام شبكة بحوث وتقارير ومعلومات عملت لخدمة الزائر ليسهل عليه تصفح الموقع بسلاسة وأخذ المعلومات تصفح هذا الموضوع [ تعرٌف على ] بروتوكول التخزين المؤقت # اخر تحديث اليوم 2024-04-24 ويمكنك مراسلتنا في حال الملاحظات او التعديل او الإضافة او طلب حذف الموضوع ...آخر تعديل اليوم 27/03/2024


اعلانات العرب الآن