fast, user-‐friendly feedbacksystem for themobile

31
Fast, userfriendly Feedback System for the Mobile BachelorArbeit vorgelegt im Sommersemester 2010 Bachelor thesis submitted during summer semester 2010 an der Technischen Universität Graz at the Technical University Graz Institut für Informationssysteme und Computer Medien Institute for Information Systems and Computer Media Studiengang Telematik Study course Telematics Verfasser: Author: Mihail Milev Gutachter Evaluators: Erstgutachter: Dipl.Ing. Dr.techn. Martin Ebner 1st evaluator: Dipl.Ing. Dr.techn. Martin Ebner Graz, den 01.10.2010 Graz, 01.10.2010

Upload: martin

Post on 06-Apr-2015

785 views

Category:

Documents


1 download

DESCRIPTION

Bachelorthesis of Mihail Milev

TRANSCRIPT

Page 1: Fast, user-‐friendly FeedbackSystem for theMobile

Fast,  user-­‐friendly  Feedback  System  for  the  Mobile    

         Bachelor-­‐Arbeit  vorgelegt  im  Sommersemester  2010  Bachelor  thesis  submitted  during  summer  semester  2010  

an  der  Technischen  Universität  Graz  at  the  Technical  University  Graz  

Institut  für  Informationssysteme  und  Computer  Medien  Institute  for  Information  Systems  and  Computer  Media  

Studiengang  Telematik    Study  course  Telematics                Verfasser:  Author:  

Mihail  Milev          Gutachter    Evaluators:  

Erstgutachter:  Dipl.-­‐Ing.  Dr.techn.  Martin  Ebner  1st  evaluator:  Dipl.-­‐Ing.  Dr.techn.  Martin  Ebner        Graz,  den  01.10.2010  Graz,  01.10.2010  

Page 2: Fast, user-‐friendly FeedbackSystem for theMobile

Abstract  One   of   the   most   important   control   methods   for   different   systems  nowadays   is   feedback.   Feedback   is   the   answer   of   the   system   to   an  action,  defined   influence  and  even   to  an  earlier   result.   In   the   field  of  traditional   learning   such   response   can   be   the   behaviour   of   the  learners   at   lectures,   questions   placed   by   them   and   even   the   results  from   their   exams.   Such   feedback   is   very   important   especially   in   the  learning  field,  because  professors  can  build  a  full  image  for  the  future  development   of   the  materials   according   to   it.   Our   goal   is   to   develop  through   the  modern  computer  and  mobile   technologies  an  extension  to   these  methods   in   the  e-­‐Learning  and  m-­‐Learning   fields.  With  such  an   extension   users   can   easily   measure   in   real-­‐time   the   feeback   and  perform  changes  faster  than  in  the  traditional  learning  fields.  

Motivation  A   typical   situation,   from   the   traditional   learning   at   universities,   is   a   professor  standing   in   front   of  many   students   in   a   hall   room,   explaining   the   latest   trends  from  his  field  of  expertise.  Such  a  scenario  represents  a  one-­‐way  communication  between   the  participants   at   the   lecture.   In  order   to   turn   this   conversation   in   a  two-­‐way   communication,   the   lecturer   could   ask   the   public   a   question.   Asking  300  people  at  once  could  be  a  very  hard  and  chaotic  task,  which  often  looses  its  target,  when  20-­‐30  people  want  to  speak  at  once.  If  the  professor  has  a  feedback  system,  he  could  post  a  new  question  fast  and  give  the  question  identifier  to  the  learners.  Then   they  can  use   their  mobile  devices   to  answer   the  question   in   the  next   5   minutes   for   example.   From   the   results,   which   get   displayed  simultaneously,   the   lecturer  can  build  an   image   for  himself  about   the  students’  understanding  for  the  question  posted.  

Almost   every   learner   nowadays   has   an   internet   device   by   him-­‐/herself   on  lectures,  in  university  hall  rooms  and  at  home  during  daily  work.  These  devices  can  be  used   for   feedback  communication.  For   this   to  happen,  a  simple,  but  still  fully-­‐functional   environment   for   creation,   management   and   observation   of  feedback  must  be  developed.  Such  commercial  systems  are  already  available   in  the   IT-­‐world,   but   are   not   capable   for   work   in   the   m-­‐Learning   field.   Their  complexity,  big  variety  of  functionalities  and  their  design,  which  is  not  adjusted  to  small  mobile  screens,  makes  them  useless  for  work  on  mobile  phones,  mobile  internet  devices  and  netbooks.  Researches  show,  that  is  better  to  have  a  correct  running  software,  than  a  system  overfilled  with  unneeded  and  „buggy“  software  [36].  Observers  using  such  systems  need  a  simple  graphical  representation  of  the  current  feelings,  ideas,  motivations  and  thoughts  of  the  audience.    

Through   the   software,   which   should   be   developed,   we   want   to   address   these  problems.   Our   target   is   to   develop   the   most   simple   solution   for   feedback  obtaining.  The  systems  for  such  environment  are  already  present.  Today’s  touch  mobile   devices,  MIDs   and   smartphones   can   provide   the   user  with   a   computer  like,   fully-­‐functional   interaction.   That   is   why,   we   will   use   web-­‐based  technologies–  PHP,  MySQL  or  SQLite,  to  develop  this  response  environment.  As  a  future  development,   independant  applications   for  Android  and   iPhone  systems  can  be  developed.  These  should  allow  an  even   faster  and  easier  work  with   the  

Page 3: Fast, user-‐friendly FeedbackSystem for theMobile

system  and  should  provide  a  refined  experience  with  it.  For  other  mobile  devices  and  during  the  first  stage  of  the  software,  third-­‐party  web  browser  can  be  used  –  like  for  example  Opera  Mobile  and  Opera  Mini.  Because  we  will  base  the  system  on  web  technologies,  users  will  also  be  able   to  use   their  computer  browser   for  work.    

The  user  group,  which  will  create,  edit  and  remove  the  questions,  will  later  only  be   called   „Creators“.   They   could   be   anonymous   users,   or   also   registered   user,  which   should   login   with   their   own   username   and   password.   After   connecting  and  logging  to  the  system,  they  will  be  able  to  create  questions  and  define  time  periods   for   them  –  users  who  should  answer  the  questions  will  be  able   to  vote  only   in   this   time   period.   Moreover   creators   will   be   able   to   watch   the  development  of  the  votes  in  real-­‐time.  The  responders  will  not  need  login  data  –  the  system  will  be  completely  anonymous  for  them.  They  will  be  presented  with  one   simple,   styled  and  mobile-­‐oriented  webpage.  To  give   their   feedback   to   the  defined   question,   they   will   have   to   choose   one   of   the   possible   answers   and  submit  the  form.  

The  possible  disposition  of  such  system  is  not  only  limited  to  the  learning  field.  It  could  be  used   in   the  market,  pre-­‐voting  and  client  research  areas.  For  example  companies  will  also  be  able   to  use   the  system  to  check   the  satisfaction  of   their  employees.  

Existing  systems  A   new   system   development   is   not   reasonable,   when   another   system   already  exists,   which   can   fullfill   all   tasks   and   requirements.   Therefore   is   important,  before   starting   a   development,   to   take   a   look   at   existing   systems   as   well   as  literature.    

Characteristics  of  web-­‐based  software  

Because   of   the   hype   on   Web   2.0   technologies   in   the   last   years,   almost   all  developers   of   such   platforms   have   oriented   themselves   to   web   development.  There   are   almost   no   non-­‐web   hosted   systems   and   usually   such   are   only  supported  and  not  developed  anymore.  The  biggest  advantage  of  such  systems  is  their  independance  from  operating  system  [1].  Normally  they  work  in  their  own  sandbox   –   usually   this   is   the   web   server,   far   away   from   the   user   and   the  communication  is  established  only  via  the  web  browser.  Every  operating  system  nowadays  contains  integrated  web  browser.  Even  mobile  devices,  such  as  iPhone  and  Android  possess  fully  functional  browsers.  Although  in  theory  the  work  with  web-­‐based   feedback   systems   is   directly   possible   through   the  mobile   browser,  this  is  not  always  the  case.  The  design  of  these  systems  usually  supports  screens  bigger   than   800x600   pixels,   therefore   is   the   use   on   mobile   phones   nearly  impossible.   Nevertheless   the   size   is   not   the   only   problem.   Complicated  environments   usually   implement   various   JavaScript   and   CSS   codes,   which   are  either   not   integrated   into   the   mobile   browsers,   or   are   forbidden   to   use   [2].  Typical   web-­‐based   feedback   software   products   are:   Survey   Monkey,  QuestionPRO,  Survey  Gizmo,  2ask,  etc.  

Web-­‐development  languages  and  their  limitations  

Page 4: Fast, user-‐friendly FeedbackSystem for theMobile

The   web-­‐based   environments   are   developed   in   many   different   programming  languages   –   PHP,   ASP,   CGI,   etc.   This   way,   developer   companies   obtain   a   large  number   of   functions,   which   they   can   offer   to   their   clients.   Some   of   these  languages  are  based  on  proprietary,  commercial  and  restricted  technologies.  As  an   example   can   be   pointed   out   the   freeware   environment   for   ASP.NET  programming,  developed  by  Microsoft.  Products  written  in  ASP.NET  can  run  only  on   the  Windows  Server  2000  and  newer  operating  systems  [3],  which  cost  not  less  than  $699  [4].  This  way  the  variety  of  hardware  and  software   is  narrowed  significantly.  Missing  development  standards  is  another  source  for  problems,  if  a  software   is   developed   in   one   language   and   must   be   transferred   to   another  platform.  As  long  as  these  languages  do  not  use  the  same  functions,  architecture  and  methods  of  programming,   transfer   can   take  different  amounts  of   time  and  companies  must  carefully  consider  doing  a  migration.  

E-­‐mail  feedback  systems  

