Architecture




Opsoro leverages technologies that are used and provided by Alfresco as well as additional frameworks:

Alfresco Content Repository
Alfresco have integrated state-of-the-art open source and Java technology such as Spring, Hibernate, Lucene into a simple-to-use, extensible Open Source Enterprise Content Management (ECM) system. An Alfresco repository can be accessed via Axis2-based web services or by using the RESTful Web Scripts.
Alfresco Web Scripts
An Alfresco Web Script consist of the following components:
  • A description document, which describes the URL that that will inititate the script. For example, the service is given a short name and description, along with authentication and transactional needs.
  • An optional execution script, written in Javascript, which will do the actual work. For example, the script may query the Alfresco Repository to build a set of data items to render in the response, or for URLs that intend to modify the repository, the script updates the content nodes in the Alfresco Repository. The JavaScript has access to all URL arguments, Alfresco services and Repository data entry points.
  • One or more FreeMarker templates that will render any output in the correct format for your specific needs. For example, HTML, ATOM, XML, RSS, JSON, CSV, or any combination of these. The URL response is rendered via one of the supplied templates where the chosen template is based on the required response content-type or status outcome. The template has access to all URL arguments, common Repository data entry points and any data items built by the optional "execute" script.

    Opsoro uses mainly json as response format to keep the data chunks as small as possible.
  • Sometimes, scripts and templates are not powerful enough to implement the required functionality behind a URL. For these scenarios it is possible to bind an Alfresco Spring configured Java Bean into the Web Script. The Java Bean may take full control, or work in conjunction with the script and templates.

    For the moment opsoro don't uses thes Java-backed Web Scripts.
Ext JS 2.0
Ext JS is a client-side, JavaScript framework for building web applications and often simply called Ext. dual-licensed under the LGPL (v3) and a commercial license. Ext gives us the opportunity to build a web client which the same richness as a normal Rich Client. It is waste of time trying to describe why Ext JS is a powerful framework, just take a look at these demos here
Adobe AIR
Adobe Integrated Runtime (AIR), codenamed Apollo, is a cross-operating system runtime environment for building rich Internet applications using Adobe Flash, Adobe Flex, HTML, and Ajax, that can be deployed as a desktop application. Due to the fact that AIR includes a SQLite database and access to the local file system an AIR application can also work offline. Further features like native drag 'n drop within the local file system are providing Rich User Interface feelings.