Social Stream, a social network framework Antonio Tapiador，Diego Carrera，Joaqu´ın Salvach´ua Speaker:饒展榕 1 2 Outline INTRODUCTION REQUIREMENTS ARCHITECTURE VALIDATION DISCUSSION CONCLUSION 3 INTRODUCTION Social network sites (SNS) keep gaining momentum, being among the most popular applications in the web . Social networking features are present not only in contact-oriented social platforms, the websites focused on establishing and maintaning contacts, but also in content-oriented social networks, the ones that are organized around some type of content, e.g. trips, code repositories or conference attendance. 4 In this paper we introduce Social Stream1, a social network framework for Ruby on Rails. 5 REQUIREMENTS Tapiador et al. introduce a comprehensive list of common social network features present in popular social network platforms . Social actors Social relations Content Activities timeline Home page Profile pages Notifications and private messages 6 ARCHITECTURE 7 A. Actors Actors subtypes have three main characteristics; a profile, with an avatar and other attributes, social relations with other actors and the ability to perform actions on objects. In addition, Social Stream includes user authentication through the external library Devise, and authentication with external services through Omniauth. 8 B. Profile An avatar or picture represents the social entity. Common profile attributes present in all social entities include name, contact email, location, address, description, website, etc. 9 C. The social network The social network model built in Social Stream is powerful enough to support unidirectional (e.g. follow), bidirectional (e.g. friend), system-defined (e.g. block) and custom, user-defined relations. It is composed by three entities: 1) Contact 2) Relation System defined relations Custom relations 3) Tie 10 D. Objects Social Stream provides the following popular subtypes of object: text posts, files, images, audios, videos, events and links to external websites. 11 E. Actions Action is the entity that gathers all the interactions between actors and objects. An action instance is made up of the actor, the object and a set of columns for each feature: 1. Authorship 2. Ownership 3. Rating 4. Mention 12 F. Audiences Social Stream content visibility model is based on relations. When actors upload a new object, they choose the relations to share with. 13 G. Activities timeline Activities are made up of a subject, who is the author of the activity, a verb, (e.g. post, make friend, like) and an object. It may also include indirect objects or context. A new tie is established, an example activity would be ”Alice added Bob as contact” A new object is posted, such as ”Alice uploaded a picture” A new rating is performed, such as ”Charlie likes Alice’s picture” 14 H. Home and Profile pages Social Stream provides home and profile pages all to every actor subtype instance. 15 I. Private messages and notifications Social Stream includes a messaging and notification component provided by Mailboxer6 library. 16 VALIDATION Social Stream is a Ruby on Rails Engine, a library contain- ing a full application that can be mounted and accessed from the main web application. Thus, the SNF is accessible and fully functional out-of-the-box. 17 18 19 DISCUSSION Currently, Social Stream architecture model only supports sharing at the relationship level. This model does not support sharing at other levels present in current SNS, such as with contacts of contacts or specific users. The framework should be extended to support them. Regarding the activites timeline, we have found two approaches when building it: 1. Lazy approach 2. Eager approach 20 Lazy approach In this approach, the relation of activities is just registered and recorded in the database. They are selected in the precise moment the activities timeline’s view is rendered. 21 Eager approach Activities are preprocesed and timelines are build just after the activity is generated. In this approach, reading is cheaper, because the records are already calculated and ready for delivery. 22 CONCLUSION Social Stream’s architecture is flexible enough to support the customization of the embeded social network to an content-oriented (excursions) one, the ViSH. Most of the features of the actor subtype have been reused without any additional work: user account registration and sign-in, external authentication services, avatar and profile management.