软件组件连接开发 基于组件的软件开发
发布日期:2020-10-07摘要:软件的组件式如何开发? 我开始担任四川某网络公司移动短消息增值应用系统(简称SMASP)开发部的负责人,主要工作是对SMASP进行规划并实施开发,为总经理提供SMASP开发的参考方案。SMASP的通信...
软件的组件式如何开发?
我开始担任四川某网络公司移动短消息增值应用系统(简称SMASP)开发部的负责人,主要工作是对SMASP进行规划并实施开发,为总经理提供SMASP开发的参考方案。
SMASP的通信服务提供商为中国联通公司,服务内容提供商为如:出租车调度系统的出租车管理公司;电码防伪系统的商用电码公司;水电气三表抄表系统的水电气公司;移动证券系统的证券公司等,还有许多已知的和未知的对移动短消息增值应用有潜在需求的应用领域会不段地加入到SMASP中来。
SMASP首期工程应用到联通四川公司,二期工程将推广到山东、河南、广东、福建、湖北等省市,并逐步推广应用到全国联通。
由于项目处于起步阶段,还没有定型的系统模型及成功的应用模式,因此,选择一个好的系统体系结构和开发模式就成为当务之急。
对领域的选择。
通常一个领域的专用资产要应用到不相关的领域是比较困难的,组件式开发的首要工作是领域工程,在这个领域内提取可被复用的系统对象,创建可复用资产,开发复用组件。
而SMASP正好是这样一个面对具体应用领域的,系统需要不断升级,有着长期的持续开发需求。
因此,在SMASP建设的初级阶段,为SMASP创建复用资产是可行的,有回报的。
对组件(COM)式体系结构的选择。
SMASP已经有一部分应用是建立在WindowsNT服务器上了,但考虑到本系统将推广到全国各地联通公司,将来的远程系统维护和远程操作控制以及系统整体性能的需要,我建议公司将系统后台应用部分移植到以SUN系统为主的UNIX系统上来,这一建议得到了公司的支持。
我们的服务内容提供商是各式各样的,处在不同的行业,有不同的应用系统在运行,对UNIX、WINDOWS、WINDOWSNT、LINUX、NETWARE等都有应用,是一个多平台系统。
为对这样一个多平台、多应用、长期持续开发的系统选择一个良好的体系结构和开发方式,将决定在将来的开发实践中SMASP的质量、连续可用性、可升级维护性、可扩展性、开发工作量和投资等各项指标。
经过反复考虑,我们将整个系统划分为各个独立的组成对象,各对象独立工作又相互协调来完成系统的功能,这样各个独立的对象就形成了系统的组件。
在这些组件中,有些是SMASP内通用的,其功能定义在系统内长期稳定;也有面对不同ASP(服务内容提供商)的各式各样的组件。
这些组件的开发工作均相对独立,互不干扰,因此可以实现系统的无代演进。
创建复用资产和复用组件。
通常可以被复用的资产是在领域内通用性比较好的对象。
通过深入的分析,我们决定建立短消息增值应用系统平台MIS Platfom。
MIS Platfom本身是由多个组件构成的多层次的、组件化的体系结构,在他上面运行的ASP的各种应用也可看作MIS Platfom的各个组件。
MIS Platfom的体系结构,各组件的详细定义,接口定义,专化规范,大量代码以及各部分的文档都是潜在的可复用资产。
复用资产和复用组件之间有一定区别,复用资产的范围相对广泛,而复用组件则更为具体,通常指可以直接嵌入到目标系统内或独立运行以完成某一特定功能的程序模块或对象。
并不是所有可复用资产都可以制作成复用组件的,在划定了复用资产后还要进一步提炼,如我们在MIS Platfom中创建的基本表管理组件、索引管理组件、TCPIP通信组件、接口组件、加密组件等,都具有很好的通用性。
通用接口的定义。
在组件式开发中,由于系统是依靠预制的或独立运行的组件协同工作来达到系统功能目标,各组件之间对信息的交换就成为必然,而要使各组件之间顺利交换信息,就需要定义一个各组件都能解析的通信接口。
在我们的系统中SORBA(短消息对象请求代理结构)承担了这个角色,他的定义能为MIS Platfom中所有组件识别和解析,成为组件协同工作的纽带。
SORBA的定义要考虑到独立于平台、独立于操作系统、独立于编译系统、独立于开发工具,因为在这个应用范围广大的多平台、长期持续开发的应用系统中,我们无法保证大家都使用相同的开发工具,即使开发工具相同,也不可能保证通信的数据结构绝对不发生改变,因此SORBA的定义的独立性和灵活性就相当重要。
在各种平台下实现组件。
由于我们的系统是多平台的,所以复用组件也需要在多平台下实现。
而目前大家讨论得多的如COM、CORBA、ActiveX等是以WINDOWS为平台的,WINDOWS能够提供给组件的实现方式为DLL或OLE技术。
而我认为,这个理解是狭隘的,组件可以以多种方式在多种平台下实现。
在WINDOWS系统上除了DLL和OLE外,还可以使用静态连接、消息队列等方式来实现;在UNIX上可以采用静态连接、消息队列、共享内存等技术来实现。
可以看出,在UNIX和WINDOWS(2000以上版本)上均提供了消息队列。
MIS Platfom中独立运行的组件是通过消息队列联系起来的,在UNIX和WINDOWS下均采用这个机制,如加密组件和通信组件之间、短消息处理中心和通信组件之间、通信组件和ASP应用组件之间均通过消息队列通信。
而嵌入式组件如基本表、索引、SORBA接口协议等组件在UNIX下的实现采用的是静态连接技术,在WINDOWS下采用静态连...
有没有什么远程桌面连接的组件可以集成到公司软件里面?
Atomsphere 【Java开源 RSS组件包】Atomsphere是一个java包用于创建和修改atom 1.0 feed。
ICEfaces 【Java开源 AJAX开发组件】ICEfaces是一个基于Ajax的JSF开发框架。
ICEfaces原本是一个商业产品,现已开源基于Mozilla Public License发布。
它提供一整套完整的Java EE应用程序开发组件,能够帮助开发人员用纯Java(not JavaScript)快速开发瘦客户端胖互联网应用程序(Rich Internet Applications:RIA)。
可通过其提供的一个在线Demo体验一下ICEfaces的强大组件。
CrossFTP Server 【Java开源 网络服务端组件】CrossFTP Server是一个跨平台,高性能,可配置,安全的FTP服务器.它提供一个易于操作的GUI来方便用户配置服务器参数。
SweetDEV RIA 【Java开源 AJAX开发组件】SweetDEV RIA是一整套用于开发Rich GUI的Java/J2EE Ajax widget。
BZByte EZAjax 【Java开源 AJAX开发组件】BZByte EZAjax是一个开源的Ajax Web框架。
BZByte Ajax框架采用服务器端的Java来创建DOM而不是通过web浏览器的JavaScript。
该框架的所有更新都是GUI驱动,所以无需担心暴露应用程序的代码和远程接口。
GUI更新快速并且不依赖终端用户计算机的快慢。
MGTalk 【Java开源 网络客户端组件】MGTalk是一个适用于J2me midp2.0平台(midlet)的Jabber客户端,支持Google Talk。
经测试MGTalk可以运行在Nokia series60/Siemens/Benq移动电话之上。
Clean 【Java开源 AJAX开发组件】Clean一个开源的Ajax引擎,一组简化AJAX开发的高级接口。
此处Clean还集成两个开源项目Google AJAXSLT:为Clean添加XSLT支持。
Paul Johnstone(JavaScript实现MD5与SHA1算法的开源项目):为Clean添加对安全AJAX请求的支持。
Salto Framework 【Java开源 AJAX开发组件】Salto Framework是一个基于Ajax,Struts与J2EE技术的框架。
GWanTed 【Java开源 AJAX开发组件】GWanTed是一个让你可以在web页面(可以采用任何脚本语言开发)直接调用GWT widget,而不是用Java编码实现的开源项目。
此外GWanTed还提供一组增强的功能包括错误管理,数据管理,国际化支持,面向业务逻辑开发,提供一些用GWT开发的widget如:跨平台的Flash播放器widget,可交互的Chart widget等。
iText 【Java开源 PDF组件包】iText是一个能够快速产生PDF文件的java类库。
iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。
它的类库尤其与java Servlet有很好的给合。
使用iText与PDF能够使你正确的控制Servlet的输出。
EJBCA 【Java开源 网络服务端组件】EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。
EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。
Laszlo 【Java开源 XML UI组件】利用OpenLaszlo免费平台可以快速地,简单地开发漂亮Web 应用程序。
这些Web应用程序可以运行在当前任何流行的浏览器与桌面操作系统。
它只需要一个XML文件。
【IDE4Laszlo:Eclipse下的辅助开发工具】qooxdoo 【Java开源 AJAX开发组件】qooxdoo是一个功能强大基于JavaScript GUI工包,它让你可以用JavaScript来开发类似于VB/Delphi风格的具有Ajax功能的web2.0应用程序。
qooxdoo具有客户端浏览器检测功能,具有浏览器抽象层,可以无差别的创建跨浏览器的Web应用程序,它提供方便的调试接口,具有事件管理、聚焦管理、定时器、边框和对象属性等特征。
它提供一组窗体组件并扩展了布局,它还提供跨平台的png图形透明支持功能。
此外,qooxdoo提供一个原子组件,你可以在其基础上开发你自己的组件。
Cindy 【Java开源 网络客户端组件】Cindy是一个强壮,可扩展,高效的异步I/O框架。
支持TCP,SSL-TCP, UDP和Pipe。
RCFaces 【Java开源 AJAX开发组件】RC Faces开源Ajax JSF类库,它提供一个用于创建下一代web应用程序的组件集。
RC Faces使用AJAX技术与面向对象的JavaScript API来构建动态页面。
RC Faces提供的组件包括tab,sortable datagrids,菜单,文本输入框,树,日历等。
IRClib 【Java开源 网络客户端组件】IRClib是IRC协议的一个纯Java实现,支持SSL连接,兼容RFC1459与RFC2812。
同还提供一个基于IRClib开发的IRC客户端moepII。
有不需要编程而直接添加组件就能生成APP的软件吗,我想弄个APP?...
软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些模块之间的相互作用就形成了系统的所有功能。
所谓模块是指可组成系统的、具有某种确定独立功能的半自律性的子系统,可以通过标准的界面和其他同样的子系统按照一定的规则相互联系而构成的更加复杂的系统。
每个模块的研发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个“黑箱”,但是有一个或数个通用的标准界面与系统或其他模块相互连接。
在软件的模块化开发过程中,把一个源代码的结构分割成一个元系统和一系列的模块。
元系统指的是一个能够保持系统运转的最小的系统。
模块是一个较大系统的独特的部件,它能够由设计者独立设计出来,同时又可以作为一个整体在系统中运转。
把一个大系统切割成互相独立的不同的小系统,可以使一些并不是经常见面的开发者减少必要的交流次数。
另外,一个旧版本的模块可以被新版的模块所替换,同时却又不影响整个系统的运转。
这样,在新模块中所增加的功能就可以及时在现存的系统中体现出来,同时也不需要更改系统中的其他模块。
高度模块化的源代码结构给软件开发者和使用者均带来了极大的好处。
开发者可以对具有某种特定功能的模块进行独立开发而不需要花时间去协调与其他模块之间的关系。
并且模块化开发不仅允许模块之间的水平开发,而且可以通过对类似模块之间的创新和竞争(开发新的模块或者对原有的模块进行改进)充分改善系统的功能。
另外,作为最终的用户来说,在安装系统的时候可以就个人的需求与偏好选择适合自己的模块。
模块化是复杂系统的一个共同特征,模块化的代码结构是由松散的组件构成的,是对一个系统完全意义上的分割,而不像完全集成的代码,各个组件之间存在很强的依赖关系,并不是完全通过界面来交换信息。
总结:第一, 把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某一模块的开发,一方面实现了劳动的分工,另一方面也提高了自由软件开发的效率。
基于模块化的性质,每个模块在开发出来以后都可以通过一个被称作是内核的原系统进行信息交流,发挥整个模块的功能,同时也并不会影响其他模块功能的发挥。
而且在各个不同的模块整合在一起后,由于外部性的存在,会使整个系统增加的功能要超过该模块本身的功能。
在此过程中实现了价值的分割与整合。
第二, 对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。
第三, 在非模块化的软件开发过程中,存在着严重的“搭便车”现象,当一个开发者选择参与开发,其余的开发者就会选择“搭便车”,最终会导致软件的供给不足;在基于模块化的开发过程中,所有的开发者都更倾向于参与开发不同的模块,从而实现整个系统的开发。
MIS软件开发中的组件模式开发比较复杂,主要的阻力不在代码的实现过程中,因为这个工作通常只应该占据软件开发工作量的30%,而对业务需求的深度剖析、业务子系统的划分和业务组件的规划会占据约40-50%的工作量。
这些工作体现在设计阶段主要是对业务的广度、深度分析,把业务领域的对象元素进行细化,将业务操作划分为原子性功能,以此为基础构成业务组件,进而形成模块和子系统,同时业务操作之间的约束则需要逻辑化(代码系统可识别的逻辑);在此过程中,原系统也就形成了,它便是在业务领域中必须的组件、模块和子系统的集合;外延的组件在原系统上通过组合或热差拔即能够满足不同规模、深度、特性的业务模式运转。
电子发票开票软件为什么提示没安装组件接口
整个ACCP课程学习完成后,要求: 在开发技能上:1. 核心技能:能够参与到企业软件开发项目的全部过程2. 核心技能:运用HTML/JavaScript/CSS技术实现标准、规范的客户端静态和动态效果3. 核心技能:用JavaEE JSP/Servlet/JavaBean的结构来实现MVC模式,把客户的业务需求转化为计算机中的Web应用系统4. 核心技能:基于Struts/Spring/Hibernate(SSH)集成框架技术开发多层企业级应用5. 核心技能:使用ASP.NET和组件技术开发和部署三层结构的企业级应用系统6. 核心技能:在Java或者.NET环境中,能够运用Ajax提升客户端效果、运用WebService技术实现系统级调用在职业素质上:1. 树立正确的就业态度和良好的职业心态2. 通过简历和面试推销自己3. 职业人必备素养:职场礼仪、职场沟通和执行力能够胜任的工作岗位包括:Java(JavaEE)工程师.NET软件工程师外包开发工程师网站设计和开发工程师数据库工程师ERP/CRM/OA/B2C开发应用工程师系统分析设计工程师文档工程师欢迎追问
关于组态软件的设计与开发
什么是组态? 在使用工控软件中,我们经常提到组态一词,组态英文是“Configuration”,其意义究竟是什么呢?简单的讲,组态就是用应用软件中提供的工具、方法、完成工程中某一具体任务的过程。
在组态概念出现之前,要实现某一任务,都是通过编写程序(如使用BASIC,C,FORTRAN等)来实现的。
编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。
组态软件的出现,解决了这个问题。
对于过去需要几个月的工作,通过组态几天就可以完成。
组态软件产生的背景 “组态”的概念是伴随着集散型控制系统(Distributed Control System简称DCS)的出现才开始被广大的生产过程自动化技术人员所熟知的。
在工业控制技术的不断发展和应用过程中,PC(包括工控机)相比以前的专用系统具有的优势日趋明显。
这些优势主要体现在:PC技术保持了较快的发展速度,各种相关技术已经成熟;由PC构建的工业控制系统具有相对较低的拥有成本;PC的软件资源和硬件资丰富,软件之间的互操作性强;基于PC的控制系统易于学习和使用,可以容易地得到技术方面的支持。
在PC技术向工业控制领域的渗透中,组态软件占据着非常特殊而且重要的地位。
自动化软件 首先,自动化软件主要包括人机界面软件(HMI),像Intouch、iFix、组态王等;基于PC的控制软件,统称软PLC或软逻辑,像亚控的KingAct以及即将推出的组态王嵌入版、西门子的WinAC等;还包括生产执行管理软件,许多专家也将这一类软件归为MES(Manufacturing Execution System),像Intellution公司的iBatch、Wonderware公司的InTrack等,另外,与通用办公自动化软件相比,自动化软件还应包括相应的服务。
其次,自动化软件主要具备如下功能及特征:工业过程动态可视化;数据采集和管理;过程监控报警;报表功能;为其他企业级程序提供数据;简单的回路调节;批次处理;SPC过程质量控制;符合IEC1131-3标准。
什么是组态软件? 组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。
组态软件应该能支持各种工控设备和常见的通信协议,并且通常应提供分布式数据管理和网络功能。
组态软件指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各种硬件厂家的计算机和I/O产品,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、硬件的全部接口,进行系统集成。
随着它的快速发展,实时数据库、实时控制、SCADA、通讯及联网、开放数据接口、对I/O设备的广泛支持已经成为它的主要内容,随着技术的发展,监控组态软件将会不断被赋予新的内容。
对应于原有的HMI(人机接口软件,Human Machine Interface)的概念,组态软件应该是一个使用户能快速建立自己的HMI的软件工具,或开发环境。
在组态软件出现之前,工控领域的用户通过手工或委托第三方编写HMI应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增加功能都受到严重的限制。
组态软件的出现,把用户从这些困境中解脱出来,可以利用组态软件的功能,构建一套最适合自己的应用系统。
组态软件是有专业性的。
一种组态软件只能适合某种领域的应用。
人机界面生成软件就叫工控组态软件。
其实在其他行业也有组态的概念,人们只是不这么叫而已。
如AutoCAD,PhotoShop,办公软件(PowerPoint)都存在相似的操作,即用软件提供的工具来形成自己的作品,并以数据文件保存作品,而不是执行程序。
组态形成的数据只有其制造工具或其他专用工具才能识别。
但是不同之处在于,工业控制中形成的组态结果是用在实时监控的。
组态工具的解释引擎,要根据这些组态结果实时运行。
从表面上看,组态工具的运行程序就是执行自己特定的任务。
虽然说组态就是不需要编写程序就能完成特定的应用。
但是为了提供一些灵活性,组态软件也提供了编程手段,一般都是内置编译系统,提供类BASIC语言,有的甚至支持VB。
组态软件的组成、功能和特点 组态软件组要包括人机界面软件(HMI)、基于PC的控制软件以及生产执行管理软件。
组态软件的功能:(1)工业生产过程的动态可视化控制;(2)生产过程中生产数据的采集和管理;(3)生产过程监控报警;(4)报表功能;(5)基于网络数据的上传和相应控制。
组态软件的特点:(1)延续性和可扩充性,用通用组态软件开发的应用程序,当现场(包括硬件设备或系统结构)或用户需求发生改变时,不需作很多修改即可方便地完成软件的更新和升级;(2)封装性(易学易用),通用组态软件所能完成的功能都用一种方便用户使用的方法包装起来,用户不需掌握太...
关于软件开发开发一套软件需要十几万元费用,请问这些费用一般都用...
软件开发属于智力劳动,其成本主要是人力成本,这里说的人力不同于传统意义上的劳动力,软件开发对人的能力水平要求很高,100个初级程序员加起来可能还不如一个技术娴熟的高级程序员,一个公司如果没有几个水平比较高的技术骨干,基本很难形成自己成熟的产品,那么这个公司基本也就很难维持下去,因为这样的公司每次接到一个项目都要重头来做,导致成本居高不下,自然没办法跟成熟的软件公司进行竞争。
一般说来,一个软件公司刚成立的时候肯定是要往里贴钱的,即使有项目支撑,但是为了竞争到项目,往往报价会比开发成本还要低,但是一旦你形成了自己成熟的产品,那以后发展就会越来越顺利,因为很多项目都是类似的,以后接到的项目只需对现有的软件进行简单的定制即可,因此做软件公司一般是先投入后产出,先赔钱后赚钱,如果最终不能形成自己的核心技术和产品,那这样的软件公司通常是要亏钱的,直到最后关门大吉,这里也奉劝想投资软件公司的投资人,一定要三思而后行,最好能找到一位懂技术、项目经验丰富的合伙人。
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省漳州市 -
给我们发邮件
E-mail:[email protected]
在线沟通