Chinaunix首页 | 论坛 | 博客
  • 博客访问: 793613
  • 博文数量: 247
  • 博客积分: 166
  • 博客等级: 入伍新兵
  • 技术积分: 2199
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:10
文章分类

全部博文(247)

文章存档

2017年(1)

2015年(63)

2014年(80)

2013年(94)

2012年(9)

分类: 信息化

2014-04-03 21:19:04

第一部       企业级程序设计需要一套技术规范,了解一下两大阵营

 

 

 

 

. J2EE.NET平台优劣比较(看看其中我们学过了哪些内容?)

在表现形式上,J2EE是一组规范,而.NET更象是一组产品。但它们的目的都是为了企业应用提供分布式的,高可靠性的解决方案.它们在架构上有着很多的相似之处,下表是一个简单对照:

项目

J2EE

.NET

提出规范的公司

SUN

MS

通信协议

Remote Method Invocation over Internet InterOrb Protocol (RMI/IIOP)

XML

编程语言

Java

C#VB.NETCOBOL

运行时环境

Java Virtual Machine (JVM)

Common Language Runtime (CLR)

胖客户端

Java Swing

Windows Forms

目录服务

Java Naming and Directory Interface (JNDI)

Active Directory Services Interface (ADSI)

数据访问

Java Database Connection (JDBC) 

Java Connectors ADO.NET

异步消息处理

Java Message Service (JMS)

Microsoft Message Queue

表示层技术

Servlets Java Server Page(JSP)

ASP.NET

中间层组件模型

EJBJavaBean COM+

COM

安全访问

JAAS

COM+ Security Call Context

事物处理

Java Transaction Server (JTS)

Microsoft Distributed Transaction Coordinator (MS-DTC)

开发工具

WebGain Visual Café

Borland JBuilder

IBM VisualAge 

IBM WebSphere

BEA WebLogic

(第三方提供,规范本身没有定义)

Visual Studio.NET

 

 

 

J2EE平台的构成

EJB - J2EE 中间层,完成商业逻辑;

JAAS - J2EE 处理认证和授权的API;

Java Connectors - J2EE 用于连接异种数据源的API,对上层来讲是透明的;

JSP Java Servlets - J2EE的表示层技术,用于生成用户界面;

Java Virtual Machine - Java 语言运行环境;

JDBC - J2EE数据库访问;

JMS - J2EE的异步消息队列;

JNDI - J2EE的名字查找API,独立于目录服务器;

JTS - J2EE用于处理交易的API

RMI/IIOP - J2EE的分布式对象的通讯API,提供了和CORBA交互的能力。

 

.NET平台构成

.NET Framework - .NET应用运行的基础;

IL (Intermediary Language) - 所有的.NET语言首先被编译成该中间语言,然后在CLR中运行;

SOAP - 用于服务访问的工业标准;

DCOM - 组件间通信协议;

MS-DTC - 用来在.NET平台上使用两阶段提交协议来处理分布式交易;

CLR - .NET应用的运行时环境;

COM+ - .NET的中间层模型,用于构建商务逻辑;

ADO.NET - .NET 对数据访问的API

此外.NET平台还包括其他一些产品象Application Center ServerBizTalk Server NLBS (Network Load Balancing Service)Commerce ServerEnterprise ServersHIS (Host Integration Server)ISAS (Internet Security and Acceleration Server)用来提供象防火墙,安全访问,B2B交易,负载平衡等服务.J2EE规范本身没有定义这些服务,但可通过选择第三方产品来满足类似的要求。

.技术比较

1. vs 

一种语言vs多种语言,一个平台vs多个平台.这似乎是大家最喜于津津乐道的话题,也似乎是所有问题的焦点。

