欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
SCA 應用程序開(kāi)發(fā),第 3 部分: 開(kāi)發(fā)示例 SCA 應用程序

2007 年 1 月 04 日

使用面向 Java 編程語(yǔ)言的 SCA 客戶(hù)機與實(shí)現模型構建和集成應用程序。本文說(shuō)明了實(shí)現示例 SCA 應用程序的基本步驟,包括本地和遠程服務(wù)以及組裝各種服務(wù)。

引言

本文將說(shuō)明開(kāi)發(fā)和部署 SCA 應用程序的主要概念。我們將說(shuō)明如何創(chuàng )建組件實(shí)現來(lái)提供遠程服務(wù)、本地服務(wù)、配置屬性和服務(wù)引用以及如何創(chuàng )建組件、入口點(diǎn)、外邊服務(wù)和模塊。

示例應用程序:Innova Solutions 開(kāi)發(fā)

我們將詳細說(shuō)明一家名為 Innova solutions 的虛構軟件公司所進(jìn)行的活動(dòng),該公司向其員工提供不同的服務(wù),以便查看自己的工資單信息、休假詳細信息、能力詳細信息、個(gè)人信息和績(jì)效評級。

以 下示例說(shuō)明了構建用于查看員工的工資單信息的服務(wù)的過(guò)程,可以通過(guò) Web 應用程序和 Web 服務(wù)客戶(hù)機訪(fǎng)問(wèn)此服務(wù)。Innova solutions 將其應用程序實(shí)現為兩個(gè)模塊,從而提供了可重用性和靈活性。這兩個(gè)模塊分別為 Payroll 模塊和 Web 前端模塊:


圖 1. Payroll 模塊關(guān)系圖



innovasolutions.payrollmodule 模塊表示 payroll 服務(wù),此服務(wù)用于使用 Web 服務(wù)協(xié)議訪(fǎng)問(wèn)遺留系統中的員工工資單信息。它包含以下內容:

  • Payroll service component:提供遠程 payroll 服務(wù),并提供有關(guān)員工基本工資、HRA、浮動(dòng)工資、付薪方式、所得稅和特惠稅的綜合說(shuō)明。
  • Payroll data service component:通過(guò)接口與遺留系統連接,并向 payroll 服務(wù)提供有關(guān)基本工資、HRA、浮動(dòng)工資、獎金和所得稅的信息。
  • External Tax rate rules service:提供不同收入水平的當前稅率。
  • Entry point payroll service:將 payroll 服務(wù)通過(guò) Web 服務(wù)綁定發(fā)布,以供 Web 服務(wù)客戶(hù)機模塊及其遠程 Web 服務(wù)客戶(hù)機訪(fǎng)問(wèn)。
  • Assembly:配置并連接模塊的所有元素。

下圖顯示了 Web front-end 模塊的不同組件:


圖 2. Payroll front-end 模塊



innovasolutions.webclientmodule 模塊可對用于將信息記錄到系統中和訪(fǎng)問(wèn)員工工資單信息的基于瀏覽器的功能起到促進(jìn)作用。它包含以下內容:

  • 用于處理 Web 請求和顯示員工工資單信息的 login HTML 文件、login servlet 和 payroll statement JSP。
  • login serviceprofile service 組件,用于提供管理員工狀態(tài)的本地服務(wù)。
  • External payroll service:用于訪(fǎng)問(wèn) innovasolutions.payrollmodule 的遠程 payroll 服務(wù)。
  • Assembly:配置和連接模塊的所有元素。

應用程序開(kāi)發(fā)

示例應用程序開(kāi)發(fā)涉及到兩個(gè) SCA 模塊的開(kāi)發(fā),下面我們將對此進(jìn)行介紹。

創(chuàng )建 innovasolutions.payrollmodule

SCA 模塊 innovasolutions.payrollmodule 是通過(guò)這樣構建的:在文件系統中構建一個(gè)名為 innovasolutions.payrollmodule 的文件夾,并在該文件夾的根目錄下放置一個(gè) sca.module 文件。

