Алматы 2015 Almaty



Pdf көрінісі
бет31/130
Дата12.03.2017
өлшемі19,96 Mb.
#9035
1   ...   27   28   29   30   31   32   33   34   ...   130

 

 


223 

 

 



Рисунок 2 -Распространённость версий Android согласно данных Google 

 

Исходя из представленных выше данных, а также учитывая требования AndroidAPI15 – 22, были 



сформированы  следующие  требования  к  аппаратному  обеспечению  для  решения  задачи 

синхронизации баз данных: 

-  операционная система: Android 4.x и новее; 

-  процессор: 1-ядерный с частотой 1 ГГц и более; 

-  память: от 512 МБ ОЗУ, от 2 ГБ встроенной памяти; 

-  сеть: 3G и LTE; 

-  беспроводная связь: Wi-Fi 802.11 b/g/n, Bluetooth. 

Согласно  предъявленных  технических  требований  были  подобраны  смартфоны  для 

тестирования 

алгоритмов 

синхронизации: SamsungGalaxyStar,HTCOneX, HTCDesire 316, 

SonyXperiaZ1, SamsungGalaxy 5mini, HTCDesire 816. 



Сравнение алгоритмов синхронизации 

Обобщённый алгоритм будет состоять из 4 этапов и выглядеть следующим образом. 

A. Подключить класс обработчик SQLiteAndroid базы данных; 

B. Подключить текущее Activityк удаленной базе данных; 

C. Чтение удаленной базы данных с последующей записью в SQLiteAndroidбазу данных; 

D. Отключение установленных связей. 

Реализации  алгоритмов  представлены  на  объектно-ориентированном  языке  программирования 

Java.При  попытке  адаптации  разработанных  решений,  ориентированных  на Desktop,определена 

важная  технологическая  особенность  мобильной  разработки:классы  описываемые  в  процессе 

разработкидолжны быть Activityрасширенными или совместимыми с AndroidAPI. 



DBHelper.java класс обработчик SQLiteAndroid базы данных. 

Класс 


обработчик 

на 


рисунке 3, применяемый 

для 


работы 

с 

локальной 



SQLiteAndroidбазойданных, состоит из: 

- publicDBHelper(Contextcontext){super(context, nameOfDB, null, 1);}–конструктор; 

1.  publicvoidonCreate(SQLiteDatabase) {…}–методвызываемыйприсозданиибазыданных; 

2.  publicvoidonUpgrade(SQLiteDatabase, int , int ) {…}–

методобновленияструктурыбазыданных; 

3.  publicvoidinsertRow(…){…}–метод добавления записей в базу данных; 

4.  publicvoidreadRowInDB(…){…}–метод чтения записей из базы данных. 


224 

 

 



Рисунок 3 - Описание DBHelper.javaкласса для связи с SQLite Android 

 

Создание объекта класса для подключения к базе данных производится следующим образом:  



dbHelper = newDBHelper(this); 

Данная  реализация  подхода  взаимодействия  с  локальной SQLiteбазой  данных  согласно 

официальной  технической  документации,  представленной  на  сайте [4], рекомендуемой  открытым 

источником компании Googleявляется оптимальным Таким образом подключается класс обработчик 

SQLite Android базы данных отмеченный этапом А обобщенного алгоритма. 

Подключение текущего Activity.javaприложения MainActivity.java к удаленной базе данных. 

Данномэтап можно разбить на несколько шагов: 

- проверка доступа к интернету; 

- подключение к базе данных; 

- чтение ответа базы данных; 

- обработка ответа. 

Одной  из  важных  задач  в  процессе  синхронизаций  баз  данных  является  корректная  проверка 

доступа  к  сети  Интернет  и  обращение  к  удаленной  базе  данных.Зачастую  для  проверки  Интернета 

рядовой пользователь смартфона ориентируется на значки индикаторы панели состояния смартфона. 

Программно данную проверку можно реализовать с помощью функции: 

