论平台与系统开发


                                           
    平台这个概念在系统开发中是常见的,现在主流的的平台有Micorsoft的.Net和SUN的J2EE,这两个平台大有平分秋色之势,占了大部分的市场,当然还有已经成为事实上的工业标准的CORBA,它是ORG提出的.
   作为软件巨头微软公司早在20世纪90年代就提出了COM(Component Object  Modle 组件对象模型)的概念,这是一种面向组件开发的模型,使组件成为构造系统的构件,组件的实现不依赖于具体语言的限制,也就是组件的开发可以用多种语言进行,当然微软对自己的开发工具提供了比较的支持,诸如VB,VC,还有现在C#,开发出的组件可以很好的利用,这就加快软件开发的速度,COM技术经历了DLL,OLE,COM,DCOM到COM+的演变发展阶段,每个阶段都代表了COM的一个应用层次和应用领域,这些技术中的很多长处至今仍然交叉融入于COM的使用过程中.DLL是包含大量的只在运行时刻才与进程相连接函数,数据以及资源的库文件.动态连接显示了各连接对象之间的一种松散连接关系.虽然DLL和COM并不是同一个概念范畴,但动态连接特性是COM组件里必不可少的,DLL是COM组件最常见的发布方式.DLL技术贯穿于COM组件的始终,COM技术在很大程度上就是对DLL优势的继承,同时对DLL的缺点进行改进而发展起来的.最初的COM技术是以OLE(对象连接嵌入)为基础的.OLE是Microsoft开发的一种使GUI为中心内容的应用程序在一起协同工作的实现技术.后来微软推出了COM规范,这个规范不局限于OLE技术.随着网络技术的发展,OLE技术暴露了很多局限性的问题,而在这方面COM技术显示了极强的适应性,作为OLE的替代,Microsoft推出了一系列以COM为基础的统称为ActiveX的技术.总而言之,COM技术是程序的组件间建立联系的规范,使各个组件之间可以用一种统一的方式进行交互.
大家都知道现在的系统开发(软件系统)已经不再像以前一样了,软件系统无论从规模还是从应用的领域都发生了很大的变化.一个大型的软件系统可能跨市,省,甚至是跨国运行,比如说银行系统,各个地区都有分行,分行与总行之间要进行数据交换(当然通常是分行将信息上传到总行),银行系统又可能与其他金融系统或非金融系统进行交互.现在很多银行都为用户提出来供了网上支付功能,这就涉及到不同系统进行交互.对于这样大的系统,各个系统的通信显得极为重要,但不同的系统(或同一系统中的子系统)通常是由不同的公司负责开发,系统的开发工具不同,语言不同,系统运行的平台也不同,你是Linux,他就可能是Windows,后台的数据库也可能不同,这就给系统的集成带来很大麻烦,人们也逐渐意识到了屏蔽异构系统的重要性.
微软提出了DCOM, D即为Distribute(分布式),这是对COM的发展,它是跨进程甚至跨机器的分布式环境中进行同步运行的实现技术.DCOM可以实现在两台不同的计算机之间调用COM对象,对象间的通信是通过网络来传输的.DCOM屏蔽了COM对象的位置位置差异,它所带来的位置透明性使用户在不必知道COM对象的实际位置的情况下,就可以使用COM对象,不仅如此,对于COM对象的调用,可以用不同的语言(如JAVA,C++,Dephi),按照COM提供的接口标准进行调用),这就为分布式系统的开发带来极大益处.
    COM 提供了一种编写基于组件的应用程序的方法。众所周知,编写 COM 组件需要进行大量重复的琐碎工作。而 COM+ 并不完全是 COM 的新版本,实际上,COM+ 为组件提供了一个服务基础结构。组件在构建后安装到 COM+ 应用程序中,可以建立易于部署、吞吐量高、可缩放的服务器应用程序。(如果组件不需要使用任何服务,则不应放到 COM+ 应用程序中。)为了达到可缩放性和吞吐量目标,需要从一开始就使用事务、对象池和活动语义等服务来设计应用程序.
   .NET 框架提供了另一种编写基于组件的应用程序的方法,与 COM 编程模型相比,它具有更好的工具支持、公共语言运行时 (CLR) 和更简单的编码语法等优势。COM+ 服务基础结构可以从托管和非托管代码进行访问。非托管代码中的服务称为 COM+ 服务。在 .NET 中,这些服务被称为企业服务。从 ServicedComponent 派生的类表明某个组件将需要服务。(如果组件不需要使用任何服务,则不应从 ServicedComponent 派生。)改进的工具支持使编程人员能够编写基于服务器的应用程序,而可缩放性和吞吐量问题仍需要通过良好的编程实践来实现。服务背后的基本理念是,从一开始就考虑吞吐量和可缩放性的设计,并利用企业服务在适当的位置轻松地实现那些设计模式。
   .NET首先是一个开发平台,它义了一种公用语言子集(Common Language Subset,CLS),这是一种为符合其规范的语言与类库之间提供无缝集成的混合语..NET统一了编程类库,提供了对下一代网络通信标准,可扩展标记语言(XML)的完全支持,使应用程序的开发变得更容易,更简单,.NET计划还将实现人机交互方面的革命,微软将在其软件中添加手写和语音识别的功能,让人们能够与计算机进行更好的交流,并在此基础上继续扩展功能,增加对各种用户终端的支持能力.最为重要的是,.NET将改变因特网的行为方式;软件将变成为服务.与Microsoft的其它产品一样,.NET与Windows平台紧密集成,并且与其它微软产品相比它更进一步,由于其运行库已经与操作系统融在了一起,从广义上所它称为一个运行库也不为过.
