Szerkezet jázmin sms gateway

Ha megpróbálja zaguglit sms gateway nyílt forráskódú, akkor valószínűleg megtalálod Jasmin Gateway és Kannel. Mintegy Kannel könnyű megtalálni a jó cikket ruskoyazychnyh szegmens az internet, de Jasmin megfosztják e figyelmet, ezért úgy döntöttem, ma mondani egy keveset a készüléket.

Ha mégis egy kis részletet

  1. Meg van írva a Python
  2. Végrehajtja SMPP 3.4
  3. Csomagként kezdődő ubuntu 15.10
  4. Ez használ a RabbitMQ és Redis
  5. Lényegében egy menetes (vannak különálló részből áll, ami elvileg működhet több szálon, de a gyakorlatban ez nem történik)
  6. A beállítások módosítása általában jön leállás
  7. A tényleges teljesítmény 100 üzenet másodpercenként (belépési korlátok, a kimenő küldhet ütemben 1000 hozzászólás) (version 0.9b)
  8. Ő képes arra, hogy input az SMS-t http protokoll
  9. Képes dolgozni, és hogyan SMPP kliens és a szerver SMPP

Ez Jasmin képes:

  1. SMS fogadása keresztül küldött http vagy SMPP
  2. Előre fogadott SMS külső SMPP szolgáltatást (például a vállalat postvschika mobilszolgáltatások)
  3. Fogadására és továbbítására további statisztikákat SMS
  4. SMS támogatja a különböző kódolások
  5. Támogatja a hosszú SMS-t (amely több hozzászólás)
  6. Rugalmas konfiguráció, SMS csatornaváltás, attól függően, hogy a feladó \ content \ ideje
  7. Elszámolása a pénzügy és a térfogata SMS forgalom

Hogyan működik Jasmin

A fejlesztők írják Jasmin építészet az alábbiak szerint:

Szerkezet jázmin sms gateway

De én azt javaslom, hogy nézd meg az architektúra szempontjából mi történik az üzenetet, ha ez lesz a Jasmin szerver. Azt fogja vizsgálni az utat SMPP üzenetek http útvonal ugyanaz lesz:

  1. Jasmin portot fogadja az üzenetet. Ő ellenőrzi annak érvényességét alapján összefüggésben, és ha ez nem érvényesíti rendesen, visszautasítja (itt mellesleg az egyik gyenge pontok Jasmin: szinte minden vállalat, akikkel dolgoztam nem használhatja SMPP jegyzőkönyv mint olyan, hanem használt néhány saját megoldások, amelyek bizonyos pontokon eltér a protokoll - ilyen helyeken kellett dopilivat átadja a helyét).
  2. Jasmin parse üzenetet hozza őt a sorban RabbitMQ, további feldolgozásra, és elkezdi hallgatni a port.
  3. Egy másik hallgató (de ugyanabban a menet), Jasmin megkapja az üzenetet a sorból, és elküldi azt, hogy elfogják, ha úgy van beállítva (lehallgatott - egy olyan mechanizmust, amely az előre meghatározott script kap egy üzenetet, és a forgatókönyvet is dönthet, hogy az üzenet a következő teendő például akkor elutasítja, változtassa meg a címzett, vagy átirányítani zavisimoti üzenet tartalmát a legnagyobb hátránya a lehallgatott a Jasmin, hogy változtatni a forgatókönyvet, akkor vissza kell állítania a szippantás, hogy nagy terhelés alatt veszteséget jelent az üzenet egy részét) ..
  4. Ezután alapuló parancsok poluchaennyh lehallgatott és asztali outinga jázmin kiszámítja küldjük az üzenetet, és teszi azt egy külön sorban mindegyik küld sms szolgáltató
  5. Egy másik hallgató (de ugyanabban a menet), Jasmin megkapja az üzenetet a sorból, és a szolgáltató ellenőrzi, hogy a kívánt üzenetet, hogy a statisztika, és ha igen, aszinkron ír üzenetet Redis, és egy üzenetet küld

Miután megkapta a adatüzenetben Jasmin statisztikák az alábbiakat teszi:

  1. Jasmin portot fogadja az üzenetet. Ő ellenőrzi annak érvényességét kontextuson alapuló, és ha nem érvényesíti, majd eldobja.
  2. Elemzési üzenet Jasmin Redis néz az eredeti üzenet, hogy megértsék, akinek szüksége van, hogy küldjön egy választ. Közvetlenül azután, hogy ezt az üzenetet Redis eltávolítjuk. Ha az eredeti üzenet nincs jelen, akkor a válasz eldobjuk, különben a küldendő életbe RabbitMQ.
  3. Egy másik hallgató (de ugyanabban a menet), Jasmin megkapja az üzenetet a sorból, és üzenetet küld.

Értékelése építészet

Minden alapvető kölcsönhatás Jasmin által épített RabbitMQ. Figyelembe véve annak lehetőségét, hogy az aszinkron munka vele, ez lehetővé teszi, elég erős ahhoz, hogy a teljesítmény növelése képest lineáris egyszálú alkalmazások. Mivel Jasmin tárolja az egyetlen alkalom információ (SMS küldésével, hogy az állapota), nagyon igénytelen a memóriát.

Másrészt, egy ilyen rendszer belső átviteli parancsok és üzenetek vezethet meglehetősen nehéz ismételhető hibákat: megkapjuk a választ, hogy az üzenetet, mielőtt az üzenet van írva, hogy a Redis (ez a hiba nagyon kíváncsi, hogy megfigyeljék és hibakeresés). Hasonló okokból nem teszik lehetővé a fejlesztők átírni a kódot egy többszálas változat, anélkül, hogy jelentős fejlesztések és összetettsége építészet.

Külön előnye a bővítése Jasmin, a használata a RabbitMQ és Redis. Ez lehetővé teszi, hogy csatlakoztassa a külső modulokat és tárolás nélkül, hogy bármilyen manipuláció az Jasmin forrás.

Ellentétben Kannel Jasmin valószínűleg nem alkalmas nagy ipari működés miatt az alacsony teljesítmény. Azonban Jasmin egy kiváló program kísérletezési és létrehozzák saját programok alapján Jasmin kódot.