小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MyEclipse 中開發(fā)SCA應(yīng)用入門 - 好高悟遠(yuǎn) - ItEye技術(shù)網(wǎng)站

 gyb98 2011-04-03

MyEclipse 中開發(fā)SCA應(yīng)用入門

SCA:service component architectur
這是一種面向服務(wù)的基礎(chǔ)架構(gòu)設(shè)計(jì),方便了在此基礎(chǔ)上實(shí)現(xiàn)SOA的應(yīng)用。SCA只是一個(gè)規(guī)范,對這個(gè)規(guī)范的實(shí)現(xiàn)有多種,其中Apache的Tuscany SCA就是其中一種。
首先,我只是結(jié)合我自己的理解簡單介紹一下SCA,然后在把我自己寫的一個(gè)最簡單的HelloWorld如何搭建起來的做一個(gè)描述。
借助Tuscany的實(shí)現(xiàn)描述SCA 運(yùn)行時(shí):
首先是運(yùn)行環(huán)境:包括操作系統(tǒng),虛擬機(jī),容器等等。誠摯為Hosting Platforms
在此之上是運(yùn)行時(shí)的Core 和Extension部分,這個(gè)設(shè)計(jì)是微內(nèi)核的,Core就是這個(gè)核,Core提供的功能,運(yùn)行時(shí)實(shí)現(xiàn),以及提供Extension的機(jī)制。
在Core之外提供Extension:比如Apache tuscany 提供的SDO,DAS都是這種Extension。 這樣一種相當(dāng)于插件機(jī)制的設(shè)計(jì)增加了靈活性。
在Core和extension之上就是:Tuscany API,提供給開發(fā)者更多的方便。

在SCA中有幾個(gè)很重要的概念:
Component:具有獨(dú)立功能的程序模塊。
Service:component提供給外部的服務(wù)。
Referrence:對其他服務(wù)的引用。
Composite:多個(gè)component的高一層次封裝。
Wire:鏈接Referrence和component。
Promote:同一個(gè)composite內(nèi)多個(gè)component之間的鏈接。
Domain: 一個(gè)composite是一個(gè)最簡單的Domain。Domain是對n個(gè)composite組織的高一層次封裝。

基本的概念就只描述這些了,下面看看如何把最簡單的SCA HelloWorld運(yùn)行起來。

1,到Apache官方網(wǎng)站下載Tuscany SCA binary package 和對應(yīng)源碼。
2,在MyEclipse中新建UserLibrary,把binary package下的jar包全部加入到其中,并關(guān)聯(lián)下載的源代碼到sca-all.jar
3,新建工程,并引入剛才建立的UserLibrary。
4,其實(shí)運(yùn)行HelloWorld很簡單:
建立接口:


Java代碼 復(fù)制代碼 收藏代碼
  1. package Hello;
  2. import org.osoa.sca.annotations.Remotable;
  3. public interface IHello {
  4. public String show(String name);
  5. }


然后實(shí)現(xiàn)接口:
Java代碼 復(fù)制代碼 收藏代碼
  1. package Hello;
  2. public class HelloImpl implements IHello{
  3. public String show(String name)
  4. {
  5. return "Hello"+name;
  6. }
  7. }


接下來就是要寫一個(gè)Hello.composite 配置文件:
Xml代碼 復(fù)制代碼 收藏代碼
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <composite xmlns="http://www./xmlns/sca/1.0" name="hello">
  3. <component name="Hello"
  4. <implementation.java class="Hello.HelloImpl"/>
  5. <service name="Hello"
  6. <binding.ws uri="hello-there"/>
  7. <t:binding.jsonrpc uri="hello-nicer"/>
  8. </service>
  9. </component>
  10. </composite>

這個(gè)文件其實(shí)就對應(yīng)了Composite ,component,service 等概念。比較容易明白。

還需要一個(gè)Client來調(diào)用這個(gè)composite:

Java代碼 復(fù)制代碼 收藏代碼
  1. package Hello;
  2. import org.apache.tuscany.sca.host.embedded.SCADomain;
  3. public class HelloClient {
  4. public static void main(String[] args)
  5. {
  6. SCADomain domain=SCADomain.newInstance("hello.composite");
  7. IHello ihello= domain.getService(IHello.class, "Hello");
  8. if(ihello!=null)
  9. ihello.show("ccx");
  10. domain.close();
  11. }
  12. }


這個(gè)HelloClient從配置文件Hello.composite讀取配置并建立了domain,然后或得Hello服務(wù)接口,并完成對服務(wù)的調(diào)用。

這個(gè)例子很簡單,但也可以對SCA中一些最基本的概念有所了解。有了這個(gè)的基礎(chǔ)上,可以再深入學(xué)習(xí)更多的東西了。

將持續(xù)關(guān)注SCA。and OSGI

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多