IBM大型主机(Mainframe)技术简介之六——数据库和系统集成(二)

本文深入探讨IBM大型主机的系统集成技术,包括RPC、CORBA、RMI及其通信模式。介绍了JEE的发展历程,详细阐述了JDBC的使用,包括驱动注册、连接建立和关闭。此外,还讨论了Hibernate和JPA作为ORM框架在Java中的应用,以及EJB在企业级应用中的角色。文章进一步提到了设计模式和企业级设计模式,如Singleton、Session Facade和服务定位器。最后,概述了Web服务、SOA架构以及BPEL在业务流程执行中的作用。
摘要由CSDN通过智能技术生成

1. 系统集成的基础设施

 

RPC (Remote Procedure Call)

 

RPC是现代C/S和分布式程序的基础概念之一,通常由具体的技术来实现。以下是远程通信通常遵循的模式:

 

客户程序 <-> 桩(残根)函数接口 <-> Channel(协议栈通信通路) <-> 桩(残根)函数接口 <-> 服务程序

 

优点: 隐藏传输细节; 简化; 透明

桩函数接口的作用: 程序参数和通信栈上数据之间的转化、组织和传递。

 

CORBA (COmmon Request Broker Architecture)

 

CORBA曾经非常流行的一种RPC模式。其基本概念包括:

物件Object -- 可接受客户请求可位于远端的实体;

服务Servant -- 物件的功能实现;

IDL(Interface Definition Language) -- 接口定义语言,一种协议,类似COM的IDL,WSDL等的作用;用于保证CORBA语言无关

ORB(Object Request Broker) -- 直接位于通信栈上用于处理请求的机构

 

通信模式:

客户程序(使用) <-> 物件对象(引用) | 桩函数接口(根据IDL生成) <-> ORB

                                                                                               |

                                                                                          通信链路

                                                                                               |

 服务程序(创建和维护) <-> 物件对象(实现) | Skeleton函数接口 <-> ORB

 

RMI (Remote Method Invocation)

 

是Java程序之间RPC通信的方式。如果JAVA要和其他语言程序通信,则采用CORBA;因此rmic工具为特定桩对象生成Java方法以支持通信。

在两个Java虚拟机之间则用JRMP(Java Remote Method Protocol)通信。

Server侧接口需继承:java.rmi.Remote,异常:java.rmi.RemoteException。

首先System.get/setSecurityManager()设置安全管理对象,java.rmi.registry.*设置Registry;对象创建,然后绑定到Java的命名系统中:Naming.bind("路径", obj); 客户端查询则通过Naming.lookup("路径");

 

.NET Remoting(已被WCF取代)

 

仅仅是上课提到,非上课重点,且为更新技术取代,不再赘述。

 

2. JEE (J2EE) 系统集成技术发展

 

1.2 (初始版): Servelets, JSP, EJB, JMS, Mail, JDBC, Transactions, JNDI

1.3:Connector Architecture, JAAS, XML for Web Services, JSP Tag Libraries

1.4:Management (JMX), 安全扩展(Security Extensions)

1.5:(主发布版本) 原部署标记(XML)可以用Annotation取代,Dependency Injection,JPA

1.6:(最近版本) Profile概念(功能子集),REST的Web Service(JAS-RS),Managed Beans,Bean Validation, EJB Lite, Servlet(支持Annotations, 异步asynchronous,可插卸性pluggability),Faces(Annotations, facelets, AJAX, implicit navigation)

 

3. JDBC

 

JDBC

 

目的:使Java接入关系数据库系统Relational Dababase Management System (RDMS);

驱动Driver:适应特定数据库的JDBC API;

注册:v4以后的驱动不需要

结构:  Java应用 | JDBC API | JDBC SPI | JDBC驱动(数据库提供商提供) <-> 数据库

步骤:

1. 驱动注册: Class.forName("驱动名称").newInstance(); // need to catch Exception e

2. 建立连接: Connecton conn = DriverManager.getConnection(url); // need to catch SQLException

2'. 含参连接: Properties props = new Propertis(); props.setProperty("user", "Peter"); props...  conn = DriverManager.getConnection(url, props); 或: conn = DriverManager.getConnection(url, name, passwd);

2''. DS连接:Context ctx = new InitialContext(); /*JNDI*/ DataSource ds = (DataSource)ctx.Lookup("路径"); conn = ds.getConnection([user, passwd]); (DataSource是一个Factory产生普通/Pooled/Distributed Transaction的连接)

3. 使用后关闭连接: conn.close();

 

JDBC中使用SQL语句

Statement:执行SQL查询和更新:

Statement stmt = conn.createStatement(); int res = stmt.executeUpdate("SQL更新语句");ResultSet rs = stmt.executeQuery("SQL查询语句" [, resultSetType concurency, holdability]); ... stmt.close();

PreparedStatement:允许java变量作为参数:安全性(防止SQL代码注入);效率(驱动可优化执行代码)

Prepared

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值