امکان استفاده از تلفنهای همراه هوشمند برای دستیابی به سرویسهای مختلف از جمله شبکههای اجتماعی، یکی از نیازمندیهای روز دنیا است که هیچیک از ارائهدهندگان خدمات برخط نمیتواند از آن چشمپوشی کنند. علیرغم این نکته که ساختار موتوشاب و پوستههای آن به گونهای طراحی شدهاند که به سادگی در تمامی دستگاههای هوشمند قابل نمایش باشند، نیاز به وجود نرمافزار کاربردی برای تلفنهای همراه همچنان پابرجا است. در همین راستا نیازمندیهای لازم برای نرمافزار کاربردی تلفن همراه استخراج شده و توسط تیم موتوشاب در دست طراحی است.
این خبر به توصیف و تشریح معماری سامانه پشتیبانی از تلفن همراه موتوشاب اختصاص دارد. منظور از سامانه، مجموعه تمامی مؤلفههایی است که در کنار یکدیگر این امکان را فراهم آوردهاند تا موتوشاب که پیشتر تنها به صورت برخط و از طریق مرورگرهای وب قابل دسترسی بود، بر روی تلفنهای همراه نیز به صورت یک برنامه کاربردی مجزا قابل اجرا و استفاده باشد. سامانه مذکور شامل انواع موجودیتها و مفاهیم است؛ اعم از نرمافزارهای تولیدشده برای تلفنهای همراه، نرمافزار کارگزار موتوشاب، پروتکلهای ارتباطی و مؤلفههای خارجی که به صورت از خدمات آنها به صورت ابزاری استفاده خواهد شد. با توجه به مأموریت گام معماری که ارائه راهکار برای پاسخگویی به نیازمندیهای نرمافزاری بهویژه نیازمندیهای غیرعملکردی است، پرداختن به موضوعات با اهمیت مرتبط به تمامی این موجودیتها، در این گام امری ضروری است.
شناسایی نیازمندیهای سامانه
در فرآیند تولید و توسعه نرمافزار، پیش از هر کار باید به استخراج نیازمندیهای محصول نرمافزاری پرداخت. این فصل به بیان نتایج حاصل از مطالعات و بررسیهای انجامشده برای شناسایی نیازمندیهای نرمافزار تلفن همراه موتوشاب و سامانه مورد نیاز به جهت پشتیبانی از آن اختصاص دارد. نیازمندیهای عملکردی، غیرعملکردی و وظایفی که از کارگزار و نرمافزار تلفن همراه موتوشاب انتظار میرود، مورد بررسی قرار گرفته است.
نیازمندیهای عملکردی
در مرحله نیازسنجی یک نرمافزار، نیازمندیهای عملکردی به معنای وظایفی است که کاربران انتظار دارند نرمافزار آنها را به انجام برساند. لذا برای شناسایی این نیازمندیها باید از دید کاربران به سامانه نگاه کرده و دریافت، چه خدماتی را از سامانه انتظار دارند.
مجموعه ویژگیها و امکانات موجود در کارگزار موتوشاب به قدری فراگیر است که پاسخگوی نیازمندی طیف وسیعی از شبکههای اجتماعی عمومی و تخصصی خواهد بود. از سوی دیگر، یکی از تصمیمات مهم معماری، استفاده از فناوری نمایشگر وب در نرمافزار تلفن همراه موتوشاب است که این امکان را فراهم میسازد تا صفحات شبکه اجتماعی در قالبی که توسط کارگزار موتوشاب تولید شده است، نمایش داده شوند. از سوی دیگر، اکثر تعاملات کاربر نیز به شکل درخواستهای معمول وب خواهند بود. علاوه بر امکانات موجود در کارگزار موتوشاب، فهرستی از امکانات موردنیاز به شرح زیر استخراج شده است که مرتبط با فضای خاص تلفنهای همراه است. نیازمندیهای این فهرست ارتباطی با کارگزار موتوشاب نداشته و باید در سمت نرمافزار تلفن همراه برآورده شوند.
نیازمندیهای غیرعملکردی
دسته دیگری از نیازمندیهای یک نرمافزار، نیازمندیهای غیرعملکردی هستند که بر کیفیت انجام وظایف تاکید کرده و آن را توصیف مینمایند. نکته شایان توجه، اهمیت این دسته از نیازمندیها است. برخی تصور مینمایند که خصوصیات کیفی تأثیر بسزایی در نرمافزار نداشته و تنها عملکردهای آن، تعیینکننده نیازمندیها است؛ در حالی که بسیاری از مواقع، این خصیصههای کیفی هستند که تحقق یا عدم تحقق آنها، وجه تمایز میان نرمافزارهای موفق و شکستخورده محسوب میشود. به همین سبب بسیار ضروری است تا همزمان با بررسی و استخراج نیازمندیهای عملکردی، به شناسایی خصیصههای کیفی نیز پرداخته شود.
خصیصههای کیفی متنوعی با تاکید بر جنبهها و حوزههای مختلف وجود دارند. یک تحلیل موفق از نیازمندیهای غیرعملکردی نرمافزار، مستلزم شناخت هریک از خصیصهها و همچنین، دانش کافی از دامنه مسئله است. نتایج ترکیب این دو دسته از اطلاعات و بررسیها، به صورت فهرستی از نیازمندیهای غیرعملکردی درآمده است که در فهرست زیر معرفی شدهاند.
معماری سامانه و ساختار مؤلفهها
منظور از معماری سامانه، معرفی هریک از ارکان شرکتکننده در سامانه و همچنین، توصیف مؤلفههای داخلی آنها و ارتباطات میان این مؤلفهها برای تحقق نیازمندیهای عملکردی و غیرعملکردی است. شناخت ساختار و اجزاء یک نرمافزار، از اقدامات اصلی در بررسی معماری آن نرمافزار به شمار میآید. اطلاع از ساختار و اجزای یک سامانه نرمافزاری نهتنها اولین قدم در راستای توسعه و بهبود آن است، بلکه یک ضرورت برای یافتن سازوکارهای ارائهشده توسط نرمافزار برای تحقق خصیصههای کیفی است. بنابراین در بخشهای زیر ابتدا به معرفی ارکان اصلی شرکتکننده در سامانه پرداخته شده و سپس، هریک از آنها به صورت مجزا مورد تشریح و بررسی قرار گرفتهاند.
اجزاء اصلی و نمای کلی سامانه
سامانه پشتیبانی از نرمافزار تلفن همراه موتوشاب سه رکن اصلی دارد که در این بخش به معرفی اجمالی آنها و همچنین بیان نحوه برقراری ارتباطات میان این اجزاء به منظور پاسخگویی به نیازمندیهای سامانه پرداخته میشود. این مؤلفهها عبارت هستند از:
معماری کارگزار موتوشاب
این بخش به تشریح معماری کارگزار موتوشاب اختصاص دارد. به دلیل آنکه از فناوری نمایشگر وب در نرمافزار تلفنهای همراه استفاده شده است، برخی مؤلفهها در این نسخه از معماری کارگزار موتوشاب، با نسخه پیشین معماری یکسان است. با این حال نیاز به استفاده از نرمافزار تلفن همراه برای دسترسی به خدمات شبکههای اجتماعی، ایجاب نموده است تا معماری کارگزار دستخوش تغییر قرار گرفته، برخی امکانات و به تبع آن تعدادی مؤلفه به آن افزوده شده و تعدادی از مؤلفههای موجود در آن نیز به صورت مناسبی تغییر یابند.
ساختار مؤلفههای نرمافزاری
برخی مؤلفههای کارگزار در این نسخه از معماری، مشابه نسخه معماری اولیه موتوشاب است. به همین سبب در ادامه تنها به معرفی مؤلفههایی پرداختهشده است که تغییریافته و یا به معماری کارگزار افزودهشدهاند تا نیازمندیهای ارائه خدمات به تلفنهای همراه نیز برآورده شود. در شکل زیر مؤلفههای موجود در معماری کارگزار موتوشاب در قالب بستههای نرمافزاری مختلف قرارگرفتهاند.
سازوکار معماری سه لایه
تاکنون، معماری بستههای نرمافزاری اصلی سامانه با رویکرد شناسایی ساختار سطح بالای کارگزار موتوشاب شرح داده شد. در یک نگاه کلی، تمامی این بستههای نرمافزاری در کنار یکدیگر یک هدف مشترک را دنبال میکنند و آن فراهمسازی بستری جهت توسعه افزونههای مورد نیاز یک شبکه اجتماعی کامل و امکان ارائه خدمات آن برای نرمافزار تلفن همراه موتوشاب و مرورگرهای وب است. تمامی رفتارهای قلمرو مسئله نیز از طریق افزونهها پیادهسازی شدهاند. این بستر مبتنی بر الگوی معماری MVC بناشده و شامل سه لایه میشود: لایه مدل داده، لایه کنترلکننده و لایه نمایش. هرکدام از این سه لایه وظایف معینی دارند. در شکل زیر شمای کلی این معماری به تصویر کشیده شده است. در ادامه به شرح هرکدام از لایهها پرداختهشده است.
لایه مدل داده نسبت به نسخه قبلی معماری کارگزار تغییری نکرده و به همان شکل، ثابت مانده است. لایه کنترلکننده، علیرغم آنکه تمامی کارکردهای نسخه گذشته را دارد؛ دستخوش تغییراتی شده است. نیازمندی پشتیبانی همزمان از درخواستهای نرمافزار تلفن همراه و مرورگرهای وب، ایجاب مینماید تا مجموعههای متفاوتی از اطلاعات به کاربران نمایش داده شود. به همین دلیل لازم است تا در لایه کنترلکننده نیز رویههای مجزایی برای پاسخگویی به درخواستهای کاربران تلفن همراه و کاربران تحت وب تعبیه شود. به همین سبب دو تغییر عمده در این لایه به انجام رسیده است.
اول آنکه مؤلفه سرویس وب به آن افزودهشده است. وظیفه این مؤلفه، مدیریت پاسخگویی به نوع خاصی از ارتباط است که تنها توسط نرمافزار تلفن همراه و بهمنظور دریافت اطلاعاتی نظیر زبان شبکه اجتماعی، منوها آن و اطلاعات کاربر صورت میپذیرد. مؤلفه سرویس وب، تنها مجموعه مشخصی از اطلاعات مورد درخواست کاربر را از لایه مدل داده دریافت کرده و آنها را از مجرای متفاوتی به لایه نمایش ارسال مینماید تا نه بهصورت صفحات وب، بلکه در قالب پروتکلهای مناسب برای ارتباط با نرمافزار تلفن همراه موتوشاب، آماده نمایش شده و به سمت کاربر ارسال گردند.
دوم آنکه هریک از افزونهها بهصورتی گسترش یافته است تا همزمان از انواع درخواستهای ممکن پشتیبانی کند. به این شکل که برای درخواستهای ارسالی از سوی نرمافزار تلفن همراه و مرورگر وب، رویههای متفاوتی اجرا کرده و پاسخهای متفاوتی تولید کند تا به دست لایه نمایش رسیده و در قالب مناسب به کاربر نمایش داده شود. درخواست کاربر پیش از پاسخگویی بررسیشده و مشخص میشود که کدام رویه باید به این درخواست پاسخگو باشد.
لایه نمایش نیز در این نسخه نسبت به نسخه گذشته تغییراتی داشته است. لایه نمایش در این معماری مسئول نمایش اطلاعات مورد نیاز کاربر، در قالب درخواستی وی است. در نسخه پیشین کارگزار موتوشاب، پاسخهای کاربران تنها در یک چارچوب ارسال میشدند و آن هم صفحات HTML بودند. البته شایان ذکر است همین صفحات نیز بهصورت کامل از واکنشگرایی پشتیبانی کرده و مناسب برای مشاهده بر روی مرورگرهای انواع دستگاهها (رایانههای رومیزی و همراه، تبلت و تلفن همراه) بودند. بااینحال در نسخه جدید معماری کارگزار، این امکان به لایه نمایش و همچنین افزونههای موتوشاب اضافهشده است تا بر اساس اطلاعات نرمافزار و دستگاه مورد استفاده کاربر، نسخههای متفاوتی از صفحات شبکه اجتماعی به وی نمایش داده شوند.
چه در نسخه پیشین و چه در این نسخه از کارگزار موتوشاب، برای تولید صفحات HTML جهت نمایش به کاربر از قالبهای smarty استفادهشده است. قالبهای smarty درواقع همان فایلهای HTML هستند؛ با این تفاوت که در میان کدهای HTML آنها میتوان از زبان برنامهنویسی مخصوصی که توسط smarty ارائهشده، استفاده کرد. در معماری جدید کارگزار موتوشاب، لازم است به این نیازمندی توجه شود که کاربر میتواند سه ظاهر متفاوت از شبکه اجتماعی را مشاهده نماید:
بهاینترتیب لازم است تا درخواست کاربر پیش از تولید قالب ظاهری مورد بررسی قرار گیرد. بر اساس اطلاعات صریح و ضمنی موجود در بستههای درخواست وب، مشخص میشود که اولاً نرمافزار مورد استفاده کاربر، مرورگر وب است یا نرمافزار موتوشاب و ثانیاً وی از چه دستگاهی برای مشاهده شبکه اجتماعی استفاده مینماید. سپس با توجه به نتیجه بررسی، مناسبترین نسخه ظاهری و قالب گرافیکی شبکه اجتماعی برای وی به نمایش درمیآید؛ نسخه رومیزی، نسخه وب مناسب برای تلفن همراه و یا نسخه مخصوص نرمافزار تلفن همراه موتوشاب.
بهمنظور تحقق این نیازمندی و امکان تولید نسخههای ظاهری متفاوت در هریک از حالات مذکور، لازم است هر پوسته حاوی فایلهای متفاوتی (اعم از HTML، JS و CSS) برای هریک از نسخههای ذکرشده درون خود دیده باشد. به همین سبب نیاز است تا برای پوستههای پیشفرض موتوشاب نیز این تلاش انجام پذیرفته و فایلهای لازم به پوستهها افزوده شوند.
مؤلفههای معماری نرمافزار تلفن همراه
اولین نکتهای که در ارائه یک خدمت بر روی بستر تلفنهای همراه هوشمند مطرح میشود، تنوع مدلهای تلفن همراه و سیستمهای عامل آنها است. بخش اعظم بازار تلفنهای همراه هوشمند میان دو سیستمعامل اندروید و iOS تقسیمشده است. به همین سبب نرمافزار موتوشاب نیز با هدف استفاده کاربران این دو سیستمعامل توسعه خواهد یافت. رقابت این دو محصول در رفع نیازمندیهای کاربران منجر به شباهت بالای معماری و امکانات سیستمی آنها شده است که این موضوع، به فرآیند معماری و طراحی نرمافزار برای این دو سیستمعامل کمک شایانی مینماید.
در شکل زیر مؤلفههای نرمافزار تلفن همراه موتوشاب به تصویر درآمدهاند.
مؤلفههای معماری نرمافزار تلفن همراه
کارگزار فرستنده اعلان
در بخشهای گذشته به معرفی و تشریح مؤلفههایی از سامانه پرداخته شد که توسط گروه توسعه موتوشاب طراحی و پیادهسازی شدهاند. برخی از مؤلفههای دخیل در این معماری، نقش ابزاری داشته و به بیانی، ارائهدهنده خدماتی هستند که برای برقراری ارتباط، ارسال اطلاعات و بهصورت کلی، برای تحقق نیازمندیهای مربوط به پشتیبانی از نرمافزار تلفن همراه موتوشاب ضروری هستند.
یکی از مهمترین نمونههای اینگونه مؤلفهها در فضای توسعه نرمافزارهای تلفن همراه، کارگزار فرستنده اعلان است. به جهت ویژگیهای خاص استفاده از تلفن همراه، نیازمندیهای ویژهای در این حوزه مطرح میشود. یکی از این نیازمندیها، امکان ارسال اعلان از سوی کارگزار به تلفنهای همراه است؛ بهنحویکه کمترین هزینه را از جهت ترافیک مصرفی شبکه و پردازش (و بهتبع آن مصرف انرژی و کاهش عمر باتری) داشته باشد. الگوی حال حاضر برای رفع این نیازمندی، استفاده از کارگزار فرستنده اعلان بهصورت یک ابزار واسط است.
نحوه عملکرد کارگزارهای فرستنده اعلان در یک سامانه خدمات عمومی به این صورت است که تلفنهای همراه و نرمافزارهای موجود بر روی آنها، با ارسال پیامهای مشخص، خود را در این کارگزارها به ثبت رسانده و آدرس خود را برای دسترسیهای آتی به آنها میسپارند. از سوی دیگر کارگزارها با پروتکل ارتباطی مشخصی که پیشتر مورد توافق قرارگرفته و بر اساس سیاستهای تجاری موجود، حجمی از اطلاعات را به این کارگزارهای فرستنده اعلان ارسال مینمایند. این اطلاعات ارسالی شامل محتوای لازم جهت اعلان به عده مشخصی از کاربران و همچنین مشخصات دریافتکنندگان آنها است. درنهایت کارگزار ارسال اعلان، با استفاده از اطلاعات دسترسی که در خود ذخیره کرده است، اعلانها و پیامهای موردنظر را به دست صاحبان آنها رسانده و موجب برقراری این ارتباط با کمترین سطح سربار برای کارگزار و کاربر میشوند.
خصیصههای کیفی
تاکنون معماری نرمافزار تلفن همراه موتوشاب از دیدگاه ساختاری بررسی شد؛ اما برای بررسی معماری یک محصول نرمافزاری میبایست به سراغ خصیصههای کیفی رفته و محصول را مبتنی بر آنها نیز بررسی و تحلیل کرد. در ادامه به بررسی نرمافزار تلفن همراه موتوشاب از منظر این خصیصههای کیفی پرداخته شده است. بدین مقصود به ازای هر خصیصه کیفی وضعیت نرمافزار تلفن همراه موتوشاب مورد بررسی قرارگرفته است. مجموعهای از خصیصههای کیفی مورد توجه قرارگرفتهاند که چالشهای اصلی نرمافزارهای تلفن همراه و خدمات عمومی، اغلب به همین خصیصهها مرتبط هستند.
قابلیت توسعه و نگهداری
تحقق قابلیت توسعه و نگهداری برای یک نرمافزار تلفن همراه را میتوان درگرو دو مسئله دانست؛ انعطافپذیری در توسعه و پشتیبانی مناسب از قابلیت چند زبانی. مورد دوم یعنی قابلیت چندزبانی، با توجه به شرایط خاص زبان و خط فارسی و نیازمندیهای ویژه کاربران ایرانی از اهمیت معمارانه برخوردار است. اگرچه جامعه کاربری موتورهای شبکه اجتماعی بهاندازه کاربران موتورهای مدیریت محتوا فراوان نیست؛ اما رفتار و دغدغههای آنها شباهتهای فراوانی به یکدیگر دارد. ازاینرو در این قسمت به بررسی تحقق قابلیت توسعه و نگهداری از منظر انعطافپذیری در توسعه و پس از آن پشتیبانی از چندزبانی پرداخته شده است.
انعطافپذیری در توسعه
یکی از مهمترین عواملی که به افزایش قابلیت توسعه و نگهداری نرمافزار موتوشاب انجامیده است، استفاده از شیءگرایی در تولید نرمافزار است. تمامی کدهای نرمافزار بهصورت شیءگرا پیادهسازی میشوند و دغدغه کاهش چسبندگی و افزایش پیوستگی تا حد امکان در آنها رعایت میشوند. همچنین پیروی از الگوهای طراحی در مهندسی نرمافزار موجب شده است تا مؤلفههای نرمافزاری حاصل، قابلیت توسعه و نگهداری بالایی داشته باشند.
همچنین به دلیل استفاده از کلاسهای مجزا برای پیکربندی (مثل کلاس config.json)، امکان توسعه و تغییر متغیرهای استفادهشده در نرمافزار تلفن همراه به وجود آمده است. همچنین استفاده از فناوری نمایشگر وب، این مزیت را برای کاربران فراهم کرده است تا انعطافپذیری موجود در کارگزار شبکه اجتماعی را بهصورت مستقیم در نرمافزار تلفن همراه نیز مشاهده کنند.
پشتیبانی از چند زبان
این مهم نیز با توجه به استفاده از فناوری نمایشگر وب، بهسادگی فراهم شده است. به این صورت که قابلیت پشتیبانی از چندزبانی که در معماری کارگزار موتوشاب فراهم شده بود، در نرمافزار تلفن همراه نیز در اختیار کاربران قرارگرفته است. بنابراین تمامی مزایای پشتیبانی از چندزبانی در این معماری نیز صدق مینماید. از سوی دیگر به دلیل استفاده از ابزارهای استاندارد در تلفنهای همراه، پشتیبانی از چندزبانی از طریق امکانات زبان برنامهنویسی و ابزارهای موجود در دو سیستمعامل هدف وجود دارند، امکانپذیر است. با توجه به نیاز کاربران به پشتیبانی از چندزبانی، سیستمهای عامل اندروید و iOS پیشازاین اقدامات مناسبی جهت پشتیبانی از چندزبانی فراهم کردهاند؛ بهصورتی که چالش بزرگی در این راستا (از حیث قالب راستچین یا چپچین، پشتیبانی از کاراکترهای خطهای مختلف و تقویمهای شمسی و میلادی) وجود نخواهد داشت. تنها مسئله باقیمانده، همگامسازی زبان نرمافزار تلفن همراه با تنظیمات زبان حساب کاربر در شبکه اجتماعی است. این امر نیز از طریق مؤلفه مدیریت زبانها انجام میشود.
امنیت
بیشک امنیت یکی از اصلیترین خصیصههای کیفی برای نرمافزار شبکه اجتماعی محسوب میشود. بهصورت ویژه، موتوشاب باهدف افزایش امنیت و حریم خصوصی عموم کاربران در شبکههای اجتماعی توسعه یافته و لذا امنیت در آن اهمیتی به مراتب بیشتر پیدا کرده است.
یکی از مهمترین و تأثیرگذارترین تصمیمات معمارانهای که در زمان معماری نرمافزار تلفن همراه موتوشاب اخذ شده است، استفاده از نمایشگر وب است. این تصمیم از حیث امنیت نیز تأثیر داشته و منجر به این نکته شده است که تمهیدات امنیتی که پیشتر در کارگزار موتوشاب اندیشیده شده بود، در نرمافزار تلفن همراه نیز دیده شود. نقاط قوت امنیتی کارگزار موتوشاب را میتوان بهصورت خلاصه بهصورت زیر نام برد:
نکته حائز اهمیت دیگری که در خصوص این نرمافزار وجود دارد، استفاده از ابزار استاندارد خود سیستمعامل است. برای نمایشگر وب و مدیر کوکی که از مؤلفههای تأثیرگذار در امنیت نرمافزار هستند، از ابزارهای موجود در کتابخانههای سیستمعامل تلفن همراه استفادهشده است. این امر موجب میشود تا حفرههای امنیتی که به دلیل اشتباهات برنامهنویسان و عدم طراحی دقیق ایجاد میشوند، به حداقل رسیده و سطح امنیتی محصول نرمافزاری افزایش یابد. همچنین پشتیبانی قوی از سیستمهای عامل و کتابخانههای آنها، موجب رفع هرچه سریعتر حفرههای امنیتی خواهد شد که ممکن است در آینده شناسایی شوند.
با توجه به سازوکار مدیریت دسترسیها در سیستمهای عامل تلفن همراه، بروز مجموعه وسیعی از ناهنجاریهای امنیتی که به دلیل دسترسی غیرمجاز نرمافزارها صورت میپذیرد، منتفی خواهد بود. بااینحال، نرمافزارهای تلفن همراه باید در انتخاب دسترسیهای موردنیاز خود دقت کافی داشته باشند تا به دلیل درخواست دسترسیهای بیشازحد، امکان بروز حملات و یا مشکلات امنیتی را افزایش ندهند. از این حیث نیز نرمافزار موتوشاب بهینهسازی شده و مجموعه کمینهای از دسترسیها را از کاربر دریافت خواهد کرد. منظور از دسترسی کمینه، سطحی از دسترسی است که با هر میزان کمتری از آن، امکان ارائه خدمات مقدور نباشد.
در پایان این بخش باید به مسئله مهم پروتکل ارتباطی با کارگزار اشاره کرد. با توجه به آنکه نرمافزار موتوشاب برای برقراری ارتباط وب خود با کارگزار، قابلیت استفاده از پروتکل امن و استاندارد https را دارد، مخاطرات ناشی از افشای اطلاعات در حین ارسال درخواستها و پاسخهای وب کاهش مییابد. همچنین برای استفاده از این پروتکل نیز از ابزارهای استانداردهای موجود در کتابخانههای سیستمعامل استفادهشده است تا احتمال وجود حفرههای امنیتی در آنها کاهش یابد.
کارایی
در نرمافزاری مثل شبکه اجتماعی که هر کاربر ممکن است در روز انبوهی از اطلاعات را مشاهده کرده و ساعتها از آن استفاده نماید، کارایی نقشی بهمراتب مهمتر از شرایط عادی خواهد داشت. لذا در مرحله معماری این نرمافزار لازم است تا تصمیمات معمارانه برای برآوردن نیاز به کارایی اخذ شود. در خصوص نرمافزار موتوشاب میتوان به چند راهکار اصلی برای تحقق کارایی اشاره کرد که در ادامه برای هریک از آنها توضیحی ارائه شده است.
استفاده از منابع سیستم بهصورت مدیریتشده و کنترلشده، اصلیترین عامل در افزایش کارایی نرمافزارهای تلفن همراه محسوب میشود. با توجه به سختافزارهای کوچکتر و بهتبع آن، ضعیفتر تلفن همراه نسبت به رایانههای رومیزی و کارگزارها، اهمیت استفاده کمینه و بهینه از منابع افزایش مییابد. در معماری موتوشاب از حداقل مؤلفههای لازم استفادهشده است. بهصورت ویژه، استفاده از نمایشگر وب یکی از تصمیمات تأثیرگذار در افزایش کارایی نرمافزار است. چراکه نمایش صفحات وب بهجای تولید واسطهای کاربری گرافیکی تلفن همراه موجب صرفهجویی در منابع سیستم شده است. همچنین نمایشگرهای وب پیشفرض توسط خود سیستمهای عامل پیادهسازی شده و در توسعه آنها، مسائل مربوط با کارایی بهخوبی رعایت شده است؛ بهویژه در حوزه مدیریت نمایش عناصر گرافیکی.
استفاده از حافظه نهان بهمنظور بارگذاری سریعتر فایلهای جانبی و محتوای چندرسانهای صفحات شبکه اجتماعی و عدم نیاز به دریافت مجدد آنها از کارگزار، یکی از اقدامات مؤثر در افزایش کارایی نرمافزار تلفن همراه است. بخش بسیار زیادی از حجم صفحات در یک شبکه اجتماعی را فایلهای CSS، JS و نظایر آن یا محتوای چندرسانهای نظیر تصاویر و ویدئوها تشکیل میدهند که هریک از آنها را میتوان پس از یکبار دریافت، در حافظه نهان نرمافزار ذخیره کرد و در ادامه، از دریافت مجدد آن پرهیز نمود. بهاینترتیب یکی از مهمترین گلوگاهها کارایی، یعنی دسترسی به اینترنت، رفع خواهد شد.
در پایان، نکتهای که در کارایی نرمافزارهای تلفن همراه اهمیت فراوان دارد، ابعاد کوچک و سبک نرمافزار است. یک نرمافزار با استفاده بیرویه از کتابخانههای جانبی و افزودن منابع غیرضروری، میتواند تبدیل به نمونه حجیم و سنگینی شده و سختافزار را در زمان بارگذاری، اجرا و مدیریت اطلاعات خود با مشکل مواجه نماید. در مقابل، نرمافزار موتوشاب با رعایت اصل «کوچک نگهداشتن کد پروژه» توسعه یافته و در زمان طراحی آن، به این موضوع توجه شده است که کتابخانههای جانبی و منابع نرمافزاری و گرافیکی غیرضروری به آن وارد نشوند. به همین سبب نرمافزاری کارا و چابک حاصل خواهد شد.
مقیاسپذیری
منظور از مقیاسپذیری در حوزه خصیصههای کیفی نرمافزاری، قابلیت گسترش استفادهکنندگان نرمافزار به مقیاسهای بالاتر، بدون تحمیل هزینههای عمده به نرمافزار و عدم عملکرد صحیح آن است. در خصوص موتوشاب، قابلیت پشتیبانی از کاربران بیشتر، بارزترین مصداق مقیاسپذیری محسوب شده و بیش از آنکه مرتبط با نرمافزار تلفن همراه باشد، به کارگزار مربوط است.
برای دستیابی به مقیاسپذیری بالاتر، در نسخه پیشین معماری کارگزار مجموعهای از راهکارها مورد بررسی قرارگرفته و پیادهسازی شده است. زیرساخت تحویل داده، معماری ارباب-برده در پایگاه داده، قابلیت راهاندازی همزمان مجموعهای از کارگزارهای وب و توزیعکنندههای بار همگی جزء راهکارهای تحقق مقیاسپذیری در سمت کارگزار موتوشاب هستند که در معماری و طراحی آن لحاظ شدهاند.
همچنین در سمت نرمافزار تلفن همراه نیز نکاتی نظیر حجم دادههای در تبادل و پروتکل ارتباطی با کارگزار میتواند در مقیاسپذیری آن مؤثر باشد که در این خصوص نیز، استفاده از پروتکلهای ارتباطی سبک (نظیر JSON در مقایسه با دیگر پروتکلهای رایج وب نظیر XML) در هنگام ارتباط با مؤلفه سرویس وب و همچنین استفاده از حافظه نهان برای پرهیز از بارگیری چندباره فایلهای جانبی صفحات و محتوای چندرسانهای، همگی راهکارهایی برای کاهش سربار محاسباتی و ارتباطی هر کاربر برای کارگزار و درنتیجه، افزایش مقیاسپذیری کل سامانه محسوب میشوند.
کاربرپسندی
تلفنهای همراه هوشمند بیشک پرطرفدارترین محصول رایانهای حال حاضر هستند و به همین جهت، بخش مهمی از نظرات و سلایق آنها در حوزه کاربرپسندی نرمافزارها، از تجربیات کار با تلفنهای همراه هوشمند و نرمافزارهای موجود برای آنها نشئتگرفته است. بنابراین نرمافزاری که برای تلفنهای همراه عرضه شود، در صورت عدم برخورداری از واسط کاربری آشنا و منطبق باسلیقه کاربران، محبوبیت چندانی کسب نخواهد کرد. به همین سبب نرمافزار موتوشاب نیز باید با تجربیات و سلایق کاربران تلفن همراه منطبق و سازگار باشد.
در راستای تولید نرمافزاری کاربرپسند برای سیستمهای عامل اندروید و iOS، نیاز است تا از اصول و استانداردهای طراحی واسط کاربری در هریک از آنها پیروی کرده و همچنین از عناصر گرافیکی و ابزارهای موجود در کتابخانههای درونی آنها استفاده کرد. موتوشاب نیز با همین رویکرد توسعهیافته و در زمان معماری و طراحی آن، این نیازمندی بهصورت دقیق دیده شده است. استفاده از عناصر پیشفرض گرافیکی و همچنین پیروی از اصول طراحی واسط کاربری اندروید و iOS بهصورت دو پروژه مجزا اما هماهنگ، سبب خواهد شد تا جامعه کاربران هریک از این دو سیستمعامل، در حین استفاده از موتوشاب، با عناصر گرافیکی آشنا و موردپسند خود مواجه شده، تجربه مشابهی نسبت به آنچه تاکنون در حین کار با نرمافزارهای تلفن همراه خود کسب کردهاند، داشته و درنهایت، احساس رضایت بیشتری از نحوه کار با نرمافزار داشته باشند.
قابلیت حمل
قابلیت حمل در نرمافزار به مفهوم امکان عملیاتیسازی آن بر روی بسترهای گوناگون و وابستگی پایین آن به زیرساخت و محیط اجرا است. نرمافزار تلفن همراه موتوشاب به دلیل استفاده از فناوری نمایشگر وب و نمایش صفحات وب شبکه اجتماعی، میزان وابستگی خود به زیرساخت سیستمعامل را به حداقل رسانده است. به همین جهت این امکان برای توسعهدهندگان نرمافزار موتوشاب فراهم شده است تا با استفاده هرچه کمتر از کتابخانههای جانبی و ابزارهای موجود در سیستمعامل، گستره نسخههای سازگار و دستگاههای پشتیبانیشده را وسیعتر نمایند.
نرمافزار تلفن همراه موتوشاب امکان پشتیبانی از اکثر قریب بهاتفاق نسخههای موجود اندروید و iOS، در میان دستگاههای رایج در میان کاربران را دارد. به همین سبب، تعداد کاربرانی که به دلیل استفاده از دستگاههای قدیمی و بهتبع آن، نسخههای قدیمی سیستمعامل، امکان استفاده از این نرمافزار را نداشته باشند، به حداقل رسیده است.
نسخه اندروید نرمافزار موتوشاب با تمامی دستگاههای اندروید که از سطح واسط API ۱۶ و بالاتر برخوردار باشند سازگار خواهد بود که این تعداد، معادل 97 درصد دستگاههای حال حاضر مجهز به اندروید است. همچنین نسخه iOS این نرمافزار نیز با تمامی دستگاههایی که از سیستمعامل iOS نسخه 9.x و بالاتر پشتیبانی نمایند، سازگار خواهد بود.
نظرات