Technology Choosing Strategies for Web and Mobile Applications

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?