两种平台主流的开发语言JavaC#在架构上有着惊人的相似:虚拟机技术,基于沙箱的安全模型,分层的命名空间,垃圾回收等。所以从第一眼看上去,C#简直就是Java的克隆。但微软并不这样认为,微软的说明是:它集成了C++ JavaModula 2CSmalltalk等多种语言的精华,对它们共同的核心思想象深度面向对象(deep object-orientation),对象简化 (object-simplification)等都一一做了参考。一方面,C#的大多数关键字来源于C++,使它在书写上有别于Java。但另一方面,C#的严格的类型转换等概念却明显来自于Java(当然,它的原始类型的定义更严格,并且据微软声称没有影响到效率.),使其在内涵上有克隆之嫌.但即是Java,其有些特性也和Smalltalk颇有渊源.所以评价一种开发语言的优劣不仅是看其外在的表现形式,更重要的是其实实在在的功效.作为一种新语言,C#加入了基于XML的标记,可以被编译器用来直接生成文档,C#的另一个特点:一站式软件(one-stop-shopping software)强调了自解释( self-describing) 的编码方式,即头文件,IDL(Interface Definition Language)GUID和其他复杂的接口无需再被引用.也即是C#VB.NET等代码片断可以任意的被加入到其他语言中.这无疑在多种语言混合编程的模式中是一次飞跃,但是,其难维护性也是不言而喻的。

微软的.NET的平台提供了象C#VB.NETCOBOL等多种开发语言,C#是新的,而其他的每一种语言都是在原有的基础上改造而来.这是微软煞费苦心并且也是不得以的要为习惯于这些语言的程序员铺一条便捷之路.但是,这些语言的改造与其说是整容到不如说是一次开膛破肚的大手术.首先是观念变了,BasicCobol等语言先天的缺少面向对象的内涵,现在却变成了面向对象的语言,这就不是要求其传统的程序员仅仅熟悉一些额外的关键字那么简单的问题了.基于面向对象的软件分析设计开发测试是完全不同于基于传统过程性语言的质变,所以这一过程的转变对传统程序员来讲也是一个痛苦和漫长的过程.在传统程序员面前,微软看似提供了丰富多采的解决方法,但对于实际问题而言,却怕是有些力不从心.所以一个简单的办法是:直接使用C#.对于独立软件开发商来讲,其转换成本不容忽视.其次,在一个软件项目中使用多种语言,开发商必须同时拥有多种语言专家和多个独立的难以互相支援的开发小组,无疑的,这也使其软件的维护的成本已非线性的曲线增长.多样性是双韧剑,实施时需仔细斟酌.

跨平台是J2EE的最大卖点,也是至今为止还绊住微软的栅栏.当开发商完成了符合J2EE规范的软件时,其客户可以依据其喜好和实力来选择不同应用服务器.从基于open source的免费软件到高端满足B2B需求的商业套件来搭建自己的平台.但是由于J2EE的规范还不完善,各个J2EE服务器的提供商为了使其提供其各自理解的完整的功能,不得不添加一些额外的特性.这就使得使用了这些特别功能的应用软件,绑定到了特定的应用服务器上.随着J2EE规范的发展,这种差别会逐渐减小.

微软的跨平台解决方案是Web services,它解决的是异种平台上不同应用之间的连通性问题.从技术角度讲,它除了以XML为介质之外没有什么新意.但它的重要意义在于:它是微软这样一个重量级选手所推出的,前景不容小视.构造和使用 Web services 的过程较为简单:

服务提供者用他所选择的语言构造服务;

服务提供者用WSDL(the Web Services Description Language)来定义该服务;

服务提供者在UDDI (Universal Description Discovery and Integration )中注册该服务;

使用者的应用程序从 UDDI中查找已注册服务;

使用者的应用程序通过 SOAP (the Simple Object Access Protocol )来调用服务.(SOAP使用HTTP来传递基于XML为表现形式的参数)

正如我们所讨论的: Web services解决的是异构平台上服务连通性的问题,但在现实中所更迫切需要的是如何在异构的平台上构造具有可扩展性,高可靠性,高可用性,故障冗余,错误恢复能力的企业应用.缺少这一点,从结构上讲,.NET平台还远未完善.

2.中间层

基于组件的软件开发技术可以在较高的级别上实现软件复用,加快企业软件开发的进程.J2EE构架中, JavaBeanEJB(Enterprise JavaBeans) 被用来完成事物逻辑.其中EJBJavaBean 有着类似的模型,但它被用来创建分布式的企业应用.它定义服务器端组件的模型,具有以下一些特性:

生存期模型;

访问模型;

安全模型;

事物处理模型;

