服务于PHP的SCA和SDO

日期: 2008-01-01 作者:Daniel Rubio 来源:TechTarget中国 英文

本文中将探究PHP等流行脚本语言怎样包含SCA、SDO这些相同的SOA技术……   由于OSOA协作组织的引导,SCA和SDO已经成为下面向服务架构的最新标准。企业在很广泛使用的程序环境中起先构思使用的语言,Java和C++,SCA和SDO都已经能为他们提供全统的平台,在本文中我们将探究流行脚本语言怎样包含这些相同的SOA技术。   让我们从看看SDO能提供给你什么开始。在一个典型的PHP应用软件当中,数据将会很大程度上来自于一个相关的数据库,但是假如这些相同的应用软件稍后既需要访问这些资源的信息,又要访问一个平台或者Web服务的信息,那将会发生什么?最好的是它将可……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

本文中将探究PHP等流行脚本语言怎样包含SCA、SDO这些相同的SOA技术……

  由于OSOA协作组织的引导,SCA和SDO已经成为下面向服务架构的最新标准。企业在很广泛使用的程序环境中起先构思使用的语言,Java和C++,SCA和SDO都已经能为他们提供全统的平台,在本文中我们将探究流行脚本语言怎样包含这些相同的SOA技术。

  让我们从看看SDO能提供给你什么开始。在一个典型的PHP应用软件当中,数据将会很大程度上来自于一个相关的数据库,但是假如这些相同的应用软件稍后既需要访问这些资源的信息,又要访问一个平台或者Web服务的信息,那将会发生什么?最好的是它将可能成为一个很长的过程,最坏的它将会是一令人费解的任务,这样的原因是每个数据资源和他本身的一系列适当的古怪行为一起来的。

  这样来判断,当处理应用软件数据资源时,SDO为了PHP达到了SOA。取代起先和每一种数据资源工作,SDO提供了一统一的风格访问数据实体。完成这个过程的方法是通过DAS,一间接建造于SDO结构的标准。看看以下举例说明PHP中SDO查询的清单。

  Listing 1.1 SDO query in PHP

  <?php
  $providers = $company->shippingByGround;
  foreach ($providers as $name => $value) {
     echo "$name: $valuen";
  }
?>

  注意为何这最后询问有数据源不可知的特性。那就是说,你不能说说出下面的数据是从哪里获取的,你用PHP的语句简单的做一个研究并且复杂细节被处理在DAS, PHP 当前支持XML和关系数据库来源

  当SDO集中在数据,SCA的决心是在达到这同样的透明度,但是以更加通用的类或者组成。什么将会成为另外一个典型的PHP情景,从任何PHP班强迫开发商限制一系列特别的假定设计访问现有的商业逻辑:这个逻辑是在另外一个PHP班?或者是它定位于穿过网络?甚至它是不是用PHP写的?

  当每一个上述情景是可溶解的,每一个要求有不同的编码技术。

  用SCA的方法,这样的逻辑位于的地点-- 横跨网络或当地-- 应该是需讨论的点,不要提及语言工具—PHP,JAVA或者是C++—都将不相关。这最后的陈述可能会让你问“嘿,这个听起来很像非选拔的网络服务,不同在哪里?”好好看看清单1.2,包括一PHP SCA组件。

  Listing 1.2 SCA component in PHP,

  <?php

include "SCA/SCA.php";

/**
 * Calculate a shipment price for a given customer using a specific provider
 *
 * @service
 */
class ShipmentQuote {

    /**
     * The customer discount fee service to use.
     *
     * @reference
     * @binding.php ../DiscountFeeRate/DiscountFeeRate.php
     */
    public $discountFee;

    /**
     * The shipping service to use.
     *
     * @reference
     * @binding.wsdl ../Shipper/ShipperQuote.wsdl
     */
    public $shipper;

    /**
     * Get a quote for a given customer using a specific provider
     *
     * @param string $shipping The shipping company
     * @param string $customer The customer requiring shipment, in order to obtain discount rate
     * @return float The quote for a given customer using a certain shipping provider.
     */
    function getQuote($shippingCo, $customer)
    {
        $rateShip  = $this->shipper->getShippingPrice($shippingCo);
        $rate   = $this->discountFee->getDiscountRate($customer);
        return  $rate * $rateShip;
    }
}
?>
 
  上次陈述的最重要的内容是那些made in @statements,自从每一个都提供特定的SCA行为。东西完成是 @service tag, which is charged with exposing the class in question as a service.这特定的例子,getQuote公式是唯一通过服务执行,有些是通过使用the @param and @return annotations获得。

  实际执行或采用这个服务代表PHP SCA runtime -- 将让我们进入 point capable制作一个 WSDL contract, 和你想获得其它web服务一样。除了简单的采用这个服务在in this manner,真正好处是让SCA's model成为更好证据,当你测试getQuote function code时

  陈述 $this-<shipper->getShippingPrice($shippingCo)和 $this->discountFee->getDiscountRate($customer),是2个基本的references出现在早些是候的课. 每个 references 都保留在 underlying services -- 感谢 SCA's @reference and @binding annotations -- 例 $discountFee 这是 a PHP class and in shipper's case 成为标准的 WSDL backed service。

  你也了解到,大多的能量在 SCA's programming model是很简单,你可以建立 chained calling sequences services不需要 tainting the actual business logic, 可以简单得结论:简单移去所有我们只欠描述的 SCA annotations . 若这样做了, 就只留下 plain business logic 而没其他的依赖, 一个很高利益characteristic which is highly beneficial to不仅是为发展 SOA服务, 同时在software方面的利益。

  虽然PHP简单和用户群体广泛地的特点使得他成为人们喜欢使用的一种建构网络的应用软件,可是到目前为止, 它的适用范围仅限于一小部分企业, 但根据PHP现在所支持的sca和sdo,以及雷达技术组织试图上显示的技术试图实现soa的情况来看,珩磨你PHP的技能可能是明智的选择, 尤其在一些像其他主要语言的东方国家服务领域。

相关推荐

  • PHP终于迎来了自己的正式语言规范

    尽管PHP脚本语言早在1995年左右就已经诞生并在Web开发领域占据着重要地位,但其一直没有自己的正式语言规范——只提供广泛的用户说明文档。

  • 通过四种方式让PHP编码变得更轻松

    尽管已经目前PHP语言已经建立起属于自己的软件文化,但要找到它令人抓狂的弊端也绝对不是难事。我们曾经在之前的文章中列出过该语言最让开发人员难以接受的十二大糟糕特性。

  • 排名前八的PHP调试工具你认可吗?

    Web开发并不是一项轻松的任务,有超级多服务端脚本语言提供给开发者,但是当前 PHP 因为具有额外的一些强大的功能而越来越流行。

  • 2014年web开发者应该学习的技术盘点

    web开发行业发展迅速,每天总有新的技术、框架、语言或技术方法诞生,对大部分人来说都喜欢学习“所有东西”,但这不符合实际!所以,在2014年,作为Web开发者应该学习什么呢?