Since the early 2000’s their have been many developments within the web development. This has come in the form of economic, social, and technological innovation within the online space. These new changes have been used for many different means, private and public.
To try and define this change the phrase Web 2.0 was coined. The first mention was in 1999 where it was described along the lines of more screens, more pipes, more information in an article by DiNucci; however in the current context this could be seen as the Internet of everything definition. But more understood definition was given by Tim O’Reilly in 2007 in reflection to events. He defined it by 7 chariteristicas:
- Services, not packaged software, with cost-effective scalability
- Control over unique, hard-to-recreate data sources that get richer as more people use them
- Trusting users as co-developers
- Harnessing collective intelligence
- Leveraging the long tail through customer self-service
- Software above the level of a single device
- Lightweight user interfaces, development models, AND business models
This was achieved by giving a narrative to the business sector, however he talked about Web 2.0 businesses having already existed pre dot-com bubble, and that these where the one which survived as they drew on collective intelligence. However it has been acknowledge that these companies existed however distinctly identified that these companies became Web 2.0 companies after the dot-com boom as this was when the companies embraced the nature of social along with the advances in different technologies and the emergence of agile development frameworks. This is backed up by academics defining it as a paradigm on how people used the internet, along with making it more accessible to none technical users. Thus a common narrative is of utilising a social dimension, this has then lead the Internet from a read only systems where data was consumed to a read/write where the users are helping to generate the data. This is fulfilling the original dream Tim Berners-Lee’s had about the World-Wide Web.
The changes in communication and visualization technology has lead the Internet gaining more Hackability. This has lead to mash ups gaining prominence in the online development. A mash up traditional has been defined as a combination of 2 of more original sources to form a new entity, but Web 2.0 it is the creation/reuse of technologies and data bring them together to make a new application, widget or service. However the type of mash ups can be broken down into three different types of mash ups: presentational, data functionality, and process. All definitions come from the same under standing however vary on the granularly at which they are used, with all increasing in complexity as they become closer to the data and system layer.
In the mid 2000′s there was an explosion in tools which made the manipulation of open XML and JSON data souces on the internet, these included:
However over the years they have been closed as there popularity dwindle and companies move one to other products. But at the time they where an innovation which opened up the masses too online data manipulations. Yahoo Pipes was by far the more popular which had a number of modules which allowed users to manipulate and search the data streams, these included:
- locations – search by location
- string – allow for regex of string
- date – manipulation of number and text representation of date
- Number – applied simple number operation to numeric input.
There where a number of cool implementation of pipes for cleaning twitter feeds, and for pulling out location data from news articles.
There are hundreds of companies supplying data feeds for structured data in XML or JSON format which can still be used. Some of the more popular mashups over lay data on to mapping systems such as Google Maps, one popular one is crime reports for areas in the UK.
Recently there has been an explosion in the number of API which are being offered by online companies to use there services. These have come in a number of different forms allowing different implementations within code; SDK’s which allow for navy integration into specific environment and languages such as Java for Android, or calls to URL which could implement REST functions or access points to data which then have to be parsed by the client. This has allowed developers greater access to large commercial services which can help them develop there application and product with minimal effort. This can be seen though the use of PayPal as a payment service, this can be integrated within a minimal amount of code to an application, this can then help a developer monitze there application, or sell products which in the past could have meant that they would have had a large number of hoops to jump though. Anouther example is by using Facebooks SDKs allows apps to be integrated into the largest social network in the world thus increasing there exposure to the market.
However by having a high dependency on external systems which are developed outside of their control exposes developers to a high risk. This can come in a number of forms, first quality of service to end users may be effected, if users can only log in with there Facebook accounts and Facebook goes down then users cann’t log in, or if the provider is under a large amount of volume can lead to a reduced response time, thus slowing down your service. Other risks could be changes by the supplier in their service such as removing a function which you are using could render your system unusable, or if limits are placed on calling there service could render your system unusable for some people once the limit is exceeded, meaning you would need to deal with refactoring your system in implement changes, and unhappy users as your service become slow of unusable. Thus using any for of external systems should be taken with a pinch of salt. Even with these issues they can still bring a large number of advantages to systems such as increased funcatinality, reduced cost, reduced development time.
However these levels of system integration require a greater knowledge of systems and programming than compared to the simple data mashups which where mentioned before. But all that has been mention ties into the definition of Web 2.0 which was given by Tim O’Reily in 2007, it is
- Leveraging the long tail by providing by providing access to historic service and data
- Services not software as companies rely on payment system provided by other people
- Control over data sources comes from the companies which have developed the system people are using to
- Leveraging collective iteligance and treating users as co-developers comes from allowing people to mashup data in the first place.
Web 2.o, APIs and mashup tools are developing a more open and sustainable environment for content and service creation and consumption as it starts to break down barriers by harnessing the power of the internet allowing small and big player to co-exist benefiting from each other specialities.