我的BPEL业务编排系统雏形

2024-01-12 00:58
文章标签 系统 业务 编排 bpel 雏形

本文主要是介绍我的BPEL业务编排系统雏形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     虽然今天结束了连续的艳阳天,下了半天雨,又闷又热,但我心情灰常的好。两个月过去了,断断续续,一点一点磨到现在,我的所谓的业务编排系统终于有东西可以用来演示啦!

 

     我做的这个系统的用途嘛,是GIS的一部分,就是将现有的WebService通过BPEL语言来组合编排,这个编排方式当然是图形化操作了,而且操作越简单越好,复杂详细的编排工具Eclipse和Netbeans都有免费的了,也不用我造轮子了……

 

     先说下雏形的大概的架构吧。前台,也就是业务编排的操作界面,由Flex完成;服务信息的提高和将逻辑转换成BPEL代码的工作由后台Java写的服务端完成;前台向服务器获取服务信息数据通过REST方式通信,在flex里叫HttpService;其他逻辑数据对象的交互通过RemoteObject的方式通信,也就是在服务器端用blazeds互译Java对象和Flex对象。服务端整体是从SpringSide3的mini-service示例扩展出来的,或者说是套用了它的组织框架,然后添加了自己的东西(它本来就是这个用处嘛~),最终是Spring + Hibernate + Jersey + Blazeds的构成。

 

      代码就不晒了,乱七八糟的还没加像样的注释,之前的文章也说了,在谷歌上开源了,就晒点截图吧:



 左侧第一组数据是测试数据,正好用来说明结构,当然最终是要把图标换掉的。Operation节点可以拖放到Receive、Reply和Invoke这类活动节点上,实现操作设置。

 



 这是从服务器传回的“翻译”好的BPEL代码。

 

     之前的博客也都提到了,虽然从没接触过Flex,但第一感觉好,就冒着风险用了。事实感觉上手确实挺容易的,很多工具设计得挺周到的,配合FlexBuilder自带的帮助示例和艾睿网上的示例,基本不用找资料书从头学来。最喜欢的是flex的xml数据处理方式,点(.)和@完成了大部分操作,一点不拖沓!Blazeds也不错,可以直接和Java类互转,交互起来比较方便的。

 

     说到Blazeds,不得不说说我混乱的通信方式,说实话,差点再用上WebService,这样三剑客就齐了……最先用到的是Blazeds,毫无疑问就是被它的直接对象映射吸引的。后来在做左侧树结构数据的时候,突然想到了REST,因为我一直认为REST就是用来获取数据的(我管它叫做面向资源的架构,嘿嘿),顺便也学一点新知识吧,就用了。WebService是我接触最早的通信方式,却一直没正式用过,SpringSide里集成了熟悉的CXF,却最终被无情地抛弃了……对于Blazeds还要提一点,我最容易犯的是,将flex里的类映射到Java的接口上,会报错的,折腾死我了~

 

     还有一样最折腾我的就是Hibernate了,毛病还是出在解决方案一大堆的延迟加载上,session啊session,你让我拿什么来爱你~~最终我还是采用了死办法,用Dao取出数据的时候顺带Hibernate.initialize了。

 

      在这之后的工作还有很多,比如几个应用框架的集成(程序运行起来会产生很多applicationContext,明眼人应该知道怎么回事了吧~),剩余业务组合逻辑的实现……最显而易见的界面的美化还没排上号呢~

这篇关于我的BPEL业务编排系统雏形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/596291

相关文章

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析