MWSE 2 Version | İçerik #11

Open
opened 2024-02-10 21:04:44 +03:00 by saqut · 0 comments
Owner

image

MWSE 2. Versionun amacı

3. parti sunucuların MWSE ile iletişime geçebilmesi

Sadece Clientlerin birbirleri arasında iletişimi sağlamak yerine sunucu ve kendi kullanıcıları arasında stabil ve yüksek hızlı iletişimi sağlamak için köprü olarak kullanımını için geliştirme yapılacak
Böylece diğer sunucularda https üzerinden get/post atarak mwse ile iletişime geçebilir ve websocket desteklemesi gerekmez

Notify System | Bildirim eşitleme

Sunucudan ve diğer clientlerden gelen mesajların kullanıcı aktif olarak bağlı olmadığı ve bağlandıktan sonrada iletilebileceği senaryolarda kullanılabilen bir özellik olacaktır.
İletilmek istenen mesajlar geçici olarak depolanır, kullanıcı bağlı ise hemen değil ise ilk fırsatta iletilir
Sunucu bildirime bir iz (id veya uuid) bırakabilir bunun sonucunda bildirimin iletilip iletilmediğini daha sonra aynı iz ile sorgulayarak alabilir

Notiy Suit System | Bildirim eşitleme

Notify System'e benzer bir sistemdir ancak buna ek olarak bildirim olarak gönderilen paketin karşılığı olarak clientden yanıt alınabilir ve alınan cevap sunucuya geri iletilir.
Suit sistemde sunucu bildirimin durumunu sorgulamaz bunun yerine mwse bildirim iletildikten ve gerekiyorsa yanıtını aldıktan sonra 3. taraf sunucuy manuel tetikler

Pasif Sync | Pasif eşitleme

Clientlerin bir tablo veya bir dizi verileri kendi aralarında yüksek hızla eşitlemesi, veri üzerinde ekleme ve okuma yapabilmesi için api sağlanarak tüm clientlerden toplanan verileri kendi aralarında hızla eşitlemesi için bir alt yapı kurulacak

Bunun için tüm clientlerden alınan veriler ortak bir havuzda depolanarak tüm clientler kendi aralarında tamamen eşit olana kadar veri iletişimi gerçekleştirilecek. Hepsi eşit olduğuna havuza alınan tüm veriler depodan silinir ve işlem tamamlanmış olur

Bu durumda clientler yanlızca ekleme ve okuma yapabilirler, pasif okuma durumunda iletilen veriler düzenlenmez, değişen veriler diğer clientlere bildirilmez

Akif Collection | Aktif eşitleme

Clientlerin bir tablo veya bir dizi verileri kendi aralarında ortak bir veritabanında CRUD işlemleri yapmalarına olanak tanır, yapılan tüm işlemler diğer clientlere bildirilir
Tüm clientler bu verinin bir kopyasını saklar ve tamamen güncel olana kadar herhangi bir işlem yapmalarına olanak tanınmaz
Veri tutarlılığı için aynı anda yapılan değişiklikler sunucuya ulaşma zamanına göre önceliklendirilir ve diğer clientın güncelleme isteği reddedilir edilir.

MWSE 2 için çözülmesi gereken sorunlar

Credentials sorunu

WebServer ile Client arasındaki ilk iletişimi sağlarken bağlanan clientin o sunucuda oturum açmış veya hizmet alan vb. kullanıcı olup olmadığını doğrulamak gerekiyor.

  • Clientden doğrulama mesajı alıp doğrudan serverden bu mesajı doğrulaması istenerek client ile serverin ilişkili olduğu hızlı bir şekilde doğrulanabilir
  • Server tarafından cliente teslim edilen tekil bir tanımlayıcı soket üzerinde de bir kez alınarak, servere gidecek olan her mesajın içine embed edilerek ulaştırılabilir

Limiting Backend / Overloading Backend | Sunucu aşırı yüklenmesi veya sunucu sınırlamaları

Clientlerin birbirleri arasındaki ilettikleri mesajlar herhangi bir sınırlamaya tabi değildir ancak sunucularda durumlar farklı olabilir.

  • Sunucu API lerinde dakikalık veya saatlik istek miktarı sınırlamaları olabilir
  • Clientler MWSE üzerinden isteyerek veya istemeden sunucuya çok yoğun mesaj trafiğine maruz bırakabilir
  • Sunucular, MWSE yapısını yoğun mesajlar iletebilir, kaldırabileceğinden daha yüksek boyutta miktarda mesaj iletmesini isteyebilirler
