کاربرد GIS سرویس‌ها در تجزیه و تحلیل

کاربرد GIS سرویس‌ها در تجزیه و تحلیل


ایجاد وب‌سرویس‌ها-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS

وب‌سرویس‌ها واسطه‌ی ارتباطات ArcGIS for Server و میانبرهایی هستند که سرور را راه‌اندازی و کاربران نهایی را تغذیه می‌کنند. ArcGIS for Server وب‌سرویس‌های زیادی را پشتیبانی می‌کند. هر یک از این وب‌سرویس‌ها با یک استاندارد بین‌المللی پیاده‌سازی می‌شوند. کاربران مختلفی از این وب‌سرویس‌ها پشتیبانی می‌کنند. قبل از ورود به این استاندارد‌ها و پروتکل‌ها، باید وب‌سرویس را تعریف کنیم. سپس اولین وب‌سرویس را با استفاده از (Active Server Pages (ASP ایجاد می‌کنیم و چگونگی کارکرد و عملکرد وب‌سرویس‌ها را در بخش دوم این فصل توضیح می‌دهیم. در بخش دوم وب‌سرویس‌ها را روی سرور ایجاد و تعیین می‌کنیم. سرویس‌هایی که روی GIS سرور منتشر می‌شوند تفاوت کوچکی با وب‌سرویس‌های رایج دارند. این سرویس‌ها زمینه‌ی جغرافیایی و مکانی دارند. در سراسر این فصل، به وب‌سرویس‌هایی که روی GIS سرور منتشر می‌کنیم، GIS سرویس میگوییم.

وب‌سرویس‌های رایج

وب‌سرویس، کد از قبل نوشته‌شده‌ای است که برای انجام یک کار خاص صدا زده می‌شود و نتایجی را برمی‌گردند. نتایج در قالب متن، لینک و هر چیزی که مرورگرها می‌توانند تفسیر کنند، ارائه می‌شود. موضوعی که موجب وجه تمایز وب‌سرویس با دیگر کدهای نوشته‌شده است، cross platform است. بدین معنی که از هر پلتفرمی صدا زده می‌شوند و خروجی به شکل بومی و راحت اخذ می‌شود. مثلاً اگر ساعت‌های زیادی برای نوشتن یک الگوریتم به زبان #C برای اجرای یک کار خاص صرف می‌کنید و سپس بخواهید آن را روی سرور پایگاه داده‌‌ی Unix گسترش دهید، یک مشکل کوچک وجود دارد. کد #C از فریم ورک Microsoft.NET استفاده می‌کند که فقط روی سیستم‌عامل مایکروسافت ویندوز اجرا می‌شود و ورود این الگوریتم به سیستم‌عامل Unix یک چالش است. یک‌راه حل این است که این الگوریتم را برای اجرا روی Unix دوباره‌نویسی کنید که دو نسخه از کد را منتشر می‌کند و برای نگهداری و پشتیبانی کد کار اضافه‌ای است و راه‌حل مناسبی نیست. راه‌حل دیگر: الگوریتم را به‌صورت یک وب‌سرویس توسعه دهیم. ازآنجاکه وب‌سرویس‌ها از پروتکل HTTP استفاده می‌کنند، نه‌تنها می‌توانید این الگوریتم را از Unix بلکه از هر پلتفرم دیگری صدا بزنید. درواقع وب‌سرویس باید از یک استاندارد یا پروتکل تبعیت کند تا مشتری به‌راحتی با آن ارتباط برقرار کرده و آن را استفاده کند. مثلاً HTTP از کد خاصی برای ارتباط بین مشتری و سرور استفاده می‌کند. می‌توانید این پروتکل را بپذیرید تا همه‌ی کاربرانی که از HTTP استفاده می‌کنند، بتوانند از این سرویس استفاده کنند. در مواقعی که وب‌سرویس داده‌های حساسی دارد، بهتر است پروتکل خود را ایجاد کنید. پروتکل جدید را X می‌نامیم و تنها کاربرانی به وب‌سرویس دسترسی دارند که از پروتکل X استفاده می‌کنند.

ایجاد یک وب‌سرویس رایج

تعدادی پروتکل برای وب‌سرویس‌ها وجود دارد. قبل از وارد شدن به مبحث پروتکل‌ها، وب‌سرویس‌های رایج را بدون استفاده از پروتکل ایجاد و اجرا خواهید کرد. وب‌سرویس خام خود را از ابتدا ایجاد و طرز کار استانداردهای وب‌سرویس را یاد خواهید گرفت و بدون سروکار داشتن با مکانیسم پیچیده‌ی استانداردها یک وب‌سرویس ایجاد خواهید کرد. در ابتدا به سیستمی که IIS را اجرا می‌کند، نیاز داریم. نام سیستم در این مثال،WEB-SERVER01 است.

در بسیاری از اپلیکیشن‌ها اعداد تصادفی، به‌صورت مخفیانه و برای تولید رمز استفاده می‌شوند. در این تمرین، یک وب‌سرویس ساده ایجاد می‌کنیم که عدد تصادفی برمی‌گرداند.

ASP: یک زبان برنامه‌نویسی سمت سرور از شرکت مایکروسافت است. با این زبان می‌توانید صفحات وب با محتویات پویا ایجاد کرد.

فعال کردن ASP روی IIS

ممکن است که ASP روی وب سرور غیرفعال باشد. پس باید آن را فعال کرد. از پنجره‌ی Server Manager، گزینه‌ی Roles و سپس Web Server (IIS) را انتخاب کنید. از پنجره‌ی سمت راست، به پائین پیمایش کنید و Add Roles Services را کلیک کنید. یک فرم جدید در زیر درخت Application Development نمایش داده می‌شود. کادر ASP را تیک بزنید. روی next و سپس روی Install کلیک کنید.

نوشتن وب‌سرویس با ASP

حالا نوشتن وب‌سرویس را باکمی کد نویسی شروع می‌کنیم. یک نقاش برای شروع به کار به یک پرده‌ی سفید و یک برنامه‌نویس به noetpad نیاز دارد. می‌توانید از NotePad++ و یا هر محیط ویرایشگری که می‌خواهید استفاده کنید. Start را کلیک کنید و Notepad را تایپ کنید. قطعه کد زیر را تایپ کنید:

تگ <% and %> نشان‌دهنده‌ی شروع و پایان قطعه کد ASP است. تابع Response.Write برای نمایش خروجی روی صفحه استفاده می‌شود.

Hello, World! متن خروجی است که باید در مرورگر کاربر نمایش داده شود. این قطعه کد فقط برای آزمایش سرویس است بعداً این کد را تغییر می‌دهیم. این قطعه کد را در فایلی با نام genrand.asp در مسیر C:\inetpub\wwwroot ذخیره کنید. حالا مرورگر Chrome را بازکنید و آدرس https://WEB-SERVER01/genrand.asp را وارد کنید و اینتر را بزنید. در صفحه عبارت Hello,World! ظاهر می‌شود. به خاطر داشته باشید که این سرویس را از مرورگر صدا زده‌اید پس خروجی این سرویس نیز در مرورگر نمایش داده می‌شود. اگر این کد را درون یک اپلیکیشن ++C یا Python صدا بزنید، خروجی را در همان‌جا می‌بینید. بهتر است کد را تغییر دهیم. فایل genrand.asp را در notepad بازکنید. کد قبلی را پاک‌کنید و کد زیر را بنویسید:

فایل را ذخیره کنید و مجدداً آن را اجرا کنید. این کد یک عدد تصادفی در صفحه‌ی مرورگر نمایش می‌دهد. اگر دوباره سرویس را اجرا کنید دوباره همان عدد قبلی را می‌دهد. چرا؟ مشکل این است که کامپیوتر قابلیت پیش‌بینی دارد. هکرهای باتجربه اگر بفهمند که الگوریتم تولید اعداد تصادفی چطور کد نویسی شده است، کاری که کامپیوتر در مرحله‌ی بعدی انجام خواهد داد را پیش‌بینی می‌کنند. هر زمان یک عدد یکسان دریافت می‌کنید؛ زیرا هر بار که این سرویس را صدا می‌زنید، پردازش جدیدی را مقداردهی اولیه می‌کنید که با اجرای قبلی مجتمع نشده است و بدین دلیل این سرویس در هر بار اجرا یک عدد مشابه می‌دهد. برای ایجاد یک عدد تصادفی جدید و برای حل این مشکل، باید چیزهایی که کاملاً غیرقابل‌پیش‌بینی هستند را استفاده کنیم. هر چیزی به‌جز طبیعت، قابل پیش‌بینی است. برای این تمرین، از داده‌هایی که قابلیت پیش‌بینی کمتری دارند، استفاده می‌کنیم. فایل را مجدداً در notepad بازکنید و خط کد مشخص شده را اضافه کنید:

سرویس را مجدداً در مرورگر اجرا کنید. می‌بینید که با هر بار اجرای سرویس عدد متفاوتی دریافت می‌کنید. پیچیدگی بیشتری به این سرویس می‌توان اضافه کرد. خروجی این سرویس شبیه یک صفحه‌ی وب است. این کد به‌جای برگرداندن محتویات HTML، یک عدد برمی‌گرداند؛ بنابراین با توجه به تفاوت خروجی بین این کد و محتویات HTML، به کدهایی که خروجی متفاوتی با یک صفحه‌ی وب متداول دارند، وب‌سرویس می‌گویند. XML،HTML و GML زبان‌های Markup هستند و از تگ‌های استانداردی تشکیل‌شده‌اند. HTML نوع خاصی از XML است. GML یک‌زبان Markup با تگ‌های جغرافیایی خاص است.

خوب حالا که نحوه‌ی کار یک وب‌سرویس را یاد گرفتید، Twitter API، Facebook API یا ArcGIS API را در نظر بگیرید که وب‌سرویس‌هایی را ارائه می‌دهند. تفاوت آن‌ها در این است که هرکدام از مجموعه استانداردی تبعیت می‌کنند تا به‌صورت راحت و جهانی مورداستفاده قرار گیرند.

تگ‌های XML برای توصیف یک سند استفاده می‌شوند و افراد و کامپیوترها به‌سادگی این زبان را درک و می‌خوانند. صفحه‌ی وب، وب‌سرویسی است که از پروتکل HTTP به‌عنوان رابط استفاده می‌کند و مرورگر، محتویات HTML را به‌صورت عناصر قابل‌نمایش، ارائه می‌دهد.

برگرفته از کتاب نصب، اجرا و مدیریت Arc GIS for server

نویسنده: دکتر محمد بافقی زاده

نشر: انتشارات اکادمیک

وب جی آی اس (WebGIS)


Fatal error: Uncaught TypeError: ltrim(): Argument #1 ($string) must be of type string, WP_Error given in /home/gisland1/public_html/wp-includes/formatting.php:4482 Stack trace: #0 /home/gisland1/public_html/wp-includes/formatting.php(4482): ltrim(Object(WP_Error)) #1 /home/gisland1/public_html/wp-content/themes/xtra/functions.php(3349): esc_url(Object(WP_Error)) #2 /home/gisland1/public_html/wp-content/themes/xtra/single.php(19): Codevz_Core_Theme::generate_page('single') #3 /home/gisland1/public_html/wp-includes/template-loader.php(106): include('/home/gisland1/...') #4 /home/gisland1/public_html/wp-blog-header.php(19): require_once('/home/gisland1/...') #5 /home/gisland1/public_html/index.php(17): require('/home/gisland1/...') #6 {main} thrown in /home/gisland1/public_html/wp-includes/formatting.php on line 4482