清單 1 顯示了 sca.module 的內容,該文件是一個(gè) xml 文件。


清單 1. sca.module
					
<?xml version="1.0" encoding="ASCII"?>
<module xmlns="http://www.osoa.org/xmlns/sca/0.9"
name="innovasolutions.payrollmodule">
</module>

Payroll Data Service Implementation:我們首先創(chuàng )建由 PayrollDataService 服務(wù)提供的 PayrollDataService 接口;此服務(wù)向其員工提供工資單信息。然后,我們將創(chuàng )建 PayrollDataServiceImpl,以向 Innova solutions 的員工提供 PayrollDataService 服務(wù)。

我們創(chuàng )建名為 services/payrolldata 的子目錄,并將所有組成 PayrollDataServiceImpl 實(shí)現的文件放置到其中。

清單 2 顯示了 PayrollDataService Java 接口。


清單 2. PayrollDataService Java 接口
							
package services.payrolldata;
public interface PayrollDataService {
float getBasic(String employeeID);
float getvariablePay(String employeeID);
float getHRA(String employeeID);
float getProvidentFund(String employeeID);
float getConveyance(String employeeID);
float getIncomeTax(String employeeID);
float getProfessionalTax(String employeeID);
float getNetPay(String employeeID);
}

清單 3 說(shuō)明了 PayrollDataServiceImpl Java 實(shí)現。


清單 3. PayrollDataServiceImpl Java 實(shí)現
							
package services.payrolldata;
@Service(PayrollDataService.class)
public class payrollDataServiceImpl implements payrollDataService {
public float getBasic(String employeeID){ . . . }
public float getVariablePay(String employeeID){ . . . }
public float getHRA(String employeeID){ . . . }
public float getProvidentFund(String employeeID){ . . . }
float getConveyance(String employeeID){ . . .}
float getProfessionalTax(String employeeID){ . . . }
public float getNetPay(String employeeID){ . . . }
}

上面的代碼片段實(shí)現了之前的 PayrollDataService 接口。在實(shí)現中使用了一個(gè) @Service Annotation 來(lái)聲明服務(wù)及其接口。

清單 4 顯示了上述實(shí)現的組件類(lèi)型、side 文件。


清單 4. 組件類(lèi)型、side 文件
							
<xml version="1.0" encoding="ASCII"?>
<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
<service name="payrollDataService">
<interface.java interface="services.payrolldata.PayrollDataService"/>
</service>
</componentType>

Payroll Data Service Component:SCA 組件是通過(guò)配置實(shí)現的引用屬性創(chuàng )建的。配置引用需要將其連接到其他組件提供的服務(wù)或外部服務(wù)。此處,我們將通過(guò)配置 PayrollDataServiceImpl 創(chuàng )建 PayrollDataServiceComponent。

將使用 component 元素將所創(chuàng )建的 SCA 組件添加到 sca.module 文件,該元素具有一個(gè) name 屬性,指定組件的名稱(chēng)。

清單 5 顯示了創(chuàng )建 payrollDataServiceComponent 后的 sca.module 文件。


清單 5. 創(chuàng )建了 payrollDataServiceComponent 后的 sca.module 文件
							
<?xml version="1.0" encoding="ASCII"?>
<module xmlns="http://www.osoa.org/xmlns/sca/0.9"
name="innovasolutions.payrollmodule">
<component name="payrollDataServiceComponent">
<implementation.java class="services.payrolldata.PayrollDataServiceImpl">
</component>
</module>

創(chuàng )建 TaxRateRules Web 服務(wù)外部服務(wù):此處我們將創(chuàng )建一個(gè)外部服務(wù) TaxRateRulesService,以提供向 innovasolutions.payrollmodule 的員工提供 TaxRateRulesService 接口的服務(wù)。

