===================================
C/S / Tuxedo 架构/ B/S 架构演进
===================================
Tuxedo 推广使用之前, 典型的程序是C/S两层架构, 两层架构的缺点有:
1. client端直连数据库, 因为数据库会为每个连接分配一定的内存, 所以C/S架构中的client数量不能太多, 所以只适合中小型系统.
2. client端不仅仅作为UI展现端, 而且包含了绝大多数的业务逻辑(还有一小部分业务是通过数据库存储过程实现的), 这个方式的缺点是, 调整业务逻辑的代价会很大, 很难做到发布client新版本后, 所有机器都能及时升级到最新版本.

Tuxedo 引入了三层架构概念, 能很好地解决上面C/S架构的缺点, 同时又提供分布式事务控制机制, 所以在大型企业中比较流行. 新的三层架构为: client/ap server/DB, Tuxedo 作为中间件为ap server提供底层功能:
1. client端弱化为UI端, 不再包含大量的业务逻辑.
2. ap server端, 将业务逻辑集中封装到ap server端, 集中了业务逻辑, 将来调整业务的代价会小一些.
3. tuxedo 同时提供了XA分布式事务控制功能, 为关键业务提供了严密的数据一致性, 当然也有代价, 数据库执行效率下降了很多. 事务控制应该是在ap server端编程控制, 不是在client端.

上面第2/3点对于大型企业很有吸引力, 所以在2000~2010年之间Tuxedo非常受欢迎. 现在 Tuxedo 架构已经不太流行了, B/S架构和SOA和微服务早已盖过了 Tuxedo 光芒, SOA/微服务暂且不提, 这里对比一下B/S架构和Tuxedo 应用架构, 仅仅个人理解, 有些说法可能不太准确.
1. Tuxedo 应用架构中的client通常还是指GUI客户端, 虽然这里的GUI客户端没包含业务逻辑, 简单的调整业务逻辑情形可能不需要升级客户端, 但很多情况下, 调整业务逻辑都要调整UI, 这时还是需要升级客户端, 还是很麻烦. B/S架构没有这个问题.
2. Tuxedo 应用架构中的client和ap server的数据交互, 是通过 Tuxedo API完成的, 发指令之类的调用很简单, 但对于返回记录集这样的复杂类型, 编码量应该不少, 现在的B/S架构中, 浏览器和服务器是以json格式数据来相互通讯的, javascript 能非常自然地处理json, 另外, Spring web框架天然支持json序列化/反序列化, 所以数据交互这块不用额外写代码.
3. Tuxedo 提供了 XA 分布式事务支持, Spring 社区的 Atomikos 也提供这样的功能. 另外分布式事务性能很差, 所以都是谨慎使用,这样 Tuxedo 优势不明显了.

===================================
制作好的 VM 和 Docker 镜像
===================================
制作好的VirtualBox VM:
http://littles.name/tuxedodemos/TuxedoSamplesVM
http://littles.name/tuxedodemos/TuxedoSamplesVM/README
该VM账号密码:
root/samplesvm
tuxtest/tuxtest
oracle/oracle

Docker file:
https://github.com/oracle/docker-images/tree/master/OracleTuxedo

官方没有编译好的 docker 镜像, 下面是几个非官方的docker镜像
https://hub.docker.com/r/brunotaboada/tuxedo12c
https://hub.docker.com/r/bluezd/tuxedoshm
https://hub.docker.com/r/shearer9/tuxedo

===================================
相关术语:
===================================
TSAM Plus: Tuxedo System and Applications Monitor Plus, 转为监控端到端的事务和服务而设计, 可以监控 Tuxedo 基础架构的利用率, 调查活动程序的性能和行为.
Jolt: Java online transaction, 基于java的 Tuxedo 接口, https://docs.oracle.com/cd/E13161_01/tuxedo/docs10gr3/jdg/dvintro.html
SALT: Service Architecture Leveraging Tuxedo , 提供双向的、高性能、易使用的、配置驱动的模型, 它使用Http的SOAP将Tuxedo服务作为标准Web服务
ART: Application runtime, 专门面向大型机
ATMI: Application-to-Transaction-Monitor Interface, Tuxedo服务器开放给客户端的底层接口, 地位和 Oracle 数据库的 OCI 类似.
SCA: 和 ATMI 类似, 它是另一种开发模型.
WTC: Weblogic Tuxedo Connector, 通过事务和安全性传播, 提供双向/点对点的互操作性, 却博爱数据的完整性.
DTP: Distributed Transaction Processing
MIB: Management Information Base, 它是 ATMI 之下的一层, 提供 ACL 等管理方面的功能.

