文档库 最新最全的文档下载
当前位置:文档库 › DEVELOPMENT OF AN OPEN SOURCE CHEMICAL PROCESS SIMULATOR Abstract

DEVELOPMENT OF AN OPEN SOURCE CHEMICAL PROCESS SIMULATOR Abstract

DEVELOPMENT OF AN OPEN SOURCE CHEMICAL PROCESS SIMULATOR Abstract
DEVELOPMENT OF AN OPEN SOURCE CHEMICAL PROCESS SIMULATOR Abstract

DEVELOPMENT OF AN OPEN SOURCE CHEMICAL PROCESS SIMULATOR

Raul Cota(1), Marco Satyro(2), Craig Morris(3), Bill Svrcek(1), Brent Young(1)

(1) University of Calgary

2500 University Dr, NW. T2N 1N4, Calgary, AB, Canada

(2) Virtual Materials Group

657 Hawkside Mews, NW. T3G 3S1, Calgary, AB, Canada

(3) RedTree Development

4386 Timberline Cr. V0B 1M6, Fernie, BC, Canada

Abstract

Process simulators are a key software tool used in the fluid processing industries for day to day process calculations, for process design, for process optimization and for the debottlenecking of existing processes. Current commercial process simulators do not provide the simulator’s source code; the users must rely on a closed black-box approach for the unit process models. This historical approach to software development and usage is diametrically opposite to that of open source software. The open source paradigm provides a near optimal solution for the development of robust and reliable software applications while using minimal formal resources. It is recognized that the open source approach is a feasible software development solution that overcomes some of the shortcomings of the currently available commercial process simulators. This paper presents the development of a state of the art open source process simulator; as well, it also provides sample plant simulations.

Key words

Process Simulator, Chemical, Open Source, Sim42, Hydrocarbon.

1. Introduction

The importance of chemical process simulators is well documented, as they are important tools for modeling plants, while providing opportunities for optimization and debottlenecking of existing processes (Grinthal, 1993). A ll commercial available process simulators follow the traditional development method, which hides the source code from the users thus relying on a closed, black-box approach.

During the last decade, open source software has grown as a near optimal solution for the development of robust and reliable software applications using minimal formal resources (Moody, 2001). This trend was popularized during the development of the Linux operating system and has since moved towards end user applications. Open source is an innovative solution for the development of a state of the art process simulator that would pool talent from a large audience while providing individual users with an in-depth knowledge of its operation and the freedom to perform any desired modifications without the need to purse special agreements with software providers. This in turn fosters the development of new applications for process simulation originally unseen by the original software developers.

The underling principle of Open Source Software is program code distribution, usually by using Internet based tools, thus permitting it to be shared by all. This allows engineers to use it, test it, and take the development further and faster by providing bug fixes, changes or proposals for enhancements to the community at-large. The success of open source compared to traditional commercial software i s that its testing and development base is not constrained to employees within a company, but rather it is in a sense a community driven effort. The open and free nature of such an environment nurtures the involvement of developers and users with many different needs and services varied niche interests that would otherwise be ignored by large commercial software providers.

The design of the simulator follows good software practice in which modules are created with well defined interfaces allowing for parallel and decentralized development. Individual modules can be replaced by special custom modules or by commercially available ones. For example, the simulator has a well-defined

thermodynamic interface that allows different property packages to be “plugged” in, such as the commercially available thermodynamic and physical properties engine provided by Virtual Materials Group (1).

2. "Traditional" Software practices

In this paper, the term "traditional software practices" refers to software providers that operate in a business model in which the source code of the applications is not released to the users. This "traditional" approach results in a number of shortcomings and limitations in the final products [2].

§ Development base is constrained to employees within a company

§Enhancements to the application capture only the company's interpretation of the needs of their current market

§In general, users have to wait a considerable amount of time for new releases

§Specific customizations to the product can only be m ade by the company that developed the software product, thus creating a dependency. This is a very important factor when dealing with highly specialized and expensive applications.

In the area of chemical process applications, the currently available commercial process simulators, tend to provide a "complete solution" that involves a great deal of specialized technologies and scientific knowledge. These technologies range from highly specific thermodynamic property packages to user friendly graphical interfaces (GUI). This complete solutions approach results in software companies that must invest resources in many areas depending only on their employees and strategic partners to incorporate new developments into their products.

Software companies that focus on a small niche of the process simulation market (thermodynamics for example) may find it difficult to grow the business because they must depend on other available commercial simulators to link to their products and this may pose either technical or economic restrictions. This issue has been addressed in recent years, resulting in open software architecture initiatives (Braunschweig and Pantelides, 1996), where commercial software companies agree to standard application interfaces. “Open Architecture” is a promising generic approach to linking applications (Edwards and Merkel, 1996) without having access to source code.

3. Open Source Software (OSS)

Development of OSS i s a near optimal solution for the development of robust and reliable software applications using minimal formal resources (Hecker, 1999). The key aspect of OSS is that it releases the code to the users usually via the Internet, at no cost. This allows for the rapid deployment of, testing of, development of by accepting fixes and enhancement proposals or changes.

The term "Open Source" is not controlled or owned by any individual or corporation (Scacchi, 2002). However, the term usually refers to software that is distributed under terms that comply with the Open Source Definition (OSD) [3]. The OSD is maintained by the Open Source Initiative (OSI) [4] and it specifies a few points beyond just allowing access to the code. The OSD covers points related to redistribution of work, derived work, integrity of author's code, discrimination, etcetera. See website [3] for the full text of the OSD.

The OSI maintains a list of OSD compliant licenses and many open source projects just distribute their applications under the terms of one of those previously certified licenses (Wu and Lin, 2001). At the time of this publication the OSI web site lists nearly forty different licenses. Some popular licenses are, the General Public License (GPL), the Lesser GPL (LGPL), the Berkeley Software Distribution (BSD) and the MIT license. For a more complete list of licenses refer to website [5].

4. Advantages of OSS

The open and free nature of OSS nurtures the involvement of developers and users with many different needs and the servicing of varied niches interest s that would otherwise be ignored by the large commercial software providers. OSS also benefits from rapid releases and prompt feedback because it is not constrained by time zones or work hours. Also, having access to the code results in quick bug fixes that immediately become available to the community at large [2]. An additional important aspect of OSS is that the application does not necessarily depend on the involvement of specific persons or corporations. Everyone has access to the code, hence if the current management resigns, another person or group can continue the project. It has a life of its own!

In chemical engineering, it should be noted that some developments might involve crucial technology that a company can not release to the public domain for strategic or economic reasons. Therefore,

an open source process simulator must be designed and licensed in such a way that it contemplates the addition of proprietary as well as open source software applications.

5. Organization and the Sim42 foundation

The name of the newly created simulator is Sim42 (REF). The code is resident on a public server and can be accessed via CVS [7], which is also OSS and is the most common tool used for managing OSS projects (Asklund and Bendix, 2002).

Sim42 is licensed using the BSD [8] open source license. This permits the free distribution and modification of all source code and unlike some other licenses, it does not require redistribution of modifications. In other words, a company can develop and add modifications to Sim42 for their own use without being forced to share those enhancements (i.e. a proprietary model of a unit operation).

The Sim42 Software Foundation [9] was incorporated to promote the development of this OSS Process Simulator. The foundation maintains the servers that provide public access to the project source code; discussion lists and other tools that may be deemed appropriate. It also decides what code and modifications are appropriate for inclusion in new versions and is the copyright holder and license grantor for all code included in the sim ulator.

