Saturday, July 4, 2020

Tech Topic: Web and Mobile Apps

Let us discuss web and mobile apps. It is a topic that touches most categories of information technology. When it comes to integrating technology into our lives, web and mobile apps are on the cutting edge.

Before smart phones were prevalent, web apps were mobile, but only as mobile as the computer and internet connection. It meant that the applications usually had a whole machine to utilize. Today's apps run with limited local processing power and storage and use cloud resources for storage and processing. Web and mobile apps are also highly compatible. Many mobile apps have a version for the two most popular mobile platforms, Android and Apple, meaning that they can run on most mobile devices. The web version of mobile apps usually has a version for all common browsers.

Mobile apps are built in such a way that the work of the apps is split between the client (phone or browser) and the server (web or application server). Historically, computers started as giant machines that handled all tasks (Markus, 2010). Client terminals sent and received information but did no actual processing work. The processing work required powerful servers.

As the workload increased in volume and number of users, the servers and network were upgraded to match. The client-side machines were 'dumb terminals' and, therefore, inexpensive. Once the personal computer came along, it took over much of the processing done on the servers (Markus, 2010). It meant that the need for big-powerful servers was decreasing. If a user could do the processing for their job on a local PC, there was less of a need to invest in large, expensive server hardware. As mobile computing became more prevalent, and the capacity for processing and storage increased, the balance between client and server evolved. Today, a typical web application has code that runs on the mobile device and code that runs on the server. The server often handles tasks that require fast processing, such as voice recognition. Functions that require local hardware, such as location, image capture, and sound rendering, are handled by the mobile device. Web apps are usually downloaded to the browser in the form of Javascript. These applets run on the local device inside the browser and communicate with server-side applications that access databases and other resources (Abriata et al., 2018). This modern approach allows an organization to invest in its client, server, and network architecture to best fit their needs.

As stated earlier, web and mobile apps can run on many types of systems. Releasing an application compatible with the hardware in homes and businesses was an unreasonable feat in the past. Today, we have apps that run in a web browser, which means nearly 100% compatibility for the population of technology users. To accomplish this hardware-agnostic world, hardware and operating systems have gone through a significant evolution. There is an increased abstraction between the layer of executing code and the running of the application. Operating systems communicate with hardware and present a compatible gateway to interact with the world of software. In addition to browser apps, languages such as Java were created to 'run anywhere,' and it is surprising how many devices support it (Leun, 2017). To accomplish this, Java is compiled to bytecode or basic instructions for the Java engine to accomplish (Leun, 2017). Each operating system vendor utilizes a Java runtime engine that does the instructions in the bytecode when the Java is run. Compiled Java programs can often be copied and run on any platform without recompilation.

When it comes to developing applications, many languages can be used to create web and mobile apps. It is essential to make a distinction between web and mobile apps. Web apps run inside a browser. They can often run on mobile devices by using a mobile browser. Mobile apps are designed to run on non-PC hardware such as mobile phones and tablets. HTML, CSS, and Javascript are the key players for web applications. Mobile apps typically are programmed with a C or Java variant, depending on the platform (Lamhaddab et al., 2019). Mobile apps are usually done using a development environment that runs on PCs, which can emulate a mobile phone. Web apps are also done using a development environment. Both app types can include server-side applications that 'serve' data to the running application. These server-side applications can be written using many different languages, depending on the types of servers used. Some server environments, such as IBM i, allow mapping of native programs to SQL stored procedure calls (Bedoya, 2016). It allows a mobile app to gain access to these native programs with SQL, instead of concern for a platform-specific call.

Web and mobile apps have opened up the doors to the world-wide release of applications. It is excellent news for humanity, but it comes with many liabilities. Securing the applications and related data is an ongoing concern for business owners and managers. The proprietors of these web and mobile apps must guard against malicious actions that could result in data breaches, denial of service attacks, and utilization of their servers for illegal purposes (Vahid et al., 2017). The trick is that simply locking down the application is rarely an option. Businesses want their apps in the hands of users, and users do not like to jump through hoops and red tape to install them. In other words, the businesses want their doors wide open to reach the biggest audience. Business owners must secure their network and servers, and ensure that their software is free of bugs that cause vulnerabilities. In addition to that, information technology is evolving rapidly. Web and mobile app providers must evolve along with it as new bugs and vulnerabilities are discovered. They must keep their staff educated to avoid internal phishing attacks as well.

If all of that were not enough, there is more reason for concern. Scalability must be maintained. If a user rents a tiny bit of space with a small cloud provider and releases an app that goes viral, the results could be catastrophic for both the app and the small cloud provider. Scalability is a big concern due to the sheer number of potential users of an application. Many big players allow scalability to be built-in, such as Amazon and their Amazon Web Services (Vahid et al., 2017). A user can release an app and see how big it gets. As the app grows and needs more resources, the cloud provider's plan can also increase. It alleviates the need for significant up-front investment by the developer.

Web and mobile apps represent the present and future of information technology. The idea of developing an app and knowing the entire audience is a concept that is fading from the information technology landscape. Today, rather than focusing on decisions such as 'which platform?' and 'which audience?' we can let the developer concentrate on development.

References

Abriata, L. A., Rodrigues, J. P. G. L. M., Salathé, M., & Patiny, L. (2018). Augmenting Research, Education, and Outreach with Client-Side Web Programming. Trends in Biotechnology, 36(5), 473–476. https://doi-org.proxy-library.ashford.edu/10.1016/j.tibtech.2017.11.009

Bedoya, H., Bainbridge, J., Bestgen, R., Cain, M., Cruikshank, D., Denton, J., ... & Pacchiarini, S. (2016). SQL Procedures, Triggers, and Functions on IBM DB2 for i. IBM Redbooks.

Lamhaddab, K., Lachgar, M., & Elbaamrani, K. (2019). Porting Mobile Apps from iOS to Android: A Practical Experience. Mobile Information Systems, 1.

Leun, V. V. D. (2017). Introduction to jvm languages. Retrieved from https://ebookcentral-proquest-com.proxy-library.ashford.edu

Markus, M. L. (2010). On the usage of information technology: The history of IT and organization design in large US enterprises. Entreprises et Histoire, issue 60, p17-28.

Vahid, F., Lysecky, S., Wheatland, N., Lysecky, R., & Edgcomb, A. (2017). INT 100: Fundamentals of Information Technology & Literacy. [Electronic Version]. Retrieved from: https://learn.zybooks.com/zybook/ASHFORDINT100AcademicYear2018

No comments:

Post a Comment