使用BEL构建Web服务网络3_第1页
使用BEL构建Web服务网络3_第2页
使用BEL构建Web服务网络3_第3页
使用BEL构建Web服务网络3_第4页
使用BEL构建Web服务网络3_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用BPEL构建Web服务网络【2005-12-2709:47】【】【Oracle】受不断成熟的Web服务标准的鼓舞,越来越多的组织正在协作环境中使用Web服务。BPEL正快速成为为实现企业间协作而编排这些Web服务的平台。BPEL为构建在线市场或协作网络的公司提供了引人瞩目的好处,即基于标准的方法和松散耦合的流程集成。而Web服务提供的激动人心的新功能却隐藏着某些风险。在许多情况下,如果在设计时未解决某些技术和管理难题,则合作伙伴关系将会破裂或集成成本飙升:·合作伙伴必须事先进行充分的协商,约定根据特定标准开展业务。传输协议、交互目的、消息格式以及业务约束必须实现清晰地通信。·连接网络必须是一个简单的过程;协作网络主要通过不断壮大取得成功。·用户必须在运行时轻松地找到业务服务,否则将在很大程度上无法实现面向服务体系结构(SOA)这一承诺。(服务信息库在这方面很有用。)如果开发人员无法轻松地找到和重用服务,则这些服务本质上就算不存在。·合作伙伴应能够实时监控Web服务。最终用户应能跟踪特定订单的进度,并且贸易合作伙伴应能诊断业务流程中的特定瓶颈。如果协作网络在托管环境中运行,这些难题将变得更为棘手。在该模型中,合作伙伴将他们原有应用程序提供的功能公开到Web服务中,并将此Web服务发布到集中的信息库中。主机负责编排复杂的业务流程,后者反过来利用合作伙伴的Web服务。在BPEL指南的这一部分中,我将把欧洲航天局(ESA)项目(来自Spacebels.a.的小组参与了该项目)作为一个案例分析,介绍与这些挑战相关的体系结构注意事项。此外,我还将介绍该项目如何利用BPEL作用域、BPEL域和OracleBPEL流程管理器API构建一个“易于合作伙伴使用的”协作网络。ESA网络概述ESA已着手制定一个战略性计划,旨在完全基于开放标准创建一个BPEL驱动的服务提供商协作网络。该网络称作服务支持环境(SSE)网络,它组合第三方的地球观测(EO)和地理信息系统(GIS)服务,提供增值的复合型服务。SSE是一个不断壮大的网络,目前包括遍布9个不同国家/地区的20多个合作伙伴。如图1所示,SSE是一个支持BPEL的网络的简单实现。ESA充当中介,它使用各种Web服务标准(如SOAP、WSDL、WS-Addressing、WS-Inspection等)为不同合作伙伴之间基于流程的协作提供支持。该网络在集中星型拓扑环境中运行:服务提供商使用OracleBPELDesigner将不同类型的地球观测和GIS服务集中到一个信息库中,从而创建了一个不断扩大的服务目录。宗图播1尸S自SE阔体系柿结构抚SS绸E凝提供望执行念以下偿任务触所必绣需的畜基础巡架构经·强承载秧和管斧理充蝶当可种用服狐务目乡录的捉中央梁信息绕库鞋·馆在中黑央目箭录内财部注传册和取搜索咬服务策·营在反O千ra伏cl务e醒BP唤EL队引擎疫内部意执行滋短期贞和长由期的佣业务质流程地·章使合贼作伙贵伴能聪够使肺用车O巾ra莫cl敢e疲BP音EL武流程衔管理燃器控立制台券监植控龄W熟eb针服务柿的减执香行姻学最终傻用户侄通过亭浏览浊可用爸服茅务目爆录请舅求特析定服混务悔。衡SS则E疯根据赤请求德调用恒相关纪的业危务流携程。仁该业域务流思程调食用壁W虹eb奋服克务颈(矿运行高在服持务提降供商控处饶)沿来完旺成请驼求鉴。黄SS叼E忠支持类同步躲和异尿步的舱交互赏模型穴。糟ES带A印广泛凡使杨用愚O口ra腥cl朝e某BP染EL攀流程论管理周器粮A袖PI飘来为锡提供素商和喷最终览用户嗓提供乏最大炼程度更的灵类活性嗓和易刘用性继体验闷。举设迎计葱W鲜eb射服务灶网络热拣开放洗标准爬正在津不断撇改变腰集成茅的规守则以。废BP旦EL汤提供率了一肤个以寻流程渔为中滤心的蜘跨企楚业集筛成方爬法,脆因此刑可以险使残用笑B于PE迹L誓流程唱流定泉义合陈作伙洋伴集划成刊。获SO察A土与凯B微PE致L驻的这块一组究合为上构建杂松散厦耦盾合讨的置协作痰网络妄提供亚了一座个符前所斧未有发的良拐机。竖榆集中眉星匠型耍(S把SE途采用咱的方盏法锦)圆是一董个广笼泛使县用的升网络铲拓扑喉,组驳织通校过它负与各貌种合眼作伙永伴建关立连船接。烧网络汁也可把以采斩用单闸向对绣等模胀型。异这种半情况挎下,不每个植合作为伙伴较都旬为茫W悬eb朵服务追安全速性和颜供应并提供堵了一禽个平主台。炎县现在洽,我热们来紧看网寄络设冲计的唐四个同方羊面贯:疗·惹设置殃接口饱关系螺·世简化别合作灶伙伴索支持渣·量创建葵集中诚的服朋务注阵册表糠·种为合求作伙吨伴和留最终速用户并提供蛾自助紧监视碍功能伤减设置妨接口恭关系键。协寿作网烂络设祝计从议定义途参与秘规则吸开始沉。这间些规杜则指团定在搜业务流流程肯中交戚换的露消息毁、这矿些消属息的购交换堪顺序公以及条该消跨息咱的键物产理属症性。妻要正眼确通主信,缸所有戏合作派伙决伴都袍必须挠能够稻回答般以下谈问题封。猾·石交互声的目挣的黎—委是请回求报悬价还才是订坚单吼?尺·录消息零格卖式线-嗓消息普是如遵何编挠码龙的冶?俯·蕉词顷汇查—渗应如欲何构造造消恢息,惠以便键其他窝各方淹可以抬理解版和处秃理它班们卸?下·依业务骆约穴束中-奔应在裂多长轧时间未内响愤应请肠求欺?折·化通信葬渠甚道玻-惨是否寻应把着消息槐加僵密吸?亏筐为帮钢助合赏作伙鸡伴回低答以逼上问哭题闻,奶ES缠A借公布读了一献个接浸口控肃制文区档来绪定义笋这些管术语优。本邮文档锤正式浑确定拨了在缸多蚂个钢E亿SA何赞助类的项榜目中绞建立耍、改者进和奏验证惠的技洁术集政成规洪则。齿基于涌消息载的殿S山OA逼P君(肥通圈过裹H帽TT停P统或侍H拳TT拥P男S条实现势安全惭通敞信成)作是斥S飞SE模服务炎器与僵服务听提供物商之肾间采曾用的咱通信交协议灵。铸(赶对于过本文稍档,涉我们还将分犹析航W岔S-些Se冠cu湖ri颜ty姓的用捎法赔。轨)W岩eb蜘服务唯定义烟语砖言迈(W贝SD焦L)持是唯浓一一宵个绑构定了妈所有舌实体彻的接庙口协述定龙;新服务凤提供治商必培须创陵建一盾个硬W盘SD村L火文件痕,用裙于描信述它撇的啦S姥OA霞P婆接口捡并使脊其他嗓合作面伙伴充可以志访问杰该接截口联。怕WS镰DL桥文件监中包顽含的鹅某些膊信息咱是固狭定的萍,但斩必须展提供沙以下沃信枣息罢:描·慕根据屈选定促的交拆互模专型竖(柳搜索短、缠RF块Q嗽、订冠购迅)粉选择短的操产作蛛·树服务葡的物败理位侵置妄·抓服雪务河X盗SD怜模式千的导撒入娇督为便构于服际务、染一致拦性和振消息厨转换骡的盆比垄较,酬ES飞A发要求撕使妨用疫X北SD瞒详模式蜘表拿示萝X阁ML弯有效锋载荷辜。疾SS槐E径还要室求使止用巩主宋X拿SL妻T罗文档汇来确好保表禾示层封中的伏一致搞性。醉必须织按如侮下所哪示在班每个额服务幼中导雕入模呀板样古式勿表洽:假xs雁l:听ap依pl馒y-闭im厦po与rt窄s惨使用坝从施S姻SE休样式政表中盘导入揪的模炊板规苦则处住理根亦节点华。注谊册该轮服务课时,燕服务仅提供点商提序供偿X泼ML论模式孩、除WS犁DL旷和毒X锣SL枣T取文件称的乌U裳R供L酷。复SS理E丙强制惩使用汗文档拒样式犹的南S甘OA卡P帮。该日方法探允许估使角用狠X券M认L桐模式圾对输存入服女务和求服务芦输出低的数缠据避进行能详细棚的指苹定并告验证紧传入睁和传内出的稳消息里。粥ES权A仙采用傍的方冻法为突打算扒构建淘一个浴合作城伙伴锣数量冬有限宋的仁W蒙eb掩服务饮网络认的公宽司提赞供了友一个嚼便捷贺解决赌方案犁。随尼着网漫络规露模的齿增长鄙,将婚需要虚引入载新的蛮消息蛇格式区、通齿信规谨则、秋安全蒙性以位及传哀输机差制。担惩简化省合作济伙伴冤的参会与。谈任何脆网络毒的壮她大都沙离不钞开合迷作伙向伴的鞠轻松染参与彻。下蹦列因问素将帮对此压过程滩产生欠很大瓶的影梢响。详·宅与集割线器枣的集辜成何-亚合作饭伙伴煎如何耕创建木和提乏交他验们旷的光W朱eb牺服茂务林?岂集线限器能银否支粮持不湿同的庙传输豪协圆议孝?苏·捕流程舍管伟理争-餐不同耐合作究伙伴啦流程攀之间火是否则有清垄晰的仪界仅限蜘?嫌合作狮伙伴健能否缸修改弦它的罚业务闷流程辱而不瞎影响网整个佩网络旋的可免靠疲性驶?柴能否吩使用尊元摘数据桥定义芦即多时生优成流庄程箱?叙SS即E懒通过榜降低朵对服予务提勺供商告的技犁术要违求成跑功稳邀固了券与其角合作凝伙伴膏的联型系穿。处ES哪A舒通过室分发妙合作坐伙伴烦连接娇软件眨、划壤分开晨发平怒台以惨及自猴动代讨表合惯作伙浓伴生舰成流赚程流烈实现巷了该姐目标怪。蕉挺例如虏,为灯加快驻集成射流程兵的速菜度膊,峰ES虑A负分发饱了磁S梦SE未T劲oo涨lb聪o聋x版,这迫是一单个虽在尝S在SE香与服晴务提虎供商证的现燕有系动统间捧充当障接口恩的免丢费工油具包孕。基绣于制S缴un箭J予av乔a袍We柔b接Se算rv覆ic世es唤D晴ev日el获op纲er院P桌ac绩k尾的民S赢SE盯T涂oo臂lb续ox皂提供馆了一旦个粥支控持各存种后撇端集草成机避制这(堆如鲜F露TP坚、文煮件交里换响、贝JD小B灿C凑、调乳用波J霞av甚a窜A宫P支I机、非HT皂TP瓶等鞭)乔的嫌X取ML鲜脚本沿语言犬。它轧还自像动生类成注衫册服蹦务所社需工的挂W忌SD幸L步文件丧。电不同津的合甩作伙焦伴将寨多个腥服务盏提供煌给中处央信俗息库馋。开熊发和冶部署器环境坝的划甘分使丰合作门伙伴蚕间的报更改艇互不钢影响炭。辫SS尺E虏通过汽在藏O蝇ra滑cl快e六BP货EL资流程炎管理申器中伤使默用丝B静PE汽L读域有绞效地勇利用式了划蚀分功尼能诞。陷BP阳EL篇域使爆开发鹅人员池或管乳理员贱能够倒将秀O掌ra巴cl蛛e鼓BP绞EL宾流程心管理慧器的相单个饱实例享划分微为多返个虚避拟个B的PE治L约沙箱醒。半BP围EL魂域由沸一四个割I骨D便标识顷,并嚷由一湿个口少令保跌护。劈当服妹务镇提芝供商沙在爽S输SE洲上注宽册时凯,将图调帝用逃O急ra推cl柿e矿BP锋EL王流程诚管理判器栗A掀PI窑自动污创建叨一娃个驻B阶PE敏L纳域保腊存服慕务定溪义文炒件。劝裙以下轧是一右个臣c柄re隆at在eD职om卵ai朽n眼方法弹示程例清:/***Createnewdomainspaceforaserviceprovidertoholdher/hisservicesworkflow*definitionsfilesin

**@paramdomainNameTheIdtoidentifythedomain*@parampasswordThepasswordusedtologintothecorrespondingdomain*@exceptionRemoteExceptionSystemcommunicationerror*@exceptionWorkflowExceptionThrownifanyerrorhappensontheserverthatpreventthedelete

*

*/publicvoidcreateDomain(StringdomainName,Stringpassword)throwsRemoteException,WorkflowException{if(ml.isDebugEnabled())ml.debug("EntercreateDomain(domain="+domainName+"password="+password);

/***checkifthebeingcreateddomainexist?*/try{

Locatorlocator=newLocator(domainName,password);述ml随.i唤nf叹o(们"S而to艳p生cr驻ea移ti葵ng仆d塘om浪ai买n:随"虏+横do漂ma键in袄Na睛me束+厉"与b语ec躬au锣se肤i萌t老ha疲s柜al嗓re凑ad洲y咽ex蝶is暗te饿d.泄")历;凝蜓th丈ro的w液ne想w爷Wo敌rk贴fl狼ow里Ex瓜ce裁pt术io启n(兄"1介01膛9"超);燕对}治ca弯tc惠h衫(c恩om庭.o版ra秆cl愧e.框bp闭el镜.c拣li嫩en烂t.乓Se欠rv狮er狐Ex摄ce泉pt汁io病n孟e)密{咱吹;璃骗喇相}傲tr爸y妻{嗽/茂/o份bt降ai私n钉th夫e加do配ma肝in谅a隙dm告in拍p级as端sw窝or届d株fr贤om砖t林he疏s撤ys谦te蓬m裁co夜nf响ig姐ur摸at肆io腊n捉SS身E.廊pr他op腥er瘦ti赠es驰f德il型e峡St版ri紧ng雨d元om妙ai直nA声dm驳in课Pa巡ss酸wo汗rd击=告S拢ys军te芦mC苍on业fi太gu谎ra仍ti垫on柴In奇fo狭.g谷et打Pr痒op别er绒ty斧(W姿or截kf观lo华wC乌on工st徒an结t.药BP钻EL新_D邻OM众AI铅N_呆AD鸣MI踏N_祥PA芬SS款WO垄RD嘱);底Se换rv绪er饲Au木th膜a触ut理h歌=绝Se星rv付er最Au纲th笔Fa岛ct蓝or相y.警au屈th霜en则ti倒c巡at燥e(季d项om任ai渔nA浙dm筒in中Pa尝ss责wo坊rd焦,珍"l璃oc柿al值ho避st政"婚);怨if昨(m延l.凝is推De亲bu雀gE担na币bl蛛ed集()岛)倾ml变.d阳eb阿ug峡(祝"o跳bt扣ai预n轧au槽th串en握ti警ca达ti赞on庄o俭k"掌);呈//伯C喜re么at炕e证se携rv霜er见o碑bj披ec遥t霜..您.代th坝is题i性s生ou嘱r沸se报rv虚ic炸e叛in置te故rf滑ac谈e柔捕粉膏惑恒//凯Se温rv斩er造s狐er拴ve踪r立=禽ne驰w晌Se粪rv堂er铅(案au梦th祖)腊;驶//莫D落om舰ai啊n咏id之i掏s即"n凳ew夹Do勒ma洗in牲",傅t届he戚p嗓as烧sw墨or嘉d狐is翼万"招my有Pa舅ss廉wo邪rd存"秧if梳(m何l.次is屈De哭bu稼gE玉na铲bl嚷ed载()张)滑ml聪.d让eb岁ug枕("钥cr盒ea遍te清s冻er狐ve铸r寸in搞st闯an断ce掘o抹k"固);桥蹈存触围割//睬凝宣Ma近p政do乔ma什in绿Pr蔽op邮er各ti深es弓=巷n围ew虾H共as谷hM剑ap谱()处;文炊光do芽ma很in零Pr手op茄er赤ti电es巩.p鼓ut向(殖Co痒nf欢ig潜ur久at森io直n.滩DA户TA但SO幸UR遵CE设_J汗ND底I,遭S纤ys贡te己mC务on与fi窄gu银ra淹ti极on茶In漫fo版.g被et燕Pr食op信er笨ty进(C准om竞mo府nC若on咳st音an仇t.汇DE犁FA台UL催T_树BP踩EL锈DO波MA于I汤N_栗DS徒_J振ND版I)孤);货晒即d科om阻ai凭nP巾ro插pe货rt址ie姓s.岁pu翻t(锋C酷on狗fi铸gu效ra谅ti欣on失.T付X_矿DA洞TA趟SO吴UR渗CE陷_J剪ND锯I,移S光ys昂te胳mC带on武fi衔gu沈ra价ti崭on哗In喉fo驰.g苏et镰Pr慎op丹er伐ty陪(C膜om是mo枕nC银on馅st订an装t.聚DE开FA椅UL牵T_叨BP钩EL捆DO真MA挑IN肃_D火S_斤JN糊DI逐))拍;冻雕爸记劣if模(m私l.姨is猎De蛇bu渴gE仰na武bl耍ed延()泰)泼ml陷.d衫eb叠ug斤("班cr毕ea丛te础d撒om托ai钢n诱-饿ds婚j攀nd愤i里pr熔op侮er况ty劣k猜ey旷/v番al击ue软:贼"衣+目Co疮nf睁ig膏ur潮a探ti帽on稼.D艰AT泰AS扯OU界RC宵E_帐JN睬DI价+且"倡/"且+武S尸ys吴te温mC众on他fi活gu鸟ra胃ti彼on构In铃fo落.g倚et谎Pr谣op傍er间ty顽(C会om铲mo布nC川o目ns帅ta让nt础.D税EF时AU驰LT舱_B延PE陷LD机OM块AI端N_蜘DS构_J穗ND俭I)灰);育跪慰勉部拖世哄竿归if惑(m歼l.证is形De恢bu蕉gE行na朵bl休ed原()谊)俭ml贤.d非eb絮ug吼("主cr探ea芬te丧d慈om节ai销n威-弊tx租_d蝴s呀jn听di佛p羊ro响pe兽rt绒y器ke千y/稳va劳lu嘉e:仿伴"更+引Co妖nf虑ig拍ur卸at貌io逮n.解TX校_D帐AT影AS辰OU病RC骑E_足JN抛DI型+革"奴/"参+沾Sy贡st煤em谷Co御nf裕ig库ur唤at吐io接nI慢nf羊o.热ge染tP曾ro六pe描rt典y书(C可om能mo涨nC咽on叮st惕an绝t.卷DE钉FA敌UL本T_模BP魂EL妻DO寒MA插IN愈_D固S_况JN理DI陡))露;驶se屋rv正er茅.c啦re蛙at仁eD己om鹊ai忧n(旺do局ma柿in肝Na庆me穴,秀pa神ss俗wo变rd库,内do梦ma宿in岛Pr遥op的er捡ti隔es摧);劈铜帜剃趣渴样构诉幻喷洞兼替if谅(m场l.丽is赤De垄bu竟gE肚na串bl备ed慕()剃)欣ml贪.d消eb屑ug寸("想En游te垦r剑cr斗ea元te妹Do梳ma钞in差(d裕om前ai最n触=纯"毯+怜do归ma泄in撑Na酱me来+泼"庙p衬as艺s盗wo暂rd花=终"典+始p酬as仔sw暴or汉d)雨;}catch(com.oracle.bpel.client.ServerExceptionse){ml.error(se.getMessage());if(ml.isDebugEnabled())se.printStackTrace();thrownewWorkflowException("1018",se.getCause());

}

}在下面runBuildScript方法的实现中,通过一个Ant构建脚本访问Oraclebpelc函数。runBuildScript方法调用一个Ant项目文件,后者随后调用bpelc编译和部署服务提供商的BPEL流程。/***executetheantscripttobuildanOracleBPELprocessthatimplementstheworkflow.*Thescriptalsodeploystheworkflowtotheservicedomains.*Allinputinformationisprovidedunderthepropsattheinputparam.*@parampropsContainallnecessarypropertiesusedtobuild/deploytheworkflowBPELprocess*@throwsWorkflowException

*/privatevoidrunBuildScript(StringbuildFilename,Propertiesprops)throwsWorkflowException{if(ml.isDebugEnabled())ml.debug("EnterrunBuildScript(buildFileName="+buildFilename+",properties=...");try{Projectproject=newProject();project.init();FilebuildFile=newFile(buildFilename);if(!buildFile.exists())thrownewWorkflowException("1015");if(ml.isDebugEnabled())ml.debug("antbuildfile:"+buildFile.getAbsolutePath());ProjectHelper.configureProject(project,buildFile);//prepareloggerfortheprojectbuildPrintStreamout=System.out;BuildLoggerlogger=newDefaultLogger();logger.setMessageOutputLevel(Project.MSG_DEBUG);logger.setOutputPrintStream(out);logger.setErrorPrintStream(out);project.addBuildListener(logger);//setprojectpropertiesEnumerationkeys=props.keys();while(keys.hasMoreElements()){Stringkey=keys.nextElement().toString();project.setProperty(key,props.getProperty(key));

}//test//excutedefaulttargetproject.executeTarget(project.getDefaultTarget());

if(ml.isDebugEnabled())ml.debug("ExitrunBuildScript(buildFileName="+buildFilename+

",properties=...");

}catch(Exceptionex){ml.error(ex.getMessage());if(ml.isDebugEnabled())ex.printStackTrace();thrownewWorkflowException("1002",ex.getCause());

}

}在Web服务网络设计中,应考虑使用BPEL域为所有相关各方划分流程设计和部署平台。以下是一些可能的应用:·将单个OracleBPEL流程管理器实例划分为多开发人员环境。这种情况下,域ID通常标识拥有该域的开发人员。·将单个OracleBPEL流程管理器实例划分为开发环境和QA环境。这种情况下,域ID可能为“test”和“QA”。·将单个OracleBPEL流程管理器实例划分为一个可以由多个部门或合作伙伴使用的环境。这些情况下,域ID是部门或合作伙伴的名称。创建中央服务信息库。定义了网络关系后,合作伙伴便可以免费加入并提供他们的服务。当然,发布和搜索这些服务的功能是SOA平台的一个基础功能。在该流程中,合作伙伴将他们的Web服务发布到一个中央信息库,有关该服务的所有信息都在这里进行管理。这个中央框架提高了服务的可重用性,最大限度地降低了定位服务所需的工作量和时间。没有中央信息库将导致不一致和混乱。这反过来会降低网络的灵活性和开放性。SSE网络频繁使用中央Web服务信息库;合作伙伴使用Web服务检查语言(WSIL)发现可用服务。服务提供商可以通过选择相应的WSDL文件重用现有的Web服务(由网络中的其他提供商提供)。可以在OracleBPELDesigner工具配置文件UDDIProviderList.xml中添加来完成此任务,如下所示。<provider>

<description>ESASSEPortal</description>

<type>wsil</type><inquiryURL></inquiryURL>

</provider>位于服务提供商处的OracleBPELDesigner连接到SSE服务器并使用WS-Inspection协议发现可用服务及其WSDL文件。连接到WS-Inspection服务器后,将显示所有可用服务列表,如图2中所示。图2可用SSE服务列表对于每个服务,将提供相应的WSDL文件和简短的文字描述。可以通过选择WSDL文件为该服务添加一个合作伙伴链接。构建流程流后,可以使用BPEL控制台将其部署在SSE门户上。(在它的下个版本中,SSE将实现UDDI注册表与OracleBPEL的集成。注册新服务时,还将在此UDDI注册表中自动注册该服务。该集成将简化使用外部工具的服务发现,目前仅当这些工具支持WS-Inspection时才能发现服务。)尽管您不必建立服务信息库即可构建SOA并获得它的众多好处,但从长远来看,信息库是不可或缺的。如果服务的作用域只是一个项目,则架构师不用信息库也能处理。但大多数企业都拥有各种服务和合作伙伴,并且这些服务和合作伙伴的大部分都在不断变化。提供自助式监视。在多方参与业务流程的协作网络中,对业务流程执行情况的监视非常关键,因此可以将围绕业务流程的关键性能指标与服务级协议相联系。(例如,加入网络的关键要求之一可能是确认两小时内的报价请求。)监视业务流程可以更好地获知特定业务流程实例执行的时间、出现延迟的原因以及如何为未来事务修复此问题。应向合作伙伴和最终用户提供该级别的诊断。通过创建自助式环境,合作伙伴和最终用户可以跟踪他们的单个流程,从而减轻中央监视框架检测到的问题。可以使用OracleBPEL控制台监视和调试业务流程(参见图3)。ESA和服务提供商利用BPEL控制台跟踪正在运行和已经完成的BPEL流程实例数量、流程实例的平均持续时间(从而细分流程中消耗的时间)以及文本格式的流程实例审计线索,从而使合作伙伴可以查看中间结果。图3使用OracleBPEL控制台监视业务流程此外,订购了特定服务的最终用户可以跟踪其订单的状态。可以使用OracleBPEL流程管理器API在BPEL控制台的外部显示该信息。建议服务提供商在他们的BPEL流程中使用有意义的作用域名称;在运行时,门户使用IInstanceHandle.getStatus()API提取当前BPEL“作用域”的名称向最终用户显示该进度的信息。作用域按层次结构组织,一个复杂的业务流程可以分为几个作用域。它们为活动提供了行为上下文。通过在BPEL流程中使用有意义的作用域名称,合作伙伴可以跟踪“短期”和“长期”业务流程的状态。例如以下getOrderSubstatus方法的实现。该方法使ESS合作伙伴可以使用在bpel文件中执行的作用域的名称获取BPEL流程实例的当前状态。*calltheOracleBPELAPItogetcurrentstatusoftheworkflowinstance,correspondingto*theorderedsuppliedattheinput*@paramorderedTheorderidentified*@paramworkflowIdTheworkflowname(orId)thatisprocessingtheorderstage.*Normally,therearetwostagesofanorder:send(process)rfqandsend(process)order*@paramdomainThedomainthattheorderworkflowbelongsto*@parampasswordThepasswordusedtologintotheworkflowdomain*@returnthecurrentstatusoftheworkflowinstance-particularly,itisthenameof

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论