中间件复习笔记_第1页
中间件复习笔记_第2页
中间件复习笔记_第3页
中间件复习笔记_第4页
中间件复习笔记_第5页
已阅读5页,还剩27页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

2022年-n月-13日

第一章INTRO

1.概念

ii.一类独立的系统软件和服务程序

iii.Aclassofstandalonesystem-levelsoftwareandservicesprocedures

iv.在操作系统的顶部

v.WorkingonthetopofOS

vi管理计算机资源和网络

vii.Managingcomputationalresourcesandnetworkcommunications

viii.支持分布式通信

ix.Supportingdistributedapps

Application

Middleware

OperatingIOperating

SystemISystem

HARDWAREIHARDWARE

b)功能

i.在异构的网络环境中,涉及到跨连通性和可操作问题中

ii.供应统一的合同和接口

iii.Providingstandardizedinterfacesandprotocols

iv.隐蔽实现细节

v.Hidingimplementationdetails

vi.提高程序的可移植性

vii.Increasingtheportabilityofapps

viii.放置于操作系统和数据库管理系统的顶部

ix.为高级应用的开发和执行供应环境

x.Providingenvironmentsfortheexecutionanddevelopmentofhigher-levelapps

xi.帮助软件工程师敏捷高效地开发和集成简单的分布式软件

xii.Assistingsoftwareengineersinflexiblyandefficientlydevelopingandintegrating

complexdistributedsoftware

c)中间件进展的主要因素

i.隐蔽异构型Hidingheterogeneity

1.硬件异构hardwareheterogeneity

2.操作系统异构OSheterogeneity

3.数据库异构databaseheterogeneity

ii.支才寺可操彳乍'性supportinginter-operability

1.不同的平台differentplatforms

2.不同的网络合同differentnetworkprotocols

3.不同的通信机制differentcommunicationmechanisms

iiL提高软件的复用率improvingefficiencyandqualityofsoftwaredevelopment

d)主要类别

i.远程过程调用中间件RPCremoteprocedurecallmiddleware

ii.对象恳求代理中间件ORBobjectrequestbrokersmiddleware

iii.面对信息中间件MOMmessage-orientedmiddleware

iv.数据库访问中间件DAMdatabaseaccessmiddleware

v.事务处理中间件TPMtransactionprocessingmiddleware

第二章RMI

a)对象恳求代理ORB

i.供应一个框架,使得远程对象可以在网络中以同样的方式使用在网络中的本地对象

ii.Providingaframeworkwhereremoteobjectcanuselocalobjectsinthe

samewayoverthenetwork

iii.当对象在客户端和服务器之间传递时,供应功能的编组和解组的功能

iv.Providingfunctionalitiesformarshallingandunmarshalingwhenobjectsare

transmittedbetweenclientsandservers.

v.客户端和服务器之间的传输隐蔽实现的细节,这使得开发人员能够有效地实现分布

式应用程序,而无需面对简单的底层操作系统和网络通信

vi.Hidingtheimplementationdetails,whichenabledeveloperstoimplement

distributedappsefficientlywithoutfacingthecomplexunderlyingoperating

systemsandnetworkcommunications

b)JAVARMI的概述

i.用java编写分布式对象

ii.Writingdistributedobjectsusingjava

iii.直接用java对象来为分布式计算机建模

iv.Simpleanddirectmodelfordistributedcomputationwithjavaobjects

v.以java为中心,由此带来了平安性和分布式计算的可移植性

vi.Centeredaroundjava,thusbringingthepowerofJavaSafetyandportability

todistributedcomputing

vii.行为可以被转移动

viii.Behaviorcanberemoved

ix.通过JNI可以链接到现有的遗留系统

x.ConnectedexistedlegacysystembyJNI

xi.通过JDBC可以链接到关系数据库

xii.ConnectedrelationaldatabasebyJDBC

c)优点

i.面对对象。0

1.全部的对象可以作为参数和返回值

2.Allobjectscanbeargumentsandreturnvalues

ii.可移动性行为mobilebehavior

1.类的实现可以被移植

2.Theimplementationsofclasscanbemoved

iii.设计模式designpatterns

1.传递性对象确保了面对对象技术的全功率

2.Passingobjectsensurethefullpowerof00techs

iv.平安Secure

1.基于JAVA的平安机制:平安经理

2.BasedonJAVAsecuritymechanismssecuritymanager