-  public Boolean checknetwork(){ 

-  android.net.wifi.WifiManager m = (WifiManager) getSystemService(WIFI_SERVICE); 

-  android.net.wifi.SupplicantState s = m.getConnectionInfo().getSupplicantState(); 

-  NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(s); 

-  if( state != NetworkInfo.DetailedState.CONNECTED ) return false; else return true;} 

Однако  для  ситуации,  когда WiFiроутер  не  имеет  подключения  к  Интернету,  при  попытке 

подключения  приложение  будет  вынуждено  аварийно  завершиться,  что  значит  данный  подход  не 

удобен для решаемой задачи. 

Существует вариант проверки подключения к Интернету посредством запроса к Web-хостингу. 

Данный  вариант  реализуется  через  описание  дополнительного  класса,  характеризующегося 

выполнением в фоновом режиме задачи иметодом передачи данных GET, следует отметить в случае 

ошибки  или  отсутствии  подключения  к  Интернету  приложение  не  будет  завершатся  аварийным 

способом.  Объектом  данного  класса  является  единичное  подключение  к Web-узлу,  на  котором 

размещена  база  данных,  а  также  по  запросу  приложения  вернет  ответ  на  запрос  методом GET. 

Основным положительным аспектом данного подхода является простота эксплуатации, однако среди 

отрицательных  аспектов  можно  отметить  то,  что,  не  смотря  на  фоновое  выполнение  службы, 

локальная  база  данных  должна  быть  заблокирована  данной  задачей,  что  при  загрузке  больших 

объемов  данных  приводит  к  зрительному,  а  в  последствии  программному  зависанию  приложения. 

Также  минусом  данного  подхода  можно  назвать  задержку  на  получение  ответа  иограниченность 

объема  передаваемых  данных,  т.к.  метод GETпередает  данные  отмечая  их  в url, вследствие  чего 

отсутствует  целостность  данных.Для  чтения  данных  методом GETиспользуется  функция, 

результатом которой является сформированный JSONArrayобъект: 

public JSONArray GetAllCustomers(){ 


225 

-  DefaultHttpClient httpClient = new DefaultHttpClient(); 

-  HttpGet httpGet = new HttpGet(url); 

-  HttpResponse httpResponse = httpClient.execute(httpGet); 

-  httpEntity = httpResponse.getEntity(); 

-  entityResponse = EntityUtils.toString(httpEntity); 

-  jsonArray = new JSONArray(entityResponse); 

-  returnjsonArray;} 

Используем  подход  реализации  подключения  к  хостингу  посредством  распараллеливания 

выполнения  задач  методом Thread. Данный  способ  решает  вопрос  относительно  зависания 

приложения,  однако  доступ  на  чтение  к  базе  данных  остается  заблокированным,  а  вопрос  малого 

объема  передачи  данных  методом GETстановится  более  актуальным.Также  стоит  отметить,  что 

данный метод рекомендуется применять на процессорах,поддерживающих параллельное выполнение 

задач  и  несмотря  на  то  что  данное  решение  не  приводит  к  аварийному  завершению  приложения, 

однако оставляет вопрос о задержке в работе приложения для получения ответа от удаленной базы 

данных[6]. 

