Yanıtlar:
Bir web hizmeti katmanı eklemek, hem gerekli CPU gücü hem de işlem sırasında kullanılan bant genişliği açısından müşterinizi daha hafif hale getirme fırsatı verir. Her iki faktör de son kullanıcılar için son derece önemlidir:
Bir web uygulaması katmanı tanıtarak, işlemin büyük kısmını elde taşınabilir bir mobil düşük güç, düşük bant genişliği, düşük bellek istemcisinden, daha fazla belleğe sahip takılı, yüksek güçlü yüksek bant genişliğine sahip bir sunucuya taşırsınız. ihtiyaçlar - işleme ve iletişimin bir istemcide maliyetinin çok daha azına mal olduğu bir ortam.
Ama bekleyin, sizin için de bir şey var: sistemi bölerek iş kurallarınız, veritabanınızın yapısı ve orada bulunanların sürümleri üzerinde daha fazla kontrol elde edersiniz. Bir mobil istemcinin veritabanına doğrudan bağlanmasına izin verdiğinizde, tasarımınız bu veritabanı yapısıyla "evli" olur: hemen hemen her değişiklik, uygulamasını yükseltmek konusunda isteksiz olabilecek bir istemciyle geriye dönük uyumluluğu bozar.
Buna karşılık, arasına bir web hizmeti eklemek, arayüzü mobil istemcilere daha yönetilebilir bir şekilde geliştirmenize olanak tanır: örneğin, eski arayüzü yerinde tutabilir, onunla "paralel" çalışan yeni bir tane ekleyebilir ve ardından tamamen tek bir istemciyi bozmadan veritabanınızı yeniden yapılandırın.
Web hizmetinizi tasarlarken bazı oldukça temel tasarım ilkelerini izlerseniz, yerine yerleştirilen olgun sunucu tarafı altyapısını yeniden kullanarak da önemli avantajlar elde edebilirsiniz: örneğin, önbellek ve proxy hizmetlerini ücretsiz olarak alabilirsiniz.
Son olarak, bu, uygulamanızı, kendinize hizmet edemeyeceğiniz platformlara maruz bırakan ve sonuç olarak şirketinizin avantajına göre oynayan diğer geliştiricilerin kapısını açacaktır.
Uygulama ve DB arasına bir soyutlama katmanı koyar. Bu size aşağıdaki gibi birçok avantaj sağlar:
DB'yi doğrudan maruz bırakmamak için başka bir neden - ulaşım. Çoğu ilişkisel veri tabanı, yani JDBC ile konuşulan şeyler genel olarak kamuya açık internet için tasarlanmamıştır. Kablosuz internet, kamuya açık internetin korkunç bir güvenilmez sonu. İstisna yönetimi kabus olur ve işlemlerinizi kaybetmemek için büyük olasılıkla uygulamanızın içindeki web hizmetleri katmanının tersini yazabilirsiniz.
HTTP konuşan ve bu tür şeyler için uygun olabilecek bazı yeni veritabanları vardır. Ayrıca, tür uygulama kodunu veritabanına koymanın yollarını sunma eğilimindedirler. CouchDb veya RavenDb'ye bakmak isteyebilirsiniz - her ikisi de, birçok modern web hizmeti gibi, json ve http üzerinde çalışan harita / azaltma özelliklerine sahip belge dbs'leri.