=Paper= {{Paper |id=None |storemode=property |title=CIMBA - Client-Integrated MicroBlogging Architecture |pdfUrl=https://ceur-ws.org/Vol-1272/paper_48.pdf |volume=Vol-1272 |dblpUrl=https://dblp.org/rec/conf/semweb/SambraHBKA14 }} ==CIMBA - Client-Integrated MicroBlogging Architecture== https://ceur-ws.org/Vol-1272/paper_48.pdf
     CIMBA - Client-Integrated MicroBlogging
                  Architecture

Andrei Vlad Sambra1 , Sandro Hawke1 , Tim Berners-Lee1 , Lalana Kagal1 , and
                            Ashraf Aboulnaga2
                        1
                        Decentralized Information Group,
                                 MIT CSAIL
                    2
                      Qatar Computing Research Institute
     asambra@mit.edu,sandro@w3.org,timbl@w3.org,lkagal@csail.mit.edu,
                           aaboulnaga@qf.org.qa



      Abstract. Personal data ownership and interoperability for decentral-
      ized social Web applications are currently two debated topics, especially
      when taking into consideration the aspects of privacy and access control.
      To increase data ownership, users should have the freedom to choose
      where their data resides and who is allowed access to it by decoupling
      data storage from the application that consumes it. Through CIMBA,
      we propose a decentralized architecture based on Web standards, which
      puts users back in control of their own data.

      Keywords: decentralization, Linked Data, social Web, privacy, Web
      apps


1   Introduction

Recently, we have witnessed a dramatic increase in the number of social Web
applications. These applications come in different forms and offer different ser-
vices such as social networks, content management systems (CMS), bug trackers,
blogging tools, or collaboration services in general.
    A common practice, specific to most Web services, is to centralize user re-
sources thus becoming so-called data silos. Often when adhering to online ser-
vices people usually end up creating dedicated local accounts, which ties and
limits users to particular services and/or resources. A solution to data silos can
be achieved through decentralization, where users are free to host their data
wherever they want, and then use several Web apps to consume and manage the
data. In the following section we will discuss how our decentralized architecture
plays an important role in achieving true data ownership for users.


2   Architecture

Today, more and more software is built around an application-specific back-
end database. This makes switching applications problematic, since data are
2        Sambra A. V., Hawke S., Berners-Lee T., Kagal L., Aboulnage A.

structured according to each specific application and it only has meaning within
the context of those applications. Moreover, this practice also forces a tight
coupling between backends and applications consuming the data (cf. Fig.1 a).
    The proposed architecture uses the Resource Description Framework (RDF) [1]
to achieve greater interoperability between servers and applications as well as to
ensure the data structure remains the same, regardless of the server on which
the data are stored. In our case, CIMBA is a simple microblogging client that is
completely decoupled from the backend, which in turn is a generic storage server
(cf. Fig.1 b).




        Fig. 1. a) Current architecture; b) Proposed decentralized architecture



    By fully decoupling the server from the Web app, developers will be able
to produce large scale Web apps without having to also manage the backend
servers, making it very simple to switch from one backend to another, as well as
from one Web app to another one without losing any data (cf. Fig.2 a).
    Another advantage is that users are no longer locked into a silo because
of their social connections (cf. Fig.2 b). Web apps reuse the user’s social graph,
which is also located on the data manager. The data manager is a generic Linked
Data personal data server, which implements the Linked Data Platform spec-
ification [2] (currently on REC track at W3C3 ), as well as the Web Access
Control [3] ontology (to enforce privacy policies).
    Our architecture uses WebID [4] as the main mechanism to identify peo-
ple at the Web scale, together with WebID-TLS [4] (to authenticate requests
to restricted resources), a fully decentralized authentication scheme based on
WebID.


3
    http://www.w3.org
                     CIMBA - Client-Integrated MicroBlogging Architecture                3




 Fig. 2. a) users can easily switch software; b) social connections stay with the user


3     CIMBA

The name CIMBA stands for Client-Integrated MicroBlogging Application. It
provides users with the power of having their own blog combined with the ease of
using Twitter. CIMBA was written in Javascript, using the AngularJS4 frame-
work. The source code is publicly availabled on GitHub5 , and a running online
demo can be accessed by visiting http://cimba.co.
    Compared to Twitter, CIMBA users are not stuck with a single feed or time-
line, but instead they can create multiple Channels and use them as categories
for their posts (i.e. main, work, family, etc.). Access control can be set per chan-
nel as well as per post, though policies for posts will override those set per
channel (i.e. having a private post in a public channel).
    Figure 3 displays an overview of the architecture behind CIMBA. Users Alice
and Bob each have their own personal data managers, which hold the posts data,
configuration files as well as their personal WebID profiles.
    Accessing CIMBA simply means loading all the necessary HTML, Javascript
and CSS files from the application server into the user’s browser. From that
moment on, the application which now runs in the browser will communicate
directly with the user’s personal data manager. The location of the personal
data manager is found by ”faking” a WebID-TLS authentication process, with
the purpose of finding the user’s WebID and implicitly, the WebID profile. There
is no actual need to authenticate the user to CIMBA, since all requests for data
are authenticated by the user’s personal data store.
    Once the WebID profile is found, the app follows a series of links to discover
useful information about the user, such as a generic Linked Data server from
where the app can store and retrieve resources. CIMBA stores all the appli-
cation data on the user’s personal data manager, in a workspace dedicated to
microblogging. Microblogging data are stored using the SIOC ontology.
4
    https://angularjs.org/
5
    https://github.com/linkeddata/cimba
4       Sambra A. V., Hawke S., Berners-Lee T., Kagal L., Aboulnage A.




                  Fig. 3. Overview of the architecture for CIMBA


     To read what other people write, users can subscribe to their channels. The
list of subscriptions is also expressed using the SIOC vocabulary and it is stored
on the user’s server.

4    Conclusions and future work
Our proposed decentralized architecture offers significant benefits compared to
current Web apps, both in terms of data ownership, privacy, as well as inter-
operability. Being fully decoupled from the backend, Web apps can be easily
forked and improved by anyone with access to the source code, thus spurring
innovation and creativity. At its current stage, CIMBA suffers from scalability
issues, though we are very close to overcoming these issues.

References
1. Graham K., Carroll J., McBride B.: Resource description framework (RDF): Con-
   cepts and abstract syntax. In: W3C recommendation. (2004)
2. Speicher S., Arwe J., Malhotra A.: Linked Data Platform 1.0. http://www.w3.org/
   TR/ldp/ (2014)
3. Hollenback J., Presbrey J., Berners-Lee T.: Using RDF metadata to enable access
   control on the social semantic web. In: Proceedings of the Workshop on Collabo-
   rative Construction, Management and Linking of Structured Knowledge (CK2009),
   vol. 514. (2009)
4. Sambra A., Henry S., Berners-Lee T.: WebID Specifications. http://www.w3.org/
   2005/Incubator/webid/spec/ (2014)
5. Breslin J.G., Harth A., Bojars U., Decker, S.: Towards semantically-interlinked on-
   line communities. In: The Semantic Web: Research and Applications, pages 500-514.
   (2005)