学软件开发我开始都是用微软提供的技术平台,从操作系统(Windows98,Windows2000,WindowsXP)到开发工具(VB,VC++),确实也感觉到了微软工具带来的极大便利性.但随着学习的深入,我接触到了SUN的JAVA,觉得比微软的技术易学,易用,JAVA技术分为三个版本(J2ME,J2SE,J2EE),且SUN公司的很多的产品都进行了开源,如开发工具NetBeans,连Java语言的所有包都可以找到源代码,从这点上我认为它做得比微软好得多,现在很多公司都将自己的产品进行了开源,我记得国内一家做EPR的软件公司为了更好的发展,大胆地将三百多万行的代码进行开源,结果获得了很大成功.代码进行了开源,就有更多的软件开发人员对代码进行测试,进行修改,这样代码的质量变得越来越高.
JAVA之所以能在出生后短短的数几年内得到软件人员的亲睐,这和它的安全性和跨平台性有着不可分割的关系.SUN的对宣传JAVA的口号是”一次编译,到处运行”,事实上平台无关归根到底是平台相关,它之所以能够跨平台,是它设计了虚拟机,不同平台的上虚拟上是不同的,如同样的J2SE版本,Linux和Solaris上的虚拟机就不同,虚拟机负责解释编绎生成的字节码,字节码会转换为与该平台有关的机器指令,即本地代码Native Code.
   J2ME的全称为JAVA 2 Mobile Edition,它是SUN 公司针对嵌入式、消费类
电子产品推出的开发平台 J2ME 实际上是一系列规范的集合,由JCP 组织制定相关的Java Specification Request(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK 测试,这样确保兼容性。
   J2ME 平台是由配置(Configuration)和简表(Profile)构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java 虚拟机。简表是针对一系列设备提供的开发包集合。在J2ME 中还有一个重要的概念是可选包(Optional Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME 中制定了JSR82(Bluetooth API)提供了对蓝牙的支持。目前,J2ME 中有两个最主要的配置,分别是Connected Limited Devices Configuration(CLDC)和Connected Devices Configuration(CDC)。他们是根据设备的硬件性能进行区分的,例如处理器、内存容量等.
  对于系统开发平台的选择不好说到底哪个平台好哪个平台不好,我们要根据具体情况具体分析,如开发大型的企业应用,就首先考虑J2EE,如是中小型的企业应用,则.NET将是比较的选择.开发软件系统时要分析所有可能的因素,对开发平台进行合理的选择.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值