وب سرور-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS
وبسرویسها روی وب سرور قرار دارند و به مشتریهای تحت وبسرویس می دهند. نرمافزارهای وب سرور رایگان زیادی وجود دارد.
GIS سرویسها
GIS سرویس یک وبسرویس است که دارای عناصر جغرافیایی و مکانمبنا است. استانداردهای زیادی برای GIS سرویس ایجادشدهاند. در این بخش، یک سرویس نقشهای Esri و تعدادی سرویسOGC ایجاد میکنیم.
سرویسهای نقشهای
در GIS، معمولاً با نقشهها سروکار داریم. سرویسهای نقشهای Esri، GIS سرویسهایی هستند که عملیاتی را روی یک نقشهی جغرافیایی اجرا میکنند. یک نقشه را بهصورت یک سرویس نقشهای منتشر میکنیم و هر مشتری که از این نوع سرویس پشتیبانی میکند، میتواند از سرویس نقشهای استفاده کند. سرویسهای نقشهای بهطور گسترده استفاده میشوند و بهسادگی و قابلحمل بودن معروف هستند. نرمافزار ArcGIS for Desktop ابزار ایجاد سرویسهای نقشهای است و نمیتوانید بدون این نرمافزار، سرویس نقشهای ایجاد کنید.
اتصال به سایت سرور
برای انتشار نقشه، باید به سایت سروری که در فصل قبل ایجاد کردیم، متصل شویم. باید یک سایت سرور به همراه یک یا چند سیستم و همچنین یک وب سرور داشته باشید. اگر از فصل قبل به یاد داشته باشید، نحوهی قرارگیری سایت سرور روی یک وب سرور را توضیح دادیم. با هر GIS سرویس، Esri یک وب سرور توکار مخفی روی پورت 6080 نصب میکند. در نصب Production یک وب سرور برای سایت سرور تخصیص دادیم.
برای دستیابی به سایت سرور، میتوانیم به وب سرور توکار در GIS سرور متصل شویم. در اینجا ما دو GIS سرور-SERVER01 و GIS-SERVER02 داریم؛ بنابراین هر دو URL با آدرس https://GIS-SERVER01:6080/ یا https://GIS-SERVER02:6080/ بهخوبی کار میکنند. به یاد داشته باشید که باید یک web adaptor با دسترسی مدیر داشته باشید. در فصل قبلی روی WEB-SERVER01 یک waadmin ایجاد کردیم. جهت اتصال به waadmin ازhttps://WEB-SERVER01/waadmin/ استفاده میکنیم.
میخواهیم یک سرویس نقشهای منتشر کنیم. برای این کار به ArcGIS for Desktop نیاز داریم. به سیستمی که ArcGIS for Desktop را نصبکردهاید وارد شوید.ArcCatalog را بازکنید. نام سیستم ما Publisher است. میتوانید نرمافزار ArcGIS for Desktop را روی یکی از GIS سرورها نصب کنید. از Catalog Tree گره GIS Servers را بازکنید و روی Add ArcGIS Server دو بار کلیک کنید. در فرم ظاهرشده، سه گزینه وجود دارد. اولین گزینه از GIS سرویسها استفاده میکند که یک اتصال فقط خواندنی برقرار میکند. میتوانید از این نوع اتصال برای مواقعی استفاده کنید که کاربران فقط سرویس را ببینند. سومین گزینه Administer GIS server اتصالی ایجاد میکند که میتوانید سایت سرور را مدیریت کنید. با این گزینه میتوانید سرویسها را اضافه یا پاککنید. این گزینه شبیه ArcGIS Server Manager است که با لینک https://GIS-SERVER01:6080/arcgis/ manager قابلدسترسی است. با استفاده از دومین گزینه میتوانید سرویسها را منتشر کنید. ازآنجاییکه این گزینه پیکربندیهای سایت را تغییر میدهد، باید نام کاربری و رمز مدیر را برای ایجاد این نوع اتصال وارد کنیم. جدول زیر لیستی از اتصالات سایت سرور را به همراه توضیحات ارائه میدهد. روی next کلیک کنید.
اگر از ArcGIS 10 استفاده میکنید، بهجای سه گزینه، دو گزینه خواهید داشت.
نوع اتصال | توضیحات |
1- User | اتصالی است که فقط مجوز خواندن سرویسهای سایت را میدهد. نیازی به واردکردن رمز عبور و نام کاربری نیست مگر اینکه سایت سرور با معیارهای امنیتی تنظیم و پیکربندیشده باشد. |
2-Publisher | اتصالی که یک سرویس را منتشر میکند. این اتصال به نام کاربری و رمز مدیر نیاز دارد. |
3-Admin | اتصالی با مجوزهای سطح بالا ایجاد میکند تا بتوانید سرویسها را در سایت سرور مدیریت کنید. |
در فرم بعدی، پارامترهای موردنیاز برای ایجاد اتصال از نوع publisher را باید وارد کنیم. در فیلد Server URL، آدرس URL سایت سرور را وارد کنید. همانطور که قبلاً گفتیم، این URL میتواند آدرس GIS سروری باشد که روی پورت 6080 در حال اجرا است، یا آدرس وب سروری باشد که تخصیص داده¬اید. اگر یک Web Adaptor نصبکردهاید، میتوانید از GIS-SERVER01 استفاده کنید که آدرس آن https://GIS-SERVER01:6080/arcgis/ است. در قسمت Server Type از لیست کشویی گزینهی ArcGIS Server را انتخاب کنید. در لیست کشویی گزینهی Spatial Data Server نیز وجود دارد که یک نسخهی قدیمی است و Esri بهزودی آن را کنار خواهد گذاشت. از این گزینه استفاده نخواهیم کرد. نام کاربری و رمز مدیر را در فیلدهای User Name و Password وارد کنید و finish را بزنید تا اتصال ایجاد شود.
اتصال را به Publisher@GIS-Server01 تغییر نام دهید. برای انتشار وبسرویسها از ماژول ArcMap از این اتصال استفاده خواهیم کرد.
برای امنیت انتشار و مدیریت بیشتر اتصال، از وب سرور اختصاصی استفاده کنید. در فرم General در فیلد server URL عبارت https://WEB-SERVER01/waadmin/ را وارد کنید و نام کاربری و رمز مدیر سایت را در فیلدهای User Name و Password وارد کنید. روی Finish کلیک کنید و اتصال را به Publisher@WEB-SERVER01 تغییر نام دهید.
دو اتصال دیگر نیز ایجاد کنید. یکی Admin@WEB-SERVER01 که نام کاربری و رمز عبور دارد و دیگری User@WEB-SERVER01 که یک اتصال فقط خواندنی است. به خاطر داشته باشید که اتصال user هیچ احتیاجی به اعتبارات (نام کاربری و رمز) ندارد.
غیرفعال کردن کپی خودکار دادهها
هنگامیکه منبع داده ثبتنشده است، ArcGIS for Server بهصورت پیشفرض دادههای سرویس را کپی میکند. در نسخهی 10.1 مشکلاتی برای دادههای با حجم زیاد به وجود آمد؛ بنابراین Esri در نسخهی 10.2 گزینهای اضافه کرد که کپی خودکار دادهها را غیرفعال میکند. بهتر است کپی خودکار دادهها را در سایت سرور غیرفعال کنید. برای این کار به ArcGIS Server Manager وارد شوید، به قسمت Site بروید. از قسمت سمت چپ روی Data Store کلیک کنید. روی Setting کلیک کنید و تیک گزینهی Allow data to be copied to the site when publishing services را بردارید. سپس روی Save کلیک کنید.
ایجاد سرویس نقشه با ژئودیتابیس
حال که یک اتصال publisher ایجاد کردیم، برای فرستادن نقشه به سایت سرور از این اتصال استفاده میکنیم. هر سرویس نقشه باید به یک ژئودیتابیس متصل شود تا در این ژئودیتابیس، نقشه را ذخیره کند. در این بخش یک سرویس نقشهای با یک نقشه ایجاد میکنیم و نقشه درون یک ژئودیتابیس سرور قرار میگیرد.
نکته: برای ایجاد و مدیریت انواع ژئودیتابیس Enterprise، file و… و اتصال انواع ژئودیتابیس به SQL Server 2012 Management Studio و بهکارگیری آنها در سرویسهای نقشهای و اپلیکیشنهای وب GIS و اپلیکیشنهای موبایل GIS میتوانید به کتاب ایجاد و مدیریت انواع ژئودیتابیس و بهکارگیری آنها در اپلیکیشنهای وب GIS” از همین مترجم مراجعه کنید.
ژئودیتابیس LandParcels.gdb را از پوشهی موجود در DVD ضمیمهی کتاب کپی کنید و در درایو C قرار دهید. این ژئودیتابیس شامل یک کلاس عارضه به نام LandParcels است. برای ایجاد سرویسهای نقشهای به نرمافزار ArcGIS for Desktop خصوصاً ماژول ArcMap نیاز داریم. در فصل قبلی سرور را با موفقیت نصب کردیم. به سیستم خود وارد شوید. ماژول ArcMap را بازکنید. روی Add Data کلیک کنید. به مسیر C:\AGSA\Data\LandParcels.gdb بروید. روی ژئودیتابیس دو بار کلیک کنید تا باز شود. سپس روی کلاس عارضهی LandParcels دو بار کلیک کنید تا به نقشه اضافه شود.
در ArcMap عملیاتی باید انجام شود تا نقشهی قابلنمایش مناسبی ایجاد و سپس بهصورت یک سرویس نقشهای منتشر شود. نکات و تمرینهایی برای ایجاد یک نقشهی مؤثر و خوب ارائه دادهشده تا در یک سرویس نقشهای بهینه قرار گیرد. در فصل 5 مطالبی در مورد بهینهسازی سرویسهای GIS ارائهشده است. کلاس عارضهی LandParcels که اضافه شده است ظاهر جذابی ندارد. پس سیمبولوژی و برچسب به آن اعمال میکنیم. مهارتهای شما در ArcMap حالا به کار میآیند.
روی لایهی Parcels دو بار کلیک کنید. سربرگ Symbology را انتخاب کنید. روی Categories کلیک کنید. از لیست کشویی Value Field گزینهی CATEGORY را انتخاب کنید. روی Add All Values کلیک کنید. روی سربرگ Labels کلیک کنید. PARCELNO را بزنید. دقت کنید که تیک گزینهی Label feature in this layer را زده باشید. Ok را بزنید.
لایه بهصورت زیر ظاهر میشود.
حالا نقشه کامل و آمادهی انتشار است. ابتدا باید سند ArcMap را ذخیره کنیم. از منوی file گزینهی Save As را بزنید. فایل را با نام Parcels_FGDB.mxd در مسیر C:\AGSA\Documents ذخیره کنید.
1- از منوی file گزینهی Share As سپس Service را کلیک کنید. سپس روی next بزنید.
2- در فرمی که ظاهر میشود، Publish a Service را انتخاب و سپس Next را کلیک کنید.
3- از لیست کشویی، اتصال Publisher@GIS-SERVER01 که اتصال به سایت سرور است را انتخاب کنید. منتظر شوید تا اتصال برقرار شود.
4- در فیلد Service Name عبارت Parcels_FGDB را بنویسید. Next را بزنید.
5- با ArcGIS for Server میتوانید سرویسهایتان را درون پوشههایی برای مدیریت بهتر قرار دهید. همچنین میتوانید سطح امنیت بالایی به پوشه اختصاص دهید. در این مرحله پوشهی پیشفرض را بپذیرید و Continue را بزنید.
6- تنظیمات و پیکربندیهای مختلفی برای اعمال به سرویس نقشه وجود دارد. در حال حاضر سرویس نقشهای را بدون تغییر پارامترها و تنظیمات منتشر میکنیم. در فصلهای آتی این تنظیمات را کاملاً بررسی میکنیم. در این مرحله الگویی از پیکربندیهای موردنظرتان ایجاد کردید و میتوانید به هر سرویس نقشهای که بعداً ایجاد میکنید این الگو را اعمال کنید.
7- روی Analyse کلیک کنید. تجزیهوتحلیلهایی روی نقشه اجرا میکند. اعلان و خطاهایی دیده میشود. فعلاً آنها را نادیده میگیریم و بعداً آنها را رفع میکنیم. یک هشدار رایج در جدول زیر آمده است.
درجه اولویت | وضعیت | کد | توضیحات | نام لایه | نوع | نام Data frame |
بالا | حلنشده | 24011 | سرور، منبع دادهی لایه را ثبت نکرده است. داده درون
سرور کپی خواهد شد. |
Parcels | Layer | Layers |
برای فهم این هشدار ابتدا باید نحوهی کارکرد سرور را بدانیم. کاربر یک سرویس نقشهای را درخواست کرده و میخواهد در محدودهی خاصی از نقشه، بزرگنمایی انجام دهد. وب سروری وجود دارد که تقاضای کاربر را گرفته و این درخواست را به GIS سرور میفرستد. درخواست کاربر بارگذاری میشود. GIS سرور به منبع دادهی سرویس نقشهای متصل میشود. محدودهی موردنظر کاربر را محاسبه میکند و دادهها را در آن محدوده برمیگرداند. در این مرحله GIS سرور باید به منبع داده دسترسی داشته باشد. در حقیقت همهی GIS سرورها باید به منبع داده دسترسی داشته باشند. در این مثال، منبع داده یک فایل ژئودیتابیس است که روی GIS-SERVER01 قرار دارد. بهصورت پیشفرض GIS-SERVER01 به منبع داده دسترسی دارد زیرا این داده روی همان سیستمی قرار دارد که GIS سرور قرار دارد؛ اما اگر یک GIS سرور دیگر به سایت سرور اضافه کنید، چه اتفاقی میافتد؟ GIS-SERVER02 نمیتواند به منبع داده متصل شود زیرا این منبع داده بهصورت محلی یا از راه دور قابل دسترس نیست. یک راهحل سریع وجود دارد. سرور تمام ژئودیتابیس را در هر GIS سرور کپی میکند و عمل کپی را بهصورت هشدار اعلام میکند. فرآیند انتشار زمان زیادی مصرف میکند و ممکن است ArcMap دچار خطا شود و یا بسته شود. علاوه بر این اگر ژئودیتابیس را مدام بهروزرسانی کنید، در دادههای ژئودیتابیس ناسازگاری به وجود میآید. برای حل این مشکل باید منبع داده را با سایت سرور ثبت کنیم؛ بنابراین همهی GIS سرورها بهجای اشاره به دادههای کپی شده، به یک منبع داده اشاره میکنند. این موضوع در صفحات بعدی آمده است. در این مرحله، سرویس نقشهای را با پیکربندیهای پیشفرض منتشر میکنیم و اجازه میدهیم که دادهها در GIS سرور کپی شوند. کلاس عارضهی LandParcels، فقط چند عارضه دارد؛ بنابراین فرآیند کپی کردن نباید طولانی باشد. روی Publish کلیک کنید تا سرویس نقشهای منتشر شود.
برگرفته از کتاب نصب، اجرا و مدیریت Arc GIS for server
نویسنده: دکتر محمد بافقی زاده
نشر: انتشارات اکادمیک