我們首先創(chuàng )建一個(gè)名為 services/taxraterules 的子目錄,以將 TaxRateRulesService 外部服務(wù)所需的所有文件放入其中。業(yè)務(wù)合作伙伴實(shí)際實(shí)現此外部服務(wù),將提供一個(gè) TaxRateRulesService.wsdl。為了處理靜態(tài)數據類(lèi)型,我們?yōu)?wsdl portType 創(chuàng )建了對應的 Java 接口。

清單 6 顯示了 wsdl portType 的 Java 接口的大致情況。


清單 6. wsdl portType 的 Java 接口
							
package services.taxrate;
public interface TaxRateRulesService {
public float getTaxRate (Float taxableIncome);
}

接下來(lái),我們將以下代碼添加到前面指定的 sca.module 文件,以創(chuàng )建名為 TaxrateRulesService 的外部服務(wù)。

清單 7 顯示了添加 TaxrateRulesService 后的 sca.module 文件。


清單 7. 添加 TaxrateRulesService 后的 sca.module 文件
							
<externalService name="TaxRateRulesService">
<interface.java interface="services.taxraterules.TaxRateRulesService"/>
<binding.ws port="http://www.taxrules.com/ TaxRateRulesService #
wsdl.endpoint(TaxRateRulesService / TaxRateRulesService SOAP)"/>
</externalService>

Payroll Service Implementation:此處我們將討論 PayrollServiceImpl 的實(shí)現,該實(shí)現提供一個(gè)服務(wù),此服務(wù)在 innovasolutions.payrollmodule 中向其員工提供 PayrollService 接口。此實(shí)現使用兩個(gè)其他服務(wù)提供的接口引用這兩個(gè)服務(wù),即 PayrollDataService 接口(本地服務(wù))和 TaxRateRulesService 接口(外部服務(wù))。

我們將首先創(chuàng )建名為 services/payroll 的子目錄,并將所有組成 PayrollServiceImpl 實(shí)現的文件放入其中。

清單 8 顯示了 PayrollService Java 接口。


清單 8. PayrollService Java 接口
							
