Contents

SIDE-Labs Overview

Jean-Christophe Kermagoret

Introduction

SIDE-Labs is:

  • A set of graphical tools
  • For system integrators and developers
  • To produce automatically Alfresco based applications

In a quickier and better way than manual programming

The pain

Alfresco is powerful, but:

  • Developing even simple application is a real pain
  • It's difficult to know what to do
    • Lots of xml files to configure
  • It's even difficult to do when you know
    • Lots of xml lines of code to write (1 000s to 10 000s)

The Pain (2)

No developer tools to help you:

  • To design
  • To generate
  • To test
  • To deploy

The solution

A set of graphical tools to assist you during development process:

  • To design each part of your Alfresco application
  • To generate automatically content-types, forms, workflows and views
  • To test
  • To deploy

A set of server extensions

Benefits

  • Rich feature set (SQL, Advanced forms
  • Productivity
  • Quality
  • Agility

Key features

  • Development/Configuration Tool
    • Graphical tools
    • Forms engine
    • Paperless engine
    • Ready for industrialization

Architecture

Concepts

The complete architecture is defined on KerBlue (http://www.kerblue.org). SIDE implements a Model Driven Software Development process (MDSD), which is par of Model Driven Engineering (MDE).


Figure 8.1.  KerBlue Architecture

10000201000002A90000038F4B6DE4AD.png


Technical point of view

Sustainable Virtual Application

Figure 8.2.  KerBlue Sustainable Virtual Application

10000201000001CE0000009C0E41F966.png


Sustainable Virtual Framework

Figure 8.3.  KerBlue Sustainable Virtual Framework

10000201000001CE000000B79D37ECB1.png


Target Technical Platform

Figure 8.4.  KerBlue Target Technical Platform

100002010000021E000001A992C3CEDA.png


SIDE

Integration architecture

Figure 8.5.  Integration Architecture

1000000000000343000002D660BD8A28.png


Front office integration (FOI)

Portals

  • Liferay, JBoss, ...

CMS

  • Drupal, Joomla, ...

Specific Application

  • J2EE
  • .Net
  • Php, Ruby, …

FOI – Javascript frameworks

  • dojo
  • jQuery
  • ExtJS

Back office integration (BOI)

Direct Access

  • JDBC, ODBC

BOI – Office applications

  • Excel, Access, ...
  • OpenOffice, ...

BOI – Report engines

Open source

  • Birt, JasperReports, …

Commercial

  • Cristal Reports, …

BOI – Business Intelligence

  • Pentaho, SpagoBI, ...
  • BO, SQL Server, SAS, ...

Methodology

Building an application with SIDE-Labs implies the following steps:


Figure 9.1.  SIDE Steps

10000201000001BF000000A37FE9EE02.png


Input Data

Storage

  • Design data model through Data Diagram
  • Generate Alfresco model through Data Generator
  • Deploy model on your Alfresco instance

Forms (Form Diagram)

  • Design

Process Data

  • Validation
    • Design processes through Workflow Diagram
      • Subprocesses
      • Actions based on javascript, java or webservices
      • Usual workflow elements
    • Generate jBoss & Alfresco model through Workflow Generator
    • Deploy jBoss & Alfresco models on your Alfresco instance
    • Test and enjoy

Browse Data

  • Navigate
    • Design the application through the Portal Diagram
    • Generate the Liferay or Alfresco share portal through Portal Generator
    • Deploy models on Liferay or Alfresco Share on your Liferay and Alfresco instances
  • View
    • Design
    • Generate
    • Deploy

Analyze Data

  • Reports
  • Business Intelligence

Integration

Forms

Webservice


Figure 10.1.  Simple form example (without CSS)

10000000000001C4000001764C955D7E.png


With CSS

  • #RequestForAbsence-1 {
    • background: url(icons/nuvola/48x48/apps/colors.png) no-repeat scroll top right;
  • }


Figure 10.2.  Simple form example (with CSS)

10000000000001E1000001B0D1855B60.png


Integrated form

Figure 10.3.  Simple form integration (with jQuery)

100000000000041A0000031A8DB223D8.png


Views

Webservice

Figure 10.4.  Simple datagrid example

10000000000004830000020E2DD22EDF.png


Integration

Integration in a jQuery modal window for example


Figure 10.5.  Simple datagrid integration (with jQuery)

100000000000043C0000031AF4AF815B.png