وب سرویس چیست؟

امروزه اینترنت فراگیرترین رسانه اجتماعی است که انواع و اقسام سرورها، مرورگرها، سیستم ها و نرم افزار ها به وسیله آن با هم در ارتباط بوده و اطلاعات خود را رد و بدل می کنند .

یک وب سایت یا نرم افزار تحت وب، بر روی هر سیستمی که دارای یک مرورگر باشد، فارغ از نوع سیستم عامل یا سخت افزار آن قابل اجراست.

برای مثال وقتی به وب سایت بانک خود سر می زنید، مهم نیست از یک مرورگر روی ویندوز استفاده می کنید یا مرورگر safari روی دستگاه آیپدتان. هر دو مرورگر، وب سایت بانک را یکسان باز کرده و می توانید عملیات مشابه انجام دهید. دلیل آن هم، نوشته شدن برنامه براساس استاندارد مرورگرهاست.

اما زمانی که دو سیستم عامل متفاوت بخواهند با هم اطلاعات رد و بدل نمایند ، چه باید کرد؟

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

 

راه حل چیست ؟

راه حل استفاده از Web Service ها است. Web Service ها، اطلاعات را برای ارسال، به زبان XML کد کرده و سپس در مقصد نیز اطلاعات را بر حسب همان زبان رمزگشایی و ترجمه می کنند.

به عبارت دیگر، از XML به عنوان یک زبان محاوره ای مشترک بین انواع سیستم ها استفاده می شود. حال برای ارسال و دریافت اطلاعات بین انواع سرور ها مشکلی وجود ندارد .

خاصیت مهم Web Service ها، این است که شما می توانید نرم افزار و یا اطلاعات مورد نظر خود را به وسیله آنها، بدون دغدغه خاصی برای اجرای صحیح در مقصد، بر روی وب منتشر سازید .

 

به طور کلی Web Service ها ، دو استفاده کلی دارند:

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

برخی اطلاعات هستند که نرم افزارها به صورت مرتب به آنها نیاز دارند. با استفاده از Web Service ها، به جای تولید هرباره آنها، فقط یکبار تولید شده و در اختیار همگان قرار می گیرد. برای مثال ، اطلاعات آب و هوا یا قیمت های ارز و غیره.

اتصال نرم افزارهای موجود و انتقال اطلاعات بین آنها :

Web Service مشکل عدم تناسب و ناهمگونی بین سیستم ها را با به کار بردن زبانی مشترک حل کرده است.

به وسیله XML ، می توانید اطلاعات و نرم افزارهای خود را بین هر نوع سیستم عامل و سخت افزار انتقال دهید .

 

SOAP چیست؟

SOAP پروتکل دسترسی آسان به اشیاء و مخفف عبارت Simple Object Access Protocol می باشد.

این پروتکل برای رد و بدل کردن اطلاعات بین برنامه ها استفاده می شود. اطلاعات در SOAP به صورت پیام (Message) و از طریق پروتکل های موجود در اینترنت مانند HTTP منتقل می‏شود. به زبان ساده‏ تر، SOAP یک پروتکل برای دستیابی به یک سرویس ارایه شده در وب (Web Service) می باشد. پروتکل SOAP  یکی از عمومی ترین استاندارد هایی است که در وب سرویس ها استفاده می شود.

وقتی یک برنامه شروع به ارتباط با وب سرویس می کند، پیغام های SOAP وسیله ای برای ارتباط و انتقال دیتا بین آن دو هستند. یک پیغام SOAP به وب سرویس فرستاده می شود و یک تابع را در آن به اجرا در می آورد،  وب سرویس نیز از محتوای پیغام SOAP استفاده کرده و عملیات خود را آغاز می کند و در انتها نیز نتایج را با یک پیغام SOAP دیگر به برنامه اصلی می فرستد.

 

یکی از مسایلی که در دهه اخیر از اهمیت خاصی برخوردار بوده، چگونگی ارتباط برنامه‏ های تحت اینترنت با یکدیگر می باشد.

برنامه‏ های عادی از RPC) Remote Procedure Call) برای فراخوانی اشیاء DCOM یا CORBA، استفاده می‏کنند. اما مشکلی که در این نوع فراخوانی‏ ها در بستر اینترنت وجود دارد، مسدود شدن این نوع ترافیک‏ها در Proxy Server ها و دیوارهای آتش (Firewall ها) می باشد.

