初始SOA

在面向服务的企业(SOE)中采用 SOA 希望了解如何在面向服务的企业 (SOE) 中采用面向服务的体系构 (SOA) 吗?作者 Judith Myerson 是 developerWorks 的定期投稿人,她在本文中将重点介绍与过渡到 SOE、转换活动、组织变更的影响和实现 SOE 相关的问题,同时还将介绍如何避免常见的组织缺陷。获取如何在 SOE 中缩小差距的建议。 引言我的文章“网格和网络中心世界中的 SOA 服务 阅读详情
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员 或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J2EE来实现,而使用该服务的应 用程序可以在不同的平台之上,使用的语言也可以不同。

  SOA有以下特性

  SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。

  SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。

  在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成 (UDDI, Universal Description, Definition, and Integration)是服务登记的标准。

  每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。

  为什么选择SOA?

  不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构 (application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以 通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。

  如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。

  Figure 1. Supply chain application. Click on thumbnail to view full-sized image.

  服务架构

  为了实现SOA,企业需要一个服务架构,图2显示了一个例子:

  Figure 2. A sample service architecture. Click on thumbnail to view full-sized image.

  在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控 制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。

  SOA基础结构

  要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。图3所示的是一个典型的SOA基础结构。接下来的章节将逐一讨论该结构的每个部分。

  Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.

  SOAP, WSDL, UDDI

  WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消 费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表 (registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

  WS-I Basic Profile

  WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。

  J2EE 和 .Net

  尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET) 的服务互用。

  服务品质

  在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话 促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性, 可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这 些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。

  安全

  Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。

  可靠

  在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。 具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。

  策略

  服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要 求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。

  控制

  当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的 服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。

  管理

  随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重 要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。

  其它的qos特性,比如合作方之間的溝通和通訊,多個服務之間的事務處理,都在WS-Coordination 和 WS-Transaction 標準中描述, 這些都是OASIS 的工作。

  SOA 不是Web服务

  在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是 Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用 Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。

  SOA的优势

  SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处 不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变 所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来 组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

  About the author

  Raghu R. Kodali is consulting product manager and SOA evangelist for Oracle Application Server. Kodali leads next-generation SOA initiatives and J2EE feature sets for Oracle Application Server, with particular expertise in EJB, J2EE deployment, Web services, and BPEL. Prior to product management, Kodali held presales and technical marketing positions in Oracle Asia-Pacific, based in Singapore. Prior to Oracle, he worked as software developer with National Computer Systems, Singapore. He holds a master's degree in computer science and is a frequent speaker at technology conferences. Kodali maintains an active blog at Loosely Coupled Corner

别再只看EAS了!用英飞凌SOA_AS图,5分钟评估你的MOSFET在雪崩中是否安全 本文详细介绍了英飞凌SOA_AS图在评估MOSFET雪崩安全中的实际应用。通过对比传统EAS参数的局限性,展示了SOA_AS图在电力电子设计中的工程优势,包括直观判断安全边界、适应不同应用场景等。文章还提供了实战读图四步法和高级应用技巧,帮助工程师快速完成器件安全评估。 阅读详情

相关推荐

IGBT基础知识

IGBT

u010783226的专栏 1万+

SOA、SOI和SOE

【来源:《IT经理世界》】赵捷 基于SOA 原理开发的软件和产品并不能保证企业具有SOA 架构,它们之间没有必然联系。 近期,我国IT 业对SOA的讨论和推崇轰轰烈烈,很多IT 产品和服务提供商纷纷举办各种有关SOA的培训和产品展示。 这个跨行业和范围甚广的SOA 引起了包括国内很多著名大型企业在内的CIO、IT 总经理、IT 高管们的注意和兴趣,更有不少专家在各种场合谈论SOA,有的企业还实施了SOA。然而大多数IT管理者们要么对SOA的定义、概念和内涵混沌不清,要么就是以自己的理解来阐述SOA的内涵,还

来啊 快活啊 5197

用ESP32和HomeSpan自制HomeKit智能灯,手把手教你从零接入苹果家庭App

本文详细介绍了如何使用ESP32开发板和HomeSpan开源库自制原生HomeKit智能灯,从硬件搭建到软件配置,再到通过苹果家庭App控制的全过程。项目绕过了苹果MFi认证,成本低廉但功能完整,支持Siri语音控制、自动化场景等高级功能,是智能家居DIY的实用指南。

weixin_28717431的博客 327

系统架构、技术构架、应用构架 区别

系统架构:指的完整系统的组成架构,例如系统分成几个部分?服务平台、管理门户、终端门户、ATM门户、外部系统以及接口、支撑系统等,将这些系统进行合理的划分。然后再进行功能分类细分,例如服务平台内部划分为系统管理、用户管理、帐号管理、支付管理、接口层、统计分析等逻辑功能。总之,将整个系统业务分解为逻辑功能模块,并且科学合理,就是系统架构了。 技术架构:从技术层面描述,主要是分层模型,例如持久层、数据

jxguoyan的专栏 2万+

QGis二次开发 —— 5.1、基于qgis开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

基于qgis开发雷达扫描、无人机飞行跟踪等

326

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 391

SOA架构与微服务架构到底是什么?以及对应的一些常用的框架简介

架构是逻辑上的设计模式,而框架则是具体的实现。一个架构模式上,可能会使用到多个框架。 一、架构的演变 架构的演变是根据业务量的急速扩张对技术要求不断的加深而产生的。如果细粒度的划分可以有很多路线,我一般将演变过程大体上分为这几类: 单体架构 -----> 分布式架构 -----> SOA(面向服务架构) ------> 微服务 1.传统的三层架构 在传统的架构中,S...

Asa_Prince的博客 1359

C/C++ 静态代码检查工具cppCheck

Cppcheck是一个用于C/C++代码的静态分析工具,它可以帮助开发者检测代码中的错误;Cppcheck可以检测出许多类型的错误,包括语法错误、未使用的函数、内存泄漏、未初始化的变量等;Cppcheck还支持用户自定义规则,这使得开发者可以根据自己的需求定制Cppcheck的行为;使用--suppress如果你想要忽略某些警告,可以在命令行中使用 --suppress 选项。

贝勒里恩的博客 4955

对SOA的理解

看了篇文章,对SOA有了初步的理解。可以把SOA架构看作成一个完整的企业架构,企业里有各种业务(业务系统),每个业务都有自己的服务,业务通过ESB(企业服务总线)串联起来,有个服务注册中心,业务把自己的服务注册到注册中心。消费者可以在注册中心找到自己的服务,完成自己的需求。达到一站式服务,就像超级商场和小卖铺的区别一下。 以下是这篇文章.   简介      最早在1996年,

msjcool的专栏 1290

2023年12月青少年C/C++软件编程(三级)等级考试试卷及答案解析

有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。输出为一行,表达式的值。任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

长春高老师编程 1513

GEE:连续变化检测 CCD 第一步(导出ee.Algorithms.TemporalSegmentation.Ccdc函数的结果)

连续变化检测与分类(Continuous Change Detection and Classification, CCDC)主要有两个组件,一个连续变化检测 CCD,另外一个分类。在 Google Earth Engine (GEE)平台上进行 CCD 时间序列变化检测的时候,为了防止内存超限问题,将代码分为2阶段执行。第一阶段是运行 `ee.Algorithms.TemporalSegmentation.Ccdc` 函数,本文将详细介绍 CCD 的第一阶段的代码。

养乐多的博客 2497

SOA成熟度模型

标签:成熟度  ea  体系结构  lob  模型  it       SOA项目往往规模较大,具有很大的风险,而获得回报也可能很大。SOA项目的投资回报(ROI)有时很难量化,需要稳定的流程和方法来确保SOA项目的 成功。直接着手SOA项目并非始终是最好的出发点,组织必须确定在其SOA活动...

yangzibin的博客 440

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5103

SOA-BP混合模型:优化神经网络分类性能的智能算法

神经网络作为机器学习的基础模型,其性能优化一直是研究热点。BP神经网络通过误差反向传播实现参数调整,但存在收敛速度慢、易陷入局部最优等问题。群体智能优化算法如海鸥优化算法(SOA)通过模拟生物群体行为,展现出优秀的全局搜索能力。将SOA与BP神经网络结合,可以优化初始权重、网络结构和学习率等关键参数,显著提升分类准确率和训练效率。这种混合方法在医疗诊断、工业检测等场景表现突出,例如在乳腺癌数据集测试中准确率达到96.1%,比传统BP提升4个百分点。算法实现涉及种群初始化、适应度评估和动态参数调整等关键技术,

weixin_31774841的博客 230

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

浅析SOA成熟度模型的五个阶段

   在实施SOA之前,企业先应了解如何通过评估工具来定义当前的环境与技术现状。作为评估流程的一部分,SOA成熟度模型起到了至关重要的作用。评估SOA的准备度  任何企业都希望能够从SOA部署中获取满意的回报,但事实往往却相反。虽然成功部署SOA并没有捷径可循,但依然能从以下两个方面来判断你的企业是否适合实施SOA:◆明确定义服务:企业必须能清晰地组织并定义服务,无法定义服务意味着暂时不需要SOA

胡争辉 1330

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

用 Rational Software Architect 建立面向服务架构(SOA)的模型,第 5 部分

本系列教程详细介绍了利用 IBM ® Rational® Software Architect 进行面向服务的体系结构(service-oriented architecture,SOA)的建模。您将学习 Rational Software Architect,以及 IBM WebSphere Business Modeler 如何支持用于 SOA 规范的模型驱动开发(model-driv

IBM技术期刊 706

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

应对车辆配置多样性:SDV与SOA的协同应用方案

摘要:本文探讨了如何利用面向服务架构(SOA)和软件定义车辆(SDV)技术实现多样化的车辆配置管理。研究通过"乘客欢迎"案例,分析了物理配置、功能订阅和用户偏好三类可变因素的处理方法。文章提出采用COVESA车辆信号规范(VSS)作为硬件抽象层,结合虚拟原型开发环境,有效应对车辆配置的复杂性。研究发现SOA和SDV架构具有处理可变配置的潜力,但需进一步研究产品线工程方法并建立物理测试环境验证方案。该研究为汽车软件开发者提供了一种管理多样化车辆配置的新思路。

NewCarRen的博客 857

Iona 加入了Eclipse 联盟

Iona 加入了Eclipse 联盟,成为了Eclipse的SOA项目的发起和领导者."SOA Tools Platform (STP) 项目的目的是为开发者提供一个基于SOA架构的整合开发平台. 项目会遵循Eclipse的项目模式, 这个平台将会是一系列扩展工具(开发或者部署SOA应用的工具)的基础. Iona将会为这个项目提供种子代码."这无疑是Eclipse社区引人瞩目的一件事情.正如发言中

王洪伟的专栏 2086

Eclipse SOA项目中的SCA, JAX-WS和Ajax

在一月份的时候,当Eclipse 基金会为SOA项目(STP)召开的第一次委员会结束之后,SearchWebServices.com对Iona Technologies公司首席技术官 Eric Newcomer进行了简短的采访。9月的第一周,在麻省剑桥将举行Eclipse世界大会,SOA项目(STP)委员会准备在大会上做一个关于SOA项目的进展报告,因此,就这个报告内容,我们采访了Newcomer

王洪伟的专栏 3578

【BP预测】基于海鸥算法优化BP神经网络实现数据预测附matlab代码

为降低某车型前保险杠注塑成型中产生的翘曲变形,基于数值模拟结果,将BP神经网络与海鸥算法结合,确定了BP神经网络的初始权值和阈值.将SOA-BP模型代入遗传算法中求解最佳工艺参数.由极差分析可知,影响翘曲变形最显著的因素为保压时间和模具温度.基于极差分析设计补充实验,训练SOA-BP神经网络并作为遗传算法的适应度值进行迭代寻优.结果表明:SOA-BP模型的相关系数R2可达0.99以上,平均绝对误差为1.05%,能较精准地预测翘曲量.

Matlab_jiqi的博客 153

SOA起始

[转载] 有人说SOA是一种IT策略,有人说SOA是一种架构理念,还有人说SOA是一种服务。SOA到底是什么?它将带来什么?软件产业的变革亦或是新的机遇下的挑战?业界权威专家带领我们一起去深究,去探索。

mj_yuan的专栏 1322

大型电商网站:第三章:环境搭建

下面是我要搭建的一个简单的SOA面向服务分布式架构: 主要使用技术:SpringMVC、SpringBoot、mybatis、dubbo、zookeeper、redis、elasticsearch、nginx、Fastdfs、activeMQ、alipay 技术选型: 使用SpringMVC进行表述层开发 使用MyBatis进行持久化层开发 使用Spring进行组件整合并管理声明式事务...

我是Java程序员廖志伟,感谢朋友们的支持! 1030
上一篇: vi学习(二)
下一篇: mvn 创建项目
volcanodingning
博客等级 码龄19年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值