Apa yang terjadi di dunia teknologi sisi server terkait dengan ledakan aplikasi seluler?


12

Dengan teknologi seluler yang semakin populer, apa yang terjadi di sisi server dengan sebagian besar aplikasi ini ketika mereka perlu berkomunikasi dengan ujung belakang?

Saya sudah terbiasa dengan dunia teknologi sejak 10 tahun lalu ketika sebagian besar sumber daya diakses dengan meminta halaman web dinamis yang di belakangnya terlihat menggunakan bahasa sisi-server untuk mendapatkan informasi yang dibutuhkan dari database relasional.

Apakah ini masih terjadi, dan jika tidak, apa perubahan besar?


Banyak aplikasi yang lebih kecil mengandalkan Google App Engine :).
MrFox

Jawaban:


7

Dari atas kepalaku:

  1. Gunakan layanan web alih-alih akses langsung ke DB dari klien.
  2. SISA bukan SABUN. SOAP tampaknya terlalu berat untuk komunikasi seluler dengan backend. SISA menggunakan JSON jauh lebih mudah untuk diatur dan dikonsumsi. Terutama jika Anda menggunakan teknologi yang berbeda pada klien dan server.
  3. Fokus pada banyak tampilan untuk halaman web. Satu untuk desktop dan satu untuk seluler. Seharusnya mudah jika seseorang menggunakan MVC, tetapi masih cukup bermasalah.

Mungkin ada lebih banyak. Aplikasi seluler sebagian besar dianggap sebagai klien normal, yang mengkonsumsi data dan menampilkannya.


6

Teknologi

  • RESTful API menggunakan JSON sebagai serialisasi - API yang sama digunakan oleh aplikasi asli, aplikasi hybrid dan aplikasi web seluler. Bahkan dalam kasus sebelumnya, templat sisi klien sering digunakan (lihat contoh luar biasa dalam "Meninggalkan JSP di debu: memindahkan LinkedIn ke templat sisi klien. Debu" )

  • Server yang ringan, asinkron (didorong oleh peristiwa) - tidak ada lagi Apache yang pre-fork. Nginx, node.js, Twisted, Tornado dll. Digunakan sekarang.

  • OAuth / login sosial - Pengguna berharap tidak perlu mendaftarkan akun untuk setiap aplikasi individual. Dengan demikian sebagian besar aplikasi memungkinkan masuk dengan FB, TW dan penyedia lainnya. Untuk FB, Android dan iOS menyediakan opsi Single-Sign-On .

Hal-hal yang perlu dipertimbangkan

  • Jaringan seluler memiliki latensi yang sangat tinggi;
  • Adalah normal bagi klien untuk kehilangan koneksi;
  • Adalah normal bagi klien untuk mengubah IP selama sesi;
  • Ponsel sama sekali tidak sekuat desktop / laptop;

4

REST setengah cerita. Hal yang lebih menarik daripada protokol berbobot lebih ringan di server adalah server dan tumpukan aplikasi web yang lebih ringan - permintaan skala besar untuk datagram kecil versus HTML yang diberikan relatif tebal berarti Anda memiliki persyaratan yang berbeda. Beberapa contoh:

  • node.js mungkin adalah contoh kanonis ini. Kebanyakan orang terpaku pada fitur javascript-di-server, tetapi itu adalah herring merah - keren untuk anak-anak yang tidak bisa maju melampaui js tetapi itu tidak masalah. Bagian yang benar-benar bagus adalah sifat asinkron yang menjadikannya berskala gila-gilaan, terutama saat melayani layanan kecil yang tajam. Beberapa tumpukan lain dengan kesamaan akan diputar untuk python atau manos de mono untuk .NET.

  • nginx menggunakan banyak IO (libuv) yang sama dengan node.js, dan sedang membersihkan pasar server di beberapa lingkaran. Jauh lebih fokus daripada apache dan sangat cepat.

  • Tumpukan server tipis bermunculan di lingkungan yang secara tradisional memiliki kerangka kerja tebal yang membuat banyak anggapan. Yaitu, di ruby ​​Anda punya sinatra untuk mengimbangi rel. Dengan python Anda punya labu [dan lainnya] untuk mengimbangi Django. Di .NET Anda memiliki WebAPI untuk mengimbangi MVC dan WebForms. Semua tumpukan yang saya sebutkan sangat, sangat tipis dan lebih (atau total) berfokus pada penyajian datagram dan bukan halaman web. Tak satu pun dari yang saya sebutkan menampilkan jenis templating dan ORM yang diharapkan dari tumpukan web biasa hari ini.

Semua yang dikatakan, lebih sering daripada tidak ada orang yang melayani aplikasi mobile mereka dengan meretas aplikasi web sisi server 10 tahun yang ada untuk melayani json pada titik akhir HTTP yang berbeda. Dunia tidak banyak berubah - manajemen masih akan pincang dengan 2 roda dan donat jika mereka pikir mereka bisa lolos begitu saja.


1

Apakah ini masih terjadi, dan jika tidak, apa perubahan besar?

Saya pikir masih ada aplikasi yang menggunakan arsitektur server-side atau client-server yang disebutkan. Namun, dalam beberapa tahun terakhir ada langkah besar menuju SOA (Arsitektur Berorientasi Layanan) . Dengan demikian, komunikasi melalui layanan aman membuka kemampuan baru untuk semua aplikasi klien, dan mengakses / menggunakan kembali layanan bisnis back-end secara bersamaan.

Dengan pasar ponsel dan tablet yang muncul, menjadi semakin penting untuk menggunakan layanan HTTP sebagai saluran komunikasi penting untuk menyediakan layanan yang diperluas ke aplikasi klien.


1

Sebagian besar back-end sekarang mendukung JSON dan REST, bukan hanya SOAP. Selain itu, tidak ada banyak perbedaan antara front-end web dan aplikasi seluler. Saya pikir sebagian besar tantangan untuk aplikasi seluler ada di ujung depan (cara terbaik untuk menyesuaikan informasi ke layar yang lebih kecil). Beberapa aplikasi mulai meningkatkan kemampuan seluler (seperti pelaporan lokasi), tetapi itu ada di kedua ujungnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.