One  interesting  approach  in  the  feedback  systems,  it  can  be  evaluated  by  clients  and  users.  E-­‐mail  is  not  a  new  concept,  but  its  use  for  feedback  communication  is  worth   to  consider   [5].  Every  user  of   the  global  network  posseses  at   least  on  e-­‐mail  address,  which  makes  each  potential  user  reachable.  Modern  mobile  phones  have   integrated  mail   clients,   supporting   various   e-­‐mail   protocols   –   Push,   Pull,  POP3,   IMAP,   LDAP,   etc.   They   guarantee   a   fast   way   for   exchanging   feedback  information  between  the  users.  The  biggest  drawback  of  this  method  are  SPAM  filters.  Often  are  e-­‐mails,  which  get  sent  from  one  and  the  same  server  in  short  periods  of  time  and  to  a  big  mass  of  recipients,  marked  as  SPAM.  Such  messages  get  hidden  from  the  user  or  else  directly  deleted.  This  way,  the  communication  is  easily   broken.   In   this   field,   famous   systems   are:   Survey   ME,   Results   Mail,  eSurveys  PRO,  etc.  

Telephone-­‐based  feedback  systems  

According   to   existing   literature   it   can   be   pointed   out   only   one   result   for  telephone   feedback   system   –   Survey   Crafter   [6].   As   expected,   this   was   not   a  mobile   feedback   system,   like   our   target   development,   but   rather   the   so   called  „direct   approach“  method   –   the   clients   of   the   system   rent   international   phone  lines  and  call  directly  by   the  potential   target  groups.  Like   the  name  states,   this  brings  fast  results.  Because  of  the  direct  communication  between  the  company,  which  started  the  feedback  process,  its  consumers  can  directly  tell  their  opinion  on  the  stated  questions  and  can  even  place  questions  on  their  own.  This  method  has   two   big   drawbacks.   Because   of   the   rented   international   phone   lines,   such  method  costs  a  lot  of  money,  which  cannot  be  covered  by  smaller  companies.  The  second   drawback   is   the   need   of   trained   professionals   in   this   sphere,   who   can  carry   out   the   feedback   on   the   line.   The   direct   approach   to   the   target   group  demands  a  measured  approach,  big  confidence  and  calmness  during  the  talk  and  instantaneous  evaluation  of  the  results  [6].    

Logic  standards  in  existing  feedback  systems  

As   already   stated   above,   the   lack   of   development   standards   can   cause   serious  problems.  On  the  other  side,  a  lot  of  different  standards  have  been  developed  for  the  logic  of  feedback  systems.  Each  of  the  offered  feedback  systems  is  based  on  at  

Page 5: Fast, user-‐friendly FeedbackSystem for theMobile

least   one   of   the   standards   –   „performance   evaluation“,   „360   degree   review“,  „customer   satisfaction“,   „employee   feedback“,   etc.  Although   all   these   standards  where  theoretically  proved  and  got  many  times  tested  in  real-­‐time  situations,  are  many  of  them  in  possesion  from  private  institutions  or  were  developed  by  closed  partnerships.  Their  use  is  limited  by  defined  laws  and  their  free  usage  can  cause  different  legal  problems.  

Feedback  analysis  methods  

The  target  of  each  feedback  process  is  to  build  a  scenario  of  the  current  situation  based   on   a   defined,   empiric   value.   According   to   this   scenario   further  measurements   for   the   future   development   can   be   taken.   For   better   results   a  careful   and  detailed   evaluation  of   the   values   should  be  done.  This   leads   to   the  conclusion,  that  the  analysis  is  the  core  of  each  feedback  system  [7].  The  offered  solutions  possess  different  possibilities  –  automatic  analysis,  simple  analysis  and  even   analysis   by   specialists.   The   automatic   method   consists   of   computer  evaluation  of  the  obtained  resuls,  after  a  pre-­‐defined  mathematical  model  and  a  graphical   representation   of   the   analysis.   This   is   the   fastest   and   the   easiest  method  from  users’  point  of  view.  The  society  and  the  target  groups  change  very  fast   and   therefore   an   adaptation   of   the   mathematical   model   is   often   needed.  These  methods  need  trained  persons  are  needed  to  achieve  better  results.  There  are   also   different   methods.   The   most   known   of   them   is   the   poll   –   a   graphic  representation  of   the  results   in   form  of  columns.  The   inrepretation  and  further  analysis  of  the  data  is  done  by  humans.  

Importance  of  user  interface  

„Flexibility“  is  a  characteristic  of  almost  every  product  in  the  IT-­‐world  nowadays  [8].  Most  of  developing  companies  denote  the  big  variety  of  software  features  by  this   term.  Through   a   simple  wizard   interface,   the  user   chooses   step-­‐by-­‐step   in  which  way  he  wants   to  state  questions.  Although  this  attracts  a   lot  of  potential  clients,   the   research   shows,   that   too   many   features   often   means   errors,  problems,   misconception   and   loss   of   orientation   in   the   system.   The   user  satisfaction  rises,  when  the  system  has  less  features,  but  they  work  as  expected  by   the   user   [36].   This   is   explained   with   the   self-­‐understanding,   intuitive   and  clear   working   way   of   the   environment.   The   flexibility   can   also   determine,   in  which  price  class  a  software  falls.  Many  of  the  developers  offer  prices,  which  are  dependant  of  the  usage.  

As  we  stated  above,  such  systems  must  be  developed  target  oriented.  Of  course,  this   system  must   have   some   attraction   power.   An   elementary   looking   system  means  either  too  elementary  approach  to  the  problem,  or  underestimation  of  the  task.  Too  colourful  and   tacky   interfaces  on   the  other  hand  can  be  a  symbol   for  lack   of   concentration   and   not   full   solution   for   the   problem.   [37]   Most   of   the  companies  find  a  middle-­‐solution  to  these  tasks,  by  providing  different  versions  for  the  different  users,  or  offer  different  personalisation  methods  –  from  only  the  colors,   through   changing   the   positions   of   elements   on   the   page,   until   different  forms  for  feedback  screens.    

Interactivity   is   also   a   typical   feature   of   feedback   environments   [10].   The  powerful  computers  nowadays  allow  the  development  of  almost  real-­‐world-­‐like  

Page 6: Fast, user-‐friendly FeedbackSystem for theMobile

environments  –  look  and  feel  like  on  a  real  paper,  mouse  cursor  in  form  of  pencil  or  pen,   etc.  Users  do  not  expect  only  black   text  on  white  background,   they  are  looking   for   images,  animations,  sound  and  video.  The  question   is  –  do  we  need  such   user   interface?   Since   our   target   groups  will   use   their  mobile   devices,   the  interface   between   system   and   user   is   limited   to   specific   device   and   cannot   be  changed.  That  is  why,  such  features  can  be  omitted.  

Templates  approach  for  the  user  interface  

The  user  should  not  have  to  personalize  and  configure  everything  from  scratch.  That   is   why   many   developers   offer   pre-­‐defined   templates.   The   templates  configure  the  most  important  settings  of  the  system  or  define  the  user  interface  for  the  different  target  groups.  Such  templates  are  very  often  many  times  tested  in  real-­‐world  situations  and  have  proven  to  be   intuitive  and  easy   to  work  with  for  the   feedback  types  provided   in  the  system.  A  big  advantage  of   the  template  system   is   the  possibility   to   save  user  defined   configurations  as  new   templates.  These   possibilities   for   editing   and   managing   templates   are   important,   but  statistics  show,  that  users  buy  software  only  for  one  or  two  target  actions.  This  means,   that  most  of   this   functionalities  are  either  not  used,  or  are  configurated  only  after  the  initial  installation.  This  makes  them  obsolete  and  unneeded.  Also,  a  lot  of   the  mobile  browsers  do  not   support   such  graphical   functionalities   as   for  example  computer  browsers  –  most  of  the  configurations  cannot  be  executed  or  they  need  more  device  power.    

Real-­‐time  vs.  non-­‐real-­‐time  systems  

How  fast  a  system  can  obtain  and  interpret  data  is  of  critical  importance  for  its  usage   in   real-­‐life   conditions.   Real   time   systems  must   bring   a   correct   result   for  finite   count   of   inputs   to   the   user   in   predefined   time   window.   In   case   of   the  feedback   systems   the   developers   concentrate   themselves   on   the   graphical  representation   of   the   data   in   real   time.   By   the   simplest   analysis   of   the   input  values   this  means,   that   the   answer,  which   the  user   chooses,   gets   shown   to   the  creator   immediately   in   graphical   form   –   either   by   incrementing   a   value   or  resizing   a   chart   bar.   For  more   complex   interpretations   of   data,   results  may  be  refreshed  at  larger  intervals  –  3,  5  or  even  more  seconds.  

Software  localization  

The  internet  and  the  networked  computer  work  exist  already  since  two  decades.  The  market  gets  overfilled  with  software  products  every  day  and  companies  try  to  cover  larger  territories  of  clients.  It  is  important,  that  feedback  environments  are   able   to   work   in   different   localizations,   on   different   languages.   Since   the  beginning  of  so  called  Web  2.0  developers  often  offer  an  automatic  location  and  personalisation   of   the   region   data   [9].   These   configurations   set   localization,  language  and  keyboard.  Even   if   these   functionalities   are  unneeded,  users  must  pay  for  them,  because  they  are  integrated  in  the  core.  

System  security  

One   of   the   drawbacks   of   the   networked   computer   work   is   the   low   security  conditions   [11].  Although  companies   in   the  branche  of   computer   security  exist  

Page 7: Fast, user-‐friendly FeedbackSystem for theMobile

since  20  years,  there  are  still  ways  to  gain  access  to  important  user  and  company  information   from   remote   servers   –   from  brute   force   attacks,   through  denial   of  service   attack,   or   through   the   simple,   so   called   „spoofing“   of   the   connection  between  server  and  user.  Few   feedback  systems  use  own  security  mechanisms  or  relay  on  the  SSL  security  of  the  web  server.  Almost  90%  of  them  relay  still  on  the  hardware  server  itself  –  firewalls,  application  firewalls  and  security  services  and  appliances  [38].    

