ibm mq 编程

SOA编程模型系列

对于任何一个程序员,尤其是非程序员,要有效地掌握和应用令人震惊的软件技术,实践,工具和平台,变得越来越困难。 但是,如果要成功进行业务流程转型,则大量的非程序员需要使用现有的IT资产来履行其职责,并且不能期望学习基础技术的复杂细节。 本系列文章描述了一种新的面向服务的体系结构(SOA)编程模型,该模型实现了关注点的分离,以便企业中具有不同技能水平和角色的人员(不一定是IT专业人员)可以在整个过程的每个阶段创建和使用IT资产。软件开发生命周期。 结果可以极大地提高按需企业的业务敏捷性。

IBM产品越来越多地实现SOA和编程模型。 程序员构建服务,使用服务以及开发汇总服务的解决方案。 我们在这里宽松地使用术语“程序员”,因为SOA编程模型的一个关键方面是将“编程”扩展到更广泛的非传统开发人员角色和技能,例如业务分析人员和脚本语言用户。

关于Web服务的大多数文献主要集中在服务接口及其使用上。 为了补充接口标准和最佳实践,IBM引入了一种编程模型,用于实施服务并将其组装到解决方案中。 该模型将IBM软件平台的影响范围扩展到更广泛的用户社区(包括非传统程序员),该模型提供了与用户角色,目标,技能和概念框架相匹配的新组件类型 。 这些组件类型使开发工具更加直观。 另一个主要主题是通过逐步公开编程模型的特征和功能来实现可消费性 。

这是有关IBM SOA编程模型的系列文章的第一篇,专门针对软件开发专业人员。 在本系列中,我们提出了解决这些目标的几个新的编程模型元素。 我们向您展示如何利用它们来使您选择,开发,部署,推荐或管理的软件更易于开发,重用和使用。 被构造为服务的软件对随需应变企业特别有价值,因为它可以由技术水平较低的开发人员“连接”到解决方案中,或编排到业务流程编排流程中,以满足快速变化的业务需求。 无论您是大型企业还是小型企业的开发人员,独立软件供应商(ISV),应用程序提供商或中间件供应商,都可以从以这种方式构造软件中受益。 因此,让我们立即开始应用SOA原则。

SOA编程模型的重点

让我们首先强调一下SOA编程模型的一些主要功能。

服务数据对象 (SDO)是IBM SOA中的基本概念。 SDO使开发人员更加高效,并使您摆脱了如何访问特定后端数据源,应用程序或服务的技术细节。 它们提供了简化的抽象,使程序员可以主要专注于业务逻辑。 SDO还为与服务交互的消息提供统一的表示形式,取代了令人困惑的数据表示技术迷宫,并使用单个统一模型进行访问。

SOA编程模型还需要用于创建和访问业务逻辑的统一范例。 为了易于使用,服务应该隐藏实现技术之间的差异,并且比现有的编程结构(例如Enterprise Java™Beans(EJB))具有更高的抽象级别。 考虑到可以通过将组件组装成模块来实现服务,这些模块又可以组合成解决方案。 组件公开了可以使用可寻址接口调用的服务。 您可以使用Web服务描述语言(WSDL),Java或其他语言来描述接口。 此实现样式可能具有未解决的对所需服务的引用,这些服务将在执行之前通过将组件连接在一起而得到满足。

该编程模型还引入了定义明确的组件类型,这些组件类型对开发人员产生并部署到解决方案中的常见工件建模。 示例包括“普通的旧Java对象”,业务流程执行语言(BPEL)流程,结构化查询语言(SQL)服务,自适应业务对象,通过Java连接器体系结构(J2C)资源适配器访问的CICS®程序,使用SAP业务应用程序编程的应用程序接口,Java 2企业版(J2EE)无状态会话Bean和MQSeries®应用程序。

企业服务总线作为一种多协议结构发挥了关键作用,该结构将服务组件织入无缝的交互中,但是却引起了企业的关注,例如审核,日志记录,路由,接口不匹配的适应,等效组件的增量替换,安全性,等等-通过在消息路径中插入称为中介的特殊组件来中介服务之间的交互,而无需更改现有端点,从而可以在整个骨干级解决该问题。

新的流程语言减少了IT概念与业务构件之间的差距。 关键是BPEL 。 尽管可以使用业务分析师可以使用的图形工具来定义流程,但它也是可执行程序。 流程在按需业务转换中起着重要作用,例如,在描述扩展价值链的可执行的长期运行流程时。 扩展价值链是指可以跨越多个供应商和IT领域的业务安排,例如零售商及其众多单独的供应商,保险公司及其众多第三方调节器,IT外包情况等等。

业务状态机是业务分析师可以使用图形工具创建,但仍在流程编排引擎中执行的另一个编程隐喻。 状态机可以表示业务工件(例如采购订单,保险索赔等),以响应特定生命周期“事件”而在几个定义明确的状态之间进行转换。

可以将要重用的组件打包为模板,并带有可变点,以便在将其放入解决方案时进行定制。 通过添加规则语言和相关工具,这种改编成为我们编程模型的一流部分,从而为新型用户提供定制功能。

