<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java 人生

    java (Java EE)&Linux

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      15 Posts :: 2 Stories :: 5 Comments :: 0 Trackbacks

    2006年4月22日 #

     

    BPEL的概念

          BPEL(Business Process Execution Language)又叫BPEL4WS(Business Process Execution Language For Web Service),面向Web服務(wù)的業(yè)務(wù)流程執(zhí)行語(yǔ)言。是一種使用Web服務(wù)定義和執(zhí)行業(yè)務(wù)流程的語(yǔ)言。BPEL提供了一種相對(duì)簡(jiǎn)單易懂的方法,可將多個(gè)WEB服務(wù)組合到一個(gè)新的復(fù)合服務(wù)(稱作業(yè)務(wù)流程)中。

          BPEL本身是一個(gè)Web服務(wù),可以作為服務(wù)的提供者。

          BPEL是基於Web服務(wù)的,沒(méi)有Web服務(wù)就沒(méi)有BPEL


      

     BPEL
    的運(yùn)作方式


     BPEL的一般構(gòu)成

          一個(gè)以bpel為後綴的文件(例如MyFlow.bpel)

          一個(gè)WSDL文件

          一個(gè)部置XML文件,樣子形似bpel.xml

     BPEL的實(shí)現(xiàn)需求

          需要熟悉單個(gè)的Web Service的使用方法

          需要了解具體的業(yè)務(wù)流程

          需要一個(gè)運(yùn)行BPEL的處理器

          需要一個(gè)流程設(shè)計(jì)器

          當(dāng)然需要對(duì)BPEL語(yǔ)法標(biāo)簽的掌握等

    8.6 BPEL的結(jié)構(gòu)

    BPEL的一般結(jié)構(gòu)

                <process>

                  <partnerLinks>

                    <partnerLink>

                    </partnerLink>

                  </partnerLinks>

                  <variables>

                    <variable/>

                  </variables>

                  <faultHandlers>   

                  </faultHandlers>

                  <sequence>

                      Activities

                  </sequence>

                </process>

    <process>的屬性

    <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>

        <!– 注意:至少要指定一個(gè)角色. -->

        <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>

    基本活動(dòng)一

                <invoke>

    – 調(diào)用某個(gè) Web 服務(wù)上的操作

                <receive>

    – 等待一條消息來(lái)回應(yīng)由某人從外部進(jìn)行調(diào)用的服務(wù)介面的操作

                <reply>

    – 生成輸入/輸出操作的回應(yīng)

                <wait>

    – 等待一段時(shí)間

    基本活動(dòng)二

                <assign>

    – 把資料從一個(gè)地方複製到另一個(gè)地方

                <throw>

    – 指明某個(gè)地方出錯(cuò)了

                <terminate>

    – 終止整個(gè)服務(wù)實(shí)例

                <empty>

    – 什麼也不做

    結(jié)構(gòu)化活動(dòng)

                <sequence>

    – 定義一組步驟的有序序列

                <switch>

    – 使用現(xiàn)在常見(jiàn)的“case-statement”辦法來(lái)産生分支

                <while>

    – 定義一個(gè)迴圈

                <pick>

    – 執(zhí)行幾條可選路徑中的一條

                <flow>

    – 以及指明一組步驟應(yīng)該並行地執(zhí)行

    一個(gè)完整的簡(jiǎn)單示例

    <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(&quot;Hello&quot;, 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>

    posted @ 2007-09-14 08:51 jinmy liao 閱讀(499) | 評(píng)論 (0)編輯 收藏

    配置說(shuō)明

    程序名稱

    JBoss ESB

    數(shù)據(jù)庫(kù)路徑和名稱

    222.118.20.108\jbossesb

    程序的文件構(gòu)成說(shuō)明

    1)?????? Jboss4.0.4GA (contain Ejb3.0)

    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

    配置步驟如下 :

    1. jbossesb-appl.ear 復(fù)制到 <JBoss-home>/server/default/deploy
    2. properties-service.xml 復(fù)制到 <Jboss-home>/server/default/deploy
    3. 復(fù)制 Jbossesb.properties <Jboss-home>/server/default/conf
    4. 編輯 JBossESB-ds.xml
    5. 復(fù)制 JbossESB-ds.xml <JBoss-home>/server/default/deploy

    ?

    運(yùn)行條件和配置說(shuō)明

    運(yùn)行平臺(tái)和條件

    Windows

    Linux

    數(shù)據(jù)源配置

    1)數(shù)據(jù)源配置在JBossESB-ds.xml文件配置,詳細(xì)信息如下:

    <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文件:

    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

    程序運(yùn)行配置

    必需是 JBoss .4.0.4 版本,還要支持 EJB3.0

    運(yùn)行 JBoss App Server 就啟動(dòng)了 JBoss ESB.

    其它說(shuō)明

    數(shù)據(jù)庫(kù)表(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);

    ???

    此文檔是配置安裝JBOSS ESB的步驟說(shuō)明書(shū).

    ?

    填寫(xiě)日期: 2006/10/18      填寫(xiě)人: ?? ??jinmy ????
    ? 更新日期:

    ?

    ?

    有使用JBoss ESB的可以一起探討,QQ:182529178
    posted @ 2006-10-21 14:20 jinmy liao 閱讀(2330) | 評(píng)論 (1)編輯 收藏

    cimero
    posted @ 2006-09-26 11:26 jinmy liao 閱讀(782) | 評(píng)論 (0)編輯 收藏

    ? 好久都沒(méi)有來(lái)這裡看一下了,由於這兩個(gè)月要忙一個(gè)流程,公司在英國(guó)開(kāi)一個(gè)銷售公司,要準(zhǔn)備程序給他們用,本來(lái)現(xiàn)在的流程運(yùn)作基本上可以,但是現(xiàn)在的程序能拿到英國(guó)用?
    ? 由於是一個(gè)銷售的公司,有了銷售、采購(gòu)、倉(cāng)庫(kù)就差不多了。這些程序我們都有,但是為了那邊的程序、流程能順暢的運(yùn)行,任務(wù)還有好多,到8月15任務(wù)就要完成,也差不多了,呵,看了下現(xiàn)在的情況,還基本上可以,不過(guò)還有程序沒(méi)有組合起來(lái)。
    ? 從這兩個(gè)月的任務(wù)中,我感覺(jué)到程序的開(kāi)發(fā)要做到重用、擴(kuò)展,並不是很容易的事。
    首先從數(shù)據(jù)層來(lái)說(shuō),不同的地方有可能使用不同的數(shù)據(jù)表,在java中開(kāi)發(fā)到是比較容易處理,但是如果是用C/S的delphi開(kāi)發(fā)的大部分都是直接使用sql的,很難實(shí)現(xiàn)這一點(diǎn)
    也許你會(huì)說(shuō),為什麼不使用同一個(gè)數(shù)據(jù)表?情況很多,我們公司是這樣的,賣了一套ERP(不完整版本),自己開(kāi)發(fā)了其余部分,這兩個(gè)程序
    要同時(shí)運(yùn)行,只有我們新開(kāi)發(fā)的程序要使用不同表的情況。同樣我們的合作公司,有可能有他自己的系統(tǒng),如果能做到不依賴於基表
    就更容易重用,數(shù)據(jù)共享.
    接下來(lái)就是:業(yè)務(wù)功能的重用.
    像倉(cāng)庫(kù)的進(jìn)貨、出貨,可用於PO,SO,生產(chǎn)等,都是一樣的意義。為了能使不同地方的業(yè)務(wù)功能能重用,我們使用SOA的思想
    利用WebServices、ESB的技術(shù)來(lái)實(shí)現(xiàn),業(yè)務(wù)的服務(wù)化.
    再就是:擴(kuò)展
    不同的地方有可能需求有不同,這是很合乎情理的,如現(xiàn)在英國(guó)要看到我們貨物在途量,本來(lái)倉(cāng)庫(kù)沒(méi)有這個(gè)功能的.
    我想要做到軟件的可維護(hù)、可重用不是簡(jiǎn)單的知道使用語(yǔ)言,這個(gè)直接輿個(gè)人的習(xí)慣有很大的關(guān)係
    其他開(kāi)發(fā)軟件,就是開(kāi)發(fā)人員處理這個(gè),等於生活的中的煮飯一樣,有的人很輕松就完成,有的人就弄的一團(tuán)糟
    多鍛煉積累經(jīng)驗(yàn)也是重要,最後提醒自己,做任何事情都不能馬虎,要仔細(xì)考慮。同時(shí)希望8.15能完成任務(wù)

    ?

    posted @ 2006-08-01 20:11 jinmy liao 閱讀(421) | 評(píng)論 (0)編輯 收藏

    感覺(jué)沒(méi)有插件開(kāi)發(fā)工程真的好辛苦,總想去找個(gè)插件,但是一直沒(méi)有發(fā)現(xiàn),有哪位朋友使用ESB的,能介紹個(gè)開(kāi)發(fā)工具?
    posted @ 2006-07-23 09:54 jinmy liao 閱讀(1571) | 評(píng)論 (1)編輯 收藏

    不好意思,才知道我也加入了這個(gè)團(tuán)對(duì),非常感謝。
    先說(shuō)一下我的SOA觀點(diǎn)吧.
    從程序開(kāi)始的結(jié)構(gòu)化到面向?qū)ο螅浆F(xiàn)在現(xiàn)在的面向服務(wù)(組件),從原來(lái)的重用打包提供API,到現(xiàn)在的SPI
    世界上的每一個(gè)細(xì)胞都在發(fā)育成長(zhǎng),同樣電腦的技術(shù)也是不段的更換原來(lái)的技術(shù)觀念。
    我從去年開(kāi)始用web services,那時(shí)候還不在了解SOA,只知道ws能實(shí)現(xiàn)原來(lái)的分布式.
    隨著ws的wsdl增多,可能要先調(diào)用一個(gè)接口得到結(jié)果再去調(diào)用另外一個(gè)接口得到結(jié)果,這樣就認(rèn)識(shí)了BPEL.
    也知道了SOA在一個(gè)企業(yè)中能把所有不同的系統(tǒng)之間關(guān)聯(lián)起來(lái)的思想的必要性。我覺(jué)得SOA思想應(yīng)該是這十年,重要的編程思想
    也許有一天還有更厲害的思想,哪時(shí)候應(yīng)該是很少寫(xiě)程序的了,這樣就有另外的架構(gòu)。

    呵,以後我會(huì)跟大家多認(rèn)識(shí),我現(xiàn)在在用mule來(lái)實(shí)現(xiàn)ESB,以後跟大家交流.
    posted @ 2006-04-25 19:44 jinmy liao 閱讀(538) | 評(píng)論 (1)編輯 收藏

    一.SOA
    SOA是一種新架構(gòu)程序的方法通過(guò)服務(wù)組合,而不是模塊方法組合代碼.
    SOA軟件系統(tǒng)架構(gòu)原理是基於自身描述理念:一個(gè)服務(wù)是一個(gè)Function(usually a business function)服務(wù)提供者和服務(wù)消費(fèi)者之間通過(guò)消息交換來(lái)完成.
    SOA優(yōu)點(diǎn):
    1)SOA主要的優(yōu)點(diǎn)是:松耦合(decoupling)
    ?? 在服務(wù)提供者和服務(wù)消費(fèi)之間提供接口,這樣可以更改服務(wù)的具體實(shí)現(xiàn)而不影響服務(wù)消費(fèi)。
    2)SOA的另外一個(gè)好處是可重用的(reuse)服務(wù)可以在不同的應(yīng)用程序中重用。
    我們可以想象應(yīng)用程序除了包括使用服務(wù)、服務(wù)提供之外沒(méi)有其他的東西了。
    SOA應(yīng)用:
    一個(gè)應(yīng)用程序符合SOA包括兩個(gè)不同的開(kāi)發(fā)行為:
    1)Service Creation:集成現(xiàn)成的方法使它們成為服務(wù)。
    2)Service Composition:使用現(xiàn)成的服務(wù)創(chuàng)建一個(gè)應(yīng)用程序和更大的服務(wù).

    二.JBI(Java Business Integration)
    JBI是SOA的解決和集成的基礎(chǔ)
    JBI提供了組件之間交互的消息基礎(chǔ):
    ?1)NormalizedMessage(NM) 所有基于消息的數(shù)據(jù)片段——SOAP片段、MOM消息、HTTP數(shù)據(jù)或其它信息——被聚合、集中、
    ?應(yīng)用到業(yè)務(wù)邏輯、傳輸,如果有必要?jiǎng)t轉(zhuǎn)換成其他格式隨後被分派到最終目的地
    ?2)JBI machine (SE)
    ?? 組件提供或者消費(fèi)服務(wù)是基於本地的
    ?3)JBI binding (BC)
    ?? 組件 提供或者消費(fèi)服務(wù)是通過(guò)一些通信協(xié)議或者是其他遠(yuǎn)程技術(shù)
    ?組件之間的交互通過(guò)消息交換,消息是服務(wù)提供者發(fā)佈的WSDL?
    服務(wù)元件(Service Unit)
    ?一個(gè)服務(wù)元件看作是一個(gè)黑盒子,它提供了一個(gè)靜態(tài)的服務(wù),
    ?服務(wù)元件中包含有,提供的服務(wù)和服務(wù)消費(fèi)者。它們都從屬服務(wù)元件,一個(gè)服務(wù)元件可以有0個(gè)或者多個(gè)服務(wù)

    ?服務(wù)集合(service Assembly)
    ?組合服務(wù)元件是大的應(yīng)用程序或者新的服務(wù)形式出現(xiàn) A Service Assembly:一組JBI 服務(wù)元件連同描述它們的關(guān)係和目標(biāo)組件
    總結(jié):
    JBI是SOA結(jié)構(gòu)的基礎(chǔ),它把原來(lái)的業(yè)務(wù)函數(shù)集成為一個(gè)服務(wù),使服務(wù)提供者和服務(wù)消費(fèi)者之間的交互是松耦合的,通過(guò)service assembly(服務(wù)集合)
    可以組合不同的程序,架構(gòu)圖:
    JBI.bmp

    servicemix

    ?
    posted @ 2006-04-22 16:24 jinmy liao 閱讀(1291) | 評(píng)論 (2)編輯 收藏

    主站蜘蛛池模板: 亚洲免费二区三区| 亚洲av成人综合网| 美女黄网站人色视频免费国产 | 无码av免费一区二区三区试看| 亚洲AV噜噜一区二区三区| 亚洲AV无码久久精品色欲| xvideos亚洲永久网址| 一区二区无码免费视频网站| 美女视频黄a视频全免费网站色窝| 精品无码专区亚洲| 国产成人亚洲合集青青草原精品| 久久精品国产亚洲香蕉| 亚洲伊人久久综合影院| 国产伦精品一区二区三区免费下载| 亚州免费一级毛片| 无码国产精品一区二区免费3p| 国产人成网在线播放VA免费| 日日摸日日碰夜夜爽亚洲| 亚洲中文无码永久免费| 亚洲欧洲另类春色校园小说| 亚洲免费在线播放| 亚洲av无码乱码国产精品| 亚洲中文久久精品无码ww16| 亚洲综合区小说区激情区| 四虎精品亚洲一区二区三区| 日韩免费电影在线观看| 免费无码黄十八禁网站在线观看| 久久www免费人成看片| h片在线免费观看| 日本免费一区二区三区| 国产永久免费高清在线| 色播在线永久免费视频网站| 永久免费A∨片在线观看| 免费av片在线观看网站| 免费一级不卡毛片| 无码中文字幕av免费放dvd| 99精品视频免费在线观看| 久久青草91免费观看| 性色午夜视频免费男人的天堂 | 亚洲精品不卡视频| 亚洲丰满熟女一区二区v|