پیادهسازی و طراحی سرویسهای GIS-موسسه چشم انداز-آموزش کاربردی GIS و RS
اگر ArcGis for Server را از نوع production نصب کردهاید، قبل از انتشار سرویسهای GIS باید یکسری فاکتورها را در نظر بگیرید. کتابخانهی دادههای شما میتوانند بهصورت سرویسهای GIS منتشر شوند ولی انتشار سرویسها فرآیندی پرخرج است زیرا منابع زیادی را استفاده میکند و این سرویسها باید به دقت نگهداری و پشتیبانی شوند. پس باید سرویسها را برنامه ریزی کنیم. این فصل شامل دو بخش است: 1- برنامه ریزی 2- طراحی
مرحلهی برنامه ریزی
مرحلهی برنامه ریزی شامل دو بخش است:
- شناسایی و تجزیه و تحلیل نیازها. در این مرحله به سوالاتی که در زیر آمده پاسخ میدهیم:
چه چیزی باید انجام شود؟ چرا انتشار سرویس را بهعنوان راه حل انتخاب کردیم؟ آیا با اتصال مستقیم به ژئودیتابیس مشکلات بهطور موثرتری حل میشوند؟
- کدام قسمتهای ژئودیتابیس باید بهصورت سرویس GIS منتشر شوند؟ این مرحله بر اساس مرحلهی اول انجام میشود.
مرحلهی طراحی
در این مرحله سرویسهای مدنظرمان را به همراه توضیحات واضحی از این فرآیند طراحی میکنیم. در این مرحله به سوالات زیر پاسخ خواهیم داد:
کدام استانداردها از GIS سرویسها پشتیبانی میکنند. چه مشتریهایی از سرویسهایمان استفاده میکنند. هر لایه را بهصورت یک سرویس منتشر میکنید یا چندین لایه را در یک سرویس قرار میدهید؟
این فصل را با یک نمونهی موردی توضیح میدهیم. وقتی از این نمونهی موردی استفاده میکنیم، مشکلات را به مرحلهی برنامه ریزی متصل میکنیم و سپس وارد عمل میشویم.
نمونهی موردی Bestaurants- رستورانهای واقع در Belize
Belize شهری گردشگری است که گردشگرهای زیادی در تعطیلات به آنجا میروند و از سواحل لذت میبرند. در این شهر طیف وسیعی از رستورانها قرار دارد. فرمانداری Belize در نظر دارد که برای پیدا کردن رستورانهای مورد علاقه گردشگرها از تجریبات گردشگرها استفاده کند. Belize کشوری در آمریکای مرکزی است که پایتخت آن Belize است. پروژهی جدیدی به نام Bestaurants پیشنهاد شده است. در این پروژه، گردشگرها با استفاده از موبایلشان یا دفاتری که دولت فراهم کرده است، میتوانند رستورانها را پیدا کنند. دولت یک راهنما شامل سواحل، تفرجگاهها، رستورانها، کافهها، سالنها و مواردی از این قبیل را تهیه کرده است. این راهنما در یک سند Excel قرار دارد که مداوم به روزرسانی میشود. همچنین ویدئوها و تصاویری از این مکانهای قابل دسترس برای گردشگرها وجود دارد. با استفاده از ArcGIS for Server راه حلی طراحی میکنیم که گردشگرها براحتی میتوانند با توجه به موقعیت فعلیشان، رستورانهای نزدیک را بر اساس نرخ و گروه بندی آنها پیدا کنند. در این راه حل یک گزینه برای پیدا کردن بهترین رستورانهای Belize نیز وجود دارد. میتوانید فایل excel این راهنما را در مسیر 7364EN_04_Files\AGSA\Data پیدا کنید.
برنامه ریزی سرویسهای GIS
تا الان به این نتیجه رسیدیم که مستقیماً نمی توان وارد مرحلهی پیادهسازی شد و به زیرساختهایی نیاز داریم. هیچ پایگاه داده و هیچ کدام از نیازهای شبکه وجود ندارد. تنها هدف مرحلهی برنامه ریزی، تجزیه و تحلیل نیازها و رسیدن به یک راه حل بهینه است. فرمانداری Belize از قبل تحقیقاتش را انجام داده و سروری را انتخاب کرده که ضامن زیرساختهای پیادهسازی است.
تجزیه و تحلیل نیازها
هدف اصلی در این نمونهی موردی، ارائهی راه حلی است که رستورانهای Belize را نمایش دهیم. برای این کار از یک نقشهی مبنا که شامل پوشش کاربری جغرافیایی Belize است، استفاده میکنیم. این نقشه به منبع دادهی رستورانها نیاز دارد تا اطلاعات رستورانها را بهصورت رکوردهایی در یک پایگاه داده ذخیره کند. در اینجا فقط یک فایل Excel شامل راهنمای مکانهای Belize داریم. باید راهی پیدا کنیم تا این اطلاعات را از این فایل بیرون بکشیم تا روی نقشه قابلنمایش باشند. برای تصویر کردن رستورانها روی نقشه، به مختصات جغرافیایی هر مکان نیاز داریم وبین رستورانها، کافهها و سالنها تفاوت قائل شویم. پس باید یک گزینهی گروه بندی در نقشه قرار دهیم تا بر اساس هر گروه، نماد و سمبولوژی خاصی اعمال کنیم. همچنین گزینههایی طراحی میکنیم تا رستورانهای نزدیک موقعیت فعلی گردشگر و رستورانهای معروف را پیدا کنند. پس دادهها باید قابلیت جستجو داشته باشند تا کاربر با استفاده از GPS موقعیت فعلی اش را پیدا و یا روی دادهها جستجو کند. همچنین یک مخزن شامل ویدئوها و عکسها وجود دارد که باید موقع طراحی پایگاه داده، به آن متصل شود.
معرفی GIS سرویسها
بر اساس نیازهایمان، GIS سرویسهای لازم برای برنامه ریزی را انتخاب میکنیم. ابتدا دو گزینه از نظر قابل اجرا بودن در مرحلهی طراحی، پیشنهاد میشود.
گزینهی اول: استفاده از یک سرویس واحد
در این گزینه، استفاده از یک سرویس GIS برای نگهداری همهی اطلاعات پیشنهاد میشود. باید رستورانها، کافهها و سالنها را بر اساس گروهبندی، نماد گذاری کنیم و نمایش دهیم. همچنین کاربران باید در این سرویس، رستورانها را بر مبنای موقعیت یا یک پارامتر خاص، جستجو کنند.
گزینهی دوم: استفاده از چندین سرویس
در این گزینهی پیشنهادی از چند سرویس بهجای یک سرویس استفاده میکنیم. در این نمونهی موردی ما از سه GIS سرویس استفاده میکنیم. 1- رستورانها 2- کافهها 3- سالنها که هر کدام در یک GIS سرویس قرار میگیرند. این سه سرویس باید روی یک نقشهی مبنا قرار داده شوند.
طراحی GIS سرویسها
حال باید برنامهی کاری و طراحی این سرویسها را برنامه ریزی و پایگاه دادهی اصولی را برای این سرویسها طراحی کنیم. اینکه چه سرویسهایی باید نوشته شوند و چه استانداردهایی از این سرویسها پشتیبانی میکنند نیز در این مرحله انجام میشود. قبلاً برای مرحلهی برنامه ریزی دو گزینه را پیشنهاد کردیم که متعاقباً به دو طراحی نیاز داریم. در این کتاب از ابزار (Unified Modelling Language (UML برای طراحی GIS سرویسها استفاده میکنیم. کتابهای زیادی در مورد UML وجود دارد که پیشنهاد ما کتاب UML Distilled نوشتهی Martin Fowler است. برای طراحی پایگاه داده از نمودار ارتباطی موجودیت استفاده میکنیم.
طراحی پایگاه داده
از آنجا که به هیچ پایگاه دادهای برای این نمونهی موردی اشاره نشده است و نمیتوانیم سرویسهای GIS را بدون یک ژئودیتابیس ایجاد کنیم پس باید پایگاه داده را طراحی کنیم. این طراحی باید نیازهای تجزیه و تحلیل در مرحلهی برنامه ریزی را فراهم کند. بیائید نگاهی به فایل excel کاربریهای جغرافیایی Belize بیندازیم. فایل Belize_Landmarks.xls موجود در مسیر 7364EN_04_Files\AGSA\Data را بازکنید. تعدادی از رکوردهای این فایل را در زیر آورده ایم. اگر دقت کنید فیلدهای مفیدی مانند طول و عرض جغرافیایی وجود دارد که برای ژئورفرنس کردن رستورانها بسیار مهم هستند.
میتوانید این فایل excel را به یک Shape File تبدیل کنید تا در یک سرویس نقشهای منتشر کنید. برای این کار بهتر است از یک ژئودیتابیس مناسب از نوع personal، file یا enterprise استفاده کنید.
نمودار ارتباطی موجودیت
MicrosoftVisio یکی از ابزارهای ایجاد نمودار (entity-relationship (ER است. در این کتاب از ابزار Gliffy استفاده میکنیم. Gliffy یک ابزار طراحی HTML5 و آنلاین است که برای ایجاد نمودارهای طراحی UML و ER مناسب است. از سایت www.gliffy.com برای دانلود Gliffy استفاده کنید.
رابطهی موجودیت یا همان ER که بعضی مواقع ERD یا ERM نیز نامیده میشود، مدل دادهای برای توصیف عناصر و ارتباط بین عناصر پایگاه داده است.
در اینجا سه گروه بندی رستورانها، کافهها و سالنها وجود دارد. شاید اولین ایده این باشد که برای هر کدام از گروه بندیها باید یک جدول ایجاد کرد. ولی این کار به سه دلیل باعث به وجود آمدن جداول غیر نرمال میشود. 1- ممکن است در آینده گروه بندی جدیدی اضافه شود پس متعاقباً باید یک جدول اضافه شود. 2- ممکن است اطلاعات تکراری بین این 3 جدول وجود داشته باشد. 3- عملیات نگهداری و پشتیبانی مانند (اتصال جداول به هم و یا شاخص گذاری جداول) سخت و غیر حرفهای است.
در این مثال یک جدول که شامل این سه گروهبندی است را ایجاد میکنیم و همهی فیلدهای موجود در فایل Excel را درون این جدول وارد میکنیم. دومین موردی که وجود دارد ویدئوها و تصاویری است که به هر کاربری باید متصل شود. برای این اتصال میتوانیم دو ستون از نوع (Binary Large Object (BLOB به جدول اضافه کنیم.
BLOB: آرایهای از دادهها است که در یک فیلد از پایگاه داده ذخیره میشوند. هر نوع فایلی میتواند در یک فیلد BLOB قرار گیرد. نوع دادهی BLOB گزینهی مناسبی برای ذخیرهی فرمتهای مختلف ویدئو و تصاویر است. در این مثال از یک فیلد BLOB برای تصاویر و از یک فیلد BLOB برای ویدئوها استفاده میکنیم.
محدودیتی که در این طراحی وجود دارد این است که ممکن است چندین تصویر برای یک مکان مانند رستوران و … وجود داشته باشد، در حالی که این طراحی برای هر مکان تنها یک تصویر و یک ویدئو فراهم میکند. برای رفع این محدودیت میتوان یک جدول برای نگه داری همهی تصاویر و ویدئوها قرار داد و رابطهی یک به چند بین این دو جدول برقرار کرد. در جدول MEDIA دو فیلد برای توضیحات مربوط به هر عکس و ویدئو ایجاد کردیم.
حجم بالای این ویدئوها و تصاویر در یک جدول، روی عملکرد جستجوها تاثیر میگذارد. اگر بخواهیم یک تصویر یا ویدئوی جدید به یک مکان اضافه کنیم باید از یک رابط کاربری سفارشی استفاده کنیم یا اگر بخواهیم تصویر موجود را ویرایش کنیم، مدیر یک فیلد از نوع BLOB را بازیابی میکند و تغییر میدهد. پس این طراحی هم نمیتواند مؤثر و مفید باشد. برای حل این مشکل میتوانیم همهی تصاویر و ویدئوها را در یک وب سرور اختصاصی مستقل از پایگاه داده قرار دهیم. یک راه حل دیگر این است که میتوانیم ویدئوها را در YouTube قرار دهیم و یک URL فراهم کنیم. بدین ترتیب حجم زیادی از فضا ذخیره میشود و گردشگرها میتوانند این URL را با دیگران به اشتراک بگذارند. پس فیلدهای از نوع BLOB را به نوع متنی (حاوی آدرس URL ویدئو در YouTube) تغییر میدهیم.
حالا به مرحلهی آخر طراحی ERD رسیدیم و باید کلیدهای اصلی و خارجی را اضافه کنیم.
برگرفته از کتاب نصب، اجرا و مدیریت Arc GIS for server
نویسنده: دکتر محمد بافقی زاده
نشر: انتشارات اکادمیک