Anda di halaman 1dari 8

Ganbold 1

Itgel Ganbold
Professor Deby Dagher
UWRT 1102-400
April 08, 2015
Want Do I Want to Discover?
I am someone who is fascinated with mobile app development because mobile apps make
life easier. I cannot live without a smartphone! Have you ever heard or said that statement?
The average person can survive three minutes without air, three days without water, and forty
days without food. How long can you survive without a smartphone?
Since the smartphone is one of the most popular electronic devices in the world, what
makes it so special in popularity? Is it the way you can place and receive phone calls with it?
This is what makes it a phone. However, this is not what makes it a smartphone as special as it is.
The apps that can be downloaded onto smartphones make it truly special. Today, most mobile
apps use Internet connection in order to run and execute some certain tasks. So, my question is
How can I develop a mobile app with server based technology? This essay is targeted toward
Computer Science students and Mobile app developers who want to develop mobile apps with
server-based technology.
To find an answer for my question is complicated because to develop a mobile app with
server side technology is not one thing. It is a whole complex thing but I do not know how
complex it is and how to start. It took a few hours, and I have surfed over the Internet to find out
where to start. Eventually, I found a really interesting peer reviewed article, which is related to
my question. In this article, Mateo showed the three core things about an app with server-based
technology. Database, server and client are three core principles that I need to understand to

Ganbold 2
develop apps. What is a Database Management System (DBMS)? What kind of technology do I
need use on the server side? These are the questions it raised for me.
Margaret Rouse who writes for and manages WhatIs.com, TechTargets IT encyclopedia
and Learning Center has said about DBMS If the database is a file of information, then the
DBMS is the file folders, the file labels and the file cabinet (whatis.com). From my perspective,
database is a place where we can store data, and DBMS is a collection of software, which we can
work with databases. I have found an amazing book about databases. The name of the book is
Expert MySQL. I have explored following things from Expert MySQL (Bell XXV).
Structured Query Language (SQL) is used for databases. By using this language, every
application stores their data on a database. The databases could be anywhere in the world. There
are two types of databases. One is centralized database. Another one is distributed database. The
basic difference between these two is the number of databases. A centralized database has one
database but it is slow because the whole network traffic is focused on one network. On the other
side, distributed database has two or more databases that separates network traffic but those
databases take time to synchronize their data with each other (Bell 23). Now, lets talk a little
more about DBMS. There are four types of DBMS: Navigational DBMS, Network DBMS,
Relational DBMS and Object Oriented Relational DBMS (Bell 27). First, Navigational DBMS is
based on hierarchy that is similar to a tree but this type of DBMS is barely used nowadays.
Secondly, Network DBMS supports many to many relationships that usually result in complex
database structures. Third, Relational DBMS defines database relationships the form of tables.
This is the most popular DBMS in the world. The last one is an Object Oriented Relational
DBMS that stores data in the form of object that require attributes. Based on what I learned, I
designed the database for my app. While I was scheming, I learned about database normalization,

Ganbold 3
which reduces the data redundancy from a book named Pro MySQL (Kruckenberg and Pipes
260).
What kind of technology do I need to use on the server side? I went to Mohamed Shehab
who is an associate professor of software and information systems to find an answer for my
question. He said I had better to use RESTful API, which is a really convenient way to transfer
and share data between client and server (Shehab). This raised more questions. How can one
make a connection between a server and database? What is RESTful API and how I use it?
Professor Shehab guided me to the right direction. At that time, we did not have time to cover all
of those concepts. He said I need to learn about JDBC to connect database with server and JSON
to produce and consume data on the server side (Shehab). It brought up again more questions.
What are JDBC and JSON?
Here is a description about JDBC in Oracle web site The JDBC API is a Java API that
can access any kind of tabular data, especially data stored in a Relational Database
(oracle.com). Now it makes more sense, and it seems JDBC is just a connector to Relational
Database. However, there are still more questions. I have not found any good resource about
RESTful API and JSON yet.
A peer reviewed article by Ong, Cholia, Jain, Brafman and Gunter, said The Materials
Project RESTful API allows users to directly access Materials Project data via the Hypertext
Transfer Protocol (HTTP), and provides an efficient way for users to programmatically query for
materials information instead of relying on browser-based interfaces (Ong et al.). This is what I
think about RESTful API. It seems RESTful API is nothing special and it is just web service
which is really easy to use. After I have read the whole article, I understood better about
RESTful API and JSON. This is what I understood. Materials API changes the way of

Ganbold 4
communication between applications. In this view, MongoDB, NoSQL or MySQL, which are
databases that store all the data in the back end. The Materials API uses REST which is an
architectural style that makes API simple to use for other client side apps. HTTP has methods
POST, GET and so on, which are used to retrieve and create the data. In this case, data could be
called media. There are several media types that are XML, JavaScript Object Notation (JSON)
and so on. JSON is more readable for humans, which is simple to understand because XML is
more readable for machines (Ong et al.). Based on what I discovered, I attempted to consume
and produce JSON on the server side by using RESTful architecture. I had spent fourteen days
because it was hard to execute and implement theories in real life. Here is the link for my
RESTful API:
http://api-studentcenter.rhcloud.com/REST/V1/recordService/get.
After I had finished the server side, more questions came to my mind. How do I get
JSON media from RESTful API onto mobile app? I surfed over the Internet to find some
information from the search engine but the information that I found was so confusing to
understand for me. Then, I went to meet with Professor Shehab, and he recommended me to read
Dave MacLeans Expert Android (Shehab). In this book, author elaborated further on many
good topics. I found my answer in chapter four. The writer describes and teaches about how get
JSON media. The author also describes five types of android storage. Every one of them has own
pros and cons. In addition, I need GSON library to convert JSON to java object and back. GSON
is one of Googles projects, which is really easy to use. MacLean said, GSON improves the
efficiency of android apps, which work with APIs. Because of simple usage, GSON is very
popular among Java and Android developers (Komatieni and MacLean 81). It leads me to
another question. How to load JSON media faster and safer? Since Google owns Android, I

