The distribution and inventory costs of businesses successfully applying this strategy allow them to realize significant profit out of selling small volumes of hard-to-find items to many customers instead of only selling large volumes of a reduced number of popular items. The total sales of this large number of "non-hit items" is called the Long Tail [26].This theory describes a business strategy based on selling many small volumes of hard-to-find items instead of a few large volumes of popular items. It argues that as a whole, these hard-to-find items can make up a value that equals or exceeds the few bestsellers. This is possible when the distribution channel is large enough, such as the Internet, and the marginal cost is low, such as in the Software industry. I.e. the Long Tail theory is based on selling less of more. Combining the concept of Mashups with mobile devices can unveil a world of new Mashups, Mobile Mashups , satisfying the needs of niches based on the long tail theory and creating extraordinary business values [36]. We propose that, when a Mobile Mashup is built using Web technologies, i.e it executes within the mobile's Internet browser, it should be called Mobile Web Mashup in order to distinguish it from generic Mobile Mashups built with any other technology. Any application developed using Web technologies will work on all the different mobile platforms (see Figure 2.2) being the mobile browser the only common platform across all mobile operating systems [9]. As explained in the limitations section (1.6), this work will only focus on Mobile Web Mashups.
#1A new service is created when combining FourSquare and SoundCloud
"Too complicated for casual users, not powerful enough for professional users."11
structure.dot
#1Mobile Growth in Traffic May 2008-2010 by Admob
#1World Wide device manufacturer share May 2010 by Admob
#1Top 10 categories of Mashups by ProgrammableWeb.com
#1The-user driven model [10]
#1The Long Tail theory by Hay Kranen
| Advantages | Disadvantages |
| Reuse of existing services and data | Service reliability and QoS |
| No extensive IT skills required | Integrity of content no warranted |
| Rapid development | Scalability issues |
| Cost-efficient (cheap) | Most data sources are not made as a service |
| Better tailored thanks to less resources required | There are no standards: difficult to implement security mechanisms |
| Realm | Challenges | Suggestions |
| Slow Internet connections | ||
| High-failure connections | ||
| Battery life | ||
| Constrained Interfaces | ||
| Device fragmentation | ||
| Privacy implications (user location) | ||
| Location could be used as alibi when accused of certain crime | ||
| Broadcasting real-time: content ownership and protection laws | ||
| Services moving to another countries to avoid laws |
mashup.dot
| Components |
| Type |
| Service Provider |
| Protocol |
| Data format |
| Architecture |
| Interface |
| Types of Mashups | |
| Data | Combine many sources of similar types into a single representation |
| Consumer | Combine many sources of different types into a visual representation |
| Business | Similar to consumer with the aim to solve a business problem |
#1Business Mashup PivotalTracker with Twitter
#1Top 10 APIs by ProgrammableWeb.com
| Number of API calls | Monthly price |
| 50,000 | $50 |
| 100,000 | $100 |
| 200,000 | $200 |
| 500,000 | $500 |
| 1,000,000 | $1,000 |
4(e): You will not, without our express prior written approval, use any Product Advertising Content on or in connection with any site or application designed or intended for use with a mobile phone or other handheld device.Another important aspect of the Service Providers is if the content they provide is private or public. By private content we understand anything private to a user, such as pictures, personal information, private emails, etc. Whenever there is user's private data the Mobile Mashup puzzle becomes harder to solve since it is required to deal with some kind of authentication. One way to deal with authentication is to provide a basic HTTP Authentication 34 from the Web Service. However this method is not recommendable since the username and password of the user are directly given to the Mashup to let it access the private data. A newer approach which is gaining a lot of supporters, among them Facebook35, is the OAuth protocol36 which does not share private login details with the Mashups.
Many luxury cars come with a valet key. It is a special key you give the parking attendant and unlike your regular key, will only allow the car to be driven a short distance while blocking access to the trunk and the on-board cell phone. Regardless of the restrictions the valet key imposes, the idea is very clever. You give someone limited access to your car with a special key, while using another key to unlock everything else.37
#1OAuth protocol work-flow by LinkedIn
#1Most used protocols for APIs by ProgrammableWeb.com
| HTTP method | CRUD Action |
| GET | Retrieve resource |
| POST | Create resource |
| PUT | Update resource |
| DELETE | Delete resource |
<?xml version="1.0" encoding="UTF-8"?> <email> <to>Konrad</to> <cc>Natalia</cc> <cc>Maria</cc> <from>Cristobal</from> <subject>An XML-JSON example</subject> <body>Hope this example is witty enough!</body> </email>
{"email" : {
"to" : "Konrad",
"cc" : ["Natalia", "Maria"],
"from" : "Cristobal",
"subject" : "An XML-JSON example",
"body" : "Hope this example is witty enough!"
}}
Even though XML is one of the most widespread formats, it is not usually the best way to exchange data in the mobile context.
#1XML overhead [22]
| Architectures | |
| Server-based | Information gathered and processed in the server |
| Client-based | Executed within the client's browser |
| Mobile | A combination of Client and Server-based architectures |
serverbased.dot
clientbased.dot
| Workarounds for CD-XHR | |
| Server-proxy | Using the server as a proxy to access to third party servers |
| Flash | A crossdomain.xml file is placed on the Server that allows the client's browser to bypass the Same Origin Policy using Flash |
| JSONP | This technique implies dynamically inserting Javascript tags (that are not bonded to the policy) importing files from third-party servers |
Mobile.dot
| Server-based | Client-based |
| Several libraries | Easier to implement |
| Security | No server-code required |
| Concurrent and asynchronous calls | No bottleneck |
| Pre-process the data | Better performance |
| Cache information | Avoid server load |
| More computational power |
| UI tool | URL | Notes |
| jQTouch | http://www.jqtouch.com/ | Based on JQuery. Native animations. Active development |
| iUI | http://code.google.com/p/iui/ | Simple. No Javascript coding required |
| iWebkit | http://iwebkit.net/ | Mature (v5.04) |
| WebApp.net | http://webapp-net.com/ | Extensive documentation |
| SproutCore | http://www.sproutcore.com/ | Early stage, originally for desktop web. Used by Apple |
| Advantages | Disadvantages |
| Easy and cheap to create and maintain | Overall user experience limited to the browser capabilities |
| Developers can use known technologies, tools and techniques | No access to OS (ex. address book) and most of the Hardware. |
| Easy to publish: There is no need to install any software | Harder to discover, no centralized App store |
| No need to update the software: cloud based | Scalability issues: cloud applications might create bottlenecks |
| Apps stores review processes no needed | Privacy issues: Confidential information that should not be on the cloud |
| Can be slower due to be running in a browser and the network connection | |
| Limited off-line mode support |
| Native tool | URL |
| PhoneGap | ttp://phonegap.com/ |
| AppAccelerator Titanium | http://www.appcelerator.com/ |
| Rhodes | http://rhomobile.com/ |
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n';
};
function onError() {
alert('onError!');
};
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
With all the blocks in place, now is possible to define a reference framework that summarizes all the different aspects of Mobile Web Mashups.
| Section | Notes | |
| Data Mashup | Combine many sources of similar types into a single representation. | |
| Consumer Mashup | Combine many sources of different types into a visual representation. | |
| Business Mashup | Similar to consumer type with the aim to solve a business problem. | |
| Open/Proprietary | Check Terms of Service for usage limitations and fees. | |
| Public/private data | Private data might need to use Authentication protocols (such as OAuth). | |
| SOAP | W3C standard. Widely used in the industry. Avoid on client side. | |
| REST | Based on HTTP protocol. Widely available. Best performance on client side. | |
| XML | W3C recommendation. Widely used. Avoid on client side. | |
| JSON | Based on Javascript notation. It has the best performance on client side. | |
| Server-based | Information gathered and processed in the server. Can cause bottlenecks. | |
| Client-based | Executed within the client device. Problems with the Same Origin policy. | |
| Mobile | A combination of Client and Server-based architectures. | |
| Mobile Web tools | Provide a generic framework and functionality for the user interface. Most common ones: jQTouch and iUI. | |
| Page model | Multi-page model for hierarchical tree of Web pages. Single-page for Ajax based applications. | |
| Native Web Apps | A web application wrapped into a native application. Use if it is required to access hardware. e.g. PhoneGap. |
telar.dot
| Telar | |
| Type | Consumer |
| Service providers | Google Maps, Fon, Panoramio, GeoNames |
| Architecture | Mobile |
| Protocols | REST |
| Data formats | JSON |
| Interface | Single-page |
| SoundSquare | |
| Type | Consumer |
| Service providers | Foursquare, SoundCloud |
| Protocols | REST |
| Data formats | JSON |
| Architecture | Server-based |
| Interface | Multi-page. jQTouch |
soundsquare.dot
| Antipodes | |
| Type | Consumer |
| Service providers | Google Maps, DNMI, Yahoo YQL, Flickr |
| Protocols | REST |
| Data formats | XML, JSON |
| Architecture | Mobile |
| Interface | Single-page. iUI |
antipodes.dot
| MobActi | |
| Type | Consumer |
| Service providers | Google Maps, GetSatisfaction |
| Protocols | REST |
| Data formats | JSON |
| Architecture | Mobile |
| Interface | Single-page. iWebKit |
mobacti.dot
| Deventus | |
| Type | Business |
| Service providers | Google Maps, LinkedIn, Facebook, Twitter, Kaywa, Vimeo |
| Protocols | REST |
| Data formats | JSON |
| Architecture | Mobile |
| Interface | Multi-page. jQTouch |
deventus.dot
| SoundSquare | |
| Type | Consumer |
| Service providers | Foursquare, SoundCloud |
| Protocols | REST |
| Data formats | JSON |
| Architecture | Server-based |
| Interface | Multi-page. jQTouch |
#1Screen-shot of SoundSquare running on a browser
#1Screen-shot 2 of SoundSquare running on a browser
| Antipodes | |
| Type | Consumer |
| Service providers | Google Maps, DNMI, Yahoo YQL, Flickr |
| Protocols | REST |
| Data formats | XML, JSON |
| Architecture | Mobile |
| Interface | Single-page. iUI |
#1Screen-shot of Antipodes running on a browser
With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn how to call different APIs.Using YQL was notably easy with mainstream Javascript tools such as Prototype71 and JQuery72 . Following a full example of the written code:
function get_pictures_yql(lat, lon){
var BASE_URI = 'http://query.yahooapis.com/v1/public/yql';
var yql_query = "select * from flickr.photos.search where "
yql_query += "min_taken_date='2008-09-01' and lat='" + lat + "'"
yql_query += "and lon='" + lon + "' and radius='20'";
new Ajax.JSONRequest(BASE_URI, {
onComplete: processJSON,
callbackName: 'callback',
parameters: {q: yql_query, format: 'json'}
});
}
The potential of YQL will be discussed in the conclusions (Subsection 6.1.1).
var src = "http://farm"+farmid+".static.flickr.com/" src += serverid+"/"+id+"_"+secret+"_b.jpg";Note that, even though it is quite simple, it is not very versatile. If in a later stage they decide to change their URL structure all the already existing applications will face problems.
#1Screen-shot 2 of Antipodes running on a browser
|
|
|
|
|