跨越企业拓展SOA的优势

 

概述

通过面向服务架构(SOA)创建IT基础架构,已经在IT社区中得到了广泛的认可。这样做的好处是引人注目的,包括通过对已有的代码进行重用来快速部署新的功能(降低开发成本)、灵活性(提高对业务需求的反应速度)和降低维护成本(让工作人员有时间去进行自主创新的工作)

尽管大多数的SOA平台能够支持企业内部的应用程序,但是还有一个更大的机会,使用SOA能更容易得进行跨企业——在企业和他的合作伙伴或者客户之间——的应用系统整合。基于SOA的企业对企业 (以下简称B2B)架构不仅能够降低开发成本,还可以提供附加价值链经济体系并且降低项目风险。因为SOA能够利用因特网技术以及基于因特网的标准,基于SOA模式的B2B平台能够很好的降低合作伙伴的负担并且能够简化企业与合作伙伴或者客户之间的通讯与交流。

SOA—企业应用集成的正确方法

通过面向服务架构(SOA)创建IT基础架构,已经在IT社区中得到了广泛的认可。在SOA之前,企业的应用系统都是通过那些独立、单一的应用程序来进行发布的,这些应用程序之间无法进行沟通。集成这些应用系统是一项费时费力的工作,经常会产生无法重复利用的客户定制的解决方案。使用SOA,应用程序功能会被分解为被称为“服务”的可重用组件,这些“服务”组件各自执行离散的功能。这些服务组件可以被组合成具有更高级别业务功能的复合应用系统。这样IT架构就可以快速的部署可重用的、灵活的并且维护成本低的应用。

目前,大多数的SOA应用都被部署在防火墙之内,也就是说他们主要被用来在企业内部集成应用系统。但是还有一个更大的机会,使用SOA能更容易得进行跨企业——在企业和他的合作伙伴或者客户之间——的应用系统整合。实际上,许多最经常被引用的SOA的优势——更有效的与业务伙伴之间的集成;更好的供应链协作;增加全球性采购和更有效地利用外部服务提供商——是B2B的好处。很明显,实现SOA的全部潜能包括跨越防火墙拓展他的应用,在企业的合作伙伴和客户的完整的应用系统中更容易的实现端到端的自动化业务流程。

防火墙之外的SOA:加强合作的机会

由于越来越多的价值链趋向整合,比如全球外包,在许多行业中,B2B架构整合已经成为保持竞争力的必要手段。因为企业之间对于合作伙伴的系统只有很少的可见性而且不可控, B2B集成的设计与部署相比企业内部的集成有更多的困难。而且一个B2B平台必须要处理一些特定的问题,比如安全、审计、事务管理和交易通讯管理。结果导致很多B2B系统都比较复杂,部署起来比较麻烦而且维护成本昂贵。如果使用SOA,那么B2B系统就可以获得和企业内部集成一样的好处——通过可重用的功能快速部署,灵活的应对需求的变化并且降低开发和维护的成本。如果使用平台无关的因特网标准,比如SOAP或者XML,那样与合作伙伴间的不同类型系统的通讯就会更加容易,SOA就能更容易的进行B2B的集成。


为什么现在要为B2B引入SOA?答案是:标准。

B2B集成的所面临的一个巨大的挑战就是缺乏行业范围内的分布式计算标准。尽管那些特定平台的分布式计算标准早在90年代末就开始竞争主导权,比如COMCORBA;直到因特网的成熟,那些真正平台无关的分布式计算标准才得到广泛地接受,比如XMLSOAP。实际上,这些标准最初的设想是企业对企业的功能,比如电子商务枢纽、第三方信用检查、外包物流服务。与一个可以开放给任何系统的独立的集成框架一起,这些标准就可以实现平台无关的SOA。企业可以在B2B集成中利用这些技术,那他们就有机会超过那些仍然陷入在昂贵的、私有的遗留系统中的竞争对手。

 

为了展示使用SOA进行B2B集成的潜在优势,设想一个供应商管理库存的例子。通常,企业和他的供应商可能会通过一个运行在私有增值网络(VAN)上的客户定制的,基于文件的电子数据交换(EDI)系统进行交互。尽管这种类型的连接能够提供基本的功能,但是他有很多局限,尤其是企业想充分利用B2B在协作方面的优势的时候。比如,供应商想要从一个或者多个客户的后勤办公系统中获取库存信息的时候,客户必须要对此进行开发编码。这些信息必须被打包并且通过EDI发送给供应商。如果底层系统改变了或者信息发送方式改变了,代码就必须进行修改。此外,每一个供应商都要开发实现端到端系统并且承担昂贵的VAN连接费用。因为这样的系统是静态的、不灵活的,合作伙伴无法获取像一种绑定到一个动态式样的新产品的库存信息。然而,有了这些灵活性,就会获得很多协作方面的优势,比如供应商管理库存。

现在考虑如何通过SOA创建一个供应商管理库存系统。首先,一个合成的“查看库存”的应用程序会被创建。这个应用程序可能会访问几个客户的后台系统或者服务。客户要使用Web服务封装“查看库存”功能并部署在防火墙外,使供应商能够访问他。供应商可以使用标准的通讯协议比如SOAP,通过因特网访问“查看库存”功能。他们不需要写任何客户定制的代码,也不需要支付昂贵的私有网络费用。此外,这个集成系统(供应商和客户)将来还可以以一种动态的方式集成现有的服务或者访问第三方的服务,比如那些合约制造商和物流服务提供商发布的服务。当企业需要一个新的供应商,也不需要进行客户化集成;供应商只需要简单的访问“查看库存”Web服务,就可以成为整个集成系统的所支持客户的一部分。


 

