Section: New Software and Platforms
Framework for building social networks executable on web browsers, android and apple platforms
Keywords: Framework - Peer-to-peer. - NoSQL - Mobile application - Social network - Publish-subscribe
Scientific Description: [EN] myMed : an ad hoc framework to execute homogeneous social networks. The explosion of different Open Social Networks (OSN) "running" in the internet arena has changed the habits of mostly all of us. There are OSN almost for everything, from cooperative work, car pooling, healthcare, friendship, love, affairs, healthcare, information, gaming, etc. In almost all of the cases, there are no two OSN that are built by the same software producer, and - quite often - mostly of them work on a competitive basis, and - for many different reasons (business, privacy, politics, etc.) - they are not open source and they are hosted by their private servers. The interactions between those OSN is very little, since the Application Programming Interfaces (API) - if existing - are very weak and limited to access to the friends lists or to access OSN X with the password of OSN Y. Even worst, the possibility of programming or at least interconnecting common features (e.g. search on different data bases, link user names and passwords, chat, access to common data bases etc.) between different OSN advance slowly. The most used practice of interconnecting OSN is based on a form of "asymmetric viral communication" where one can relay (or post or publish) a duplicated copy or a pointer of a record published by user A in OSN X into another OSN Y, provided user A have also an account on OSN Y, and de facto forbidding in mostly cases the inverse operation, aka subscribing for a different user B on OSN Y to any publication of user A on OSN X even if user B does not have an account on OSN X. As such, the well know paradigm of Publish/Subscribe at the basis of many CSCW applications cannot be fully exploited inter social networks, leaving only their use intra social network, the latter use being of less impact in coordination and cooperation. Beside of the "business needs" of OSNs, the myMed (www.mymed.fr) meta-social network represents an important step toward the natural interconnections of social applications. This paper introduce the concept and the original structure of the myMed experimental system, as it was conceived as a common effort between five academic sites (Inria, Polytechnic of Turin, University of Turin, University of Piedmont Oriental, University of Nice Sophia Antipolis) and few local startups. myMed is an open source project, which facilitate and accelerate the development of ad hoc social applications (called in myMed jargon "sociapps") running over an heterogeneous "Plateau" of platforms, such as PCs, Smartphones and Tablets running iOS and Android. myMed provides a rich framework for publishing, searching and subscribing to content: the engine is built on top of a distributed noSQL database. In its current version, it provides high scalability and fault tolerance. The myMed framework allows you to easily build social web applications: it features geolocalization, points of interest in charts, buddy lists, profile management, content/user reputation, built-in cooperation and coordination among different OSN running on it, proto OSN store, etc. A short description of the framework can be found in the appendix of this paper. In a nutshell the myMed framework is composed of: • a Software Development Kit (SDK) to develop fixed and mobile web sociapps, running on many Web browsers but also natively on Smartphones and Tablets equipped with Android or iOS. Sociapps, by their name, must have a strong social flavor (open social networks, closed social networks, enterprise social networks, micro/nano social networks and so on). Thanks to the rich, general-purpose, catalog of modules in the framework, every module can be freely used without interfering with other sociapps, in a true "Lego" fashion. The program is distributed under the Apache V2 free license. The TTM ("Time To Market") envisaged to develop a sociapp using the myMed SDK can be estimated from 1 to 3 months employing 1 or 2 senior programmers. • A "cloud" to execute the "sociapps" represented by a "backbone" of 50PCs, distributed through the "AlpMed" EuroRegion following some precise efficiency criteria (as example the presence of Internet running on optical fibers). Part of those PCs have a double function: o ensure the good behavior of all the running sociapps, and o offer services other than those offered by myMed, such as a web browser, an open-source Office suite, a private disk of little size, logically separated from the noSQL space that can be used by others users (we call this "an elastic usage of the myMed cloud PC"). Those PCs can be accessed via a private login and password generated by the framework on demand. The operating systems running on those PC (Ubuntu myMed Edition, UME) is also open source and it is based on a customized version of the Ubuntu operating system. To guarantee the quality of the execution of the sociapps, we require that all machines belonging to the backbone are constantly running (on state). • A little collection of "proof of concept" sociapps to validate, experiment, and testing the development kit and the execution cloud. These sociapps have been conceived with the precious help of the "Civil society" of the EuroRegion "AlpMed" (States, Regions, Prefectures, Associations, Chambers of Commerce, Municipalities, Universities, etc.) that have played a role of "maitre d'oeuvre" (or experts) in a given "applicative domain". The quasi totality of the sociapps are available on the myMed web platform at the address http://www.mymed.fr/?action=login but also on the most common mobile application stores, such as the Apple Store and the Google Play Store Markets. The myMed system is naturally divided into a backend and a frontend permitting a natural separation of concerns. The present and the future features of the myMed architecture together with the many open questions left open are: • myMed is distributed by construction and could be decentralized. The myMed backbone is based on a well-tested noSQL database, Cassandra, which can accommodate any number of users without any code changes. Machines can be classically concentrated on a data-center or – more interestingly – fully decentralized modulo a decent internet connection. Failures of one or many machines do not affect the running of the system, thanks to replication of the data on several servers. • myMed (should be) Easy to use. Start from the template, add or remove features, play with the design and the interface and you have an application ready to deploy on the myMed cloud and accessible to all myMed users via the proto store. • myMed is Extensible. myMed provides a modular architecture, since developers can easily install new modules and users can add or remove all the sociapps they like using the proto store. • myMed as a distributed Social Operating system? for many aspects myMed looks like an social operating system installed on a distributed and decentralize pull of PCs. Modifications of internal myMed modules would not affect the behavior of all sociapps using those modules. • myMed promotes collaboration and cooperation between OSN. The sharing of all social modules have the positive effect of greatly facilitate OSN interconnection • myMed users feature a two level profile. Having a myMed "basic profile" just give access to the store and to a "read only view" of each OSN X. For a full experience the user must fill the, so called, "extended profile" for OSN X which allows a full read/write access. • myMed and myMed sociapps can feature an ad hoc economical model? It is well know that economical models for OSN are quite often related to advertising, or buying intra OSN features. The myMed interconnectivity by construction, open a way to novel business models, like "the more you open the more you earn?" • myMed should feature an unique Human Computer Interface? a common template is provided to expert users that want to implement a proper OSN. Do they need to be compliant with some graphical chart? • myMed can run on different instances. Can different instances cooperate? As in higher-order languages, the same cooperation level featured between different OSNs running on one myMed instance can be applied on different myMed instances running on different hardware. This would be subject of a further evolution of inter-cooperation and connection of myMed instances and their OSN running inside it. A lot of care must be given in building coherent "meta basic profiles".
Functional Description: myMed is an experimental framework for implementing and deploying, on the top of a built-in cloud platform, many Open Social Networks (OSN) that could take advantage of sharing common software modules, hardware resources, making inter-communication and inter-interaction simpler and improving rapid development and deployement. myMed OSN are either accessible on web browsers and mobile platforms (android, ios). myMed is based on a peer-to-peer architecture and noSQL database technology. A number of experimental OSN are experimentally implemented and deployed to validate the framework : among them we mention myRiviera, myPaysduPaillon, mioConsolato, myBenevolat, myFondationSophiaAntipolis, myEurocin, myEurope, myAngel, ...