Contents
I. 企业中间件课程介绍II. 主要涵盖的内容III. 分布式计算的概念1. 分布式系统的定义2. 分布式系统的结构
IV. 分层网络协议(layered network protocol)1. 分层网络协议2. 信息在OSI模型中的传输
V. 中间件协议VI. 一些常见的企业中间件1. 常见中间件举例a. 面向交易的中间件b. 面向消息的中间件Messaging-orientedc. 过程的中间件Procedurald. 面向对象的中间件
2. Java Enterprise Edition
VII. 通用术语Terminology:N tier Systems N层系统VIII. 构建分布式系统的常见要求common requirements我们在构建分布式系统的时候,通常的的要求(要实现的目标):a. Resource Sharing资源共享b. Openness开放性c. Concurrency并发性d. Scalability可扩展性e. Fault Tolerance容错性f. Distribution Transparency分布透明性
I. 企业中间件课程介绍
这门课程是由英国纽卡斯尔大学计算机学院与Redhat共同开设的,意在使硕士研究生能够接触到企业级的中间件技术和应用。
II. 主要涵盖的内容
课程提纲提纲如下: 1.分布式计算概念的介绍 2. 分布式组件 (Enterprise Java Beans / CDI Managed Beans) 3. Web services 4. RPC中间件 5. Object oriented middleware (CORBA, Java/RMI, synchronous and asynchronous invocation) 6. Messaging middleware 7. Distributed object transactions & Extended transactions
III. 分布式计算的概念
1. 分布式系统的定义
A collection of independent computers that appears to its users as a single coherent system. 直译为: 分布式系统是一组独立的计算机,在用户看来是一个单一的一致系统。
每个host执行整个系统(范围内的)的组件并且运行(operates)一个分布式的中间件中间件允许组件(components)去协调他们彼此间的活动中间件和执行组件(executing components)提供给使用者一个抽象的单一整体的计算设备。(给开发者一种幻觉,好像他们在一个单独的系统上做开发)
一些使用分布式系统的公司及网站:维基百科参考链接
2. 分布式系统的结构
分布式系统被组织称一个中间件。中间件层layer扩展到多台机器上,并为每个应用程序提供相同的接口。 实际上中间件层就相当于7层网络协议里面的presentation protocol 表示层协议 + session protocol 会话层协议。
IV. 分层网络协议(layered network protocol)
1. 分层网络协议
分层网络协议,也就是我们常说的七层网络协议。下图展示了 OSI模型(七层模型也成OSI模型,OSI是Open System Interconnection的缩写)中的层、接口和协议。 对比图一,我们可以清晰的对比得出,middleware层在七层网络协议中对应的是presentation layer 和 session layer。 其中Transport层(传输层)是end to end的,也就是说端对端传输,忽略中间经由的主机节点。而Data link层(数据链路层)是hub to hub也就是pc 到 pc,点对点传输的,他们相互协作完成数据的传输。networ层(网络层)是通过IP地址来确定host的位置。Physical层(物理层)则是将数据转化为电子信号完成在网络中的传输。
2. 信息在OSI模型中的传输
一条典型的消息,在网络中传输时候会发生什么? 信息在每到达一层(出了物理层)的时候,在原有信息的基础上,都会被加上代表该层的header(头信息)。 最后到达数据链路层的时候会被加上数据链路层特有的Trailer。 何为Trailer? Trailer of data link layer contains control information for error detection added to the end of the PDU. 简言之,它包含了侦测错误的控制信息,被最后加到了包装信息的最后面。 这里是关于数据链路层的详细讲解link
V. 中间件协议
那么由上面可以推出,OSI七层协议其实可以被简化为六层,我们把它称之为中间件协议:也就是用中间件层来替代表示层和会话层。 其实我们也由此可以推测,中间件的作用也就是为不同主机上运行的同一个程序间的会话session来提供一个统一表示的接口。 它是一种适用于网络通信的参考模型。
VI. 一些常见的企业中间件
1. 常见中间件举例
a. 面向交易的中间件
IBM的CICS(Customer Information Control System), 主要用于Banking/Backend/Online Transactions.
b. 面向消息的中间件Messaging-oriented
IBM MQ 系列,微软消息队列,Rabbit MQ,Active MQ,Rocket MQ
c. 过程的中间件Procedural
UNIX / Linux RPCs, OSF DCE,…
d. 面向对象的中间件
OMG CORBA(这款老师重点提了),Java 的RMI,Java EE,Microsoft .NET
2. Java Enterprise Edition
VII. 通用术语Terminology:N tier Systems N层系统
客户端层:客户端应用程序(例如浏览器)web/presnetation tier(表示层,展示层):通常通过http接收用户请求,将请求传递给特定的应用程序应用Application/业务层Business tier:主机host 分布式应用程序,包含用来集成现有程序(涉及数据库,legacy遗留应用程序等)的设施facilities。Enterprise information systems企业信息系统/ Resource tier资源层: 数据库, legacy applications遗留应用程序。
第2、3层是大多数中间件所在的层——在应用和底层资源之间的层。
VIII. 构建分布式系统的常见要求common requirements
我们在构建分布式系统的时候,通常的的要求(要实现的目标):
a. Resource Sharing资源共享
能够使用系统中的任何地方任何硬件,软件或数据资源管理器控制访问,提供命名方案naming scheme和控制并发资源共享模型(例如客户端/服务器或基于对象)用来描述: –如何提供资源 –如何使用资源以及 –提供者和用户如何交互
b. Openness开放性
对于分布式系统扩展和改进的开放性(在升级时不能对线上的服务产生影响,或是直接让系统宕机)意味着: – 发布组件的详细接口 – integrate 将新组建和现有组件继承(使成为一体) – 解决在接口类型在不同处理器(不同供应商)的数据展示的不同(的问题)要求协议和标准化
c. Concurrency并发性
在并发过程中执行分布式系统中的组件组件访问和更新共享资源(例如变量,数据库,设备驱动程序)如果并发更新不协调,可能会破坏系统的完整性(例如丢失更新)
d. Scalability可扩展性
适应分布式系统以 –容纳更多用户 –作出更快的相应(这是很难的)通常添加更多和/或更快的处理器理想情况下,组件不必随系统规模扩大而变化 –需要设计可扩展的组件(并不简单)
e. Fault Tolerance容错性
硬件,软件和网络出现故障分布式系统必须保持可用性, 即使在低级别的硬件/软件/网络可靠性下 –需要硬件和软件冗余 –在规定的假设下,系统必须提供正确的(或预期的)服务 »限制硬件和软件故障的数量到可以容忍
f. Distribution Transparency分布透明性
用户和程序员应认为perceive分布式系统是一个整体而不是一个协作组件的集合 –访问透明度 »使用相同的操作访问本地和远程的信息/对象 –位置透明度 »在不知道位置的情况下访问 – 例如:使用动态绑定来进行远程过程调用(RPC)