در صورت استفاده از SOAP با این مشکل روبرو نخواهید بود. SOAP به راحتی شما را قادر خواهد کرد تا بین برنامه‏ هایی که در بسترهای متفاوت طراحی شده اند و در بسترهای متفاوتی در حال سرویس ‏دهی هستند، ارتباط برقرار کنید.

ویژگی های SOAP

  1. یک پروتکل ارتباطی است.
  2. برای ارسال پیام استفاده می‏شود.
  3. برای محیط اینترنت و شبکه طراحی شده است.
  4. وابسته به محیط پیاده سازی و اجرا نیست. (  Platform Independent)
  5. مبتنی بر XML است.
  6. از دیوارهای آتش (Firewall) گذر می‏کند ودیوارهای آتش مانع آنها نمی شوند (Block نمی‏شوند).

ساختار SOAP

پیام ها در SOAP یک فایل XML هستند که از ساختار زیر پیروی می‏کنند:

  1. یک بخش ضروری که به آن Envelope (پاکت نامه) گفته می‏شود که مشخص می‏کند که این XML یک پیام SOAP است.
  2. قسمت Header که اختیاری است. این بخش شامل اطلاعاتی در مورد خود برنامه است. در صورتی که از Header استفاده شود، باید اولین عنصر در ساختار Envelope باشد.
  3. قسمت Body که ضروری است. این بخش شامل Call یا Response است. در واقع مشخص کننده درخواست برنامه‏ سرویس‏ گیرنده یا پاسخ برنامه سرویس‏ دهنده است.
  4. قسمت Fault یا خطا که اختیاری است. این بخش اطلاعاتی درباره خطاهای بوجود آمده در هنگام پردازش پیام در خود دارد.

    معایب SOAP

    همانطور که می‏د‏انید اولین حرف از حروف تشکیل دهنده ‏SOAP حرف S و اول کلمه Simple است. همین مورد، باعث شده است تا در این سیستم سادگی مقدم بر هرچیز باشد. برای همین در SOAP بسیاری از کاستی ‏ها دیده می‏شود، که یکی از مهمترین آنها  امنیت و قابلیت اعتماد پایین است.

    همین کاستی باعث شده است که تولیدکنندگان نرم‏ افزار به این فکر بیفتند تا SOAP را توسعه دهند و استانداردهای جدیدتری با امکانات بیشتری تولید کنند.

    استاندارد تولید شده توسط مایکروسافت با نام GXA) Global XML Web Services Architecture) ارائه شد. که یک پیاده‏ سازی از آن WSE) Web Services Enhancements) است. WSE یک ابزار قدرتمند است که شما با استفاده از DotNet Framework و WSE می توانید وب سرویس های امن و قدرتمند بنویسید. به بیان ساده‏ تر WSE ابزار شما برای طراحی و ساخت وب سرویس ها با .NET می باشد. WSE را می توانید از سایت Microsoft بارگیری کرده و نصب کنید.

 REST چیست؟

REST يك مدل معماري براي طراحي برنامه‌هاي كاربردي شبكه است كه ترکیبی از چند مدل معماری مبتنی بر شبکه مي‌باشد و محدودیت‌هايی جهت تعریف يك واسط اتصال یکنواخت براي آن درنظر گرفته شده است.

REST مخفف شده‌ی عبارت Representational State Transfer و به معنای “انتقال بازنمودی حالت” است.
ايده اصلي معماري REST اين است كه به جاي استفاده از مكانيزم هاي پيچيده اي مانند CORBA، RPC يا SOAP براي اتصال ماشين ها ، ازHTTP ساده براي برقراري ارتباط بين ماشين‌ها استفاده شود.

مدل REST شش قيد براي معماری برنامه‌هاي شبكه تعريف مي‌كند: كلاينت سرور (client-server) باشد. بدون حالت (stateless) باشد. قابليت cache داشته باشد. (cacheable) سيستم لايه‌بندي شده (layered system) داشته باشد. واسط يكنواخت (uniform interface) داشته باشد. داراي قابليت كد در صورت نياز (code on demand) باشد. (كه اين محدوديت اختياري مي‌باشد) به سيستمي كه اين قيود را رعايت نمايد، RESTful  مي‌گويند.
از لحاظ رويكرد برنامه نويسي REST جايگزيني ساده براي سرويس‌هاي وب است. توسعه‌پذيري در تعاملات ميان اجزا، عموميت واسط ها، توسعه مستقل اجزا و استفاده از واسطه ها  از كليدي ترين اهداف معماري REST مي‌باشد و همچنين استفاده از معماري REST در برنامه‌نويسي كارايي، سادگي، انعطاف‌پذيري، امكان مشاهده و نظارت، قابليت حمل و قابليت اطمينان را افزايش مي دهد.

