Автореферат
за темою: «Розробка методик побудування програмного забезпечення для мобільних платформ»
1. Вступ
З бурхливим розвитком глобальної мережі Internet і мереж GSM(у світі й в особливостi на території країн СНД)з'явилися тi тенденцiї, що змусили розроблювачів апаратних засобів змістити свою увагу у поле мобільних пристроїв. Якщо для цього раніше використався просто мобільний телефонний апарат, то тепер постала необхідність сполучення в такому пристрої функціонала й телефону й портативного комп'ютера. Потужностей звичайних мобільних апаратів не вистачало, а переносні портативні обчислювальні апарати з використанням модулів для роботи з GSM були громіздкими й незручними для кінцевого користувача. Також виникла необхідність використати мережі не тільки GSM, але й Wi-fi й WiMax. У такий спосіб у промисловості виділився окремий тип пристроїв, що одержав назву TabletPC. Родоначальником і лідером у виробництві подібних пристроїв є фірма Nokia. Також у якомусь ступені подібні пристрої роблять й інші компанії зі світовими іменами: HTC, Apple, Benq й інш.
У даній магістерській роботі буде розглянута , у плані конкретних випробувань отриманих результатів, саме продукція фірми Nokia. А конкретно, модель Nokia n810 Tablet PC. Хоча на момент написання даної роботи вже заявлено про випуск у швидкому майбутньому пристрою Nokia Tablet PC 9-го покоління. Докладний огляд існуючих платформ буде виконаний нижче, в основній частині.
Тому що даний вид апаратних засобів тільки починає завойовувати ринок, те програмного забезпечення, написаного для нього дуже мало, практично відсутній. Щоб прискорити процес розробки нових додатків і допомогти в переносі й адаптації існуючого програмного забезпечення необхідна методика, що позначить всі особливості й відповість на питання, що виникають перед розроблювачем. На даний момент не існує подібної методології. Метою даної роботи є саме розробка названої методики.
2. Цілі і завдання роботи
У даній роботі планується розгляд й огляд існуючих мобільних платформ, що випускають різними виробниками. Далі будуть розглянуті принципи, по яких повинен будуватися процес розробки програмного забезпечення для мобільних платформ. І одне, найбільш важливе, буде розглянутий більш детально - аспект безпеки. Будуть розглянуті загальні теоретичні принципи розробки, що базуються на принципах объектно-ориентированной розробці, а також деякі конкретні реалізації в застосуваннях для побудови шифрованих бездротових мереж по протоколі Wi-fi. Також буде розглянутий фреймворк Qt4 - набір графічних бібліотек від фірми Trolltech, нині офіційно підтримуваний і приналежний Nokia Corporation для побудови графічних додатків і наведений приклад написання найпростішого додатка.
3. Передбачувана наукова новизна та практична цінність результатів роботи
Наукова новизна буде складатися в створенні методології створення проблемно орієнтованого програмного забезпечення - програмного забезпечення для цільової мобільної платформи. Дана методика буде висвітлювати особливості розходження розробки програмного забезпечення для стаціонарних ПК і мобільних, а також дозволяти ті труднощі, які виникають через специфіку питання.
Практична цінність полягає в тому, що керуючись даним зводом правил й отриманих результатів можна буде швидко й ефективно створювати, налагоджувати й впроваджувати програмні комплекси для виконання на кінцевому мобільному пристрої.
Апробація роботи
З доповіддю по даній тематиці робив доповідь на а V міжнародної студентської науково-технічної
конференції «Комп'ютерний моніторинг й інформаційні
4. Огляд існуючих розробок і досліджень за темою
4.1 Локальний огляд
- http://eixin.livejournal.com/ «Разработка для мобильных устройств». Огляд характерних рис платформ (Windows Mobile и Symbian). Приклади коду.
- http://twitter.com/pashka_r «Django на Google App Engine». Плюси, мінуси, підводні камені. Використання django trunk замість 0.96, установленої по-умовчанню. На прикладі RSS and twitter трекера за торрент-трекерами trackit4me.com .
4.2 Нацiональний огляд
- http://twitter.com/podgorniy «Микроформаты». Навіщо потрібні, як працюють, практичне застосування.
4.3 Свiтовий огляд
-
http://arstechnica.com/open-source/news/2009/05/canonical-developers-aim-to-make-android-apps-run-on-ubuntu.ars
Налагодження додатків для мобільної ОС Android від Goolge на Ubuntu OS. - http://research.nokia.com/research/mobile3D
Приклад розробки ПО для мобільних пристроїв на прикладі кодеков для відео
5. Основний зміст роботи
В останні роки одержує широке поширенні бездротової спосіб доступу до глобальної мережі Internet за допомогою wifi, 3G, gprs(edge) і інших технологій. Відповідно на ринку з'являються спеціально пристосовані пристрої, що дають можливість простого й «прозорого» доступу до мереж, і ,що найбільш важливе, що є компактними й мобільними. Остання риса надає користувачам більшу мобільність - наприклад, у дорозі, протягом перерви можна почитати останні новини або довідатися поточний курс валют на фондових ринках.
До таких пристроїв можна віднести три базових класи пристроїв:
- КПК (кишенькові ПК) - тут на ринку домінують «наладонники» від таких фірм, як Asus, HP, HPC, Sharp(Zaurus). У перших трьох предустановлена ОС від компанії Microosft ® WinCE ®. Sharp використає ОС, засновану на ядрі ОС Linux
- Мобільні tablet phones («таблетки»). Це мобільні телефони, постачені відповідною функціональністю. До світових лідерів по виробництву вищевказаних пристроїв можна віднести компанії Nokia
- Macintosh (iPhones), HPC Останнім часом широке поширення одержали немає буки (netbooks) - відгалуження від laptop pc's. Звичайно, немає бук має монітор діагоналлю 7 - 10', ЖД на базі флеш накопичувачів, wifi+ethernet порти. CD/DVD-RW відсутній через непотрібність. До немає буків ставляться Asus eeePC (701, 901,1000), MSI Wind, модельний ряд Acer' ов. На цих моделях можна зустріти два види ОС - Microsoft ® Windows ® XP й GNU/Linux.
Із цих трьох категорій для більше детального розгляду була обрана друга, т.к. дані пристрої функціонують не тільки як засобу для підключення до мережі, але і як повноцінний мобільний телефон. Коротко розглянемо більше детальніше ряд продукції, зрівняємо їх по наступних основних критеріях:
- 1. Функціональність.
- 2. Операційна система.
- 3. Ціна.
У першій категорії пристрою приблизно мають однакові властивості. Всі вони володіють GPR модулем - убудованим( у випадку HPC, iPhone) або що підключають як зовнішній модем (Nokia n8xx series). Iphone й HPC володіють touch-screen'ом, що дає можливість користувачеві не користуватися стилусом, а просто використати свої кінцівки для обігу із пристроєм.
Nokia phone такий функцинальсностью поки не володіє. Операційна система(ОС) на HPC Touch - Windows Mobile 2007. Це портированная на мобільну платформу ОС сімейства Windows, що володіє тими ж недоліками, що і її «старші» брати. Основна - слабка захищеність від шкідливих вірусних програм через непродуману в цьому плані архітектурі й процедурі безпечної взаємодії з користувачем. Також у дійсності набір прикладних програм дуже вбогий, і часом досить складно знайти необхідний додаток.
Macintosh iPhone містить у собі ОС сімейства Macintosh, побудовану на базі ядра Unix *bsd, що володіє стабільністю й високим ступенем захищеності. Всі позитивні сторони відпадають через закриту ліцензію. (Споконвічне ядро ОС BSD поширюється під open source ліцензією, але дозволяє надалі закривати продукт, при додаванні в нього своїх розробок, чим координально відрізняється від ліцензії, під якою поширюється GNU/Linux - GPL(v2, v3).
І, нарешті, Nokia n8xx series. Споконвічно, Nokia, всі свої продукти, коммуникаторы комплектувала своєї власної ОС, що зовсім недавно стала OpenSource. Але, саме Nokia tablets n8xx series працюють на ядрі GNU/Linux. Це дає широкі можливості по переносі програмного забезпечення на даний смартфон із платформ x86, x86_64. Це й стане подальшою темою, розглянутої в моїй роботі. Для написання графічних додатків, як під Microsoft Windows, Macintosh, Linux можна використати виклики API для побудови окремих графічних елементів, потім утворю з них кінцевий продукт. Але це трудомістко, іноді доводитися робити одну й тугіше роботу, тому з'явилися т.зв. графічні фреймворки - набір бібліотек, що полегшують написання графічних додатків, які використають свої «функції-обв'язки» для системного API. Існує безліч різних фреймворков. Для мов C - це GTK+, WxWidgets; для C++ - Qt. т.к. компанія Nokia недавно придбала компанію Trolltech ( розроблювача QT4 Framework), те саме цей фреймворк і використається на її коммуникаторах. Під Qt( а точніше Qt v4 - 4-ю версію програмного продукту).
Під Qt4 написана безліч додатків для настільних ПК, і завдання коштує не в написанні нових, а адаптації й переносу «старих» на нову платформу. Із чим чудово справляється Qt v4. Для мобільних платформ випущена спеціальна версія Qt - Qt embedded (Qt для убудованих платформ). Розглянемо наступні переваги Qt 4 embedded:
- 1. Швидке створення розширеного користувальницького інтерфейсу з можливістю його модифікувати в подальшої, не докладаючи більших зусиль.
- 2. Прискорення процесу розробки, використаю інтуїтивно зрозумілі API.
- 3. Вибір тільки необхідних компонентів для продукту, використовуючи модульность бібліотек.
- 4. Простий процес переносу ПО з однієї платформи на іншу - досить тільки перекомпілювати продукт.
- 5. Оптимізація продуктивності, що досягається за рахунок убудованих засобів фреймворка й швидких тестів.
Розглянемо раніше описану можливість тестування додатків і програмних засобів, для знаходження схованих помилок і збільшення швидкості. Тест створюється й перебуває в тій же директорії, де перебувають вихідні тексти тестируемой програми або модуля. Приміром, створимо в тій же директорії,де розташовані вихідні тексти для helloqt директорії tests/sys_demo. Там же створимо файл із вихідним кодом для тестування - sys_demo.js Далі будемо приводити частини листингов з поясненнями їхньої роботи. Розглянемо листинг.
testcase = { testFunction1: function() { print("Hello, World!\n"); } }
Любою тест починається із ключового слова testcase, за яким треба список тих функцій, якими буде вироблятися тестування. У даному прикладі ми використаємо лише одну функцію, що поки не містить помилок, і друкує на екрані «Hello, World». Запустивши тест на виконання, одержимо наступну інформацію.
Використовуючи дану методологію можна проводити тестування створеного програмного забезпечення й перевіряти ступінь його захищеності й ефективності.
Розглянута платформа, що одержала останнім часом має повну функціональність у плані підтримки шифрованих мереж, побудованих на основі WEP, WAP/WAP2. Для того, щоб організувати подібну мережу, можна скористатися двома способами. Можна використати засоби ОС, який вона управляється - Maemo OS. Дана ОС повністю реалізує GUI, відомий також за назвою GNOME. Системна утиліта Networking Manager дозволяє в режимі майстра установки мережі створити бездротову мережу із заданим рівнем шифрування або підключитися вже до існуючої мережі.
Для створення мережі із програмного оточення (при розробці відповідні ПО) можна скористатися API функціями з бібліотеки osso-wlan.[4] Підключивши заголовний файл wpa.h, можна одержати доступ до всіх необхідних функцій. Таким, як - set_wpa2_encryption(), handle_wps_ie() та інші. У такий спосіб можна повністю реалізувати функціональне з'єднання по протоколі wap/wap2, wep, забезпечивши тим самим безпека переданих даних.
Також у процесі розробці необхідно враховувати аспект безпеки. Для цього бажано використати объектно-ориентированный підхід у процесі розробці, відходячи від застарілого процедурного стилю, виділяючи кілька етапів у розробці:
- Аналізу.
- Проектування.
- Реалізації.
Даний підхід забезпечує можливість установлювати необхідний ступінь захисту проекту й проводити його контроль у процесі розробки.
6. Висновки
Як виводи можна відзначити, що при успішному виводі вищеописаних методик, буде отримана загальна методологія, керуючись якої буде написане тестовий додаток, що потім також буде оцінено в плані надійності й безпеки, а також перевірено на працездатність за допомогою існуючих тестових засобів використовуваного фреймворка.
7. Лiтература
- 1. http://europe.nokia.com/A4579471 Використання ОС Linux на платформі nokia n810, загальний опис.
- 2. http://guug.org/nit/nitdroid/ Операційна система - «NITdroidAndroid operating system» для Nokia Internet Tablets (NITs).
- 3. http://wiki.evolvis.org/jalimo/index.php/Maemo Maemo – Jilimo.
- 4. http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ Стаття Э. Реймонда про тенденції, загальні правила, зауваження, що виникають при розробці програмного забезпечення.
- 5. http://maemo.org/intro/white_paper.html Maemo «біла книга».
- 6. http://www.freedesktop.org/wiki/Software/sbox2/Maemo Maemo у стандартах freedestop.
- 7. http://www.scratchbox.org/ Набір утиліт для кросу-компіляції Scratchbox.
- 8. http://europe.nokia.com/find-products/devices/nokia-n810/specifications Технічний опис і специфікація пристрою Nokia n810.
- 9. http://europe.nokia.com/A4579471 Використання ОС Linux на платформі nokia n810. Загальний опис.
- 10. http://tabletschool.blogspot.com/2008/01/contents-page.html Школа розроблювачів Internet Tablets.
Важливе зауваження
При написанні цього автореферату магістерська робота ще не завершена. Остаточне завершення: 1 грудня 2009 р. Повний текст роботи та матеріали за темою можуть бути отримані у автора або його керівника після зазначеної дати.