尊蓝中间件技术原理说明

2017-11-27 15:26:48 admin1 531

      “尊蓝敏捷业务中间件平台(Skyland Agile BizLogic Platform,简称SABP)”是基于先进的业务流程管理(BPM)、面向服务构架(SOA)、数据挖掘(DM)和领域驱动设计(Domain-Driven Design)理念,实现WEB2.0界面的开发工具和业务组件热部署功能的敏捷业务应变的中间件平台。通过将自主研发的动态表单(BizLogic DynaForm)、动态视图(BizLogic DynaView)、动态页面流BizLogic Pageflow、BizLogic BPM引擎、动态数据报表(BizLogic DynaReport)和BizLogic Studio开发平台整合到高可扩展性构架中,提供数据实体、数据展现、业务流程、数据分析和开发部署一体化应用中间件,从而实现完全基于WEB的图形化编程的业务分析,应用开发和运行平台,使基于BizLogic中间件搭建的系统拥有灵活强大的扩展能力,客户无需懂得编写程序代码即可迅速实现业务重组和业务流程的不断优化,在一定程度上摆脱对软件提供商的依赖。
      该平台包括三大核心模块:应用运行引擎,业务开发平台和数据挖掘分析工具。使用的关键技术和原理有:
图片关键词1) 领域驱动设计(Domain-Driven Design,简称DDD):
Evans DDD是近期与SOA相提并论的两大重要技术思想,SOA是着重于软件集成方面;而Evans DDD才是着重我们软件开发上,在大部分情况下,软件开发的重要程度不亚于软件集成,但是因为软件开发方面开源力量冲击,软件集成上工业厂商利润最高,所以,工业厂商在媒体上SOA的宣传较多,工业厂商更多关心的是功能,而不会告诉你如何去把握技术理论的方向。领域驱动设计,才是软件核心复杂性应对之道。
软件设计有不同的方法,其中之一是瀑布设计方法。这种方法包含了一些阶段。业务专家提出一堆需求同业务分析人员进行交流,分析人员基于那些需求来创建模型并作为结果传递给开发人员,开发人员根据他们收到的内容开始编码。在这个方法中,知识只有单一的流向。虽然这种方法作为软件设计的一个传统方法,这么多年来已经有了一定级别的成功应用,但它还是有它的缺点和局限。主要问题是业务专家得不到分析人员的反馈信息,分析人员也得不到开发人员的反馈信息。
另一个方法是敏捷方法学,例如极限编程(XP)。这些方法学是不同于瀑布方法的一堆动作,产生背景是预先很难确定所有的需求,特别是需求经常变化的情况。要想预先创建一个覆盖领域所有方面的完整模型确实很困难。需要做出很多的思考,而且开始时常不能看到涉及到的所有的问题,也不能预见设计中某些带有负面影响或错误的部分。敏捷方法试图解决的另一个问题被称为“分析瘫痪”,团队成员会因为害怕做出任何设计决定而无所事事。尽管敏捷方法的倡导者承认设计决定的重要性,但他们反对预先设计。相反,他们使用大量灵活的实现,通过由业务专家持续参与的迭代开发和许多重构,开发团队更多地学习到了客户的领域知识,从而能够产出满足客户需要的软件。
敏捷方法也存在自己的问题和局限:他们提倡简单,但每个人都对“简单”的意义有着自己的观点。同时,缺乏了真实可见的设计原则,由开发人员执行地持续重构会导致代码更难理解或者更难改变。虽然瀑布方法可能会导致过度工程,但对过度工程的担心可能会带来另一种担心:害怕做出深度、彻底的设计。
图片关键词2) 业务流程管理(Business Process Management,简称BPM):
业务流程管理,是指根据业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。业务流程管理应该包括"建模-实施-监控-管理"等过程,要具备其所需的所有服务与工具才能叫做BPM。
现在的信息系统开发方式的缺点在于对需求表达不清晰、效率不高。在这种思维方式下流程被固化在系统中,企业不能随着商业环境的变化而方便迅速地改变业务流程,而企业环境的变化促使企业必须快速地调整业务来响应。实时性企业将敏捷地使用最新信息,以积极地消除其关键性业务流程中的管理与执行层面出现的低效率延迟。BPM的出现正是为了解决企业流程实时改变所带来的敏捷性、实时效果评估、资源整合与优化等问题,而这些问题是不能为传统的OA和工作流所解决的。
通过BPM,可以对业务流程进行自动化,并通过流程的分析及监控功能,对业务进行整合及计量,从业务角度、组织角度、IT角度都可得到可量化的改善效果,这种效果随着管理者通过BPM分析与优化流程,将越来越显著。
完整的BPM系统需由图形化流程设计环境、流程管理与监控、BPM引擎、使用者执行环境以及整合各种资源的底层框架等主要元素所架构而成。另外,由于BPM记录了业务流程的所有活动,可以对流程管理所需的关键性指标进行设置,向流程实施者及管理者提供实时而直观的业务、组织和个人的绩效数据,可以实现有效的客观性成果测定效果。
图片关键词3) 面向服务的体系结构(Service-Oriented Architecture,SOA):
SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性;另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而与此相对,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合系统的需求来源于业务应用程序需要根据业务的变动变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On Demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然SOA是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与SOA相似。
然而,现在的SOA已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于XML的语言(称为Web服务描述语言,Web Services Definition Language,WSDL)来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA中的接口描述语言(Interface Definition Language,IDL)可比了。
Web服务并不是实现SOA的唯一方式。前面刚讲的CORBA是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。因而,业务流还可以在SOA的设计中扮演重要的角色。
图片关键词4) 数据挖掘(Data Mining):
数据挖掘又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘”知识。数据挖掘分为:数据的抽取、数据的存储和管理、数据的展现等关键技术。
 数据的抽取
