View
710
Download
4
Category
Preview:
Citation preview
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?
Recommended