Odoo
Technical Introduction
PostgreSQL
Python
High-level programming language
Its syntax allows programmers to express concepts in fewer lines of code
Python supports multiple programming paradigms
Highly scalable
Portable, cross-platform
Object-Oriented
Powerful standard libs
Wealth of 3rd party packages
XML
Agenda:
Technical Introduction
PostgreSQL
Python
XML
Client/Server architecture in which clients are web browsers accessing the Odoo server via RPC
Open-Source Software
Promotes universal access via a free license to a product's design or blueprint
You can study, use, contribute but under this licenses
MVC design pattern
Modular development, It is use module as feature containers
Suite of open-source enterprise management applications
Three-tiers architecture
Odoo is ...
RPC
Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer in a network without having to understand network details.
RPC uses the client/server model. The requesting program is a client and the service-providing program is the server
XML RPC
XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism
XML-RPC works by sending an HTTP request to a server implementing the protocol. The client in that case is typically software wanting to call a single method of a remote system
ذ
Three-Tier Architecture
Three-tier architecture is a software design pattern and a well-established software architecture
Three-tier architecture allows any one of the three tiers to be upgraded or replaced independently
Presentation Tier (Web Browser)
Application Tier (Odoo Server)
Data Tier (PostgreSQL database)
Model-view-controller (MVC) is:
an architectural pattern used in software engineering data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller
MVC Design Pattern
PostgreSQL is the advanced, open-source [object]-relational database management system
Extensible
Strong community
Strong third-party support
Database Specification
Specification
Limit -> Value
Maximum Database Size -> Unlimited
Maximum Table Size -> 32 TB
Maximum Row Size -> 1.6 TB
Maximum Field Size -> 1 GB
Maximum Rows per Table -> Unlimited
Maximum Columns per Table -> 250 - 1600
Maximum Indexes per Table -> Unlimited
Python Code:
>>> l = [1, 2, 3, 4, 5]
>>> new_list = [x**2 for x in l]
>>> new_list
[1, 4, 9, 16, 25]
Try it in Java
How many lines!!
XML stands for EXtensible Markup Language
XML is a markup language much like HTML
XML was designed to store and transport data
XML was designed to be self-descriptive
The design goals of XML emphasize simplicity, generality and usability across the Internet
Sample Code
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Any Questions ?
Selective Systems
ss-sa.co
info@ss-sa.co
/Selective-systems-company
Module Hierarchy
|-- test/ - The module directory
|-- demo/ - Demo and unit test population data
|-- i18n/ - Translation files
|-- report/ - Report definitions
|-- security/ - Declaration of groups and access rights
|-- wizard/ - Wizards definitions (pop-up window)
|-- workflow/ - Workflow definitions
|-- models/ - Python classes, the module's objects
|-- views/ - Views, Menus, Actions
|-- __init__.py - Python package initialization (required)
|-- __openerp__.py - Module declaration (required)
/Selective Systems
Present Remotely
Send the link below via email or IM
Present to your audience
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article