会话处理模型;

数据封装模型;

部署模型

根据这些模型,简单的编码就可完成复杂的功能。

在微软的.NET平台中,旧的COM  COM+的组件模型被新的组件模型所代替。增加了象基于沙箱的安全模型和垃圾回收等功能.并且实现了多重接口继承,扩展的元数据和新的代理模型等.旧有的COMCOM+组件也可被映射到新的运行环境中。

综上所述,两众架构在基于组件的中间层的设计上各有千秋,对于创建分布式的,复杂的,高效的,高可靠性的的应用程序都有着足够的能力。

3.表示层

两种架构都同时支持胖客户端和瘦客户端.C/S模式和B/S模式.对于C/S模式,J2EE提供了替代Java AWTJava Swing,同时作为可视化组件的JavaBean也可用来构造系统。对于B/S结构的表示层,J2EE使用 servlet JSP(Java Server Page) HMTLWMLXML等工具来实现。

微软的胖客户端技术则由 Windows Forms代替了MFC.它们起的作用相同,在结构上 Windows Forms 被插入到.NET的运行时框架(runtime framework)和组件模型 (component model).在瘦客户模型中, ASP.NET代替了旧有的ASP HMTL WML XML作为表示层。在 ASP.NET中,C#VB.NET等语言的代码片断可被自由引用.ASP.NET 页面被首先转换成中介语言( Intermediary Language),然后再被 中介语言及时编译器(just-in-time IL compiler)编译,最后运行于公共语言运行环境中,并且 ASP.NET 提供了页面的缓冲,所以,其运行速度要远远快于ASP

大体上,两种架构所使用的表示层的技术非常类似,虽在细节上各有所长,但总体功能当在伯仲之间。

4.数据访问

J2EE  .Net 已不同的形式支持数据的访问。JDBCADO一样和所连接的数据库无关,并且通过连接,命令语句和结果集来对数据进行操作.所以属于中间层次的 API.更高一级的数据封装和数据管理是通过实体EJB (entity EJB)来完成的.基于容器管理的实体EJB使开发更快捷,管理更方便.事实上,由于实体EJBload()store()方法的同步机制,将大大缓解因并发而使数据库产生的瓶颈.也可以采用不属于J2EE规范的第三方数据访问工具,象WebGain TopLink

而微软的.NET的数据访问工具则由基于XMLADO.NET代替了基于COM组件的ADO.任何以XML为输出的数据源都可以作为 ADO.NET 的数据源.相应的结果集升级为数据集 (DataSets),命令语句则升级为数据集命令(DataSetCommands).从形式来看,微软的ADO.NET更新潮和时髦一些,基于XML的特性使其可以处理极其丰富的数据源,并且,因其构架在HTTP协议之上,易于穿透防火墙,使沟通更为便利.但由于XML本身的基于标记的特性,很明显限制了在有超大数据量和有网络瓶颈的应用中的使用.J2EE的数据访问规则则显得略有单薄,但同时却更简单,更有效.并且通过对应用程序有效的层次的设计,对于数据库和基于XML的数据源的访问,也是可以无缝的整合的。

.整体评价

在微软还没有足以和Java平台相对抗的产品的时候,微软所乐于做是大声的宣传:"write once debug everywhere"。而它的对手则更乐于这样评价它:"微软开始也喜欢Java,他们喜欢它的方式是让它死去,他们当然也憎恨它,他们甚至憎恨每一个以J开头的单词。"但是现在,形式不同了,微软有了足以自豪的.NET他们可以已他们自己所喜好的方式来对J2EE.NET来做各种比较。最热闹的应该算是微软出示的第三方对.NET Pet ShopJ2EE Pet Store的综合比较了.有兴趣的读者可以到MSDNIBM开发者原地等网站看到相关评论。

项目

J2EE

.NET

易用性

**

***

扩展能力

***

**

多平台支持

****

*

多语言支持

*

****

可靠性

***

***

性能

***

***

可管理性

***

***

重用性

****

**

负载平衡

***

***

开放标准

*****

*

