|
SOA本身就是一種面向企業級服務的系統架構,簡單來說,SOA就是一種進行系統開發的新的體系架構,在基于SOA架構的系統中,具體應用程序的功能是由一些松耦合并且具有統一接口定義方式的組件(也就是service)組合構建起來的。因此,基于SOA的架構也一定是從企業的具體需求開始構建的。但是,SOA和其它企業架構的不同之處就在于SOA提供的業務靈活性。業務靈活性是指企業能對業務變更快速和有效地進行響應、并且利用業務變更來得到競爭優勢的能力。對企業級架構設計師來說,創建一個業務靈活的架構意味著創建一個可以滿足當前還未知的業務需求的IT架構。使用WCF實現SOA,正好可以利用WCF的靈活性,把業務層封裝,發布為Web服務。這樣可以降低系統的耦合度,加大對未知業務的擴展性。
Web服務本來就是沒有區分代碼的,在這個例子里在下多開發了一個Service Interface目的是為了使系統更易于管理。在開發期間,Service是不斷更改的,如果在UI層上直接調用服務層,那更改將會是頻密的,所以在這里在下開發一個Service Interface層目的是為了把WSDL集成在同一個DLL程序集里面,進行統一修改。最后UI層只要直接調用Service Interface,就可以對系統直接進行操作。要以不同開發工具來實現Service Interface,這個的代價并不大,開銷是可以承擔的。下面附上最簡單的例子,希望有經驗的高手給予點評,有不妥的地方請多加指教。
//實現Ucsmy.Portal.BLL層
namespace Ucsmy.Portal.BLL
{
public class ExampleManager
{
public IList<Example> GetList(int workers)
{
IExampleDAL examleDAL = DataAccess.CreateExampleDAL();
return examleDAL.GetList(workers);
}
}
}
//在Ucsmy.Portal.Service層里使用WCF直接調用BLL層里面的方法
namespace Ucsmy.Portal.Service
{
[ServiceContract(Namespace="Ucsmy.Portal.Service")]
public interface IExampleService
{
[OperationContract]
IList<Example> GetData(int workers);
// TODO: 在此添加您的服務操作
}
public class ExampleService : IExampleService
{
public ExampleManager exampleManager;
public ExampleService()
{
exampleManager = new ExampleManager();
}
public IList<Example> GetData(int workers)
{
IList<Example> exampleList = exampleManager.GetList(workers);
if (exampleList != null)
return exampleList;
else
return new List<Example>();
}
}
}
NET技術:使用WCF實現SOA面向服務編程—— 架構設計,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。