Mengapa saya perlu ArcGIS Server hanya untuk meng-host ArcObjects dalam layanan web?

8

Saya sering mendapat pertanyaan ini dari pengembang web, dan ingin memiliki jawaban singkat dan ringkas untuk mereka ...

Mengapa saya perlu ArcGIS Server hanya untuk meng-host ArcObjects dalam layanan web?

Kirk Kuykendall
sumber

Jawaban:

4

Anda dapat menggunakan ArcObjects SDK untuk membangun layanan Anda sendiri tanpa masalah di server selama Anda memiliki lisensi yang sesuai. Saya memiliki sejumlah layanan yang kami gunakan yang tidak menggunakan layanan SOC / SOM di AGS tetapi masih merupakan konsumen ArcObjects.

Alasan Anda membutuhkan AGS adalah masalah lisensi; Anda benar, Anda bisa menggunakan runtime ArcEngine untuk melakukan apa yang Anda butuhkan tetapi itu tidak dapat diterima.

Benar
sumber
Terima kasih @DEWright. Jadi, apakah Anda mengatakan saya dapat memulai utas dari layanan web saya, mengatur status apartemen utas ke STA, kemudian menginisialisasi lisensi ke server dan kemudian menggunakan arcobjects?
Kirk Kuykendall
Itu betul; sama seperti Anda dengan ekstensi Desktop ArcGIS apa pun; Anda cukup menggunakan opsi ArcGIS Server untuk lisensi dan Anda mendapatkan akses ke tingkat API yang sesuai. Kami melakukan ini banyak berbicara dengan kelas GeoDatabse serta fungsi lainnya di layanan web kami.
DEWright
3

AFAIK. Karena lisensi ESRI tidak memungkinkan Anda untuk menginstal Desktop / Engine ArcObjects dan menjalankannya sebagai Server. (Perlu menemukan referensi ke perjanjian lisensi, yang menyatakan bahwa ...)

MathiasWestin
sumber
Yup saya baca juga.
Donny V.
Tetapi bahkan jika saya dilisensikan untuk menggunakan server ArcGIS, saya pikir ada juga beberapa masalah yang berkaitan dengan model threading yang mencegah menggunakan arcobjects ketika mengimplementasikan, misalnya, layanan REST WCF tanpa melibatkan SOC.
Kirk Kuykendall
@ Kirk-Kuykendall Memang benar API Server dibuat untuk berjalan di server dan desain server membuatnya lebih mudah untuk membangun dan skala solusi dengan lebih banyak SOC dll, tanpa berurusan dengan masalah threading. Masalah utama mungkin adalah bahwa API di produk desktop tidak dibuat untuk berjalan di server dan memiliki kaitan dengan hal-hal GUI dan untuk mendukung berjalan di lingkungan non-GUI ESRI harus mendokumentasikan dengan tepat API apa yang dapat digunakan atau dipisah. API inti dan GUI bahkan lebih. Jika orang menyukai gagasan itu, ada kemungkinan untuk membuat gagasan tentang ideas.arcgis.com dan memilihnya ...
MathiasWestin
SDK sebenarnya memiliki banyak API yang dipecah antara UI dan kelas-kelas pendukung; Anda hanya perlu memastikan Anda melangkah dengan benar. Hal terbesar yang saya lihat adalah memastikan Anda menangani memori dan objek dengan benar di sisi server; AppPools perlu mendukung satu instance; Anda mulai mencoba untuk menjalankan beberapa contoh perpustakaan ArcObj dan saya melihat crash meledak.
DEWright