Ganbold 5
decided to look through their developer page. Googles new networking library for Android is
called Volley. Volley developers team said Volley is a library that makes networking for
Android apps easier and most importantly, faster (developers.google.com). From my
perspective, Volley library is not for downloading huge data but it seems suitable for small app
like mine, which does not need to download huge amounts of data. After I read, I planned to use
it on my project. It was really easier to use than AsyncTask, which is for android threading.

It is not possible to write every single step that I did to explore and learn these things.
There were huge coding and configuration parts to finish my project. If you are more curious
about coding and configuration parts, you are able to find further information from reference
section.
The most significant answer for my question How to develop a mobile app with server
based technology? is to understand three main concepts that are a database, a server and a
client. These three principles are very broad to explore. It is hard to develop a mobile app
without understanding one of these three main concepts. I know that sounds complicated and
hard but once we start something that matters based on our passion, we will not see difficulties
because we love it.
To explore things based on my passion is amazing. At the very beginning, I was not
expecting to explore, learn and understand what I have gotten today. I understood a few
significant things, which are effective in my life. The one of them is how to think critically. I
changed my purpose for going to university from learning to training my mind to think. Another
crucial thing that I understood is how important it is to start what I want to do. Most people do
not start because of procrastination. When is your one day to start?

Ganbold 6
About my research, if I had my more time to explore, I would like to explore about
Parse.com and Bluemix.net. These websites provide services so that developers do not have to
worry about database and server.

Ganbold 7
Works Cited
Bell, Charles A. "Expert MySQL." Expert MySQL. N.p., n.d. Web.
Enck, W., Ongtang M., and McDaniel P. "Understanding Android Security." IEEE Security &
Privacy Magazine 7.1 (2009): 50-57. Print.
"Google I/O 2013: Volley: Easy, Fast Networking for Android." Volley: Easy, Fast Networking
for Android Google I/O 2013. N.p., n.d. Web. 06 May 2015.
Inoue, T., Sato H., Takahashi N., Asakura H., and Uematsu Y. "Web API Database Systems for
Rapid Web Application Development." IEICE Trans Inf Syst IEICE Transactions on
Information and Systems E93-D.12 (2010): 3181-193. Print.
Jackson, Wallace. "Pro Android UI." Pro Android UI. N.p., n.d. Web.
"JDBC Architecture." (The Java Tutorials JDBC(TM) Database Access JDBC Introduction).
N.p., n.d. Web. 2015.
Kalali, Masoud, and Mehta Bhakti. "Developing RESTful Services with JAX-RS 2.0,
WebSockets, and JSON." Developing RESTful Services with JAX-RS 2.0, WebSockets,
and JSON. N.p., n.d. Web.
Komatineni, Satya, and MacLean Dave. "Expert Android." Expert Android. N.p., n.d. Web.
Kruckenberg, Michael, and Pipes Jay. "Pro MySQL." Pro MySQL. N.p., n.d. Web.
Mateos, C., Zunino A., Arroqui M., and Machado C. "RESTful Web Services Improve the
Efficiency of Data Transfer of a Whole-farm Simulator Accessed by Android
Smartphones." Comput. Electron. Agric. Computers and Electronics in Agriculture 87
(2012): 14-18. Print.
Myers, Brad A., Jeong Young Sae, Xie Young Yingyu, Beaton Young Jack, Stylos Young Jeff,
Ehret Young Ralf, Karstens Young Jan, Efeoglu Young Arkin, and Busse K. Daniela.

Ganbold 8
"Studying the Documentation of an API for Enterprise Service-Oriented Architecture."
Journal of Organizational and End User Computing 22.1 (2010): 23-51. Print.
Oehlman, Damon, and Blanc Sebastien. "Pro Android Web Apps Develop for Android Using
HTML5, CSS3 & JavaScript." Pro Android Web Apps Develop for Android Using
HTML5, CSS3 & JavaScript. N.p., n.d. Web.
Ong, Shyue Ping, Cholia Shreyas, Jain Anubhav, Brafman Miriam, Gunter Dan, Ceder Gerbrand,
and Persson A. Kristin. "The Materials Application Programming Interface (API): A
Simple, Flexible and Efficient API for Materials Data Based on REpresentational State
Transfer (REST) Principles." Computational Materials Science Computational
Materials Science 97 (2015): 209-15. Print.
Rouse, Margaret. "What Is Database Management System (DBMS)? - Definition from
WhatIs.com." SearchSQLServer. N.p., n.d. Web. 2015.
"What Kind of Technology Do I Need to Use on the Server Side?" Interview by Mohamed
Shehab. 20 Feb. 2015.

Anda mungkin juga menyukai