??xml version="1.0" encoding="utf-8" standalone="yes"?> • BPEL(Business Process Execution Language)又叫BPEL4WS(Business Process Execution Language For Web Service)Q面?/span>Web服務的業務流E執行語a。是一E?/span>Web服務定義和執行業務流E的語言?/span>BPEL提供了一E相簡單易懂的ҎQ可多?/span>WEB服務i合C個新的復合服?/span>(E׃業務程)中?/span> • BPEL本n是一?/span>Web服務Q可以作為服務的提供者?/span> • BPEL是基?/span>Web服務的,沒有Web服務沒?/span>BPEL?br />
• 一個以bpel為後E的文g(例如MyFlow.bpel) • 一?/span>WSDL文g • 一個部|?/span>XML文gQ樣子Ş?/span>bpel.xml • 需要熟悉單個的Web Service的用方?/span> • 需要了解具體的業務程 • 需要一個運?/span>BPEL的處理器 • 需要一個流E設a器 • 當然需要對BPEL語法標簽的掌握等 BPEL的一般結?/span> • <process> • <partnerLinks> • <partnerLink> • </partnerLink> • </partnerLinks> • <variables> • <variable/> • </variables> • <faultHandlers> • </faultHandlers> • <sequence> • Activities • </sequence> • </process> <process>的屬?/span> <process name="ncname" targetNamespace="uri" queryLanguage="anyURI"? expressionLanguage="anyURI"? suppressJoinFailure="yes|no"? enableInstanceCompensation="yes|no"? abstractProcess="yes|no"? xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"> . . </process> <partnerLinks>樣式 <partnerLinks> <!– 注意:臛_要指定一個角?/span>. --> <partnerLink name="ncname" partnerLinkType="qname" myRole="ncname“ partnerRole="ncname"> </partnerLink> </partnerLinks> <variables>樣式 <variables> <variable name="ncname" messageType="qname“/> </variables> <faultHandlers>樣式 <faultHandlers> <catch faultName="qname“ faultVariable="ncname"> activity </catch> <catchAll> activity </catchAll> </faultHandlers> Activities包含具體如下 • <receive> • <reply> • <invoke> • <assign> • <throw> • <terminate> • <wait> • <empty> • <sequence> • <switch> • <while> • <pick> • <flow> • <scope> • <compensate> 基本zd一 • <invoke> – 調用某?/span> Web 服務上的操作 • <receive> – {待一條消息來回應由某人從外部進行調用的服務介面的操作 • <reply> – 生成輸入Q出操作的回應 • <wait> – {待一D|?/span> 基本zd?/span> • <assign> – 把資料從一個地方複製到另一個地?/span> • <throw> – 指明某個地方出錯了 • <terminate> – i止整個服務實?/span> • <empty> – 什麽也不做 i構化活?/span> • <sequence> – 定義一i步驟的有序序列 • <switch> – 使用珑֜常見?/span>“case-statement”辦法來産生分?/span> • <while> – 定義一個迴?/span> • <pick> – 埯q條可選路徑中的一?/span> • <flow> – 以及指明一i步驟應該並行地埯 一個完整的單CZ <process name="test" targetNamespace="http://acm.org/samples" suppressJoinFailure="yes" xmlns:tns="http://acm.org/samples" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"> <partnerLinks> <!-- The 'client' role represents the requester of this service. --> <partnerLink name="client" partnerLinkType="tns:test" myRole="testProvider"/> </partnerLinks> <variables> <variable name="input" messageType="tns:testRequestMessage"/> <variable name="output" messageType="tns:testResponseMessage"/> </variables> <sequence name="main"> <receive name="receiveInput" partnerLink="client" portType="tns:test" operation="process" variable="input" createInstance="yes"/> <assign name="creatReturnStr"> <copy> <from expression="concat("Hello", bpws:getVariableData('input','payload','/tns:testRequest/tns:input'))"></from> <to variable="output" part="payload" query="/tns:testResponse/tns:result"/> </copy> </assign> <reply name="replyOutput" partnerLink="client" portType="tns:test" operation="process" variable="output"/> </sequence> </process>
BPEL的運作方?/span>
BPEL的一般構?/span>
BPEL的實N?/span>
8.6 BPEL的結?/span>
E序名稱
|
JBoss ESB |
|
數據庫\徑和名稱
|
222.118.20.108\jbossesb |
|
E序的文件構成說?/span>
|
||
1)
Jboss
2)
jbossesb-4.0Beta1MP1
2.1 jbossesb-appl.ear
2.2 jbossEsb.properties
2.3
JBossESB-ds.xml
2.4 properties-service.xml
2.5 ObjStore.xml
配置步驟如下
:
|
||
運行條g和配|說?/span>
|
||
|
Windows
Linux |
|
|
1)數據源配|在JBossESB-ds.xml文g配置Q詳C息如?/span>: <datasources> <local-tx-datasource> <jndi-name>JBossESBDS</jndi-name>
<connection-url>jdbc:jtds:sqlserver://222.118.20.108;DatabaseName=jbossesb</connection-url> <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> <user-name>dbname</user-name> <password>access</password>
<min-pool-size>10</min-pool-size> <max-pool-size>100</max-pool-size> <blocking-timeout-millis>1000</blocking-timeout-millis> <idle-timeout-minutes>5</idle-timeout-minutes>
</local-tx-datasource>
</datasources> 2.修改jbossEsb.properties文g: org.jboss.soa.esb.mail.smtp.host=www.163.com org.jboss.soa.esb.mail.smtp.port=23 org.jboss.soa.esb.mail.smtp.user=ejinmy org.jboss.soa.esb.mail.smtp.password=123456789abc
# # Object Store Settings # org.jboss.soa.esb.objStore.configfile=file:/e:/temp/ObjStore.xml |
|
|
必需?/span>
JBoss .
運行
JBoss App Server
啟動了
JBoss ESB. |
|
|
數據庫表(script) CREATE TABLE batches ( batch_num int NOT NULL, seq integer NOT NULL, data varchar, CONSTRAINT batches_pk PRIMARY KEY (batch_num,seq) );
CREATE TABLE object_snap ( uid int NOT NULL, stamp int, snap_type varchar, object_uid int, batch_num int, xml_data varchar, CONSTRAINT object_snap_pk PRIMARY KEY (uid) );
CREATE TABLE people_index ( uid bigint NOT NULL, stamp int, latest_snap_uid int, latest_snap_date varchar, name varchar, phone varchar, address varchar, CONSTRAINT people_index_pk PRIMARY KEY (uid) );
CREATE TABLE uid_table ( uid integer NOT NULL, sequence_name varchar NOT NULL, last_used_uid bigint NOT NULL, CONSTRAINT uid_table_pk PRIMARY KEY (uid) );
INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (1, 'jbossEsb_objuid', 10500000); INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (2, 'jbossEsb_batchuid', 251000); |
|
?/span>
?/span>
|
||
此文檔是配置安裝JBOSS ESB的步驟說明書. |
||
jinmy
|
||
?JBI(Java Business Integration)
JBI是SOA的解決和集成的基C?br />JBI提供了組件之間交互的消息基礎Q?br /> 1)NormalizedMessage(NM) 所有基于消息的數據片段——SOAP片段、MOM消息、HTTP數據或其它信息——被聚合、集中?br /> 應用到業務邏輯、傳輸,如果有必要則轉換成其他格式隨後被分派到最i目的地
2)JBI machine (SE)
ig提供或者消L務是基於本地?br /> 3)JBI binding (BC)
ig 提供或者消L務是通過一些通信協議或者是其他遠程技?br /> ig之間的交互通過消息交換Q消息是服務提供者發佈的WSDL
服務元g(Service Unit)
一個服務元件看作是一個黑盒子,它提供了一個靜態的服務Q?br /> 服務元g中包含有Q提供的服務和服務消費者。它們都從屬服務元gQ一個服務元件可以有0個或者多個服?/p>
服務集合(service Assembly)
i合服務元g是大的應用程序或者新的服務Ş式出?A Service Assembly:一iJBI 服務元g連同描述它們的關係和目標組?br />^結:
JBI是SOAi構的基C,它把原來的業務函敔R成為一個服務,使服務提供者和服務消費者之間的交互是松耦合的,通過service assembly(服務集合Q?br />可以i合不同的程序,架構?
servicemix
但是出現這樣的異?
javax.xml.bind.JAXBException: Unable to locate jaxb.properties for package com.shingwai.webserivces
at javax.xml.bind.ContextFinder.searchcontextPath(ContextFinder.java:205)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:149)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:281)
at com.shingwai.webservices.xml.jdom.JDOMParse.getXMLStr_obj(JDOMParse.java:48)
at com.shingwai.webservices.xml.jdom.RunTest.main(RunTest.java:28)
不懂怎麼回事??
難到sun的東西就這麼難用,好像oracle的JAXB中的數據生成xml不會出現這樣的問?br />這個還是要看一下其他朋友有沒有解決的辦法才?