January 2016
A cooperative project between
NTT DATA, Inc. and University of Texas Dallas
“Platform Agnostic
• Today, number of cell phones (iPhones, Androids, MS Phones, Huawei, others) counts in billions.
• Cell phones are the dominant communication devices.
• If a business wants to advertise or communicate with its customers, it can ignore cell (smart) phones only at its own peril.
• The largest number of smart phones are Androids, but iPhone numbers
remain strong. iPhone is more popular among younger people with stronger purchasing power making iPhone hard to ignore. Microsoft’s numbers are not negligible either.
• A business could not develop mobile applications just for Android. The same applications must be produced for iPhone and even for Microsoft phone. Does this mean doubling or tripling of development effort.
• Several software vendors are offering or designing new development tools and platforms that enable developers to develop mobile applications once and run them everywhere (on iPhone, Android, MS Phone, and others.). • Some interesting tool makers are:
•
Adobe with PhoneGap
•
Appcelerator with Titanium
•
Kony with Kony Studio
•
Apigee with Ignite Engine
• OpenMEAP
• Big software vendors, like SAP, IBM, Amazon AWS, do not want to be left behind and are making very credible offerings themselves
Proliferation of tools makes it difficult for a business starting a new
• In order for Mobile Apps to provide business value they must consume and provide data and most importantly perform transformations of those data through various services.
• Software Industry is moving most rapidly towards RESTful Web Services as the mechanism for service delivery.
• In particular, it appears that Node.js and various server side JavaScript frameworks built around Node.js provide highly performant and scalable tools for building such services.
• This development is highly fortunate since RESTful services are platform independent and moderately easy to design and implement.
• Requirements for storage and retrieval of data and information relevant for Mobile Apps are spilling over capabilities of traditional Relational Database Management Systems.
• Many new products able to scale to data volumes and numbers of users required by Mobile applications are emerging. Some of the names in the filed are: Cassandra, MongoDB, VoltDB, Apache UserGrid, and others. • New development effort has to select one of those by trying to match
database characteristics, development convenience and other features to the requirements of the mobile app that needs to be developed.
• Cloud computing, is Internet-based collection of computing service, where shared resources, computers, computational services, data and information are provided to customers on-demand.
• A good portion of existing Mobile App developers choose to deploy their applications in the Cloud.
• Primary reasons for such decision are no-cost of entry, meaning that Cloud typically does not require initial capital expenditure, ability of Cloud to
provide “infinite” scalability and not the least availability of large number of ready for use infrastructure services.
• Typical Cloud provider (Amazon AWS, MS Azure, Google, and others) for example offers messaging (notification) services with infinite capacity and global reach.
• Typical Cloud providers offer built in monitoring services allowing you to track performance of your applications and even use analytical tools to
• After an initial review of existing tools and vendors, the team will select 3 or 4, preferably open source, tools (platforms) for multi-platform development of mobile applications.
• Using selected tools the team will go through the process of designing, developing and deploying a moderately complex Mobile application on all selected platforms.
• Selected application will consume data related services and push notifications to its users.
• Deployed applications will be tracked and their performance monitored and predicted in order to maintain desired response time visible to customers. • Applications will be deployed in the Cloud (Amazon AWS) using the help of
AWS Mobile Hub.