就企业而言,内部众多系统的整合、系统的延展性、安全性是更需要注意的议题,而这些都是J2EE的优势,也是微软的不足处。 在效率方面,J2EE阵营主张通过硬件的效能增加来弥补软件的不足.开放标准,功能强大,易于移植这些都是J2EE的卖点。但让人奇怪的是IBMWebSphereBEAWebLogicJ2EE市场占了大半壁江山,而作为规则制定者的SUN却在做壁上观。

微软确实提供了从桌面的办公软件,开发工具,到后台服务器数据库的全方位的产品。 但统一平台的使用者可能要牺牲跨平台的好处,并也有可能由此就被无穷无尽的锁定在微软的许可证的汪洋中.更简单,更快捷,更高效是微软的目标,随着时代的发展,我们也许会看到更完美的技术解决方案。

 

 

.NET来自于微软,是一套全能的框架平台,支持C++C#J++VBASP等语言,能够解决C/SB/S和单机等结构的软件开发需求。.NET平台将这些语言编译成CLR语言,使它们可以无差别的运行在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务,目前已经拥有了一大批使用者和拥护者,也为很多程序员创造了良好的就业机会。

准确来说J2EE并不是框架,而是许多技术规范的集合。SUN公司1995年推出Java语言,其先进的理念、优美的语法、完善的面向对象思想、强大的语言特性、对微型设备和网络的良好支持,使得Java语言受到了世界上很多程序员的喜爱,并逐渐成为了世界上最受欢迎的程序开发语言。直到今天,Java语言一直是世界上程序员使用得最多的语言,各大语言都渗透到各个领域,并找到适合其发展的土壤,相信几年内这个排名不会被改变。随着经济发展,大型的分布式系统,远程协作访问系统,电信金融等行业软件企业软件需求越来越大,SUN公司不失时机的组成了JCP组织,通过联合世界上一些先进的软件公司和技术领导者,来定义JSR规范,逐渐形成了以Java语言为核心的J2EE技术群,已经推出近300项规范,涵盖软件开发的各个方向,大有做到无所不包之势。由于参与制定规范的公司,譬如IBM、富士通、BEAORACLE等公司技术实力雄厚,并且对规范都提供了软硬件支持,这些支持都是企业软件开发领域的支柱级作品,加上其平台无关性及开源作品繁多可选择性较强等特点,使J2EE阵营一直处于领先地位,有效的避免了出现一家独大的现象,使这一领域一直处于良性竞争的态势下,发展迅猛。在觉察到J2EE这一支奇兵出现的后,微软推出了.NET Framework,欲与之抗衡,但一直处于下风。

2000年以来关于J2EE.NET之间的争论从来就没有停止过,这里本人不做定论,只列出他们各自的特点。

.NET

1   技术来自于一家公司

2   支持多种语言

3   软硬件均需要付费

4   多数设计模式最佳实践灵感来源于J2EE阵营

5   仅支持Windows操作系统

6   无开源社区支持,是以框架开发者为主导的设计

7   门槛很低,使用方便,学习成本较低

8   新技术更新较慢

J2EE

1   技术来自于多家公司

2   支持一种语言

3   开源产品众多,免费框架居多,硬件和中间件需付费

4   成果众多,相应的最佳实践设计模式层出不穷

5   平台移植性好,支持所有操作系统,这一方面成本降低

6   开源社区活跃,很多规范都是一线人员自己做出来的或者大量听取一线开发者的意见

7   门槛较高,由于多且杂,需要开发人员花费很长时间才能熟悉整个体系

8   这一阵营技术更新很快,新技术新标准层出不穷,适合技术爱好者

在商业市场上,支持J2EE阵营和支持.Net阵营的开发者约6.5:3.5 

注:如何学习J2EE技术

1   通读规范

2   Sample

3   Demo

4   读原码

5   做项目

 

 

 

第二部分 几个主流商业数据库管理系统

开发数据库应用,选择一个好的数据库是非常重要的。目前, 商品 化的数据库 管理 系统以关系型数据库为主导产品, 技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的关系型数据库管理系统有SQL ORACLESYBASEINFORMIX DB2。从一些方面比较了SQL ServerOracleSYBASEDB2INFORMIX 这些数据库,为您选择数据库提供一些参考。 这其中,INFORMIX开始逐渐淡出主流行列,而另一个开源RDBMS MySQL迅速登陆,可以关注。

