SunshineAnywhere企业软件开发平台软件白皮书.doc_第1页
SunshineAnywhere企业软件开发平台软件白皮书.doc_第2页
SunshineAnywhere企业软件开发平台软件白皮书.doc_第3页
SunshineAnywhere企业软件开发平台软件白皮书.doc_第4页
SunshineAnywhere企业软件开发平台软件白皮书.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sunshine Anywhere 企业软件开发平台软件白皮书产品名称Sunshine Anywhere 企业软件开发平台软件白皮书版本号V1.1发布日期2006-5-26软件开发商 注:此文档属2006-05月份发布,属于当时毕业论文,如有引用其它文献词汇或段落,请指明,再进行删减.开源发布日期:2010-01-30目录一、创意说明31.1 创意设计背景31.2 名称解释31.3 参考文献4二、 软件业面临的问题52.1 开发速度缓慢、开发周期难以控制52.2 软件需求的急剧扩大62.3 我们需要一场软件工艺化的革命6三、 软件工艺化产品SAP-271、软件工艺72、SAP-2的架构8 SAP-2基础平台组成9 SAP-2 Designer工具组成9 SAP-2方法论模板组成93、SAP-2的产品组成94、面向变化的可扩展构架10 开发阶段的架构扩展11 实施阶段的架构扩展11 运行阶段的架构扩展125、面向业务的组件思想126、EAI解决方案137、基于SAP-2基础平台的应用系统147.1 体系结构147.2 应用系统的架构优势157.3 系统功能特点15四、如何使用软件开发平台171、 应用系统的配置要求172、 开发人员技术要求173、如何使用软件开发台17附件:181、企业软件开发平台现有应用案例182、企业软件开发平台开发过程始末183、国内做软件平台的同类企业列表184、企业软件开发平台自学向导手册185、企业软件开发平台理论基础手册18一、创意说明1.1 创意设计背景Sunshine Anywhere 企业软件开发平台,是团队成员在三年多软件开发的过程中,对以前经验的一种总结,也是对软件开发方法学的一种反思,在经过三年的软件开发过程,其中经历了大多国内软件公司所经历的问题,软件人员所面临的问题。软件驱动引擎方法的实现,也是在一个比较偶然的情况下经过测试,并且成功的,其后的近两年时间,完全在发展与完善软件的驱动引擎,到现在软件的驱动引擎己经比较稳定,且己经可以对常见的软件需求进行驱动化分析与转换。在近半年的时间里面,我们又发展出一套用户界面接口,用以实现用户与驱动引擎之间的交互,方便用户定义出自己所需要的并且可以被驱动所解析的模型,实现了软件平台开发的各个层次需要。1.2 名称解释软件工艺化:用工艺学来比喻软件开发,这可以看成是对软件开发的一次追根溯源:优秀的软件开发者们一直都知道,编程的确就是一门工艺技巧。不论软件开发者拥有多少纷繁芜杂、晦涩难懂的知识,但最终左右着应用程序开发的仍是那种不可言说的感觉和经验。举个最简单的例子:也许有人能够了解Java语言所有深奥幽暗的技术细节,但除非这个人能培养起自己对于软件的审美感觉,否则他永远无法真正精通应用程序的开发。而与此相反,一旦某个人获得了那种软件开发的感觉,特定的技术细节就变得几乎无关紧要了。优秀的开发者总是在不断地学习、使用最新的技术和技巧,对于他来说,学习一门新的技术只是软件开发者生涯中的家常便饭而已。软件构件化:软件构件化是软件产业走上工业化道路的一个重要标志,正引起产业界越来越多的关注。在全球进入互联网时代的今天,软件需求快速增长,软件市场竞争激烈,这使得软件开发方法必须朝着实用化和构件化方向发展。构件化包含了研发方法、技术、构件,以及基于构件的产品、工具和环境。还涉及可复用资源、组织管理、知识产权保护、标准制定、推广和市场运行机制等,并且在每个环节都可以有产业价值的提升。构件化有着潜在而广阔的市场与发展空间,对软件企业是新一轮的机遇与挑战。软件四化:所谓软件四化就是构架平台化、组件业务化、编码自动化和管理工厂化。这四大部分既是独立的,又是相辅相成的,它们共同协作,完成软件工艺化的整体功能。其中,构架平台化解决的是公用工程的问题,组件业务化解决了产品优化策略的问题,编码自动化解决了产品原材料的自动化生产与配送的问题,管理工厂化解决了生产过程中的管理问题。将一个先进的工艺配以工具来辅助实现,这就是一个产业走向工业化、工艺化的过程。MDA:是“模型驱动构架”(Model Driven Architecture)的缩写。它是由OMG定义的一个软件开发框架。其关键之处是,模型在软件开发过程中扮演了非常重要的角色。在MDA中,软件开发过程是由对软件系统的建模行为驱动的。UML(统一建模语言): 是为软件系统的制品进行详述(specifying)、形象化(visualizing)、构建(constructing)、文档化(documenting)的一种语言。对于商业模块和其他非软件系统,UML描述是一个优秀的成功地提供大而复杂模板的工程实施的集合。SAP-2:Sunshine Anywhere Platform 企业软件开发平台 Version2.0,简称:SAP-2。第一个版本是在2004年底成形,但不具备商业应用价值。1.3 参考文献1 软件工艺(中文版) Exploring Requirements: Quality Before DesignSoftware Craftsmanship(著) 熊节(译) 人民邮电出版社2 软件工艺的革命 汪须忠 计算机世界报 第10期 C4、C5网络来源:/05/0510/d/0510d02_1.asp3 自动分析器 AlexAngel http:/AlexAngel/主要在词法分析器,语法解析方面提供一种可行的解决方法4 上海软件构件化发展研究报告2003-2004 上海市科学技术委员会 复旦大学出版社5 虚拟机的设计与实现C/C+ 机械工业出版社Bill Blunden 杨涛译Wordware Publishing,Inc二、 软件业面临的问题软件业自诞生起,就一直处于快速的发展、进化过程中。从编程语言来看,历经了机器语言、汇编语言、Basic、C、C+、Java等多代;从系统结构来看,经历了Mainframe(大型机)、File/Server、Client/Server,到目前的Web Application(B/S应用);从开发方法来看,也有面向过程、面向对象、快速迭代等多种。现阶段开发一个应用系统,无论是用图形化方式,还是代码方式,只是一个“把已知业务逻辑转化成应用系统代码”的过程,无论哪种方法、哪种技术,都是可实现的,所差别的,只是实现一个信息化应用系统的开发效率、产品质量和对变化的适应程度而已。 2.1 开发速度缓慢、开发周期难以控制 根据Standish Group Sta94的统计,美国公司每年投资约175,000个软件开发项目,投资额约为2,500亿美元。这些项目中31%由于质量问题而被取消,经济损失约为810亿美元;53%平均超出预算189%,经济损失约为590亿美元。只有16%能够在预算内按计划完成,但是平均只实现了原来规划的功能的42%。 社会的发展,对企业的生存提出了越来越严格的要求,每个企业都在应对市场的快速变化中,不停地调整着自己的业务方向、组织结构、管理模式和业务流程,所以,企业对管理软件的要求,集中体现为“快速实现,适应变化,降低成本,创造多赢”。而传统的软件开发过程,需要从需求调查、需求分析、功能设计、系统设计,到编码实现、测试、实施,甚至应用系统的维护等的全过程。每一个过程,都是针对某一时刻的企业情况进行静态的调查、分析和实现,等到软件正式实施的时候,企业的管理,或企业所面临的问题,已经转变了。 由此,我们说,软件业是一个高级劳动力密集型的手工作坊,我们所做的语言、开发方式,都只是“工具”的改进,而不是管理的改进,还无法形成软件业的规模化、工业化生产。 2.2 软件需求的急剧扩大软件应用的普及,为用户带来了巨大的价值。我们可以从几个方面看到这一价值的体现,比如,电脑应用的面越来越广,各行各业都已经在使用电脑;电脑硬件价格全线下调,普及率越来越高;新一代已经成为“拇指一代”、“互联网一代”,他们对于电脑应用的熟练程度和依赖程度已经远高于过去的时代新的应用类型、新的应用平台、新的终端平台层出不穷,软件在社会基础结构中的作用越来越大。 而随着软件需求的扩大,我们也将会发现,集成的问题、实时响应用户变化的问题、软件质量与成本的问题都将成为阻碍软件业发展的难题。如果软件开发能力没有相应的增长,我们将面临软件总体开发效能远低于社会需求的局面。 2.3 我们需要一场软件工艺化的革命 从传统产业的发展对比中,我们发现,任何一个产业,都有从手工作坊,到工业化生产的发展过程,而目前软件行业,正处于这个变革的关键点上。 过去几十年来,我们在工具和软件技术上的努力,培养了大批合格的开发人员,但仅凭人员的增加,是无法解决软件产能的问题。正如一个人十个月的工作,不可能用十个人一个月来完成一样。低水平的重复增加人力,只会增加项目的成本,甚至导致质量的下降,而不可能实现软件产业的产能突破。 对比传统产业的发展历程,并对软件业目前的技术发展、用户需求进行分析,我们认为,当前应用软件行业正处于技术走向成熟的发展阶段,在这个阶段,其主要矛盾已经从“有无新技术”向“工艺的好坏”转变。所以,解决问题的出路应是改变我们的方法和实践,我们必须进行一场软件工艺的革命! 单点科技技术公司在上世纪末、本世纪初开始在软件开发工艺方面的研究和攻关,将过去20年企业软件开发的经验沉淀下来,形成新一代应用软件开发工艺的系统快速架构工具SAP-2 (Sunshine Anywhere Platform Version 2.0)。 三、 软件工艺化产品SAP-21、软件工艺 在传统产业的过程系统工程理论中,工艺的范畴包括生产过程、原料/零组件配送流程、操作参数优化、公用工程等四个主要方面。传统产业对这几个方面进行改造革新,从而降低产品的成本和提高产品质量。软件工艺同样由四个主要方面组成: 传统产业 软件产业 生产过程 基于过程的工厂化操作 原料/零组件配送 业务组件的来源自动生成 操作参数优化 业务组件粒度的优化;业务流程的优化 公用工程 技术平台;业务通用平台 作为软件工艺的实践者,单点科技企业级应用系统基础平台SAP-2以可视化的界面,定义基于单点科技基础平台的各种业务组件,并快速生成应用系统。用软件工厂的概念,实现软件开发的流水线,以数据表和流程作为工厂的原材料,并将原材料生成半成品(业务组件),最后通过组装器自动生成应用系统。基于SAP-2生成的应用系统是国际开源的LAMP(Linux+Apache+Mysql+PHP)应用,同时还具有源代码级的开放性、多级安全机制、支持国际化等特点。 针对软件工艺的四部分,提出了基础构架平台化(公用工程)、组件业务化(操作参数优化)、业务组件自动化(原料/零组件配送)和管理工厂化(生产过程),并把这个“软件四化”集中体现在单点科技企业软件开发平台SAP-2产品中。 2、SAP-2的架构 软件工艺所考虑的是整个软件生命周期的问题,是如何以最低的成本将原始需求转变成可以解决业务问题的最高质量的软件系统问题。SAP-2为用户提供简便的需求输入机制,处理后生成基础业务组件,经由自动化组装机制,输出为具有完整业务功能的业务组件(服务)。生成的行业业务组件,可以进入共享服务库,形成技术平台之上的业务基础平台,从而大大提高各种应用软件系统的开发质量和开发效率。 SAP-2管理工具应用软件系统行业业务解决方案框架平台SAP-2基础应用平台在开发、实施,到上线运行的整个生命周期中,都需要过程管理,而SAP-2的业务组件生成器和应用系统组装器,就是完成生命周期管理的辅助工具。 SAP-2的系统构架如右图所示,由SAP-2基础平台、SAP-2 Designer工具和方法论几部分组成。 SAP-2基础平台组成包括技术构架、技术组件、可共享的基础业务组件,如组织结构和角色权限处理引擎、业务流程引擎、商业智能动态分析引擎、统计图形引擎、业务规则引擎等等。还有应用统一配置管理、菜单管理等系统管理功能。 SAP-2 Designer工具组成 包括业务组件设计器(KCG)、业务流程设计器(KAD)、打包工具、开发环境、CVS源代码管理工具等,完成了软件生命周期的全过程管理。 SAP-2方法论模板组成 对于过程管理中目前还无法沉淀成自动化工具的部分,SAP-2采用文档模板的形式向用户提供方法论原始用户需求文件输入处理应用软件业务组件自动化生成与组装输出处理共享Service服务库(业务组件)单点科技基础应用平台SAP-2完整可运行应用系统软件生命周期过程管理3、SAP-2的产品组成SAP-2由业务基础平台、业务组件和应用的生成器以及方法论三部分组成。 在基础平台中,包括了SAP-2的技术构架、技术组件以及各种可共享的基础业务组件,如组件结构和角色/权限处理引擎、业务流程引擎、商业智能动态分析引擎、统计图形引擎、业务规则引擎、应用管理和配置管理等组成。相当于软件工艺的公用工程部分; 在业务组件和应用的生成器中,提供了面向业务的组件描述和自动化生成,以及基于业务流程的应用系统自动化组装和快速生成,和其它的一些开发管理工具。它们相当于软件工艺的原料/零组件配送部分; 对于无法用软件工艺自动实现的部分,SAP-2提供完整的方法论。在未来的发展中,将逐步形式化,并实现到SAP-2中去。 DBMS数据库管理系统应用集成平台页面控制器统计图形引擎智能分析引擎业务流程引擎业务规则引擎业务组件生成器(SCG)应用系统自动化组装器应用系统实施和管理器外部应用系统用户其它系统但是,软件工艺只是带来软件开发的成本的降低和质量的提高,并不会完全替代软件开发人员的工作。软件开发永远不会简单到懒人们所希望的那种纯机械化、完全自动化的程度,而只是不再把杰出开发人员的时间浪费在机械琐碎的任务上。 4、面向变化的可扩展构架与传统产业不同,软件开发所面对的需求不是静止的,而是变化的,软件是一个动态的和不断完善的制造过程。软件的变化一般体现在三个方面,首先是由于系统实现过程中,技术人员所做的系统分析结果与实际企业的需求之间的差异,是一种“人为差异”的“假性变化”;其次是企业间的需求差异,即使是同一行业中不同企业,对应用软件的需求也是不一致的,这是“横向变化”;第三种是同一企业在发展的不同阶段中,随着业务的发展变化,对信息化产品的需求也相应发生了“纵向变化”。SAP-2在三个层次上满足了客户应用系统的变化需求: 开发阶段的架构扩展:源代码级的开放,自动生成代码和手写代码的完美结合。 对于大型应用系统来说,仅有良好的MVC架构还是不够的,还必须满足手工扩展和二次开发的需要。SAP-2自动生成的每个业务组件自动带有一个标准的业务框架,它分为几个层次:一层是自动生成的模型文件等,这一层代表的是SAP-2可抽象的业务逻辑,是根据业务组件自动生成的;第二层是提供给业务组件内业务逻辑扩展用的,是用户可以自己定义的手写代码扩展机制;第三层是用于业务组件间的业务相关调用接口,被称为Business Manager,它负责和其它业务组件之间的接口,符合Web Service的标准。这种分层结构有利于功能的扩展和后期的代码维护,使不同组件和不同模块的开发更规范化。同时,通过这种设计体系,就形成了一种平台自动生成的代码、系统开发商手写代码、应用开发商二次开发扩展等完整的二次开发构架。在这个构架中,自动生成的代码优先级是最低的,但它可以反复多次地生成,而不会对开发二次修改的代码造成任何影响;系统开发商可以直接通过手写代码的方法,对类进行扩展;而应用开发商,也可以在没有源码的情况下,对已有业务组件在目标代码级进行扩展。 浏览器控制器视图模块模型数据库 实施阶段的架构扩展:面向业务组件的扩展和配置技术,实现应用系统的功能延伸。 无论是系统开发商,还是应用开发商,他们扩展的部分在数据库信息存储、业务逻辑处理等技术层面上,都是与原业务组件相对独立的,而与原有组件在业务功能上则自然成为一体。这样,既避免了新扩展与原有组件之间的可能冲突,大大降低二次开发的难度与维护成本,对于应用系统的终端使用客户又是透明的。 运行阶段的架构扩展:引擎驱动的企业模型处理、业务流程处理,组织结构和业务流程变化无需编写代码。5、面向业务的组件思想在过去的软件需求分析、系统设计与实现过程中,即使我们采用了组件化的开发、面向对象的设计,还是会发现,分析设计人员、程序员和用户之间,仍然无法沟通得很好,应用系统在交付用户使用时,仍然离用户的真实意图比较远。这是因为,提出需求的用户和系统设计的技术人员看问题的角度不同。什么是应用软件模块用户的眼光模块应用软件表示层业务逻辑层数据层开发人员的眼光模块模块业务对象业务对象用户是从业务的角度,提出应用软件是哪个职能范围的、有哪些应用模块、每个模块又有哪些子模块,这是一种“业务对象”的分析方法。而开发人员则是从技术的角度,架构是什么?数据库的结构是什么样的?表间关系是什么?业务逻辑如何编写这是传统的“组件”或“构件”思路。所以,用户和开发人员之间沟通起来很难。 单点科技SAP-2是一种面向业务组件的系统分析和设计思路。业务组件是在软件技术层对业务对象的一种映射,它封装了业务对象和程序构件,实现了内部功能的完整性、完备性,又和外部其它的业务组件保持着业务层次的低耦合度,是一种大粒度的组件思路,解决了开发人员和用户沟通上的困难。 另一方面,在传统的面向组件的应用系统开发中,开发人员仍然要在利用一个个分布在各个层次的、大大小小的组件来建立系统的过程中,完备地考虑到整个系统的架构,完成组件各层次之间,甚至同层次之间的关系处理,才能设计出一个完美的、性能优越的、稳定的应用系统。而这种知识,往往是一种隐性知识(tacit knowledge)范畴。隐性知识是一种个人体验式的经验沉淀,是高度个人化的,很难将它公式化,因此不易传达给别人。因而,整体系统的建设成本,会远超过使用组件所节省的效果。 单点科技业务组件架构,基于大型商用Web应用系统的经验和知识的沉淀,大大降低了传统组件技术中对开发人员的要求,同时,借助SAP-2工具的快速业务组件生成,解决了应用系统开发中基础组件来源的问题,从而大幅度提高了应用系统构建的效率和质量。 6、EAI解决方案 面向业务组件的软件工艺化思想,完美地解决了应用软件的“大粒度业务级组件复用”问题,同时,SAP-2的可组装结构,使得系统集成的难度大为降低。系统提供外部系统的WEB应用、可执行应用、脚本应用、数据库直接接口及WEB 服务等多种的接口方式。市场上主要财务、ERP 或其它应用系统,只要自身提供WEB 服务或其它接口标准,即可直接包装成接口组件,应用到SAP-2系统中来。其它任何J2EE 组件,.NET WEB 应用,外部可执行应用,脚本应用等都可以加入单点科技应用组件库,从而实现与在单点科技软件开发自动化生产线上开发的其它业务组件的集成。 单点科技EAI 提供下列三个层次的解决方案: 用户经历层(User Experience)的集成 单点科技软件开发自动化生产线生产的系统在同一用户管理和系统管理之下,流程与数据不存在孤岛问题。对于所有其它现成的B/S 系统,单点科技系统提供单点登录设置与管理,实现Portal层的用户界面集成。 数据同步层的集成 所有生成业务组件提供全方位的XML 数据定义和数据的XML 格式导入导出。系统提供远程WEB服务集成构架和数据的Subscribe/Publish 模式。同时,也支持局域网内的数据库层的批处理或单业务组件数据同步交换处理。 不同应用系统在流程层的整合 不同应用系统的流程整合是最高层次的系统集成。单点科技利用流程引擎驱动不同应用的动作和子流来解决一个大系统中不同子系统的流程整合问题。 7、基于SAP-2基础平台的应用系统 7.1 体系结构 SAP-2生成的应用系统完全符合LAMP的MVC 规范。 模型(Model)为单点科技业务层;视图(View)为表示层页面;控制器(Control)为单点科技的控制器和行为类。 当用户从浏览器向服务器提交httpRequest请求时,SAP-2中央控制器(Controller)先处理这一请求,结合系统的属性文件(Properties),选择和调用相关的动作控制器(action)。Action分析从httpRequest请求传入的每一个参数,然后执行必要的业务逻辑,通过Control Class访问/修改模型信息。动作完成后,控制中心准备好在浏览器界面要显示的数据,并加载基于该动作结果的HTML文件显示给用户。 7.2 应用系统的架构优势 完全基于B/S 结构、符合LAMP 规范,可部署在Windows、Linux、UNIX等不同的操作系统上,现有支持SQL Server 和MYSQL数据库系统 Web服务器群(Web Farm)设计,支持百万级并发用户访问,流量自动调整(Load Balancing),支持超大规模系统的7x24不间断安全运行,并可以使系统在超强负荷下达到最佳效率 支持乐观锁定,允许多个用户同时修改同一个文档(如订单,报价单等),提高终端用户的工作效率,支持超大系统(多用户)应用环境 7.3 系统功能特点 1 应用系统的稳定性和可扩展性 高质量、面向大应用系统的底层代码设计,使单点科技SAP-2开发出来的应用系统具有极高的系统稳定性和可扩展性,这些应用系统既可以在单服务器上运行,以满足中小企业的应用需求,也可以WEB服务器群上运行,以适应超大规模成千上万并发用户的大数据量需求。 2 对业务需求变化的自适应和流程不断完善 流程无关的引擎设计,使得单点科技SAP-2开发出来的应用系统对用户业务流程的适应性极强。用户流程改变,只需要对流程进行一些配置,或重新调整,不需要重写一行代码,即可满足需求。同时,用户也可以在系统中设置对流程的监督、效率评价等参数,定期或不定期地对流程参数进行统计和分析,发现流程中的非增值结点,从而为流程的不断完善提供准确的、完备的、可靠的数据分析依据,达到流程的不断自我完善。 3 多层次的安全保障 单点科技SAP-2提供了强大的系统安全保障策略。在多层次的外部安全设置之外,字段级的MD5数据加密技术,有效地防止来自系统内部的数据泄露;https安全网络传输,增强了系统的访问安全性;动态多层次职能管理、分布式管理员体系,在减少管理员工作量的同时,提高了系统的安全性;系统线程管理和日志功能,可以回滚访问者的身份记录;用户身份验证和数据保密,使不同的用户只能看到自己职能权限内的资料。权限可按角色及部门范畴设置,也可按数据条件动态设置。数据条件与角色权限的有机结合是单点科技SAP-2的创造。而由单点科技业务组件生成器生成的业务组件自动带有这些权限处理的功能,系统开发人员再也不用为大型企业的复杂权限设置而烦恼。 4 源码级的开放性和标准化脚本,降低开发人员的技术门槛 单点科技SAP-2在保持高质量的代码规范同时,向开发人员提供丰富的源码和标准化脚本,一方面可以为二次开发商快速培养自己的开发人才,另一方面也可以使高手们不受面向普通用户的图形化单点科技业务组件生成器、单点科技应用系统组装器的限制,自主发挥,开发出更加功能强大、更具特色的应用系统。单点科技SAP-2采用的脚本引擎都是标准化的,如Java script等,以尽量减少生产线本身

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论