Conclusions  

Till   now   only   technical   aspects   of   today’s   systems   have   been   discussed.   Their  logical  layer  must  also  be  observed.  All  of  these  platforms  have  their  own  target  groups  –  workers,   clients,  users  of   specific   software   types.   It   is   true,   that   these  target  groups  can  be  synchronized  with  the  needs  of  the  companies,  but  none  of  the  researched  systems  offered  a  big  variety  of  potential  groups.  

As  a  conclusion  we  can  state,  that  none  of  the  systems  we  researched  fullfill  our  criterias   for   feedback   sytstem.   The   costs   are   the   main   reason   for   this.   The  commercial  environments  want  to  attract  their  clients  vie  the  most,  the  best  and  the   most   high-­‐qualitative   functionalities   –   extended   mathematical   models   for  user   input   interpretation,   personal   connection   between   developer   and   user,  personalized   configurations,   etc.   Often   are   all   these   options   unneeded   and   too  overwhealming,   that   the   system   looses   its   target.   There   were   no   options   to  remove   such   functionalities   and   buy   a   more   plain   system.   Only   one   of   the  proposed   systems   allowed   to   pay   so   much,   as   the   user   uses   it.   It   was   also  possible  to  pay  per  usage  day.  

The  simplicity  is  the  other  problem,  why  we  want  to  develop  a  new  system.  Most  of   the   offered   products   were   overfilled   with   functionalities,   which   our   target  group  –  mobile  users,  do  not  need.  Our  target  is  to  develop  the  system  as  cheap  as   possible   for   development   and   support,   and   to   integrate   only   these  functionalities  a  normal  mobile  user  would  like  to  see  and  use.  Still  our  system  must  fullfill  its  main  objective  –  display  the  feedback  from  the  users  in  the  most  simple   and   easy   to   understand   form,   without   the   need   of   additional   plugins  and/or  hardware  and  software  solutions.    

Test  case:  Creative  Research  Systems  

Typing   „complete   survey   software   package“   in   Google   brings   „The   Survey  System“  by  „Creative  Research  Systems“.  This  company  has  been  working  in  the  field  of   survey  and   feedback  systems  since  1982.  As  stated  on   their  page:   „The  Survey   System   is   the  most   complete   survey   software   package   available   for   all  types  of  questionnaires   and   research  projects   from  web,  phone,  PDA,  or  paper  questionnaires.“  [39].  They  offer  a  complete  solution  for  feedback,  which  can  be  used   not   only   on   personal   computers,   but   also   on  mobile   devices.   It   supports  different   types   of   surveys:   web-­‐based,   reports,   advanced   statistics,   voice  recording,  benchmarking,   etc.  Users   can  give   their   answers  via  mobile  devices.  Results   can   be   exported   to   different   file   formats   in   different   types   of  representation.  This  system  fullfills  exactly  the  tasks  described  in  this  document,  but   the   price   is   too   high   to   pay,   especially   for   learning   institutions   like  universities,   or   non-­‐profit   organisations.   Different   versions   vary   from   $49   till  

Page 8: Fast, user-‐friendly FeedbackSystem for theMobile

$1999  for  the  base  software.  If  the  users  want  more  functionalities,  they  should  pay  more  for  the  different  modules  [40].    

Target  groups  The   objective   of   this   project   is   to   develop   an   online,   mobile   feedback   system,  which   can   be   distinguished   by   its   simplicity,   portability   and   ease   of   use.  Therefore  the  first  obstacle  to  tackle  are  the  requirements  of  the  mobile  device.  Target   of   the   system   are   all   possible  mobile   devices   –   from  extended  portable  data   assistants   (PDAs),   through   smart   phones,   tablets   until   simple   mobile  phones  –  devices,  which  are  not  based  on   traditional  operating   system.  Mobile  devices   using   such   traditional   operating   systems,   can   rely   on   common   web-­‐development  practices  –   JavaScript  1.5,  CSS  2  even  HTML  5  and  CSS  version  3.  This   prerequisite   allows   the   developer   to   create   interactive,   rich-­‐multimedia  screens,  which  attract   the  user  and  allow  better   software  experience.  But   such  conditions  do  not  apply  to  simple  mobile  phones.  These  devices  do  not  possess  advanced  multimedia  hardware  and  are   incapable  of   interpreting  such  modern  tasks.  Listing  1  shows  the  types  of  devices  we  would  like  to  distinguish:  

• Mobile   phones   –  mobile   devices   in   possession   of   small   screens   –   up   to  320x240px,  keypad  only,  based  on  embedded  operating  system,  real  time  operating  systems  or   low-­‐level  systems.  Typical  devices  of   this   type  are:  Nokia  phones  (not  N  or  E  Series,  because  they  are  based  on  the  Symbian  OS  v3,  v4),  SonyEricsson  UIQ  based  telephones  (exception  here  is  the  SE  P1i),  older  Siemens,  Samsung,  LG  phones,  etc.  

• Smart   phones   –   mobile   devices   with   bigger   screens   –   3.2”   and   up,  allowing   the   use   of   a   full-­‐featured   virtual   keyboard,   able   to   play   rich  multimedia   content   such   as   videos,   music   in   common   formats.   The  browsers   on   such   phones   are   fully   capable   HTML4.1   (and   some   even  HTML5)  and  CSS2  browsers.  Typical  devices  are:  iPhone,  iPod,  all  Android  based  devices,  Windows  Mobile  based  devices,  Nokia  N  and  E  Series.  

• High-­‐end  devices  –  tablets,  small-­‐screen  notebooks.  These  devices  are  of  less   interest,   because   they   fall   in   category,   which   overlaps   with   some  modern   laptops   and   computers.   They   posses   big   screens   and   are  controlled   with   hand   movements   and   touches.   Since   such   systems   can  present  the  user  with  normal  web  pages,  our  system  will  skip  this  target  group.   There   are   already   many   systems   developed,   which   support  computers.   Typical   devices   are:   iPad,  WeTab,   all   other  Windows   7   and  Android  based  devices.  

The   conclusion   of   this   listing,   states   that   our   system   must   be   optimized   for  viewing   on   small   screens,  must   offer   an   user   interface,  which   needs   as   few   as  possible  writing  and  user  interaction  should  be  minimized  to  “point  and  select”  or  “tap  to  select”.  Visual  styles  should  be  minimized  to  none  and  no  automation  scripts  should  be  used  –  JavaScript  and  other  scripting  methods  must  be  avoided.  Such   conditions  will   limit   the   possibilities   of   the   smart   phones,   but  will   allow  fluent  work  on  older  and/or  smaller  mobile  devices.  As  a  further  development  of  this  system,  one  can  develop  a  detection  module  –  such  part  of  the  system  could  identify   the   device   type   via   presented   screen   size,   speed   of   loading,   small  

Page 9: Fast, user-‐friendly FeedbackSystem for theMobile

JavaScript  conditional  checks,  etc.,  and  redirect  the  user  to  the  appropriate  part  of   the  website.  The   following  table  displays  an  up-­‐to-­‐date  comparison  between  the  differences  in  the  mobile  web  and  the  desktop  web.    

 Table  1:  Comparison  between  mobile  and  desktop  web  [12]  

As   we   can   see   from   table   1,   the   mobile   Internet   is   a   chaotic   system   of   many  standards,  which   allows   a   lot   of   freedom   in   the  mobile   browser   development.  Such  a   freedom  may  be  good   for   the  browser  development   competition,  but   is  disastrous   for   web   developers.   Web-­‐based   systems   must   be   tested   on   each  platform  and  on  each  browser   to  assure  stability  and  correct  work.  With  more  than   3   billion   devices   produced   every   5   years,   the   lack   of   common   and   stable  standards   makes   development   challenging.   Therefore   a   very   important   point  must  be  set  before  the  development  of  the  feedback  system  starts  –  the  system  will   be   developed   after   the   W3C   XHTML   standard   and   every   browser,   which  supports   it   will   be   able   to   run   this   software.   No   support   will   be   offered   for  browsers,  which  do  not  support  XHTML.  Legacy  standards,  such  as  WAP,  will  not  be   kept   in  mind   during   development.   No   JavaScript,   AJAX   or   proprietary   APIs  will  be  used,  so  that  the  system  will  not  become  browser  dependant.    

The   above   conditions   and   observations   are   valid   for   the   users,   who   use   our  system  to  give  a  feedback  to  a  stated  problem.  Other  target  groups  of  this  project  are  users  who  put  questions  or  problems  into  the  system.  Since  they  do  not  need  

Page 10: Fast, user-‐friendly FeedbackSystem for theMobile

to  be  mobile  in  such  matter,  they  could  use  their  desktop  computers  or  laptops  to   update   the   database.   Therefore   there   are   no   special   requirements   for   the  system  in  this  part.  It  is  enough  to  assume,  that  most  modern  browsers  support  JavaScript  1.5,  AJAX  and  CSS  2.  Such  browsers  are:  

• Microsoft  Internet  Explorer  6+  

• Mozilla  Firefox  2+  

• Google  Chrome  1+  

• Safari  3+  

• Opera  8+  

• Every  other  browser  based  on  the  above  stated  ones.  

This   covers   99.99%   of   all   computer   browsers   in   use   today.  What   these   users  expect   to   receive   in   this   feedback   environment   is   a   simple   path   to   place  questions.   These   questions  must   be   available   in   a   specified   time   span   and   the  feedback-­‐giving   user   must   be   able   to   give   only   one   answer   to   the   specified  problem.   A   nice   and   interactive   feature   will   be   the   real-­‐time   display   of   the  results.  The  results  must  be  presented  in  a  simple  and  easy-­‐to-­‐read  way,  so  that  data  interpretation  and  observation  can  be  made  easy.  

Such   an   ecosystem   of   fast   mechanism   for   problem   stating   and   a   simple   and  mobile  path   for  answering   it   can   result   in  a  powerful   environment   for  opinion  observation.  It  may  allow  users  to  react  faster  on  growing  problems  in  the  target  groups.  

