An approach to rapid development of modern ubiquitous Internet applications: Exploring the benefits of reusable server side components
MetadataShow full item record
Popular Internet applications can grow rapidly into millions of users. This is an important challenge for application developers, as failing to handle increasing load can disrupt an application s popularity surge and cause massive monetary losses.Many popular applications are ubiquitous, meaning they are used not only from web browsers on desktop computers, but also handheld devices, as well as other services operating on servers, connecting to the application via an Application Programming Interface (API). For traditionally designed web applications, this ubiquity is hard to achieve, as the difference in architecture creates a barrier for reusability of server side code.Using a design science research methology, this report details an approach to solving scalability issues and greatly improving reusability and development speed for modern ubiquitous Internet applications. The crux of the approach is a bare-essentials data access and user management API, whose implementation is intended to serve as the entire server side of the application.For applications that can cope with its reduced feature set, it has several major advantages. API implementations are interchangeable, eliminating vendor lock, and also completely reusable across applications, saving development effort. Presentation and application logic is shifted to the client side, reducing server strain, and the API is easily implemented with a modern, hyperscalable data store in a cloud environment, providing great elasticity and scalability.The functionality of the API is derived from an analysis of target applications, and the approach is evaluated through the development of a prototype, a blog application with clients for several platforms. The prototype development process reveals some architectural and practical limitations to the design, but also showcases the power of reusable components when those components are readily available.The approach presented here is not ideal for all types of applications. However, when applicable, it helps developers save time and overcome these important challenges in application development.