Book Image

Ruby on Rails Web Mashup Projects

Book Image

Ruby on Rails Web Mashup Projects

Overview of this book

Table of Contents (14 chapters)
Ruby on Rails Web Mashup Projects
Credits
About the Author
Acknowledgements
About the Reviewer
Preface

What can I do with web mashups?


So what is in it for you? I assume you are a programmer, either professional or amateur, looking perhaps to extend your repertoire of skills and capabilities to develop and maintain software more easily, better, and faster.

Web mashups represent a new way of developing software and along with any new development techniques come opportunities and risks. Here's an example of what you can do with mashups:

  • Create a platform for a new breed of applications

  • Provide access to a large set of external data and service sources

  • Innovate and create extra value for your existing applications quickly

  • Save on development and maintenance

  • Leverage on common or widely available external applications and integrate them into your application

As a new breed of applications

Web mashups are a new breed of web applications (Wikipedia defines a mashup as a web application hybrid). While most prominent web mashups use publicly available APIs like Google Maps, Amazon ECS, and so on, this is not the only way to do mashups. Significant innovation can be achieved with further aggregation and hybridization of code and data from publicly available APIs, with private data as well as private applications.

The idea behind web mashups is creativity and innovation in new data and services, not just aggregation of existing ones, which most of the older technologies focus on. In comparison with portals, web mashups differ because portals aggregate and dish out content and applications in discrete packages, whereas mashups integrate the data and services together and serve them out as a single application.

An example of this is that while a portal will happily display a map of your current location, your address book, and today's astrology readings in 3 different portlet windows, a mashup will display the astrology readings of 10 of your friends who are closest to you, in an online map occupying the whole browser space.

This integrated and mashed up approach to programming can provide much insight into the way we program applications.

Access large sets of external sources

There are an increasing number of applications on the Internet providing an amazing variety of data and services as APIs or data sets for mashups. A quick check on the Programmable Web (http://www.programmableweb.com), which hosts a directory listing mashup APIs as well as mashup applications, shows up service APIs ranging from social networks to sending snail mail through the Internet. You can also get tons of data from hotel bookings to government spending data.

With the wealth of these external data sources, you can build amazing new applications that bring these data and services into meaningful new services. While mashups are not the only way to consume large sets of external sources of data and services, they are probably the most creative. Buzzword aside, anytime you take data or services from another application, you're already doing a mashup.

Innovate and create extra value for your application

If you have an existing application already, web mashups can allow you to innovate and create new value to your application by grafting new functionality through the external sources. For example, if you run a reservation application, you can alert your user through text messages from an SMS mashup API, add the date of reservation into his or her Google Calendar account through Google Calendar APIs, and show the location of the venue on Yahoo Maps.

Save on development and maintenance

Using mashups you can build new functions much faster and save on the development and maintenance effort. For example, if you are the developer of a facilities reservation system you don't want to spend time mastering the development of a text message sending component, which you normally would have to do if you wanted to have that feature.

Besides development, you can also reduce the maintenance of a feature that is outside your core domain. While this is often critical for startups, it is equally important for larger organizations that want to focus on their core domain. In the example given earlier, you don't want to spend time developing and maintaining a text-messaging component—you'll want to leave it to the text-messaging experts to do their job.

Leverage on and integrate common and widely available external applications

Besides saving on effort, instead of doing it yourself—you might want to leverage on common and popular applications to do the work for you. Effort aside, such applications already have a widespread user base that is familiar with the functionality. You can tap these users to extend your own user base and use the features of these applications to give an easily recognizable interface for your users.

For example, if you want online calendaring features, you wouldn't want to redevelop another Google Calendar. Instead, you would mash up Google Calendar APIs into your application and use their interface to provide something more familiar to your users.