technology choosing strategies for web and mobile applications

20
Technology Selection Strategies for Web and Mobile Applications Henry Sampson

Upload: henry-sampson

Post on 11-May-2015

708 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Technology Choosing Strategies for Web and Mobile Applications

Technology Selection Strategies for Web and Mobile Applications

Henry Sampson

Page 2: Technology Choosing Strategies for Web and Mobile Applications

Is this worth our time?

• What is the time?

Page 3: Technology Choosing Strategies for Web and Mobile Applications

Is this worth our time?

• Now, what is the time?

Page 4: Technology Choosing Strategies for Web and Mobile Applications

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

Page 5: Technology Choosing Strategies for Web and Mobile Applications

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 ]

Page 6: Technology Choosing Strategies for Web and Mobile Applications

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

Page 7: Technology Choosing Strategies for Web and Mobile Applications

How are we making decisions today?

• Religious Affiliations– Some are devoted to • .NET• Java• Ruby• Erlang

• Company Policy• Knowledge and familiarity

Page 8: Technology Choosing Strategies for Web and Mobile Applications

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

Page 9: Technology Choosing Strategies for Web and Mobile Applications

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?

Page 10: Technology Choosing Strategies for Web and Mobile Applications

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

Page 11: Technology Choosing Strategies for Web and Mobile Applications

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

Page 12: Technology Choosing Strategies for Web and Mobile Applications

Case Study 1

MoTeCH

Page 13: Technology Choosing Strategies for Web and Mobile Applications

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

Page 14: Technology Choosing Strategies for Web and Mobile Applications

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

Page 15: Technology Choosing Strategies for Web and Mobile Applications

Technologies Used (Mobile)

• J2ME– OpenXData: Mobile Data Entry• Custom Serializer library for transporting objects to

server

Page 16: Technology Choosing Strategies for Web and Mobile Applications

Case Study 2

myTXTbuddy

Page 17: Technology Choosing Strategies for Web and Mobile Applications

Requirements

• Develop online bulk messaging service• Must be significantly faster than current

desktop applications• UI must be superior to current market offering

Page 18: Technology Choosing Strategies for Web and Mobile Applications

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

Page 19: Technology Choosing Strategies for Web and Mobile Applications

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

Page 20: Technology Choosing Strategies for Web and Mobile Applications

Questions?