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.