Openbiz --- 基于元数据的面向企业应用而设计的极致面向对象的开源PHP框架
框架介绍
Openbiz Framework是为搭建企业应用而设计的PHP的基于面向对象的快速开发框架。它可以帮助专业软件开发人员和技术咨询专家来构建用于网络上的企业级应用。
由于企业级应用的高复杂性,系统开发通常会需要巨大投资和冗长的时间去进行工程计划,系统设计,原型设计,组件编码,功能测试,产品部署以及维护。
Openbiz Framework的设计目标是节省构建复杂应用系统的开发投入和缩短开发时间。借助于Openbiz的帮助,应用程序的开发将基于完善的MVC架构建立,以
Metadata驱动为核心描述业务逻辑,支持多种ORM逻辑,并且有Openbiz Appbuilder作为图形化集成开发环境的快速开发平台。
优势特性
Metadata 驱动
Openbiz Framework是以元数据(Metadata)驱动的框架。这意味着Openbiz对象(Objects)的创立是基于Metadata的描述文件。构建一个系统对象意味着设计和编写XML格式的Metadata文件。因此,基于Openbiz的应用软件包是完全可客户定制化的,而且是极其容易开发和维护的。
MVC架构
Openbiz Framework内部集成了MVC(模型-视图-控制器)的设计模式。这使得基于Openbiz的应用非常容易来开发和管理,因为表述层的程序与商业数据和逻辑清楚地分离开来。
ORM(对象关系映射)
Openbiz Framework的内核实现了高级ORM对象关系映射功能。Openbiz以BizDataObj数据对象来表述数据库表格和它们之间的逻辑关系。Openbiz支持的映射包括一对多,多对一,一对一、多对多和自我相关的对象逻辑关系,并且支持与标准结构化查询语言(SQL)相似的查询语言。
可扩展性系统服务
Openbiz Framework允许开发人员通过实现插入式服务的方式编写自己的特殊逻辑。Openbiz服务对象同样是基于元数据驱动的对象。
Openbiz Framework自身已经包含了很多功能实用的高级框架。例如:缓存管理服务,访问控制服务、电子邮件服务 和 数据查询服务等。
开放的许可协议
Openbiz Framework 底层基于自由开放的BSD License 发布。您可以放心大胆的基于Openbiz Framework来构建您的商业应用软件,而无需担心版权问题。
成熟稳定且完善
Openbiz Framework 创始于2003年,历经十余年发展完善,基于Openbiz框架的解决方案曾服务于三星电子、中国移动、工商银行、福田汽车众多国际品牌。可以 轻松应对各种客户的制定需求的。
投资回报
更低成本
由于Openbiz的免费许可证和短时的开发过程,你将花极少的费用在购买软件和雇佣咨询公司上,而且得到更好的产品。
迅速部署
基于Openbiz的应用是完全可重配置的,这样它能够迅速因需求而变化。你将可以轻松满足用户不断变化的应用需求。
低维护费用
管理Openbiz的Metadata比起管理混杂的程序源代码要简单得多。
用户体验
基于Cubi实现了一套淘宝的会员信息管理和KPI统计分析(目前已发布在淘宝服务市场),在过程中感觉整个系统的开发我更多时间花在系统的需求整理和规则,其它如的新增、修改、删除等功能Cubi都已经帮我实现好了,并且模块之间都能够无缝对接无缝集成,相信在Cubi的不断完善下软件开发将不只是开发者的专属,开发软件将变的更轻松。
-冯圣龙,中国
我们正在想办法来代替公司以有的过时的用Visual Basic编写的程序。Openbiz是我们发现的最好的开发框架。
-Andrew,美国
我们花了两个月来研究不同的应用框架,Openbiz是唯一的系统,它能创建Web应用而不需要了解PHP编程。
-Nik,保加利亚
我高兴地给出A+,因为我对Openbiz的问题得到了迅速而且完美的解答。Openbiz Framework的确厉害!
-Douglas,法国
-------------------------------------------------------------------------------------------------------------------------------
先进的技术架构是构建系统的基础
框架介绍
Openbiz是一个多层结构体系。Openbiz应用程序被分为三层设计,表示层,业务逻辑层和数据抽象层,在Openbiz中:
- 表示层是由Openbiz视图和表单对象实现的。Openbiz还有额外的JavaScript库负责通过Ajax的方式与服务器后端的表示层对象通信。
- 商业逻辑层是由Openbiz数据对象 和 Openbiz 服务对象 实现的。
- 数据抽象层由Zend_DB来处理多类型关系数据库数据的操作。
模块、视图与控制器 (MVC)
Openbiz的一个关键性特性就是它是一个基于模块-视图-控制器(MVC)设计模式的框架。这一特点使得基于Openbiz开发的应用程序更加便于管理。
因为表现层(View)是与应用程序的数据和逻辑(Model)清晰的分离开的。所有用户与应用程序的交互全部由前端控制器来处理。
比较Openbiz MVC和市场上主流的MVC框架例如JSF和Strusts等,Openbiz框架更加接近JSF,因为他们同样是基于对象的结构。
Openbiz的视图层包括了视图对象,表单对象和表单控件等组件,这些对象在处理请求时都是可被访问的。
Openbiz 核心对象
任何应用都可以由两部分组成-后端和前端。通常的主要业务逻辑运行在后端, 而用户界面在前端。在Openbiz中,后端主要为 “数据对象”或“服务对象”。前端主要有“表单对象”和“视图对象。” 数据对象(又名“DO”)是一个数据单元。Openbiz数据对象将数据库中的表和关系映射到系统对象中。 它在对象中封装了(创建,读取,更新和删除)等操作,并提供了高级搜索接口。
一个数据对象包含了一组字段。在典型的用法中,一个数据对象映射到数据库中的表,并且每一个字段映射到数据表中的列或者SQL表达式。 服务对象 服务对象(又名“Service”)是一个Openbiz的系统服务单元,其包含业务逻辑实现的一组函数(方法)。典型的Openbiz服务对象的范例是“用户身份验证服务” 和 “电子邮件服务” 表单对象(又名“Form”)是用户界面区块的单元,它包含了一组相关的表单控件,他可以是一个标准的HTML表单,一个带有工具栏和导航条的HTML表格,一个图片列表等。一个表单对象包含了一组表单控件,它即可以是简单的也可以是高级的HTML控件。典型的使用方法是:一个表单对象映射到一个数据对象上,并把每一个表单对象上的表单控件分别映射到数据对象的字段上。 视图对象(又名“View”)实际上是网页的页面别称。试图对象是表单对象的容器。你可以把视图对象(网页)想象为是地板,而表单对象就是依附在上面的瓷砖。
Openbiz 代码结构
Openbiz 核心类库和代码结构如下
openbiz_root/ | |
--- bin/ | (openbiz 核心PHP源代码) |
------ data/ | (数据层类库) |
---------- private/ | (数据曾私有类库) |
------ easy/ | (表现层类库) |
---------- element/ | (HTML表单控件类库) |
------ service/ | (openbiz 核心服务类库) |
------ util/ | (工具类库) |
--- message/ | (openbiz字符串定义文件) |
--- metadata/ | (openbiz元数据文件夹) |
------ service/ | (openbiz服务包) |
--- others/ | (第三方类库) |
------ Smarty/ | (smarty包) |
------ zend/ | (Zend 框架) |
第三方类库
Openbiz 尝试在系统中集成市场上最好的第三方类库,在Openbiz中大量使用的关键类库包括:
- Zend 框架. Openbiz 在如下应用中使用了 Zend 框架
- 数据库交互
- 多语言支持
- 数据有效性校验
- 电子邮件服务
- 高级缓存管理
- JSON编码和解码
- PHP 模板
- Smarty 模版系统.
- Smarty 是系统的主要模板引擎,应用于Openbiz表单对象和视图对象。
- Javascript 类库
- Prototype.
- Openbiz Ajax 客户端使用Prototype 库来实现类的继承和Ajax通信。
- jQuery.
- jQuery 在 Openbiz Cubi 中的高级UI控件中被大量使用
为何要面向元数据
Openbiz框架的设计目标是使设计,开发和维护网络应用程序变的快捷和方便。Openbiz架构的主要创新是其基于元数据的设计。
这意味着Openbiz对象是基于元数据文件中的描述的而创建的。对于Openbiz来说在大多数时间构建一个应用程序就相当于设置和开发他的元数据文件。
由于XML语言的自我解释这一特性,使得Openbiz的应用程序十分易于维护,与此同时Openbiz是如同XML语言一样也一个具有丰富可扩展的框架。
面向元数据编程
Openbiz的核心理念在于他的基于元数据驱动的机制。什么是元数据呢?从字面上来解释,元数据是一个描述数据的数据组件。 它是“关于数据的数据”。在Openbiz中元数据文件扮演着Openbiz类的配置文件。所有Openbiz核心类都是一般类。 它们由不同的元数据重新赋予了不通的意义,它们分别代表着不同的事务与关系。 例如:当StudentDO.xml关联到BizDataObj类时,这个BizDataObj实例就是一个“学生”对象,但当SchoolDO.xml 关联到BizDataObj类时,那么这个BizDataObj实例就成为了一个“学校”对象。
正因为Openbiz的类是被元数据所描述的,编写元数据文件就如同实现了一个类, 因此,应用程序的开发工作大多数时候就转变成了编写元数据文件的工作,替代了传统意义上的编程。通过元数据的方式来描述应用程序将会使其具有更清晰的逻辑和设计。
元数据可以实现什么 | 元数据不可以实现什么 |
---|---|
描述对象的属性 | 逻辑与功能。这部分应当在真正的程序代码中得以实现。“Class”属性可以使一个元数据绑定到任意一个自定义的对象上,从而实现特殊的逻辑与功能。 |
描述对象间的关系 | |
描述表现层对象的渲染(显示)方法 | 页面或者控件的布局。Openbiz的“TemplateFile”属性可以给一个页面或表单指定自定义的位web模板。 |
描述数据的有效性校验方法 | |
描述用户在页面上的交互行为 |
元数据的“包”管理
优秀应用程序设计通常是模块化的。Openbiz推荐程序开发人员在 cubi/modules/ 这样的目录结构中创建自己的元数据。这也正是Openbiz Cubi遵循的标准。
Openbiz源数据文件可以被组织为模块名和子目录名,这就像在Java中实现的包的概念。
例如:PackageX.PackageY.metaA 这个命名和在 modules/PackageX/PackageY 目录中的metaA.xml是同一个概念。
元数据与控制反转(IoC)的关系
了解 Java Spring 框架的读者应该对“控制反转”(Invese of Control,即IoC)的概念不陌生。
IoC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,
但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。
Openbiz框架可以被看作 IoC 的一个实现。框架本身是 IoC 容器,而其元数据则是对象的配置文件。
以之前提到的范例,UserNewForm.xml 描述创建“用户”Form 对象的方式。其中的BizDataObj=“system.do.UserDO” 属性指定了该 Form 对象所需要的数据对象。 Openbiz框架在运行时通过对象工厂将 UserNewForm 和 UserDO 的对象实例初始化,并把 UserDO 对象实例“注入”给 UserDO 对象。
Openbiz框架实现了 IoC 容器之外的更多的功能。Openbiz将商业应用中最常用的类抽象出来作为框架的核心对象。
元数据范例
让我们来看两个简单的元数据范例。UserDO.xml 代表了一个用户信息对象,
UserNewForm.xml代表了一个创建该用户信息对象的表单,两段XML元数据的含义是可以实现自我解释的。
元数据简单表达式(Simple Expression)
Openbiz的元数据不仅可以描述数据间的关系映射,而且能描述数据的有效性校验方法和用户在页面上的交互行为。
比如当用户在用户注册表单上点击“提交”按钮时,服务器端需要验证用户输入的是有效的邮件地址。
这样的逻辑通常是将用户输入送给邮件地址验证的函数,该函数会返回true或false。那么这种逻辑如何用元数据表达呢?
表达式标签
系统目前支持三种表达式标签
- {expr}标签对.
- Openbiz将执行php的eval方式来解析{}之间的expr表达式字符串
- {fx}expr{/fx}标签对.
- 这是一个详细版的{}表达式实现。Openbiz 同样将执行php的eval方式来解析{fx}和{/fx}之间的expr表达式字符串。例如{fx}10-1{/fx}将返回结果”9”。
- {tx}expr{/tx}标签对.
- 这对标签告诉Openbiz只需要返回字符串本身,而不对其进行处理计算,例如:{tx}10-1{/tx} 将返回字符串 “10-1”。
表达式的语法结构
- 数据类型
- 简单表达式定义了如下几组数据类型:
- 布尔类型: true 或 false
- 整数数字。
- 浮点数。
- 字符串: 单引号和双引号括起来的字符; ” 将被转义为 \”, '将被转义为\', \将被转义为\\.
- 空: null
- 操作符
- 数学: +, -, *, /, % 和 mod, -(负数)
- 逻辑: and, &&, or, ||, not, !
- 关系: ==, !=, <, >, ⇐, >=.
- 条件: A ? B : C.根据 A 的返回结构执行B或C语句.
- 变量
- 简单表达式允许开发人员调用Openbiz元数据对象中的变量
调用元数据对象中变量的语法 | 描述 | 适用范例 |
---|---|---|
@object_name:property_name | 获取指定对象的指定属性 | @system.do.UserDO:m_Name |
@object_name:*[child_name].property_name | 获取指定对象的子元素的指定属性 | @system.do.UserDO:Field[username].Value |
@:property_name | 获取当前对象的指定属性 | @:m_Name |
@:*[child_name].property_name | 获取当前对象的子元素的指定属性 | @:Field[username].Value |
[field_name] | 从当前数据对象或表单对象中获取指定字段的 数值 |
In UserDO, [Id] means getting the “Id” field value of UserDO. |
@profile:property_name | 获取用户档案中的制定属性 | ProfileService提供 @profile:email |
@service_alias:method(arg1, arg2 …) | 用户档案是由调用注册的插件服务器方法的 返回值 |
@query:FetchField(system.do.UserDO,[email]='abc@gmail.com') |
当前注册插件服务范例:
@validation – 数据有效性校验服务
@query – 数据查询服务
如果要注册一个服务, 可以在/cubi/bin/app_init.php 的 $g_ServiceAlias 全局变量中添加该服务名字的注册。
扩展对象获取属性
开发人员可以通过修改或重载对象的GetProperty()方法来添加更多的属性支持。
public function getProperty($propertyName)
GetProperty() 函数的输入参数既可以是”property_name” 也可以是 “*[child_name]” 或者一些其它的被用户自定义代码支持的参数。 调用全局变量简单表达式语言业允许开发人员来调用任何PHP所支持的全局变量,关于PHP全局变量请阅读
http://us2.php.net/manual/en/reserved.variables.php 了解详情函数
开发人员可以在简单表达式中调用任意PHP函数,如果文件中已经包含了函数的定义,那么即便是用户自定义函数也可以被调用。
例如:如果元数据A是基于用户自定义类的基础上创建的,类的代码文件是A.php,且该文件包含了A_help.inc,
在这种情况下您就可以安全的调用在A_help.inc文件中定义的自定义函数。
范例
给数据对象设定查询规则(SearchRule)
<BizDataObjName="FutureActivityDO"SearchRule="[start]>{date('Y-m-d')}'" ...>
给数据对象的字段自动赋值为当前用户的ID
<BizFieldName="create_by"Column="create_by"Type="Number"ValueOnCreate="{@profile:Id}"/>
给数据对象的字段的值设为另两个字段值的组合
<BizFieldName="fullname"Value="{[lastname]}, {@:Field[firstname].Value}"/>
给表单对象的控件设置输入验证
<ElementName="fld_email"Class="InputText"FieldName="email"Label="Email"Validator="{@validate:email('[fld_email]')}"/>
数据抽象层
Openbiz 数据对象可以通过Zend_DB来连接各种类型的关系型数据库,Zend_DB为Openbiz底层提供了在PDO和本地数据库客户端工具之上的数据抽象层。 开发人员可以使用Openbiz数据对象API来实现大部分的数据库操作,或直接调用Zend_DB API来完成高级功能。 如果需要连接不同类型的数据库,用户只需要在应用程序根目录的application.xml中指定数据库连接即可。 Openbiz 数据对象将调用正确的数据库驱动程序去连接数据库服务器。Openbiz当前支持的数据库类型有MySQL, MSSQL, Oracle, PostgreSQL, SQLlite 等。 每个Openbiz数据对象可以有它自己的数据库引用。此功能可以帮助您实现在一个应用程序中同时连接多个数据库。甚至在同一张网页上也可以连接多个数据源。
对象关系映射
Openbiz 实现了必要的“对象关系映射”功能,允许将数据库中的数据和关系映射的数据对象上。Openbiz的数据对象的核心类称为“BizDataObj”。该类的元数据定义了数据表和对象的映射。它能够通过其元数据来生成相应的SQL,实现了查询、保存、删除、读取对象的功能。 以下列表是Openbiz对象关系映射所实现的功能。
灵活的映射
- 支持数据表与对象映射,如:单数据表和一个对象,多数据表和一个对象的映射方式。
- 支持关系映射,多对一,一对多,多对多,一对一、自我相关引用模式。
查询工具
- 支持类 SQL 查询语言
- 支持 SQL 函数和操作符
- 支持 SQL 统计功能
- 支持 group by, having 和 order by
元数据工具
- Openbiz用BizDataObj的元数据(XML)来描述映射关系。
CRUD操作的API
- Openbiz的BizDataObj类提供了丰富的数据查询、保存、删除、读取的API。
数据对象API
Openbiz数据对象为增删读改(CURD)操作提供了直观的高级API。 为了帮助开发人员避免直接编写复杂的SQL语句,建议使用Openbiz支持的查询语言。 更多详情
数据字段默认值
有时人们希望在创建或更新的时候自动设置某些列的值,例如,当一个记录被创建时, 我们系统设置当前的时间给”create_time”列,同样当这条记录被更新时, 我们也希望设置当前的系统时间给”update_time”列。Openbiz的数据对象的字段元数据表属性将会帮您解决此类问题。 * ValueOnCreate 可以在记录被创建时提供默认值 * ValueOnUpdate 可以在记录被更新时提供默认值
数据对象触发器(DO Trigger)
当数据对象执行创建、更新、删除操作的时候,Openbiz数据对象触发器服务将提供一个“钩子”来触发自定义的行为。 一旦触发器在数据对象的元数据中被定义,它将在数据对象的行为成功完成后被立即执行。 数据对象触发器有两部分组成,触发事件和被触发的行为。这些信息都在触发器服务的元数据文件中被定义。 当用户通过数据对象来创建、更新、删除一条记录时,Openbiz将在同一目录下查找以这个数据对象名为前缀数据对象触发器定义文件, 即 DOName_trigger.xml 。例如EventDO的触发器元数据文件就是在同一个目录下的文件 EventDO_trigger.xml。
数据有效性校验
数据有效性校验可以在数据对象的元数据中被设定。它主要用于检测当数据记录被创建或更新时所输入的数据。 针对数据对象字段的有效性校验包括了
- 唯一性校验
- 必要性校验
- 校验表达式
如果校验失败,数据对象将会抛出一个异常给它的调用者。
图形表现层介绍
Openbiz的图形表现层主要分为 视图对象 表单对象 和 表单控件对象。
其主要表现逻辑封装于 Openbiz Cubi 应用平台中,作为框架底层在 Openbiz Framework中负责处理这些对象之间的调用关系,而不负责对其样式和外观进行风格化。
例如在父子表单联动的案例中,Openbiz负责的部分是当父表单触发了 SelectRecord方法后自动刷新与其关联的子表单。但这两个表单具体外观是什么样子是由Smarty模板定义的。在Openbiz Cubi中为开发人员提供了支持全部特性的模板。
视图对象
Openbiz的视图对象相当于整个页面,它负责定义该页面如何装载表单、菜单和其他小部件。 以及适应在各种设备上显示页面。在MVC结构中它与表单对象的实现类文件共同作为控制器(Controller)。
表单对象
Openbiz 表单对象是系统的主要数据逻辑部分,它负责数据的展示逻辑,通常每个表单对象都会绑定一个数据对象。
常见的表单对象有 列表、详情、编辑、新建、复制几种类型,表单对象可以被潜入在视图中也可以作为内嵌或弹出窗口(层)来使用。
表单控件对象 - Elements
Openbiz 的表单控件对象是用于在表单对象中绑定数据对象字段使用的。通常每个表单控件会映射到该表单对象所绑定的数据对象的某个列上。 不同的表单控件提供了不同的数据展示或输入逻辑,除了标准的Web表单控件(文本框、单选菜单、多选菜单、复选框)外, Openbiz Framework 还提供了高级控件的支持,例如:条码扫瞄控件、智能卡读卡控件、颜色选择控件、富文本编辑控件等。 表单控件通常还可以触发事件,事件的定义与HTML控件事件相似,事件行为可以是触发服务器端的对象自定义方法、在表单之间或者客户端Javascript代码
Openbiz的高级表单控件展示
Openbiz系统可扩展服务
Openbiz 允许开发人员通过实现插入式服务的方式编写自己的特殊逻辑。Openbiz服务对象同样是基于元数据驱动的对象。
访问控制服务该服务可以帮助您实现基于固定角色的简单的用户访问权限控制。适合于简单应用。 |
数据权限服务该服务可以为数据可视性分离以及高级数据共享服务生成底层附加SQL查询规则。 |
||
系统工具服务该服务帮您完成一些周边逻辑的常用函数。例如,字节显示转换、获取当前应用短URL等杂项工具 |
货币服务通常用于订单结算系统等应用。该服务提供底层货币汇率转换 和 本地化的显示逻辑。 |
||
安全过滤服务该服务可以根据其配置文件来实现网络数据包过滤。可以依赖该服务对敏感和危险信息进行屏蔽。 |
系统缓存服务该服务主要用于缓存系统级对象和数据为整体性能优化而设计。开发人员也可以通过调用其API实现应用层数据缓存 |
||
用户档案服务该服务可以通过统一的方式快速创建和访问用户的详细资料。便于用户信息管理 |
身份审核服务该服务是用户身份审核的抽象层,用于身份的审核验证环节,负责与用户数据库连接,类似于Unix的PAM将底层验证逻辑与上层应用分离。 |
||
系统首选项服务该服务可以允许您和用户设置或快速访问自定义的系统级或用户级配置参数。 |
电子邮件服务该服务封装了与SMTP服务器通讯的底层协议,提供简单友好调用接口给开发人员用户创建集成电子邮件通知特性的应用。 |
||
系统日志服务通过该服务的API借口可以方便的记录触发系统日志,并对日志信息的显示做了有好的多语言化处理 |
数值列表服务该服务用于以本地化的方式数组将程序内预定义的数据字典元数据转换为便于程序调用的数组。 |
创建你自己的扩展服务
服务代码存放在 bin/service 目录下,其元数据描述文件存放在 /metadata/service 目录下。 服务元数据可以指定服务名称,实现的类名如同其它对象的元数据配置一样。服务对象元数据没有一个固定的格式, 因此不同的系统服务可以有各自不同的元数据配置格式。 Openbiz服务通常是有两部分组成:
- 服务的元数据
- 服务的实现类
您可以简单的通过复制一个现有服务的元数据文件service_name.xml 和程序文件 service_name.php。再此之上编写您自己的Openbiz服务。
轻便灵活的内建描述语言
将Openbiz部署到现有的系统
快速本地安装指南
Openbiz 允许开发人员通过实现插入式服务的方式编写自己的特殊逻辑。Openbiz服务对象同样是基于元数据驱动的对象。
1、准备环境根据习用环境要求,来安装设置所需软件 |
|
2、获取Cubi通过完成在线订单的方式获取Cubi的下载地址并注册您的OpenbizID,不必担心此过程免费。您的OpenbizID将用于您日后获取技术支持使用。 |
|
3、修改参数将Cubi源代码包内的文件 解压缩到您的Web文件夹中的openbiz文件夹。 通过您常用的文本编辑器打开 openbiz/sys_init.php 并更具您的实际情况参考备注信息修改参数设置。 (如果您是使用Openbiz创建新的应用通常不需要设置) |
|
4、集成部署创建一个helloworld.php 文件通过require_once 将刚才的openbiz/sys_init.php 包含进来。在该文件内输入如下内容: echo "Openbiz Framework Version: ".BizSystem::getVersion(); |
|
5、测试打开浏览器,输入http://localhost/sample.php, 如果您可以顺利看到Openbiz框架的版本号显示,证明您已经成功的将Openbiz部署成功。 |
|
6、完成!完成了!开始Openbiz为您带来新开发体验吧。现在您可以根据教程中的范例来开始练习和学习了。 |
系统环境要求
支持操作系统: |
Microsoft Windows 2008,Microsoft Windows 2003,FreeBSD,Linux,Macintosh |
支持Web服务器: |
Apache Web Server 2.0,Microsoft IIS 5.0,Lighttpd 1.4 |
支持数据库: |
MySQL 5.0 (推荐),Microsoft SQL Server,PostgreSQL |
脚本引擎: |
PHP 5.3 并启用如下扩展,mod_curl,mod_pdo,mod_pdo-mysql,mod_mcrypt |
加密引擎: |
IonCube Loader |
培训与学习资料
关于推荐的技术学习资料列表,请访问如下链接:
- Openbiz at Google Code http://openbiz-cubi.googlecode.com/
- Openbiz 在线产品文档 http://docs.openbiz.cn/
- 优库视频学习资料 http://u.youku.com/openbiz
- 土豆视频学习资料 http://www.tudou.com/home/Openbiz
- Openbiz 新浪博客 http://blog.sina.com.cn/openbiz