Commit be755023f74c2a0316b1c7c583efd0c2fa365e11

Authored by Paulo Meireles
1 parent 15b52932

Re-organizing sections

opensym2017/content/03-arch.tex
... ... @@ -1,105 +0,0 @@
1   -\section{Architecture}
2   -\label{sec:architecture}
3   -
4   -%TODO: Kanashiro e Siqueira
5   -
6   -The two main requirements provided by the Brazilian Federal Government
7   -for the new platform were:
8   -%
9   -1) \textit{Integrate existing FOSS systems}, with minimal differences
10   -from their original versions. This way, the platform can benefit from
11   -improvements done by the upstream communities that provide those
12   -systems, and the maintenance effort that is specific for the SPB Portal
13   -should be reduced;
14   -%
15   -and
16   -2) \textit{Provide a consistent user interface} across the different
17   -systems, as well as centralized authentication.
18   -
19   -The first requirement was accomplished by dedicating specialized teams
20   -for each system that was being integrated. The teams would learn how to
21   -develop their assigned systems, and contribute the necessary features
22   -directly to the original communities, so that the version we used was
23   -not significantly different from the original. Of course, at times
24   -project deadlines forced us to use our own version before tho features
25   -were fully reviewed and integrated upstream to the original projects,
26   -but we managed to contribute the vast majority of the changes back.
27   -
28   -For the second requirement, we integrated a web integration platform
29   -called Colab\footnote{\url{https://github.com/colab/colab}}. Colab
30   -serves as a frontend for other web applications as a reverse proxy,
31   -manages authentication, and can apply changes to the HTML provided by
32   -the integrated applications in order to provide visual consistency.
33   -Colab had support for an initial set of applications (Trac, GNU Mailman,
34   -Apache Lucene) hard-coded; our team evolved Colab so that it can now
35   -receive plugins to add support for new applications with minimal changes
36   -to its existing core. We added support for the other applications used
37   -in the SPB platform: Noosfero, GitLab, and Mezuro.
38   -
39   -Noosfero\footnote{\url{http://noosfero.org/}} is a software for building
40   -social and collaboration networks. Besides the classical social
41   -networking features, it also provides publication features such as blogs
42   -and a general-purpose CMS (Content Management System). Most of the user
43   -interactions with SPB is through Noosfero: user registration, project
44   -home pages and documentation, and contact forms.
45   -GitLab\footnote{\url{http://gitlab.com/}} is a web-based Git repository
46   -manager with wiki pages and issue tracking features.
47   -Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code
48   -metric to monitor the internal quality of softwares written in C, C++,
49   -Java, Python, Ruby, and PHP. GNU Mailman is used for mailing lists.
50   -
51   -\begin{figure}[hbt]
52   - \centering
53   - \includegraphics[width=\linewidth]{figures/arch.png}
54   - \caption{SPB architecture overview.}
55   - \label{fig:architecture}
56   -\end{figure}
57   -
58   -The conceptual architecture of the platform is presented in Figure
59   -\ref{fig:architecture}. Colab initially handles all user interaction,
60   -directing requests to one of the integrated applications. It
61   -post-processes responses from the applications to apply a consistent
62   -visual appearance, manages authentication, and provides a unified search
63   -functionality: instead of using the redundant restricted search
64   -functionality of each application, a search in the SPB portal might
65   -return content from any of the applications, be it web pages, mailing
66   -list posts, or source code.
67   -
68   -%TODO: deixar coeso daqui para baixo
69   -
70   -\begin{figure*}[hbt]
71   - \centering
72   - \includegraphics[width=\linewidth]{figures/arch2.png}
73   - \caption{Instanciation view of the SPB architecture.}
74   - \label{fig:architecture2}
75   -\end{figure*}
76   -
77   -In real, the SPB platform was deployed in 7 virtual machines with different functions,
78   -as we can see in Figure \ref{fig:architecture2}.
79   -
80   -The \textit{reverseproxy} handles the HTTP requests and redirects them to the
81   -\textit{integration}, the \textit{email} sends and receives e-mails on behalf
82   -of the platform and the \textit{monitor} keeps the entire environment tracked.
83   -These three \textit{VMs} mentioned - \textit{reverseproxy}, \textit{email} and
84   -\textit{monitor} - are accessible via Internet and the other ones are only
85   -available in the local network created between them.
86   -
87   -\textit{Integration} works as a second layer of proxy beneath
88   -\textit{reverseproxy}, any request to the platform will be handled by it. The
89   -Colab service provides interface, authentication and search engine integration
90   -among all the services. When a request is received to a specific service,
91   -Colab authenticates the user in the target tool, sends the request and makes a
92   -visual transformation in the HTML page which is the content of the response.
93   -Another user-oriented feature is the integrated search engine, when the user
94   -want to find something in the platform Colab will perform the search in the
95   -whole databases. Colab itself provides a web interface for GNU Mailman and we
96   -have two others integrated tools in \textit{integration}: Gitlab and Prezento.
97   -Gitlab provides web interface for Git repositories and issues tracker, and
98   -Prezento is a front-end for source code static analysis.
99   -
100   -The source code static analysis is performed by \textit{mezuro}. It runs some
101   -static analysis tools on source code stored in repository and provide this data
102   -to Prezento. A social network and CMS (Content Manager System) is provided by
103   -Noosfero in \textit{social}, and the databases of all tools with a cache
104   -service are in \textit{database}.
105   -
opensym2017/content/03-requirements.tex 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +\section{Requirements}
  2 +\label{sec:requirements}
  3 +
  4 +...
... ...
opensym2017/content/04-features.tex
... ... @@ -1,8 +0,0 @@
1   -\section{Features}
2   -\label{sec:spb}
3   -
4   -%TODO: Paulo e Melissa
5   -
6   -...
7   -
8   -
opensym2017/content/04-process.tex 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +\section{Development Organization and Process}
  2 +\label{sec:process}
  3 +
  4 +%TODO: Siqueira e Hilmer
  5 +
  6 +...
... ...
opensym2017/content/05-architecture.tex 0 → 100644
... ... @@ -0,0 +1,105 @@
  1 +\section{Architecture}
  2 +\label{sec:architecture}
  3 +
  4 +%TODO: Kanashiro e Siqueira
  5 +
  6 +The two main requirements provided by the Brazilian Federal Government
  7 +for the new platform were:
  8 +%
  9 +1) \textit{Integrate existing FOSS systems}, with minimal differences
  10 +from their original versions. This way, the platform can benefit from
  11 +improvements done by the upstream communities that provide those
  12 +systems, and the maintenance effort that is specific for the SPB Portal
  13 +should be reduced;
  14 +%
  15 +and
  16 +2) \textit{Provide a consistent user interface} across the different
  17 +systems, as well as centralized authentication.
  18 +
  19 +The first requirement was accomplished by dedicating specialized teams
  20 +for each system that was being integrated. The teams would learn how to
  21 +develop their assigned systems, and contribute the necessary features
  22 +directly to the original communities, so that the version we used was
  23 +not significantly different from the original. Of course, at times
  24 +project deadlines forced us to use our own version before tho features
  25 +were fully reviewed and integrated upstream to the original projects,
  26 +but we managed to contribute the vast majority of the changes back.
  27 +
  28 +For the second requirement, we integrated a web integration platform
  29 +called Colab\footnote{\url{https://github.com/colab/colab}}. Colab
  30 +serves as a frontend for other web applications as a reverse proxy,
  31 +manages authentication, and can apply changes to the HTML provided by
  32 +the integrated applications in order to provide visual consistency.
  33 +Colab had support for an initial set of applications (Trac, GNU Mailman,
  34 +Apache Lucene) hard-coded; our team evolved Colab so that it can now
  35 +receive plugins to add support for new applications with minimal changes
  36 +to its existing core. We added support for the other applications used
  37 +in the SPB platform: Noosfero, GitLab, and Mezuro.
  38 +
  39 +Noosfero\footnote{\url{http://noosfero.org/}} is a software for building
  40 +social and collaboration networks. Besides the classical social
  41 +networking features, it also provides publication features such as blogs
  42 +and a general-purpose CMS (Content Management System). Most of the user
  43 +interactions with SPB is through Noosfero: user registration, project
  44 +home pages and documentation, and contact forms.
  45 +GitLab\footnote{\url{http://gitlab.com/}} is a web-based Git repository
  46 +manager with wiki pages and issue tracking features.
  47 +Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code
  48 +metric to monitor the internal quality of softwares written in C, C++,
  49 +Java, Python, Ruby, and PHP. GNU Mailman is used for mailing lists.
  50 +
  51 +\begin{figure}[hbt]
  52 + \centering
  53 + \includegraphics[width=\linewidth]{figures/arch.png}
  54 + \caption{SPB architecture overview.}
  55 + \label{fig:architecture}
  56 +\end{figure}
  57 +
  58 +The conceptual architecture of the platform is presented in Figure
  59 +\ref{fig:architecture}. Colab initially handles all user interaction,
  60 +directing requests to one of the integrated applications. It
  61 +post-processes responses from the applications to apply a consistent
  62 +visual appearance, manages authentication, and provides a unified search
  63 +functionality: instead of using the redundant restricted search
  64 +functionality of each application, a search in the SPB portal might
  65 +return content from any of the applications, be it web pages, mailing
  66 +list posts, or source code.
  67 +
  68 +%TODO: deixar coeso daqui para baixo
  69 +
  70 +\begin{figure*}[hbt]
  71 + \centering
  72 + \includegraphics[width=\linewidth]{figures/arch2.png}
  73 + \caption{Instanciation view of the SPB architecture.}
  74 + \label{fig:architecture2}
  75 +\end{figure*}
  76 +
  77 +In real, the SPB platform was deployed in 7 virtual machines with different functions,
  78 +as we can see in Figure \ref{fig:architecture2}.
  79 +
  80 +The \textit{reverseproxy} handles the HTTP requests and redirects them to the
  81 +\textit{integration}, the \textit{email} sends and receives e-mails on behalf
  82 +of the platform and the \textit{monitor} keeps the entire environment tracked.
  83 +These three \textit{VMs} mentioned - \textit{reverseproxy}, \textit{email} and
  84 +\textit{monitor} - are accessible via Internet and the other ones are only
  85 +available in the local network created between them.
  86 +
  87 +\textit{Integration} works as a second layer of proxy beneath
  88 +\textit{reverseproxy}, any request to the platform will be handled by it. The
  89 +Colab service provides interface, authentication and search engine integration
  90 +among all the services. When a request is received to a specific service,
  91 +Colab authenticates the user in the target tool, sends the request and makes a
  92 +visual transformation in the HTML page which is the content of the response.
  93 +Another user-oriented feature is the integrated search engine, when the user
  94 +want to find something in the platform Colab will perform the search in the
  95 +whole databases. Colab itself provides a web interface for GNU Mailman and we
  96 +have two others integrated tools in \textit{integration}: Gitlab and Prezento.
  97 +Gitlab provides web interface for Git repositories and issues tracker, and
  98 +Prezento is a front-end for source code static analysis.
  99 +
  100 +The source code static analysis is performed by \textit{mezuro}. It runs some
  101 +static analysis tools on source code stored in repository and provide this data
  102 +to Prezento. A social network and CMS (Content Manager System) is provided by
  103 +Noosfero in \textit{social}, and the databases of all tools with a cache
  104 +service are in \textit{database}.
  105 +
... ...
opensym2017/content/05-process.tex
... ... @@ -1,6 +0,0 @@
1   -\section{Development Organization and Process}
2   -\label{sec:process}
3   -
4   -%TODO: Siqueira e Hilmer
5   -
6   -...
opensym2017/content/06-features.tex 0 → 100644
... ... @@ -0,0 +1,8 @@
  1 +\section{Features}
  2 +\label{sec:spb}
  3 +
  4 +%TODO: Paulo e Melissa
  5 +
  6 +...
  7 +
  8 +
... ...
opensym2017/content/06-ux.tex
... ... @@ -1,33 +0,0 @@
1   -\section{User eXperience evolution}
2   -
3   -The integration of collaborative environments goes beyond functional aspects.
4   -Offering the population an unified experience across these environments has
5   -been the key to encourage the use of the platform as it reduces the perception
6   -of complexity. Thus, the SPB Portal information architecture was redesigned
7   -to provide a transparent navigation and to reach users with different profiles.
8   -A process of harmonization has been employed on the interaction models of each
9   -tool to reduce the learning curve. At the same time, a new visual style was
10   -created to unify the navigation experience and to comply with the guidelines of
11   -the digital communication identity standard established by the Federal
12   -Government.
13   -
14   -With the increase in system features and the addition of new tools, the
15   -visual style has steadily evolved to keep the navigation unified. Moreover,
16   -tools from different backgrounds, which in many cases provide similar
17   -functionality, prompted the development of an unified interface. Some
18   -features, such as search and user profile editing were eliminated from
19   -the individual applications, and implemented centrally to ensure a
20   -consistent look and feel.
21   -
22   -Another challenge was responsive web design. The integrated applications
23   -had varying degrees of support for responsiveness, and the common
24   -interface had to adapt for each individual scenario. In particular
25   -Noosfero did not yet have a responsive design; we engaged in its
26   -development and contributed towards that goal.
27   -
28   -After the initial release of the new SPB Portal in 2014, several
29   -validations activities were implemented in 2015 and 2016. The aim was to
30   -provide the most wanted features by casual users (such as public
31   -servants interested in downloads and documentation) immediately, while
32   -allowing more experienced users (such as developers) to easily drill down
33   -to the details.
opensym2017/content/07-finals.tex
... ... @@ -1,13 +0,0 @@
1   -\section{Final remarks}
2   -
3   -The portal is available at \url{softwarepublico.gov.br}. All
4   -documentation, including detailed architecture and operation manuals are
5   -also available\footnote{\url{https://softwarepublico.gov.br/doc/}
6   -(in Portuguese only at the moment)}).
7   -%
8   -All the integrated tools are FOSS and our contributions were published
9   -in open repositories, available on the SPB Portal itself. We also
10   -contributed these features back to the respective communities: that
11   -benefits those communities, as well as us since we can share future
12   -development and maintenance effort with other organizations that
13   -participate in their projects.
opensym2017/content/07-ux.tex 0 → 100644
... ... @@ -0,0 +1,33 @@
  1 +\section{User eXperience evolution}
  2 +
  3 +The integration of collaborative environments goes beyond functional aspects.
  4 +Offering the population an unified experience across these environments has
  5 +been the key to encourage the use of the platform as it reduces the perception
  6 +of complexity. Thus, the SPB Portal information architecture was redesigned
  7 +to provide a transparent navigation and to reach users with different profiles.
  8 +A process of harmonization has been employed on the interaction models of each
  9 +tool to reduce the learning curve. At the same time, a new visual style was
  10 +created to unify the navigation experience and to comply with the guidelines of
  11 +the digital communication identity standard established by the Federal
  12 +Government.
  13 +
  14 +With the increase in system features and the addition of new tools, the
  15 +visual style has steadily evolved to keep the navigation unified. Moreover,
  16 +tools from different backgrounds, which in many cases provide similar
  17 +functionality, prompted the development of an unified interface. Some
  18 +features, such as search and user profile editing were eliminated from
  19 +the individual applications, and implemented centrally to ensure a
  20 +consistent look and feel.
  21 +
  22 +Another challenge was responsive web design. The integrated applications
  23 +had varying degrees of support for responsiveness, and the common
  24 +interface had to adapt for each individual scenario. In particular
  25 +Noosfero did not yet have a responsive design; we engaged in its
  26 +development and contributed towards that goal.
  27 +
  28 +After the initial release of the new SPB Portal in 2014, several
  29 +validations activities were implemented in 2015 and 2016. The aim was to
  30 +provide the most wanted features by casual users (such as public
  31 +servants interested in downloads and documentation) immediately, while
  32 +allowing more experienced users (such as developers) to easily drill down
  33 +to the details.
... ...
opensym2017/content/08-contributions.tex 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +\section{Contributing with Free Software Communities}
  2 +\label{sec:contributions}
  3 +
  4 +...
... ...
opensym2017/content/09-lessons.tex 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +\section{Lessons Learned}
  2 +\label{sec:lessons}
  3 +
  4 +...
... ...
opensym2017/content/10-finals.tex 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +\section{Final remarks}
  2 +
  3 +The portal is available at \url{softwarepublico.gov.br}. All
  4 +documentation, including detailed architecture and operation manuals are
  5 +also available\footnote{\url{https://softwarepublico.gov.br/doc/}
  6 +(in Portuguese only at the moment)}).
  7 +%
  8 +All the integrated tools are FOSS and our contributions were published
  9 +in open repositories, available on the SPB Portal itself. We also
  10 +contributed these features back to the respective communities: that
  11 +benefits those communities, as well as us since we can share future
  12 +development and maintenance effort with other organizations that
  13 +participate in their projects.
... ...
opensym2017/spb.tex
... ... @@ -152,11 +152,14 @@
152 152 %------------------------------------------------------------------------------
153 153 \input{content/01-introduction}
154 154 \input{content/02-spb}
155   -\input{content/03-arch}
156   -\input{content/04-features}
157   -\input{content/05-process}
158   -\input{content/06-ux}
159   -\input{content/07-finals}
  155 +\input{content/03-requirements}
  156 +\input{content/04-process}
  157 +\input{content/05-architecture}
  158 +\input{content/06-features}
  159 +\input{content/07-ux}
  160 +\input{content/08-contributions}
  161 +\input{content/09-lessons}
  162 +\input{content/10-finals}
160 163  
161 164 %------------------------------------------------------------------------------
162 165 \bibliographystyle{SIGCHI-Reference-Format}
... ...