UYGULAMA OLUŞTURURKEN VERİ KULLANIMI

Forumlar UYGULAMA OLUŞTURURKEN VERİ KULLANIMI

  • Bu konu boş.
  • Post
    BAYPM
    Moderatör

    Analiz

    OutSystems ile uygulama geliştirmeye başlamadan önce, ihtiyaç duyulan işlevselliği ve özellikleri belirlemek için iş analizi yapmak gerekmektedir. Bu aşamada, kullanıcı ihtiyaçlarını, iş süreçlerini ve sistem gereksinimlerini anlamak için kullanıcılarla ve müşteriyle birlikte çalışılır. Bu adım, geliştirme sürecindeki diğer aşamaların etkinliğini artırmak için oldukça önemlidir.

    Tasarım ve Geliştirme

    Tasarım ve geliştirme aşamasında, uygulamanın kullanıcı arayüzü, veritabanı, iş kuralları ve iş akışları belirlenir. OutSystems’in ana IDE’si olan Service Studio’da, hazır bileşenler ve modüllerle birlikte gelir ve uygulamanızı oluşturmaya başlamak için bu modül kullanılır, bu nedenle kodlama ihtiyacını minimize eder ve geliştirme sürecini hızlandırır. Böylece, geliştiriciler zamanlarının çoğunu işlevselliğe odaklanarak geçirebilirler.

    Test ve Dağıtım

    Uygulama geliştirme sürecinin son aşaması, test ve dağıtım aşamasıdır. Bu aşamada, uygulama performans testlerine, güvenlik testlerine ve kullanılabilirlik testlerine tabi tutulur. Bu testler, uygulamanın kullanıma hazır olduğundan emin olmak için kritik öneme sahiptir. OutSystems, uygulamaların farklı ortamlarda test edilmesine izin verir. Bu nedenle, uygulamanın dağıtımı ve kullanıcıyla buluşması oldukça hızlı ve verimlidir.

    Uygulama analizi ve araştırması tamamlandıktan sonra uygulamanın geliştirme aşamasına geçilir burada ilk olarak veri yapısı oluşturulur.

    Veri

    Outsystems, entity ve structure içerisinde karmaşık veriyi kullanmaya ve tutmaya izin verir. Uygulamamız için gerekli olan veriyi almak için aggregate ve gelişmiş sql sorguları tanımlanır.

    Modelleme

    Öncelikle veri modellemeye ihtiyaç duyulur. Çünkü verileri modelleyerek, sahip olunan bilgileri kullanma biçiminizi, koruma ve idare ile ilgili veri yönetim gereksinimlerinizi belgeleyebilirsiniz. Ayrıca işbirliği için uygun bir yapı oluşturarak iş süreçlerini geliştirme fırsatlarını belirleyebilirsiniz. Veri bütünlüğünü iyileştirirken hataları (ve hataya açık gereksiz veri girişini) azaltırsınız.

    Veri modelleme denilince entity’ler arasında kurulan ilişkiler akla gelir. OutSystems Service Studio’da bir varlık (entity), yalnızca bir iş varlığının mantıksal tanımını değil, aynı zamanda diğer varlıklarla olan ilişkilerini de içerir.

    İlişkiler, tek bir referans özniteliği (veritabanı terminolojisinde “yabancı anahtar” olarak da bilinir) tanımlayarak oluşturulur. Veri türü <Entity> Identifier olan bu referans özniteliği, diğer varlığın Kimliği’nin türüne karşılık gelir. Referans özniteliği farklı bir simgeyle gösterilir (referans özniteliği simgesi veya anahtar referans özniteliği simgesi olarak adlandırılır) ve varlık diyagramlarında da görüntülenir.
    Referans özniteliğinin hangi varlıkta oluşturulması gerektiği, ilişkinin sayısal boyutuna ve seçenekliliğine bağlıdır. Bu karar, veritabanınızın tasarımına ve uygulamanızın gereksinimleriyle ilgilidir. Örneğin, bir ilişki zorunluysa, referans özniteliği zorunlu olan varlıkta oluşturulmalıdır. Benzer şekilde, bir ilişki bire-çok ise, referans özniteliği çok olan varlıkta oluşturulmalıdır. Bunun hakkında daha detaylı bilgi için varlıklar arasındaki ilişki türleri makalesini inceleyebilirsiniz.

    Veri Düzenleme

    Entity ve bunlar arasında ilişkiler oluşturduktan sonra bunlara ait verileri Service studio içerisinde görmek ve onları düzenlemek mümkündür.

    Uygulamalarınızın üretim ortamınıza ulaştığında doğru şekilde çalıştığından emin olmak için uygulamanızı gerçek ve anlamlı verilerle test etmek, gerçek kullanım örneklerini gösterir ve size anlamlı geri bildirim verilmesini sağlar, demolarınızı doğru verilerle hazırlamanıza yardımcı olur.

    Veri Sorgulama

    Uygulama için verileri toplu veya SQL öğesi olarak getirmeye izin verir ve sonra, veritabanı sorgularını veya özel SQL sorgularını kullanarak döndürülen kayıtları görüntüleyebilir ve inceleyebilirsiniz. 

    Yani Service Studio’nun veritabanı sorgularını ve özel SQL sorgularını kullanarak verileri görüntülemek için bir arayüz sağladığı anlamına gelir. Veritabanı sorguları, uygulamanın veritabanından veri almasına izin verir ve bu verileri uygulama içinde kullanabilirsiniz. Özel SQL sorguları, uygulamanın veritabanında özel bir işlem yapmasına izin verir. Örneğin, bir tablodaki tüm kayıtları silmek için bir SQL sorgusu yazabilirsiniz.

    Şifreleme ve Şifre Çözme Uygulamak

    Service Studio, HIPAA uyumluluğu için verilerin şifrelenmesi ve şifre çözülmesi işlemlerini destekler. Bu, uygulamanızda kullanılan hassas verilerin güvenliğini sağlamak için önemlidir. Service Studio, verilerin şifrelenmesi ve şifre çözülmesi için bir arayüz sağlar. Bu arayüz, uygulamanızda kullanılan verilerin güvenliğini sağlamak için kullanılabilir.

    OutSystems Cloud HIPAA teklifine abone olduğunuzda, ortamlarınızın, PHI’yi şifrelemek ve şifre çözmek için başvurabileceğiniz bir uygulama içerir. Bu uygulama Cryptography Services olarak adlandırılır ve hassas verilerin güvenliğini sağlamak için kullanılabilir. Cryptography Services, verilerin şifrelenmesi ve şifre çözülmesi için bir arayüz sağlar. Bu arayüz, uygulamanızda kullanılan verilerin güvenliğini sağlamak için kullanılanılır.

    AWS Key Management Service, kriptografik anahtarları oluşturmak ve yönetmek için güvenli ve dirençli bir hizmet sunar. Bu hizmet, diğer AWS hizmetleri ve özel uygulamaların şifreleme, şifre çözme, imzalama ve doğrulama işlemlerini gerçekleştirmesini sağlar. 

    AWS KMS, uygulamalarınızdaki ve AWS hizmetlerindeki kriptografik anahtarları oluşturmanıza, yönetmenize ve kontrol etmenize olanak tanır. Ayrıca, AWS KMS, diğer AWS hizmetleriyle entegre olduğundan, bu hizmetlerde depolanan verileri şifrelemenizi ve bu verilere erişimi kontrol etmenizi kolaylaştırır.

    Cryptography Services uygulamasının, bir KMS’e sahip olma ve yönetme karmaşıklığından soyutlanarak KMS ile arayüz sağlar. Bu, hassas verilerin güvenliğini sağlamak için kullanılan anahtarların yönetimini kolaylaştırır. Cryptography Services, verilerin şifrelenmesi ve şifre çözülmesi için bir arayüz sağlayarak verilerin daha güvenli kullanılmasına olanak tanır.

    PHI’yi şifrelemek ve şifresini çözmek için KMS ile çalışan eylemleri sağlar. Bunlar, şifrelenmiş verilerde arama yapmanız gerekip gerekmediğine bağlı olarak iki eylem grubuna ayrılır: Aranabilir niteliklere yönelik eylemler ve aranamayan niteliklere yönelik eylemler.

    Örneğin, bir uygulama için kullanıcıların adını, soyadını, doğum tarihini ve telefon numarasını kaydedebilirsiniz. Ancak, sadece telefon numarasının aranabilir olmasını isteyebilirsiniz. Aramayı telefon numarasına göre filtreleyen bir ekranınız olabilir ancak ad, soyad veya doğum tarihine göre arama yapamazsınız.

    Aynı IndexType’ı kullanan tüm kayıtlar için aynı anahtarı kullanarak şifrelemede rastgele bir dize eklenmeden anahtar güvenliği ve saldırılara karşı direnci sağlayan unsalted encryption oluşturur. Aynı metin, uygulamaların önce tüm kayıtların şifresini çözmek zorunda kalmadan şifrelenmiş değerler içinde arama yapmasına olanak tanıyan aynı şifreli metinle sonuçlanır. 

    Cryptography Services uygulaması, bir IndexType’a eşlenen bir anahtarın Id’sini döndürür. IndexType, bir özniteliği tanımlamak için kullanılır. Özniteliği benzersiz şekilde tanımlayan bir dize tanımlarsınız. Cryptography Services, bu ilişkiyi KeyId ve IndexType ile kaydeder. IndexType mevcut değilse yeni bir KeyId alır. Aksi takdirde, o IndexType için eşlenen mevcut KeyId alınır.

    EncryptIndexText
    Aranabilir nitelikleri şifrelemek için kullanılır.

    DecryptIndexText
    Aranabilen nitelikleri şifresini çözmek için kullanılır.

    Aranamayan Niteliklere Yönelik Eylemler

    Aranabilir olmayan öznitelikler için kullanılan eylemler, aynı temel kriptografik işlemleri kullanır ancak iki ek koruma sağlar. EntityId girdisine salt eklenir anahtarlar periyodik olarak döndürülür. Kaydın ilişkisini salt ve KeyId ile kaydetmeniz gerekecektir. Bu eşleştirmeyi tutmak için bir entity oluşturarak bunu yapabilirsiniz. 

    GenericKeysExpirationInMinutes
    Cryptography Services modülünde anahtarların dönüş süresini, site özelliği tarafından tanımlar. Bu değeri Service Center’da değiştirebilirsiniz.

    GetEntityKey
    Bir anahtarın kimliğini döndürür. Rotasyon nedeniyle, kayıtları oluşturduğunuzda veya güncellediğinizde bu eylemi kullanmanız gerekecektir.

    EncryptEntityText
    Bir KeyId ve bir salt (EntityId) kullanarak aranamayan özniteliklerin metnini şifreler.

    DecryptEntityText
    Bir KeyId ve bir salt (EntityId) kullanarak aranamayan niteliklerin şifrelenmiş metninin şifresini metin/düz olarak çözer.

    Çevrimdışı Kullanım

    OutSystems, uygulama işlevselliğinin çevrimdışı erişimini gerektiren kullanım senaryolarını uygulamak için gerekli yetenekleri sağlar. Bu yetenekler, hem mobil cihazlarda çalışan uygulamalar için hem de PWA’lar (Progressive Web Apps – İlerici Web Uygulamalar) kullanıyorsanız tarayıcıda çevrimdışı kullanımı içerir. Sağa hizmeti mobil uygulamalarında olduğu gibi, mobil cihazlarında her zaman internet erişimine sahip olmayan uzaktaki çalışanları desteklemek için kullanılabilir.

    Mobil bir uygulama yüklediğinizde, uygulama sunucuyla bağlantısı olmadan çalışabilmesi için gerekli tüm kaynakları, örneğin UI öğeleri ve istemci tarafındaki mantık gibi şeyleri içerir. Veriler yerel olarak bir SQLite veritabanında saklanabilir. Mobil uygulamanız yalnızca sunucudaki verilere ve mantığa erişim için ağ bağlantısını gerektirecektir.

    OutSystems bir PWA yüklediğinizde service worker tüm kaynakları, UI öğeleri ve istemci tarafındaki mantığı sunucuyla bağlantısız çalışabilmesi için önbelleğe almış olur. Veriler benzer şekilde IndexedDB veritabanında yerel olarak saklanabilir. Mobil uygulamalarda, PWA’nız yalnızca sunucudaki verilere ve mantığa erişim için ağ bağlantısına ihtiyaç duyar.

    Aşağıdaki diyagram, tipik bir mobil uygulanın çalışma mimarisi gösterilmektedir. PWAlar için mimari benzerdir, ancak tarayıcı yerel depolama için IndexedDB kullanır ve çevrimdışı kullanım için JavaScript tabanlı bir çerçeve içerir.

    Yerel veri modelinizi tanımlayarak ağ erişimi olduğunda cihaz ile sunucu arasında veri alışverişini sağlayacak bir senkronizasyon mekanizması kurulur ve uygulamanız aralıklı ağ erişimi olan senaryolara hazır hale getirilir.

    Çevrimdışı yetenekler, Service Studio’da seçtiğiniz uygulamanın mobil (Tablet veya Telefon) türünde olmasını gerektirir, ancak aynı kod tabanı, aşamalı bir web uygulaması olarak Deploy seçilerek uygulamayı bir tarayıcıda çalıştırmak için kullanılabilir.

    Yerel Depolamayı Kullanma

    Çevrimdışı veri senkronizasyon mekanizmanızı uygulamaya yönelik önerilen adımlar bu şekildedir. Aşağıda daha detaylı anlatılacaktır.

    1) Entity oluştur ve uyarla

    Mobil uygulamanızdaki yerel depolama öğeleri, karmaşık sunucu öğelerinden daha basit olmalıdır. Veritabanı ilişkilerini basitleştirmek için, önceden tanımladığınız veri gereksinimleri için basit ilişkiler kullanın. Daha basit yerel öğelerin özelliklerini sunucu öğelerine haritalayabilmeniz gerekmektedir. Senkronizasyon desenlerini analiz edin ve seçin. Hem yerel depolama hem de sunucu için veri yapıları oluşturun. Eğer ikili dosyaları desteklemeyi planlıyorsanız, yerel öğelerde saklama ile yerel dosya saklama arasındaki performans etkisini karşılaştırın.

    2) Senkronizasyon mantığını uygula

    Veri işleme mantığı

    İş verilerini işleyen ve saklayan eylemleri tek veya çoklu akışlar içinde oluşturarak en verimli ve sürdürülebilir şekilde tanımlamanız gereken eylemlerin giriş ve çıkış değerlerini tanımlamanız ve ardından eylemleri mantığın sunucu veya istemci tarafına yerleştirmeniz gerekir. Ayrıca çakışmaları algılamak için gerekli tüm mantığı oluşturmalı ve bunları çözümlemek için senaryolar oluşturmalısınız.

    Senkronizasyon yapılandırması

    Veri alımı, gönderimi, işlenmesi ve çakışmaların çözümü için eylemlerinizi oluşturduktan sonra, bunları senkronizasyon çerçevesine yerleştirin. Ardından, ağ algılama ve uygulama davranışını tanımlayın. Eğer son kullanıcılar senkronizasyonu manuel olarak başlatabiliyorsa, senkronizasyonun eylemi “TriggerOfflineDataSync” kullanılarak asenkron bir çağrı olarak başlatıldığından emin olun.

    3) Sağlam bir kullanıcı deneyimi yarat

    Senkronizasyon etrafında kullanıcı deneyimi oluşturulduktan sonra kullanıcı arayüzü ve uygulama davranışı, son kullanıcılar için sağlam bir deneyim sunmalıdır. Son kullanıcılar, ağ durumunu, üzerinde çalıştıkları verilerin güncel olup olmadığını bilmelidirler ve aynı zamanda senkronizasyon sonuçları hakkında bilgi sahibi olmalıdırlar. 

    4) Senkronizasyon uygulamanı test et

    Sırada iş hedeflerine, kullanım senaryolarına ve kullanıcı deneyimine göre test etme vardır. Tarayıcı simülatörü temel hata ayıklama için iyi çalışır, ancak uygulamanızı birkaç cihaza yükleyin ve senkronizasyonun ve uygulamanın gerçekçi senaryolarda nasıl performans gösterdiğini test edin. Uygulamanızın dahili veritabanını kullandığını ve zayıf bağlantılarda bile güncelleme yapabilmesi gerekir. Ayrıca kullanılabilirlik testi ile son kullanıcıların kullanımı kolay ve hızlı bir uygulama deneyimi yaşayacaklarından emin olmak gerekir.

    Dikkat edilmesi gerekenler

    • Senkronizasyon uygulamasına başlamadan önce ihtiyaçları ve uygulamanın hangi koşullar altında çalışması gerektiğini tanımlayın. Böylece uygulama için daha iyi bağlantı ve veri kapasitesi gereksinimlerini oluşturabilirsiniz.
    • Ayrıca, veritabanı kayıtlarının kim tarafından ve nasıl değiştirileceği konusunda da bir plan yapmalısınız. Senkronizasyon uygulaması, aynı anda kaç kullanıcının belirli bir veritabanı kaydına eriştiği ve mobil uygulamada kayıtların düzenlenip düzenlenemediği gibi faktörlere bağlı olarak etkilenecektir. Eğer sunucu verileri merkezi bir şekilde tutuyor ve istemciler sadece güncellemeleri alıyorsa, “Salt Okunur Veriler İçin Optimize Edilmiş” senkronizasyon modelini düşünmek isteyebilirsiniz. Ancak, birden fazla istemcinin aynı verilere erişip bunları değiştirdiği karmaşık senaryolarda, “Çakışma Algılamalı Verileri Okuma/Yazma” gibi daha karmaşık bir senkronizasyon modeline ihtiyaç duyabilirsiniz.
    • Uygulama Dışı Senkronizasyon Kontrol Listesi’ndeki maddeleri kontrol ederek uygulamanızın performans ve son kullanıcı deneyimine uygunluğunu kontrol edin. (https://success.outsystems.com/documentation/11/developing_an_application/use_data/offline/offline_sync_checklist/).
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.