d)次优点

i.非常简洁开发,使用,维护

ii.Easytowrite,useandmaintain

iii.可以与现存的遗留系统链接canconnectwithexistedlegacysystem

1.RMI/JNI,RMI/JDBC

iv.开发一次,可以在任何地方运行writeonce,canbeuseanywhere

1.100%移植至IJ任何JVM100%portabletoanyJVM

v.分布式垃圾收集distributedgarbagecollection

vi.并行计算parallelcomputing

1.多线程,并行处理MUTI-threadconcurrentprocessing

e)架构architecture

i.存根stub

1.编组参数,发送调用

2.Marshalingarguments,sendinginvocation

ii.骨骼skeleton

1.解封参数,调用服务器来实现

2.Unmarshalingarguments,invokingserver*simplementation

f)RMI的分布式应用

i.定位远程对象locateremoteobjects

ii.与远程对象通信communicatewithremoteobjects

iii.为被传递的对象加载类定义loaddefinitionofclassesthatarepassedaround

g)远程接口,对象和方法remoteinterface,objectsandmethods

i.通过实现一个具有以下特点的远程接口来实现对象远程化Anobjectsbecomes

remotebyimplementingaremoteinterfacewithfollowingcharacteristics

1.一个远程接口扩展了接口oneremoteinterfaceextendsaninterface

a)

2.接口的每一^•方法都有事先声明everymethodsoftheinterfacehasbeen

declared

a)Java.rmi.RemoteExceptioninitsthrowsclause

h)主要步骤mainsteps

i.定义远程接口definetheremoteinterface

1.指明可以远程调用的方法specifyingthemethodsthatcanbeinvoked

remotely

ii.实施远程对象implementingtheremoteobjects

1.可能包括本地接口/方法的实现mayincludetheimplementationoflocal

interface/method

iii.客户实现implementingtheclient

1.在远程接口定义后的任何时间都可以被实现canbeimplementedanytimewhen

theremoteinterfacehasbeendefined

第三章JMS

a)面对消息中间件MOM

i.在异构平台上发送/接收分布式应用软件/组件之间的消息

ii.Sending/receivingmessagesbetweendistributedapps/componentsover

theheterogeneousplatforms

1.支持异步调用

2.Supportingasynchronouscalls

iii.创建一个分布式通信层

iv.Createadistributecommunicationlayer

1.避开应用开发者接触来自不同系统和网络接口的细节

2.InsulatingappdevelopersfromthedetailsaboutdifferentOSandnetwork

interfaces

v.在不同平台和网络上的API通常是MOM供应的

vi.TheAPISfromdifferentplatformsandnetworkareprovidedbyMOM

b)比较

i.MOM

1.异步通信

2.Asynchronouscommunication

3.组件松散耦合

4.Loosely-coupledcomponents

ii.RPC/ORB

1.同步通信

2.Synchronouscommunication

3.组件紧密耦合

4.Tightly-coupledcomponents

c)MOM标准

i.历史上,缺乏MOM的精确标准

ii.Therewasalackofstandardsinthehistory.

iii.高级消息队列合同AMQP

iv.AdvancedMessageQueuingProtocol

v.数据分发服务DDS

vi.DataDistributionService

vii.可扩展消息和存在合同XXMP

viii.extensibleMessagingandPresenceProtocol

ix.Java消息服务的JAVAEE

x.JavaMessageServicebyJAVAEE

1.由大多数MOM供应商实施,旨在隐蔽特定的MOMAPI实现方法

2.ImplementedbymostMOMvendorsandaimstohidetheparticularMOM

APIimplementations

d)JavaMessageService

i.一种JAVAAPI接口,允许应用程序创建发送接收读取消息

ii.AjavaAPIthatallowsappstocreate,send,receiveandreadmessages

iii.定义一组通用接口和关联用语

iv.Definesasetofcommoninterfaceandassociatedsemantics

v.通过JMS的供应者,力争最大力度的提高JMS应用程序的可移植性

vi.TrythebesttoimprovetheportabilityofJMSappsacrossJMSproviders

Vii.使得通信变得松散耦合的,异步的,牢靠的

viii.Enablingcommunicationthatislooselycoupled,asynchronous,andreliable

e)当用JMS的时候

i.供应者盼望该组件不依靠与其他组件的接口信息,因此组件可以很简洁地被替换