package services.payroll;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface PayrollService{
public PayrollStatement getPayrollStatement(String employeeID);

上面的 PayrollService Java 接口包含一個(gè) getPayrollStatement() 方法,其參數是 employeeID,將返回 PayrollStatement 對象。由于這需要為外部服務(wù),因此使用 @Remotable Annotation 將接口聲明為遠程接口。在此實(shí)現中,通過(guò)遠程服務(wù)交換的所有參數都是服務(wù)數據對象(Service Data Objects,SDO)類(lèi)型的數據。

清單 9 顯示了 PayrollStatement Java 接口。


清單 9. PayrollStatement Java 接口
							
package services.payroll;
import java.util.List;
public interface PayrollStatement {
List getPayrollDetails();
float getNetPay();
}

清單 10 顯示了 PaySplitUP Java 接口。


清單 10. PaySplitUP Java 接口
   
package services.payroll;
public interface PaySplitUP {
String getPaycategory();
void setPaycategory(String payCategory);
void setEarnings();
void setDeductions();
float getEarnings();
float getDeductions();
}

清單 11 說(shuō)明了 PayrollServiceImpl Java 實(shí)現類(lèi)。


清單 11. PayrollServiceImpl Java 實(shí)現類(lèi)
    
package services.payroll;
import java.util.List;
import commonj.sdo.DataFactory;
import org.osoa.sca.annotations.Property;
import org.osoa.sca.annotations.Reference;
import services.payrolldata.PayrollDataService;
import services.taxrate.TaxRateRulesService;
public class PayrollServiceImpl implements PayrollService {
@Property
private String currency = "INR";
@Reference
private PayrollDataService payrollDataService;
@Reference
private TaxRateRulesService taxraterulesService;
public PayrollStatement getPayrollStatement (String employeeID) {
DataFactory dataFactory = DataFactory.INSTANCE;
PayrollStatement payrollStatement =
(PayrollStatement)dataFactory.create(PayrollStatement.class);
List payslip = payrollStatement.getPayrollDetails();
float basic = payrollDataService.getBasic(employeeID);
PlaySplitUP basicSalary
= (PlaySplitUP)dataFactory.create(PlaySplitUP.class);
basicSalary.setPaycategory("BASIC");
basicSalary.setEarnings(currencyConverter(basic));
payslip.add(basicSalary);
. . . . . . . code for HRA . . . .
. . . . . . . code for Variable pay . . . .
. . . . . . . code for conveyance. . . .
. . . . . . . code for Profident fund . . . .
float IncomeTaxAmount = payrollDataService.getIncomeTax(employeeID);
PlaySplitUP IncomeTax
= (PlaySplitUP)dataFactory.create(PlaySplitUP.class);
IncomeTax.setPaycategory("INCOMETAX");
IncomeTax.setDeductions(currencyConverter(IncomeTaxAmount));
payslip.add(IncomeTax);
. . . . . . . code for Professional Tax . . . . . .
return payrollStatement;
}
private float currencyConverter(float value){
if (currency.equals("INR")) return value;
else
if (currency.equals("USD")) return value * 45.5f;
else return 0.0f;
}
}

上面所示的 PayrollServiceImpl 類(lèi)實(shí)現了 PayrollService 接口。PayrollServiceImpl 使用 @Reference Annotation 定義了兩個(gè)成員變量,以引用另外兩個(gè)服務(wù),即 PayrollDataServiceTaxRateRulesService。SCA 運行時(shí)通過(guò)注入解析這些引用。PayrollServiceImpl 使用 @Property Annotation 在運行時(shí)配置成員變量 currency。PayrollStatement 對象是使用 SDO 數據工廠(chǎng) API 作為服務(wù)數據對象 (SDO) 創(chuàng )建的。

清單 12 顯示了上述 PayrollServiceImpl 的組件類(lèi)型文件。


清單 12. PayrollServiceImpl 的組件類(lèi)型文件
    
<?xml version="1.0" encoding="ASCII"?>
<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<service name="PayrollService">
<interface.java interface="services.payroll.PayrollService"/>
</service>
<reference name="payrollDataService">
<interface.java interface="services.payrolldata.PayrollDataService"/>
</reference>
<reference name="stockRatestockQuoteService">
<interface.java interface="services.taxRateRules.TaxRateRulesService"/>
</reference>
<property name="currency" type="xsd:string" default="INR"/>
</componentType>

Payroll Service Component:現在我們將通過(guò)配置上面實(shí)現的 PayrollServiceImpl 來(lái)創(chuàng )建 PayrollServiceComponent。我們將對上面指定的 sca.module 文件添加若干行代碼來(lái)包括 PayrollServiceComponent,如清單 13 中所示。


清單 13. 添加了額外代碼行的 sca.module 文件
			
<component name="PayrollServiceComponent">
<implementation.java class="services.payroll.payrollServiceImpl"/>
<properties>
<v:currency>INR</v:currency>
</properties>
<references>
<v:payrollDataService>PayrollDataServiceComponent</v:payrollDataService>
<v:taxRateRulesService>TaxRateRulesService</v:taxRateRulesService>
</references>
</component>

創(chuàng )建 payroll 服務(wù) Web 服務(wù)入口點(diǎn):下一步我們將創(chuàng )建名為 PayrollService 的入口點(diǎn)來(lái)發(fā)布 PayrollService,以便 Web 服務(wù)客戶(hù)機能夠訪(fǎng)問(wèn) PayrollService。需要首先創(chuàng )建 SCA 運行時(shí)用于綁定到入口點(diǎn)的 WSDL 定義文件,然后才能在 sca.module 文件中創(chuàng )建入口點(diǎn)。我們向 sca.module 文件添加數行代碼來(lái)表示 PayrollService 入口點(diǎn)的創(chuàng )建。

清單 14 顯示了添加到上面指定的 sca.module 文件中的代碼行。


清單 14. 添加了額外代碼行的指定 sca.module 文件
    
<entryPoint name="PayrollService">
<interface.java interface="services.payroll.PayrollService"/>
<binding.ws port="http://www.innovasolutions.com/PayrollService#
wsdl.endpoint(PayrollService/PayrollServiceSOAP)"/>
<reference>PayrollServiceComponent</reference>
</entryPoint>

創(chuàng )建 innovasolutions.webclientmodule

在 此部分,我們將創(chuàng )建 Innova Solutions Web 應用程序,以訪(fǎng)問(wèn)名為 payroll service 的外部服務(wù),此服務(wù)使用了本地服務(wù)組件、SCA 范圍管理、JSP 和 Servlet。Innova Solutions Web 應用程序允許其員工登錄并使用范圍確定為 HTTP 會(huì )話(huà)的本地服務(wù)跟蹤自己的概要,還向其提供了對工資單系統的訪(fǎng)問(wèn)和顯示他們每月的工資單。它將首先把用戶(hù)導航到登錄頁(yè),然后前進(jìn)到工資單系統,在其中顯示 每月的工資單。

以下各個(gè)部分將說(shuō)明如何創(chuàng )建 InnovaSolutions Web 應用程序外部的各個(gè) SCA 服務(wù),即 login、user profile 和 payroll。然后我們將了解如何由 Servlet、JSP 和標記庫訪(fǎng)問(wèn)這些服務(wù),以提供用戶(hù)界面。

我 們將首先實(shí)現 LoginServiceImpl,此服務(wù)負責將用戶(hù)登錄到應用程序中。LoginServiceImpl 提供服務(wù) LoginService,該服務(wù)在 innovasolutions.webclientmodule 中向員工提供 LoginService 接口。

首先,我們創(chuàng )建名為 services/profile 的子文件夾,并將屬于 LoginServiceImpl 實(shí)現的所有文件放入其中。

清單 15 顯示了 LoginService Java 接口。


清單 15. LoginService Java 接口
							
package services.profile;
public interface LoginService{
public static final int SUCCESS = 1;
public static final int INVALID_LOGIN = -1;
public static final int INVALID_PASSWORD = -2;
public int login(String employeeID, String password);
}

接下來(lái),編寫(xiě)實(shí)現 LoningService 接口的 LoginServiceImpl Java 實(shí)現,該實(shí)現使用其接口 profileservice 引用本地服務(wù)。

清單 16 給出了 LoginServiceImpl Java 實(shí)現。


清單 16. LoginServiceImpl Java 實(shí)現
	
package services.profile;
import org.osoa.sca.annotations.Service;
import org.osoa.sca.annotations.Reference;
@Service(LoginService.class)
public class LoginServiceImpl implements LoginService{
@Reference
private ProfileService profileService;
public int login(String employeeID, String password) { …. }
}

上面的 LoginServiceImpl 實(shí)現了 LoginService 接口,并使用其接口 profileservice 引用本地服務(wù)。

Login Component:此處我們將通過(guò)配置 LoginServiceImpl 實(shí)現來(lái)創(chuàng )建 LoginServiceComponent。讓我們看看顯示包含 LoginServiceComponent 的 innovasolutions.webclientmodule 的 sca.module 文件的代碼。

清單 17 顯示了 innovasolutions.webclientmodule 的 sca.module 文件。


清單 17. innovasolutions.webclientmodule 的 sca.module 文件
	
<?xml version="1.0" encoding="ASCII"?>
<module xmlns="http://www.osoa.org/xmlns/sca/0.9"
xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
name="innovasolutions.webclientmodule">
<component name="LoginServiceComponent">
<implementation.java class="services.profile.LoginServiceImpl"/>
</component>
</module>

Profile Service Implementation:在此部分,我們將簡(jiǎn)要地給出 profileServiceImpl,此實(shí)現提供了由接口 ProfileService 訪(fǎng)問(wèn)的服務(wù)。通過(guò)使用 ProfileService,可以在用戶(hù)的 Web 應用程序內導航時(shí)跟蹤用戶(hù)狀態(tài)。我們使用前面創(chuàng )建的子文件夾 services/profile 來(lái)放置組成 profileServiceImpl 實(shí)現的所有文件。

profileService Java 接口使用 @Scope Annotation 來(lái)聲明 ProfileServiceImpl 實(shí)例的范圍由會(huì )話(huà)確定。

清單 18 顯示了 ProfileService Java 接口。


清單 18. ProfileService Java 接口
    
package services.profile;
import org.osoa.sca.annotations.Scope;
@Scope("session")
public interface ProfileService{
public String getFirstName();
public void setFirstName(String pName);
public String getLastName();
public void setLastName(String pName);
public boolean isLoggedIn();
public void setLoggedIn(boolean pStatus);
public String getId();
public void setId(String pId);
}

ProfileServiceImpl 實(shí)現了 ProfileService Java 接口。清單 19 說(shuō)明了 ProfileServiceImpl Java 實(shí)現。


清單 19. ProfileServiceImpl Java 實(shí)現
    
package services.profile;
import org.osoa.sca.annotations.Property;
import org.osoa.sca.annotations.Scope;
import org.osoa.sca.annotations.Service;
@Service(ProfileService.class")
@Scope("session")
public class ProfileServiceImpl implements ProfileService{
@Property
private String firstName;
. . . . . .
}
}

Profile Service Component:現在我們將清單 20 中所示的代碼片段添加到 innovasolutions.webclientmodule 的 sca.module 文件中,從而創(chuàng )建 ProfileServiceComponent。


清單 20. 添加了額外代碼行的 sca.module 文件
<component name="ProfileServiceComponent">
<implementation.java class="services.profile.ProfileImpl"/>
<properties>
<v:firstName>Anonymous</v:firstName>
</properties>
</component>

清單 21 顯示了在 component 元素下添加的三行代碼 LoginServiceComponent。


清單 21. LoginServiceComponent
	
<references>
<v:profileService>ProfileServiceComponent</v:profileService>
</references>

Payroll Service Web Service External Service:在此部分,我們將創(chuàng )建名為 PayrollService 的外部服務(wù),該接口在 innovasolutions.webclientmodule 中向用戶(hù)提供名為 PayrollService 的接口。

我 們首先創(chuàng )建一個(gè)名為 services/payroll 的子目錄,以將 PayrollService 外部服務(wù)所需的所有文件放入其中。此外部服務(wù)提供一個(gè) PayrollService.wsdl 文件。我們?yōu)?wsdl portType 創(chuàng )建對應的 Java 接口,即 PayrollService、PayrollStatementPaySplitUP,以便在使用 PayrollService 時(shí)處理靜態(tài) Java 類(lèi)型。