1. 使用SOAB2B集成

通过使用SOA进行B2B集成,如图1,企业可以如下方式获益:

l         通过重用内部整合的成果降低开发成本和项目风险。被创建成服务的自动内部业务流程可以被扩展到防火墙外,能被合作伙伴直接访问。这样不仅能够通过重用降低成本,还能够提升内部SOA项目的投资回报。因此,重用已经投产的可靠的并且经过测试的服务,B2B项目的风险会大大降低。

l         通过简化端到端自动流程获得附加的价值链经济体系。使用SOA,可以通过自动业务流程为企业创建跨度从供应商到客户的各种方式的复合应用程序。

l         简化合作伙伴的集成任务。使用SOA,合作伙伴独立于企业内部复杂的底层系统。通过Web服务的URL,合作伙伴可以访问任何企业选择开放给他们的功能。即使内部系统发生了改变,Web服务接口也可以保持不变,这样IT部门就有信心,能够灵活的对内部系统进行升级,不必担心破坏业务活动。

l         快速增加新的合作伙伴。SOA利用现有的网络能力,比如合作伙伴的自我服务,更进一步。流程可以被创建一次并且在多个合作伙伴之间进行重用。根据定义,Web服务有标准的接口,任何合作伙伴都可以不用进行自定义的编码就可以进行访问。这就意味着当新的合作伙伴增加的时候,不需要对每一个进行单独的集成。他们只需要订阅相关的服务获取他们需要的信息和业务逻辑就可以了。

l         通过动态协作获得更多的优势。传统的B2B集成是静态的并且是预定义的。通过将B2B功能发布为Web服务,合作伙伴和客户可以根据业务需求的变化发展,通过一种新的方式与企业进行交互。比如,你想增加一种新的产品捆绑或者新的渠道,必需的核心服务已经到位,只需要为新的产品或者新的合作伙伴进行重新配置和发布,不需要重新编码,大大的减少了开发时间。

 

你准备好跨企业了吗?

尽管利用SOA进行B2B集成具有巨大的潜在优势,细致的规划却是能否在B2B中成功运用SOA的关键。下面我们列出当内部服务在防火墙外开放时,B2B业务必须要考虑的几个重要问题。

安全和认证——任何时候对防火墙之外开放后台系统,都要设法将企业的风险降至最低。任何B2B集成都需要提供一种机制来保证敏感信息的交换,比如必须以一种安全可靠的方式在公网上共享业务服务和流程。安全功能必须足够健壮,能够解决不同级别的问题,从安全的物理连接到数据的加密。此外,任何B2B集成都需要一种机制代替合作伙伴和数据的认证,比如数字签名技术。

审计和不可抵赖——与合作伙伴之间发生的商业交易是具有法律约束力的,通常都在合法的合同中有定义。为了保证这些协议是强制的,要为所有的交易维护严格的日志,这样交易的参与者就有了可以审计的依据,可以帮助解决纠纷。

交易团体管理——在B2B平 台的所有组件当中,交易团体管理可能是最重要的了。管理和更新合作伙伴的业务协议,合作伙伴信息,合作伙伴储备和合作伙伴的安全证书比如数字证书,必须尽 可能的自动化。那些涉及到拥有成百上千合作伙伴的交易团体的企业,如果需要一支军队来进行系统管理来保证运行的话,实施B2B解决方案将变得非常昂贵。

数据完整和事务管理——业务流程和数据必须在底层平台有任何失败的时候完整的保存下来。

分析——管理人员需要衡量B2B解决方案带来的好处,比如填写订单的速度加快了,库存减少了或者付给供应商的费用降低了。SOA平台必须给管理人员提供各个级别的权利,去定义规则,监控交易并且接收相关的报告。

 

 

【使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的二手手机回收平台系统。该系统旨在为二手手机回收提供一个便捷、高效的在线交易平台,同时确保交易的安全性和透明度。 在后台管理方面,系统提供了用户管理、商品管理、订单管理以及数据统计等功能。通过这些功能,管理员能够轻松地管理平台上的用户信息、审核商品发布、跟踪订单状态,并对平台的运营数据进行详细的分析。 在前端展示上,系统采用了Vue.js框架,实现了响应式的用户界面设计。用户可以通过直观的界面浏览商品、发布自己的二手手机信息、下订单以及查看交易记录。此外,系统还提供了搜索和筛选功能,帮助用户快速找到符合自己需求的商品。 技术实现上,后端使用了Java语言,结合Spring框架进行依赖注入和事务管理,SpringMVC负责处理Web请求,而MyBatis则用于数据库操作。前端则使用Vue.js进行页面渲染和交互逻辑处理,搭配Axios进行异步数据请求。 本项目的数据库设计充分考虑了数据的完整性和安全性,采用了关系型数据库MySQL进行数据存储。数据库表结构包括用户表、商品表、订单表等,确保了系统的高效运行和数据的一致性。 对于正在进行毕业设计的学生或需要项目实战练习的Java学习者来说,本项目提供了一个完整的技术栈和业务逻辑实现,可以作为学习和实践的良好参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值