Environment  There  are  many  ways  to  develop,  deploy  and  port  a  web  system.  Software  can  be  deployed   in   various   operating   systems   like  Windows,  Unix,  Mac  OS   and  Linux.  Development   language   range   is   even  bigger  –   from  open-­‐source   languages   like  PHP   or   Java,   to   proprietary   like   ASP.NET.   For   data   storage   one   can   use   also  several  mechanisms  –   complex  database  engines   like  MySQL,  Oracle,   single   file  databases   like   SqLite   or   Firebird   or   self   developed,   file-­‐based   information  database.  For  the  purpose  of  this  project  a  free,  easy  to  port,  stable  and  reliable  solution  must  be   found,  which  also   is   fast   in   its  deployment  process  –  e.g.  does  not  need  any  kind  of  compilation.    

ASP.NET  

Originally  started  as  ASP  (Active  Server  Pages)  and  developed  by  Microsoft,  the  language   evolved   into   the   current   environment   ASP.NET   [13].   Active   server  pages  had   its  own  syntax,   language   specifics,   keywords  and  was  uncommon   to  other   development   languages,   which   was   a   big   drawback   in   terms   of   porting,  understandability  and  future  developments.  With  ASP.NET  Microsoft  decided  to  bring   web   development   to   well-­‐known   and   well-­‐structured,   object   oriented  languages   like   C#   and   Visual   Basic   –   both   developed   again   by   Microsoft   [14].  These  were  bundled  together  with  a  debugging  and  testing  environment   in   the  Microsoft   Visual   Studio,   resulting   in   an   fast   to   start   and   easy   to   understand  

Page 11: Fast, user-‐friendly FeedbackSystem for theMobile

development  environment.  Moreover,  the  use  of  languages,  which  were  already  developed   for   the   Microsoft   Windows   OS,   allows   the   use   of   all   components,  which   the  user  already  knows  –   list  boxes,   calender   toggles,   combo  boxes,   tree  views   and   so   on.   The   biggest   drawback   of   ASP.NET   is   still   its   possession   by  Microsoft  [15].  To  run  ASP.NET  code  on  a  machine,  the  users  must  buy  Windows  Server  operating   system,  which   costs   $699  and  up.  Although   there   are   tries   to  port  such  code  to  unix-­‐like  operating  systems,  the  results  are  very  unstable.  

JSP  /  Java  

Java  was  the  leading  solution  in  terms  of  web  development  for  long  time.  Starting  with   its  version  1,  Sun  presented  the  so  called  Applets   [16].  This  was  a  system  for   integrating   the   java  virtual  machine  as  a  plugin  not  only   into   the  operating  system,  but  also  in  the  browser  of  the  user.  This  way  software  written  as  a  stand-­‐alone  application  and  bundled  with  minor  changes  in  structure  is  able  to  run  in  the   browser   as   embedded   element.   Java   contains   also   a   lot   of   pre-­‐defined  components,  allowing  rapid  development  of  user  friendly  applications.  Although  very  powerful,  applets  were  not  the  best  solution  for  easy  web  development  due  to  the  following  reasons:  

• Completely  different  language,  which  has  nothing  in  common  with  HTML.  This   means,   that   the   developer   should   once   learn   Java   to   develop   the  application,  then  HTML  to  integrate  it.  

• Deployment   process   –   each   applet   has   to   be   compiled.   This   means,  making  even  minor  changes,  causes  recompilation  and  transfering  binary  file  to  the  web  server.    

• No   styling   –   java   applet   is   independant   of   the   running   environment   –  HTML,  CSS  and  javascript  and  has  no  access  to  these  elements.  In  order  to  have  the  same  styling  for  the  application  and  environment,  a  hard-­‐coded  solution  must  be  developed  in  the  application.    

• Plugin  –  in  order  to  run  the  applet,  the  user  must  install  a  plugin  into  the  browser.  This  takes  time  and  could  be  user-­‐unfriendly.  

Sun   noted   the   above   stated   problems   and   came   with   a   better   solution   –   Java  Server   Pages   and   also   Servlets   [17].   These   two   elements   showed   a   way   to  directly   integrate   Java  code   into  HTML,  which  on   its   side   interprets   the  passed  data   (via  HTML   requests   or   from   a   database   engine)   and   returns   again  HTML  code,  which  is  then  sent  to  the  user’s  browser.  There  is  no  need  for  plugins,  code  is   easy   to   edit,   because   it   does   not   need   compilation   and   it   shares   common  HTML,  CSS   and   JavaScript   techniques.   Java   is   also   an  object-­‐oriented   language,  which  allows  easy  development  of  reusable  elements.  It  can  also  run  on  various  operating   systems   like  Windows,   Linux   and   other   unix-­‐like   systems.   All   these  characteristics  make  JSP  a  very  powerful  platform  for  web  applications.  JSP  and  Servlets   inherited   a   very   important   feature   of   the   Java   language   –   compilation  and  multi-­‐platform  portability.  When  a  JSP  code  is  run  for  the  first  time,   it  gets  compiled  to  a  binary  file  and  then  cached.  This  procedure  happens  only  the  first  time,   which   means   the   code   will   run   much   faster   on   the   next   executions.   A  recompilation  will  be  triggered  only  if  the  JSP  code  gets  updated  [18].  Because  of  

Page 12: Fast, user-‐friendly FeedbackSystem for theMobile

its   popularity,   a   lot   of   frameworks   were   developed,   which   allow   even   faster  development  of  the  desired  software  solution  [19].  Despite  of  these  advantages  it  is  uncommon  to  use  JSP  for  smaller  projects,  due  to  the  complicated  installation  and  deployment  of  the  running  environment.  In  order  to  run  JSP  on  a  server,   it  needs  a  JSP  container.  One  of  the  most  famous  is  Jakarta  Tomcat  (or  also  Apache  Tomcat).  It  is  Java,  so  to  run  it,  a  java  virtual  machine  is  needed.  If  the  JSP  code  has   to   be   integrated   in   an   existing   Apache   or   Microsoft   Internet   Information  Services  environment,  then  another  plugin  is  needed  [20].  

PHP  

PHP  –  Portable  Hypertext  Preprocessor,   is  probably   the  most  used   language   in  web-­‐development   nowadays.   This   is   achieved   through   its   big   community,  thousands  of  information  and  documentation  sources  and  also  very  important  –  its  simplicity.  It   is  again  a  language  common  to  the  HTML-­‐branch,  which  allows  its  easy-­‐integration  into  the  web  page  [21].  As  the  name  states  -­‐  „preprocessor“,  the  code  is  executed  each  time  the  user  calls  a  web  page.  The  data  to  be  parsed  is  processed   and   formed   again   as  HTML   code,  which   is   then   sent   to   the   user.   In  comparison   to   JSP   this   process   is   slower,   because   the   system   is   stateless   –  nothing   gets   cached   between   different   callbacks.   Despite   of   this,   benchmarks  show,  that  PHP  is  faster.  Due  to  the  fact,  that  there  is  a  native  preprocessor  code  for  every  operating   system.  This  preprocessor   translates   the   code   to  native  OS  commands,   which   are   then   processed   faster.   This   makes   the   parsing   of  information  faster  than  using  a  separate  virtual  machine  –   like  Java.  Because  of  its  big  community  [22],  starting  with  PHP  is  easy  and  a  few  additional  steps  are  needed.  Packages  like  WAMP  or  XAMPP,  which  are  available  for  each  operating  system,   install   a   full-­‐featured,   ready   to   work   environment   to   the   developer’s  computer   [23].   Due   to   its   rapid   development   in   the   last   years,   a   lot   of  frameworks  were  externally  developed.  This  allows  integration  of  desktop  look-­‐a-­‐like   objects   to   the   webpages,   what   makes   web   systems   more   user   friendly,  easy   and   intuitive   to   work.   PHP   also   possesses   plugins   for   the   most   used  databases  nowadays  –  MySQL,  SqLite,  Oracle,  MsSQL,  etc.  

It  is  more  important  how  the  information,  the  system  is  working  with,  is  stored  than  how  it  is  processed.  Therefore  it  is  also  important  to  make  a  good  decision  about   the   database   engine.   As   stated   above,   there   are   two  main   types   of   such  systems   –   multi-­‐file,   multi-­‐user   systems   and   single-­‐file   databases.   The   third  option  –  to  develop  a  file-­‐based  database  is  too  difficult  and  often  results  in  bad  security  policies,  which  can  cause  serious  problems.    

 

 

MySQL  

MySQL  is  a  typical  representative  of  the  multi-­‐user  database  systems.  The  mostly  used  database  in  the  world  [24].  It   is  based  on  the  structured  query  language  –  queries  for  obtaining,  managing  and  deletion  of  information  are  placed  in  form  of  pre-­‐defined   sentences.   Such   an   approach   allows   easy   error   correction,   easy  expandability  and  less  security  problems.  MySQL  can  be  run  either  as  dedicated  

Page 13: Fast, user-‐friendly FeedbackSystem for theMobile

server,  or  it  can  contain  more  than  one  database,  so  more  than  one  web  systems  can   run   on   the   same   platform   [25].   It   also   has   versions   for   most   common  operating   systems   and   is   even   integrated   in   the   unix-­‐like   platforms.   This  database   engine   contains   its   own   user   and   access   policies   and   is  well   secured  against   hack-­‐attacks   [25].   Standard   queries   can   be   extended   via   user-­‐written  scripts,   so   the  work   of   the   system   can   be  made   even   faster   [26].   Benchmarks  show   MySQL   as   one   of   the   fastest   in   the   world   wide   web.   A   very   important  feature   of   each   database   engine   should   be   the   backup  mechanisms.   In  MySQL  there  are  several  of  them  –  CRC  checking,  repications  and  also  plain  archiving  of  files.  Access  to  the  information  can  be  obtained  either  via  a  socket  file,  or  through  the  Internet  on  a  pre-­‐defined  port  [25].    

SqLite  

