DEXA Nasıl Çalışır?

DEXA Nasıl Çalışır?

DEXA temelde 2 farklı uygulama olarak çalışır. İlk uygulama DEXA'nın arkaplan işlemlerini yapmasını sağlayan ve Devoplus Portal ile iletişim kurduğu servis katmanıdır. İkinci uygulama ise bu servisin yönetilmesini sağlayan bir arayüz katmanıdır. Servis katmanı sunucuda her zaman çalışır durumdadır ve DEXA'nın veri alışveriş işlevleri servis katmanında gerçekleştirilir.

Temel Kavramlar

Query Store

DEXA'da yapılan tüm veri alışverişi işlemleri sorgulara bağlıdır. Query Store ise bu sorgulara ait anahtar (isim), giriş parametreleri, çıkış parametreleri, sorgu türü, versiyon, özelleştirme ve sorgu içeriği bilgilerinin saklandığı alandır. Query Store tarafından desteklenen sorgu türleri SQL Server, Nebim V3 Integrator, HTTP ve Node.js Worker şeklindedir. Daha kapsamlı bilgi için Query Store makalemizi inceleyebilirsiniz.

HTTP Tunnel

DEXA ile Devoplus Portal arasındaki iletişimi sağlayan network katmanıdır. HTTP Tunnel sayesinde DEXA servisinin çalıştığı ortamda IPsec gibi bir VPN çözümüne ihtiyaç duyulmadan Devoplus API ve DEXA Service iletişim kurabilmektedir.

HTTP Tunnel, internet ortamında yer alan bulut bir servistir. Hem Devoplus API hem de DEXA Service bu bulut ortamında websocket teknolojisi ile sürekli bağlıdır. Devoplus API'dan DEXA Service'e ulaşması gereken bir veri websocket ile HTTP Tunnel'e gönderilir. HTTP Tunnel bu paketi doğru alıcıya yine websocket ile iletir. Uygulama yanıtı aynı yolu takip ederek Devoplus API'a ulaştırılır.

Oluşturulan HTTP Tunnel üzerinde hem Devoplus ortamından Tunnel'e ulaşılmasında hem de Tunnel'den Client ortamına ulaşılmasında IP kısıtlamaları sağlanmıştır. Bu sayede bulut ortamında yer alan bu servise farklı kişilerden gelebilecek talepler engellenmiştir.

DEXA HTTP Tunnel çalışma prensibi

Message

HTTP Tunnel'de bahsedildiği gibi hem Devoplus API'dan DEXA Service'e hem de DEXA Service'ten Devoplus API'a çift yönlü bir veri alışverişi sağlanmaktadır. Bu veri alışverişi sırasında gönderilen ve alınan veriler standartlaştırılmış bir message paketi ile iletilir. Üretilen her bir message paketi MessageGuid adında bir benzersiz anahtar kullanır. Uygulama yanıtı bu anahtar kullanılarak geri döndürülür.
Örnek bir Data Exchange Message'ı aşağıda görebilirsiniz.
  1. {
        "MessageGuid": "9d169eed-d9c3-4e0d-9f80-073d0f4ac539",
        "QueryStoreType": "Function",
        "QueryStoreKey": "SampleFunction",
        "Parameters": {
            "CompanyCode": 1,
            "ProcessTypeCode": "EZ",
            "IsActive": true
        },
        "Created": "2024-05-21T11:18:45.000+0000"
    }

Execution Result

Data Exchange işlemi tamamen asenkron çalışmaktadır. Gelen bir Data Exchange Message'a bu message ile gelen MessageGuid değeri kullanılarak timeout süresi içerisinde Execution Result modeli ile yanıt dönülmelidir.
Örnek bir Data Exchange Execution Result'ı aşağıda görebilirsiniz.
  1. {
        "ServerName": "Arwen",
        "MessageGuid": "9d169eed-d9c3-4e0d-9f80-073d0f4ac539",
        "ExecutionStart": "2024-05-21T11:18:45.134+0000",
        "ExecutionEnd": "2024-05-21T11:18:45.212+0000",
        "ExecutionResult": [
            {
                "CompanyCode": 1,
                "CompanyName": "Devoplus Teknoloji Çözümleri Ltd. Şti.",
                "TaxNumber": "7881020795",
                "Addresses": [
                    {
                        "AddressTypeCode": 2,
                        "CountryCode": 225,
                        "CityCode": 52,
                        "StateCode": 4006,
                        "PostCode": "34212",
                        "AddressDetails": "15 Temmuz Mah. Bahar Cad. Nurol Park J Blok No: 43/Z1",
                        "Location": [
                            {
                                "Latitude": 41.04121,
                                "Longitude": 28.810477
                            }
                        ]
                    },
                    {
                        "AddressTypeCode": 2,
                        "CountryCode": 225,
                        "CityCode": 52,
                        "StateCode": 3986,
                        "PostCode": "34020",
                        "AddressDetails": "Kazlıçeşme Mah. 245. Sk. Biruni Üniversitesi Teknopark No: 5",
                        "Location": [
                            {
                                "Latitude": 41.00317,
                                "Longitude": 28.91894
                            }
                        ]
                    }
                ]
            }
        ],
        "ErrorMessage": null
    }
    • Related Articles

    • Node.js Worker

      Farklı entegrasyon ihtiyaçlarını karşılamak, mantıksal sınama sonuçlarına göre farklı entegrasyon akışları uygulamak ya da bir hesaplama sonucunu döndürmek gibi işlemleri yapabilmek adına Node.js Worker altyapısını kullanabilirsiniz. Worker ...
    • Query Store Nedir?

      Query Store; Devoplus Portal ile kendi sunucularınız arasında veri alışverişini yönetmek için kullanılır. Query Store altında SQL Server, Nebim V3 Integrator, HTTP ve Node.js Worker tiplerinde hazır veri modelleri saklayabilir, bu modelleri kendi ...
    • Duyuru Yönetimi

      1. Duyuru Eklenmesi Duyuru eklemek için sayfanın sağ üst kısmında bulunana "Yeni Duyuru" butonuna tıklanır. Açılan sayfadaki alanlar doldurulur ve Kaydet butonu ile kaydedilir. Duyuru Tipi alanından duyurunun nasıl gösterileceğini seçebilirsiniz. ...