ITPUB??ì3
ITPUB论坛 » WEB程序开发 » WSO2 WSF/PHP与Intalio结合的SOA应用

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: WSO2 WSF/PHP与Intalio结合的SOA应用
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-26 12:36 
WSO2 WSF/PHP与Intalio结合的SOA应用

大家可以一起研究,一起进步

[ 本帖最后由 dan.wilson 于 2008-7-14 01:28 编辑 ]


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-27 01:41 
The latest stable release of WSF/PHP is v1.3.2

It is a opensource and free Web Service framework , I am studying it now.

I hope you might be interested in it, we can study together and make a rapid progress.

I will put my note in chinese later.  

Download Link:
http://wso2.org/downloads/wsf/php

Manual link:
http://wso2.org/project/wsf/php/1.3.2/docs/manual.html


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-27 08:41 
环境与工具

系统环境
  OS : ManDriva Linux 2006.0
  Web server: Apache
  Databse: Oracle 8i  

开发工具及功能
   BPMS:Intalio
    开发定制业务流程
  Development Tool: WSO2 WSF/PHP
   开发web service, service consumer(client)
   其中web service包含一个或多个完成特定任务的operation/function.
   operation的WSDL可以被Intalio识别和调用

[ 本帖最后由 dan.wilson 于 2008-6-27 08:42 编辑 ]


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-27 09:21 
WSO2 WSF/PHP v1.3.2的安装及配置

1.安装OS

2.安装Apache 最新版本下载地址http://httpd.apache.org/
    tar -xvf apache_[version].tar(下载的apache压缩文件名)
    cd apache_[version]
    ./configure --prefix=[path] --enable-module=so
    make
    make install

3.安装PHP DSO方式(可以在PHP.net上下载最新的版本 )
   tar zvxf php-[version].tar.gz
   cd php-[version]
  ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-         

apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/include/libxml2/libxml --         

with-gd --with-zlib
   make
   make install
   cp php.ini-dist /usr/local/lib/php.ini

4.安装libxml2(大部分的linux系统已经自带)最新版本下载地址ftp://xmlsoft.org/libxml2/
   tar zxvf libxml[version].tar.gz
   cd libxml_[version]
  ./configure
   make
   make install

5.安装OpenSSL     最新版本下载地址http://www.openssl.org/source/

   tar zxvf openssl-[version].tar.gz
   cd openssl-[version]
  ./configure
   make
   make install

6 . 安装WSO2 WSF/PHP v1.3.2
    unzip wso2-wsf-php-src-[version].zip
    cd wso2-wsf-php-src-[version]
   ./configure
   make (编译时若提示找不到lsqlite,则需要重新下载和安装sqlite)
   make install

7.WSO2 WSF/PHP v1.3.2的配置


  回到PHP的安装目录下的ext/xsl
     phpize
    ./configure
     make
     make install

  把以下语句加入php.ini
     extension=wsf.so
     extension=xsl.so
     extension_dir="usr/local/lib/php/extensions/debug-zts-***". 最后的目录名因PHP版本而异
   include_path = ".:/path/to/scripts/folder"
     wsf.home="/usr/local/lib/php/extensions/debug-zts-***/wsf_c"(该目录的前面部分与extension_dir相同,即extension_dir/wsf_c)
     wsf.log_path="/tmp"
     wsf.log_level=1
     wsf.rm_db_dir="/tmp"


安装完毕!!!

可以根据Manual的例子自己创建webservice和client了

Enjoy!

[ 本帖最后由 dan.wilson 于 2008-6-27 09:23 编辑 ]


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-27 09:32 
目前在做一个项目,用到SOA的概念和技术

摸着石头过河,希望有兴趣的人也加入来一起研究,共同进步

我会尽量把我的进度和心得都详细贴上来的


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-27 21:15 
WSO2 WSF/PHP Introduction from PHPChina


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-30 07:44 
创建一个简单Web service的PHP 代码

<?php

//定义服务的function或operation

function greet($message) {

//定义服务返回消息的内容及其格式

$responsePayloadString = <<<XML
        <greetResponse>Hello Client!</greetResponse>
XML;

        $returnMessage = new WSMessage($responsePayloadString);
       
        return $returnMessage;
}

//定义服务的实例
$service = new WSService(array("operations" => array("greet")));
//调用reply函数给client返回消息
$service->reply();

?>


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-30 08:08 
创建一个简单的client去调用上面Web service的PHP 代码

<?php

//定义请求服务的消息格式和内容

$reqestPayloadString = <<<XML
<greet>Hello Service!</greet>
XML;


try
{
     //声明请求服务的消息的实例
        $message = new WSMessage($reqestPayloadString,
                array("to" => "http://localhost/hello_service.php"));
         
     //声明一个新的client
        $client = new WSClient();
        
     //调用request函数发送服务请求,并获取服务的响应
        $response = $client->request($message);
        
         echo "Hello service replied saying: '";
         echo $response->str;
         echo "'/n";
}

//错误捕获控制
catch (Exception $e)
{
        
        if ($e instanceof WSFault)
        {
            $fault = $e;
                printf("Soap Fault received with code '%s' and reason '%s'",
                        $fault->code, $fault->reason);
        }
        else
        {
                printf("Exception caught with message '%s'", $e->getMessage());
        }
}

?>

[ 本帖最后由 dan.wilson 于 2008-6-30 09:24 编辑 ]


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-30 09:48 
在 WSO2 WSF/PHP下实现和部署web服务的步骤:

1.定义web服务的operation及其对应的函数。
在上面的例子中,我们定义了一个实现 "greet" operation的函数,它的函数名也为greet
function greet($message) {

$responsePayloadString = <<<XML
        <greetResponse>Hello Client!</greetResponse>
XML;

        $returnMessage = new WSMessage($responsePayloadString);
        
        return $returnMessage;
}


2.创建一个包含特定operations的webservice的实例,你可以制订实现的选项
在上例中,我们的service仅仅包含一个函数。为了便于理解,我们将函数名和operation名称设置为相同,都为greet
因此,某个流程中(由若干个operations组成),client若想使用greet operation,便调用该web服务的greet operation,其中的实现细节有对应的greet函数完成
$service = new WSService(array("operations" => array("greet")));

3. 调用WSService类中的reply函数去调用该operation/function和返回响应信息。
    响应请求,并触发响应的函数,返回消息
$service->reply();


只看该作者    顶部
离线 dan.wilson
中级会员



精华贴数 1
个人空间 0
技术积分 685 (2775)
社区积分 28 (6412)
注册日期 2002-3-29
论坛徽章:1
授权会员     
      

发表于 2008-6-30 10:04 
在 WSO2 WSF/PHP下实现和部署client的步骤::

1.创建一个包含请求信息包和请求选项的WSMessage实例
   为了更好的处理client的服务请求,WSMessage的构造函数会接受一个选项数组作为参数。该选项数组至少要指定to选项,该to选项用与定位
   web服务。
    $message = new WSMessage($reqestPayloadString,
                 array("to" => "http://localhost/hello_service.php"));


2.创建一个WSclient的实例,也就是创建一个client。
    你可以使用这个WSClient实例去调用服务。
    $client = new WSClient();

3.向web服务发送要求服务的请求及接收服务的响应值。
    调用request() 函数传递消息参数。
   这个函数返回一个WSMessage的实例,即返回web服务的响应。
   web服务的响应为XML格式,你可以方便的访问该消息实例的各个成员变量。
   $response = $client->request($message);

4.处理服务的响应
   根据业务逻辑的要求处理服务返回的响应


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问