SqLite  –  an  acronym  for  „light  SQL“,  is  also  language  based  on  structured  query  language.  The  difference  with  MySQL  is  that  it  is  a  single-­‐filed  database  –  all  the  information  is  stored  in  a  single  file  and  access  to  it  is  done  only  via  this  file.  This  yields  a  very  simplified  system,  which  allows  easy  backuping,  maintenance  and  support.  Porting  a  single   file   from  machine   to  another  platform   is  much  easier,  than  sending  a  couple  of  files.  But  such  an  approach  can  also  be  very  dangerous  –  a   corrupted   file   will   cause   the   whole   information   to   be   corrupted   and  irrepairable.   Everyone   who   has   read   and   write   access   to   the   file   may   view  and/or   edit   the   information.   There   is   no   seperate   user   access   control,   so   the  security   of   the   data   depends   only   on   the   physical   and   logical   security   of   the  running   platform.   Using   a   single   file   as   a   database   yields   another   problem   –  when  many  people  try  accesing  a  file  at  the  same  time,  they  will  receive  one  and  the  same  data.  When  everybody  tries  updating  the  same  information  a  collision  situation   will   happen.   Normally   only   one   of   the   updates   will   be   stored   and  information  will  be  lost  [27].  

Final  decision  

According   to   our   requirements,  we  need   a   stable   and   fast   platform,  which   can  perform   in  multi-­‐user   situation   seamlessly.   The   platform  must   be   cheap,   or   if  free   and   should   be   able   to   run   on   as  many   platforms   as   possible.   Information  must   be   secure   and   visible   only   by   authorized   persons.   Feature   developments  and   deployment   procedures   must   ensure   good   backup,   object   oriented  development  and  easy  integration  with  other  services.  

In  order  to  answer  on  these  requirements,  we  will  develop  the  project  in  PHP:  

• Famous   –   big   community,   easy   to   develop,   a   lot   of   documentation,   help  and  supprt  

• Free  –  it  is  an  open-­‐source  language,  so  it  is  free  to  re-­‐develop,  port,  etc.  

• Multi-­‐user  –  through  Apache  and  its  prefork  and  threaded  mechanisms,  it  can  support  as  much  users,  as  the  machine  it  works  on  

• Security   –   although   there   are   problems,   bugs   and   security   flows   found,  the  big  community  and  the  development  team  correct  these  problems  as  soon  as  possible  

Page 14: Fast, user-‐friendly FeedbackSystem for theMobile

• Multi-­‐platform  –  works  on  every  operating  system  

For  the  database  we  will  use  MySQL  egine:  

• Free  –  it  is  not  open-­‐source,  but  it  is  free  

• Availability  –  can  be  installed  on  every  modern  platform  

• Multi-­‐user   –   it   can   also   support   as   much   persons,   as   the   machine   has  ressources  

• Security  –   its  own  user  and  access   control   lists  make   it  one  of   the  most  secure  platforms  available  

It   is   also   very   important   to   state,   that   MySQL   and   PHP   are   one   of   the   most  famous  integrations  in  the  development  world.  This  makes  their  usage  together  easier.  

Frameworks  

Web  developers  have  another  choice  to  meet,  when  starting  the  development  of  new  system  –  build  everything  from  scratch  or  base  the  system  on  a  third-­‐party  platform.   The   first   option   offers   full   independance   of   the   developed   system.  Building  the  system  from  null  position  assures,  that  it  is  independant  from  other  people’s  source  code  and  their  development  habits  and  mistakes.  Such  systems  tend  to  be  easier  to  maintain  in  shorter  plans  and  more  easy  to  re-­‐develop  and  extend  in  time  of  development.  For  a  longer-­‐term  maintenance  and  extension,  a  good   documentation  must   be  written   –   design   documents,   usability   scenarios,  source  code  comments,  flow  and  structure  diagrams.  This  documentation  should  also  be  maintaned  at  future  development  stages.  

The   other   option   is   to   base   the   new   system   on   an   existing   platform   or  environment.   Such   platforms   offer   an   easy-­‐start   and   more   rapid   speed   of  development.   They   usually   consist   of   pre-­‐developed,   functional   code-­‐blocks,  which   the   developer   can   import   and   use   [28].   Such   blocks   include   database  communication,  login  screens,  forms  for  adding,  deleting  and  editing  objects,  etc.  Using  such  elements  of  the  system,  the  only  step  left  to  the  developer  is  to  create  the   application   specific   parts.   A   big   drawback   in   such   approach   is   the  dependance   on   third-­‐party   developers.   Usually   such   platforms,   although   open-­‐source,   obligate   the   developer   to   state   on   which   platform   the   applciation   is  based,   what   libraries   were   used,   who   are   their   developers   and   so   on.   Such  obligations  can  be  unacceptable  in  corporate  environments.  Bugs  and  problems,  caused   by   the   framework   will   also   be   translated   to   the   newly   developed  application   and   their   correction   can   be   hard.  Moreover,   because   such   systems  are  available  to  the  public  for  download  and  propably  a  lot  of  people  use  them,  security   flaws   are   well-­‐known   to   hackers   and   the   new   application   can   be  exposed   to   internet   attacks   [29].   Big   development   communities,   which   stay  behind  frameworks  can  correct  found  problems  very  fast  and  new  releases  of  the  framework   can   be   released   soon   after   that.   In   such   situations,   the   framework  must   posses   a   good   mechanism   for   update.   Currently   existing   functions   and  

Page 15: Fast, user-‐friendly FeedbackSystem for theMobile

functionalities  must  not  be  removed  in  updates,  so  that  existing  system  become  incompatible  with  the  new  releases.  

Depending  on  the  needs  of  the  future  web  application,  it  can  be  based  either  on  a  stand-­‐alone   library   or   a   bigger   platform.   Standalone   libraries   are   only   pre-­‐defined   code,   offered   for   download   as   separate   files.   These   files  must   be   then  copied  to  the  application  directory  and  imported  at  run-­‐time.  Platforms,  or  also  environments,   are   stand-­‐alone   applications,   which   allow   the   development   of  external  plug-­‐ins,  components  and/or  modules,  which  can  then  be  integrated  in  them.  Such  components  use  the  framework  of  the  environment.  This  approach  is  very   useful,   when   the   web   application   should   be   extended   in   future  development,   or   when  more   than   one   application   will   be   developed   and   they  should  run  in  one  and  the  same  environment.  Table  2  offers  a  brief  comparison  of  famous  PHP  frameworks:  

 

 

 

Page 16: Fast, user-‐friendly FeedbackSystem for theMobile

As  the  table  states,  there  are  three  PHP  frameworks  of  interest  –  Akelos,  PRADO  and   Yii.   They   all   offer   very   important   features   –   PHP5,  Model-­‐View-­‐Controller  development  approach,  multiple  database  types,  templates,  AJAX.  PRADO  and  Yii  also   offer   a   new   field   in   the   web   development   –   the   so   called   Event   Driven  Programming.   This   is   a   modern   programming   approach   to   threading.   It   is  available   in   the  object-­‐oriented   languages  such  as  C#  and   Java.  Basically   said  –  the  developer  assigns  a  method  or  function  to  an  event  of  an  object.  Events  can  be   clicking  on  a  button,  moving  a  mouse  or   in   a  more   complicated  approach  –  finishing   of   long   text   parsing   process   or   firing   off   a   timer.   When   this   „event“  happens   the   assigned   methods   are   called.   We   can   say   that   it   is   a   threading,  because   the   PHP   preprocess   starts   the   task,   which   should   fire   the   event,   in   a  seperate  thread,  allowing  the  main  code  to  continue  its  work  on  the  main  thread,  independantly  of  the  second  event  [31].    

Because   of   its   big   community,   detailed   documentation   and   a   lot   of   tutorials  available  not  only  on  its  site,  but  also  in  the  internet,   it  was  decided  to  develop  our   feedback   system  on   the  Yii   platform.   Such   a  decision   is   a  matter   of   stable,  proved,  easy  to  understand  and  extend  system,  not  only  for  the  start  developers,  but  also  for  the  future  developers,  who  may  want  to  add  extended  functionalities  to   the   system.  We  need   to   state   that   Yii   is   not   an   environment,   but   a   complex  library.  „Complex“  means  the  way  it  works  –  a  script  is  integrated  into  the  source  code.  Executing   this   script,   creates   a   stand-­‐alone   skeleton,  which  needs  almost  no   configuration   to   start   working.   In   this   skeleton   all   libraries   needed   for   the  application  are  already  imported.    

Table  2:  Comparison  of  PHP  frameworks,  source  [30]  

Page 17: Fast, user-‐friendly FeedbackSystem for theMobile

 

 

Development  In  the  previous  sections  we  defined  the  specifications  and  requirements  we  need  for  our  feedback  system.  Explanation  of  the  algorithm  and  the  seperate  parts  of  the  software  will  follow  together  with  the  explanation  of  the  development.    

 

Figure   1   shows   the   initial   screen   of   the   system.   The   environment   is   template  based.  This  means,  that  these  are  predefined  templates  with  placeholders.  These  placeholders  define  the  position  of  basic  elements  like:  menu,  content,  path,  right  menu,   etc.   On   the   top   of   the   screen,   the   user   sees   the   title   of   the   system.   It   is  called  „Feedback  ME“,  where  „ME“  means  „Mobile  Edition“.  We  chose  this  name  because  of  its  simplicity,  easy  way  to  remember  and  because  of  the  target  group  of  the  system  –  the  mobile  devices.  As  we  already  stated  the  system  must  provide  a   fast   and   easy  way   to   create   a   poll.   That   is  why   the   first   thing   the   user   sees,  when  opening  the  page,  is  an  html  form  for  creating  a  question.   ,  which  we  will  encounter  later.  There  is  no  need  for  login  or  even  a  valid  account  for  creating  a  question.  Questions  created  directly   from  the  homepage  are  added   to  no   topic,  their   owner   user   is   set   to   „Anonymous“   and   they   cannot   be   edited   or   deleted  