امروزه برنامه های سنتی وب در حال حرکت به سمت سرویسی شدن هستند، بدین صورت که کلاینت ها تنها از طریق وب سرویس هایی با سرور در تماس هستند.

به بیانی دیگر ارتباط کلاینت ها با لایه داده برنامه (Data Model) از طریق وب سرویس ها صورت می پذیرد. در چنین برنامه هایی منطق برنامه (logic) کاملا در سمت کلاینت پیاده سازی می شود و سرور دیگر هیچ نقشی جز فراهم کردن داده برای کلاینت هایش را برعهده ندارد. یکی از الگو های طراحی وب سرویس که در سال های اخیر بسیار مورد توجه قرار گرفته است سرویس های REST می باشند.

در سرویس های REST فراهم کردن منابع برای کلاینت ها بسیار مهم است. در واقع تمام هدف REST اینست که این منابع را بگونه ای در اختیار کلاینت ها قرار دهد تا از آنها استفاده کنند، تغییراتی در آنها دهند و یا آنها را حذف کنند.

یکی از نکات مثبت سروریس های REST این است که دسترسی کلاینت ها به این منابع از طریق درخواست های HTTP انجام می گیرد. این درخواست ها با متد های مختلفی می توانند ارسال شوند که هر یک معنا و مفهومی خاصی دارد. این متد ها عبارتند از GET، POST ، PUT، DELETE و … که کاربرد هریک با دیگری متفاوت است.

تفاوت وایرفریم و پروتوتایپ و ماکاپ چیست؟

این مفاهیم معمولا به جای هم به کار می‌روند ولی یکسان نیستند. در این مطلب در مورد تفاوت آنها و نحوه استفاده‌ی آنها توضیح می‌دهیم.

با توجه به Usability.gov  «وایرفریم بازنمایی بصری صفحه وب است… برای نشان دادن اینکه هر آیتم در کجای صفحه قرار بگیرد.» یک طرح اولیه بصری متشکل از جعبه‌های خاکستری، که نشان دهنده‌ی المان‌های اصلی و مشخص کننده‌ی سلسله مراتب سایت است.

و چنانچه بخواهیم به سایر انواع پروژه های نرم افزاری، مفهوم را بسط دهیم، میتوانیم به زبان ساده تری بگوییم که وایرفریم درواقع طراحی عناصر و امکانات واسط نرم افزاری بر روی کاغذ است تا شمای کلی را به مشتری منتقل کند و تأییدیه اولیه را صادر کند.

وایرفریمینگ در یک تیم معمولا سریع پیشرفت می‌کند چرا که مکررا می‌تواند ایده های جدید و داده ها و نیازهای استفاده ای را مجتمع کنند. وایرفریم ها جزئیات زیادی را نشان نمی‌دهند ولی یک طرح ساده‌ای بوجود می آورند که پروژه و اعضای آن را راهنمایی می‌کند.

  • وایرفریم‌ها المان‌های اولیه یک صفحه وب را قابل تصور می‌سازند.
  • به سرعت توسعه و پالایش می‌شوند.
  • تعاملی نیستند.

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

 

و اما پروتوتایپ

پروتو تایپ یک بازنمایی تعاملی از یک محصول نهایی است که از نظر معنایی جزئی‌تر از وایرفریم است (مثلا گرافیک ها و متن).توسعه دهندگان با پروتوتایپ های قابل کلیک، کاربران را برای تجربه و آزمایش در واسط کاربری (UI) خود تجهیز می‌کنند.

پروتوتایپ بایستی به محصول نهایی شباهت داشته باشد. فعل و انفعالات دقیق و منظم بایستی تجربه  کاربری (UX) را مدل سازی نمایند. نادیده گرفتن وابستگی بین رابط کاربری و ساختار برنامه نویسی در این مرحله باعث کاهش هزینه توسعه و چابک می‌شود.

  • پروتوتایپ ها تعاملی هستند.
  • تجربه کاربری را مدل سازی می‌کنند.
  • آزمایش وسیع کاربری را ممکن می‌سازند.

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