![image](/attachments/7f967e39-b9d7-47bf-92ca-4298473b6ca7) ## MWSE 2. Versionun amacı ### 3. parti sunucuların MWSE ile iletişime geçebilmesi Sadece Clientlerin birbirleri arasında iletişimi sağlamak yerine sunucu ve kendi kullanıcıları arasında stabil ve yüksek hızlı iletişimi sağlamak için köprü olarak kullanımını için geliştirme yapılacak Böylece diğer sunucularda https üzerinden get/post atarak mwse ile iletişime geçebilir ve websocket desteklemesi gerekmez ### Notify System | Bildirim eşitleme Sunucudan ve diğer clientlerden gelen mesajların kullanıcı aktif olarak bağlı olmadığı ve bağlandıktan sonrada iletilebileceği senaryolarda kullanılabilen bir özellik olacaktır. İletilmek istenen mesajlar geçici olarak depolanır, kullanıcı bağlı ise hemen değil ise ilk fırsatta iletilir Sunucu bildirime bir iz (id veya uuid) bırakabilir bunun sonucunda bildirimin iletilip iletilmediğini daha sonra aynı iz ile sorgulayarak alabilir ### Notiy Suit System | Bildirim eşitleme Notify System'e benzer bir sistemdir ancak buna ek olarak bildirim olarak gönderilen paketin karşılığı olarak clientden yanıt alınabilir ve alınan cevap sunucuya geri iletilir. Suit sistemde sunucu bildirimin durumunu sorgulamaz bunun yerine mwse bildirim iletildikten ve gerekiyorsa yanıtını aldıktan sonra 3. taraf sunucuy manuel tetikler ### Pasif Sync | Pasif eşitleme Clientlerin bir tablo veya bir dizi verileri kendi aralarında yüksek hızla eşitlemesi, veri üzerinde ekleme ve okuma yapabilmesi için api sağlanarak tüm clientlerden toplanan verileri kendi aralarında hızla eşitlemesi için bir alt yapı kurulacak Bunun için tüm clientlerden alınan veriler ortak bir havuzda depolanarak tüm clientler kendi aralarında tamamen eşit olana kadar veri iletişimi gerçekleştirilecek. Hepsi eşit olduğuna havuza alınan tüm veriler depodan silinir ve işlem tamamlanmış olur Bu durumda clientler yanlızca ekleme ve okuma yapabilirler, pasif okuma durumunda iletilen veriler düzenlenmez, değişen veriler diğer clientlere bildirilmez ### Akif Collection | Aktif eşitleme Clientlerin bir tablo veya bir dizi verileri kendi aralarında ortak bir veritabanında CRUD işlemleri yapmalarına olanak tanır, yapılan tüm işlemler diğer clientlere bildirilir Tüm clientler bu verinin bir kopyasını saklar ve tamamen güncel olana kadar herhangi bir işlem yapmalarına olanak tanınmaz Veri tutarlılığı için aynı anda yapılan değişiklikler sunucuya ulaşma zamanına göre önceliklendirilir ve diğer clientın güncelleme isteği reddedilir edilir. ## MWSE 2 için çözülmesi gereken sorunlar ### Credentials sorunu WebServer ile Client arasındaki ilk iletişimi sağlarken bağlanan clientin o sunucuda oturum açmış veya hizmet alan vb. kullanıcı olup olmadığını doğrulamak gerekiyor. - Clientden doğrulama mesajı alıp doğrudan serverden bu mesajı doğrulaması istenerek client ile serverin ilişkili olduğu hızlı bir şekilde doğrulanabilir - Server tarafından cliente teslim edilen tekil bir tanımlayıcı soket üzerinde de bir kez alınarak, servere gidecek olan her mesajın içine embed edilerek ulaştırılabilir ### Limiting Backend / Overloading Backend | Sunucu aşırı yüklenmesi veya sunucu sınırlamaları Clientlerin birbirleri arasındaki ilettikleri mesajlar herhangi bir sınırlamaya tabi değildir ancak sunucularda durumlar farklı olabilir. - Sunucu API lerinde dakikalık veya saatlik istek miktarı sınırlamaları olabilir - Clientler MWSE üzerinden isteyerek veya istemeden sunucuya çok yoğun mesaj trafiğine maruz bırakabilir - Sunucular, MWSE yapısını yoğun mesajlar iletebilir, kaldırabileceğinden daha yüksek boyutta miktarda mesaj iletmesini isteyebilirler
saqut pinned this 2024-02-10 22:01:26 +03:00
saqut added a new dependency 2024-02-10 22:48:49 +03:00
saqut added a new dependency 2024-02-10 22:49:13 +03:00
saqut removed a dependency 2024-02-10 22:49:25 +03:00
saqut added a new dependency 2024-02-10 22:49:32 +03:00
saqut added a new dependency 2024-02-10 22:49:40 +03:00
saqut removed a dependency 2024-02-10 22:50:21 +03:00
saqut added a new dependency 2024-02-10 22:50:36 +03:00
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: saqut/MWSE#11
No description provided.