Advertisement
Guest User

Untitled

a guest
Aug 21st, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.36 KB | None | 0 0
  1. четверг, 13 августа 2015 г.
  2. [18:10:07] Лев Колесников: Здравствуйте. Мы ищем веб-программиста, для регулярной разработки и усовершенствования админ панелей под наши задачи.
  3. [19:53:22] maslennikovyv: Добрый вечер, делаю на zf2 и twitter bootstrap вот такие вещи http://test.homegateway.ru:8001/ и многое другое
  4. [19:55:46] maslennikovyv: Это сделано за час, в качестве тестового задания.
  5. [22:08:09] Лев Колесников: А как обстоят дела с нативным PHP?
  6. [22:10:37] maslennikovyv: Нормально, вроде.
  7. [22:11:39] maslennikovyv: Zf2 это не CMS, знания языка не заменяет
  8. пятница, 14 августа 2015 г.
  9. [14:06:31] Лев Колесников: Здравствуйте
  10. [14:06:56] Лев Колесников: Скажите, у вас есть опыт работы с передачей бинарных данных?
  11. [14:07:10] Лев Колесников: Или понимание, как их можно передавать через http сервер
  12. [14:27:40] maslennikovyv: Можно через websocket
  13. [14:28:51] maslennikovyv: Можно через post в BASE64
  14. [16:50:15] Лев Колесников:
  15. Клиент отправляет запросы на апи бинарным потоком, в зашифрованном виде (aes-256-ecb) на адрес http://адрес-сервера/api.
  16.  
  17. Параметры, принимаемые сервером:
  18. — appid (уникальный ID машины (приложения)
  19. — time (timestamp времени запроса)
  20. — type (тип запроса: GETJOB - регулярный запрос на получение задач, отправляется примерно раз в 5 минут, соответственно нагрузка должна быть минимизированной.
  21. ACCEPTEDJOB - запрос, подтверждающий принятие задания к исполнению
  22. DONEJOB - запрос, подтверждающий успешное выполнение задачи
  23. — customField (поле для передачи дополнительной информации от клиента серверу, набор переменных в виде JSON)
  24.  
  25. Пример запроса:
  26. {
  27. "appid": "531574732",
  28. "time": "1435093393 ",
  29. "type": "DONEJOB ",
  30. "customField": {
  31. "Dat1": "123",
  32. "Dat2": "Test"
  33. }
  34. }
  35.  
  36.  
  37. Всё это шифруется aes-256-ecb с ключом, хранящимся в приложении и отправляется на адрес API.
  38.  
  39. Сервер так же возвращает зашифрованый ответ.
  40.  
  41. — result (Всегда DONE, после принятия запроса, для проверки полученого ответа.)
  42. — tasks (NOTASKS если нет новых заданий, либо HAVEJOB, если есть задача)
  43. — command (Команда клиенту, для загрузки файлов - DOWNLOADFILE, для удаления по- SELFDESTRUCTION, а так же другие команды)
  44. — additional (Дополнительные поля к команде, например массив fileUrl для списа URL файлов)
  45.  
  46. Варианты ответов сервера:
  47.  
  48. Ответ с командой загрузки файлов
  49. {
  50. "result": "DONE",
  51. "tasks": "HAVEJOB",
  52. "command": "DOWNLOADFILE",
  53. "additional": {
  54. "fileUrl": [
  55. "http://server.com/test1.tl",
  56. "http://server.com/test2.tl"
  57. ]
  58. }
  59. }
  60.  
  61.  
  62. Ответ без задач
  63. {
  64. "result": "DONE",
  65. "tasks": "NOTASKS"
  66. }
  67.  
  68. Требования к интерфейсу админ панели:
  69.  
  70. 1) Подсчет статистики приложений обращающихся к админ панели.
  71. Статистика должна разделяться на: Он-лайн\ офф-лайн, всего, новые (за последние сутки). А так же отображать время сбора статистических данных. Например в админ панели должна присутствовать удобная возможность посмотреть статистику за сегодня, неделю, месяц, год. Или посмотреть конкретное время Например: 12.08.2015 с 13:00 по 23:00. По мимо этого должна присутствовать статистика по уникам, которые получили и выполнили задания. И уникам, которые еще не получили, или не выполнили задания. Любые статистические данные в админ панели должны отображаться, как в цифрах (в табличном виде), так и в виде наглядных графиков.
  72.  
  73. 2) Возможность определения ip уников, их геолокаций (средствами геоип, или аналогом)
  74. Приема ID машин и другой информации, которая будет выдаваться в обращении самих машин.
  75.  
  76. 3) Возможность создания групп уников. Путем прямой выборки конкретных уников из списка, либо по категориям:
  77.  
  78. А) Список ID
  79. В) Маски IP
  80. С) Страны (используется геоип, или аналоги)
  81.  
  82. Все это выбирается из соответсвующего списка, либо задается в специиальной форме.
  83.  
  84. Данные группы будут нужны, для выдачи заданий только для этих групп, а так же для отображения статистики только для этих групп.
  85.  
  86. 4) Возможность создания задач с настройками:
  87.  
  88. А) Список ID
  89. В) Маски IP
  90. С) Страны (используется геоип, или аналоги)
  91.  
  92.  
  93. Данный пункт частично дублирует по функционалу предыдущий, но применяется только для заданий.
  94.  
  95. Задания, которые должна уметь выдавать админ панель:
  96.  
  97. A) Загрузка определенных файлов (может быть несколько файлов в одном задании)
  98. B) Самоудаление
  99. С) Должна присутствовать возможность добавлять в будущем другие команды
  100.  
  101. Все задания выдаются только 1 раз. После подтверждения уником успешного выполнения, повторно задания не выдаются.
  102.  
  103. 4) Аутентификация по логину паролю. Возможность добавлять несколько пользователей.
  104. [16:50:27] Лев Колесников: Справитесь с такой задачей?
  105. [17:07:02] maslennikovyv: Ничего сложного не вижу, какой бюджет?
  106. [17:25:25] Лев Колесников: 14 т.р
  107. [17:26:15] maslennikovyv: Хорошо, вечером посмотрю внимательно, и отвечу
  108. [17:27:06] Лев Колесников: Ок. Тогда ждем от вас сообщения.
  109. [21:20:37] maslennikovyv: Задача ясна, бюджет устраивает. Завтра могу приступить.
  110. [22:00:04] Лев Колесников: Ок. Когда будет первый результат, который вы сможете продемонстрировать? Например api
  111. [22:07:39] maslennikovyv: к вечеру воскресения (по Москве)
  112. [22:11:11] maslennikovyv: или раньше.
  113. суббота, 15 августа 2015 г.
  114. [3:04:58] Лев Колесников: Хорошо, договорились.
  115. [3:05:17] Лев Колесников: Желательно хотя бы по апи закончить по быстрее.
  116. [10:20:53] maslennikovyv: Есть вопрос, ключ шифрования один для всех клиентов, или для каждого свой. Полагаю, что второй вариант, в таком случаи необходимо передавать id приложения в незашифрованном виде
  117. [21:35:13] Лев Колесников: Здравствуйте
  118. [21:35:18] Лев Колесников: Как проходит разработка?
  119. [21:52:31] maslennikovyv: Добрый вечер, нормально, собственно api отднельно показать невозможно, поэтому ждите результатов завтра
  120. воскресенье, 16 августа 2015 г.
  121. [15:57:07] Лев Колесников: Здравствуйте
  122. [15:57:14] Лев Колесников: Появились какие-либо результаты?
  123. [15:57:22] Лев Колесников: Апи кстати можно и отдельно показать было...
  124. [16:14:14] maslennikovyv: На данный момент есть интерфейс http://api.homegateway.ru:8003 admin admin
  125. [16:16:56] maslennikovyv: Насчет секретных ключей вопрос
  126. [16:18:09] maslennikovyv: Есть вопрос, ключ шифрования один для всех клиентов, или для каждого свой. Полагаю, что второй вариант, в таком случаи необходимо передавать id приложения в незашифрованном виде
  127. [16:19:29] maslennikovyv: еще по исполнению заданий, задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
  128. [16:20:07] maslennikovyv: в часности для selfdestruction
  129. [16:56:14] Лев Колесников: Проверять шифрование тут: http://aes.online-domain-tools.com
  130.  
  131. Образцы шифрования:
  132.  
  133. Для ответа: http://aes.online-domain-tools.com/link/2c7736g7MfRYnVq3p/
  134. Для запроса: http://aes.online-domain-tools.com/link/2c767fgvZdcbJt5Ns/
  135. [16:56:49] Лев Колесников: Алгоритмы и ключи берите прямо из образцов
  136. [17:00:10] Лев Колесников: > [Sunday, August 16, 2015 1:13:58 PM maslennikovyv] На данный момент есть интерфейс http://api.homegateway.ru:8003 admin admin
  137.  
  138. Ну пока я наблюдаю только bootstrap интерфейс, который делается 10 минут от силы.
  139. [17:35:26] maslennikovyv: Ну ну 10 минут.
  140. [17:36:00] maslennikovyv: Не ответили на вопрос
  141. [17:41:25] maslennikovyv: ключ шифрования один для всех клиентов, или для каждого свой?
  142. [17:41:42] maslennikovyv: задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
  143. [16:19:51] maslennikovyv: в часности для selfdestruction
  144. [19:22:44] Лев Колесников: > [Sunday, August 16, 2015 2:41:08 PM maslennikovyv] ключ шифрования один для всех клиентов, или для каждого свой?
  145.  
  146. Я же вам скинул пример. По нему видно, что один на всех клиентов
  147. [19:23:10] Лев Колесников: > [Sunday, August 16, 2015 2:41:26 PM maslennikovyv] задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
  148.  
  149.  
  150. По разу каждым, это ОЧЕНЬ важно!
  151. [19:23:17] Лев Колесников: Каждый клиент уникален
  152. [19:43:19] maslennikovyv: По примерам, ничего не видно кроме алгаритма шифрования
  153. [19:44:51] maslennikovyv: если секретный ключ общий тот кто его знает может прочитать все сообщения не только своего клиента
  154. [19:45:09] maslennikovyv: и потделать любое сообщение
  155. [19:45:52] maslennikovyv: все равно что один ключ на весь подъезд
  156. понедельник, 17 августа 2015 г.
  157. [1:01:53] Лев Колесников: > [Sunday, August 16, 2015 4:44:34 PM maslennikovyv] если секретный ключ общий тот кто его знает может прочитать все сообщения не только своего клиента
  158.  
  159. Это не существенно.
  160. [20:12:43] Лев Колесников: Здравствуйте
  161. [20:12:46] Лев Колесников: Как продвигается работа?
  162. [22:45:48] Лев Колесников: ...
  163. [23:26:40] maslennikovyv: сегодня не получилусь. завтра весь день свободен
  164. вторник, 18 августа 2015 г.
  165. [15:34:17] Лев Колесников: Здравствуйте
  166. [15:34:20] Лев Колесников: Как успехи?
  167. [15:34:28] Лев Колесников: Нам стоит ждать каких-то подвижек вообще?
  168. [15:55:49] maslennikovyv: Стоит естественно.
  169. [15:57:27] maslennikovyv: Есть предложение дабавить taskid в ответы с командой и в запросы ACCEPTEDJOB и DONEJOB
  170. [16:01:52] maslennikovyv: Вот у вас сомнения: не напрасно ли я жду. Представьте у меня: Не бесплатно ли я 3-й день работаю.
  171. [16:38:16] maslennikovyv: http://api.homegateway.ru:8003/api
  172. Это сервис, принимает постом параметр message
  173. [16:39:22] maslennikovyv: зашифрованный AES ECB с ключем a0567ff645372e8c9d12830d0cf27497
  174. [16:39:48] maslennikovyv: и перекодированым в hex
  175. [16:42:57] maslennikovyv: например запросу
  176. {
  177. "appid": "531574734",
  178. "time": "1435093393 ",
  179. "type": "NEEDJOB",
  180. "customField": {
  181. "Dat1": "123",
  182. "Dat2": "Test"
  183. }
  184. }
  185. соответствует message=
  186. 691454d99b96a259d4fcd37a242625b3844cac8b651a9f769de912ac295206309cf8ca3dbe32db6954f829acfda61087672516fdf7cc4681406eeb70ed9932d7d03fcaff9ada9a59ab35648178d9f296297b6ab473fdb0b2e13ce6b1876fc958ee0e7d7a734bd1bcefef16965d10a29d3f76786c088014a30baa82b407d751122440bceb42836968b07ce5cfa2b63959a4534a4eca980ad8b0b53bc3f009f457
  187. [16:46:43] Лев Колесников: > [Tuesday, August 18, 2015 1:01:27 PM maslennikovyv] Вот у вас сомнения: не напрасно ли я жду. Представьте у меня: Не бесплатно ли я 3-й день работаю.
  188.  
  189. Мы оплачиваем выполненную работу всегда. Во-первых мы не по приколу заказываем разработку, а потому что она нам действительно нужна. Во-вторых мы намерены дозаказывать позже отдельные доработки. А вот безответственных исполнителей в вебе, на сегодняшний день, больше чем бы где нибыло. Я не знаю с чем это связано, но в прикладном программировании такого нет.
  190. [16:47:08] Лев Колесников: > [Tuesday, August 18, 2015 1:37:53 PM maslennikovyv] Это сервис, принимает постом параметр message
  191.  
  192. А как http связан с бинарным потоком?
  193. [16:49:25] maslennikovyv: Три последние разработки мне не оплатили как вы переносите "безответственных исполнителей в вебе" на мой счет, так и я с вами не знаком. )
  194. [16:50:44] maslennikovyv: Что касется бинарного потака - зачем если планируется получать задачи раз в 5 минут?
  195. [16:57:35] Лев Колесников: А что за проблема с бинарным потоком?
  196. [16:59:11] maslennikovyv: С ним нет проблем, просто по http его надо кодировать
  197. [17:01:13] maslennikovyv: если использовать отдельный socket сервер можно открывать сесии и пересылать бинарные потоки, но зачем?
  198. [17:12:33] maslennikovyv: Вы опредеделяйтесь, тестируйте, если что то в корне не устраевает - говорите, но прежде чем продолжать я хотел бы получить аванс, сами скажите сколько для вас приемлемо.
  199. [17:14:37] maslennikovyv: На данный момент апи работает, нет только групп и статистики с графиками
  200. [17:20:42] maslennikovyv: для тестирования рекомендую расширение для chrome https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop
  201. среда, 19 августа 2015 г.
  202. [9:38:13] maslennikovyv: Жду от вас ответа.
  203. [14:23:58] Лев Колесников: Здравствуйте. ТЗ начинается со слов: "Клиент отправляет запросы на апи бинарным потоком..." Про http POST нет ни одного слова.
  204. [17:29:10] maslennikovyv: Хорошо, бинарным так, бинарным. Хотя это уже не api
  205. [17:33:57] maslennikovyv: Вы тогда уточните что вам, нужно, но работу я продолжу только после аванса.
  206. [21:35:48] maslennikovyv: Секунду, ТЗ: Клиент отправляет запросы на апи бинарным потоком, в зашифрованном виде (aes-256-ecb) на адрес http://адрес-сервера/api.
  207. [21:36:04] maslennikovyv: на адрес http://адрес-сервера/api.
  208. ^^^^
  209. [21:36:37] maslennikovyv: HTTP
  210. [21:37:18] maslennikovyv: протокол указан
  211. [21:38:36] maslennikovyv: POST метод протокола HTTP а не формат данных
  212. пятница, 21 августа 2015 г.
  213. [8:44:22] maslennikovyv: Если проект вам больше не нужен, жду от вас компенсации, оцениваю готовность в 50%
  214. [13:04:32] Лев Колесников: Мы не оплачиваем выклянчивание средств за поделки, которые выполнялись не по ТЗ
  215. [13:04:56] Лев Колесников: Спасибо за то что потратили кучу нашего времени.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement