You are on page 1of 12

General Design File ​v 3.

French Fiscal Certification

General Design File ​v 3.0


« ​Openbravo Commerce Suite 3.0RR19Q3: 1.8.4503​ ​»

« ​French Fiscal v 1.0.1000​ ​»

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 1 / 12


General Design File ​v 3.0

Version Control
Version Author Date Change

1.0 Patricia San Juan May 9th, 2018 Document creation with correct template and versioning

2.0 Antonio Moreno May 25th, 2018 HTTPS content updated

3.0 Patricia San Juan Oct 30th, 2020 Minor versions updated

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 2 / 12


General Design File ​v 3.0

Table of Contents
Version Control

Table of Contents

Introduction

The concepts
Openbravo Commerce Suite
Openbravo business model

The architectures
Openbravo 3.0 architecture
Openbravo 3.0 user interface
Openbravo mobile architecture
Openbravo Web POS architecture
Openbravo Commerce Suite schematic diagram

Fiscal functionalities integration

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 3 / 12


General Design File ​v 3.0

 
I. Introduction
Openbravo is a software solution vendor that offers a global POS and retail management software
with the aim of helping midsize and large businesses to successfully manage their retail operations.

“Openbravo Commerce Suite” is Openbravo's commercial offering for the Retail Industry. This suite
offers a unique store solution or cash register system, composed by a set of modules that once
installed on top of Openbravo, deliver the retail functionality provided by Openbravo and the
technology to extend and create new retail functionality to adapt Openbravo as required.

Besides that, Openbravo Commerce Suite is backed by a complete back office functionality that is
the Openbravo Business Suite. The Openbravo business suite offers a comprehensive business
management solution with built-in ERP capabilities.

This document is an overall presentation of Openbravo, as it is intended to describe high-level


concepts such as Openbravo Business and Retail solutions, Openbravo Business Model, as well as
Openbravo architectures, and how Openbravo Commerce Suite 3.0RR19Q3:1.8.4503 version will
integrate French Fiscal functionalities through French Fiscal module v 1.0.1000.

Openbravo agrees to keep the regulatory documents until the end of the third year following the
year in which the software or cash system ceases to be released.

II. The concepts

Openbravo Commerce Suite


Openbravo Commerce Suite is a multichannel retail business solution built on top of a truly modular,
mobile-enabled and cloud-ready technology platform. All of that provide the core set of technologies
that allow among others to:

● Increase productivity with a modern web user interface that is easy to use and learn
and can be personalized to end user preferences.
● Leverage a flexible and powerful security model that allows an effective control of
system access, accurate operational execution and auditing capabilities to full
compliance with all your security policies.
● Reduce manual work and increase data quality with process automation tools
● Ensure high performance in big load environments
● Safely protect new functionality added thanks to an easy to extend and maintain fully
modular platform.

For additional information, review the documents ​Getting started with Openbravo and ​Openbravo
platform features

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 4 / 12


General Design File ​v 3.0

Openbravo business model


Openbravo distributes its software solutions through a global network of authorized partners, under
Openbravo partner’s program, as the way to have direct support of Openbravo as well as its
guidelines.

Moreover, one of the requirements partners must need to meet, among others, is to support an
ongoing certification of their staff from a functional, technical, software implementation and sales
point of views, all of that according to Openbravo guidelines and recommendations.

In regards to French Fiscal certification, Openbravo will train its partners in France, on the correct
configuration and proper usage of “Openbravo Commerce Suite 3.0RR18Q4: 1.8.3900”, together
with the “French Fiscal module v 1.0.0”, therefore they are aware of the fact that any modification
make by them on top of that, will imply that they will have to make the corresponding attestation or
certification themselves.

Besides the above, Openbravo will request to its partners in France, on the correct configuration
and proper usage of the tools provided to support a correct conservation of data; tools such as OS,
minimum stack required as well as hardware and monitoring tools.

III. The architectures

Openbravo 3.0 architecture


“Openbravo Commerce Suite 3.0RR18Q4: 1.8.3900” is built on top of Openbravo Core version 3.0.

Starting from Openbravo Core version 3.0, Openbravo moves from a classic servlet architecture to
a Rich Internet Application (RIA) architecture. ​This is a radical paradigm shift resulting in a much
more dynamic and versatile user interface.

The Openbravo 3.0 architecture is implemented using Openbravo Core and several related
modules:

● the ​JSON module provides the JSON REST web service that is used for the client-server
data communication
● the ​Weld​ module that provides dependency injection and component management
● the ​Kernel module that takes care of infrastructure tasks as request processing, event
handling, and compression and caching.
● the ​DataSource module uses the JSON module and provides higher level data request
functionality for querying and data related actions
● the ​Smartclient​ module that provides the Smartclient user interface library

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 5 / 12


General Design File ​v 3.0

● and the ​Application module that contains the implementation of the navigation bar, grids
and forms and other application oriented client and server side code

Here it is a general view of Openbravo 3.0 architecture:

Openbravo 3.0 user interface


The Openbravo 3.0 user interface is implemented by so-called components. A component is a
specific part of the user interface. It can be a selector, a field on a form, but also a complete layout,
or a form or a grid.

Components are implemented in modules. A module has complete freedom on how to implement
components (if there is a window table, a grid table or a generic view table etc.). The components
within a module are managed by a Component Provider, that creates a component and provides it
to the Openbravo kernel. A component provider is also responsible for registering the static content
with Openbravo, this is explained in more detail below. A component can be retrieved using a URL
(a component request).

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 6 / 12


General Design File ​v 3.0

The following image illustrates the request flow processing in more detail:

The overall request and generate flow operates as follows:

● a component request (with a component type and id) is received by the Client Kernel module
(in the KernelServlet).
● based on the component type the kernel module finds the module responsible for handling
the requested component, that module is then called to create the component using the
component id.
● the module reads the component definition from tables or other sources and instantiates the
Component instance.
● the component is called to generate its client-side representation.
● if it is a templated component (i.e. it has a specific template) then the component calls a
template processor for the template.
● the view is generated using the template or by executing javacode which generates a String
(javascript).
● the result (often a javascript string) is returned to the Client Kernel module.
● the Client Kernel module processes the result: 1) checks the syntax of the result (using jslint)
and 2) compresses it using jsmin.

Note that the Client Kernel module also takes care of caching components and component
requests.

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 7 / 12


General Design File ​v 3.0

Openbravo mobile architecture

Openbravo Core Mobile Infrastructure is an Openbravo module which extends the Openbravo
Platform with HTML5-based mobile UI capabilities.

It provides an infrastructure that allows the development of mobile web applications on top of
Openbravo. Openbravo mobile web applications are optimized for mobile devices and touch
screens, and can be offline-capable.

Here it is a general view of Openbravo mobile architecture:

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 8 / 12


General Design File ​v 3.0

Mobile Core Infrastructure is the module that once installed on top of Openbravo Core version 3.0,
provides all the infrastructure required to build mobile applications.

The server side of this module is an extension of Openbravo that includes some components to
server resources to the client side and to provide data to the client parts and process it, so data is
included in Openbravo.

The client side of this module includes a set of different technologies, each of them built with the aim
described below:

● Enyo.js is a javascript application framework sponsored by HP. Using it we have created the
components which conforms the windows of Openbravo Web POS. Enyojs also provides a
useful event management tool which allow us to trigger an event to be handled by another
enyo component. One of the best things of Enyojs is the capability to extend or overwrite
each components, it help us to customize components using an Openbravo ERP module.
● Onyx​ is a toolbox of UI enyo components. We use some of them to build our layout.
● UI Components are based on the two libraries explained in the previous sections, we have
created a set of common ui components (such as buttons, menus, keyboard, etc.) to be
reused by different applications
● Layout using onyx's Panels to create a multicolumn layout. Depending on the device
resolution it shows multi column or single column, in this way the applications are usable
even in small devices.
● Backbone is a JavaScript framework that allows to structure JavaScript code in an MVC
(Model, View, Controller) paradigm. In our particular case we have used backbone to work
with data (models and collections). A model provide functionality for managing changes
using its own methods and event handlers.
● Underscore that is a library that provides interesting tools to work with collections.
Backbone depends on underscore.
● WebSQL as the technology that allow to store big data in the client side, therefore it is easy
and fast to access to it. This data will be retrieved from the server (thanks to datasource) and
stored in WebSQL database. When the data is saved, it can be read it using dal.
● Client DAL is one of the most important parts of Openbravo. DAL helps to easily interact
with the database, in fact, it is used in the server side components. To access to WebSQL
stored data a client side DAL has been created. It allow Openbravo to manage WebSQL
database easily.
● Client Datasource is a concept which involves the tools that allow Openbravo to
communicate with the server in order to send or retrieve data easily from the client side.

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 9 / 12


General Design File ​v 3.0

Openbravo Web POS architecture


Web POS is one of the key components of the Openbravo Commerce Suite. Web POS is used to
assist shop floor staff in the client-side selling in the stores, and to enable the checkout process.

Here it is a general view of Web POS architecture:

As shown in the image above the server side of Openbravo Web POS is an extension of Openbravo
Core. Besides that a new layer has been included between Openbravo Web POS and Openbravo
Core that is Mobile Core Infrastructure. This new layer provides the infrastructure to build mobile
applications.

The component provider serves resources to the client side and it can be extended by other
modules.

Server datasource is the component that provides data to the cliente part and process the data that
comes from the client side so it is included in Openbravo backoffice.

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 10 / 12


General Design File ​v 3.0

Finally, “Hardware Manager” is a standalone web server which is connected to the different devices
(printers, scales, screens). The only requirement to install the hardware manager is to be connected
with the different POS terminals. This server will receive documents or strings to be printed/showed
in the different devices.

In the client side, when a print action is launched a template will be filled with the data. This filled
template will be sent to the server side using Ajax calls. Also is possible to retrieve data form server
side (scales). It is done using an asynchronous call also using Ajax requests.

Hardware manager as proxy server

Another functionality provided by hardware manager is as proxy. With this feature javascript
programs can execute cross domain calls through the hardware manager. An Ajax call will be send
from the JS application, HWManger will forward the info to the provided URL (as a parameter).

Openbravo Commerce Suite schematic diagram


Openbravo commerce suite is a web based system with a frontend Javascript Application, and a
local server implementation displaying a back office for administration purposes.

Below diagram shows how the Openbravo Commerce Suite works. It can be installed on top of an
Oracle or PostgreSQL environment. It also requires the usage of the Apache Tomcat server, and
Apache web server is usually installed and configured in front of it to provide both encryption and
compression utilities.

As Openbravo is a web application, all communication happens using HTTPS. It is mandatory to


use HTTPS instead of plain, unsecured HTTP, for both functional and security reasons:

● Every modern application should use HTTPS to ensure the security of the transferred data
and to avoid the problem of security attacks, as only communication through HTTPS
ensures that third parties cannot read it, and cannot spoof the user identity.

● Moreover, on top of this security requirement, the WebPOS application in particular uses
some technologies (such as AppCache) which are only made available by browsers in
secured contexts, so Openbravo technically requires the usage of HTTPS.

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 11 / 12


General Design File ​v 3.0

IV. Fiscal functionalities integration


Openbravo solutions are built on a platform that provides a core set of technologies that allow
extending Openbravo to fit business needs or even legal requirements, through modularity.

A module is a piece of additional functionality that can be deployed on top of Openbravo solutions.
Examples of modules are those required to properly adapt Openbravo to different languages and
legal or fiscal requirements.

Therefore, all the functionality related to the French Finance Law mentioned above, will be
distributed as a module to be installed by any retail company operating in France.

This new module will be named as “French Fiscal v 1.0.0”, as it will enable the software to support
inalterability, security, retention and archiving conditions required by French Tax Authorities, on top
of Openbravo Commerce Suite 3.0RR18Q4: 1.8.3900.

Proyect: French Fiscal Certification Customer: LNE Version: 3.0

Author: Patricia San Juan Last Modif: Oct 2020 Page: 12 / 12

You might also like