By Iosif Alvertis, Michael Petychakis, & Fenareti Lampathaki (NTUA)
Today, an emerging trend to expose functionalities through publicly available APIs (Application Programming Interfaces) has not only redefined how software and services are delivered, but also indicates how business value is moving towards a thriving high-paced mobile application ecosystem. Along these lines, the OPENi focal research contribution lies on the cloudlet concept and on an open API framework that will be capable of interoperating with any cloud-based service, abstracting the integration challenges to a single open standard without losing any service features.
During the first months of the OPENi project, we docused on an analysis of the underlying state of the art in the cloud-based services landscape in order to provide concrete recommendations and guidelines to drive the forthcoming design and implementation of the OPENi APIs Framework.
Creating a classification of the cloud-based services’ territory was not a trivial task and could have gone a long way if a concrete methodology was not applied from beginning to end. Through a well-defined approach based on the hints provided in developers’ portals (i.e. Programmable Web) and in market predictions by analysts and in accordance with the OPENi project needs and requirements, a classification of cloud-based services has been constructed step-by-step bearing 21 categories out of which 18 were selected for in depth-analysis, i.e. Advertising, Analytics, Contacts, File Transfer & Syncing, Gaming, Health, Location-based Services, Mapping, Messaging, Music, News, Payments, Photo, Search, Shopping, Social, telephony, Video. 221 cloud-based services have been recognized and a prioritization based on multiple criteria has been conducted giving way to an in-depth analysis of the APIs offered.
An agile approach of fast API analysis required services that would apply to multiple categories, to accelerate the process. Each API has been documented with regard to its core metadata (i.e. API Name, Version, Description, Protocol, Data Format, Available Libraries, etc.), the functionalities offered have been compared and cross-analyzed per category, and a preliminary assessment of the corresponding API’s exposure has been completed.
In general, overlapping functionalities among different categories are the rule rather than the exception, with a set of emerging directions being recognized as following:
- Despite the category they may be classified into, cloud-based services exhibit strong social characteristics by building circles of friends, posting comments, indicating likes/favorites, etc.
- Media files (from photos to videos and music) represent popular objects that are shared from multiple services.
- Location context emerges and is associated with practically any activity a user may perform across various services.
- Advertising is mainly library dependent for mobile development where integration with services is supported by SDKs available for mobile handset vendor platforms.
- Marketing functionalities (coupons, offers, tips) that use personalized information (for example user location) are available to a diverse set of services (shopping, location based services).
- Key players in the APIs market are: Facebook (which apart from the multiple functionalities offered aims at integrating and personalizing the web through its Open Graph approach), and Google that offers a full suite of cloud-based services.
- When it comes to real-time communication (telephony, messaging), XMPP is a de facto standard utilized by the relevant cloud-based services.
- APIs can be grouped in various ways, giving multiple names for some categories. Thus it was quite difficult to identify, name and group all these categories. The semantically enhanced dictionary of Activity Streams allows us to build on light semantics.
- Core phone functionalities can be found on the cloud, by combining various services even from different categories.
- From a technology perspective, the trend is towards REST, JSON and OAuth.
- Methods related to Users are never exposed under an API.
A preliminary identification of the OPENi Generic APIs together with their associated objects, functionalities and relations to existing cloud-based services has been put together. Seven (7) Generic APIs that combine cloud-based functionalities in a set of functionalities that are similar to Phone SDKs, and existing phone applications or functionalities have been proposed:
- Activity API referring to a social, health, behavioural activity log as reflected in multiple cloud-based services ranging from Social, Photo and Video Sharing to Health and Location-based Services. It includes all the social and personal activities of a user, and is related with the logging activity of a device.
- Communication API for conveying real-time information through the exchange of messages, or calls. It is related with the Phone and Messaging application of a smartphone.
- Location API enabling location awareness through Checkins, Direction, Events, Reviews and Tips. It is a strong contextual API with location, which can be extracted by a GPS sensor and can be mapped on a map.
- Media API bringing together photo, music and video sharing services with file transfer and syncing functionalities. It is related with the Gallery Application and the file system of a device.
- Products & Services API embracing Analytics, Advertising, Payments and Shopping services. It is related with the store application of a Phone.
- Profiles API extrapolating information about persons based on Analytics, Advertising, Contacts, Gaming, Health, Location-based Services, Messaging & Chat, Music, Social, etc. services. It is directly related to the Agenda application of a smartphone.
- Search API in order to find and retrieve information from the cloud-based services. It is related to the search functionality found in a Phone OS.
Such APIs bring together the functionality offered in four (4) to twelve (12) categories, as well as multiple and diverse objects and APIs, and are going to be enhanced with additional value-adding APIs that will emerge in the forthcoming design phase.
Any comment, feedback or important service or API you consider we have omitted and should take into consideration, is welcomed!