Figure  1:  Main  page  of  the  Feedback  ME  system  

Page 18: Fast, user-‐friendly FeedbackSystem for theMobile

later.  For  editing  or  deleting  a  question  the  user  must  have  a  valid  account  and  login   to   the   system.  This  will   be   shown   later   in   this   chapter.   The   fields   in   this  form   have   predefined   values.   Theoretically   the   user   can   create   a   question  directly  by  clicking  the  „Create“  button.  Since  an  „untitled“  question  won’t  have  any  sense,  the  user  is  strongly  adviced  to  change  the  default  value  under  „Title“.  The  second  option  is  the  end  time.  Questions   in  the  system  are  active  only   in  a  defined  time  interval.  In  this  form  we  assume,  that  the  start  time  is  now.  Possible  options  for  end  time  are:  10,  20,  30,  40,  50  or  60  minutes  from  the  start  time.  The  default   option   is   an   interval   of   10   minutes   from   now.   The   last   option   an  anonymous  user  can  set  are   the  possible  answers.   „Yes“,   „No“  and  „Maybe“  are  the  default  answers.  In  our  system  we  would  like  to  know  the  opinion  of  people  on   a   specific   problem.   This   type   of   questionnaires   fall   in   a   category   called  „Screening  questions“  [32].  They  reveal  how  common  is  something  to  people  in  one  or  more  social  groups.  Obtaining  data  about  people’s  opinion  through  such  questions  is  easy,  since  the  raw  count  of  given  answers  can  be  interpreted  as  a  steady   data:   e.g.   „33%   of   ...   will   ...   that“   –   interpretation   of   the   data   is   greatly  simplified.  A  big  drawback  of  yes-­‐no  questions  is  that  the  user  is  forced  to  choose  one   of   them.   In   „Feedback  ME“  we   added  by   default   the   third   option   „Maybe“,  which   allows   freedom   in   the   answers.   „Likelihood   questions“   [32]   are   a  more  accurate  way   for  obtaining  user  opinion.  They  are   in   the   following   form:   „How  likely   is   to   ...“.   Answers   are   in   form   of   numbers.   For   more   accurate   data   and  possibly  more  options,   the  user  may  add  answers  by  clicking  on  „Add  answer“.  „Remove  last“  will  remove  the  last  answer.  Note,  that  less  than  2  answers  are  not  allowed  and  trying  to  delete  the  second  answer  will  result  in  an  error  message.  

 

In  the  last  table  we  see  the  database  structure  for  storing  a  questions.  The  first  field  is  the  id  of  the  question.  This  field  is  auto  incrementing,  which  means  that  each   new   questions   receives   automatically   an   id   by   incrementing   the   last  question’s   id   with   one.   Also   this   field   is   primary   key,   so   it   is   unique   for   each  question   in   the   database.   The  mobile   users,  who   should   answer   this   question,  will  use  this  number  to  enter  the  system.  Topic  id  and  user  id  are  the  identifiers  for   the   topic,   this  question   should  be  added   to,   and   the  owner  of   the  question.  Topic  of  -­‐1  means  the  main  topic  category  and  user  of  -­‐1  means  an  anonymous  user.  Questions  created  by  anonymous  users  cannot  be  edited  or  deleted.  Title  is  actually   the   stated   question   itself,   this   is  what   the   creator  wrote   in   the   „Title“  field.  Maximum  length  of  the  question  is  255  characters  and  the  default  value  as  stated  before  is  „untitled“.  Start  and  end  times  define  the  time  interval,  in  which  

Table  3:  Table  structure  for  tbl_questions  

Page 19: Fast, user-‐friendly FeedbackSystem for theMobile

this  question  is  active.  These  use  the  default  MySQL  date/time  format  of:  „YYYY-­‐MM-­‐DD  HH:mm:SS“.   Since   the  user  writes   the  dates   in  human-­‐friendly  manner  of:   „HH:mm:SS   DD.MM.YYYY“,   we   need   to   transform   the   dates   between   these  formats  in  PHP  using  the  date  command.  The  last  field  in  the  database  is  a  JSON  structure  of   the   answers.   JSON   comes   from   „JavaScript  Object  Notation“   and   is  the   default   way   of   defining   objects   in   JavaScript.   This   format   was   chosen,  because   of   its   simplicity   and   its   easy   way   for   parsing   in   HTML   and   PHP   over  other  structures  like  for  example  XML.  The  three  default  answers  „Yes“,  „No“  and  „Maybe“   are   stored   the   following   way   in   JSON:  [{"text":"Yes"},{"text":"No"},{"text":"Maybe"}].  „text“  specifies  the  type  of  answer  we  have.    

 Table  4:  Table  structure  for  tbl_clicks  

For  storing  the  answer  count  –  how  many  times  an  answer  was  clicked,  we  use  a  seperate   table,   shown   in   the   table   above.   Quesion   id   and   answer   id   are   the  unique  identifier  for  each  click.  The  third  field  is  the  actual  count  of  clicks  for  the  answer.   Question   id   is   the   same   identifier   as   the   Id   in   the   previous   table   and  answer  id  corresponds  to  the  number  of  the  answer  in  the  JSON  structure.  Using  a  second  table  for  storing  the  clicks  has  a  performance  sense  in  our  situation.  If  we   expect   a   question   with   interval   of   10   minutes   and   around   300   users   to  answer   it   –   a   normal   hall   room   in   an   university   has   300   sit   places,   then   we  should   expect   one   click   per   two   seconds.   The   second   tables   has   a  much  more  simplified  structure  and  access  times  will  be  much  faster  than  the  first  table.  This  way  we  assure   concurrency  of   the  database   system  with   the   answering   speed.  This   and   other   precautions,   discussed   later,   allow   “Feedback   ME”   to   work   in  heavy  conditions.    

Once  the  question  has  been  created,  the  user  sees  the  following  screen:  

Page 20: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  2:  Question  screen  -­‐  displays  information  about  selected  question  

It   displays   all   important   information  about   the  question.  On   the   top   is   its   title.  After   this  we  see   the   identifier,   the   topic,   start  and  end   time  and  answers.  The  identifier  is   important  for  the  mobile  answers,  since  they  should  apply  it  to  the  address   they   visit.   This   way   the   system   knows,   which   question   they   want   to  answer.   Because   the   question   is   created   by   an   anonymous   user,   it   is  automatically   added   to   the   “Main”   topic.   Starting   time   is   the   current   date   and  time  and  we  chose  the  availability  of  the  question  to  end  after  ten  minutes.  Next  to   the   answers   the   user   sees   procent   bars.   These   bars   show   graphically   and  textually,  how  many  of  the  total  opinions  given  are  for  the  specific  answer.  Using  a  self-­‐refreshing  AJAX  technology,  these  results  are  refreshed  each  five  seconds.  This  way  the  user  can  obtain  data  in  real  time  and  if  needed  can  start  a  new  poll  for   more   detailed   results.   Additional   options   from   the   right   menu   are:   “List  Questions”  and  “Create  Question”.  The  second  option  will  bring  the  user  back  to  the  home  page  to  create  a  new  question.    

Page 21: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  3:  Questions  tree  structure  

Clicking  on  “Questions”  from  the  top  menu  or  “List  Questions”  from  the  right,  will  show   a   tree   view   as   shown   on   figure   3,   which   represents   the   topic-­‐question  structure  in  the  system.  Because  we  are  working  as  an  anonymous  user,  we  can  only   see   the   questions   created   by   anonymous   users.   Questions   created   by   not  logged  users  are  stored  only  in  the  main  topic.  Therefore  the  topics  shown  in  the  tree  view  are  empty.    

Until  now  we  described  what  possibilities  has  an  anonymous  user.  Anonymous  users  are  allowed  to  use   the  system,  because  this   is   the   fastest  way  to  create  a  question.  Writing  a  question  and  clicking  on  the  “Create”  button  takes  less  time  and  the  question  is  immediately  active  after  that.  Drawback  of  such  method  are  the  less  possibilities  to  configure  the  questions  the  user  has.  If  the  user  does  not  need  a  fast  method  for  creating  questions,  but  wants  to  specify  more  settings,  he  must  log  in.    

Page 22: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  4:  Create  Question  screen  

On  the  above  screenshot  we  are  logged  in  as  administrator.  This  super  user  has  some   more   advanced   options   in   the   menu,   than   a   normal   user   gets.   These  advanced   features   of   the   system  will   be   described   later   in   this   section.   As   the  screenshot  shows,  there  are  more  settings  possible  to  set  to  a  question  for  valid  users.   First   one   is   the   topic.   A   drop-­‐down   list   displays   all   created   topics   and  allows  to  assign  the  newly  created  question  to  one  of  them.  Topics  are  created  by  administrator   user.   Normal   users   cannot   create   new   topics.   The   start   and   end  time  can  also  be  specified  in  detail.  Start  time  can  be  specified  by  date  and  time.  This  way   the   availability   of   the   question   can   be   specified   to   be   later   that   day,  tomorrow,   next  month,   even   next   year.   The   default   values   for   these   fields   are  again  now  and  one  hour  later.  Again  these  default  values  allow  the  user  to  create  new   questions   fast.   To   the   right   the   user   can   again   click   on   „List   Questions“,  which   will   show   the   tree   view.   Instead   of   showing   all   questions   created   by  anonymous  users,  only  questions  created  by  the  logged  in  user  will  be  shown.    

Page 23: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  5:  Update  Question  screen  

Figure  5  shows  the  same  screen,  but  this  time,  as  it  can  be  seen  from  the  path  on  top   of   the   screen:   „Home   >>   Questions   >>   8   >>   Update“,   editing   an   already  created  question.  This  feature  is  only  available  to  registered  users.  They  can  also  remove  questions,  of  which  they  are  owners.  The  question  displayed  above  is  in  German   –   because   of   the   MySQL   database   engine,   which   supports   UTF-­‐8  collation  and  character  encoding,  the  system  supports  every  language,  which  can  be  saved  in  this  encoding.  This  includes  all  European,  South  and  North-­‐American,  most  of  the  Asian   languages.  Problems  will  occure  with  Chinese  and  Japanaese,  which  need  UTF-­‐16.  For  this  purposes,  the  server  must  be  reconfigured  and  the  configuration  of  the  database  changed.  It  is  also  important  to  note,  that  adding  an  answer   to   a   question   will   not   reset   the   answer   count   for   the   older   ones,   but  removing  an  answer  will  erase  this  number.    