性能 
SQL Server           
老版本多用户时性能不佳,新版本的性能有了明显的改善,各项处理能力都有了明显的提高。保持了多项TPC-C纪录。具体参见;
Oracle             
性能最高, 保持Windows NT下的TPC-DTPC-C的世界记录。 
SYBASE          
性能较高,支持SunIBMHPCompaqVeritas的集群设备的特性,实现高可用性。适应于 安全 性要求极高的系统。 
DB2             
适用于数据仓库和在线事物处理,性能较高。 客户端支持及应用模式。 
INFORMIX          
性能较高,支持集群,实现高可用性。适应于安全性要求极高的系统,尤其是银行, 证券 系统的应用。 

可伸缩性,并行性 
SQL Server          
以前版本SQL Server并行实施和共存模型并不成熟。很难处理大量的用户数和数据卷。伸缩性有限。新版本性能有了较大的改善,在Microsoft Advanced Servers上有突出的表现,超过了他的主要竞争对手。 
Oracle             
平行通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要, 用户可以把数据库移到UNIX中,具有很好的伸缩性。 
SYBASE         
新版本具有较好的并行性,速度快,对巨量数据无明显影响,但是技术实现复杂,需要程序支持,伸缩性有限。 
DB2           
DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点,伸缩性有限。  
INFORMIX         
采用单进程多线程的技术,具有较好的并行性。但是仅运行于UNIX平台,伸缩性有限。 
安全性 
SQL server           
Windows Server 获最高安全认证,服务器平台的稳定性是数据库的稳定性的基础,新版本的SQL的安全性有了极大的提高。 
Oracle Server         
获得最高认证级别的ISO标准认证。 
SYBASE           
通过Sun公司J2EE认证测试,获得最高认证级别的ISO标准认证。 
DB2             
获得最高认证级别的ISO标准认证。 
INFORMIX           
获得最高认证级别的ISO标准认证。 
 

 作简便 
SQL Server           
   作简单,采用图形界面。管理也很方便,而且编程接口特别友好,从易维护性和价格上SQL Server明显占有优势。 
Oracle          

较复杂, 同时提供GUI和命令行,在Windows NTUnix Linux   作相同。对数据库 管理 人员要求较高。 
SYBASE        
复杂,使用命令行  作,对数据库管理人员要求较高。 
DB2          
   作简单,同时提供GUI和命令行,在Windows NTUnix  作相同。 
INFORMIX        
使用和管理复杂,命令行  作。对数据库管理人员要求较高。 

使用风险 
SQL Server          
完全重写的代码,性能和兼容性有了较大的提高,与OracleDB2的性能差距明显减小。该产品的出台经历了长期的测试,为产品的 安全 和稳定进行了全面的检测,安全稳定性有了明显的提高。 
Oracle            
长时间的开发经验,完全向下兼容,可以安全的进行数据库的升级,在 企业 ,政府中得到广泛的应用。并且如果在WINNT上无法满足数据的要求,可以安全的把数据转移到UNIX上来。 
SYBASE          
开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行, 证券 行业中得到了广泛的应用。 
DB2            
在巨型企业得到广泛的应用,向下兼容性好。风险小。 
INFORMIX          
开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行,证券行业中得到了广泛的应用。 

开放性 
SQL Server         
只能在Windows 上运行,C/S结构,只支持Windows客户,可以用ADO,DAO,OLEDB,ODBC连接。Windows9X系列产品是偏重于桌面应用,NT server适合各种大中小型型企业。  作系统的系统的稳定对数据库是十分重要的。Windows平台的可靠性,安全性经过了最高级别的C2认证的。在处理大数据量的关键业务时提供了较好的性能。 
Oracle         
能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。多层次 网络 计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。可以使客户选择最适合的解决方案。对开发商全力支持。 
SYBASE        
能在所有主流平台上运行,在银行业中得到了广泛的应用。 
DB2          
有较好的开放性,最适于海量数据。跨平台,多层结构,支持ODBC,JDBC等客户。在大型的国际企业中得到最为广泛的应用,在全球的500家最大的企业中,大部分采用DB2数据库服务器。 
IINFORMIX        
仅运行在UNIX平台,包括SUNOSHPUX ALFAOSF/1。在银行中得到广泛的应用。 