publicbooleancheckNetworkStatus (){existInternet = 0; 

t2 = new Thread(new Runnable() {  

public void run() {checkConnectivity((“http://nameOfWebHost”); }}); 

t3 = new Thread(new Runnable() {public void run() { if (t2.isAlive()) { t2.interrupt();if 

(t2.interrupted()){ t2.stop(); }} }); 

t2.start(); t3.start(); 

if (existInternet!=1)t3.join(); 

if (existInternet==1)return true; 

else return false;} 

Внесем следующие изменения: 

-  метод  передачи  данных GET заменим  на  передачу  данных  методом POST. Данный  метод 

характеризуется  передачей  данных  в  теле  запроса,  способностью  к  передаче  больших  объемов, 

передачей файлов, идемпотентностью [6,7]; 

-  интегрировать  выполнение  задачи AsyncHttpClient и AscyncTask вместотехнологий 

распараллеливания  выполнения  задач.AsyncHttpClientделает  возможным  корректное  и  простое 

использование  потока  пользовательского  интерфейса  для  выполнения  фоновых  операции  и 

публиковать результаты, взаимодействовать с методами других классов в фоновом режиме. Решения, 

построенные на AsyncTask не являются реализацией Threading технологий. Что позволит выполнять 

задачу  потребляя  минимальное  количество  аппаратных  ресурсов.  Согласно  официальной 

документации  библиотеки AsyncHttpClient и AsyncTasks рекомендуется  использовать  отдельные 

Asyncметоды  для  коротких  операций,  что  позволит  максимально  возможное  время  локальной  базе 

данных быть доступной для операций чтения и записи;[8] 

-  производить  блокировку  локальной SQLiteбазы  данныхне  на  весь  период  взаимодействия  с 

удаленной MySQLбазой  данных,  а  строго  после  получения  и  обработки  ответа  от  удаленной  базы 

данных.  Данный  подход  стал  доступен  совокупи  с  введением  метода POSTдля  взаимодействия  с 

MySQL.  Суть  в  том,  что,  получая  информацию  из  удаленной  базы  данных,  приложение  передает 

загруженные данные в выделенную временную память, обрабатывает их, а затем вносит изменения в 

локальную  базу  данных.  Таким  образом  исключены  варианты  зависания  приложения,  в  случае 

ошибки  доступа  к  сети  Интернет  и  т.п.  будет  инициироваться  завершение AsyncTaskи 

AsyncHttpClient, не блокируя локальную базу данных, тем самым не мешая пользователю работать с 

приложением во время процесса загрузки [8]. 

Учитывая  внесенные  изменения  составлен  следующий  алгоритм  (на  рисунке 4) решения  и 

выполнения задачи, а также листинг приложения. 

 

 



 

 

 



 

 

 



226 

 

 



Рисунок 4 – Оптимальный алгоритм решаемой задачи 

 

Опишем реализованный программный код, представленный на рисунке 4: 



syncSQLiteMySQLDB()-  функция  подключения  к  удаленной  базе  данных  посредством Web-

страницы  нахостинге.  В  случае  успешного  соединения  загружается  ответ  от  Веб-хостинга,  далее 

данный  ответ  передается  в  функцию updateSQLite(Stringresponse). Если  ответ  не  поступил  или 

вернулся  с  ошибкой,  вывод  соответствующего  сообщения  об  ошибке.  Ниже  представлен  листинг 

разработанного метода проверки подключения к интернету: 

publicvoidsyncSQLiteMySQLDB() { 

AsyncHttpClientclient = newAsyncHttpClient(); 

RequestParams params = new RequestParams(); 

client.post(“http://www.nameOfWebHost”, params, new AsyncHttpResponseHandler() { 

public void onSuccess(String response) {//приуспешномподключении 

updateSQLite(response); // вызов функции обработки базы данных 

public void onFailure(int statusCode, Throwable error, String content) { 

if (statusCode == 404) {//в случае если http клиент вернул ошибку 404 вывод “ошибка 404”} 

elseif (statusCode == 500) {//в случае если http клиент вернул ошибку 500 вывод “ошибка 500” 

} else {//иначе вывод сообщения об ошибке подключения к сети Интернет 

}}});} 


После  того  как  выше  указанная  функция  подключилась,  загруженные  данные  обрабатываются 

функцией updateSQLite(Stringresponse). На  данном  этапе  полученные  данные  переводятся  в 

JSONArray,  тем  самым  структурируя  данные  и  упрощая  дальнейшие  обращения  к  ним.  В  случае 

обработки полной строки удаленной базы данных формируется единичный JSONObject и передается 

через метод insertRow() объекта описанного выше класса DBHelper.java. 

public void updateSQLite(String response){ 

JSONArray arr = new JSONArray(response); 

System.out.println(arr.length()); 

if(arr.length() != 0){  

for (int i = 0; i < arr.length(); i++) { 

JSONObject obj = (JSONObject) arr.get(i); 

queryValues = new HashMap(); 

queryValues.put(nameOfField, obj.get().toString()); 

controller.insertRow(queryValues);} 

RestartThisActivity();}} 

Таким образом реализуется запись с минимальным сроком прерывания  в работе приложения  с 

локальной SQLiteAndroidбазой  данных,  гарантируется  целостность  базы  данных  и  записываемых  в 

нее  данных.  Также  стоит  отметить,  что  приведенный  оптимальный  алгоритм  функционирует  при 

слабых и не устойчивых подключениях к сети Интернет. 

 

ЛИТЕРАТУРА 



1.  Kuatbayeva A., Security issues inside Cloud Computing / [бумажноеиздание]  Сборниктрудов  1

st

 



International scientific conference “Science progress in European countries: new concepts and modern sulutions” 

Volume 1. 28 March 2013, Stuttgart, Germany; 

2.  Final Version of NIST Cloud Computing Definition Published / From NISTTech Beat:October 25, 2011 / 

[электронныйресурс] http://www.nist.gov/itl/csd/cloud-102511.cfm 



227 

3.  Послание  Президента  народу  Республики  Казахстан  «Нурлы  Жол» / [электронныйресурс] 

http://www.akorda.kz/ 

4.  3G-интернет в Казахстане: кто быстрее? /[электронныйресурс]http://profit.kz/articles/1805/3G-internet-v-

Kazahstane-kto-bistree/ 

5.  Распространенность 

версий 

платформ / [электронный 



ресурс] 

https://developer.android.com/about/dashboards/index.html 

6.  Методы передачи данных GET и POST / [электронный ресурс] http://dayte2.com/get-post-methods 

7.  GETилиPOST / [электронныйресурс] http://xiper.net/learn/also-need-to-know/get-or-post 

8.  AsyncTask and AsyncHttpClient preview / 

[электронныйресурс]http://developer.android.com/reference/android/os/AsyncTask.html 

 

REFERENCE 



1.   Kuatbayeva A., Security issues inside Cloud Computing / [paper edition] Сборник трудов 1st International 

scientific conference “Science progress in European countries: new concepts and modern sulutions” Volume 1. 28 

March 2013, Stuttgart, Germany; 

2.  Final Version of NIST Cloud Computing Definition Published / From NIST Tech Beat: October 25, 2011 / 

[webedition] http://www.nist.gov/itl/csd/cloud-102511.cfm 

3.  Poslanie Prezidenta narodu Respubliki Kazahstan «Nurlyi Zhol» / [webedition] http://www.akorda.kz/ 

4. 3G - internet v Kazahstane: kto byistree? / [webedition] http://profit.kz/articles/1805/3G-internet-v-

Kazahstane-kto-bistree/ 

5. Rasprostranennost versiy platform / [webedition] https://developer.android.com/ about/dashboards/index.html 

6.  Metodyi peredachi dannyih GETиPOST / [webedition] http://dayte2.com/get-post-methods 

7.   GET ili POST / [web edition] http: // xiper.net/learn/also-need-to-know/get-or-post 

8. 


AsyncTask and AsyncHttpClient preview / [webedition] http://developer.android. 

com/reference/android/os/AsyncTask.html 

 

Косынбай Е.Б., Куатбаева А.А., Тусупова Б.Б., Мымырова А.К. 



Android үшін қашықтағы MySQL жəне SQLite базасын деректер қадамдастыру 

Түйіндеме. Бұл мақалада смартфондар Android үшін SQLite деректер базасына MySQL синхрондау үшін 

түрлі тəсілдерді ерекшеліктерін талдау нəтижелерін сипаттайды. Оңтайлы алгоритм үндестіру жəне аппараттық 

жəне бағдарламалық қамтамасыз ету үшін ұсынылатын ең төменгі талаптарды сипаттайды. 

Түйін  сөздер:  Android, MySQLжəнеSQLiteдерекқор  үндестіру, JSONArrayжəне JSONObject өзара 

əрекеттесу, GETжəнеPOSTдеректерді тасымалдау əдістері. 

 

Kossynbay E.B., Kuatbayeva A.A., Tussupova B.B., Mamyrova A.K.



 

Synchronize the remote database MySQL database and SQLite for Android 

Summary. This article describes analysis results on the specifics of the various approaches to sync MySQL to 

SQLite databases for smartphones Android. Describes an optimal algorithm synchronization and recommended 

minimum requirements for hardware and software.This article describes results of the analysis of various algorithms on 

the specifics of the synchronization MySQL to SQLite databases for smartphones Android. An optimal algorithm 

synchronization and describes the recommended minimum requirements for hardware and software. 

Key words: Android, sync MySQL to SQLite database, interaction-using JSONArray and JSONObject, data 

transmission methods GET and POST. 

 

 

УДК 669.331.8.179(043)   



 

Кошимбаев Ш.К. , Иманбекова У.Н. докторант, Баяндина Г.С. 

Казахский национальный технический университет имени К.И.Сатпаева 

г. Алматы, Республика Казахстан 

shamil.koshimbaiev@mail.ru, uli.08@mail.ru, gul_bayan@mail.ru 

 

ПОСТАНОВКА ЗАДАЧИ ПАРАМЕТРИЧЕСКОЙ ИДЕНТИФИКАЦИИ И 

МОДЕЛИРОВАНИЕ ПРОЦЕССА РУДНОТЕРМИЧЕСКОЙ ЭЛЕКТРОПЛАВКИ   

МЕДНЫХ КОНЦЕНТРАТОВ 

 

Аннотация.  В  данной  статье  описывается  математическая  постановка  задачи  параметрической 

идентификации и имитационного моделирования при плавлении и шихтовке медных концентратов. Проводится 

анализ основных статистических показателей. Задача математического описания объекта управления состоит в 

оценке оптимальных в некотором смысле структуры и параметров математической модели объекта на основе 

априорной  информации  и  результатов  экспериментальных  наблюдений  на  объекте.  Анализ  особенностей 

электроплавки  медных  концентратов  как  объекта  исследования  и  управления  показал,  что  построение 


228 

математического описания такого процесса является сложной проблемой и на первом этапе связано с выбором 

наиболее рационального метода идентификации

Ключевые  слова:  медные  концентраты,  шихта,  параметрическая  идентификация,  имитацонное 

моделирование. 

 

В  последнее  десятилетие  потребности  практики  обусловили  возникновение  и  широкое 



использование  параметрической  идентификации  и  метода  имитационного  моделирования  при 

исследовании  и  проектировании  многокомпонентных  систем,  характеризующихся  сложным 

взаимодействием элементов между собой и внешней средой,  в различных областях науки и техники: 

систем  массового  обслуживания,  производственно-технологических,  экономических  систем, 

человеко-машинных систем [1]. 

Для  исследования  любой  системы  математическими  методами  (особенно  с  помощью  ПК) 

должна  быть  в  первую  очередь  построена  ее  математическая  модель.  Математическая  модель 

является  системой  уравнений  математического  описания,  отражающей  сущность  протекающих  в 

объекте  явлений  (физических,  химических,  информационных),  для  которых  определен  алгоритм 

моделирования.  

Согласно  этому  определению,  математическая  модель  рассматривается  в  совокупности  трех  ее 

аспектов-смыслового, аналитического и вычислительного. 

Смысловая  сторона  модели-формализованное  описание  представляет  собой  описание  физико-

химической природы моделируемого объекта. 

Сформируем  основные  факторы,  определяющие  выбор  метода  идентификации  процесса 

электроплавки: 

-  наличие  достаточного  объема  априорных  сведений  о  физико-химических  закономерностях 

процесса электроплавки, позволяющих оценить структуру математической модели процесса; 

-  возможность  исследования  процесса  в  широком  диапазоне  изменения  переменных  в  ходе 

процесса [2]. 

В  этом  случае,  наиболее  рациональным  является  построение  математического  описания 

процесса  в  классе  аналитико-статистических  моделей.  При  этом  взаимосвязи  переменных 

описываются  уравнениями  материальных  и  теплового  балансов  с  учетом  стехиометрии, 

гидродинамики  и  кинетики  процесса.  В  силу  выше  отмеченного  методика  выбора  структуры 

математической модели сводится к следующему: 

-  составление  содержательного  описания  технологического  процесса  на  основе  физических  и 

физико-химических  закономерностей,  анализ  априорной  информации  и  выбор  основных 

элементарных актов; 

-  принятие  ряда  допущений  по  идеализации  характера  протекания  отдельных  элементарных 

явлений; 

-  на  основе  содержательного  описания,  расчленение  процесса  на  элементарные  акты  и 

составление для каждого из них соответствующего уравнения по тем или иным физическим, физико-

химическим или другим законам, отражающим характер протекающего явления; 

-  увязка  полученных  математических  описаний  отдельных  актов  с  учетом  взаимосвязанности 

явлений процесса. 

Выше указанный подход по определению структуры математической модели использован ниже 

при определении структуры математической модели электроплавки медных концентратов. 

Выбор  структуры  математической  модели,  основанный  на  анализе  физических,  физико-

химических  и  других  закономерностей  процессов  является  скорее  эвристическим  подходом,  чем 

строго  формализованной  процедурой.  Поэтому  в  каждом  конкретном  случае  приходится  решать 

комплекс задач по составлению содержательного описания процесса с выделением основных актов, 

по  формированию  идеализирующих  гипотез  и  выбору  адекватных  уравнений  для  описания  эле-

ментарных явлений, т.е. выбор структуры математической модели того или иного металлургического 

процесса, в том числе и электроплавки, является самостоятельной задачей.    

Применяются  при  решении  задач  управления  сложными  нелинейными  динамическими 

объектами, относительно которых имеется некоторый объем априорных знаний о физико-химических 

закономерностях  процессов,  протекающих  в  объекте,  позволяющий  оценить  структуру  взаимосвязи 

переменных, но недостаточный для оценки параметров модели [3]. 

Структура  аналитико-статистических  моделей  технологических  процессов  определяется  на 

основе  изучения  гидродинамических  закономерностей  взаимодействия  материальных  потоков  в 

агрегате, условий и характера протекания процессов массо- и теплообмена, кинетики физических и 


229 

химических превращений веществ и реализуется системой уравнений материального (по веществам и 

продуктам  плавки)  и  теплового  балансов  технологического  процесса  с  дифференциальными  или 

конечными связями между переменными.  

Рассмотрим  математическую  постановку  задачи  параметрической  идентификации  объекта 

управления. 

На  рис.1.  представлены:  моделируемый  объект,  блок  математической  модели  (БМ), 

вычислительное устройство (ВУ), обозначено: 

 

)

,...,



(

1

k



E

E

E

 - вектор входных неконтролируемых переменных объектов; 



 

T

X

X

X

)

,...,



(

1



- вектор входных переменных объекта, измеряемых с помехой    

 

                                               



)

,...,


(

1

m





                                                                       (1) 

 

Y

 - выходная переменная объекта, измеряемая с помехой 



M



Y

 - выходная переменная модели; 



C

 - идентифицируемый параметр; 

F

F

F

m

,

,



0

 соответственно операторы объекта, модели и критерия качества идентификации. 

 

 



Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   130




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет