用于实现Web 服务的SOA 编程模型,第 2 部分: 使用服务数据对象简化的数据访问

一文带你了解SOA接口测试 了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的 阅读详情

级别: 初级

Stephen A. Brodsky, 高级技术人员, IBM
Marcia Stockton, 高级技术人员, IBM

2005 年 8 月 04 日

利用服务数据对象简化面向服务的软件中的数据访问和表示。SDO 用统一的抽象代替各种各样的数据访问模型来创建、检索、更新和删除供服务实现使用的业务数据。这是我们有关用于 IBM® 面向服务的体系结构 (SOA) 的编程模型系列文章的第二篇。

服务对象数据(Service Data Object,SDO)使用统一的抽象代替了各种各样的数据访问模型来创建、检索、更新和删除供服务实现使用的业务数据。SDO(请参阅参考资料部分中的 Service Data Objects 2.0 和 Next-Generation Data Programming: Service Data Objects)是 IBM 面向服务的体系结构 (SOA) 的基础概念。SDO 将开发人员从如何访问特定的后端数据源的技术细节中解放出来,提高了他们的工作效率,这样他们就可以主要专注于业务逻辑(请参阅参考资料部分中的 Integrating relational data into Web applications、Next-generation data programming in the Java™ environment 以及 Using Service Data Objects with Enterprise Information Integration technology)。SDO 是与 BEA Systems, Inc. 联合制订的规范,并且在 IBM 系列产品中得到了广泛的使用,包括 WebSphere® Application Server 和 Rational® Studio 工具。Java™ 数据库连接(Java™ DataBase Connectivity),通常称为 JDBC,是执行结构化查询语言(Structured Query Langauge,SQL)语句的 Java 接口。目前,用于 JDBC、Web 服务描述语言(Web Services Description Language,WSDL)定义的服务、企业 JavaBean(Enterprise JavaBean,EJB)等等由 Java 编写的服务实现的编程模型都是相似的,但却又有一些让人讨厌的不同。

SDO 定义了一种单一的、统一的方法来访问和操作来自异构数据源的数据,包括关系型数据库、可扩展标记语言(eXtensible Markup Language,XML)数据源、Web 服务以及企业信息系统 (EIS)。它们是基于数据图(data graph)的概念。数据图就是一组可以从数据源中分离出来的树形结构的对象。SDO 可以在整个应用程序体系结构中使用。

应用程序体系结构的领域 如何使用 SDO
SOA
  • SDO 是服务的输入和输出。
数据访问
  • SDO 访问关系型、XML、EJB、Java 数据对象(Java Data Object,JDO)和 Hibernate 数据源。
  • SDO 是数据传输对象(Data Transfer Object,DTO)——也被称为值对象(Value Object)。
Web 服务
  • SDO 表示网络上的 XML。
消息传递
  • SDO 表示消息。
XML使用 SDO 的情况:
  • 支持 XML 的应用程序。
  • 访问 XML 文件、文档、资源和消息。
连接器/适配器(EIS,CICS)
  • SDO 表示数据记录。
EJB
  • SDO 是 DTO(也被称作值对象)。
  • Java 2 企业版(Java 2 Enterprise Edition,J2EE)设计模式。
ADO.NET
  • ADO DataSet 是 SDO 数据图的子集。
企业服务总线(Enterprise Service Bus,ESB)
  • SDO 是服务的输入和输出。
跨语言编程模型
  • 完整的应用程序可能横跨层和语言。
  • 用于很多种语言技能集的相同的编程模型。
模型驱动的体系结构(Model-driven architecture,MDA)
  • SDO 模型(类型(Type)和属性(Property))是通过统一建模语言(Unified Modelling Language,UML)类和组件定义的。
  • SDO 应用程序遵循 UML 顺序 (Sequence)、流 (Flow)、状态 (State) 和协作 (Collaboration)。
Java
  • SDO 是带有 POJO 接口的智能的“传统 Java 对象(plain old Java object,POJO)”。

在 SOA 中,应用程序并不直接地连接数据源。它访问一个叫做数据访问服务(data access service,DAS)的中介并接收响应中的数据图。DAS 是为特定数据源种类处理技术细节的服务。它为客户机将数据转换成 SDO 图。客户机应用程序与数据图进行交互来获得数据和改变数据。为了将更新应用于原始的数据源,应用程序将更新过的图发送回 DAS,而 DAS 又与数据源交互。通常,运行时提供 DAS 的实现,而应用程序开发工具提供对数据图的支持。

SDO 通过封装数据访问的细节将业务应用程序与技术改变相隔离,从而避开了技术改变产生的影响——重新编写应用程序以便跟上改变的技术(请参阅参考资料部分中的 Wikipedia)。例如,考虑一个设计用来从数据库中读取产品描述并将其作为网页显示的 Java Web 应用程序。为了访问数据库中的产品描述,应用程序很可能使用 JDBC。假设不久后应用程序拓扑发生了改变,在应用程序和数据库之间放置了 Web 服务。现在,应用程序不能再使用 JDBC 访问数据,而是需要重做大量的工作来替换 Web 服务应用编程接口 (API),例如文档对象模型(Document Object Model,DOM)或者基于 XML 的远程过程调用的 Java API(Java APIs for XML-Based Remote Procedure Call,JAX-RPC)。SDO 避免了这个问题;使用 SDO 编写的应用程序不必改变。

另外,SDO 提供了支持元数据 API 的应用程序、工具和框架来以统一的方式自省数据模型,而不管它的来源。DAS 将后端元数据转换成标准的 SDO 格式。

SDO 类型可以由 Java 接口、XML Schema、关系型表和列、EJB、COBOL 记录、消息或者 UML 来定义(请参阅参考资料部分中的 Catalog of OMG Modeling and Metadata Specifications);实现人员可以选择自己喜欢的系统类型。简单 Java 和 XML 数据类型是有效的 SDO 数据类型,这为 Java 实现人员简化了一步。SDO 支持动态的和静态的数据访问模型,两者也可以一起使用。我们将更详细地考虑这些内容:

  • 动态模型(缺省值)允许编程人员通过名称(字符串)获得和设置数据图中的数据元素。当 SDO 的类型在编译阶段未知时,或者当程序部署完以后可能要添加新的属性时,这特别有用。客户机应用程序或服务查询 SDO 来了解它的结构,然后按名称读取和更新任何元素。例如,可以编写一个泛型 SDO 访问函数并用特定于元素的元数据填充它来访问单独的 SDO。SDO 同样也使用 XML 路径语言( XML Path Language,XPath)表达式的子集来支持快速遍历许多 DataObject,例如 customer[1]/address/zip,以便快速访问 customer DataObejct 的 zip 代码。
  • 静态模型使用命名和类型化 Java 接口。每个数据元素有自己的“getter”和“setter”方法。工具从 SDO 类型和属性生成静态接口。

SDO 对于数据表示非常重要,即使没有典型的数据源也如此。这种用法的例子包括使用 Web 服务交换的 XML 消息、Java 消息服务 (JMS) 消息、XML 文件等等。





回页首


示例

下面的例子——定义了包含客户数据的数据对象——说明了使用 Java 或 XML 来定义和使用 SDO 是多么的容易。示例 1(使用 XML)是 SDO 类型的基础。


示例 1. 使用 XML 的 SDO 类型定义


				
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
                xmlns:tns="http://www.myvalue.com"
		targetNamespace="http://www.myvalue.com">
	<element name="customer" type="Customer"/>
	<complexType name="Customer">
		<sequence>
			<element name="customerID" type="string"/>
			<element name="firstName" type="string"/>
			<element name="lastName" type="string"/>
			<element name="stockSymbol" type="string"/>
			<element name="stockQuantity" type="int"/>
		</sequence>
	</complexType>
</schema>

在示例 2 中,由前面的 XML 所生成的 Java 接口说明了如何使用静态接口。


示例 2. 使用 Java 的 SDO 类型定义


				
public interface Customer {
	String getCustomerID();
	void setCustomerID(String customerID);
	String getFirstName();
	void setFirstName(String firstName);
	String getLastName();
	void setLastName(String lastName);	
        String getStockSymbol();
	void setStockSymbol(String stockSymbol);
	int getStockQuantity();
	void setStockQuantity(int stockQuantity);
}

一旦 SDO 类型定义好,就可以通过将类型定义传递给 SDO 数据工厂 (data factory) 来将其实例化(为数据对象分配存储空间)。这个工厂仅仅是运行时的一个组件,它的功能就是根据 SDO 类型定义实例化 SDO 数据对象。

示例 3 和示例 4 分别展示了如何通过传递 XML Schema 名称空间和复杂的类型名称(在示例 1 中定义的)或者 Java 接口类(在示例 2 中定义的)作为参数来创建 SDO。


示例 3. 使用 XML Schema 名称空间和复杂的类型名称参数创建 SDO


				
DataObject customer = DataFactory.INSTANCE.create("http://www.myvalue.com", "Customer");



示例 4. 使用具有 Java 接口类参数的 SDO DataFactory 创建 SDO

				
Customer customer = (Customer) DataFactory.INSTANCE.create(Customer.class);

在 SDO 实例化之后,实现就可以访问它了。示例 5 和示例 6 中的代码示例分别展示了对 Customer SDO 的动态和静态访问。


示例 5. 动态访问 SDO


				
DataObject customer = ... ;
customer.setString("customerID", customerID);
...
customer.setInt("stockQuantity", 100);
String customerID = customer.getString("customerID");
...
int stockQuantity = customer.getInt("stockQuantity");



示例 6. 静态访问 SDO

				
Customer customer = ... ;
customer.setCustomerID(customerID);
...
customer.setStockQuantity(100);
String customerID = customer.getCustomerID();
...
int stockQuantity = customer.getStockQuantity();

我们使用访问 XML 文件服务和关系数据库的例子来进一步说明由 SDO 推动的编程模型的简单性。请注意,尽管技术之间存在差异,但是这些应用程序是如此的相似。应用程序开发人员能够专注于业务逻辑,而让服务去处理更新持久数据存储的实现细节。

示例 7. XML 文件服务

这个简单的例子将数据从 XML 文件加载到 SDO 数据图,打印并更新数据,然后将它写回文件。(业务目标是将“quot;Adam”改为“Kevin”。)

根据根 XML 元素和一个多值的 customer 属性定义将要作为根 customers 数据对象读入的 XML 文件。在 XML 文件中 Customers 为每个 customer 元素包含一个数据对象。每个 customer 具有两个属性:SN 和 firstName。

<customers xmlns="http://customers.com">
	<customer SN="1" firstName="Adam" />
	<customer SN="2" firstName="Baker" />
</customers>

读取文件数据。

DataObject root = xmlService.load(InputStream);

遍历 customer 数据对象列表并打印出每个名 (first name)。

Iterator i = root.getList("customer").iterator();
while (i.hasNext()) {
	DataObject cust = (DataObject) i.next();
	String name = cust.getString("firstName");
	System.out.println(name);
}

将第一个客户数据对象的 firstName 属性设为 Kevin。中间件更新变更摘要(这里并没有显示出来)来指示改变了的数据。

DataObject customer1 = root.getDataObject("customer[1]");
customer1.setString("firstName", "Kevin");  // or

root.setString("customer[1]/firstName", "Kevin");


将数据对象写入文件。

xmlService.save(OutputStream, root);

结果是更新的 XML 文档。

<customers xmlns="http://customers.com">
  <customer SN="1" firstName="Kevin" />
  <customer SN="2" firstName="Baker" />
</customers>

示例 8. 访问关系数据库

虽然复杂的关系数据库到 SDO 的映射是可行的,但是这个例子使用的是一个非常简单的映射:每个数据库表都是一个 SDO 类型,表的每行是 SDO 数据对象,而每列是 SDO 属性。应用程序逻辑是相同的:通过执行预先定义好的查询从数据库中读取、打印并更新数据(将“Adam”改为“Kevin”),将更改保存到数据库。数据库查询返回 CUSTOMER 表中的两行:

CUSTOMER ID(整数,主键)CUSTOMER FIRSTNAME(字符串)CUSTOMER LASTNAME(字符串)
1Adam Smith
2BakerStreet

下面给出了带有解释的 SDO 实现。

rdbService 查询数据库以获得数据。

DataObject root = rdbService.get(); 

相同的数据可能已经用 XML 等价地表示了。

<customers>
  <CUSTOMER ID="1" FIRSTNAME="Adam" LASTNAME="Smith"/>
  <CUSTOMER ID="2" FIRSTNAME="Baker" LASTNAME="Street"/>
</customers>

打印每个客户名。

Iterator i = root.getList("CUSTOMER").iterator();
while (i.hasNext()) {
	DataObject cust = (DataObject) i.next();
	String name = cust.getString("FIRSTNAME");
	System.out.println(name);
}

将第一个数据对象的 FIRSTNAME 设为 Kevin。中间件更新变更摘要(这里并没有显示出来)来指示改变。

DataObject customer1 = root.getDataObject("CUSTOMER[1]");
customer1.setString("FIRSTNAME", "Kevin"); // or

root.setString("CUSTOMER[1]/FIRSTNAME", "Kevin"); 

将更新的数据写入数据库。

rdbService.update(root);

现在数据库包含:

CUSTOMER ID(整数,主键)CUSTOMER FIRSTNAME(字符串)CUSTOMER LASTNAME(字符串)
1Kevin Smith
2BakerStreet

注意,第一行已经被更新了。

如果在我们的示例应用程序已经获得数据图之后,另外一个应用程序访问数据库并更改了值会怎么样?在写入时,数据访问服务检查变更摘要来决定如何对数据源应用更新。数据库可以使用开放式并发控制 (optimistic concurrency control) 来确保这个改变之前最后包含的值是“Adam”(否则,另外一个应用程序可能先改变数据,可能在该应用程序中需要某些错误恢复)。某些服务实现了更为高级的开放式并发形式;变更历史记录提供了那些算法所需要的原始值。

使用 EJB 时,SDO 作为 DTO(也称作值对象)J2EE 设计模式。一般来说,访问实体 EJB(Entity EJB)的每个属性的开销非常大,所以传输几个数据图中的 SDO 对象效率更高。会话 EJB(Session EJB)可能有方法产生和使用 SDO 图来更加高效地直接访问实体 EJB。Customer 实体 EJB 封装了对 Customer 记录的数据库访问。会话 EJB 提供了访问方法来从 Customer 实体 EJB 产生和返回 Customer SDO 图。


示例 9. 返回 SDO 和由 SDO 更新实体 EJB 的会话 Bean 接口


				
public interface CustomerSession {
	Customer getCustomerByID(String customerID);
	Customers getCustomersByLastName(String lastName);
	void updateCustomers(Customers customers);
}

Customers 是包含若干客户的 SDO 根数据对象。Customers 的 List 包含 Customer 数据对象。ChangeSummary 用来记录对 Customer 对象所做的全部更改,包括任何的添加、删除或更新。updateCustomers() 方法利用所做的更改来更新 Customer 实体 EJB,并且可以在一个事务中批处理对数据源的更改。


示例 10. 使用 Java 的 Customer 的 SDO 类型定义


				
public interface Customers {
	List<Customer> getCustomers();
	ChangeSummary getChanges();
}





总结

SDO 为所有数据源启用了对应用程序数据的统一访问和公共编程模型,而不管数据存储在何地以及如何存储。SDO 利用了 XML 的简易性,而又没有引入 XML Schema 的复杂性或序列化的性能问题。通过同时使用 SDO 和 SOA,可以将系统编程任务从业务逻辑中分离出来,并且将其封装在可重用的服务之中,而不是所有编程人员都必须掌握这些技能才能入门。它们在没有陷入技术和实现细节的情况下简化了业务应用程序的编程,防止了技术改变产生的影响。有了 SDO,业务应用程序就是名副其实的业务应用程序。

面向服务的架构SOA (1)SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。(2)在SOA中,服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动的交互,为实现用户目标提供支持。(3)SOA并不仅仅是一种开发方法,还具有管理上的优点,管理员可直接管理开发人员所构建的相同的服务。多个服务通过ESB(企业服务总线)提出服务请求,有应用管理来进行处理。 阅读详情

相关推荐

普元EOS培训示例源码1

反正导入普元EOS中,就可以运行查看效果,童叟无欺,你值得拥有!

DataFactory 对象、Query 方法和 CreateObject 方法范例 (VBScript)

该范例使用 RDS.DataSpace 对象的 CreateObject 方法创建 RDSServer.DataFactory 对象。要测试该范例,请将该代码剪切并粘贴到标准 HTML 文档的 标记之间,并命名为 ADCapi7.asp。ASP 脚本将标识您的服务器。 RDS API Code Examples Using Query Method of RDSServer.DataFa

bq222 675

webapi 用于数据交互,数据收集。

c# webapi 用于数据交互,数据收集。 方法 实现一个REST服务器,以发出POST和GET请求。这个服务器 将用于确保被测设备在正确的位置,获取有关被测设备的信息,以及 报告站试运行信息。 主机:需要操作 服务器将需要位于静态IP地址或具有静态主机名,其中静态主机名 端口。

Spring重复扫描导致事务失败的解决方案及深入分析

问题及日志 使用Spring和mybatis,然后配置事务,出现SqlSession was not registered for synchronization because synchronization is not active,事务没有启用成功。 [org.mybatis.spring.SqlSessionUtils] - Creating a new SqlSession [...

haoyifen的专栏 2694

GAMIT基线解算实战:从RINEX数据准备到精度报告解读(附2024年tables更新攻略)

本文详细解析了2024年GAMIT基线解算全流程,从RINEX数据准备到精度报告解读,特别更新了tables配置攻略。涵盖工程目录设计、数据预处理、关键配置文件更新及基线解算策略优化,帮助用户掌握高精度GNSS数据处理技术,提升解算效率和结果可靠性。

weixin_42520374的博客 305

松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器

weixin_48924581的博客 1万+

SOA编程模型

SOA编程模型作者 Boris Lublinsky译者 胡键 发布于 2007年5月23日 下午10时23分 社区 SOA 主题 编程, 建模 随着面向服务架构(Service-Oriented Architecture)使用率的增长,由Web服务API(目前最流行的SOA实现技术),如Java中的JAX-RPC或.NET中的Web服务扩展(Web Services Extension

麦田开拓者 1588

中科蓝讯AB536X/AB892X芯片开发避坑指南:Downloader配置中那些容易忽略的细节

本文详细解析中科蓝讯AB536X/AB892X芯片开发中Downloader配置的关键细节,包括软开关机实现、触摸灵敏度调试、量产校频等常见问题。特别针对无PR口芯片的替代方案、触摸参数优化、校频流程等易忽略环节提供实用解决方案,帮助开发者规避量产风险,提升开发效率。

weixin_30687051的博客 476

SOA 建模: 第 3 部分 服务实现

本系列教程五部曲中的第 3 篇文章,介绍基于 SOA 的 Web 服务如何被实际实现。该服务实现首先要决定什么组件将提供什么服务。该决定对于服务可用性、分发、安全性、事务范围和耦合具有重要的含义。在这些决定做出之后,您就能够对每一项服务的功能性是如何实现的,以及被要求的服务是如何被实际使用的进行建模。然后,您能够使用包含在 IBM® Rational® Software Architect 中的

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1222

Android AudioFlinger(一)——初识AndroidAudio Flinger

AudioFlinger 是 Android 系统中的音频中间层(audio HAL, Audio Hardware Abstraction Layer)的一部分,负责管理音频的混音、播放和音量控制等功能。它充当 Android 应用程序和音频硬件之间的桥梁。

hirezy 1669

ibm-soa编程模型_SOA编程模型

soa编程模型 随着面向服务的体系结构的采用率提高,由Web服务API(当今最流行的SOA实现技术)(例如Java中的JAX-RPC或Web服务扩展( .Net中的API不足以有效实施SOA: 这些API的语义更适合于服务调用和SOAP处理的技术方面,然后更适合于服务的使用和支持。 它们中的大多数仅提供SOAP over HTTP支持a ,这对于SOA实现而言并不总是最佳的传输方式。 ...

cunfu6353的博客 496

基于Qt的工业组态软件开发:图形绘制与TCP通讯实现

在数据接收时,通过 readyRead 信号触发解析函数,校验数据包完整性后提取有效数据,并更新对应图形元素的状态,例如根据温度值改变矩形的填充色,实现设备状态可视化。测试阶段,我们将软件部署到Windows工控机,连接PLC设备进行通讯测试,结果表明图形元素响应及时,TCP数据传输稳定,满足工业现场的基本需求。综上所述,基于Qt的组态软件开发,核心在于利用 QGraphicsView 框架实现图形元素的灵活绘制与管理,结合 QTcpSocket 完成工业数据的可靠交互。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 273

soa 面向服务_用于实现Web服务的SOA编程模型,第5部分,面向服务的用户界面

存档日期:2019年5月15日 | 首次出版:2005年8月9日 面向服务的编程模型可以在用户或管理员的控制下,通过抽象化接口,标准化消息并在表示层聚合独立的信息源,从而简化程序与人之间交互的开发。 IBM SOA编程模型系列的第五篇文章介绍了用户所面临的服务,以及用户通过人工任务管理器提供的服务。 本系列的前几篇文章介绍了基于面向服务的体系结构(SOA)概念的Web服务的语言无关的数据访...

cusi77914的博客 140

Unity Hololens2开发|(一)环境配置

开发过程中预览和调试应用:可以在电脑上的 Unity 编辑器中以播放模式本地运行应用,并将体验流式传输到 HoloLens2。将来自 HoloLens2 的输入(视线、手势、语音和空间映射)发送到电脑,在其中内容以虚拟沉浸式视图渲染。在HoloLens2设备中,打开Settings面板,依次选择Update & Security > For Developers,打开“Developer Mode”。在开发计算机中打开控制面板,依次选择“更新和安全> 开发者选项”,打开“开发人员模式”;

游戏开发小Y的博客 14万+

链接文件及功能安全:S32K3如何将FLASH驱动放到RAM里面、RAM如何实现软件复位数据不丢失操作。

在通过RTD的SDK也好MCAL也好,始终存在一个问题,生成的代码除了看门狗模块,默认都是放在flash里面,按照正常逻辑来看没啥大的问题,思考一个问题:Flash放在0x100的位置,但是此时我们要操作0x100怎么办?那肯定不允许啊,但是将flash的驱动放在RAM里面就可以避免这个问题的产生。Flash的特性:PF0能操作PF1,当然PF1也能操作PF0的,以此类推,只要不操作自身,想怎么玩都可以。这也是一个物理特性吧。

梦想技术家 2310

转:初步理解一下:SOA, SOAP, Web Service, WSDL等

什么是SOA、SOAP? SOA到底是什么?      SOA(Service-Oriented Architecture)的定义是面向服务的架构,就是说将软件按照功能设计成一个个服务,这些服务用标准的方式定义接口、并通过标准的协议进行调用。 SOA所定义的接口和调用方式是独立于编程语言和运行平台的,广义上讲SOA可以基于不同的底层技术实现,比如CORBA和Web Services。但CORB...

1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SOA编程模型介绍

目前比较流行的SOA编程模型有3种:Indigo,JBI和SCA.一.IndigoIndigo是Windows通信基础,它试图为所有服务元件创建统一的OO模型来简化服务编程。 Indigo将服务定义为暴露一组端点(endpoint)的程序,每个端点是3个主要元素的组合5:   端点的地址(address)——它是一个网络地址,通过它,端点可以被寻址。   端点

honnom的专栏 1165

jre9下载 jdk9

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用于实现Web服务的SOA编程模型 第 1 部分: IBM SOA编程模型简介

级别: 初级Donald Ferguson, IBM 顶尖学者及 Software Group 首席架构师, IBMMarcia Stockton, Senior Technical Staff 成员和主席,Software Group 编程模型工作组, IBM2005 年 7 月 01 日IBM® 面向服务体系结构(Service-Oriented Architecture,SOA)

老家的橙子好吃 1043

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

用于实现Web服务的SOA编程模型,第1部分:IBM SOA编程模型简介

导读:  用于实现 Web 服务的 SOA 编程模型,第 1 部分: IBM SOA 编程模型简介  IBM 面向服务体系结构(Service-Oriented Architecture,SOA)编程模型使非程序员可以创建和重用 IT 资产,而不需要掌握 IT 技能。该模型包括组件类型,布线,模板,应用程序适配器,统一数据表示和企业服务总线(Enterprise Service Bus

zl198183的专栏 648

什么是SOA架构?为什么使用SOA架构?

SOA架构简介 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,通过这些服务之间定义良好的接口和契约联系起来。 接口是采用中立的方式进行定义的,它应该独立于实现服务的 硬件平台、操作系统和编程语言。 这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互 ** SOA具有以下五个特征 ** 1.可重用; 2.松耦合; 3.明确定义的接口; ...

weixin_44508042的博客 7400

SOA & Web 2.0:权威解释什么是web2.0

我们已经详细讨论了SOA,那么当前的Web 2.0、PHP、AJAX以及其他诸如此类的IT技术与Web 2.0又是什么关系呢?SOA是实现IT和业务灵活性——灵活应对—— 的关键。因此,它也是激发业务潜能的关键。Web 2.0则提供了一个不同的人和观念进行实时有效交流的平台。通信的机制多种多样,包括播客(podcast)、维基(wiki)及社会性网络(SNS)等。灵活性是Web 2.0成功的关

千禧龙的专栏 8114

用于实现 Web 服务的 SOA 编程模型,第 1 部分: IBM SOA 编程模型简介

级别: 中级Donald Ferguson, IBM 顶尖学者及 Software Group 首席架构师, IBMMarcia Stockton, Senior Technical Staff 成员和主席,Software Group 编程模型工作组, IBM2005 年 7 月 IBM® 面向服务体系结构(Service-Oriented Architecture,SOA)编程模型使非程序员可

hzxia的专栏 980

分布式系统核心:面向服务的分布式架构,基于Web服务的SOA

Web服务是SOA架构系统的一个实例,在SOA架构实现中的应用非常广泛。由于互联网的兴起,Web浏览器成为占主导地位的、用于访问信息的模型。现在的应用设计的首要任务大多数是让用户通过浏览器来访问,而不是通过编程访问或操作数据。网页设计关注的是内容,解析实现方面往往是繁琐的。传统RPC解决方案可以工作在互联网上,但问题是,它们通常严重依赖于动态端口分配,往往要进行额外的防火墙配置。Web服务成为一组协议,允许服务被发布、发现,并用于技术无关的形式,即服务不应该依赖于客户的编程语言、操作系统或机器架构。

2401_83384536的博客 868

使用Java Web Services来实现SOA(一)

一、使用Java Web Services实现SOA 现代企业Java应用需要支持SOA原则。大多数SOA应用程序的基础是Web Services。如果你是一名企业级Java开发人员。有可能想掌握包含在J2EE5和J2EE中的Web Services标准。这些标准包括:JAX-WS(其前身是JAX-RPC)[JSR224],JAXB[JSR222],Web Services元数据(WS-Met

fanfan6621的专栏 1686
上一篇: 用于实现Web服务的SOA编程模型 第 1 部分: IBM SOA编程模型简介
下一篇: 在consolemode中使用 C/C++ 编译器
老家的橙子好吃
博客等级 码龄21年 21粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值