The  administrator  user  has  additional   functionalities  and  privileges.  As  already  stated   in   this   section,   questions   are   divided   in   topics.   Topics   are   just   simple  sections,   which   can   be   used   for   sorting   questions.   Each   topic   can   have   an  unlimited  count  of  child-­‐,  or  sub-­‐topics.  This  forms  a  simple  tree  structure,  which  allows   an   easy   overview   of   the   questions.   As   mentioned   before,   anonymous  users   do   not   have   the   option   to   choose   a   topic,   therefore   their   questions   are  stored   under   the   tree   root   –   the   „Main“   topic.   Question   topics   can   be   created,  edited   and   removed   only   by   administrator   users.   This   is   done   by   clicking   the  „Topics“  menu  from  the  top.    

Page 24: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  6:  View  Topics  screen  

Each   topic   has   its   own   identificator.   This   identificator   is   unique   and   gets  automatically  incremented  for  each  new  topic.  The  topics  screen  also  shows  the  parent   topic   for   each   one.   Clicking   on   the   topic   identifier   will   enter   the   topic  editing  screen,  which  allows  to  change  the  topic  title  or  the  parent.  A  new  feature  on   the   shown   screen   is   „Manage   Topics“.   This   operation   allows   topics   to   be  searched   either   by   part   of   the   identifier,   part   of   the   parent   topic   or   by   title.  Through   the   „Manage   Topics“   screen,   topics   can   also   be   edited   or   removed.  Removing   a   topic   will   remove   all   its   subtopics   and   questions   associated   with  them.    

The   administrator   is   also   able   to   create,   edit   and   remove   users.   The   user  management  screen  is  almost  the  same  as  the  one  by  the  topics.  

Page 25: Fast, user-‐friendly FeedbackSystem for theMobile

 Figure  7:  Manage  Users  screen  

As  it  can  be  seen  from  figure  7,  users  are  defined  by  their   identifier,  username,  password   and   e-­‐mail.   An   optional   feature   development   could   be   e-­‐mail  validation   and   probably   identification   via   e-­‐mail   only.   The   three   icons   to   the  right  are:  (from  left  to  right)  „View  user“,  „Edit  user“  and  „Remove  user“.  

The   most   important   objective   of   this   new   development   is   to   create   a   mobile  system  –  an  environment,  which  can  be  used  by  mobile  users,  without  the  need  of   special   software   or   plugins.   Existing   system   do   not   provide   such   kind   of  simplicity   –   designs   are   not   compatible   with   smaller   screens,   there   are  functionalities,   which   the   user   does   not   need,   but   make   the   loading   of   the  environment  slow  and  non-­‐responsive.  

What  we  have  developed  is  a  pure  HTML4  and  CSS1  web  page,  which  can  display  one  question  at  a  time.  The  question  and  its  answers   is  specified  via   its  unique  identifier   in   the   address   bar   of   the   browser.   The   user  works   on   a   small   sized  device,  so  typing  is  hard  to  do.  That  is  why,  the  parameters,  which  are  supplied  in  the  web   browser’s   address   bar,   should   be   as   few   as   possible.   The   path   to   the  system  is  server  and  configuration  dependant.  If  the  server  is  installed  under  the  domain  „http://fme.cc/“  then  the  mobile  user  must  supply  the  following  path  to  answer  a  question:  „http://fme.cc/?r={id}“  where  {id}  specifies  the  identification  number  of  the  question.  

Page 26: Fast, user-‐friendly FeedbackSystem for theMobile

   Figure  8:  Viewing  a  question  on  the  mobile  device's  screen  

Figure  8  shows,  what  the  user  will  see  when  typing  the  path  above.  Note,  that  we  use  the  iPhone  Simulator  only  for  demonstration  purposes.  The  software  can  run  on   every   mobile   device,   which   has   an   HTML   browser.   Every   modern   device,  produced   after   2004   has   one   integrated.   Different   versions   of   Opera   browsers  can   be   installed   on   older   phones,   which   support   package   installations.   The  address  on   the   screenshot  uses  a   localhost  address  of   the  development   server.  This   will   be   changed   together   with   the   installation   of   the   software   on   a  production   server.   The   page   itself   is   relative   simple.   On   top   of   the   screen   is  placed  the  title  of  the  question  in  bold  font.  Beneath  it  are  the  possible  answers  in  form  of  a  radio  buttons,  because  the  user  must  choose  only  one  answer.  The  first   answer   is   always   pre-­‐selected   in   time   of   loading.   This   assures,   that   there  will  be  no  „empty“  votes  in  the  question.  Below  the  options  is  the  submit  button.  Clicking  on  it  will  save  the  vote  in  the  database  by  incrementing  the  value  for  the  corresponding  answer   in   the   „clicks“   table,  which  was  presented  earlier   in   this  section.  The  page   is  scaled  at  150px  width.  Modern  mobile  devices  have  bigger  screens   [33],   but   since   we   aim   to   support   older   models,   we   must   place   this  limitation.  Probably  an  idea  for  future  development  is  a  check  about  the  device  size  via  JavaScript.  The  page  consists  of  div  and  form  tags,  which  are  in  the  HTML  standards   since   version   3   [34].   Every   HTML   browser   compilant   to   these  standards  must  support  them.  The  dimensions  are  set  via  CSS1  (Cascaded  Style  Sheets).  Modern  mobile  devices  use  special  HTML  tags  to  specify  their  viewport  [35].  This  tag  defines  how  the  page  must  be  scaled.  These  browser  try  to  wide-­‐

Page 27: Fast, user-‐friendly FeedbackSystem for theMobile

scale   the  viewed  page,   so   it   looks   like  on  a   computer  web  browser.   If   the  user  opens  the  above  given  web  address  from  a  computer  browser,  then  the  page  will  be   positioned   in   the   top   left   corner.   The  mobile   browser   tries   to   do   the   same.  Therefore  without  proper  viewport  configuration,  the  page  will  zoomed  out  and  placed   in  the  top   left  corner.  The  user  will  have  to  zoom  int  and  reposition  the  page  on  his  device.  Therefore  he  will  loose  time.  To  avoid  such  situation  we  must  specify  the  viewport  tag:  

<meta   name="viewport"   content="width=150,   initial-­‐scale=1.0,   maximum-­‐scale=2.0,  user-­‐scalable=1"  />  

The   keywords   are   self-­‐explainable.   First   we   specify   the   optimal   viewport   at  150px.  This  is  derived  from  our  HTML  design,  where  we  strictly  placed  the  box  at  150px  width.   Initial  scale  and  maximum  scale  specify  how  the  page  must  be  scaled  at  first  load.  We  suspect,  that  the  mobile  browser  has  a  screen  bigger  than  150px  so  we  set  the  initial  scale  at  one.  A  maximum  scale  of  2.0  allows  the  user  to  make  the  viewport  even  bigger.  This  is  needed,  if  the  mobile  screen  has  a  big  resolution  and  the  submit  and  radio  buttons  are  to  small  to  click.  User  scalable  is  a  boolean  value,  which  specifies  if  the  user  is  able  to  rescale  the  page.  Value  of  1  is  true  and  0  is  false.  Note,  that  since  the  content  width  is  smaller  than  the  screen  dimensions,   scaling  beneath  1.0   is   actually  not  possible.  The  modern  browsers  will  prevent  this   from  stating.   If   this   is  not  the  case,   then  the  option  minimum-­‐scale  can  be  supplied  to  limit  the  downscaling.  The  questions  are  only  available  in  pre-­‐defined  by  the  creator  time  intervals.  If  the  user  tries  to  access  a  question  before   or   after   this   time   period,   then   the   following  message  will   be   shown   to  him:  „This  test  is  currently  closed.“.    

We  expect  the  system  to  work  in  heavy  conditions  –  since  questions  are  available  only  for  short  time  periods,  then  it  should  take  the  answers  of  all  users  in  short  times   and   store   them   to   the   database.   Here   we   have   three   bottlenecks   –   the  internet  connection,  the  processing  power  of  the  PHP  server  and  the  processing  power  of   the  MySQL  database  engine.   For   the   internet   connection,   less   actions  can  be   taken.   It   is   important,   that   the   service  provider  offers   good  upload   and  download   speeds.  The   table  below  describes   the  most   important   configuration  parameters  for  PHP  scalability:  

Page 28: Fast, user-‐friendly FeedbackSystem for theMobile

 Table  5:  PHP  configuration  options  for  scalability  

MaxClients   and  MaxRequestsPerChild  must  be  properly   configured,   so   that   the  server  can  respond  on  many  requests  simultaneously  and  still  not  overload  the  hardware.   PHP   is   also   resource   dependant   from   the   Apache   server,   which   by  itself  has  proven  to  be  good  in  memory  management.  Apache  starts  a  „prefork“  process   for   each   user   connection.   This   way,   each   client   comes   to   his   own  sandbox  managed  by  Apache.  This  allows  proper  CPU  and  memory  management.  The  last  problem  could  be  the  connection  between  PHP  and  MySQL.  In  PHP  one  can   create   normal   connections   and   persistant   connections   to   the   database  engine.  The  persistant  connection  is  shared  between  all  processes  from  one  and  the  same  client  machine.  The  advantage  of  this  mechanism  is  that  each  user  has  his  own  connection,  which  is  shared  through  processes.  We  come  to  a  problem  if  

Page 29: Fast, user-‐friendly FeedbackSystem for theMobile

we  have  many  different  users.  Then  for  each  of  them  a  new  connection  is  created  and  if  this  connection  is  not  properly  closed  by  the  last  process,  a  buffer  overflow  and   system   overload   can   happen.   The   Yii   platform   uses   non-­‐persistant  connections,  which  get   automatically   terminated  after   the  end  of   each  process.  This   can   cause   problems   if   these   process   stay   longer   active   and   many   users  access   the   database   simultaneously.   Since   we   have   a   special   MySQL   table  architecture,  which  allows   fast  change  of   the  database  data,  our  processes  stay  active  for  only  couple  of  milliseconds.  Values  cannot  be  given,  since  the  process  period   is   dependant   from   hardware,   configuration,   working   environment,   etc.  That  is  why  we  do  not  expect  overload  in  the  MySQL  –  PHP  connections.  MySQL  table   change   should   be   carefully   considered.   Suppose   we   have   a   worst   case  scenario,  where  20  users   try   to  vote  at  one  and   the  same   time.  Opening  a  new  connection  to  the  MySQL  server  and  fetching  the  previous  data  will  happen  again  at  one  and  the  same  time.  So  all  20  users  will  receive  the  actual  state  of  the  votes.  Every  one  of  them  will  increment  this  vote  by  one  and  will  store  the  new  value  in  the  database.  So  at  the  end  we  will  not  have  the  last  value  plus  20  stored,  but  the  last  value  plus  one.  MySQL  works  similiary  as  PHP  –  every  connection  works  in  its  own  sandbox.  This   is   the   so  called   transaction   isolation.  There  are  different  methods  for  this   isolation.  The  default  one  is  „REPEATABLE  READ“.  In  order  to  support   concurrency   situations   as   stated   above,   we   should   set   the   following  parameter   in   the   MySQL   configuration   file:   „transaction-­‐isolation   =   READ-­‐COMMITTED“.  This  way,  updates  of  the  database  can  happen  simultaneously  and  they  are  queued.  This  will  result  in  a  correct  calculation  of  the  clicks.    

Future  steps  Knowing   what   the   public,   the   masses,   the   others   think,   means   not   only  knowledge  –  it  means  power.  Through  the  Feedback  ME  System,  users  can  obtain  information  about  the  feelings,  thoughts,  ideas,  future  plans  of  the  target  groups.  Therefore   the   power   of   this   system   is   practically   unlimited.   It   can   be   used   for  political,   commercial,   research,   educational   objectives   –   the   results   will   be  obtained  as  fast  and  as  accurate  as  possible.  The  idea  of  not  analysing  the  results  directly   by   the   system,   but   presenting   them   in   real-­‐time   and   in   raw   format  allows  future   interpretations  by  third-­‐party  software  or  third-­‐persons,  who  are  specialists  in  the  field  of  interest.    The  system  is  mobile  device  oriented,  meaning  that  the  clients  are  able  to  access  placed  questions  anytime,  anywhere.  There  is  no  need   for  additional  plugins  or   third-­‐party  software.  This  has  proven  to  be  a  first-­‐level  security  –  data  cannot  be  indirectly  stolen  or  edited.  If  the  server  uses  additional  security  mechanisms  –  the  security  level  will  be  much  higher.  Further  researches  will   test   Feedback  ME   in   production   situations   –   during   university  lectures,  the  sosciety,  etc.  If  needed,  the  system  will  be  continuosly  developed,  in  order  to  achive  maximum  reliability,  stability  and  user  satisfaction.  

Literature  [1]  Fielding,  R.T.  (2000).  Architectural  Styles  and  the  Design  of  Network-­‐based  Software  Architectures  

[2]  Frederick,  G.,  Lal,  R.  (2009).  Beginning  Smartphone  Web  Development,  pp.  6  

[3]  http://msdn.microsoft.com/en-­‐us/library/t6dbcb8d(VS.71).aspx  (2010)  

Page 30: Fast, user-‐friendly FeedbackSystem for theMobile

[4]  http://www.microsoft.com/  (2010)  

[5]  Keil,   M.,   Johnson,   R.D.   (2002).   Feedback   Channels:   Using   Social   Presence  Theory  to  Compare  Voice  Mail  to  E-­‐mail  

[6]  Dillman,  D.A.  (1978).  Mail  and  telephone  surveys  –  the  total  design  method  

[7]  Selvin,  H.C.,  Hirschi,  T.  (1973).  Principles  of  survey  analysis  

[8]   Ullmer,   B.,   Ishii,   H.   (2000).   Emerging   Frameworks   for   Tangible   User  Interfaces  

[9]   Kofahl,   M.,  Wilde,   E.   (2009).   Location   Concepts   for   the  Web.   In  Weaving  services  and  people  on  the  world  wide  web,  Part  1,  pp.147-­‐168  

[10]  Greenhow,   C.,   Robelia,   B.,   Hughes,   J.E.   (2009).  Web   2.0   and   Classroom  Research:   What   Path   Should   We   Take   Now?,   In   Educational   Researcher,   vol.  38,  no.  4,  pp.246-­‐259  

[11]   Joshi,   J.B.D.,   Aref,   W.G.,   Ghafoor,   A.,   Spafford,   E.H.   (2001).   Security  models   for   web-­‐based   applications,   In   Communications   of   the   ACM   archive,  Volume  44,    Issue  2,  pp.38-­‐44,  ISSN:0001-­‐0782  

[12]   Frederick,   G.,   Lal,   R.   (2009).   Beginning   Smartphone   Web   Development,  pp.5-­‐7  

[13]  Bidgoli,  H.  (2004).  The  Internet  encyclopedia,  Volume  1,  pp.  1-­‐2  

[14]  Kalata,  K.  (2002).  Introduction  to  ASP.NET  

[15]  Woo,  J.  (2005).  The  Comparison  of  J2EE  and  .NET  for  e-­‐Business  

[16]  Harold,  R.  (2000).  Java  Network  Programming,  Second  Edition,  2nd  edition,  pp.267-­‐269  

[17]  Singh,  I.,  Steams,  B.,  Johnson,  M.  (2004)  Designing  enterprise  applications  with  the  J2EE  platform,  2nd  edition,  pp.27-­‐32  

[18]  Hunter,  J.,  Crawford,  W.  (2001).  Java  servlet  programming,  pp.  62-­‐70  

[19]  Johnscon,  R.  (2005).  J2EE  development  frameworks,  Computer  Magazine  

[20]  Hunter,  J.,  Crawford,  W.  (2001).  Java  servlet  programming,  pp.  7-­‐10  

[21]  Bakken,  S.S.,  Aulbach,  A.,  et.al.  (2010).  PHP  Manual,  p.72  

[22]   Nixon,   R.   (2009).   Learning   PHP,   MySQL,   and   JavaScript:   A   Step-­‐By-­‐Step  Guide,  pp.453-­‐456  

[23]   Nixon,   R.   (2009).   Learning   PHP,   MySQL,   and   JavaScript:   A   Step-­‐By-­‐Step  Guide,  pp.13-­‐14  

[24]  Statistics  on  http://www.mysql.com    (2010)  

[25]  Pachev,  S.  (2007).  Understanding  MySQL  Internals  

Page 31: Fast, user-‐friendly FeedbackSystem for theMobile

[26]   Widenius,   M.,   Axmark,   D.   (2002).   MySQL   reference   manual:  documentation  from  the  source,  pp.  334-­‐356  

[27]  Hai-­‐yan,   L.,   Jian-­‐kang,   Y.,   Hong-­‐liu,   C.,   Dong-­‐yang,  W.   (2009).   Analysis  and  Design  of  the  Security  Mechanisms  of  Embedded  Database  SQLite  

[28]   Cai,   X.,   Lyu,   M.R.,   Wong,   K.,   Ko,   R.   (2008).   Component-­‐based   software  engineering:   technologies,   development   frameworks,   and   quality   assurance  schemes,  ISBN:  0-­‐7695-­‐0915-­‐0  

[29]  Mattsson,  M.,  Bosch,  J.  (1997).  Framework  composition:  problems,  causes  and  solutions,  Technology  of  Object-­‐Oriented  Languages  and  Systems,  TOOLS  23.  Proceedings,  ISBN:  0-­‐8186-­‐8383-­‐X  

[30]  First  page  at:  http://www.phpframeworks.com/    (2010)  

[31]   Dabek,   F.,   Zeldovich.,   N.,   et.al.   (2002).   Event-­‐driven   programming   for  robust  software.  In  Proceedings  of  the  10th  workshop  on  ACM  SIGOPS  European  workshop  2002,  Saint-­‐Emilion,  France,  pp.  186  -­‐  189  

[32]  Bradburn,  N.,  M.m  Sudman,  S.,  Wansink,  B.  (2004).  Asking  questions:  the  definitive  guide  to  questionnaire  design,  pp.130-­‐133  

[33]  Chittaro,   L.   (2006).   Visualizing   information   on  mobile   devices,   Computer  Magazine,  pp.  40-­‐45  

[34]  Musciano,  C.,  Kennedy,  B.   (2006).  HTML  &  XHTML:  The  Definitive  Guide,  pp.  311-­‐313,  pp.58-­‐60  

[35]  Frederick,  G.,  Lal,  R.  (2009).  Beginning  Smartphone  Web  Development,  pp.  188-­‐189  

[36]  Richard  G.P.  (1990).  Lisp:  Good  News,  Bad  News,  How  to  Win  Big  

[37]  Heli,   R.,   Roto,   V.,   Väänänen-­‐Vainio-­‐Mattila,   K.   (2009).   Evaluating   User  Experience   of   Early   Product   Concepts.   International   Conference   on   Designing  Pleasurable  Products  and  Interfaces,  DPPI09  

[38]   Erlingsson,   Ú.,   Livshits,   B.,   Xie,   Y.   (2007).   End-­‐to-­‐end   web   application  security.  Proceedings  of   the  11th  USENIX  workshop  on  Hot   topics   in  operating  systems  

[39]  „The  survey  system“  page  at  http://www.surveysystem.com/    

[40]   „4   steps   to   a   survey“   page   at   http://www.surveysystem.com/price-­‐ordering.htm