Technology Selection Strategies for Web and Mobile Applications <br />Henry Sampson<br />
Is this worth our time?<br />What is the time?<br />
Is this worth our time?<br />Now, what is the time?<br />
Is this worth our time?<br />This is similar to our technology landscape today<br />The internet is filled with tons of la...
Is this worth our time?<br />There are over 2000 High Level languages today [http://www.cs.man.ac.uk/~pjj/cs1001/software/...
Is this worth our time?<br />Making such decisions are at the core of Software Development<br />Difference between deliver...
How are we making decisions today?<br />Religious Affiliations<br />Some are devoted to <br />.NET<br />Java<br />Ruby<br ...
Questions to Consider<br />Who or why are you developing the application?<br />Enterprise<br />Personal<br />Leisure/Fun<b...
Questions to Consider<br />How soon are you to finish?<br />1 week (prototype)<br />1 month (Patch)<br />1 year (Governmen...
Key Decision Points (Web)<br />Language<br />UI mark-up: HTML, JavaScript, Java (applet)<br />Server-side: PHP, .NET, J2EE...
Key Decision Points (Mobile)<br />Language<br />Java (Android)<br />J2ME<br />Python<br />Ruby<br />Objective C (iPhone)<b...
Case Study 1<br />MoTeCH<br />
Requirements <br />Develop a Maternal Health Software on top of OpenMRS (MoTeCH Server)<br />J2EE<br />Spring, Hibernate, ...
Technologies Used (Server)<br />J2EE – Largely influenced by OpenMRS<br />Spring:  IoC, Transaction Management<br />Hibern...
Technologies Used (Mobile)<br />J2ME<br />OpenXData:  Mobile Data Entry<br />Custom Serializer library for transporting ob...
Case Study 2<br />myTXTbuddy<br />
Requirements <br />Develop online bulk messaging service<br />Must be significantly faster than current desktop applicatio...
Technologies Used<br />PHP: Front end marketing pages<br />Sencha: Data Binding UI component<br />jQuery:  Front-end k3ts3...
Key Points<br />You must meet your requirements before experimenting<br />Consider the number of people using the technolo...
Questions?<br />
Upcoming SlideShare
Loading in …5
×

Technology Choosing Strategies for Web and Mobile Applications

876 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
876
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Technology Choosing Strategies for Web and Mobile Applications

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

×