Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

დანამატის არქიტექტურა ​

PRX-ის დანამატის სისტემა WASM რანთაიმზეა აგებული, რომელიც მესამე მხარის კოდისთვის უსაფრთხო, პორტატულ შესრულების გარემოს უზრუნველყოფს. ეს გვერდი ტექნიკურ არქიტექტურას აღწერს.

რანთაიმი ​

PRX Wasmtime რანთაიმს იყენებს WASM დანამატების შესასრულებლად. ყოველი დანამატის ინსტანცია საკუთარ WASM საცავში ეშვება იზოლირებული წრფივი მეხსიერებით.

┌──────────────────────────────┐
│         PRX ჰოსტი            │
│                              │
│  ┌────────────────────────┐  │
│  │    WASM რანთაიმი       │  │
│  │  ┌──────┐  ┌──────┐   │  │
│  │  │დანა- │  │დანა- │   │  │
│  │  │მატი A│  │მატი B│   │  │
│  │  └──┬───┘  └──┬───┘   │  │
│  │     │         │        │  │
│  │  ჰოსტ ფუნქციების API  │  │
│  └────────────────────────┘  │
└──────────────────────────────┘

ჰოსტ-სტუმრის საზღვარი ​

დანამატები ჰოსტთან ჰოსტ ფუნქციების განსაზღვრული ნაკრებით კომუნიცირებს. საზღვარი უზრუნველყოფს:

  • ტიპის უსაფრთხოება -- ყველა ფუნქციის პარამეტრი ვალიდირდება
  • რესურსების ლიმიტები -- მეხსიერებისა და CPU-ის გამოყენება შეზღუდულია
  • ნებართვების შემოწმებები -- ყოველი ჰოსტ ფუნქციის გამოძახება დანამატის ნებართვების მანიფესტის მიხედვით ავტორიზდება

მეხსიერების მოდელი ​

ყოველ დანამატს საკუთარი წრფივი მეხსიერების სივრცე აქვს (ნაგულისხმევი 64 MB). მონაცემთა გაცვლა ჰოსტსა და სტუმარს შორის საერთო მეხსიერების ბუფერების მეშვეობით ხდება ცალსახა სერიალიზაციით.

დანამატის სიცოცხლის ციკლი ​

  1. ჩატვირთვა -- WASM ბინარი ჩაიტვირთება და ვალიდირდება
  2. ინიციალიზაცია -- დანამატის init() ფუნქცია კონფიგურაციით გამოიძახება
  3. მზადყოფნა -- დანამატი თავის შესაძლებლობებს (ინსტრუმენტები, არხები და სხვ.) არეგისტრირებს
  4. შესრულება -- ჰოსტი დანამატის ფუნქციებს საჭიროებისამებრ იძახებს
  5. გათიშვა -- დანამატის shutdown() ფუნქცია გასუფთავებისთვის გამოიძახება

დაკავშირებული გვერდები ​

Released under the Apache-2.0 License.