论坛首页 Java企业应用论坛

SOA开发实战

浏览 31390 次
锁定老帖子 主题:SOA开发实战
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-10  
SOA
先简要介绍一下基本的SOA开发的方法和一些概念.

面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商 如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易.

创建一个SOA的solution一般包含以下几个步骤:
1. 首先, 我们需要将服务创建起来. 这其实就是要用各种adpater或者J2EE或者其他编程语言将原来的应用逻辑变成一种通用的服务方式, 在现在的SOA实现中就是 webservices. 这个过程可以称为 service-enabling. 这个过程往往是开发SOA应用的关键一步, 能否将原来的系统暴露为更容易集成到SOA平台的服务需要掌握各类平台技术的基本概念, 有时甚至需要专业的知识才能enable一个service. 比如说如何使用用于集成mainframe上数据的IMS/TM , IMS/DB  adapter.
2. 其次, 需要让这些服务能够互相通信. 这样的通信需要是安全可靠的, 并且服务的通信过程也需要能够带动服务背后的被集成应用. ESB (Enterprise Service Bus) 为服务提供了这样的一个平台. ESB平台需要支持服务及服务之间的消息捕获, 消息传递, 消息的transform等. 可以说ESB提供了一个平台, 让一个企业内部的服务都能注册在这个平台上大家都使用同一种语言web service, 平且提供一些基本的消息传递功能. 同时, ESB要和其他更高层的SOA产品集成在一起, 让更高层的SOA产品能够使用ESB上的服务以串连成更复杂的业务流程.
3. 组成新的业务流程. 这一步需要做的是将服务串连成业务流程, 有点编写业务代码的味道. 用来表示一个业务流程的语言可以是自己定义的, 但以经有标准的Business Process Execution Language(BPEL), 这是一个基于XML的语言. SOA的产品线中必然会有这样的产品来设计及运行基于BPEL或者其他语言的流程代码. Oracle有BPM, BEA有 Aqualogic BPM, IBM WPS.
4. 保护服务. 在一个SOA平台中所有的服务都应该能被很有效的包含起来, 这里说的就是提供security方面的支持. 需要能方便的够制定安全, 审计和日志的策略. 并且包含服务不需要修改服务本身的代码或者设置.
5. 优化服务. SOA平台的另一个重要的功能是能够快捷的monitor服务及其引起的事件. 这样的SOA产品一般称为 Business Activity Monitoring (BAM) . BAM能够提供给用户一个事件收集和聚类的平台, 并且用户还能在这个平台上定义各类图表来展示业务流程的KPI.

Oracle 的SOA产品是现在市场上最完整, 最成熟的SOA平台. 先简要介绍一下Oracle的产品. 可以看到基本涵盖了上面所说的SOA开发过程中的所有领域.
Oracle Jdeveloper 开发工具
Oracle ESB 消息接受和传递平台
Oracle BPEL Process Manager 服务串连
Oracle Web Services Manager 安全管理
Oracle BAM 业务流程级别优化和检测工具.
Oracle Application Server 10g R3 以上产品都部署在该应用服务器之上.


今天没时间了, 明天继续补上基于Oracle SOA平台实战开发一个应用的过程....
   发表时间:2006-10-10  
IBM有个SOA开发方法名字叫SOMA,在中国移动有实施经验。
0 请登录后投票
   发表时间:2006-10-10  
SOA真叫火啊  不过SOA有时候把简单/便宜 变成了复杂/昂贵
0 请登录后投票
   发表时间:2006-10-10  
SOA是Architecture,只是骨架性的东西。我们更多关注的是Service库,给我们带来了什么益处,要不然空减SOA无用也。。。
0 请登录后投票
   发表时间:2006-10-11  
楼主是O记的吧。
O记的SOA产品最完整和最成熟,不敢苟同。
0 请登录后投票
   发表时间:2006-10-11  
YuLimin 写道
SOA是Architecture,只是骨架性的东西。我们更多关注的是Service库,给我们带来了什么益处,要不然空减SOA无用也。。。


这说明你对SOA的产品不太了解, 如果只是类库的话厂商们就没有什么可以卖的了. 而且SOA应用由于其复杂程度,用编码来实现会非常费时间, 也没有人会用自己写代码调用service库的方式来做SOA的应用.

norwaywoods 写道
楼主是O记的吧。
O记的SOA产品最完整和最成熟,不敢苟同。


Gartner有这样的评价. 当然, Oracle自己也敢这么说.

做了一个简单的Demo的例子, 大家可以看看发表一下意见.




0 请登录后投票
   发表时间:2006-10-11  
lz 有没有比较好的SOA方面的网站或者讨论组。
正准备研究一下涅。
0 请登录后投票
   发表时间:2006-10-11  
blueoxygen 写道
lz 有没有比较好的SOA方面的网站或者讨论组。
正准备研究一下涅。
去BEA , IBM, Oracle的网站上去看他们的产品就行了。一般都会有很多demo性质的文章, 要深入学习的话就看产品的文档了。

0 请登录后投票
   发表时间:2006-10-12  
太重量级了!
0 请登录后投票
   发表时间:2006-10-13  
boogie 写道
太重量级了!
不知道重量级何解? 从我的理解来说SOA的开发比普通的JAVA开发要简单, 因为都是基于产品的使用和配置.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics