SlideShare a Scribd company logo
1 of 20
Technology Selection Strategies for Web and Mobile Applications  Henry Sampson
Is this worth our time? What is the time?
Is this worth our time? Now, what is the time?
Is this worth our time? This is similar to our technology landscape today The internet is filled with tons of languages, frameworks and/or libraries to choose from
Is this worth our time? There are over 2000 High Level languages today [http://www.cs.man.ac.uk/~pjj/cs1001/software/node3.html#SECTION00033000000000000000]
Is this worth our time? Making such decisions are at the core of Software Development Difference between delivering on time and late Difference between going above or staying within budget
How are we making decisions today? Religious Affiliations Some are devoted to  .NET Java Ruby Erlang Company Policy Knowledge and familiarity
Questions to Consider Who or why are you developing the application? Enterprise Personal Leisure/Fun Automation What problem are you solving? Content Security Communication Reporting Tracking
Questions to Consider How soon are you to finish? 1 week (prototype) 1 month (Patch) 1 year (Government Project) What SLA has been imposed on you? Reliability Availability Scalability What phones will run your application? (Mobile) What is your budget?
Key Decision Points (Web) Language UI mark-up: HTML, JavaScript, Java (applet) Server-side: PHP, .NET, J2EE, Python Storage RDBMS: PostgreSQL, MySQL, SQL Server, Oracle File: Well…depends on the complexity of your mind Cloud: Amazon EC2, Cassandra Monitoring Log files: Language specific Messaging Passing: JMS, MPI Website usage service: Google Analytics
Key Decision Points (Mobile) Language Java (Android) J2ME Python Ruby Objective C (iPhone) Storage RDBMS: Apache Derby, Java DB, Floggy, SQLite, 	 File: Records Management Store (RMS) Monitoring HTTP: more commonly used RMS
Case Study 1 MoTeCH
Requirements  Develop a Maternal Health Software on top of OpenMRS (MoTeCH Server) J2EE Spring, Hibernate, Quartz, Maven, Tomcat Develop a mobile app that communicates with MoTeCH Server Data Entry Query Server
Technologies Used (Server) J2EE – Largely influenced by OpenMRS Spring:  IoC, Transaction Management Hibernate:  Persistence Framework Maven:  Project Management MySQL:  RDBMS Tomcat:  Servlet Container Quartz:   Scheduling EasyMock:  Testing OpenXData:  Mobile Data Entry
Technologies Used (Mobile) J2ME OpenXData:  Mobile Data Entry Custom Serializer library for transporting objects to server
Case Study 2 myTXTbuddy
Requirements  Develop online bulk messaging service Must be significantly faster than current desktop applications UI must be superior to current market offering
Technologies Used PHP: Front end marketing pages Sencha: Data Binding UI component jQuery:  Front-end k3ts3 (beautification) J2EE Spring Hibernate Quartz GSON:  JSON to Java Object Log4J:  Logging Framework
Key Points You must meet your requirements before experimenting Consider the number of people using the technology – COMMUNITY Be Open-minded and not religious Not the best idea to choose new technologies for a new project. Experiment with different technologies in your leisure
Questions?

More Related Content

Viewers also liked

математическая сказка
математическая сказкаматематическая сказка
математическая сказка
tatevtatev
 
Slaidi premium medical_ru_septembris
Slaidi premium medical_ru_septembrisSlaidi premium medical_ru_septembris
Slaidi premium medical_ru_septembris
PremiumMedical
 
Premium medical ru_junijs
Premium medical ru_junijsPremium medical ru_junijs
Premium medical ru_junijs
PremiumMedical
 
սննդային թունավորումներ
սննդային թունավորումներսննդային թունավորումներ
սննդային թունավորումներ
67gayane
 
Premium Medical piedavajums 2011.gada marta
Premium Medical piedavajums 2011.gada martaPremium Medical piedavajums 2011.gada marta
Premium Medical piedavajums 2011.gada marta
PremiumMedical
 
Boom! goes the knowledge
Boom! goes the knowledgeBoom! goes the knowledge
Boom! goes the knowledge
Andrea Baker
 
Another Word For Pink
Another Word For PinkAnother Word For Pink
Another Word For Pink
bmccarney
 
Hannah Lingle POL
Hannah Lingle POLHannah Lingle POL
Hannah Lingle POL
linglehk
 
RunMob Presentation 2013
RunMob Presentation 2013RunMob Presentation 2013
RunMob Presentation 2013
RunMob
 
Cousins
CousinsCousins
Cousins
carrmf
 

Viewers also liked (20)

математическая сказка
математическая сказкаматематическая сказка
математическая сказка
 
Slaidi premium medical_ru_septembris
Slaidi premium medical_ru_septembrisSlaidi premium medical_ru_septembris
Slaidi premium medical_ru_septembris
 
Premium medical ru_junijs
Premium medical ru_junijsPremium medical ru_junijs
Premium medical ru_junijs
 
Chapter 1 principle and guidlines
Chapter 1   principle and guidlinesChapter 1   principle and guidlines
Chapter 1 principle and guidlines
 
սննդային թունավորումներ
սննդային թունավորումներսննդային թունավորումներ
սննդային թունավորումներ
 
Gerritsen Ppt Bachelorwerkstuk
Gerritsen Ppt BachelorwerkstukGerritsen Ppt Bachelorwerkstuk
Gerritsen Ppt Bachelorwerkstuk
 
Premium Medical piedavajums 2011.gada marta
Premium Medical piedavajums 2011.gada martaPremium Medical piedavajums 2011.gada marta
Premium Medical piedavajums 2011.gada marta
 
DCTS - Selection of projects
DCTS - Selection of projectsDCTS - Selection of projects
DCTS - Selection of projects
 
Architecture + Design Associates, Inc.
Architecture + Design Associates, Inc.Architecture + Design Associates, Inc.
Architecture + Design Associates, Inc.
 
Boom! goes the knowledge
Boom! goes the knowledgeBoom! goes the knowledge
Boom! goes the knowledge
 
Structured brain jam
Structured brain jamStructured brain jam
Structured brain jam
 
Another Word For Pink
Another Word For PinkAnother Word For Pink
Another Word For Pink
 
Premium Medical_ru_marts
Premium Medical_ru_martsPremium Medical_ru_marts
Premium Medical_ru_marts
 
Presentation Slide
Presentation SlidePresentation Slide
Presentation Slide
 
Hannah Lingle POL
Hannah Lingle POLHannah Lingle POL
Hannah Lingle POL
 
Il malenell amore_2013
Il malenell amore_2013Il malenell amore_2013
Il malenell amore_2013
 
RunMob Presentation 2013
RunMob Presentation 2013RunMob Presentation 2013
RunMob Presentation 2013
 
Janvaris 2012
Janvaris 2012Janvaris 2012
Janvaris 2012
 
Cousins
CousinsCousins
Cousins
 
Dproc partez
Dproc partezDproc partez
Dproc partez
 

Technology Choosing Strategies for Web and Mobile Applications

  • 1. Technology Selection Strategies for Web and Mobile Applications Henry Sampson
  • 2. Is this worth our time? What is the time?
  • 3. Is this worth our time? Now, what is the time?
  • 4. Is this worth our time? This is similar to our technology landscape today The internet is filled with tons of languages, frameworks and/or libraries to choose from
  • 5. Is this worth our time? There are over 2000 High Level languages today [http://www.cs.man.ac.uk/~pjj/cs1001/software/node3.html#SECTION00033000000000000000]
  • 6. Is this worth our time? Making such decisions are at the core of Software Development Difference between delivering on time and late Difference between going above or staying within budget
  • 7. How are we making decisions today? Religious Affiliations Some are devoted to .NET Java Ruby Erlang Company Policy Knowledge and familiarity
  • 8. Questions to Consider Who or why are you developing the application? Enterprise Personal Leisure/Fun Automation What problem are you solving? Content Security Communication Reporting Tracking
  • 9. Questions to Consider How soon are you to finish? 1 week (prototype) 1 month (Patch) 1 year (Government Project) What SLA has been imposed on you? Reliability Availability Scalability What phones will run your application? (Mobile) What is your budget?
  • 10. Key Decision Points (Web) Language UI mark-up: HTML, JavaScript, Java (applet) Server-side: PHP, .NET, J2EE, Python Storage RDBMS: PostgreSQL, MySQL, SQL Server, Oracle File: Well…depends on the complexity of your mind Cloud: Amazon EC2, Cassandra Monitoring Log files: Language specific Messaging Passing: JMS, MPI Website usage service: Google Analytics
  • 11. Key Decision Points (Mobile) Language Java (Android) J2ME Python Ruby Objective C (iPhone) Storage RDBMS: Apache Derby, Java DB, Floggy, SQLite, File: Records Management Store (RMS) Monitoring HTTP: more commonly used RMS
  • 12. Case Study 1 MoTeCH
  • 13. Requirements Develop a Maternal Health Software on top of OpenMRS (MoTeCH Server) J2EE Spring, Hibernate, Quartz, Maven, Tomcat Develop a mobile app that communicates with MoTeCH Server Data Entry Query Server
  • 14. Technologies Used (Server) J2EE – Largely influenced by OpenMRS Spring: IoC, Transaction Management Hibernate: Persistence Framework Maven: Project Management MySQL: RDBMS Tomcat: Servlet Container Quartz: Scheduling EasyMock: Testing OpenXData: Mobile Data Entry
  • 15. Technologies Used (Mobile) J2ME OpenXData: Mobile Data Entry Custom Serializer library for transporting objects to server
  • 16. Case Study 2 myTXTbuddy
  • 17. Requirements Develop online bulk messaging service Must be significantly faster than current desktop applications UI must be superior to current market offering
  • 18. Technologies Used PHP: Front end marketing pages Sencha: Data Binding UI component jQuery: Front-end k3ts3 (beautification) J2EE Spring Hibernate Quartz GSON: JSON to Java Object Log4J: Logging Framework
  • 19. Key Points You must meet your requirements before experimenting Consider the number of people using the technology – COMMUNITY Be Open-minded and not religious Not the best idea to choose new technologies for a new project. Experiment with different technologies in your leisure