Application Development Tools and Frameworks

Application Development Tools and Frameworks

Valentin Cristea (Politehnica University of Bucharest, Romania), Ciprian Dobre (Politehnica University of Bucharest, Romania), Corina Stratan (Politehnica University of Bucharest, Romania) and Florin Pop (Politehnica University of Bucharest, Romania)
DOI: 10.4018/978-1-61520-703-9.ch010

Abstract

Large scale distributed systems are used for executing a wide variety of applications; while the first distributed applications were from the scientific area, today many of them are dedicated to businesses or even to home users. The constantly increasing demand for large scale distributed applications has brought on a need for tools and frameworks that ease their development. The main role of these tools and frameworks is to assist the developer in implementing some common functionalities and patterns that are specific to distributed applications – for example, dividing a large computational task into smaller subtasks to be executed on multiple machines, or sending e-mails automatically, or managing the access to resources in a secure way. One of the most important issues that the application development frameworks have to address is the abstraction of the underlying middleware: their main objective is to relieve the application programmer from the effort of dealing with lowerlevel components. Another important aspect is the performance of the communication among the application components; hence, some development tools are specifically targeted to optimizing the communication performance. We also observe an increasing interest in the interoperability among applications developed with different platforms, which has led to many standardization initiatives. This chapter discusses the issues introduced above, and makes an overview of the current tools and frameworks for developing various types of distributed applications. We start with web applications, which are the most frequently used nowadays; we introduce some general design issues, and present tools for server-side and client-side programming. Then, we discuss about developing applications in grids, clouds and peer-to-peer systems; we present the specific aspects of programming applications in these types of systems and introduce some of the most widely used tools and frameworks. The last section is dedicated to distributed workflows – complex applications that are composed of multiple smaller applications or services; the development and execution of workflows poses more challenges compared to traditional applications, requiring specific tools and runtime environments.
Chapter Preview
Top

Web Application Development

Web applications are applications that are accessed over a network, with the aid of a web browser, and use the Hypertext Transfer Protocol (HTTP) for communication. A special case are the web services, applications that also use HTTP and standardized messages for communication, but their results are intended to be used by other applications rather than by humans. The popularity of Web applications is constantly increasing as they are beginning to cover more and more domains – online commerce and banking, webmail, e-government, wikis, weblogs and others.

The World Wide Web has undergone a significant evolution since its invention by Tim Berners-Lee at the beginning of the 1990s. The scientist from CERN had the initiative of putting together hypertext and Internet technologies, to create a collection of hyperlinked documents accessible to anyone who had an Internet connection. Since then, multiple changes have occurred in the networking hardware, in the development technologies, in the structure of the users community and in many other aspects. These changes had an important impact on the philosophy behind the World Wide Web, and in order to mark their occurrence the community has added “version numbers” to the Web concept. Thus, at the moment of writing this book most of the current applications follow the Web 2.0 principles, while the Web as it was originally created has been retroactively tagged as “1.0”. Researchers are already looking ahead at Web 3.0, which will evolve in the next decade.

Although the version numbers may suggest the change of a technology, the differences among 1.0, 2.0 and 3.0 are rather in the principles that stand behind Web applications: how the content is generated, how the information is processed and interpreted, how the users interact with (and possibly participate to) the application, how the application is designed etc. It is difficult to make a clear distinction between the versions – precisely because they are not actual versions but terms adopted by the community; for example, many of the current applications have both Web 2.0 and Web 1.0 features. Table 1 summarizes the principles on which Web 1.0, 2.0 and 3.0 are based; Lassila & Hendler (2007) and Cho (2008) provide a more in-depth discussion on this topic and also some historical facts.

Complete Chapter List

Search this Book:
Reset