the future of software development based on cloud & mobile computing
DESCRIPTION
Presentation by Director of Software Park (Thailand) at Oracle Developer Day (Bangkok) 18 NovTRANSCRIPT
The Future of Software Development Based on Cloud
& Mobile Computing
Assoc.Prof. Dr. Thanachart NumnondaDirectorSoftware Park Thailand18 November 2010
Next Major Computing Cycle
Source: Morgan Stanley 2009
Source: Morgan Stanley 2010
Tablets
SmartPhones
New Trends
Web 2.0
Web as a Platform
OS/Device independence
Large scale computing
Software as a Service
Cloud Computing
Gartner Trends 2011 Cloud computing
Mobile Applications and Media Tablets.
Social Communications and Collaboration.
Video.
Next Generation Analytics.
Social Analytics.
Context-Aware Computing.
Storage Class Memory.
Ubiquitous Computing.
Fabric-Based Infrastructure and Computers.
Mobile Apps Industry Is HugeIt is currently estimated at $7 billion,
with expected increase to almost $17.5 billion in 2012
[GetJar]
Fragmentation In The Mobile World
Different OS
Different Hardware
Different ScreenSize
Different Input Method
Categorization of mobile app Developement
Low-end platforms– Sms, JavaCard
Mid-level phones platforms– Java ME
Smartphone platforms– iPhone, Android, Blackberry, Symbian
Source: Wilfred M. Mworia; Mobile BootCamp 2009
iPhoneLanguage: Objective-C ; CocoaTouch frameworkDifficulty: Very steep learning curve but gets much easier after thatTools:
Hardware: Mac (pretty expensive)
Software: Xcode (free); iPhone SDK
Pros:
Very comprehensive APIs, very well documented
The iPhone is a great platform esp for consumer level apps
Ready online market place for your apps
Free tools (once you have the costly hardware)
Cons
Very different programming style
Expensive to get a handset to test on
You need specific hardware
Marketplace controlled by Apple; 70-30 revenue sharing; Apps have to be approved by Apple first
Source: Wilfred M. Mworia; Mobile BootCamp 2009
Android
Source: Wilfred M. Mworia; Mobile BootCamp 2009
Language: JavaDifficulty: Intermediate to advanced Java & J2METools:Hardware: PC or MacSoftware: Eclipse is the editor of choice; Android SDK
Pros:Familiar programming modelVery comprehensive APIs, very well documentedReady online market place for your appsOpen source OSOpen Handset Alliance creates a strong backingFree tools
ConsThe platform is still young,
Symbian
Source: Wilfred M. Mworia; Mobile BootCamp 2009
Language: Mainly Native Symbian C++; Java ME, Flash & Python RuntimesDifficulty: Challenging for C++; Java ME more familiar; more control with C++Tools:Hardware: PCSoftware: Symbian Application Development Toolkit (ADT); SDKs e.g. Nokia S60 SDK
Pros:Familiar programming modelVery comprehensive APIs, very well documentedReady online market place for your appsOpen source OSSymbian Foundation backs the development of SymbianHandsets are readily availableMany device types and manufacturers – Samsung, LG, NokiaFree tools
ConsNeeds some good experience with C++
BlackBerry
Source: Wilfred M. Mworia; Mobile BootCamp 2009
Language: Several options: Java, .NET, Difficulty: For Java, if you are familiar with J2ME you’ll be great. .NET is by nature not so hardTools:Hardware: PCSoftware: For Java: Plugin for Eclipse, Blackberry JDE; For .NET: Plugin for VS; MDS Studio
Pros:Options for programming languages and toolsVery comprehensive APIs, very well documentedGood for enterprise appsHandsets are readily availableFree tools
ConsIMHO perhaps not the best for consumer appsWriting apps for different Blackberry devices can get tricky; have to pick the right version of tools for the right OS versionOnly one device manufacturer RIM
General Guidance to Smartphone Development
Pick a platform
Learn a bit about the OS in general– Understand the environment in which your app will
run
– How the OS treats scenarios like multi-tasking
– Could help with things like performance tuning
Get the tools
Learn the APIs
Design is key for consumer apps
Source: Wilfred M. Mworia; Mobile BootCamp 2009
Mobile App Stores
Nokia has most paid apps
Cloud Computing is Internet-based computing, whereby shared resources, software,
and information are provided to computers and other devices on demand, like the electricity grid.
Definition (Wikipedia)
Xxx as a ServiceInfrastructure as a Service (IaaS)
Platform as a Service (PaaS)
Software as a Service (SaaS)
Hosting Java web apps traditionally
Not so popular except enterprise
High rates as compared to PHP hosting
Shared Tomcat instance among users
Restrictions on any time deployments due to shared server
Dedicated hosts works fine but they are costly
You end up with this
Java in the Cloud
Amazon EC2 - freedom
Goolge AppEngine - restricted Java
Microsoft Azure - mainly for MS apps, Java support exists
Stax.
Amazon EC2
Freedom
No limits, pay as you use
Many tools
Many softwares available for EC2
Google AppEngine
Restrictions– Datastore with JPA, no DB,
– Java 5 and 6, sorry no JDK1.4
Not supported– EJB, JAX-WS, JDBC, JCA, JMS
Supported– Struts, Spring, JSP, Servlet
Java app quota limits
Microsoft AzureSupports Java
Eclipse plug-in
Stax
Based on Amazon EC2
Focused on Development/QA
Tools for monitoring, more to come
In Beta now
Tomcat only, plans to add new containers
Struts, Wicket, Spring, Hibernate, GWT, Flex and more.
EC2 tailored for Java apps
Additional Tech Trends
91 percent anticipate cloud computing will overtake on-premise computing as the primary way organizations acquire IT over the next five years
Mobile and cloud computing are followed by social media, business analytics and industry-specific technologies as the hottest IT career opportunities beginning in 2011
Techology Trends 2011
One Day Free Seminar
16 December 2010 : 9.00 - 16.30
Software Park (Thailand)
Top Technology Trends:
Cloud Computing : How it effect the software industry?
Mobile Applications : Which Platform?
Social Communication & Collaboration
Thank you
[email protected]/thanachartwww.facebook.com/thanachartwww.swpark.or.th