软件技术的 新热点 : 面向服务的计算 Service-Oriented Computing...
description
Transcript of 软件技术的 新热点 : 面向服务的计算 Service-Oriented Computing...
在西北第二民族学院的讲座 2007.6
1
软件技术的 新热点:
面向服务的计算 Service-Oriented Computing (SOC)
西北大学软件工程研究所 郝克刚
2在西北第二民族学院的讲座 2007 。 6
面向服务的计算Service-Oriented Computing(SOC) , 面向服务的结构Service-Oriented Architecture (SOA).
2005 年曾为我校研究生做过的一个报告。一些研究生开展了这方面的工作。
3在西北第二民族学院的讲座 2007 。 6
讲座大纲
一. 软件技术的新热点:面向服务的计算。二. 发展的历史渊源:
信息系统结构的发展趋势。 软件的生产方式的转变。 软件技术的发展。
三. 面向服务的结构 SOA 。四. 服务的描述。五. 服务的发现。
六.服务的组合。七.模型和理论。八.结束语。
4在西北第二民族学院的讲座 2007 。 6
一,软件技术的新热点
SOC — 软件技术的新热点。
从比尔盖茨关于消除信息孤岛的讲话说起。
2001 , Bill Gates : Microsoft .NET Today2006 ,比尔 · 盖茨:明日工作新世界
5在西北第二民族学院的讲座 2007 。 6
Bill Gates : Microsoft .NET Today June 14, 2001
大多数业务信息都存储在集中式的数据库中,在需要时,向个人用户一次提供一个页面。糟糕的是,这种页面只是一种数据的 “图画”,而不是数据本身,迫使开发人员去“屏幕刮取”所需的信息。
今天这种孤立的应用和 Web 网站创建的是功能和数据的孤岛。
解决这些问题是对下一代 Internet 的关键性挑战。 解决方案的核心是可扩展的标注语言( eXtensible
Markup Language, or XML. )在以 XML 为基础的技术(如 SOAP 、 UDDI 等)的帮助下创建一类新的软件。
6在西北第二民族学院的讲座 2007 。 6
比尔 · 盖茨:明日工作新世界 由于 XML 和丰富 Web services 的出现,企业能够日益与合作伙伴无缝分享信息和过程,并建立一些虽然跨越多个机构但作为一个统一整体工作的供应链。
我们将通过下一代生产力平台实现这个目标,这个平台将建立于当今微软 Office 程序和服务系统的扎实基础上。我们将使人们能够创建更有效的专业文件,能够从任何地点获取工作信息,能够更好地管理个人、团队和项目任务。
基于 XML Web services 标准的 .NET 开发平台可以实现个人之间,个人与企业之间,和企业之间的信息互连,这样就实现人们可以随时随地存取和使用信息的梦想。
7在西北第二民族学院的讲座 2007 。 6
各软件公司纷纷提出对策。 Microsoft 微软宣布推出 Windows .NET Server
RC1 ,预见下一代平台技术浪潮 Sun. 面向服务的体系结构因其固有的松散耦合与互操作性,成为许多企业应用的自然选择。使用 J2EE 提供的 Web 服务功能可以很容易地构建能够访问现有业务流程的 SOA 系统。
IBM 推出新软件与服务 隶属面向服务体系结构。 Oracle 。应用程序网格计算的特征和优点恰恰是面向服务体系结构 (SOA) 的特征和优点
8在西北第二民族学院的讲座 2007 。 6
IT 理念殊途同归 VERITAS 强调,在“效用计算”模式下,可用性将使数据
和应用“永远在线”,从而确保最终用户随时都可以获得服务;
BEA 指出“流体计算” 能帮助企业将 IT响应时间从几个月缩短为几分钟,其最终目标是使实时的业务目标与企业的每一步变化紧密结合在一起;
Microsoft 比尔盖茨表示,在“无缝计算”的世界里,人们可以实现在任何时候、任何地点、任何设备得到任何想要的信息。
IT厂商理念虽然层出不穷,随需应变、效用计算、流体计算、无缝计算、实时企业、动成长企业等等理念看似复杂、毫不相干,但是他们骨子里却都透着面向服务、整合资源、按需分配、实时反应共性。
面向服务的计算( SOC )是实现上述理念的技术基础。
9在西北第二民族学院的讲座 2007 。 6
World Wide Web Consortium (W3C)
互联网协调指导委员会 (W3C) 为适应 SOC 开展了一系列工作
成立工作组, Web Services Addressing Working Group , Web Services Description Working Group Web Services Architecture Working Group Semantic Web Services Interest Group Web Services Choreography Working Group
制定标准: XML-RPC, SOAP, WSDL , OWL , WS-CDL, ……
10在西北第二民族学院的讲座 2007 。 6
国际会议
International Conference of Service Oriented Computing ( ICSOC ) Trento, Italy (2003) New York City, USA (2004) Amsterdam, the Netherlands ( December 12-16, 2005 ) Chicago , USA (2006), Vienna, Austria (2007)
11在西北第二民族学院的讲座 2007 。 6
IEEE SOCA 2007 (SOCA'07) IEEE International Conference
on Service-Oriented Computing and Applications June 19-20, 2007, Newport Beach, California theoretical foundations, 理论基础 service infrastructures, 服务基础设施 and their applications and experiences 应用和实践
Springer Journal on Service-Oriented Computing and Applications (SOCA),
Information Systems Frontiers (ISF) Journal of Information Science and Engineering
(JISE).
12在西北第二民族学院的讲座 2007 。 6
中国软件技术大会中国软件技术大会于 2005 年 11 月 26 、 27 日在京举办 .被誉为“下一代软件架构”的 SOA 由概念走向实践,得到了业界的一致认同和追捧,可算是当今最热门的话题。
BEA 产品技术总监将为大家带来 SOA 实施的产品策略,意在教会大家用基础服务架构释放 IT潜能;
微软中国软件 架构首席顾问则带来了微软以 SOA 模式开发现代企业应用系统需要一个全面支持Web Services 标准的编程模型和运行平台;
Sybase 高级系统顾问带来了面向 SOA 的新一代应用集成开发工具;
正邦软件技术总监,东方通科技的副总设计师带来了金融与电信的SOA架构,新一代面向服务的企业整合技术与中间件平台
13在西北第二民族学院的讲座 2007 。 6
2006 中国软件技术大会 2006 年 12 月 1 日 “中国软件技术大会 2006”主题报告
IBM 大中华区软件集团中国区总经理林鸿昱 : “构建企业成功之路——切入 SOA” 。
SOA 这一种支持将业务动作整合为服务工作流的 IT 架构,已经给企业带来巨大的业务价值。分会场一 基础软件技术分会场二 软件工程与项目管理 分会场三 SOA 与应用软件 分会场四 企业信息管理和应用 分会场五 软件热点论坛
14在西北第二民族学院的讲座 2007 。 6
计算机学报 2005.4 。(相当于专辑) 题目:分布应用集成核心技术研究综述
题目:面向服务的知识发现体系结构研究与实现题目:一种有效负载均衡的网格Web 服务体系结构模型题目:一种面向服务的动态协同架构及其支撑平台题目: Web 服务组合的基于文法的消息处理题目:网格环境合同计算元服务的设计与应用题目:面向服务的织女星网格系统软件设计与评测题目: Web 服务描述语言 QWSDL 和服务匹配模型研究题目:领域自适应的 Web 服务评价模型题目:面向服务的本体元建模理论与方法研究题目:基于服务网关的虚拟服务缓存的研究和应用题目:一种服务网格动态信息聚合模型及其应用题目:一种支持业务端编程的服务虚拟化机制 VINCA-VM题目:一种基于移动 Agent 的复合 Web 服务容错模型题目:一种 Web 服务的测试数据自动生成方法题目: CGSP 作业管理器合成服务的 QoS优化模型及求解
15在西北第二民族学院的讲座 2007 。 6
题目:一种支持 QoS约束的 Web 服务发现模型题目:基于本体论和词汇语义相似度的 Web 服务发现题目:基于进化分布式本体的语义Web 服务动态发现题目:服务部署与发布绑定的基于 P2P 网络的 Web 服务发现机制题目:一种基于 QoS 的服务构件组合方法题目:基于 Pi-演算的 Web 服务组合的描述和验证题目:基于领域本体的 Web 服务动态组合题目:基于对象代理模型的工作流视图实现题目:基于重写逻辑的 Web 服务事务处理形式化描述题目:服务网格中的事务服务及基于 Petri 网的正确性分析题目:一种面向服务的权限管理模型题目:面向服务的角色访问控制技术研究题目:一种面向业务用户的大粒度服务组合方法题目: GSML :一种面向交互和协同的用户端编程语言题目:一种适用于服务组合平台的语境信息使用模式题目:基于目标驱动和过程重用的 Web 服务客户化定制模型题目:一种支持领域特性的 Web 服务组装方法题目:一种面向服务、事件驱动的企业应用动态联盟构造方法
16在西北第二民族学院的讲座 2007 。 6
大学研究生课程Department of Computer Science
North Carolina State University Course on Service-Oriented Computing Chapter 1: Computing with Services Chapter 2: Basic Standards for Web Services Chapter 3: Programming Web Services Chapter 4: Enterprise Architectures Chapter 5: Principles of Service-Oriented Computing Chapter 6: Modeling and Representation Chapter 7: Resource Description Framework (RDF) Chapter 8: Web Ontology Language (OWL)
17在西北第二民族学院的讲座 2007 。 6
大学研究生课程 Chapter 9: Ontology Management Chapter 10: Execution Models Chapter 11: Transaction Concepts Chapter 12: Coordination Frameworks for Web
Services Chapter 13: Process Specifications Chapter 14: Formal Specification and Enactment Chapter 15: Agents Chapter 16: Multiagent Systems
18在西北第二民族学院的讲座 2007 。 6
大学研究生课程 Chapter 17: Organizations Chapter 18: Communication Chapter 19: Semantic Service Selection Chapter 20: Social Service Selection Chapter 21: Economic Service Selection Chapter 22: Building SOC Applications Chapter 23: Service Management Chapter 24: Security Chapter 25: Challenges and Extensions
19在西北第二民族学院的讲座 2007 。 6
专著Thomas Erl
Service-Oriented
Architecture A Field Guide to
Integrating XML and
Web Services
20在西北第二民族学院的讲座 2007 。 6
Service-Oriented
Computing:
Semantics,
Processes, Agents
by Munindar P. Singh,
Michael N. Huhns
21在西北第二民族学院的讲座 2007 。 6
Web Services Essentials
Distributed Applications
with XML-RPC, SOAP,
UDDI & WSDL
By Ethan Cerami
22在西北第二民族学院的讲座 2007 。 6
UnderstandingSOA withWeb ServicesEric NewcomerGreg Lomow
23在西北第二民族学院的讲座 2007 。 6
二、发展的历史渊源
1. 信息系统结构的发展趋势从主机终端、个人计算机、 C/S,B/s → 到普
适计算。
2. 软件的生产方式的转变从个人、团队→ 到社会化。
3. 软件技术的发展从结构化设计、面向对象、面向构件 → 到面
向服务的计算。
24在西北第二民族学院的讲座 2007 。 6
1 ,信息系统结构的发展趋势 主机,终端结构 (Mainframe) 很多人共享一台计算机
个人计算机 (Personal Computer) 一台计算机一个人使用
因特网 (Internet)- 世界范围的分布式计算 . . . 过渡到 . . .
无处不在、适普计算 (Ubiquitous 、 Pervasive Computing) 很多计算机为我们所共享。
25在西北第二民族学院的讲座 2007 。 6
早期的主机 (Mainframe) 结构 早期的计算机,称为“主机” 时代。回想那时人们和计算机的关系,主要是由专家在机房里运转计算机。
那时计算机是极其稀缺的资源,使用时必须排班,和别的人共同拥有,轮换使用;后来使用分时终端,共享主机。
26在西北第二民族学院的讲座 2007 。 6
27在西北第二民族学院的讲座 2007 。 6
集中式的系统结构
Mainframe
Terminal3270
Terminal
Terminal
Terminal
Terminal
TerminalTerminal
Terminal
Terminal
Terminal
Terminal
主机
终端
28在西北第二民族学院的讲座 2007 。 6
个人计算机的时代 第二个阶段是个人计算机的时代。 七十年代中期,个人的计算机的销售量超过了主机的销售量。
1984 年使用个人的计算机的人数超过了使用共享计算机的人数。
29在西北第二民族学院的讲座 2007 。 6
计算的发展趋势
年销售量普适计算
主机计算
个人计算
30在西北第二民族学院的讲座 2007 。 6
因特网时代 1994 年因特网商业化以后迅速崛起
93,047,785
109,574,429109,574,429
72,398,092
互联网上的计算机数目
31在西北第二民族学院的讲座 2007 。 6
互联网上的计算机数目 Jan 2007:433,193,199
Jul 2006:439,286,364
Jan 2006:394,991,609
32在西北第二民族学院的讲座 2007 。 6
客户端 - 服务器系统结构 ( Client-Server)
E-MailServer
WebServer
DatabaseServer
PCClient
PCClient PC
Client
WorkstationClient
33在西北第二民族学院的讲座 2007 。 6
浏览器 - 服务器系统结构 (Browser-Server)
PCBrowser
PCBrowser PC
Browser
WorkstationBrowser
WebServer Database
WebServer Database
Internet
34在西北第二民族学院的讲座 2007 。 6
无处不在、适普( UC )计算的时代 适普计算的根本特征,就是世界上各种各样东西中嵌入的计算机用网络实现连接。
这些东西的尺寸可以有大有小,包括仅仅用显微镜才可看见的微小物件。例如,一部分计算机将嵌入在各种各样东西中,如墙壁,椅子,服装,灯的开关,家电,汽车等。
无处不在。例如大量遍布在每个办公室、每个人身上、家庭、娱乐场所和各种需要的地方。包括各种规格的无线计算设备、传感设备和控制设备等。
35在西北第二民族学院的讲座 2007 。 6
适普计算的特征 以人为中心的计算,使计算机的使用符合人的习惯,在任何时间和地点,人们通过任意设备和网路,访问所需的信息。
不可见的计算,将计算机自然、合理地嵌入到人们日常工作和生活环境中,使其从人们的视线中消失。人们通过新一代自然交互界面,进行自然、方便的交互。
无线联结技术的应用。如果用有线的接插件将是相当复杂的事。无线联结技术省去了设备接、插所带来的所有麻烦,使局部结构的设置变得非常容易。
36在西北第二民族学院的讲座 2007 。 6
适普计算的特征 在现代的家庭里,容易发现数十台以上的微处理器,如闹钟,微波炉,电视遥控器,立体音响和电视系统,儿童玩具等。
但是这些还不能称其为适普计算的理由是:它们主要是一个一个单独地使用,并且,它们被封装为旧式样的设备,如烤面包机和钟等。
只有把它们捆绑在因特网上,从而把你这些信息发布系统同数百万信息源接在了一起,才称得上适普计算。
37在西北第二民族学院的讲座 2007 。 6
瘦客户端和瘦服务器 目前,关于“瘦客户端”谈论得很多。用几百美元的花费就可购买到轻量级的的因特网浏览装置。
但是 UC 将看到花费仅仅为几十个美元或者更少的瘦的服务器的创造,把完整的因特网服务器放入所有家电和各种办公设备中。
下一代的因特网协议 IPv6 能为地球表面上所有原子建立 1000 个以上设备地址,将满足我们全部的需要。
(128 位可以表示超过 3.4 X1038 可能的组合 )
38在西北第二民族学院的讲座 2007 。 6
Mainframe Computing
Desktop Computing
Ubiquitous Computing
39在西北第二民族学院的讲座 2007 。 6
2 ,软件的生产方式的转变 早期软件的编制依赖于编程人员的聪明才智,人员的流动对软件的开发和维护带来极大的困难。
随着软件规模的增大,需要有专门的软件开发公司(软件供应商)来承担。在公司内组织团队进行开发。开发方法和 CMM 出现
软件生产的专门化、社会分工的形成,第三方软件的应用,软件集成,软件外包,开源软件的兴起,… → 到软件生产的社会化。从个人、团队。
40在西北第二民族学院的讲座 2007 。 6
3 ,软件技术的发展
从结构化、面向对象、面向构件 → 到面向服务。 结构化分析与设计:流程图,模块图。 面向对象的分析和设计:“从对象(物体、概念或实体)的角度考虑问题域和逻辑解决方案” ,对象定义为“特点在于具有许多操作和状态(记忆这些操作的影响)的物体”。
基于组件(构件)的设计:粗粒度对象。通过内聚一些更细粒度的对象来提供定义良好的功能。通过这种方式,可以将打包的解决方案套件封装成 “组件”。
面向服务的结构:它是将组件描述成提供相关服务的封装的可执行代码单元。粗粒度的可发现软件实体通过松散耦合,和基于消息通信的接口与应用程序和其他服务交互。
SA 、 SD → OOD → CBD → SOD
41在西北第二民族学院的讲座 2007 。 6
单元的粒度 (granularity) 在增大
42在西北第二民族学院的讲座 2007 。 6
服务与使用的分离
43在西北第二民族学院的讲座 2007 。 6
不断发展的多样性
CORBA/COSS/MDA
COM/DCOM/.NET
Java/RMI/J2EE“单极”模式
“英联邦”模式
“联合国”模式
多种标准多种标准多种文化多种文化
Web Services
SOASOA 、、
SOCSOC
44在西北第二民族学院的讲座 2007 。 6
三,面向服务的结构 Service-Oriented Architecture (SOA).
服务提供者:服务提供者将自己的服务和接口约定发布到服务注册中心。它的服务注册后,即成为一个可通过网络寻址的实体,可以接受和执行来自使用者的请求。
服务注册中心:服务注册中心接受服务提供者的服务注册,并在一个可用服务的注册存储库中保存,支持服务的查找和发现。感兴趣的服务使用者可以在服务注册中心查找和发现所需的服务的接口。
服务使用者:服务使用者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它通过对服务注册中心中的查询,发现和选择所需的服务,然后,通过传输绑定服务提供者提供的服务,并且根据接口约定执行服务功能。
45在西北第二民族学院的讲座 2007 。 6
服务提供者和需求者的分离和松散联系
需求者 提供者
46在西北第二民族学院的讲座 2007 。 6
服务注册中心
服务使用者
服务提供者
发布:服务提供者发布服务描述,以使服务使用者可以发现和调用它
发现:服务请求者查询服务注册中心来找到满足其标准的服务。绑定和调用:服务使用者根据服务描述中的信息来调用服务。
47在西北第二民族学院的讲座 2007 。 6
不同的理解和定义 (W3C).
Service-Oriented Architecture:
A set of components which can be invoked,
and whose interface descriptions can be
published and discovered (W3C).
面向服务的结(架)构由一组可被调用的组件构成,而且它们的接口的描述能公开发布和被发现。
48在西北第二民族学院的讲座 2007 。 6
不同的理解和定义 (CBDI) The policies, practices, frameworks that enable application
functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards-based form of interface. (CBDI)
策略、实践习惯、框架,使得: 应用功能作为一组发布的服务,以服务使用者相关的粒度,提供和使用。
服务能被调用、发布和发现。 服务从它的实现中抽象出来,使用单一的标准化的接口形式。
49在西北第二民族学院的讲座 2007 。 6
四,服务的描述 Service Description
什么是这里指的服务 如同对象和构件,服务表示那些能以我们熟悉的方式组成大的功能的构建模块
与对象和构件类似,服务是基本的构建模块,它 把信息同行为结合在一起, 把内部的工作隐藏起来,以防外部的干扰, 对结构的其余部分,只呈现相对简单的接口。
50在西北第二民族学院的讲座 2007 。 6
交互 Interactions
Via MethodsVia Methods Via MessagesVia Messages
Purchasing()Purchasing()
CatalogService()CatalogService()
Order()Order()
invokeinvoke
invokeinvoke
catalogcatalog
confirmation #confirmation #
Purchasing Sales
SubmitPO
AckPO
SubmitASN
SubmitInvoice
SubmitPayment
51在西北第二民族学院的讲座 2007 。 6
一个旅店预定房间的例子 GreatH reservation Web service CheckAvailability.
checkAvailability message a check-in date, a check-out date, and room type.
checkAvailabilityResponse room rate (in USD) if such a room is available or a zero room rate if not
invalidDataFault message. return an error If any input data is invalid
MakeReservation. makeReservation message
name, address, and credit card information makeReservationResponse
a confirmation number if the reservation is successful invalidCreditCardFault message,
an error message if the credit card number or any other data field is invalid..
询问有无房间询问消息
入住日期离店日期房间类型
询问回答房间价格
0 表示客满出错消息
实行预定预定消息
姓名、住址、信用卡信息预定回答
预定成功确认号无效信用卡出错消息
如果信用卡号或其它数据不对给出错误消息
52在西北第二民族学院的讲座 2007 。 6
WSDL: Web Services Description Language
2007-05-23: W3C 宣布 WSDL 2.0 被正式提出推荐
WSDL 2.0 文件描述服务的如下内容: 类型 types element 描述服务发送和接收怎样形式
(kinds) 的消息。 接口 interface element 描述服务提供哪些 (what)抽象的功能。
绑定 binding element 描述如何 (how)访问服务。 服务 service element 描述在哪里 (where) 去访问服务。
The World Wide Web Consortium (W3C)万维网联盟
53在西北第二民族学院的讲座 2007 。 6
类型 types element
<types> <xs:schema …… <xs:element name="checkAvailability" type="tCheckAvailability"/> <xs:complexType name="tCheckAvailability"> <xs:sequence> <xs:element name="checkInDate" type="xs:date"/> <xs:element name="checkOutDate" type="xs:date"/> <xs:element name="roomType" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="checkAvailabilityResponse" type="xs:double"/> <xs:element name="invalidDataError" type="xs:string"/> </xs:schema> </types>
询问消息入住
日期 离店日期 房间类型
询问回答房间
价格 0--客满出错消息
54在西北第二民族学院的讲座 2007 。 6
接口 interface element
<interface name = "reservationInterface" > <fault name = "invalidDataFault" element = "ghns:invalidDataError"/> <operation name="opCheckAvailability" pattern="http://www.w3.org/ns/wsdl/in-out" style="http://www.w3.org/ns/wsdl/style/iri" wsdlx:safe = "true"> <input messageLabel="In" element="ghns:checkAvailability" /> <output messageLabel="Out" element="ghns:checkAvailabilityResponse" /> <outfault ref="tns:invalidDataFault" messageLabel="Out"/> </operation> </interface>
55在西北第二民族学院的讲座 2007 。 6
绑定 binding element
<binding name="reservationSOAPBinding" interface="tns:reservationInterface" type="http://www.w3.org/ns/wsdl/soap" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"> <fault ref="tns:invalidDataFault" wsoap:code="soap:Sender"/> <operation ref="tns:opCheckAvailability" wsoap:mep="http://www.w3.org/2003/05/soap/mep/soap-response"/> </binding>
56在西北第二民族学院的讲座 2007 。 6
服务 service element
<service name="reservationService" interface="tns:reservationInterface"> <endpoint name="reservationEndpoint" binding="tns:reservationSOAPBinding" address ="http://greath.example.com/2004/reservation"/> </service>
57在西北第二民族学院的讲座 2007 。 6
WSDL 2.0 Infoset Diagram
58在西北第二民族学院的讲座 2007 。 6
SOAP (Simple Object Access Protocol)简单对象访问协议
SOAP原先设计用于远程过程调用 remote-procedure calls (RPC)
SOAP Version 1.2 提供了基于 MXL 的信息定义,从而可以用于集中式和分布式环境下各点之间进行结构化和类型化信息的交换
SOAP 的基础是一种无状态、单向信息交换范型,但是应用软件可以创建更复杂的交互模式(例如需求 /回答,需求 / 多回答等)
此外, SOAP 还对接点收到 SOAP 消息后所需进行的活动提供了全面的描述。
59在西北第二民族学院的讲座 2007 。 6
语义Web ( Semantic Web ) 万维网 ( World Wide Web )改变了人们相互通信的方式,也改变了企业的业务运行方式。
现今大多数 Web 的内容只适合人亲自使用。人必须亲自用浏览器选择网页文件,来提取他寻找的信息。 Web内容的含意不能为机器所访问。
语义 Web 是这样的技术, 他将大大地改善现行的 WWW 和对它的使用。 Web 内容表示成机器比较容易访问的形式,而且可以利用智能技术发挥这种表示的优越性。
60在西北第二民族学院的讲座 2007 。 6
本体( Ontology )论 本体 (ontology) 源于哲学。然而,在计算机科学中给它赋予的含义,同他原来的意思是大不相同的
T.R. Gruber 的定义 , 一个本体是一个概念的显式的、形式化的规约。
一般地说,一个本体形式化地描述了一个所论述的领域。一个本体典型地是由有穷个术语 (terms) 和他们之间的各种关系构成的。
61在西北第二民族学院的讲座 2007 。 6
术语 (terms) 和关系(relationships)
这些术语 (terms)表示该领域中的那些重要的概念(对象的类 ) 。例如,在大学的设定中,教师、教职员工、大学生、课程、阶梯教室和学科等是部分这些重要的概念。
关系 (relationships)典型地包括类的层次。一个层次规约了一个类 C 是另一个类 C0的子类,意味着类 C 中的任何一个对象也包括在类 C0中。例如所有教师都是教职员工,教师类就是教职员工类的子类。
62在西北第二民族学院的讲座 2007 。 6
Web 本体语言 OWL ( Web Ontology
Language) W3C先后推荐了 RDF , DAML+OIL 和 OWL 作为本体描
述语言标准。 RDF (Resource Description Framework ) DAML (The DARPA Agent Markup Language ) DAML+OIL
10 February 2004 W3C 推荐了 Web 本体语言 OWL ( Web Ontology Language )
OWL 设计成可被需要处理信息内容的应用软件所使用,而不是仅仅用于供人们的浏览。 OWL 在形式语义方面提供了新增的词汇,从而比那些仅由 XML, RDF, 和 RDF Schema (RDF-S)支持的语言大大地增强了 Web内容与机器交互的功能。
63在西北第二民族学院的讲座 2007 。 6
五,服务的发布和发现
发布:服务提供者向服务注册中心发布服务描述,以使服务使用者可以发现和调用它。
发现:服务的需求者在进行一个服务调用之前,必须先查询服务注册中心,发现具有所需服务的企业和满足其标准的服务,找到调用接口和语义,然后编写或配置自己的软件以便与服务交互。
64在西北第二民族学院的讲座 2007 。 6
UDDI
UDDI ( Universal Description, Discovery, and Integration )是由 OASIS 制定的一个基于 SOAP和 XML 的 Web 服务标准,为注册中心提供企业用于进行服务发布和发现的接口。
OASIS (Organization for the Advancement of Structured Information Standards)
一个非营利国际联盟组织,致力于开发、集中和采集各种有关 e-business 的标准
很多有名的公司都参加,如 Adobe, BEA, HP, Hitachi, IBM, Microsoft, NEC, Nortel, Oracle,
65在西北第二民族学院的讲座 2007 。 6
UDDI 的主要目标 定义一组服务,这些服务支持描述和发现
(1) 各类业务、单位和其他 Web services 的提供者, (2) 他们提供的可用的 Web services , (3) 用于使用这些服务的技术接口。
基于一组通用的工业标准,包括如 HTTP, XML, XML
Schema, and SOAP 等, UDDI 为基于 Web services 的软件环境,包括社会公开可用的服务和仅仅在企业内部公开的服务,提供一种可互操作的、基本的基础设施。
66在西北第二民族学院的讲座 2007 。 6
67在西北第二民族学院的讲座 2007 。 6
发现回答的问题
“Who?”
关于业务有关的简单信息 – 诸如姓名、业务标识、联络信息等。
“What?”
包括分类信息,如工业编码和产品分类等,以及关于所提供的可用的服务的描述性信息。
“Where?” 包括 URL 或者 email 地址(或者其他地址)的注册信息,通过这些信息访问所提供的各类服务。
68在西北第二民族学院的讲座 2007 。 6
发现回答的问题(续)
“How?” 有关给定的服务的接口和 其他特性的信息的索引。这些服务特性描述了具体的软件包或者技术接口函数。这种索引在UDDI 中称为 tModels 。
69在西北第二民族学院的讲座 2007 。 6
发现和选择
寻找合适的服务 语义匹配 经济上的选择 信誉和推荐 分布式结构 服务的适合于应用特有的品质 信任
70在西北第二民族学院的讲座 2007 。 6
目录服务 支持服务的发现 : 使应用软件、智能体、 Web服务的提供者 、 Web 服务的需求者相互查找。
清单中提供的信息由下面三个概念部分组成 : “white pages” ,白页,公司的联系信息 ; “yellow pages” ,黄页,按标准的分类法对业务进行分类 ;
“green pages” ,绿页,关于所公布的服务的技术方面的信息
71在西北第二民族学院的讲座 2007 。 6
Yellow, Green, and White Pages in UDDI
-businessKey : string(idl)-name : string(idl)-description : string(idl)-URL : string(idl)-contacts : contact-businessServices : businessService-identifierBag : keyedReference-categoryBag : keyedReference
businessEntity
1
*
-tModelKey : string(idl)-keyName : string(idl)-keyValue : string(idl)
keyedReference
-serviceKey : string(idl)-tModelKey : string(idl)-name : string(idl)-description : string(idl)-bindingTemplates
businessService
-phone : string(idl)-address : string(idl)
contact
72在西北第二民族学院的讲座 2007 。 6
WSDL UDDI Correspondence
<import>
<port>
<port>
BusinessEntity
BusinessService
BindingTemplate
BindingTemplate
Service Implementation
UDDI
<service>
Service Interface
<types>
<message>
<portType>
<binding>
tModel
WSDL
73在西北第二民族学院的讲座 2007 。 6
争论 UDDI 于 2000 年年底推出,早于 WSDL 的开发,最初并不能很好地支持WSDL 。后来做了很多努力,建立了 2004 年推出 V.3 。对于 UDDI 能否成为所需要的支持发现的注册库,有人提出质疑。
74在西北第二民族学院的讲座 2007 。 6
如何从已有的 Web 服务经过组合,构造新的 Web服务,已成为关注的一个焦点。为了得到可靠的,高质量的服务,必须找到一种建模方法、语言和工具,进行服务的组合,以及分析和验证。
已经逐渐成熟的工作流管理系统,业务过程管理系统 同Web 服务有机的结合成为当前的主流方向。
传统的业务过程管理系统中的活动,是一个应用软件或者一个有参与者干预的工作项。现在用 Web服务来描述业务过程的各项活动,就成为非常方便的、灵活的、异构的分布式业务过程管理系统。
六,服务的组合 Service Composition
75在西北第二民族学院的讲座 2007 。 6
WS-BPEL , BPEL4WS WS-BPEL ( Web Services Business Process Execution
Language. Web 服务业务过程执行语言) April 12, 2007 OASIS 宣布了 WS-BPEL 2.0
早先的版本是 BPEL4WS (Business Process Execution Language for Web Services) 1.0 1.1 ( 2002 , 2005 )
WS-BPEL 是基于 XML 的语言,它能使用户用 Web 服务来描述业务过程的各项活动,同时定义如何能将它们连接起来去完成特定的任务。 WS-BPEL设计成用于规约这样的业务过程,它既由 Web 服务组成,也呈现为 Web 服务。 BPEL 所用的服务必须是用 WSDL 协议描写的。不支持用非 WSDL协议描写的服务
WS-BPEL 提供类似于程序语言的控制结构,如顺序、分支、并行、循环等以及图示的连接,表示结构中附加的次序限制。
76在西北第二民族学院的讲座 2007 。 6
Orchestration , Choreography
WS-BPEL 2.0 是一种 Orchestration language ( 类似于管弦乐作曲的语言 .)
辞典: Orchestration 管弦乐作曲 Choreography 舞蹈舞台编排(不需要指挥)
November 2005 W3C 建议 WS-CDL Web Services Choreography
Description Language Version 1.0
77在西北第二民族学院的讲座 2007 。 6
WS-CDL
Web Services Choreography Description
Language 是一种基于 XML 的语言,用于描写参与者之间的点对点的协作。
对参与者协作的描写是从全局的观点定义它们的共同的和相互补充的可观察行为。当双方约定的排序规则满足时,发生信息交换。
78在西北第二民族学院的讲座 2007 。 6
Web 服务的各种标准
BPEL4WSOWL-S Service
Model
ebXMLCPA
Process and workfloworchestrations
QoS: Servicedescriptions and bindings
Contracts andagreements
XLANG
WSCL
WSDLebXML
CPP
ebXMLBPSS
XML, DTD, and XML Schema
HTTP, FTP, SMTP, SIP, etc.
SOAPebXML
messaging
OWL
UDDIebXML
Registries
WSCLWSCI
WS-Coordination
WS-AtomicTransaction and WS-BusinessActivity
OWL-S ServiceGrounding
OWL-S ServiceProfile
BTP
BPML
Discovery
Messaging
Transport
QoS: Conversations
QoS: Choreography
QoS: Transactions
Encoding
WS-Policy
WS-Security
WS-ReliableMessaging
PSL
RDF
79在西北第二民族学院的讲座 2007 。 6
服务的组合 的现状和问题
到现在为止,还没有一种方法开发出了能称的上是真正地解决了服务组合的问题方案。
解决方案需要包括复杂的控制结构,如循环、非确定性、和选择等
服务组合的问题相当复杂,不可能在只描述简单活动,然后把他们用控制结构组合起来的这样的层次上真正解决。看来可能要研究更复杂的方案,如研究各种构成块,以及由它们组合的多重交互。
Web 服务在运行时,会产生新的对象。例如,在他们执行的过程中会产生消息对象,而这些对象可能进一步被另外的服务所处理。
80在西北第二民族学院的讲座 2007 。 6
七,模型和理论。
计算机科学理论和形式化方法对软件技术的重要作用。
计算机的诞生和图灵机器。 高级语言和编译系统和形式语言自动机理论。 数据库及有关关系代数理论。 高可信软件同程序的正确性证明,形式语义和时态逻辑学。
SOA 中的有些关键技术问题也要靠理论的突破。
81在西北第二民族学院的讲座 2007 。 6
Petri Net 佩特里网 Petri 网是德国学者 Carl Adam Petri教授于
1962 年在其博士论文“自动机通信”中提出的一种网络图理论。 70 年代以后, Petri 网理论引起人们的重视,得到迅速发展并应用于解决计算机科学领域的问题。
Petri 网既有严格的数学定义,又有直观的图形表示,特别适合描述离散事件系统的控制流、并发特性和异步行为。
82在西北第二民族学院的讲座 2007 。 6
Petri Net 是一种很好的模型
非结构化,并行,竞争,同步,…
Place Transition Token
83在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
84在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
85在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
86在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
87在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
88在西北第二民族学院的讲座 2007 。 6
非结构化,并行,竞争,同步,…
Place Transition Token
Petri Net 是一种很好的模型
89在西北第二民族学院的讲座 2007 。 6
罗宾 . 米尔纳 的 π演算
The π-calculus 是 Robin Milner 在下述演算系统的基础上建立的。 Church’s λ-calculus 等价于 Turing
Machines 图灵机 CCS (calculus for communicating systems)
- Robin Milner 通信系统演算 CSP (communicating sequential processes)
- Anthony Hoare 通信顺序进程
90在西北第二民族学院的讲座 2007 。 6
π- 演算的基本概念
在 π- 演算中最基本的元素是名字 (name) ,名字有无穷多,记作:
x,y,…∈ N 再一个概念就是过程 ( process) ,过程是由名字按照下属语法 (BNF) 构成的表达式
P ::= ∑i∈Iπi Pi | P | Q | !P | (νx)P
其中 Pi ,P,Q, 都是过程。
91在西北第二民族学院的讲座 2007 。 6
π-演算的一个重要特点
通道名可以作为名字传送。
x(y). a.P | z.Q | z (w).R
a.P | Q | z(w).R
P | Q | R [a/w]
y x
zx
x
y
zx
x
z
z
动态耦合系统的模型
92在西北第二民族学院的讲座 2007 。 6
动态耦合系统的模型 固定结构和动态耦合系统
mail, -- Add
Internet , --URL
mobility, ,移动通信。
……。
93在西北第二民族学院的讲座 2007 。 6
新学科概念:服务科学 服务科学、管理与工程。 Services Sciences, Management
and Engineering (SSME). 跨学科,交叉学科,涉及计算机科学、运筹学、工业工程、商务谋略、管理科学、社会与认知科学、法学等。
Service Science 受最近 SOA 大潮的影响,希望技术和商务设计( Business Design )深度结合。如何设计商务模型?如何使得这个商务模型跟企业战略紧密结合,提升整体效率的商务运作过程(业务流程)来支持这个商务模型?然后才是逐步细化、映射到技术层次的实现。其关键是如何将商务设计同技术设计有机融合,这引发了服务科学 这样一个新学科。
94在西北第二民族学院的讲座 2007 。 6
结束语:
立远大志向,树良好学风1.跟踪国际先进技术;2.学原著,念真经;3.重视理论的指导作用;4.重实践,忌空谈;
95在西北第二民族学院的讲座 2007 。 6
结束语 1 :跟踪国际先进技术 要承认在计算学科方面我们同发达国家还是有相当大差距的。
科学技术是在实践的基础上发展起来的,例如国内软件企业,相对规模偏小水平偏低,从而软件工程的技术和理论大多起源与国外,所以跟踪学习“拿来主义”是当前最好的办法。
注意结合实际,结合国情,应用中创新,不要盲目照搬。
96在西北第二民族学院的讲座 2007 。 6
结束语 2 : 学原著,念真经; 学好外文,力争读原著,学到真经,要有玄奘西天取经的精神。
本科生读原文教材。研究生一律要求读原文论文。
充分利用互联网宽带的条件,下载原始的报告和标准。
很多单位,机构,公司都有专门的网站提供服务。如 W3C, OASIS , Microsoft , IBM ,SUN , Oracle , BEA 等。
97在西北第二民族学院的讲座 2007 。 6
结束语 3 :重视理论的指导作用 计算机科学理论是计算技术发展的基础。 纵观计算技术发展的历史,技术的突破无不依赖于理论的支持。 计算机的诞生和图灵机器 高级语言、编译系统和形式语言自动机理论。 数据库和关系代数理论。
高可信度软件和形式语义及时态逻辑理论。 并行系统和 Petri 网理论。 移动系统、动态耦合系统和 π演算理论。
98在西北第二民族学院的讲座 2007 。 6
结束语 4 :重实践,忌空谈 计算科学基本上仍属于实践性科学。计算科学的技术和理论的发展与实践有非常紧密的关系。
从事计算科学的人员必须练就好一套熟练的动手能力,必须会亲自动手,否则你就不可能对有关技术和理论有深刻的理解。
所以我们要求学生入学时要考编程能力,毕业时要有成果演示。老师也要带头。
99在西北第二民族学院的讲座 2007 。 6
在我的网页上的一段话 编程序是一种爱好。它可以使你心平气和,思维有序。
当你编程遇到困难时,需要有坚韧不拔的毅力。当你成功时,你会感到一种无与伦比的高兴。“编程”苦涩难言,但却其乐无穷!不仅年轻人可以编,我这老头子也可以编。几年下来,我在学习 Java 和 Script 的过程中也编了一些。现汇集几个小软件如下,与大家共享。请点击下面图标。
100在西北第二民族学院的讲座 2007 。 6
谢谢大家!
http://mainpage.nwu.edu.cn/hkg/home/西北大学计算机科学系 软件工程研究所