最后,我們添加清單 22 中所示的代碼,以在 innovasolutions.webclientmodule 的 sca.module 文件中創(chuàng )建名為 PayrollService 的外部服務(wù)。


清單 22. 經(jīng)過(guò)修改以創(chuàng )建 PayrollService 的 sca.module 文件
	
<externalService name="PayrollService">
<interface.java interface="services.account.PayrollService"/>
<binding.ws port="http://www.innovasolutions.com/PayrollService#
wsdl.endpoint(PayrollService/PayrollServiceSOAP)"/>
</externalService>

Login HTML 頁(yè):login.html 頁(yè)將當前用戶(hù)的用戶(hù)名和密碼發(fā)送給 login Servlet。

Login Servlet:login Servlet 處理從 login.html 獲得的用戶(hù)名和密碼,并使用 ModuleContext API 調用 login 本地服務(wù)。CurrentModuleContext.getContext() 返回當前的模塊上下文,并隨后調用 locateService("LoginServiceComponent") 查詢(xún)本地服務(wù)。

Payroll Statement JSP: PayrollStatement.JSP 顯示 payroll 服務(wù)返回的員工的所有工資單信息。為了讓 Payroll Statement 頁(yè)不受實(shí)現細節的限制,Payroll Statement.jsp 使用了一系列 JSP 標記,即 login 標記、service 標記payroll status 標記。

部署

以下部分對子系統構件進(jìn)行說(shuō)明。

創(chuàng )建 innovasolutions.payrollsubsystem

在此部分,我們將創(chuàng )建 innovasolutions.payrollsubsystem,此子系統對 innovasolutions.payroll 模塊進(jìn)行配置。首先,在文件系統中創(chuàng )建名為 innovasolutions.payrollsubsystem 的文件夾,并在根目錄放置 sca.subsystem 文件。

清單 23 顯示了 innovasolutions.payrollsubsystem 的 sca.subsystem 文件。


清單 23. innovasolutions.payrollsubsystem 的 sca.subsystem 文件
	
<?xml version="1.0" encoding="ASCII"?>
<subsystem xmlns="http://www.osoa.org/xmlns/sca/0.9"
name="innovasolutions.payrollsubsytem">
<moduleComponent
name="PayrollModuleComponent"module="innovasolutions.payrollmodule"/>
</subsystem>

創(chuàng )建 innovasolutions.webclientsubsystem

在此部分,我們將創(chuàng )建 innovasolutions.webclientsubsystem,此子系統對 innovasolutions.webclient 模塊進(jìn)行配置。首先,在文件系統中創(chuàng )建名為 innovasolutions.webclientsubsystem 的文件夾,并在根目錄放置一個(gè) sca.subsystem 文件。