و اما ماکاپ

ماکاپ (Mockup) هم از وایرفریم و هم از پروتوتایپ متفاوت است. همانند وایرفریم ایستا ولی بیشتر گرافیکی و بصری هستند و برند را بدون قابیلیت‌های تعاملی پروتوتایپ منتقل می‌کنند.

 

آیا نیازی به ماکاپ هست؟

ماکاپ یک طرح ایستا هست که در آن هویت بصری یک مجموعه، شامل رنگ و تایپوگرافی و سبک بصری پیاده‌سازی می‌شود. ماکاپ‌ها میتوانند پیش نویسی برای طرح نهایی یک راه حل باشند. آنها به سرمایه‌گذاران و شرکای پروژه بُعدی از کالا را نشان می‌دهند که می‌تواند برای مشتری نهایی و فاکتور‌های موفقیت تجاری اهمیت داشته باشند.

  • ماکاپ ها هویت بصری مجموعه را نمایش می‌دهند.
  • می‌توانند به شمایل و احساس راه حل نهایی نزدیک باشند.
  • برای آزمایش و مقبولیت کاربر مفید هستند.

ماکاپ ها خصوصا برای دریافت قبل از موعد مبلغ قرارداد از سرمایه‌گذاران کارآمد هستند. چراکه راحتتر از وایرفریم‌های انتزاعی فهمیده می‌شوند و سریعتر از پروتوتایپ‌ها ساخته می‌شوند.

 

طراحی ریسپانسیو سایت چیست؟

به احتمال بسیار زیاد برای شما هم پیش آمده که یک وب سایت را بر روی گوشی موبایل یا تب لت خود مشاهده کرده باشید. در این حال، اصلا دوست ندارید که برای دیدن محتوای سایت، یکسره اسکرول افقی را به حرکت درآورید و یا اینکه چیدمان عناصر صفحه را به همریخته مشاهده کنید.

تا چندی پیش برای نمایش یک وب سایت در موبایل، طراحی و برنامه نویسی مجزا تحت عنوان Mobile version یا سایت موبایل محور انجام می‌شد. در این نوع طراحی، سرور با توجه به شناسه مرورگر کاربر، تشخیص می داد که کاربر، سایت را با موبایل بازدید می کند در این حالت محتوای موبایل را در همان آدرس به او نشان می‌داد یا او را به URL مخصوص موبایل هدایت می نمود.

با طراحی سایت واکنش گرا (ریسپانسیو : Responsive ) دیگر نیازی نیست که برای هر گجت موجود در بازار یک سایت اختصاصی طراحی کرد.

در طراحی سایت واکنش گرا که به Responsive Web Design مشهور است، ساختار لایه‌های سایت به صورت شناور طراحی می‌شود که باعث تنظیم عرض صفحه، سایز متن و … در ابعاد مختلف می شود که این کار به صورت کاملاً خودکار انجام می‌شود و کاربران می توانند با خیال راحت با هر دستگاه دلخواهی از جمله گوشی های ویندوزی، اندرویدی، آیفون، تب لت و لپ تاپ و دسکتاپ با سایزهای مختلف و غیره ک سایت واحد را مشاهده نمایند.

در واقع سایت واکنش گرا برای واکنش سایت نسبت به تغییر دستگاه های مختلف مانند تبلت، موبایل، لپ تاپ، تلویزیون های هوشمند و همچنین تغییر رزولوشن ها مورد استفاده قرار می گیرد.

با توجه به این امکان بی نظیر کاربر تعامل بهتری با سایت برقرار کرده و این تکنیک تاثیر مثبت و جذب بیشتری روی کاربر خواهد داشت.

بعنوان یک مثال عینی، در بخش زیر صفحه ای از یک وب سایت از طریق سه دستگاه مختلف گوشی هوشمند، تب لت و لپ تاپ با اندازه های مختلف به نمایش درآمده است.

 

یک تکنیک جالب برای تست اینکه آیا یک وب سایت، ریسپانسیو یا واکنش گرا هست یا نه :

کافی است اندازه مرورگر خودرا تغییر دهید و ببینید آیا عناصر سایت شامل تصاویر و نوشته ها، شروع به جابجایی می کنند یا خیر؟ اگر جابجا شده و خودرا تطبیق دادند یعنی اینکه آن وب سایت، واکنش گراست.