易维护性和价格 
SQL Server          
从易维护性和价格上SQL Server明显占有优势。基于Microsoft的一贯风格,SQL Server的图形管理界面带来了明显的易用性, 微软 的数据库管理员培训进行的比较充分,可以轻松的找到很好的数据库管理员,数据库管理费用比较低,SQL Server的价格也是很低的,但是在License的购买上会抬高价格。总体来说SQL Server的价格在商用数据库中是最低的。 
Oracle        
从易维护性和价格体来说Oracle的价格是比较高的,管理比较复杂,由于Oracle的应用很广泛,经验丰富的Oracle数据库管理员可以比较容易的找到,从而实现Oracle的良好管理。因此Oracle的性能价格比在商用数据库中是最好的。 
SYBASE        
SYBASE的价格是比较低的,但是SYBASE的在企业和政府中的应用较少,很难找到经验丰富的管理员,运行管理费用较高。

DB2            
价格高, 管理 员少,在中国的应用较少,运行管理费用都很高,适用于大型 企业 的数据仓库应用。 
INFORMIX         
价格在这些系统中居于中间,与SYBASE一样,在企业和政府中应用较少,仅在银行中得到了广泛的应用。经验丰富的管理人员较少,运行管理费用高。 

数据库二次开发 
SQL Server           
数据库的二次开发工具很多,包括Visual C++, Visual Basic等开发工具,可以实现很好的Windows应用。开发容易。 
Oracle             
数据库的二次开发工具很多,涵盖了数据库开发的各个阶段,开发容易。 
SYBASE         
开发工具较少,经验丰富的人员很少。 
DB2           
在国外巨型企业得到广泛的应用,中国的经验丰富的人员很少。 
INFORMIX         
在银行业中得到广泛的应用,但是在中国的经验丰富的人员很少。 
  
数据库综合比较结果 
1.1数据库综合比较结果表 
   性能  伸缩性   安全       风险  开放性  维护性  价格 
MSSQL  ●●●●●  ●●●●  ●●●●  ●●●●●  ●●●●  ●●●●  ●●●●●  ●●●●● 
ORACLE  ●●●●●  ●●●●●  ●●●●●  ●●  ●●●●●  ●●●●●  ●●  ● 
SYBASE  ●●●●  ●●●  ●●●●●  ●●  ●●●●●  ●●  ●●  ●●● 
DB2  ●●●●  ●●●  ●●●●●  ●●●  ●●●●●  ●●  ●●  ●●● 
INFORMIX  ●●●●  ●●●  ●●●●●  ●●  ●●●●●  ●●  ●●  ●●● 
  
经过以上比较,如表1.1所示,我们得出结论如下:一般的中小型企业或者中小型的应用中,采用MS SQL Server 作为数据平台,既可以节约资金,又便于维护管理。小型应用主要考虑的是资金问题,SQL Server的资金投入最小,是中小型应用的最佳选择。大型应用系统要求有较高的数据处理能力,一般应该采用了高性能的大型数据库管理系统——Oracle,大型高可靠性要求的系统安全稳定性是首要考虑的因素,Oracle 能够提供很高的安全稳定的性能,因此Oracle是在国内的大型数据库的必然的选择。在国外的巨型企业中很多采用全套IBM解决方案,使用DB2作为公司的数据仓库,可以达到几乎与Oracle相同的安全稳定性和相近的性能,但是国内使用DB2的人很少,经验丰富的管理员更少,很难实现很好的数据库管理。在银行和 证券 系统中,采用安全性较好的INFORMIXSYBASE。而MySQL因为是开源,其技术支持较差,一般用在网站等不要求高可靠性而更重视成本的企业。Linux+MySQL+Apache+PHP是一个常见模式,全部是开源免费而相对技术成熟的软件,初始零成本,但对开发人员和管理人员要求更高,所以维护成本相对较高。

阅读(1046) | 评论(0) | 转发(0) |
0

上一篇:Java自学成长路线

下一篇: hadoop1 和 hadoop2

给主人留下些什么吧!~~