清單 24 顯示了 innovasolutions.webclientsubsystem 的 sca.subsystem 文件。


清單 24. innovasolutions.webclientsubsystem 的 sca.subsystem 文件
    
<?xml version="1.0" encoding="ASCII"?>
<subsystem xmlns="http://www.osoa.org/xmlns/sca/0.9"
xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
name="innovasolutions.webclientsubsytem">
<moduleComponent name="WebClientModuleComponent"
module="innovasolutions.webclientmodule">
<references>
<v:PayrollService>innovasolutions.payrollsunbsystem/
PayrollModuleComponent/PayrollService</v:PayrollService>
</references>
</moduleComponent>
</subsystem>






結束語(yǔ)

我們已經(jīng)演示了應用程序 Innova Solutions 開(kāi)發(fā)過(guò)程,以幫助您使用 SCA 客戶(hù)機和實(shí)現模型利用 Java 編程語(yǔ)言構建和集成應用程序。SCA 應用程序提供了服務(wù)的可移植性、可重用性和靈活性,從而將開(kāi)發(fā)人員從中間件編程的復雜性中解放出來(lái)。



參考資料



作者簡(jiǎn)介


Sreedevi Penugonda 是 IBM Java 技術(shù)中心的一位系統軟件工程師。她專(zhuān)長(cháng)于分布式對象計算系統、數據結構及算法和操作系統



Rakesh Kumar Dash 是 IBM Java 技術(shù)中心的一位系統軟件工程師。他對 RMI 和 ORB 開(kāi)發(fā)進(jìn)行了廣泛的研究。他所感興趣的領(lǐng)域包括 SOA、Web 服務(wù)、CORBA 和操作系統。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
在 Apache Tuscany 上開(kāi)發(fā)基于 SCA 的 Web 2.0 應用
SCA(Service Component Architecture)編程模型入門(mén)
使用服務(wù)組件體系結構構建 SOA 解決方案——第 3 部分
Getting started with Tuscany
誰(shuí)最需要SOA:企業(yè)用戶(hù)還是軟件SI
用NetBean6開(kāi)發(fā)OSGi應用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久