数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面的处理。在数据抽取方面,未来的技术发展将集中在系统功能集成化方面,以适应数据仓库本身或数据源的变化,使系统更便于管理和维护。
 数据的存储和管理
数据仓库的组织管理方式决定了它有别于传统数据库的特性,也决定了其对外部数据的表现形式。数据仓库管理所涉及的数据量比传统事务处理大得多,且随时间的推移而快速累积。在数据仓库的数据存储和管理中需要解决的是如何管理大量的数据、如何并行处理大量的数据、如何优化查询等。目前,许多数据库厂家提供的技术解决方案是扩展关系型数据库的功能,将普通关系数据库改造成适合担当数据仓库的服务器。
 数据的展现
在数据展现方面主要的方式有:
查询:实现预定义查询、动态查询、OLAP查询与决策支持智能查询;报表:产生关系数据表格、复杂表格、OLAP表格、报告以及各种综合报表;可视化:用易于理解的点线图、直方图、饼图、网状图、交互式可视化、动态模拟、计算机动画技术表现复杂数据及其相互关系;统计:进行平均值、最大值、最小值、期望、方差、汇总、排序等各种统计分析;挖掘:利用数据挖掘等方法,从数据中得到关于数据关系和模式的知识。
图片关键词5) 异步JavaScript和XML (AJAX):
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是Ajax实际上是由几种蓬勃发展的技术以新的强大方式组合而成。AJAX是Web2.0的核心技术。
传统的WEB应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
Ajax应用程序的优势在于:
 通过异步模式,提升了用户体验
 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
 Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载
 借住成熟的Ajax框架,使用丰富的Widgets组件可以使B/S应用系统的用户使用体验达到使用C/S应用系统的效果。
图片关键词6) 动态语言和元编程:
动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的JavaScript便是一个动态语言。除此之外如Ruby、Python、Groovy等也都属于动态语言,而C、C++等语言则不属于动态语言。
所谓的动态类型语言,意思就是类型的检查是在运行时做的,而静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#就是一个静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中。
静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。动态类型语言的优点在于方便阅读,不需要写非常多的类型相关的代码;缺点自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。
在SABP中,充分运用以上先进的设计思想和技术原理,集中体现为一个高度一体化的敏捷业务中间件平台。
 

尊蓝简介

尊蓝公司成立于2003年,专注于国内物业管理信息化领域,定位于物业管理信息平台产品供应商与服务提供商,是双软认证企业、国务院创新基金支持单位,拥有自主知识产权25项,产品销售遍布全国128个城市,拥有物业公司客户数量,超过1600家;经过多年发展,尊蓝已成为国内物业软件知名品牌。

了解更多

案例分享

联系我们