Saya memiliki teka-teki bahwa saya mendapatkan saran yang beragam tentang bagaimana caranya. Karenanya saya ingin memasukkannya ke GIS-SE untuk mendapatkan jawaban yang tepat.
Skenario:
Klien memiliki aplikasi pemetaan web. Tidak ingin dipecah menjadi beberapa aplikasi yang lebih kecil. Meskipun hal ini bertentangan dengan pendekatan modern untuk peta di web, (yaitu banyak aplikasi peta web yang difokuskan pada satu peta web utama) saya sangat percaya bahwa bagi beberapa pengguna, mencoba mereplikasi aplikasi GIS di web adalah ok ( kadang-kadang ).
Klien telah meng-cache sebanyak mungkin layer peta dasar ke layanan terpisah.
- Klien masih memerlukan 600-700 lapisan tambahan dalam layanan peta dinamis ...
- Layanan akan dipublikasikan dengan semua lapisan ini dimatikan .
- Tidak diantisipasi bahwa pengguna akan menyalakan lebih dari 10-40 lapisan sekaligus.
Saya membayangkan reaksi awal Anda terhadap ini mirip dengan saya (600+ ?! WTF ?!)
Namun - persyaratan diatur dalam batu dan mengapa tidak? Aplikasi ArcIMS mereka sebelumnya memiliki fungsi yang sama, jadi mengapa produk Server ArcGIS yang lebih baru ini tidak dapat melakukan hal yang sama? Para pengguna berpotensi perlu untuk dapat membandingkan silang dan melakukan analisis pada seluruh jajaran lapisan, bahkan jika lapisan itu milik departemen lain.
Sebelum Anda langsung mengambil kesimpulan, klien adalah admin ArcGIS Server yang telah diberi petunjuk.
Mereka telah mengelola 600 lapisan dengan semua aturan praktik terbaik: misalnya rentang skala dikombinasikan dengan permintaan definisi; anotasi atas pelabelan; generalisasi lapisan kompleks pada skala kecil; mempublikasikan sebagai MSD; dll
Masalah :
Apa pendekatan yang lebih baik di sini?
Publikasikan semua 600 lapisan ke dalam satu layanan peta dinamis
Membagi lapisan menjadi pengelompokan logis (hidrologi, perencanaan, ekologi, utilitas, dll)
Jika Anda menggunakan # 1, dan Anda memiliki beberapa lapisan kompleks yang dihidupkan. Jika Anda ingin mengaktifkan lapisan poin sederhana, maka ArcGIS Server masih harus membuat seluruh lapisan ditampilkan lagi.
Jika Anda menggunakan # 2, setiap kali Anda membuat permintaan, secara potensial, aplikasi web harus membuat beberapa permintaan GET untuk ExportMaps dari masing-masing layanan peta (apakah ini buruk, atau apakah itu membuat beban tambahan ke ArcGIS Server di atas # 1 ?)
Dan kemudian ini mengarah ke konfigurasi & penyetelan untuk memastikan semuanya secepat mungkin. Kita dapat mengatur bagian belakang ArcGIS Server ke beberapa host dan memiliki beberapa perangkat keras yang baik untuk digunakan.
Jika Anda memilih # 1, Anda bisa melempar # jumlah instance AGS yang bisa Anda tangani.
Jika Anda menggunakan # 2, saya berasumsi Anda mengevaluasi kinerja layanan peta (pengujian beban dan lihat waktu tunggu) dan alamat instance min / max yang sesuai untuk memastikan tidak ada satu layanan yang merupakan 'tautan lemah'.
Saya saat ini condong ke pendekatan # 2, karena kepala saya masih mengatakan kepada saya bahwa memiliki 600 lapisan dalam satu layanan adalah kegilaan, tetapi jika semuanya dimatikan secara default, benar-benar tidak ada masalah.
Senang mendengar pikiran Anda. Beri tahu saya jika Anda memerlukan info lebih lanjut melalui komentar, tetapi tidak mencari jawaban seperti 'gunakan aplikasi desktop' atau 'mendidik mereka untuk melakukan sesuatu secara berbeda'
Dari diskusi dalam komentar, saya gagal menyebutkan pertimbangan lain. Aplikasi tempat layanan tersebut akan dikonsumsi, memiliki kemampuan untuk keamanan tingkat lapisan (pada tingkat aplikasi). Oleh karena itu grup pengguna (yang cukup besar) ditugaskan untuk peran tertentu, dan peran itu akan memiliki akses ke 600 lapisan penuh. Peran lain akan terbatas.
sumber
Jawaban:
Menggunakan Alat Perencanaan Kapasitas untuk membantu membandingkan satu layanan peta super berat vs 4 peta layanan lite, dan hasilnya menunjukkan bahwa layanan peta berat adalah cara untuk pergi.
Ini mungkin bukan jawaban yang tepat, dan alat perencanaan kapasitas tidak memperhitungkan setiap faktor (misalnya alur kerja pengguna) - beri tahu saya melalui komentar apa pendapat Anda.
1 layanan peta sangat berat:
Penggunaan Server Aplikasi Server = 49,4%
Server Database Penggunaan CPU = 7,6%
Beban jaringan = 16 Mbps
Waktu Respons Layar = 0,88 dtk
(Gambar dapat dilihat dalam jumlah besar dengan RC dan buka di tab baru)
Layanan 4 lite map:
Penggunaan Server Aplikasi Server = 55,4%
Server Database Pemanfaatan CPU = 7,6%
Beban jaringan = 64 Mbps
Tampilan Waktu Respons = masing-masing 0,32 detik, jadi antara 0,32 dan 1,28 detik tergantung pada overhead browser web
Lebih banyak logika untuk mendukung pendekatan layanan satu peta:
Semua lapisan berada dalam layanan peta yang sama, oleh karena itu;
Sebuah. satu permintaan dikirim ke server
b. satu proses SOC menggambar peta
c. satu gambar dikembalikan melalui jaringan
40 lapisan tersebar di 4 layanan peta (masing-masing 10 lapisan), oleh karena itu;
Sebuah. 4 permintaan dikirim ke server
b. 4 proses SOC menggambar peta
c. 4 gambar dikembalikan melalui jaringan
1a dan 1c akan lebih cepat dan lebih sedikit memuat jaringan daripada 2a dan 2c.
2b dapat menggunakan pemrosesan paralel untuk mengembalikan peta lebih cepat dari 1b untuk satu pengguna, tetapi ini tidak akan menjadi masalah bagi banyak pengguna. Bahkan, overhead dari transaksi tambahan yang sedang diproses oleh server dalam 2b (ditambah beban jaringan tambahan 2c) akan melihat skala 1b jauh lebih baik karena jumlah pengguna meningkat.
sumber
Meskipun menggunakan beberapa layanan, penskalaan lapisan / label, caching, dan penggunaan label non-dinamis semua membantu meningkatkan pengalaman aplikasi web, klik awal untuk memuat semua 600+ lapisan ke dalam satu aplikasi akan terlihat oleh pengguna akhir. Terutama waktu yang dibutuhkan untuk mengisi TOC. Jika Anda harus membuat aplikasi 600+ layer saya pasti akan pergi dengan opsi # 2. Anda mungkin ingin memodelkan struture data Anda terhadap model data (seperti model data pemerintah daerah).
Papan tulis di bawah ini menyoroti beberapa pedoman praktik terbaik yang menarik dan statistik kinerja untuk konfigurasi aplikasi web ArcGIS Server.
http://www.esri.com/library/whitepapers/pdfs/creating-arcgisserver-web-mapping.pdf
sumber