ii.Providershopethecomponentsdon'trelyonothercomponents,

message,socomponentscanbeeasilyreplaced

iii.供应者盼望该应用程序运行时其他组件也同时运行

iv.Providerswantstheappstorunwhetherornotallcomponentsareupand

runningsimultaneously

v.应用业务模式允许组件将信息发送到另一个组件,并连续操作而不用即时响应

vi.Applicationbusinessmodelallowscomponentssendmessagetoanother

componentsandtocontinuetooperatewithoutreceivinganimmediateresponse

f)信息传递方式

i.点对点传送消息方式Pointtopointmessagingstyle

1.每个消息都是针对特定队列的

2.Eachmessageisaddressedtoaspecificqueue

3.队列将保留全部发送的消息,直到他们被消耗或者过期

4.Thequeuewillretainallthemessagesthathavebeensentuntiltheyare

consumedorexpire.

5.每一条消息都只有一个消费者

6.Everymessagehasoneconsumer

ii.发布/订阅消息方式Publish/subscribemessagingstyle

1.客户端可以将信息发到一个主题里

2.Theclientcansendamessagetoatopic

3.出版社和订阅者可以动态的发布或者订阅主题

4.Publisherandsubscribercandynamicallypublishorsubscribetothetopic.

5.当且仅当消息被发送给订阅服务器后,主题才会保留信息

6.Topicwillretainthemessagesonlywhenmessageshavebeensenttothe

subscribers

7.每一条信息都可以有多个消费者

8.Eachmessagehasmultipleconsumers

9.当一个客户端创建了一个主题后,另一个订阅了相应主题的客户端才可以消费已发

送的信息,并且消费者必需要保持活跃来消费信息

10.Afteraclientcreateatopic,anotherclientwhichhassubscribedthetopic

canconsumemessagesthathavebeensent,andtheconsumermustcontinueto

beactiveinorderforittoconsumemessages.

Queue

g)消息消费

i.同步Synchronously

1.消费者通过调用消息接收方法来猎取消息的目的地

2.Consumerfetchesthemessagefromthedestinationbycallingthereceive

method

3.假如消息没有在指定时间内到达,该接收方法会阻挡消息进入

4.Thereceivemethodcanblockuntilamessagearrivesorcantimeoutifa

messagedosenotarrivewithinaspecifiedtimelimit

ii.异步Asynchronously

1.客户端可以注册一个消息监听器

2.Theclientcanregisteramessagelistenerwithaconsumer

3.当消息到达目的地时,JMS的供应者通过调用监听器的onMessage方法来供应信

息

4.Whenmessagearrivestothedestination,theproviderofJMSdeliverthe

messagebycallingthelistener'sonMessagemethod

h)JMS元素

JMS供应者:一个JMS接口的实现

ii.JMSprovider:animplementationoftheJMSinterface

iii.JMS客户端:一个应用或者过程,可以生产/接收消息

iv.JMSclient:anapplicationorprocessthatcanproduce/receivemessages

v.JMS供应者/出版者:创建/发送消息的客户端

vi.JMSprovider/publisher:aclientthatcancreate/sendmessages

vii.JMS消费者:接收消息的客户端

viii.JMSconsumer:aclientthatcanreceivemessages

ix.JMS消息:包含数据的对象,在客户端之间转移

x.JMSmessage:anobjectincludingdataandtransferredbetweenJMSclients

xi.JMS队列:一个包含着已经被发送出去并且等待被接收的信息(只有一个消费者)中

转区

xii.JMSqueue:aqueuethatincludemessageswhichhavebeensentand

waitingtoberead

xiii.JMS主题:一个发送信息给多个订阅服务器的初版发行机构

xiv.JMSTopic:adistributionmechanismforpublishingmessagesthatare

deliveredtomultiplesubscribers

i)JMS应用程序的基本构造块JMSapplication,sbasicbuildingblocks

i.管理对象:连接工厂和目的地

ii.Administeredobjects:connectionfactoriesanddestinations

iii.链接

iv.Connections

v.会议

vi.Sessions

vii.消息生产者

viii.Messageprovider

ix.消息消费者

x.Messageconsumer

Xi.消息

xii.Message

JMSAPIProgrammingModel

Creates

Message

Producer

CreatesReceives

Rom

DestinationDestination

j)JMS信息类型

JMSMessageTypes

