Skip to content

KOUSTECH'in Savaşan IHA Yarismasi sisteminde mesajları yönlendirmek ve sistem durumunu tutmaktan sorumlu ana/yönetici servis

Notifications You must be signed in to change notification settings

koustech/mastermind

Repository files navigation

Mastermind

Savaşan 22 Yarışmasının sisteminde mesajları yönlendirmek ve sistem durumunu tutmaktan sorumlu Yönetici servis

Tasarım

Bu program, farklı gRPC bağlantıları açarak diğer servislerle konuşabilecektir. Resimdeki iki taraflı yayınlama (bidirectional streaming) ile bağlantılar açık tutulacaktır.

image

Mastermind, yönetici servis olup diyagramdaki diğer servislerle haberleşecektir. Sistem Mimarisi

Sistem Durumu

Bağlı olan servislerin sistemin hangi aşamada olduğundan haberdar olabilmeleri için, Mastermind bütün servislerle bu sistem durumu paylaşmak zorunda. Sistemi bir sonlu durum makinesi (finite-state machine) olarak modelleyerek, belirli kurallara göre hangi aşamada olması gerektiğini hesaplayıp, X geçiş fonksiyonu için Y durumuna geçileceğini elde edilebilir. 2022 Savaşan İHA Yarışması'nın isterlerini yerine getirmek için kullanılacak sistem durumları ve geçiş fonksiyonları aşağıdaki durum diyagramında gösterilir: Durum Makinesi

Endpointlar / RPCler

UpdateState(stream UpdateStateRequest) returns (stream UpdateStateResponse)

UpdateState bi-directional RPC üzerinden istemci servislerden durum geçişleri alırken, onlara yeni hesaplanan durumu da gönderecektir. Unary yerine bi-directional olmasının nedeni, durum güncellemesinin sadece gönderen servis değil, diğer servislerden de kaynaklı olabilmesinden dolayıdır.

Örnek olarak 4 servisin bağlı olduğu bir sistemde, Servis A bir UpdateStateRequest'ı gönderdiği zaman, Servis A, Servis B, ve Servis C'ye yeni durumu içeren bir UpdateStateResponse gönderilecek.

Quickstart

git clone https://github.com/koustech/mastermind.git
cd mastermind
go run main/main.go -a 127.0.0.1:5678

About

KOUSTECH'in Savaşan IHA Yarismasi sisteminde mesajları yönlendirmek ve sistem durumunu tutmaktan sorumlu ana/yönetici servis

Topics

Resources

Stars

Watchers

Forks

Languages