企业系统集成(EAI Enterprise Application Integrate)
- 2001年的设计
Web应用服务器应该支持 对象构建(Component),提供清晰的构建工作与管理模型
支持多服务器运行并且提供负载均衡功能,方便实施服务器故障转移
重视 服务器部署的速度和易用程度
数据库访问采用 数据库连接池技术
- 负载均衡分为2种,基于进程工作 与 基于线程工作
进程工作的弱点是:- 进程更消耗系统资源,进程本身转换时的开销会消耗更多的地址空间资源
- 创建子进程的内存开销更大,耗时更长,系统能启动的进程数要比能启动的线程数少,可并行处理能力弱
- 虽然进程是预先创建好的,而线程是动态生成的,进程这块要比线程优秀(但是可以使用线程池预先创建线程的方式来提高这块损耗)
- 成为当时标准的对象访问接口名称:JMS,CORBA,RMI,EJB,DCOM,HTTP,RPC,Restful API
- 设立专用会话服务器(保存所有会话信息)方式的优缺点
- 优点:会话信息保存在服务端安全,不会泄露用户信息,不会出现会话同步丢失问题,便于实现负载算法,加强容错能力(可以做mod负载到多台机器,一致性哈希实现安全)
- 缺点:
压力全部集中在会话服务器无法负载需要额外的一次内部服务网络通信,导致处理速度下降(现在的服务器性能这块不算问题)
- 2001年的设计
系统总体架构由 OA系统,集成化的MIS系统,数据处理与分析系统,网络管理系统
- 提高系统数据统计、分析和图形实时性
采用 Oracle 数据库,采用数据库连接池,采用缓存技术(js+dubbo+java+jdbc+oracle) - 初步模型使用SAS系统作数据处理与分析,但是却没有达到SAS的应用能力
SAS是一个统计分析系统,只有在长期运行后,积累大量的历史数据,才能发挥其统计分析的能力,而刚开机运行的系统,并不能快速体现SAS的能力 - 应用集成的基本步骤
- 系统平台集成
- 数据集成(不同数据库系统之间能转换和交换数据)
- 应用集成(构建装配,由中间件提供)
- 业务处理流程集成(工作流方式)
- 2003年的设计
EAI 集成建议采用 微服务或者SOA方式
- 企业应用集成会遇到哪些问题
系统选择技术不兼容,暴露服务接口定义不兼容,数据模型不兼容,业务流程不兼容- 异构数据库及数据接口规范一致性问题
- 实现手段多样性问题
- 应用系统多、复杂多变、风险不确定性
- 业务处理流程不统一
- 企业管理和组织问题
- 为什么选择J2EE作为EAI的集成平台
J2EE将系统进行分成,系统前后解耦,便于系统整合和扩展
J2EE具有平台独立性,在规范的开放性、灵活性、支持异构性和可移植性上,更有优势,安全性
J2EE定义了分布式环境中多层应用系统的体系结构,分为:表现层、业务逻辑层和基础设施层- 基础设施层要保持稳定,不要轻易变更
- 表现层不要混杂业务代码
- J2EE提供了哪些通信协议和标准规范
EJB,JDBC,RMI,JMS,JNDI,Java Servlet,JSP - Web Service有哪些技术
XML,SOAP,WSDL,UUDI,HTTP
SOAP 是一种通信协议=HTTP+XML+RPC
WSDL 是web服务的[SDK标准/接口定义]
UDDI 提供一种Web服务的发布、查找和定位方法
- Web Service哪些特性使之更快
web service 工具箱都提供了快速创建和部署规范的web service,并且一些web service工具箱还提供了图形化的流程设计器,能加快开发(web体系结构优点:高度通用性和易用性、完全的平台、语言独立、高度的集成性、容易部署和发布)
Web Service 使用标准的、规范的XML描述接口.
Web服务模型三种角色:服务器、服务请求者、服务注册中心
Web服务模型的操作:发布服务描述、查找服务描述、根据服务描述绑定或调用服务
- 2003年的设计
可视语言的语法采用图模式来定义,用XML表示,XML解析用DOM接口实现
- 为什么用图模式,为什么没有采用上下文无关文法
上下文无关文法采用的是形式化的表达方式,精确性高,逻辑推理能力强,
但是比较抽象,对非专业认识来说复杂
而系统的目标是将需求变动快速的用可视化方式描述
- 为什么用XML,而不用Lex和YACC
XML 简洁有效,易学易懂,开放国际化标准,高效且可扩充
实现不同数据的集成,使用于多种应用环境,客户端数据处理与计算,数据显示多样化,局部数据更新(xpath,namespace,xql)- XML使用XLL进行扩展链接
- XML使用XSL进行翻译,定义文档显示格式,将XML转成HTML或其他格式
- XML Schema定义了XML的逻辑结构,数据类型、可扩展性、更强表达
Lex和YACC编程复杂,与具体语言相关,难以理解。
XML具有简洁、易学易用、高效可扩展、开放的国际标准、独立于语言。
- 为什么用DOM而没有用SAX应用接口
系统目标是便于修改,所以DOM合适
SAX适用:
- 大型文件处理
- 只需要从文件中获取特定信息
- 想建立自己的对象模型
- 只能读不能修改
- 事件驱动
DOM适用:
- 在内存中建立文件树,树形结构,占用较大内存
- 需要对文件进行修改
- 需要随机对文件进行存取
- 2004年的设计
应用服务器要解决负载均衡、数据库连接池、高速缓存机制
- 为什么是数据库连接池技术?优势?
在系统启动初期,完成部分数据库连接并保存在内存池不释放,后续请求连接复用池内建立的数据库连接。
减少数据库的处理时间,有利于提高系统的整体性能和扩展性 - 应用服务器可以用哪些高速缓存?是如何改进性能?
数据库缓存 在本地缓存一份数据库数据
页面缓存 针对URL - 电商系统,选择一种应用服务器,技术和特征?