OpenERP/Odoo的架构
OpenERP的架构一、OpenERP应用系统架构OpenERP应用系统,大的来说,分成三层,即数据库服务器、应用服务器、客户端。数据库服务器,OpenERP采用开源数据库服务器,PostgreSQL database server。数据库服务器存放所有业务数据和绝大部分配置数据。OpenERP的配置数据和一般说的软件配置数据不同,如用户界面显示,每个界面上要显示什么对象的哪个字段,按...
OpenERP的架构
一、OpenERP应用系统架构
OpenERP应用系统,大的来说,分成三层,即数据库服务器、应用服务器、客户端。
数据库服务器,OpenERP采用开源数据库服务器,PostgreSQL database server。数据库服务器存放所有业务数据和绝大部分配置数据。OpenERP的配置数据和一般说的软件配置数据不同,如用户界面显示,每个界面上要显示什么对象的哪个字段,按什么风格显示,在OpenERP也是配置数据。在OpenERP中,用户界面不是通过HTML或其他程序代码生成,而是直接存放在数据库中。运行时直接从数据库中提取数据,渲染成你看到的界面。
OpenERP应用服务器,应用服务包含所有业务逻辑代码。包括最简单的CRUD代码,以及复杂的查询条件等。业务逻辑由各业务对象实现,你可以通过远程调用(Net-RPC或XML-RPC)直接调用对象的方法。如大多数业务对象都有CRUD四个方法,你可以远程调用对象的CRUD方法,从而实现数据库访问。
GUI-Client,这是一个客户端,直接连接在应用服务器上。OpenERP官方提供的GUI-Client是GTK-Client,即基于GTK(Graphics Tools Kit)图形界面工具包开发的界面软件。开源社区也有人在开发基于QT图形界面工具包的客户端软件。OpenERP的客户端不含任何业务逻辑代码,也不包含任何界面代码,即所谓的“瘦客户端”。OpenERP的Client的功能是,通过调用OpenERP应用服务器的各对象的方法,从数据库中取得界面数据(XML格式定义的界面),以及业务数据,合并二者,渲染成用户界面,在屏幕上显示出来。GUI-Client是将界面渲染成通常的窗口界面风格,和Java或.Net编写的界面程序类似。
Web-Client,这也是一个客户端,不同的是,它把来自数据库的界面和业务数据渲染成HTML
格式的网页形式,因此你可以通过IE、Firefox等浏览器访问。
从这个架构图可以看到,还可以把Web-Client(从用户角度看,其实是Web-Server)和Appache HTTP Server集成,从而为Internet用户提供Https的安全访问模式。当需要合作伙伴访问公司的部分数据时,这个功能很有用。
二、OpenERP应用服务器架构
OpenERP技术上最闻名的恐怕是它的灵活的模块化设计了。它整个应用服务器由松散的模块构成,模块间的耦合度非常低。怎样松散耦合,是软件设计中的一个困难问题,OpenERP这点在ERP软件中做的最好。
OpenERP的应用服务器有这么几部分构成:
ORM,Object Relation Mapping,负责数据对象到数据库的访问。在OpenERP的业务对象中,你不必写一行数据库访问代码,就自动具备CRUD的数据库访问功能。
BMD,Base Module Distribution,是一个基础模块,必不可少。其他模块,你可以自己任意添加,开源社区有超过500个以上的可用模块。
Report Engine,负责生成各种报表。目前支持的报表格式有PDF,OpenOffice,HTML三种。
Workflow Engine,工作流引擎。支持任意复杂度的工作流,OE的工作流使用XML格式文件定义,目前也提供简单的图形化工作流编辑工具。
WebService,提供网络调用接口。目前支持Net-RPC、XML-RPC两种。
关于OpenERP核心对象结构,请参考这里http://doc.openerp.com/_images/pom_3_0_3.png
三、PostgreSQL数据库简介
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,版本4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL被公认为世界上最先进的开放源码的数据库系统,它的许多领先的概念,在晚了好些年后,陆续出现在商业数据库中。PostgreSQL目前最新的版本是2009年12月份发布的8.4.2,它的官方网站在这里:http://www.postgresql.org/
。
POSTGRES开发始于1986年,它是由加州大学伯克利分校Michael Stonebraker领导的,由美国防务高级研究项目局(DARPA),美国陆军研究办公室(ARO),美国国家科学基金(NSF),以及ESL,Inc共同赞助的数据库研究项目。POSTGRES 1987年发布了第一个演示版,并且在1988年的ACM-SIGMOD大
会上展出。1989年6月发布了版本1给一些外部用户使用。为了回应用户对第一版规则系统的批评,作者
重新设计了规则系统,并于1990年6月发布了使用新规则系统的版本2。版本3于1991年发布,增加了多存储管理器的支持,并且改进了查询执行器,重写了规则系统。从那以后,随后的版本直到Postgres95发布前工作都集中在移植性和可靠性上。1993年,随着用户数的成倍增涨,Postres数据库的支持成本越来越大,项目组在发布了Postres4.2后终止了项目。
POSTGRES发布后在许多研究、生产系统中得到了应用。财务数据分析系统,喷气引擎性能监控软件包,小行星跟踪数据库,医疗信息数据库和一些地理信息系统。POSTGRES还被许多大学用于教学用途。后来,Illustra Information Technologies Illustra Information Technologies(后来并入Informix,后者现在被IBM收购了)拿到代码并使之商业化,发布了Informix数据库。
1994年,Andrew Yu和Jolly Chen向POSTGRES中增加了SQL语言解释器,并优化了全体代码。随后以Postgres95的版本号、以开放源码的形式发布到互联网上供大家使用。Postgres95所有源代码都是完全的ANSI C。和Postres4.2相比,Postgres95代码量减少了25%,修正了许多错误,大幅提高了代码性能和代码维护性。Postgres95版本1.0.x进行Wisconsin Benchmark测试时大概比POSTGRES 4.2快30-50%。
1996年,Postgres95改名为PostgreSQL,版本定为6.0。今天,PostgreSQL的最新版本是8.4.2。下面列出一些有公开报道的使用PostgreSQL数据库的机构。
žžAffymetrix:(www.affymetrix.com),一个生物技术研究公司,为基因研究工业提供艺术级的研究工具,在他们的Transcriptome项目中用PostgreSQL存储那些从高密度GeneChip序列中生成的海量RNA表达实验。
Afilias:(www.nic.info),一个域名注册提供商,目前管理互联网上新发布的第一个扩展.INFO。它是一个位于爱尔兰的公司,管理着超过900,000个域名以及超过一千万条记录,这些数据都是存放在以PostgreSQL为后端的数据库中。
BASF:(www.basf.com),巴斯福,世界上最大的化工公司,使用PostgreSQL为他们的美国农业综合业的电子商务网站存储数据。
Journyx,世界公认的基于web的时间和开销跟踪的服务商,拥有超过一百万最终用户。他们将PostgreSQL用于他们所有unix平台上的内部数据库操作(Linux,BSD,AIX,Solaris,以及很快还有MacOS X)。
Royal,现代Royal打字机公司,他们的在线电子商务网站什么东西都用PostgreSQL存储。
žžThe American Chemical Society,美国化学社区,世界上最大的专业化学组织,拥有超过165,000个成员,以及一个每天有超过一千二百万人访问的网站。他们的刊物档案馆存储了125年的所有出版物(两千五百万页,超过1T的数据),用的是PostgreSQL。(目前已知PostgreSQL最大的数据库)。
Tsutaya,日本最大的视频节目租赁连锁店,用PostgreSQL存储他们超过几个G,几百万条记录的数据,以及做他们的商业信息数据库。
更多推荐
所有评论(0)