创新的另一个领域是新的解决方案模型 ,可让部署者,管理员和其他业务用户将组件组装成解决方案。 在开发时,您可以将服务实现与托管它的拓扑(系统架构师建模的部署拓扑)相关联。 该模型所捕获的系统要求和环境假设可在实施初期得到验证,从而减少了应用程序生命周期成本,同时大大提高了可靠性和责任感。 此模型的功能是后期绑定,转换数据的中介以及用于现有应用程序的适配器,这些应用程序允许通过企业服务总线进行面向服务的交互。

总之,SOA编程模型将开发和部署活动分为不同的阶段,这些阶段可以在不同的时间发生,并且可以由不同的人使用不同的技能来完成。 这就产生了真正的关注点分离,从而使软件组件的用途得以改变。 它还根据单个用户的业务角色,技能和任务来定制软件体验。 最后,它支持软件生命周期,以适应按需企业的需求,因为他们通过重新设计IT流程以提高业务敏捷性来寻求增加的盈利能力。

编程模型概念

通常, 编程模型对于IBM SOA和IBM产品至关重要。 它定义了开发人员构建和使用的概念和抽象。 运行时产品(例如WebSphere®Application Server,DB2®和CICS)运行或托管编程模型工件。 开发工具支持编程模型工件的建模和实现,它们到应用程序(解决方案)中的组装以及它们在运行时中的部署。 最后,系统管理产品,代理和工具支持对运行时及其托管的编程模型工件的管理。

什么是编程模型? 尽管没有公认的定义,但我们喜欢将其定义为:

  • 程序员构建的一组零件类型 。 部件类型包含各种编程模型工件:超文本标记语言(HTML)文件,数据库存储过程,Java类,可扩展标记语言(XML)模式定义,定义MQSeries消息的C结构等。
  • 一组角色 ,将具有相似技能和知识的开发和管理社区成员进行分组。 以这种方式对开发人员进行分类有助于生成适合角色的工具,这些工具可使非程序员实现服务并从服务组合解决方案。 定义业务流程的业务分析师和定义客户分类并计算产品折扣的策略的市场营销专家说明了您希望吸引的新型开发人员。 每个角色包含:
    • 角色拥有的技能 。 例如,用户界面开发人员开发的界面会呈现应用程序或解决方案的功能构件。 假定此角色是为了了解正在开发的应用程序及其业务目标,充分了解该应用程序的用户及其任务,是几种用户界面设计方法的专家,并且能够通过选择来创建易于使用的用户界面适合每种任务的种类。
    • 角色交互(使用或产生)的零件类型和应用程序接口 。 例如,动态页面的设计者( 一个角色 )产生JavaServer Pages(JSP),并消费EJB( 零件类型 ),后者包装了现有的信息和应用程序源。
    • 角色使用的工具 。 Web开发人员适合自己使用角色的工具的一个示例是“所见即所得”页面设计工具,该工具用于构建动态页面,使用与HTML和JSP标记库相关联的控件以及将控件连接到EJB。

使Web服务易于实现和使用的关键是逐步扩展一个人现有的技能和知识,从而使SOA成为可消费的。 CICS COBOL事务程序形式的服务与用BPEL编写的服务几乎没有相似之处。 从数据库存储过程中调用服务不同于从JSP中调用服务。 技能和期望是不同的。 您可以通过提供各种工具来使零件类型适应各种技能以及开发过程的各个阶段,从而实现易损性。

本系列中的其他文章将更详细地探讨组成SOA编程模型的某些零件类型。

产品架构

图1.产品架构

支持IBM对SOA的看法的产品分为两大类:服务端点和将它们互连的消息传输结构。 这是一般的结构-由许多产品,其中没有单独是IBM SOA鞋底递送载体填充-中示出图1中 。

ESB的核心是提供服务之间的连接性。 ESB是多协议的,支持点对点和发布-订阅样式的通信以及处理飞行中消息的中介服务。 IBM WebSphere MQ,IBM WebSphere MQ Integrator Broker和WebSphere对Web服务和Java消息服务(JMS)的支持都属于第一类。

服务驻留在称为容器的抽象托管环境中,并提供特定的编程隐喻。 容器加载服务的实现代码,提供与ESB的连接,并管理服务实例。 不同类型的服务驻留在不同的容器中。 (在设计递归的一个显着示例中,ESB本身被视为中介服务的容器。) 表1列出了一些主要的IBM SOA托管环境和托管的组件类型。

表1.承载各种组件和服务类型的容器
服务/组件类型 容器
用COBOL,PL / 1和其他语言编写的交易程序 CICS或IMS(信息管理系统-企业交易处理系统)。 程序员可以使用SOAP / HTTP,WebSphere MQ和J2EE J2C连接来访问服务。
业务流程编排 WebSphere Business Integration Server基础。 该容器支持实现Web服务接口并调用其他Web服务上的长期工作流程。 它还支持长期运行的业务活动事务。
应用程序适配器-为现有应用程序和系统提供SOA / Web服务外观 WebSphere Business Integration Server Foundation提供的应用程序适配器容器。 适配器在SOA协议和格式以及现有应用程序和系统的协议和格式之间转换。 例如,用于SAP的适配器将SOA编码的超文本XML传输协议转换为SAP现有的业务应用程序编程接口格式和远程功能调用(RFC)。
通过预定义SQL查询,XML查询或作为数据库存储过程实现的服务 DB2与WebSphere Application Server结合使用。 查询的参数来自SOA操作的输入消息,结果提供输出消息。
使用Java类和EJB实现的服务 WebSphere Application Server。