6. Features of the simulator

Some of the most important and distinctive features of this only OSS process simulator are:

§The simulator is written in the Python (Brueck and Tanner, 2001) programming language, which is OSS and can be obtained at no cost via the Internet. The decision to use this programming language (Hammond and Robinson, 2000) relies on the many features offered by Python. It is object oriented, it is very high level (i.e. includes an extensive set of built-in data types and functions), has a clean syntax and it is essentially multiplatform. Another advantage of Python is that it is designed in such a way that extensions can be easily added either in Python or C++. Eric Raymond provides a thorough review of Python on his website [10].

§The building blocks of the OSS process simulator were created with well-defined interfaces thus allowing parallel and decentralized development. A clear independence from user interfaces and thermodynamic method providers is emphasized.

§The flowsheet solver can propagate partial information both backwards and forwards, which allows many complex problems to be solved without iterative calculations.

§It implements a distillation column that employs a Russell (Russell, 1983) inside/out algorithm capable of solving complex pump around, side water draws and side stripper separation configurations.

§There is no need for recycle unit operations in that estimated values are used to initialize material recycle loops.

§Balances are based on "in" and "out" ports which in turn make a "Stream" just one more unit operation.

Also, connections between unit operations can be made without a stream in the middle so long as an "out" port is connected to an "in" port.

§Different thermodynamic providers can be accessed within the s ame flowsheet or by the same unit operation.

§Multilanguage support is provided.

7. Basic design of the simulator

The simulator on its own provides an interface to simulation services such as a flowsheet object, unit operations and a thermodynamic administrator. Figure 1 shows a very basic schematic of the process simulator's design. The dashed box encloses the basic objects provided in the current distribution of Sim42. Note, that the user can communicate with the Sim42 interface directly with Python code or through a Command Line Interface (CLI). The CLI is a powerful means for users to communicate with the simulator through interactive sessions or through scripts. Graphical user interfaces (GUI) have also been developed. VMGSim, which is a commercial process simulator developed by Virtual Materials Group [10] that communicates to Sim42 through the CLI. The current distribution of Sim42 also includes Simba, an interface to Sim42 that uses a web browser. An open source GUI written in wxPython [11] is currently under development.

Sim42, figure 1, does not contain a thermodynamic calculation server. It only has a Thermodynamic Administrator, which is intended to administer the communication between the process simulator and potential Thermodynamic Servers. Writing a high quality property package is no small undertaking (Agarwal, et al, 2001) but it is expected that a number of property packages, both proprietary and open source will be added. Currently, the Virtual Materials Group [1] provides a free version of their RK property package. Figure 2 presents a schematic of the possibilities for "interfacing" to Sim42. A more detailed explanation on the basic structure of Sim42 is provided in the manual [12]

Fig1. Basic objects of Sim42

Figure 2: Basic objects of Sim42 with custom interfaces and thermo providers

8. Exploring the basic objects of Sim42

8.1. Unit Operations (UO)

Unit operations contain:

a)Child UOs; this allows the creation of complex UOs by using and connecting a number of simpler UOs.

b)Ports; These objects contain the property values and provide a unique means for the exchange of

information between connected UOs. There are material, energy and signal ports. All these ports can be "In" or "Out" ports.

c)Parameters; In general, these are structural values that do not change during the solution of a simulation.

Examples of such values are the number of UO inlet ports or the number of liquid phases calculated by the Thermo server.

d)Thermo Case; This object specifies the basic information needed to communicate with the Thermo

Administrator, which in turn calls the appropriate Thermo Provider.

A “flowsheet” is a special UO that contains the algorithm for solving its child UOs. This algorithm recognizes the simulation structure, controls information propagation and recognizes the estimates provided for material loop recycle solution. Any UO can have any UO as a child, but it is important to note that a flowsheet must be on the top. Figure 3 presents a generic scheme of contained unit operations.

8.2. Ports

Unit operations exchange information with other unit operations by means of ports. A port is essentially an attachment point for the flow of information into and out of the unit operation. It might be a material port, which contains all of the information normally associated with a process stream (temperature, pressure, flow, composition, etc.) or it might be an energy port that just contains an energy flow or even a Signal Port that transmits a single piece of information such as a pressure drop.

A Signal Port contains a list of “Property” objects that contain such information as the name, value, conversion factor, min, max and status. “Status” indicates if the value was calculated, specified by the user, passed through a connection, etc.

Figure 3; A generic scheme of unit operations with a flowsheet being the parent object

9. Benzene/Toluene flash calculation.

This example creates a stream and performs a flash calculation for a mixture of benzene and toluene at 80 °C and 1 atm. The simulations shown will use the interface called Simba (Sim42 Browser Assisted) which is included in the current distribution and can be run using most web browsers. Figure 4 shows a snapshot of the Simba interface. There is a multi user on-line version in the Sim42 web site which can be accessed via the following link:

WebSite:https://www.wendangku.net/doc/c110971385.html,/sim42

Login name:guest

Password:sim42

Simba is a wrapper for the Command Line Interface (CLI) and processes commands entered into a the command text box located in the top section, Figure 4. A process simulation always has a “root” object (a Flowsheet unit operation) which in turn contains objects such as parameters or child unit operations. The “root” object is identified by the “/” character. The complete hierarchy of objects can be explored in the left column of Simba (Figure 4, simulation object tree) by clicking on the desired object. The main section of the application displays the “active” object and its deplay depends of the type of object being modified.

Figure 4; Snapshot of SIMBA

The first step in creating a simulation is the addition of a thermodynamic case, which in the simplest case involves the selection of a thermodynamic package and a set of chemical compounds. This can be achieved by selecting a property package from the combo box called “Add Thermo Package”. In this case “VirtualMaterials.SRK” is selected and the name “ThermoCase” is assigned to it when prompted to do so. Note, the CLI command triggered for this action is:

ThermoCase = VirtualMaterials.SRK

Typing the previous line is equivalent to using the “user friendly” combo box. The following command can be typed in order to add chemical compounds to the ThermoCase (instead of selecting from the provided list). Figure 5 shows a snapshot of the added thermodynamic case.

/ThermoCase + Benzene Toluene

Figure 5; Snapshot of ThermoCase in Simba.

The next step in the simulation process is the addition of unit operations to the flowsheet. To accomplish this it is necessary to make the flowsheet the “active” object by clicking in the “/” located in the left column of Simba. Unit operations can be added by using the combo box labeled “Add Unit Operation”. In this case “Material Stream” is selected and the name “s” is assigned to it. The new unit operation automatically becomes the “active” object and properties can be added to its “In” or “Out” port. The displayed units use the default set “SI” but can be changed to any available set via the corresponding combo box. For purposes of this example values are input into the “In” port (P = 100 (kPa); T = 80 (C) and Composition = 0.5 0.5 (molar)). It is important to note, that all the intensive variables of the ports f or the

stream appear “filled in”. Sim42 constantly monitors the degrees of freedom and performs all calculations as information becomes available. Specifying an extensive variable such as mass flow would result in a fully calculate stream. An input of 100 kg/h is used in this example and the simulation results are displayed in Figure 6.

All the previous steps could have been coded in a text file as a series of commands and then run as a script using the "Read Script" option of the “File” combo box in Simba. This same combo box provides options for storing and recalling process simulation projects, among other operations. Simba also provides an option for changing the active language to any of the currently supported languages; Spanish, French, Portuguese, Malay or English.