MessageTypeBodyContents

TextMessageAjava.lang.Stringobject(fbrexample,thecontentsofanXML

file).

MapMessageAsetofname-valuepairs,withnamesasStringobjectsandvalues

asprimitivetypesintheJavaprogramminglanguage.Theentries

canbeaccessedsequentiallybyenumeratororrandomlybyname.

Theorderoftheentriesisundefined.

BytesMessageAstreamofuninterpretedbytes.Thismessagetypeisfbrliterally

encodingabodytomatchanexistingmessagefbnnat.

StreamMessageAstreamofprimitivevaluesintheJavaprogramminglanguage,

filledandreadsequentially.

ObjectMessageASerializableobjectintheJavaprogramminglanguage.

第四章JDBC

a)Intro

i.一套为了建立JAVA编程语言和更大范围数据库之间独立性数据库连接的标准JAVA

API接口

b)框架

JDBCArchitecture

•JDBCAPI&JDBCDriverAPI

C)组件

i.DriverManager

ii.Driver

iii.Connection

iv.Statement

v.ResultSet

vi.SQLexception

d)JDBC功能

i.制造一个数据库连接

ii.产生SQL声明

iii.在数据库中执行SQL语句

iv.查看修改产生的纪录

e)生成一个简洁的JDBC应用

i.导入包

1.导入数据库连接编程需要的JDBC类的包

2.Importjava.Sql

ii.注册JDBCdriver

1.初始化一个driver,来建立一个与数据库联系的通信通道

2.Class.forName("com.mysqljdbc,driver");

iii.打开链接

1.制造一个链接对象,代表着与数据库的物理连接

2.Staticfinalstringuser="username";

3.Staticfinalstringpass="password";

4.Conn=DriverManager.getConnection(DB_URL.user,pass);

iv.执行语句

1.为了建筑并提交SQL说明给数据库,使用声明或者预备声明

2.Stmt=conn.createStatement();

3.Stringsql;

4.Sql="SELECTid,name,hometownFROMt_student";

5.ResultsSetrs=stmt.executeQuery(sql);

6.对更新,插入,删除进行声明

7.Stmt=conn.createStatementQ;

8.Stringsql;

9.Sql="DELETEFROMt.studentwhereid=l";

10.Intnum=stmt.executeUpdate(sql);

v.从结果中提取数据

1.用resultSet.getXXXQ从结果中提取数据

while(rs.next()){

//Retrievebycolumnname

intid=rs.getlnt("id");

Stringname=rs.getString(/znameH);

Stringhometown=rs.getString(//hometown");

<)7

vi.清空环境

rs.close();

stmt.close();

conn.close();

\__________________________________)

f)数据类型

SQLJDBC/JavasetXXXupdateXXX

VARCHARjava.Iang.StringsetStringupdateString

CHARjava.Iang.StringsetstringupdateString

NUMERICjava.math.BigDecimalsetBigDecimalupdateBigDecimal

INTEGERintsetlntupdatelnt

FLOATfloatsetFloatupdateFloat

DOUBLEdoublesetDoubleupdateDouble

DATEjava.sql.DatesetDateupdateDate

TIMEjava.sql.TimesetTimeupdateTime

TIMESTAMPjava.sql.TimestampsetTimestampupdateTimestamp

g)执行SQL语句

i.发送查询语句给数据库

ii.发送更新语句给数据库

TheCallableStatementObject

CallableStatementcstmt=null;

try(

StringSQL="{callprocedureName(?,?)}'*;

cstmt=conn.prepareCall(SQL);

}

catch(SQLExceptione){

}

finally{

TheCallableStatementObject(cont.)

ParameterDescription

AparameterwhosevalueisunknownwhentheSQLstatementiscreated.

IN

YoubindvaluestoINparameterswiththesetXXX()methods.

AparameterwhosevalueissuppliedbytheSQLstatementitreturns.You

OUT

retrievevaluesfromtheOUTparameterswiththegetXXXf)methods.

Aparameterthatprovidesbothinputandoutputvalues.Youbindvariables

INOUT

withthesetXXXf)methodsandretrievevalueswiththegetXXXf)methods.

intstudentlD=102;

stmt.setlnt(l,studentID);

stmt.registerOutParameter(2,java.sql.Types.VARCHAR);

\________________________________________)

第五

温馨提示

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

评论

0/150

提交评论