2016-03-21 11 views
1

Java arka uç ile bir web application oluşturuyorum. Bunu Amazon Web Services numaralı telefona vermeyi düşünüyorum.Web-Uygulaması ve Yerel Uygulama'yı aynı veritabanına/arka plana işaretleme?

İdeal olarak, web uygulaması olarak aynı işlevselliğini taşıyan bir Yerel Android uygulaması oluşturmak istiyorum. Native App ve Web Appaynı arka uç veritabanı ve hizmetlerini kullanabilirsiniz hem böylece

nasıl şimdiki uygulamayı uygulayabilir?

Service Orientated Architecture hakkında okudum, doğru yaklaşım bu mu?

cevap

2

Hizmet Odaklı Mimari (SOA) bir süredir var olan ve gereksinimlerinizi kesinlikle karşılayabilen bir yaklaşımdır. Bununla birlikte, SOA hakkında yaptığınız geliştirme türü için gerçekten çok fazla uğraşacak olan bilgileri ararken çok sayıda "Kurumsal" tasarımla karşılaşacağınız konusunda sizi uyarıyorum.

Genelde ben sadece aşağıdaki odaklanmak tavsiye ederim:

  • Java geri ucundan ayrı bir projede sizin UI (HTML/JS/CSS) tutun. Bu uygulama sizi UI ve arka uç endişelerini ayrı tutmaya zorlar.
  • Arka uç, JSON'u HTTP/HTTPS aracılığıyla gönderen ve alan bir API'yi göstermesini sağlayın.
  • Arka uç hizmetlerinizi durumsuz duruma getirin. Kimlik doğrulaması için JSON web jetonlarını kullanmak, bunu başarmanın iyi bir yoludur (bunun için Auth0'u kullanmayı seviyorum). Başka bir deyişle, kullanıcılarınızı Java kodunuzdan izlemek için bir HTTP oturumuna güvenmeyin. Bu, uygulamanızı ölçeklendirmeyi gerçekten kolay hale getirmenin ek yararına sahiptir.

Bu şeyleri yaparsanız, Android uygulamasını oluşturmanın zamanı geldiğinde, arka tarafa dokunmak zorunda kalmazsınız. Yerli Android'de UI'yi tekrar uygulamanız gerekecek.


Bu soruyu AWS ile etiketlediğinizden, arka ucunuzu AWS üzerinde gerçekleştirmeyi planladığınızı varsayalım. Eğer öyleyse, Amazon'un API Gateway servisini kullanmayı şiddetle tavsiye ederim. Bu hizmet UI katmanınız ile arka uç arasında otururdu. Bu, API'nizi DDOS saldırılarına karşı güvence altına almak için hız sınırlama ve önbellekleme, ek güvenlik için isteğe bağlı bir API anahtarı ve mevcut istemcilerinizi kırmadan API'nizin yeni sürümlerini dağıtmanıza yardımcı olacak API sürümleme gibi çeşitli avantajlar sağlar. Ayrıca API Ağ Geçidi hizmetini kullanarak API'nizi tanımlayarak, JavaScript'inizde, Android'de ve iOS'ta kullanım için API'nız için bir SDK oluşturabilirsiniz.

API Ağ Geçidi kullanmanın diğer bir büyük avantajı, arka ucunuzu ayrı sunuculara, Lambda işlevlerine vb. Ayırmanıza izin vermesidir. Bu, büyük esneklik sağlar ve AWS'yi kullanma yeteneğini nasıl yeterince vurgulayamam. Arka taraftaki Lambda idari işleri ve barındırma maliyetlerini azaltacaktır. Bu, arka ucunuzu Microservices açısından düşünmeye başlamanıza olanak tanır.

+0

İnanılmaz derecede detaylı bir cevap için teşekkür ederiz. Android uygulamasının yanı sıra, UI ve arka uç java API'sı AWS'de olacak şekilde AWS'de tüm kodlarımı barındıracağımı farz ediyorum. Ayrıca, Android Uygulamam bu arka uçla nasıl iletişim kuracaktı, REST kullanıyor mu? – java123999

+1

Tüm bu AWS'yi barındırabilirsiniz, ancak HTML/JS/CSS, Java uygulamanızın (Tomcat?) Çalıştığı sunucuyla hizmet vermek yerine S3'te statik kaynaklar olarak var olabilir. Android uygulamanız, tarayıcı tabanlı JavaScript'in arka uç ile iletişim kurmak için kullandığı aynı yöntem ve protokollerle arka uç ile iletişim kuracaktır. Uygulama yapmak istemeyeceğiniz belirli bir standart olduğu için REST belirtmek için tereddüt ettim. JSON'u HTTP üzerinden belirledim. Kesinlikle REST ile gidebilirsiniz. –

+1

REST, bir "standart" dan daha fazla bir "stil" olduğunu tahmin etse de, her şeyden önce, arka uçunuzla nasıl iletişim kuracağınız, HTTP üzerinden JSON gerçekleştirmenin bir yoludur. –

İlgili konular