Figure 6; Snapshot of stream “s”.

10. Ethanol distillation column simulation.

This example uses live steam to fractionate an ethanol-water mixture into a near azeotrope ethanol/water at the top and a negligible concentration of ethanol in the bottoms product stream.

Again, the first step is to create the thermodynamic case, a “Feed” stream and a “Steam” stream. The values used are summarized as follows:

thermo = VirtualMaterials.PSRK

thermo + Ethanol Water

Feed = Stream.Stream_Material()

Feed.In.MoleFlow = 34.43

Feed.In.Fraction = 0.3 0.7

Feed.In.VapFrac = 0.0

Feed.In.P = 101.325

Steam = Stream.Stream_Material()

Steam.In.P = 24.7 psia

Steam.In.Fraction = 0 1

Steam.In.MoleFlow = 51.1

Steam.In.VapFrac = 1.0

In the next step a Tower is created and the name “dist” is assigned to it. The initial display of the tower is shown in figure 7. For this example, the parameter “MaxOuterLoops” is changed to 40 and twelve stages are added to the first stage. In order to add stages it is necessary to select the stage after which stages will be added. In this case “Stage_0” can be selected from the tree in the left column or the link “0” can be selected in the main view. Stages can be added using the “Add the following number of stages below this stage” text box. In this case “12” is the input.

The next step is to add a liquid draw to “Stage_0”. To do this, it is necessary to make this stage the “active” object and then select “Liquid Draw” from the “Add Feed or Draw” combo box. For this example, the name “l” is assigned to it. Adding the liquid draw makes this object the “active” object and the following values are introduced (the text written before the “>” is to indicate the active object:

/dist.Stage_0 l.Port > P = 101.325

/dist.Stage_0 l.Port > MoleFlow = 12.91

An energy draw and a tower estimate in “Stage_0” are added following the same procedure. That is: selecting “Energy Draw” from the “Add Feed or Draw” combo box and selecting “Temperature Est.” from

the “Add Spec or Est” combo box. The names “cond” and “estT”, respectively are used in this example. The value for the temperature estimate is:

/dist.Stage_0> estT = 78

Figure 7; Initial view of a distillation column in Simba.

The next step is to add a feed to “Stage_11” of the tower. In order to do this it is first necessary to make “Stage_11” the “active” object. This can be done by selecting “dist” from the left column of Simba and then selecting “11” from the list of displayed stages. The feed is added by selecting “Add Feed” from the “Add Feed or Draw” combo box. T he name “f” is used in this example. Once “f” is created, it can be

connected to the “Out” port of the “Feed” stream by clicking in the “->” link of the “Connected to” row (assuming /dist.Stage_11.f is the “active” object). It is important to mention at this point that Sim42 has a novel port-wise design in which information to unit operations is passed by using ports. In this example, the information in the “In” port of the “Feed” stream could had been input directly into the “f” port of the “Stage_11” of the Tower without the need to create an external stream.

The only ports missing from the column are the steam inlet and the bottoms product outlet. Both ports are created at the bottom of the Tower, “Stage_13”. The steam inlet port is created by adding a feed and the bottoms port is created by adding a liquid draw. Both objects are added after making “Stage_13” the “active” object and are labelled “f” and “l”, respectively. The newly created feed is connected to the “Out” port of the “Steam” stream. The pressure of the bottom product liquid draw is set as follows:

/dist.Stage_13 l.Port >P = 101.325

Setting temperature estimates is recommended for towers in Sim42. In this example, an extra Temperature estimate is added to “Stage_13” and a value of 100 is assigned to it.

/dist.Stage_13> estT = Tower.Estimate('T')

/dist.Stage_13> estT = 100

At this point the Tower is ready to be solved and the only thing that is left to do is setting the parameter TryToSolve = 1. Figure 8 shows the tower before solving and figure 9 shows the tower after being solved. The results of the simulation are summarized in Table 1.

Property Feed Steam Distillate Bottoms VapFrac 0.0 1.0 0.0 0.0 T (C) 82.30 115.12 78.35 99.788 P (kPa) 101.325 170.30 101.325 101.325 MoleFlow (kgmole/h) 34.3 51.1 12.91 72.62 MassFlow (kg/h) 910.026 920.56 521.75 1308.84 H (kJ/kmol) -26999.078 12894.15 -23523.779 -28474.91 Energy (W) -258216.18 183025.39 -84358.88 -574401.94 MolecularWeight 26.43 18.01 40.41 18.023 Zfactor 0.00134 0.987 0.002188 0.000832 ETHANOL0.3 0.0 0.798 0.000289 WATER 0.7 1.0 0.201 0.9997 Table 1; Results of the Ethanol production tower simulation

Figure 8; Simba Tower snapshot before solving.

Figure 9; Simba Tower snapshot after solving.

The tower simulation is presented here to show the usage and creation of distillation towers in Sim42. It is important to note that Sim42 offers pre-built towers such as “Distillation Column”, “Rebolied Absorber”, “Refluxed Absorber” and “Absorber” which already contain ports for feeds and material and energy draws. Note, the pre-built towers can be modified like the tower described in the example

ethanol/water distillation column simulation. Simba also provides a graphical representation of the

simulations which can be accessed by clicking the “PFD” button. Figure 10 shows the Simba PFD for the ethanol/water distillation column simulation.

Figure 10; Simba PFD.

11. CONCLUSION

An Open Source Chemical Process Simulator was developed. It is believed that the OSS way of developing software does overcome the shortcomings posed by currently available commercial process simulators, in that Sim42 provides an inexpensive state of the art software tool for process modeling and its

object oriented design and licensing allow for easy incorporation of specific developments either open source or proprietary.

The source code for the Sim42 process simulator is available at no cost and can be downloaded from the Internet. A non-profit organization called "Sim42 Software Foundation" was created to manage the project. The development base is still small and it is expected that Sim42 will naturally grow as involvement in the project grows.

The simulator, which includes a powerful rigorous distillation tower, has been used to model a variety of plants. The examples presented here were run using Simba but other interfaces are available or are being developed including a graphical interface based on wxPython and a professional commercial interface. This flexibility is only possible because the simulator core has been designed to be independent of both user interfaces and thermodynamic property providers.

WEB SITES CITED

[1] Virtual Materials Group (VMG), https://www.wendangku.net/doc/c110971385.html,

[2] E. Raymond, The Cathedral & the Bazaar, https://www.wendangku.net/doc/c110971385.html,/~esr/writings/cathedral-bazaar/

[3] Full text of the Open Source Definition (OSD), https://www.wendangku.net/doc/c110971385.html,/docs/definition_plain.php

[4] Open Source Initiative (OSI), https://www.wendangku.net/doc/c110971385.html,

[5] OSI Licensing, https://www.wendangku.net/doc/c110971385.html,/licenses/

[6] Red Tree Development Inc, https://www.wendangku.net/doc/c110971385.html,/

[7] Concurrent Versions System (CVS), https://www.wendangku.net/doc/c110971385.html,/

[8] BSD License, https://www.wendangku.net/doc/c110971385.html,/licenses/bsd-license.php

[9] The Sim42 Foundation, https://www.wendangku.net/doc/c110971385.html,/bylaws

[10] E. S. Raymond. Why Python?, Linux Journal (73), 2000,

https://www.wendangku.net/doc/c110971385.html,/article.php?sid=3882

[11] wxPython https://www.wendangku.net/doc/c110971385.html,

[12] Sim42 manual, https://www.wendangku.net/doc/c110971385.html,/

开源代码是什么意思

开源代码是什么意思? 开源代码是什么意思: 开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式。 源程序(source code)是指未编译的按照一定的程序设计语言规范书写的文本文件。源代码(也称源程序),是指一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。 网站源码,我们可以把它理解成源文代码,就拿我们当前看到的这个网页来说吧,其实它是由一大堆的源代码组成,通过我们的IE)浏览器(或服务器)翻译成现在我们所看到的这个样子。现在有很多网站源代码是加密的,网站源码也分为两种,一种是动态源码如:ASP,PHP,JSP,.NET,CGI等,一种是静态源码如:HTML。 php开源代码功能介绍 : WAP---支持通过手机浏览网站。 支付---支持常用第三方在线支付接口,如支付宝、网银在线、财付通等。 公司---等级体系、实名认证体系、自动二级域名,提供十多套精美企业展台,并可自由组装展台栏目等。 产品---产品展示、零售及批发、在线销售、订单管理、商品评论、评价体功能、退换货体系。 团购---在指定时间内进行团购活动,有倒计时,在线订单等功能。 积分---网站赠送、会员赚取、会员购买、积分消费、会员对换积分礼品。 促销---对优惠打折商品进行独立推广及展示。 品牌---行业品牌专业展示和宣传推广,可聚合品牌产品。 文章---可自由分类,建立专业资讯站点。 留言---访客留言给网站,便于及时反馈问题和解决。 评论---会员对文章或信息评论,增加网站互动性。 点评---会员可发布专题,进行点评。 图库---具有优秀的企业图库功能,支持图片栏目分类、关联积分提高站长收益点。 视频---通过视频模式展示企业产品和宣传资料,支持会员上传。

恒拓开源:以开源软件开发为主业 运营国内最大开源软件技术社区

证券研究报告 | 新三板公司研究 依托开源中国社区、开源软件“社区 +云服务+交易”生态圈已初具规模 投资要点 当前价: 23.8元 目标价: - 元 分析师:付立春 执业编号:S0300515120001 电话:010-******** 邮箱:fulichun@https://www.wendangku.net/doc/c110971385.html, 研究助理:王保庆 电话:010-******** 邮箱:wangbaoqing@https://www.wendangku.net/doc/c110971385.html, ? 以开源软件开发为主业、运营国内最大开源软件技术社区 恒拓开源(天津)信息科技有限公司成立于2007年7月,是一家主要从事开源软件开发的高新技术企业。同时,运营国内最大开源软件技术社区-开源中国。2015年12月在新三板挂牌,2016年1月变成更为做市转让方式。董事长马越持32.23%股权为公司实际控制人,拟以不低于31.5元/股价格募集资金2亿元,2015年营业收入稳步增长、87%的收入来源于定制软件技术开发。 ? “运价魔方”备受好评、线下业务稳步增长仍可期 公司是我国开源技术的先行者,主要通过开源技术,为客户开发企业级的应用产品,同时进行硬件销售。“运价魔方”是公司历时两年自主研发的航空运价数据产品、备受业内好评。2015年,公司来自前五大客户的收入高达2982.7万元,占营业收入的54.47%。五大客户分别为联想(18.98%)、南方航空(12.78%)、海南航空(7.74%)、深圳航空(7.67%)、阿里云(7.3%),航空企业占三席。2015年订单量增加19.7%、线下业务收入仍有望保持10%的增长。 ? 依托开源中国社区、搭建开源软件“社区+云服务+交易”生态圈 开源中国社区成立于2008年,是国内注册用户最多、影响力最大的开发者技术社区之一,目前的主要收入来源于网站广告收入。2015年社区注册用户数累计达到148.94万人,到2018年有望达到200万。2013年,公司上线了代码开发、托管云平台—码云,目前已经成为国内规模最大、最活跃的开发云,但以免费服务为主,短期内盈利困难。2015年12月众包平台上线,提供整包、悬赏、找人等业务。到2015年底共成交项目67个,金额84.29万元。该项业务总体发展较快。公司以完成“社区+云服务+交易”生态圈的搭建、未来或有望成为中国的Github 。 ? 盈利预测与估值 因线上业务投入较大,短期内盈利仍无法覆盖投入,但亏损额会逐渐收窄,我们预测公司2016-2018年的净利润分别为-748.23万元、-427.25万元和-133.94万元。公司的最新每股价格为23.8元,对应的总市值为7.56亿元。 ? 风险提示 持续亏损风险、线下业务拓展不及预期、线上业务变现困难风险、行业竞争加剧风险。

开源协议

开源界的 5 大开源许可协议 作者: its|发布: 2010-3-30 (13:33)|阅读: 7987|评论: 0|静态地址|内容源码 越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机。在我们所能想到的应用领域,都有开源软件存在(象 WordPress,Drupal 这些开源CMS)。然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别。 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。 而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。