摘要

我们有关IBM SOA编程模型的系列的第一部分概述了IBM工具和产品如何与该模型匹配以及开发人员如何在其应用程序开发中有效地使用它。

本系列的未来主题将包括:

  • 使用SDO简化数据访问
  • 服务的定义以及不断发展的组件模型的介绍
  • 组件类型以简化开发
  • 基本组件类型
  • 服务组合和定制
  • 流程组件:BPEL和业务状态机
  • 定制服务:设计模式,模板和可变点
  • 面向服务的用户界面
  • SOA管理方法
  • SOA软件生命周期的开发工具
  • SOA中的安全性

翻译自: https://www.ibm.com/developerworks/xml/library/ws-soa-progmodel/index.html

ibm mq 编程

ibm mq 编程_IBM SOA编程模型简介相关推荐

  1. 【专家坐堂】四种并发编程模型简介

    本文来自网易云社区 概述 并发往往和并行一起被提及,但是我们应该明确的是"并发"不等同于"并行" •       并发 :同一时间 对待 多件事情 (逻辑层面) ...

  2. Actor编程模型——简介

    Actor编程模型--简介 2014年10月31日  ⁄ 综合 ⁄ 共 1983字 ⁄ 字号  小 中 大  ⁄ 评论关闭 一.            引言 之前系统中有这样一处代码: 在线上运行一段 ...

  3. Linux网络编程---I/O复用模型之epoll

    https://blog.csdn.net/men_wen/article/details/53456474 Linux网络编程-I/O复用模型之epoll 1. epoll模型简介 epoll是Li ...

  4. Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略

    Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...

  5. 非阻塞网络编程详解------IO模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  6. Linux网络编程---I/O复用模型之poll

    https://blog.csdn.net/men_wen/article/details/53456474 Linux网络编程-I/O复用模型之poll 1.函数poll poll系统调用和sele ...

  7. Linux网络编程---I/O复用模型之select

    https://blog.csdn.net/men_wen/article/details/53456435 Linux网络编程-I/O复用模型之select 1. IO复用模型 IO复用能够预先告知 ...

  8. C#多线程编程系列(一)- 简介

    目录 系列大纲 一.前言 二.目录结构 四.章节结构 五.相关链接 系列大纲# 目前只整理到第二章,线程同步,笔者后面会慢慢更新,争取能把这本书中精华的知识都分享出来. C#多线程编程系列(一)- 简 ...

  9. python语言编程:itertools.product的简介、使用方法(求笛卡尔积等)之详细攻略

    python语言编程:itertools.product的简介.使用方法(求笛卡尔积等)之详细攻略 目录 itertools的简介 itertools的使用方法 1.求笛卡尔积:根据输入的可遍历对象生 ...

最新文章

  1. 详解APNS苹果消息推送通知
  2. bootstrap modal使用方法
  3. html中index.css里面写什么,css中z-index是什么意思?
  4. gc日志一般关注什么_GC日志说明
  5. Spring+Hibernate配置多数据源
  6. 查询中国城市公交线路
  7. linux内核mtd分区,linux-kernel – 在运行时调整MTD分区大小
  8. java layoutinflater_使用LayoutInflater动态加载布局和操作控件
  9. 在一切都是虚的世界里,你能做的是什么?
  10. 【剖析 | SOFARPC 框架】系列之 SOFARPC 注解支持剖析
  11. oracle单行函数有哪些,oracle篇 之 单行函数
  12. Coding and Paper Letter(四十八)
  13. 【机器学习】支持向量机原理及例题详解
  14. 信息安全——密码学(下)
  15. 【ROS】ubuntu20.04+ROS安装上遇到的坑(主要是time out)
  16. TypeScript-基础类型学习
  17. 7.1.3 Python进阶 《函数》定义、调用,参数,返回值《面向对象》概念,类,实例,对象,属性,方法《模块、包》导入,自定义,常用内置:datatime,time,random,os,sys
  18. Python软件编程等级考试二级——20201206
  19. 英语面试中五大典型问题及其回答技巧
  20. python的Firebird驱动:FDB使用说明

热门文章

  1. 如何下载西门子产品CAD、3D和EPLAN文件
  2. 机器学习入门基础(一)
  3. 租房子,光看数据怎么够,Python爬取某站租房图片
  4. Attention mask理解
  5. Linux 用户管理 4 之密码管理
  6. iOS 判断手机型号及系统版本(最新)持续更新
  7. C#界面程序设计——04导入并修改word文件
  8. 苹果手机用计算机打不开怎么回事啊,苹果手机商店打不开怎么办
  9. Centos7命令行方式安装DM
  10. 手把手教你如何用PS抠白底图教程