===================================
应用程序集成
===================================
几种集成方案:
1. 直接使用 ATMI 接口. 支持任意语言, 包括Java/.Net/Python等等.
2. [收费]WTC是 weblogic 连接tuxedo的专有方案, 但须于weblogic绑定. 仅支持 Java 集成.
3. [收费]Jolt 是tuxedo本身携带的组件, 不需要和 weblogic 绑定. Jolt 需要购买 license. 支持java或.Net集成.
4. [收费]使用SALT提供SOAP和Restful接口. 支持任意语言, 包括Java/.Net/Python等等.
5. .Net workstation client, 为.net提供的集成方式
6. activex 技术
7. wtuxws32.dll 适用于 VB/VC 等

==================================
ATMI 接口
==================================
翻译-java 客户端调用 Tuxedo中间件
https://blog.csdn.net/most_rabbitfishes/article/details/70311805

官方文档
https://docs.oracle.com/cd/E35855_01/tuxedo/docs12c/pgj/index.html

【译】使用Java编写Oracle Tuxedo应用
https://segmentfault.com/a/1190000002598827

ATMI 的功能示意:
https://docs.oracle.com/cd/E12531_01/tuxedo100/int/intatm.html

Tuxedo sample(包括虚拟机和java/python)
https://github.com/TuxedoUsers/Tuxedo-samples

tomcat集成 tuxedo
https://blogs.oracle.com/tuxedo/tomcat-and-tuxedo-perfect-together

==================================
JOLT
==================================
中间件Tuxedo调用方式
https://baijiahao.baidu.com/s?id=1566721417042476&wfr=spider&for=pc
https://my.oschina.net/gccr/blog/112405
https://my.oschina.net/hunterli/blog/12535

==================================
概述和入门
==================================
tuxedo-使用小结(写的很好,转了)
https://blog.csdn.net/u011445855/article/details/78274222/
tuxedo 简易培训教程
https://wenku.baidu.com/view/b4f6ab4e852458fb770b5627.html
Tuxedo 介绍与安装(一)
http://www.cnblogs.com/fnng/archive/2013/02/10/2909860.html
tuxedo 入门
http://blog.sina.com.cn/s/blog_6d038a250100mhqj.html
tuxedo 入门
http://blog.51cto.com/3402313/1298411
Tuxedo入门学习
https://www.cnblogs.com/mengfanrong/p/3984513.html
tuxedo 事务控制
https://www.waitig.com/tuxedo.html
Tuxedo Transaction Model(官方文档)
https://wenku.baidu.com/view/052ec035b90d6c85ec3ac641.html

Tuxedo 汇总的更多相关文章

  1. loadrunner和QTP视频教程汇总

    小布老师视频: 测试工具概述,兼LoadRunner介绍 -1-4 http://www.boobooke.com/v/bbk1046 http://www.boobooke.com/v/bbk104 ...

  2. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  3. 异常处理汇总 ~ 修正果带着你的Net飞奔吧!

    经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...

  4. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  5. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  6. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  7. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 关于DDD的学习资料汇总

    DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...

随机推荐

  1. LeetCode算法题-Baseball Game(Java实现)

    这是悦乐书的第288次更新,第305篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题(顺位题号是682).你现在是棒球比赛点记录器.给定一个字符串列表,每个字符串 ...

  2. LeetCode算法题-Set Mismatch(Java实现)

    这是悦乐书的第279次更新,第295篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第147题(顺位题号是645).集合S最初包含从1到n的数字. 但不幸的是,由于数据错误 ...

  3. Elixir 分布式平台

    概述 分布式平台的核心在于并发,容错. 而 Elixir 的优势正是在于对于并发和容错的处理. 分布式模型 CSP(Communicating Sequential Process) 模型 :: 多个 ...

  4. 英语口语练习系列-C16-钱

    词汇学习 beer [bɪə(r)] n. 啤酒 a glass of beer 一杯啤酒 five glasses of beer 五杯啤酒 beers (种类) Shall we have a b ...

  5. 初学Kafka工作原理流程介绍

    Apache kafka 工作原理介绍 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需 ...

  6. Windows 支持 OpenSSH 了!

    从 Win10 1809 和 Windows Server 2019 开始 Windows 开始支持 OpenSSH Server.本文介绍一下其基本的概念和配置方法,本文演示用的环境为 Win10 ...

  7. spring Jackson 配置笔记

    配置代码 // 设置输出时包含属性的风格 this.findAndRegisterModules(); this.setSerializationInclusion(JsonInclude.Inclu ...

  8. 关于toncat的Invalid character found in the request target.The valid characters are defined in RFC 7230 and RFC3986

    首先这个错误通常的产生原因, 是tomcat的确收到了格式不正确的请求参数,根据tomcat的版本支持的解析,tomcat抛出这个错误. 但是还有一种就是前台发送的请求方式由 get发送导致本应pos ...

  9. h5-音视频标签

    ###1. <video>:Html5提供的播放视频的标签          src:资源地址          controls:该属性定义是显示还是隐藏用户控制界面 调用默认控件    ...

  10. 其它综合-有趣的linux命令行工具-lolcat

    lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具 何为Lolcat Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat,并为 cat 的输出添加彩 ...