GNU GPL GNU General Public Licence(GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利: ?可自由复制 你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。 ?可自由分发 在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔 出去(环保起见,请别这样做)。 ?可以用来盈利 你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到 这份软件,以及你收费的理由。 ?可自由修改 如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。 需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下@PierreJoye写的Practical Guide to GPL Compliance一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。 GNU LGPL GNU 还有另外一种协议,叫做 LGPL (Lesser General Public Licence),它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求,使用了 GPL 代码的产品必须也使用GPL 协议,开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。 BSD BSD 在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新 BSD 协议与简单 BSD 协议,这两种协议经过修正,都和 GPL 兼容,并为开源组织所认可。 新 BSD 协议(3条款协议)在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款。 MIT

开源日志系统比较

开源日志系统比较:scribe、chukwa、kafka、flume 1. 背景介绍 许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征: (1)构建应用系统和分析系统的桥梁,并将它们之间的关联解耦; (2)支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统; (3)具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。 本文从设计架构,负载均衡,可扩展性和容错性等方面对比了当今开源的日志系统,包括facebook的scribe,apache 的chukwa,linkedin的kafka和cloudera的flume等。 2. FaceBook的Scribe Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。 它最重要的特点是容错性好。当后端的存储系统crash时,scribe会将数据写到本地磁盘上,当存储系统恢复正常后,scribe将日志重新加载到存储系统中。 架构: scribe的架构比较简单,主要包括三部分,分别为scribe agent,scribe和存储系统。 (1) scribe agent scribe agent实际上是一个thrift client。向scribe发送数据的唯一方法是使用thrift client,scribe内部定义了一个thrift接口,用户使用该接口将数据发送给server。

开源许可协议

开源许可协议 (初稿) 河南新创元信息网络有限公司 研发部 文档修订历史记录

目录 1目的 (1) 2开源许可协议定义 (1) 3开源许可协议介绍 (1) 3.1GNU GPL (1) 3.2GNU LGPL (2) 3.3BSD (3) 3.4Apache license. 2.0 (3) 3.5MIT许可协议(MIT License) (4) 3.6知识共享协议 (4) 3.7CPL(Common Public Liecense) vesion 1.0 (5) 3.8 MPL协议 (6) 3.9CDDL协议 (7) 4附录 (8) 4.1GPL3.0协议 (8) 4.1.1导言 (8) 4.1.2条款和条件 (9) 4.1.3如何在您的新程序中应用这些条款? (19) 4.2 LGPL 2.1协议 (21) 4.2.1导言 (21) 4.2.2条款和条件 (23)

1目的 为了让开发人员能够正确合法的使用开源软件,避免因为不小心而触犯到相关法律法规,产生不必要的法律纠纷,现对开源界的几大开原协议进行了翻译和整理。 2开源许可协议定义 自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议。其中主要分三大类。 OSI-Approved Open Source:被开放源码组织(https://www.wendangku.net/doc/c110971385.html,)所批准的开放源码授权协议。如常见的Apache,GPL,LGPL,MIT Licence,都属于 OSI-Approved的授权协议,OSI 的要求之一是二进制文件和源代码的自由发放。 Other/Proprietary License:其他的,私有的授权协议。指软件作者提供源代码,但是对软件的分发和发布有其他的限制。 Public Domain:公共域授权。将软件授权为公共域,表示作者完全放弃版权,任何人都可以随意使用。 大部分开源工程都属于OSI-Approved Open Source,下面对常见的License做简单的介绍。 3开源许可协议介绍 3.1GNU GPL GNU有两种协议其中一种为General Public Licence (GPL) ,该协议有可能是

5G开源平台技术实现方案 V1.0-20190311

一、需求背景 搭建5G标准开源代码知识产权状态评估平台,能够满足高可靠性和实时性分析要求,能够对包括Apache、GPL、BSD在内的开源协议代码对比分析,支持同时处理超过十万条开源代码的对比分析,能够对有关的专利、商标数据信息进行对比分析。 二、功能架构

三、技术解决方案 3.1存在问题 源码的对比存在很大的难度,主要存在以下几个问题: (1)改变程序注释、变量名、函数位置; (2)将子程序展开,嵌入至调用子程序的函数中; (3)添加无效语句和变量; (4)等效语句的替换; (5)等价表达式的替换; (6)改变循环语句或选择语句; (7)用过程体代替过程调用语句; (8)引入非结构化的语句; (9)组合原来的和复制后的程序段; (10)改变程序中独立语句的顺序。 3.2解决思路 解决源码对比,首先要确定两段代码相同的依据。 1、文件名相同、文件内容完全相同,则认为相同。 2、若二者比对项的相应内容不完全相同,但比对项的必要部分、 或主要部分没有本质区别,属于实质性相似,则二者的比对项仍具有同一性。比如一段源码的注释中签名信息:作者、邮箱、公司、编写日期完全和另外一段代码相同,应认定相同。

3、如果一段开源代码和另外一段开源代码存在一定行数的代码 完全相同,则认为相同。 针对以上的判定依据,我们提出以下解决方案: 1、针对问题1,可采用MD5算法排重,因为相同的文件的MD5 算法相同,且MD5长度固定,易于存储和检索。可在几秒 钟内完成上亿数据的对比。百度网盘采用这种方式判断文件 是否相同。 2、针对问题2,如果一段源码注释、签名存在大量的一致。我 们可将代码注释和签名等信息提取出来,建立索引库,对比 前先进行搜索,如发现有相同的,则标记文件为可疑文件。 3、针对问题3,主要是对源码本身进行对比,这里我们首先就 需要对源码进行处理,因为源码中一般有大量的空行,剔除 空行后我们再进行对比,这里我们先运用SimHash算法,对 源码每个文件进行SimHash算法,它通过将原始的文本映射 为64位的二进制数字串,然后通过比较二进制数字串的差 异进而来表示原始文本内容的差异,文本都转换为simhash 签名,并转换为long类型存储,存储空间大大减少,通过 计算两个simhash的海明距离来判断相识度,进行初步的筛 选,将相识度高的文件标记为可疑文件。 注:SimHash算法来进行文档和代码的查重,SimHash是 Google在2007年发表的论文《Detecting Near-Duplicates for

开源ERP系统比较

开源ERP系统比较 https://www.wendangku.net/doc/c110971385.html,/zhanghaooy/blog/item/9a144f017114dadd277fb5d0.html 现在有许多企业将ERP项目,在企业中没有实施好,都归咎于软件产品不好。其实,这只是你们的借口。若想要将ERP软件真正与企业融合一体,首先得考虑企业的自身情况,再去选择适合的ERP软件。 如果你的企业是高速发展的中小企业,希望用IT给管理带来提升,对国内主流ERP产品几万元到几十万元的投入觉得风险过大,还恐惧购买成品ERP。你还有另外一种选择,选择免费且开放的开源ERP软件进行二次开发,根据自己的要求设定适合你企业的ERP。下载开源ERP的产品十分方便,在各大知名的开源网站上都可免费下载它们。注意哦!开源所有的产品都是对外开放的,且源代码都可任意查看,若您在实施ERP时遇到问题,可在开源社区上进行咨询讨论,当然,您也可以请软件开发商进行二次开发。 开源ERP和其它ERP软件比较,如图所示 下面介绍有哪些开源ERP? Compiere Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。

Compiere ERP & CRM 通过申购 - 采购 - 发票 - 付款、报价 - 订单 - 发票 - 收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等功能,将企业内部运营与外部客户相关的业务进行规范和优化,将企业由“ 人治” 转变为“ 法治” 的境界。 更好地管理您的业务 * 优化您的库存 * 输入销售订单 * 从 Web 接收订单 * 创建发票并记录发货单 * 收集收货单并与银行对账单核对 * 自动生成或手工输入采购订单 * 记录供应商收货和发票 * 供应商付款 * 输入手工日记帐 * 打印报表和对账单 Compiere ERP 的特色 报价至收款:为潜在客户或客户创建报价单;订单管理;发票;现金收据。它与供应链管理、客户管理高度集成。 申购至付款:创建申购单、采购订单、发票收据;付款处理。它与供应链管理高度集成。 客户关系管理:是所有客户与潜在客户相关活动的逻辑视图。它构成了全部业务流程的一分。 伙伴关系管理:将不同的实体相互链接起来,允许它们管理线索分发、服务请求、渠道以及营销费用。它允许您提供集中式服务。 供应链管理:包括有物料管理的活动,包括库存收货、发货,以及从实体、它的组织到供货商、客户之间的移库和盘存。 绩效分析:覆盖了应用程序的成本计算与会计维度。 网上商店 / 自助服务:提供了您运行 Web 业务所需的一切。信息通过标准的应用程序共享,因此无需同步或特别的集成工作。 Compiere 网上商店组件可被定制为与您的网站相一致的外观和感受。 管理仪表板:提供了一目了然的关键绩效指标( KPI )视图,它能够互动、实时地展现公司的总体经营业绩。仪表板使得高层管理者能够更有效地实现关键性业务战略,追踪公司与销售指标,达成公司的业绩目标。

开源软件的经营模式

开源软件的经营模式 开源软件就是完全公开源代码. 任何人可以自由免费使用的软件。那么经营开源软件的公司该怎样获得利益而生存下去呢?至今. 经营开源软件的公司大多不太顺利。虽然它有很多方面优于传统软件. 诸如: 1、降低风险 在当前动荡的市场环境下. 组织不应该过度依赖软件公司. 因为他们可能正面临生存的困境. 每天都有无数的软件公司倒闭. 因此选择软件公司的产品. 无异于将自己的命运交给了别人。同时. 软件公司的产品一向是封闭源代码的. 试想一下. 如果软件公司在一夜之间突然人间蒸发. 你运行的系统就无人维护.随时可能面临更换系统的境地. 如果选择开源软件. 可以将这种风险降到最低. 活跃的开源软件通常会有源源不断的贡献者维护和更新. 而且自己可以获取源代码. 完全可以按照自己的意愿进行修改. 无需担心某一天突然找不到依靠。 2、产品质量更可靠 闭源软件的质量通常与软件公司的开发人员水平息息相关. 开发人员的水平通常参差不齐. 因此闭源软件的质量通常也是参差不齐. 而开源软件通常是由社区中的技术高手在维护. 有时用户自身也可以参与维护. 并且开源软件的用户较多. 软件存在的bug一般都会被及时发现和修补. 产品质量更加可靠。 3、付出少,回报多 削减成本是商业成功至关重要的的因素. bug修复. 开发功能和编写文档都会消耗大量的人力、物力和财力. 如果选择开源软件. 这些事情都有人在默默奉献. 不需要你付出什么. 但你却可以享用别人的劳动成果. 当然你愿意的话. 也可以为开源软件做贡献。 4、不花冤枉钱 使用开源软件开发一个产品是值得投资的. 可以降低开发成本. 并可以快速推出自己的产品. 然而. 许多组织都希望投放到生产环境中的产品能得到支持.于是诞生了许多提供企业级开源产品支持服务的专业型公司. 组织可以根据自身的情况. 有选择性地购买需要的服务。如果选择闭源产品. 通常会多花钱. 买到自己可能用不上的产品和服务。 5、招揽优秀人才 开源社区中充满了大量的优秀人才. 他们富有激情. 才华横溢. 乐意为开源软件奉献. 如果你的组织选择了开源软件. 在他们眼中. 你的组织充满了魅力.因此要想招揽到优秀的人才一点问题也没有. 试想一下. 对开源软件有浓厚兴趣的人加入到你的组织. 想不提高生产力都难。 6、行业适应能力更强 因为开源软件大多免费的缘故. 在中小型组织中迅速得到了广泛使用. 这些使用开源软件的组织可能来自各行各业. 经过这么多组织的长时间使用. 开源软这种模式为大型公司广泛采纳. 比如IBMHP 等服务器供应商巨头. 通过捆绑免费的Linux 操作系统销售硬件服务器。SUN 公司近期将其Solaris 操作系统开放源码. 以确保服务器硬件的销售收入. 也是这种模式的体现。 盈利模式之五:附属品 在这种模式中. 出售开放源代码的附加产品。比如在低端市场. 出售杯子和T恤衫等;在高端市场上. 出售专业编辑出版的文档和书籍。 0.Reilly集团是销售开源软件附加产品公司的典型案例. 他出版了很多优秀的开放源代码软件的参考资料。0,Reilly实际上雇用和支持了一些著名的开放源代码黑客(例如Larry Wall和Brain Behlendorf),并以此提高它在市场上的声望。 盈利模式之六:品牌战略、服务致上

第三方开源软件管控流程说明

第三方开源软件管控流程说 明 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

开源软件管控流程说明 1 涉及部门 法务部,技术部。 2 引入前准备 2.1 法务部职责 2.1.1 准确解读协议 法务人员应当对目前所有的开源协议进行准确解读,对于企业使用开源协议的风险作出系统的评估。 2.1.2 及时对技术人员进行培训 在企业有使用其他开源软件进行软件开发的需求时,法务人员应当及时对技术人员进行开源协议内容培训,确保技术人员在开发软件的过程中不随意使用他人的开源代码。 2.1.3 根据企业的实际情况制定使用策略 法务部门应当根据企业的实际情况制定使用开源软件的策略,明确在软件开发的过程中可以使用哪些开源协议,不能使用哪些开源协议。避免开源协议冲突以及开源协议对软件的限制违背企业的商业目的等情况的发生。 2.2 技术部职责 2.2.1 不使用来源不明的代码 技术人员应使用来自GitHub等正规开源托管网站的代码。有些来源不明的代码本身就存在知识产权瑕疵,使用此类"不清洁"的代码将会加大企业的侵权风险。 2.2.2 开源社区活跃度评估

评估维度包括:社区是否活跃,发帖数、回复数、问题处理速度等。2.2.3 明确开源代码能解决的问题 技术人员需明确引入的开源代码能解决哪些问题。功能问题(如使用Elasticsearch实现分词点歌搜索)还是性能问题(如分布式缓存Redis技术提升接口响应效率,减轻Mysql数据库压力)等。 2.2.4 对开源代码的调研学习和测试 引入开源代码前,需通读开源项目的设计文档或者白皮书,了解其设计原理。核对每个配置项的作用和影响,识别出关键配置项的作用。进行多种场景的性能测试。观察cpu、内存、磁盘io等指标波动,得到最终结论并进行评估。 2.2.5 引入风险评估 需明确引入开源代码到现用系统的工期及影响范围,以及引入后切换回旧方案的回退机制。 3. 引入 3.1 技术部职责 3.1.1 版本选择 尽可能选择版本号高的RELEASE版本。 3.1.2 开源代码使用记录 技术部门应当在使用开源代码开发软件时,准确的对开源代码的来源、名称、使用许可协议类型等信息进行记录,便于日后的风险审查。同时也能便于法务部门对软件中使用的开源许可协议进行实时的监控。 4. 引入后注意事项

各种开源协议说明(License)

各种开源协议说明 许多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码。而各种开源社区就是因为这个原因而充满活力。开源软件可以用于你能想象得到的任何应用程序,许多web设计人员使用开源软件作为开发基础(例如WordPress,Drupal等等许多CMS系统都是开源的)。 但是许多开发者和设计者并没有对开源License有清楚的了解,不清楚当他们选择开发自己的源代码时,他们有什么权利。如果不知道明确的License的内容,他们就不知道如何做出最明智的选择,如何做对他们最有利。 对于中国的开发者来说,因为中国发达的盗版文化,泛滥的盗版软件,大部分人恐怕都完全没有License或者版权这个概念,都是奉行拿来主义。如果我们一直都是这样的话,中国软件何来进步。所以对于国内的开发者来说,第一课就是应该学习如何使用和遵守License。 什么是License 许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品。 License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。 开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不为别人所剽窃。 GNU General Public License GNU General Public License (GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件。这意味着你可以: ?复制软件 复制软件到自己的服务器,客户端的服务器,你自己的电脑,几乎任何你想要的地方,而且没有数量限制。 ?发布软件 发布你想要的软件,例如,在你的网站提供下载链接,刻成光盘,打印出来等等。

如何开源

一、如何开源 1、扎实做好本职工作 没有工作,就没有生活的一切,即使你自己做老板,也得努力的工作啊。危机关头,人人自危;有份工作,才能开源。平常没有努力工作的,现在要赶紧认真的投入了,否则,下一个离开的可能就是你啊。稍微有点加班,也不要有太多的怨言了,抓紧去做好吧。俗语讲的好,“两条腿的蛤蟆找不到,两条腿的人满大街的都是”,这话说的有点刻薄,只是看看每次招聘会上都是人山人海的场景,就明白现在找份工作真的不是那么容易的事情了。 2、充电学习,提升业务技能 做好了工作,要是还有空闲,不要总是待在电脑前面浏览网页,和朋友聊天,这样被领导看到也不好。有时间,多去学点和专业有关的知识,参加些业务技能的培训,公司不出钱,就自己花钱去学习吧。 和工作相关的学习,你去参加了,老板就是不报销,也会表扬你,能力提高了,即使待遇不提高了,岗位的牢固度也增强了,离经济危机的影响也远些。再说了,学习了的知识,提高了的技能总归是自己的,对个人来讲,那是有百利而无一害的。 3、业余时间参加公考 公考历来是中国竞争最激烈的考试,如果还年轻,不妨去试一下。毕竟,在中国,还没有比公务员再牢靠的饭碗。千军万马过独木桥,也是对自己能力和信心的一个考验;抱着重在参与的心态,希望也许会在不经意间来临呢。 二、如何节流 1、降低信用卡的使用频次 信用卡在给我们带来方便的同时,其实,也带来了很多的弊端。在中国这个高度提倡节约和储蓄的国度里,信用卡的普及和泛滥,更多的是使年轻人陷入了还款的深渊。 在当前这个经济危机的关头,中国的经济发展不可避免的将受到强烈的冲击乃至衰退,个人的收入也难以避免完全不受影响。信用卡更多的是透支以后的生活,还是需要来偿还的,在当前经济环境下,建议卡神们非在必要的情况下,谨慎的使用信用卡去购物。有句电影台词对信用来说,是特别恰当的,那就是“出来混,迟早是要还的”,毕竟,信用卡里的钱不是白给你用的。 2、降低去超市大卖场的频次 超市大卖场之类的场所,的确是方便了大家对日常生活用品的采购,为生活提供了很多便利。但是,有多少人是有计划的去这些场所购物的呢?与这些场所想联系的,通常还少不了肯德鸡、卖当劳之类的洋垃圾,以及一些专卖店,对于时尚的年轻人来讲,到了这样的场所,难免要冲进去消费一番,如此以来,原本是为了日常生活的采购支出必定会远远的超支了。 购买日常用品,在去这些场所之前,即使没有列出计划清单,能够事先做到心中有数,不要被非计划内的东西所吸引,而增加自己的消费。 3、降低外出就餐娱乐的频次 外出娱乐就餐,不仅仅是年轻人的喜好,可以说是所有人群的共同爱好。但是,在荷包不鼓,岗位都堪忧的前提下,还是要压缩这些非生活必须类的项目开支的。 能在家吃饭,还是在家做饭吃吧,不但经济卫生,而且还容易培养夫妻子女间的感情,增强家庭责任感。朋友间的小聚,如果放在家里,吃吃饭,聊聊天,甚或再打会牌,也平添了别样的温馨。

开源软件类型

3.2 目前开源软件的类型 应用服务器 应用服务器定是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。简单的说能实现动态网页技术的服务器叫做应用服务器。 开源的应用服务器软件包括Enhydra (Java)、JBoss (Java)、Open3 (XML)等。 消息服务器/消息平台 消息服务器作为网络的节点,专门用来存储、转发网络上的数据、信息(例如:聊天信息)。做一个形象的比喻:消息服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,我们利用个人电脑,PDA,手机等,发送消息,也必须经过消息服务器,因此也可以说是消息服务器在“组织”和“领导”这些接收消息设备。 开源的应用服务器软件包括ArsDigita (Tcl & Java)、Exolab Group (J2EE,整合OpenEJB,OpenJMS,OpenORA,Tyrex)、Zend (PHP)等。 企业应用程序 企业应用程序是一个泛指的概念,细分下来可分为企业资源计划(ERP)、客户关联管理、项目管理、内容管理、人力资源管理、自动化采购软件、信息仓库(CIW)、生产计划、库存管理、群组软体、B2B和图书馆资源整合系统(ILS)。 开源的企业应用程序包括Compiere (ERP+CRM)、Compiere、Gnome Planner 、ArsDigita、phpgroupware、J2EE、Akopia、Compiere (ERP+CRM)、openapplications、OpenBiblio等。 Blog Blog 全名Web log,中文意思是“网络日志”,后来缩写为Blog。它是继Email、BBS、IM之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。简言之,Blog 就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。 开源的Blog软件有b2evolution (PHP+MySQL)、BLOG:CMS (PHP、基于Nucleus CMS)、BLOG:CMS (PHP、基于Nucleus CMS)等。 无线 所谓无线网络,既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。 开源的无线应用程序有kannel、Jwap、Ophelia等。 论坛 论坛又名网络论坛BBS,全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或

硬件也开源

网络世界/2010年/3月/29日/第010版 国际观察 硬件也开源 开源软件的成功引出了一个颇有诱惑力的问题:同样的设计哲学能否适用于硬件的设计? 开源软件的成功是过去数十年来最伟大的成功故事之一。Apache HTTP Server是全球最流行的Web服务器软件,Linux在与Unix和其他专利操作系统的竞争中巩固了自己的地位,而Mozilla 的火狐浏览器这些年来已成为微软IE的强劲对手。 那么同样的哲学——免费并公开传播底层源代码和开发规范,与众多对程序设计做过贡献的开发者分享,能否适用于硬件的设计呢?是否会有那么一天,我们大家都能用上按照开源模式设计的智能手机、上网本,或者其他器具呢?是否有可能我们喜欢开源硬件会胜过像iPhone这样的专利产品呢? 毕竟,今天在PC上用CAD和原理图设计软件来设计一个设备——包括其电子部分和机械部分是有可能的。装配所需要的几乎所有的零件都可以在网上订购,然后可以找一家低成本生产商生产出设备原型。组织这样一个研发设备的在线开源项目并非遥不可及,而且也不需要数百万美元的启动资金。 然而这样设计出来的设备能否跟那些财力雄厚的大制造商所研发的设备成功竞争呢?Gartner 专门研究开源软件的分析师Mark Driver认为,开源器具的最好机会就在那些技术已经相当成熟的市场中。 “开源器具主要面向商品化的市场。”Driver说。“这些产品所处的市场实际上没有太多实际上的差异,彼此间可以相互替代,这应该就是开源器具的用武之地。Linux之所以获得广泛的欢迎,并不是因为它有什么新功能,而是因为它能做Unix能做的一切,只是采用了更开放的方式。仅此而已。” 开源硬件的定义 虽说如今市面上已经有了数量庞大的开源电脑和电子器件,但是却只有为数不多的科技器具是完全按照开源哲学进行研发的。要准确地将某个硬件项目定义为开源项目,最重要的定义项还是开放。 一般而言,“开源的”硬件至少是指其研发计划的某些部分是完全公开的,可允许其他人对此研发项目做出贡献,或者经其创建者的允许可自行生产设备,甚至修改研发计划,以开发新的设备。 例如,Always Innovating公司就鼓励外部人士对其基于ARM处理器的平板电脑/上网本混搭产品——Touch Book(触摸本)的设计做出贡献。该触摸本仅重1.8磅,配有一块触摸屏、可拆卸键盘和用户定制的Linux操作系统。单块电池的续航能力长达10小时。 该触摸本的原理图可从Always Innovating的网站上自由下载。“我们还会为那些以我们的设计为起点,开发他们自己设备的企业提供更多的支持和咨询服务。”Always Innovating的COO Alexandre Tisserant说。 “我们所遵循的原则是:开发可靠的、创新的产品,并通过开放这些产品,获得所需的回馈和建议,进一步改进产品,设计出更快、更简便的新产品,”Tisserant说。 这正是开源的理念。从不利的一面看,“最糟糕的情况可能是,一个新的项目挂着开源的名头,但最终证明不过是一个营销噱头而已。”Gartner的Driver说。“如果开源设计项目只出自一家厂商,或只有一个支持源,这种情况就是最不充分的开源形式。” 谁是开源硬件市场的顾客? 毫不奇怪,这类器具主要面向(或者主要诉诸于)科技爱好者,Touch Book就主要卖给这群人。

开源开集开漏

晶体管电路中开源、开漏、开集、开发电路总结和应用 蔡欣荣 (西安交通大学计算机系统结构研究所,西安 710049) 摘要:文章针对在常见晶体管电路设计中,所遇到的开源、开漏、开集、开发电路这些概念名词理解不清而导致电路搭建错误的问题,进行概念总结并说明各自电路外接上拉电阻和下拉电阻的原理,给出具体实际的电路加以说明。并在工程实际应用中,提出了对于MOS管和双极性晶体管电路在上拉电阻和下拉电阻方面应该注意的规则。 关键词:双极性晶体管 MOS 开漏开集上拉电阻下拉电阻 对于常见在晶体管电路分析和设计中,经常会遇到开源(OpenSource)、开漏(Open Drain)、开集(Open Collector)、开发(Open Emitter)这些概念名词,有时候对这些概念名词的理解不到位,从而导致电路设计不满足要求,引发电路不能正常工作、电磁干扰噪音很大等问题。 开漏电路中的“漏”指的是场效应管的漏极,那么开源电路中的“源”指的是场效应管的源极。同理,开集电路和开发电路中的“集”和“发”分别指的是三极管的集电极和发射极。 文章对这四种电路分别加以说明,对于开漏、开集电路需要上拉电阻和上拉电压,他们的大小要满足电路的应用需求和限定在晶体管参数以内,对于开源、开发电路也有相应的要求。本文对这些要求都做了详实的说明,以实际的电路加以分析。 1 开源、开漏、开集、开发电路要求 开漏电路和开源电路一般是以绝缘栅型场效应管的漏极、源极为输出的电路。开漏电路一般用法是在漏极外部的电路添加上拉电阻,而开源电路一般在外部电路添加一个下拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。同理,完整的开源电路应该由开源器件和开源下拉电阻组成。 开集电路和开发电路一般是以三极管的集电极、发射极为输出的电路。开集电路一般用法是在集电极外部的电路添加上拉电阻,而开发电路一般在外部电路添加一个下拉电阻。完整的开集电路应该由三极管工艺器件和开集上拉电阻组成,同理,完整的开发电路应该由三极管工艺器件和开发下拉电阻组成。 通过上面的图示,只有加上外部拉电阻和电压,才能使输出有确定的值。上拉电阻又称为输入电阻,主要是为了要求为低电平脉冲触发而用的,如一般的复位电路。下拉电阻又称为输出电阻,主要是为了一般下级输入为高电平触发的电路,如中断请求、同步电路。 2 开漏、开源、开集、开发四种电路特点 ⑴开源、开漏电路都要外接电阻。利用外接电阻可以驱动下级输入的能力,增强电路的驱动能力。只要给芯片适当的工作电压,外部的输出电平在一定范围内可以由外部上拉电压来决定。内部只需要很小的栅极驱动电流,就可以驱动MOS管的导通,实现小电平控制高电平输出。当内部MOS管导通时,电流是从外部的VCC流入上拉电阻经MOS管到地或者先经过MOS管然后灌入下拉电阻到地。 ⑵开源电路必须外接下拉电阻,开漏电路必须外接上拉电阻。否则不能产生所需要的电平,不接电阻一般为高阻态,且会产生干扰。当开漏电路不接上拉电阻时只能输出低电平。

开源节流

公司如何做到开源节流的 随着企业之间的竞争日益激烈,企业内开源节流,降低经营成本,提高竞争力逐渐成为管理者们谈论较多的话题。面对越来越激烈的企业竞争,如何开源节流,提高自身竞争力,更有利效利用现有的资源有效的拓展市场,以及降低管理和运营成本是大家关注的话题。 开源节流,顾名思义就是:开辟源头减少流失。是指在理财时开辟更多的挣钱渠道,对于浪费开销进行有节制地控制,以达到积累财富的目的。对于企业来说:“开源”就是增收—开辟增加收入的途径;“节流”就是节支—节省不必要的资源消耗与费用支出。 为了降低成本,杜绝浪费,公司要求全体员工全面深入地开展开源节流的活动。 一、加强“开源节流,从我做起,开展开源节流的活动学习和引导; 通过部门不定期开会学习教育使公司的全体员工充分认识到开源节流活动的必要性和紧迫性,从而统一思想,统一行动,在公司的全体员工中逐渐树立成本观念和竞争观念,自觉加入到开源节流,降低成本中去。 二、及时的对开源节流活动进行检查、评比、奖励 1、对员工开源节流活动工作开展的情况与实际成效进行检查、评比。 2、对开源节流活动取得的显著效果的员工,部门进行奖励。 3、对于开源节流活动开展情况不佳的,成效不显著的员工进行处罚。 4、发动全体员工积极为开源节流活动献计献策,提出合理化建议,对于建议采纳 后取得了明显成效的员工按降低成本或带来的直接额外收入的一定比例进行奖励。

三、主要成本控制方面 1、人力成本 随着社会发展,人民生活水平的提高,人力成本在企业开支成本中的比例越来越高,如何合理安排工作岗位,人员编制也变得越来越重要。 (1)在设计岗位时应做到合理安排,加强内部培训,增加一专多能的技术工人员比例。让每位员工多掌握不同的技术。 (2)控制国家法定节假日加班人员,合理安排加班和倒休,减少不必要的双倍支出。 (3)通过培训提高基层管理的素质,减少避免基层管理引起生产故障或人员流失。 (4)多了解员工的心声,关心员工,建立和谐员工关系,减少熟练员工的流失。 (5)人力资源部要针对目前公司的用人情况,在员工招聘,培训、考核、薪资等方面形成系统管理、建立符合公司特点的人力资源管理体系,逐渐实现高层次运作。控制人工成本,使每位员工工作量达到饱和,发挥员工的最大积极性。 2、工程物资成本 对于工程的材料、办公物资等的采购,应该做到货比三家,在清晰成本的前提下,尽量实现期货买卖。以加强再用料和资金的周转。合理的安排购买材料,减少运杂费用的支出。同时建立完善的领取材料和物资的制作,做到合理的领用物资。 物料控制方面,实行部门领导首问制,部门领导对物料实行定期抽查、申购、采购、领用等责任到人。

五种开源协议的比较(BSD, Apache, GPL, LGPL, MIT)

五种开源协议的比较(BSD, Apache, GPL, LGPL, MIT) 2010-03-22 11:31 当 Adobe、Microsoft、Sun 等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来! 现今存在的开源协议很多,而经过 Open Source Initiative 组织通过批准的开源协议目前有 58 种(https://www.wendangku.net/doc/c110971385.html,/licenses/alphabetical)。我们在常见的开源协议如 BSD, GPL, LGPL, MIT 等都是 OSI 批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。 这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。 BSD 开源协议(original BSD license、FreeBSD license、Original BSD license) BSD 开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了 BSD 协议的代码,或则以 BSD 协议代码为基础做二次开发自己的产品时,需要满足三个条件: 1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的 BSD 协议。 2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声 明中包含原来代码中的 BSD 协议。 3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD 由于允许使用者修改和重新发布代码,也允许使用或在 BSD 代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD 协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。 Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0) Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和 BSD 类似: 1.需要给代码的用户一份 Apache Licence 2.如果你修改了代码,需要再被修改的文件中说明。 3.在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的 协议,商标,专利声明和其他原来作者规定需要包含的说明。

相关文档