查看gcc版本- -| 回首页 | 2005年索引 | - -

linux企业应用软件工具- -

Taglinux                                          


1. Linux企业应用系统及工具
1.1 企业应用开发工具

* Zope ( http://www.zope.org/ )是目前主流的Web应用服务器之一, 通过Zope能非常方便地构造和管理基于动态Web的业务应用程序. 通过Zope能很方便地在你的Web应用程序内提供站点搜索、邮件系统、个性化、电子商务等功能。

前段时间有人在Python版问Zope是否可以用于企业应用, 甚至有人还不知到Zope有事务处理能力, 也不知到Zope能作分布式对象初理. 为了帮助大家对Zope的了解, 我在这里简单地介绍一下Zope针对企业应用提供了什么功能.

Zope是一个开源的Web应用Framework, 是一个大的,成熟的Framework, 提供了Web复务所需要的许多Services. 在Zope中, 提供了自动事务管理,对象持久化,分布式对象处理,对象安全等等开发企业应用的必要件.

Zope提供了一套以组件为中心的开发模式, 用Zope开发的组件非常容易发布到Web上. Zope还提供了内建的,透明的Python对象库(称为ZODB). Zope还提供了内建的测试支持.

Zope是一个面向组件的系统, Zope组件是实现了特定接口的Python对象.

使用Zope能非常方便地构造分布式应用. Zope对象在发布到Internet/Intranet后, 能直接支持HTTP,FTP,WebDAV,XML-RPC等协议. 所有这些支持都是透明的, 开发员不需要对Zope对象作任何特殊处理. Zope内建的对网络的支持, 很容易将业务逻辑和对数据的存取封装为网络服务.

Zope组件可以存放在ZODB(Zope对象数据库)中. ZODB中的组件可以被持久化. 持久化对象和普通对象的区别是持久化对象的状态能被自动存入数据库内并且自动加载到内存中. 任何一个Python对象, 只需遵循一些简单的规则, 就能享受到Zope持久化机制的好处.

在Zope中使用持久化对象时, 当请求到达时, Zope会自动开始一个事务, 当请求完成时, Zope会自动提交这个事务, 当出错时, Zope会自动终止该事务. 对于一个较大的事务, 还能通过Zope的子事务实现嵌套事务处理 Zope为你提供的这个自动事务管理功能, 将会大大加快企业应用的开发效率.


* ofbiz( http://sourceforge.net/projects/ofbiz/ ) 是Open For Business的简称。ofbiz是一个基于J2EE标准的开源企业应用工具。

由于 framework 的开发情况非常好, 使ofbiz目前已具有了一个非常优秀的 framework. 业务模块的开发已进行了一段时间. 目前正在开发的业务模块包括 e-Commerce,Catalog,Party,Order,Work Effort, 计划开发的业务模块还包括 Financials, Sales Force Automation, Marketing Automation, Service & Call Center, HR & Payroll, Inventory & Warehouse, Shipping & Delivery, Manufacturing.

ofbiz 的 commonapp 包已提供了接近 500 个业务对象, 这些业务对象是通过 XML 格式进行的建模, 涉及到 Common, Accounting, Human Resource, Order, Party, Product, Shipment, Work Effort, Workflow等领域.

ofbiz 广泛遵循了现有的标准, 包括XML,SOAP,HTML,Java,J2EE,RuleML,WfMC,BPML,ECCMA/UNSPSC,ebXML,GAAP/FASB,OMG,ArapXML,qbXML等.

通过 XML 这种自然语言来定义过程,规则,和数据.

两大核心组件(Service Engine和Entity Engine)使obfiz的framework成为目前最有效和易用的 framework, 给企业应用系统的开发带来了极大的方便.

通过 Workflow Engine 和 Message Flow Engine 来管理业务过程.

能通过 SOAP, RMI, EJB Session Bean 等技术来调用 Service Engine 提供的服务, 这使得多年来业界为之努力的业务与技术的分离梦想成真.

Entity Engine 提供了简单有效的数据建模方式, 通过简单的XML文件来描述实体, 不需要写任何代码就能实现实体的创建,存储,删除,查找,排序, 再也不需要编写和维护数据持久化代码, 通过 JDBC 支持任意种类的数据库.

目前的一些持久化技术, 例如 JDO, CMP Entity EJB, JDBC DAO, Embedded JDBC等, 都未能较好地解决数据持久化问题, 或则即使解决了, 也极大地降底了程序的可维护性. 而 obfiz 的 Entity Engine 在这一点上就做得非常好, 对实体的维护非常方便, 只需要维护 XML 表述的实体模型文件就全部搞定了.

我们知道一般的对象持久化技术(或称为O-R Map技术)首先需要编写数据库的建表脚本进行建表, 然后编写有大量累赘的get/set方法的实体对象, 然后编写 O-R Map 配置文件..., 如果对象模型需要修改, 则又...
ofbiz 的持久化技术的最主要的亮点在于极大地减轻了程序的维护工作量. ofbiz 的业务实体是通过 XML 进行建模, 实体模型的定义在 $OFBIZ_HOME/commonapp/entitydev/ 目录下. 有了实体模型后, 不需要编写任何 SQL 脚本, entity engine 将自动建立数据库表和纪录, 也不需要编写任何实体代码. 当需要对实体做修改时, 只需修改实体模型就行了, entity engine 会自动对数据库进行检查, 也不需要对实体代码进行任何修改, 因为根本就没有实体代码. 可以看看 ecommerce 包, 看看 ecommerce 是怎样应用 entity engine 来进行实体对象的增删改.


* Java Management Extensions( http://java.sun.com/products/JavaManagement/ ) 由于现在的企业级应用系统不是由一个单一的程序组成, 而是由一些有网状关系的程序以一些复杂的方式进行交互, 而对这些应用程序的管理就变得非常复杂, 例如通常需要调节一些参数来设置和控制这些复杂的交互. JMX是一种开放性标准,它大大方便了快速变化的网络服务的管理,适合于各个工业部门应用 JMX技术基于Java技术,具有兼容性、灵活性和快速升级能力,将管理技术提到一个新的高度。JMX为基于SNMP、CIM/WBEM或TMN协议的各种现有管理系统的互操作提供了一种动态管理框架和服务。 JMX提供了标准的管理界面,简化并加强了Application Server的管理功能,让信息处于随时可用的状态。 JMX体系一共分为三层: Instrumentation层, Agent层, Distributed services层.
* JBoss ( http://www.jboss.org/ )是主流的J2EE的应用服务器之一,而且是一个开源软件. 在JBoss内包括了EJB容器(JBossServer)、JMX底层、JMS消息队列(JBossMQ)、邮件服务(JBossMX)、 JTA/JTS事务处理(JBoxTX), 基于JAAS的安全性组件(JBossSX)、JCA连接(JBossCX)、容器管理持久化(JBossCMP)等。 JBoss对J2EE进行了全面的实现, 并通过JMX来集成所有的组件.
* OpenORB ( http://openorb.exolab.org/ )是完全用 Java 开发的 CORBA 对象请求代理, 完整地实现了 CORBA 2.4.2 规范, 提供了相当多的功能、服务、和扩展。OpenORB的主要功能有:完全兼容 CORBA 2.4.2 规范;完全用 Java 开发;Fully multithreaded ORB; 与 JDK 1.2 和 JDK 1.3 兼容;真正的模块化 ORB;XML 配置文件;Multiple Object Adapters (BOA 和 POA);IIOP 1.2, Bi Directional GIOP;Portable Interceptors;Interoperable Naming Service;DynAny, DII DSI;Code set support;可重用的 IDL 编译器;大量的工具:IDL 到 HTML, IDL 到 RTF...
* Jabber( www.jabber.org ) 是基于XML的及时消息系统, 能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输.
* JXTA ( www.jxta.org )提供了一套开发 p2p 应用的技术.
* OpenSymphony ( Tapestry )项目为应用开发提供了一套组件, 用于快速开发企业Java应用. 该项目的构架是多层的基于组件的松藕合构架.

OpenSymphony 的组件分为 5 个层次: Foundation, Business, Interaction, Presentation, Applications.

Foundation: This comprises of basic components and core libraries that are shared by the rest of the suite. As well as providing functionality for the pre-built components, it contains helpers for common tasks in a J2EE environment and can lighten the load of code to be written by the developer.

Business: The business components are the heart of the suite and where most of the attention is focused.

Interaction: A collection of tools to allow web-based applications to interact with the system components quickly, easily and elegantly.

Presentation: Tools to aid in the final presentation of the application over the web. This allows impressive looking websites to be developed that can be seamlessly integrated with sophisticated interactive web applications.

Applications: The application components are ready-built solutions for typical needs. These are built from the other components as a starting point for your own application. From there on you can modify them and customize them (with other components) to suite your specific needs.
* Tapestry ( http://jakarta.apache.org/tapestry/ ) 基于 Java 的优秀而成熟的 Web 应用开发框架, 使用组件对象模型来描述 web 应用页面. 使用 Tapestry 开发 web 应用的感觉就象是用 Swing 开发 GUIs 一样, 非常方便.
* Openadaptor( http://www.openadaptor.org/ ) is a 100% Java/XML-based software platform which allows for rapid business system integration with little or no custom programming.

1.2 ERP & CRM

* GNUe( http://www.gnuenterprise.org/index.php ) GNUe是GNU enterprise的缩写。这是一个非常年轻的项目,是一个模块化的集成业务软件,包括人力资源、工资、存货、采购、总帐、财务管理、计划、销售定单、客户支持、财务预测和其他一些业务处理。该项目目前还未全部完成。
* Relata( http://www.relata.org/ ) 是一套基于 PHP 的 CRM 系统.
* Compiere.org( http://www.compiere.org/ ) 是基于 Java 和 Oracle 的中小型企业 ERP & CRM 解决方案.
* Anteil( http://www.anteil.com/ ) 是基于 PHP 的 CRM 系统.
* OpenSourceCRM( http://sourceforge.net/projects/opensourcecrm ) 是一套比较成熟的 CRM 系统.
* GnuLedger( http://sourceforge.net/projects/webaccountant/ ) 是一套用 Perl 编写的 B/S 结构的 Small Business 财务软件.
* Linux-Kontor ( http://sourceforge.net/projects/kontor )是一套开源的成熟的 ERP 软件, 它的核心组件包括客户,定单,发票和存货管理. 该系统完全由 Java 实现, 具有三层架构的体系结构.

1.3 Small Business

* GnuCash ( http://www.gnucash.org/ ) Small Business 财务软件

1.4 CMS(Content Management Systems)
CMS

* Cofax ( http://www.cofax.org/ )是基于 Java 的 CMS 系统.
* Midgard ( file:///tmp/file-roller.6190.6/linux-enterprise/www.midgard-project.org/midgard/ ) 是基于 Apache 和 MySQL 的 CMS 系统, 采用 PHP 作为描述语言.
* MMBase ( http://www.mmbase.org/ )是基于 Java 的 CMS 系统.
* OpenCms ( http://www.opencms.com/ ) 是基于 Java 的专业级 CMS 系统.
* Wyona ( http://www.wyona.org/ )是基于 Java 和 XML 的 CMS 系统.
* Zope ( http://www.zope.org/ ) 是基于 Python 的 Web Application Server.
* PostNuke ( http://www.postnuke.com/ )是基于 PHP 的 CMS 系统.
* EZPublish ( http://developer.ez.no/ )

CMS Frameworks

* AxKit ( http://axkit.org/ ) 是一套 XML Application Server.
* Cocoon ( http://xml.apache.org/cocoon )是采用 DOM,XML,XSL 等 W3C 新技术的 Java Publishing Framework.
* WebDAV ( http://www.webdav.org/ )是 Web-based Distributed Authoring and Versioning.

1.5 论坛

以下资料由 nbchengang 提供:

drakcodex:根据wwwthreads发展过来的php论坛,但无汉化。
phpbb:基于php和mysql的论坛系统,有汉化。
可以用firebird bbs2000加bbs2www.


1.6 系统管理工具

* Webmin ( http://www.webmin.net/ )
* OpenNMS ( http://www.opennms.org/ )是一个开源的网络管理解决方案. OpenNMS是用Java写的高可配置,模块化的产品, 可通过XML文件来修改配置数据.
* VNC ( http://www.uk.research.att.com/vnc/ )全称 Virtual Network Computing, 是一个远程显示系统, 通过它可以很好地管理远端系统.

1.7 项目管理方法

在企业应用的开发过程中, 项目管理是一项非常重要的工作. 以下是一些项目管理方法和资源:

* Extreme Programming ( http://www.extremeprogramming.org/ )
* an Extreme Programming Resource ( http://www.xprogramming.com/ )
* Manifesto for Agile Software Development ( http://agilealliance.org/ )


2. 系统性能调整
2.1 内存监控工具

先介绍一下内存监控的工具:

1. free命令

将显示Mem的total, used, free, shared, buffers, cached情况, 和Swap的total, used, free情况.

2. /proc/meminfo文件

该文件包含了MemTotal, MemFree, MemShared, Buffers, Cached, Active, Inact_dirty, Inact_clean, Inact_target, HighTotal, HighFree, LowTotal, LowFree, SwapTotal, SwapFree情况.

3. gtop

这是一个非常有用的工具, 能分别对不同的进程进行监控, 能监控不同进程的Resident,Shared,Total,Virtual,Swapped内存使用情况.

那么怎样理解以上工具所提供的内存信息呢? 以下是对这些信息的解释:

1. Mem total

total是指除核心所占内存外的所有可用物理内存.

total = 物理内存大小 - kernel所占内存

2. Mem used和Mem free

used是指应用程序已使用的内存, free是指还未被应用程序使用的内存.

total = used + free

3. Mem shared

在Mem used中, 有部分内存是被共享库所占用的共享内存, 这部分内存就称为shared.

4. Mem buffers

kernel将利用部分应用程序未使用的内存作为disk buffer, 这部分内存就称为buffer. buffer主要用于文件缓冲. 当应用程序调用malloc()时, 如果内存空间不足, kernel将部分释放这部分内存供应用程序使用.

5. Mem cached

cache也称为page cache, 是核心预先读入的虚拟内存. 当应用程序调用malloc()时, 如果内存空间不足, kernel将部分释放这部分内存供应用程序使用.

6. Swap total, Swap used, Swap free

这是交换内存的使用情况, 就不用我多说了.


2.2 bdflush参数调整

bdflush参数与Linux内核的虚拟内存管理子系统有关, 并且影响到硬盘的使用频率. 通过/proc/sys/vm/bdflush文件可以控制bdflush核心进程的操作. 我们可以通过调整bdflush参数来优化文件系统的性能.

bdflush参数共有9个, 分别是nfract, ndirty, nrefill, nref_dirt, dummy1, age_buffer, age_super, dummy2, dummy3.

通过以下命令可以查看这些参数:
cat /proc/sys/vm/bdflush
例如Redhat7.2安装后的缺省参数是:
30 64 64 256 500 3000 60 0 0

每个参数的含义如下:
nfract: buffer cache中dirty buffer的最大数量. dirty buffer是指该缓冲区的内容需要更新到磁盘. 将这个值调高可以降底写硬盘的频繁度, 但每一次会执行更多的I/O操作, Redhat7.2缺省是30%, 可将其调高到80%-100%.
ndirty: bdflush执行一次磁盘写操作所处理的最大dirty buffer数. Redhat7.2缺省是64, 可将其调高到500-1000.
nrefill: bdflush预先分配的free buffer数, 这个值可以调大一点, 但如果过大会浪费内存资源. Redhat7.2缺省是64, 可将其调高到128.
nref_dirt: 当产生了nref_dirt所定义的dirty buffer数量后, 将会唤醒bdflush. Redhat7.2缺省是256, 可将其调高到512.
dummy1: 该参数未使用.
age_buffer是dirty buffer在写到磁盘前可等待的最长时间. Redhat7.2缺省是3000, 可将其调高到5000.
这些参数的值应根据不同的系统作不同的调整和测试.

参数的调整方发如下:
echo '80 1000 128 512 500 5000 60 0 0' > /proc/sys/vm/bdflush
如果要使机器重起后有效, 在/etc/sysctl.conf中加入以下行:
vm.bdflush= 80 1000 128 512 500 5000 60 0 0


2.3 性能调整工具

* Powertweak http://sourceforge.net/projects/powertweak/




3. 资源链接
3.1 企业应用开发

* CORBA 3.0 概述 http://go2.163.com/sciman/middlewar...a3-overview.htm
* 事务 http://go2.163.com/sciman/middleware/EJB/tut6.htm
* CORBA 在线教程 http://go2.163.com/sciman/middlewar...ba-tutorial.htm
* CORBA 与 Web 服务 http://go2.163.com/sciman/middlewar...webservices.htm
* CORBA 产品挡案 http://go2.163.com/sciman/middleware/CORBA/CORBA Product Profiles.htm
* Middleware Resource Center
* Collaborative Planning Forecasting and Replenishment
* The Workflow Management Coalition

3.2 系统实施参考

* Large File Support in Linux http://www.suse.de/~aj/linux_lfs.html (zmwillow提供)
* Linux发行版比较 http://www.distrowatch.com


4. 其他

* Eclipse (www.eclipse.org) 功能强大的IDE


来自: linuxforum

- 作者: timesnet 访问统计: 2005年10月26日, 星期三 10:36 加入博采

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3325144

博客手拉手

[2005-10-25 19:33:10.0]    学习linux

[2005-10-26 09:11:18.0]    几本linux书下载

[2005-10-26 09:12:31.0]    几本linux书下载

[2005-10-24 21:02:19.0]    无需安装的Linux Live CD--实战Knoppix

[2005-10-25 14:50:57.0]    linux and harware

回复

评论内容: