Você está na página 1de 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 E2, 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?

Você também pode gostar