《几种体系架构与开发工具的组成》由会员分享,可在线阅读,更多相关《几种体系架构与开发工具的组成(7页珍藏版)》请在金锄头文库上搜索。
1、几种体系架构与开发工具的组成三层体系架构Web Server/App Server开发工具 核心技术 备注Websphere(IBM)WebLogic (BEA)Jbuilder9.0WSAD 5.0Eclipse(Java)免费J2EEJarguas (SYBASE)PB9.0+PJ 非主流技术Asp.NET 北京瑞得公司、杭州创业公司采用.NET Studio.NET Windows Server 2003(Web Server + App Server)Borland C+;DelphiCorba Dephi 非主流技术 卫宁公司采用项目上体系架构与开发工具的选择序号 方案 优势 缺点
2、备注第一种Websphere(IBM)+ Eclipse单 CPU 价格:30-50 万( 估计) 跨平台技术,易移植和多平台产品集成 技术方案比较完整 开发工具免费 技术比较复杂 Websphere 价格比较高(如果采用 Bea 也比较高)如果技术人员对 IBM 的技术比较熟悉可采用此方案,但Websphere 的价格问题需要斟酌与解决第二种.NET(Asp.Net)50 用户价格:5 万以下(win 技术简洁,开发简单 价格上也有优势(.Net 是内嵌在 Win 只能在Windows 平台上使用因为考虑该项目需要集成的项目不多,没有跨平台的需要,再加上技server 2003 版) ser
3、ver 2003中)术简单,容易掌握,如果人员比较熟悉微软的技术,建议采用此方案可以参考看如下几篇文章:J2EE 与.NET 的比较毫无疑问,程序员,软件开发商,企业 IT 经理一直都在密切的关注着 J2EE 和.NET 的发展,但是选择一个在性能,价格,时间上满足他们需求的平台却并不是一件简单的事情。本文试图在技术上做一个简单的比较,希望对于他们做选择时有所帮助。 一.技术概观 在表现形式上,J2EE 是一组规范,而.NET 更象是一组产品。但它们的目的都是为了企业应用提供分布式的,高可靠性的解决方案.它们在架构上有着很多的相似之处,下表是一个简单对照: J2EE .NET 通信协议 Rem
4、ote Method Invocation over Internet InterOrb Protocol (RMI/IIOP),XML 编程语言 Java C#,VB.NET,COBOL 运行时环境 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 Co
5、nnection (JDBC) ,Java Connectors ADO.NET 异步消息处理 Java Message Service (JMS) Microsoft Message Queue 表示层技术 Servlets, Java Server Page(JSP) ASP.NET 中间层组件模型 EJB,JavaBean COM+,COM 安全访问 JAAS COM+ Security Call Context 事物处理 Java Transaction Server (JTS) Microsoft Distributed Transaction Coordinator (MS-DTC
6、) 开发工具 WebGain Visual Caf Borland Jbuilder IBM VisualAge 等 (第三方提供,规范本身没有定义) Visual Studio.NET J2EE 平台的构成 EJB - J2EE 中间层,完成商业逻辑; JAAS - J2EE 处理认证和授权的 API; Java Connectors - J2EE 用于连接异种数据源的 API,对上层来讲是透明的; JSP, Java Servlets - J2EE 的表示层技术,用于生成用户界面; Java Virtual Machine - Java 语言运行环境; JDBC - J2EE 数据库访问;
7、 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 平台上使用两阶段提交协议来处理分布式
8、交易; CLR - .NET 应用的运行时环境; COM+ - .NET 的中间层模型,用于构建商务逻辑; ADO.NET - .NET 对数据访问的 API。 此外.NET 平台还包括其他一些产品象 Application Center Server,BizTalk Server ,NLBS (Network Load Balancing Service),Commerce Server,Enterprise Servers,HIS (Host Integration Server),ISAS (Internet Security and Acceleration Server)用来提供象防
9、火墙,安全访问,B2B 交易,负载平衡等服务.J2EE 规范本身没有定义这些服务,但可通过选择第三方产品来满足类似的要求。 二.技术比较 1.一 vs 多 一种语言 vs 多种语言,一个平台 vs 多个平台.这似乎是大家最喜于津津乐道的话题,也似乎是所有问题的焦点。 两种平台主流的开发语言 Java 和 C#在架构上有着惊人的相似:虚拟机技术,基于沙箱的安全模型,分层的命名空间,垃圾回收等。所以从第一眼看上去,C#简直就是 Java 的克隆。但微软并不这样认为,微软的说明是:“它集成了 C+, Java,Modula 2,C 和Smalltalk 等多种语言的精华,对它们共同的核心思想象深度面
10、向对象(deep object-orientation),对象简化 (object-simplification)等都一一做了参考。”一方面,C#的大多数关键字来源于 C+,使它在书写上有别于 Java。但另一方面,C#的严格的类型转换等概念却明显来自于 Java(当然,它的原始类型的定义更严格,并且据微软声称没有影响到效率.),使其在内涵上有克隆之嫌.但即是 Java,其有些特性也和 Smalltalk 颇有渊源.所以评价一种开发语言的优劣不仅是看其外在的表现形式,更重要的是其实实在在的功效.作为一种新语言,C#加入了基于 XML 的标记,可以被编译器用来直接生成文档,C#的另一个特点:一站
11、式软件(one-stop-shopping software)强调了自解释( self-describing) 的编码方式,即头文件,IDL(Interface Definition Language),GUID 和其他复杂的接口无需再被引用.也即是 C#,VB.NET 等代码片断可以任意的被加入到其他语言中.这无疑在多种语言混合编程的模式中是一次飞跃,但是,其难维护性也是不言而喻的。 微软的.NET 的平台提供了象 C#,VB.NET,COBOL 等多种开发语言,C#是新的,而其他的每一种语言都是在原有的基础上改造而来.这是微软煞费苦心并且也是不得以的要为习惯于这些语言的程序员铺一条便捷之路
12、.但是,这些语言的改造与其说是整容到不如说是一次开膛破肚的大手术.首先是观念变了,Basic,Cobol 等语言先天的缺少面向对象的内涵,现在却变成了面向对象的语言,这就不是要求其传统的程序员仅仅熟悉一些额外的关键字那么简单的问题了.基于面向对象的软件分析设计开发测试是完全不同于基于传统过程性语言的质变,所以这一过程的转变对传统程序员来讲也是一个痛苦和漫长的过程.在传统程序员面前,微软看似提供了丰富多采的解决方法,但对于实际问题而言,却怕是有些力不从心.所以一个简单的办法是:直接使用 C#.对于独立软件开发商来讲,其转换成本不容忽视.其次,在一个软件项目中使用多种语言,开发商必须同时拥有多种语
13、言专家和多个独立的难以互相支援的开发小组,无疑的,这也使其软件的维护的成本已非线性的曲线增长.多样性是双韧剑,实施时需仔细斟酌. 跨平台是 J2EE 的最大卖点,也是至今为止还绊住微软的栅栏.当开发商完成了符合 J2EE 规范的软件时,其客户可以依据其喜好和实力来选择不同应用服务器.从基于 open source 的免费软件到高端满足 B2B 需求的商业套件来搭建自己的平台.但是由于 J2EE 的规范还不完善,各个 J2EE 服务器的提供商为了使其提供其各自理解的完整的功能,不得不添加一些额外的特性.这就使得使用了这些特别功能的应用软件,绑定到了特定的应用服务器上.随着J2EE 规范的发展,这
14、种差别会逐渐减小. 微软的跨平台解决方案是 Web services,它解决的是异种平台上不同应用之间的连通性问题.从技术角度讲,它除了以 XML 为介质之外没有什么新意.但它的重要意义在于:它是微软这样一个重量级选手所推出的,前景不容小视.构造和使用 Web services 的过程较为简单: 服务提供者用他所选择的语言构造服务; 服务提供者用 WSDL(the Web Services Description Language)来定义该服务; 服务提供者在 UDDI (Universal Description, Discovery, and Integration )中注册该服务; 使用
15、者的应用程序从 UDDI 中查找已注册服务; 使用者的应用程序通过 SOAP (the Simple Object Access Protocol )来调用服务.(SOAP使用 HTTP 来传递基于 XML 为表现形式的参数) 正如我们所讨论的: Web services 解决的是异构平台上服务连通性的问题,但在现实中所更迫切需要的是如何在异构的平台上构造具有可扩展性,高可靠性,高可用性,故障冗余,错误恢复能力的企业应用.缺少这一点,从结构上讲,.NET 平台还远未完善. 2.中间层 基于组件的软件开发技术可以在较高的级别上实现软件复用,加快企业软件开发的进程.在 J2EE 构架中, Java
16、Bean 和 EJB(Enterprise JavaBeans) 被用来完成事物逻辑.其中EJB 和 JavaBean 有着类似的模型,但它被用来创建分布式的企业应用.它定义服务器端组件的模型,具有以下一些特性: 生存期模型; 访问模型; 安全模型; 事物处理模型; 会话处理模型; 数据封装模型; 部署模型 根据这些模型,简单的编码就可完成复杂的功能。 在微软的.NET 平台中,旧的 COM 和 COM+的组件模型被新的组件模型所代替。增加了象基于沙箱的安全模型和垃圾回收等功能.并且实现了多重接口继承,扩展的元数据和新的代理模型等.旧有的 COM 和 COM+组件也可被映射到新的运行环境中。 综上所述,两众架构在基于组件的中间层的设计上各有千秋,对于创建分布式的,复杂的,高效的,高可靠性的的应用程序都有着足够的能力。 3.表示层 两种架构都同时支持胖客户端和瘦客户端.即 C/S 模式和 B/S 模式.对于 C/S 模式,J2EE 提供了替代 Java AWT 的 Java Swing,同时作为可视化组件的