由于是中途从CSDN博客跳到了这里,先介绍一下我参加的Stitp项目吧:
为了在市场上生存,运营商要求能够更快更方便地提供各种个性化业务。每个用户应能便捷地按其个性化要求订制所订购的业务,而不能要求用户必须具备某种特定的能力或技术。为了实现这个目标,这就需要研究用户订制个性化业务的方法。 加密 PushEmail 业务是移动公司向企业用户提供的一种新业务。为了支持业务的开通,移动公司制定了BOSS 和邮件代理网关的接口方式和一系列规范,这些规范还在不断完善之中。本课题拟研究一种 更为便捷地为用户激活个性化 加密 PushEmail 业务的方法。
个性化业务依赖于用户所持的移动终端能力以及嵌入在该终端中的软件。因此(1 )本课题研究个性化 PushEmail 业务所需要的信息:用户语境轮廓,该语境轮廓应能描述用户的喜好以及用户移动终端的资源;(2 )本课题拟研究个性化 业务的参数自动配置处理方法,定义BOSS 、自动配置服务器和 邮件代理网关之间实现 个性化 业务 的接口,从而能通过所定义的接口依据用户的个性化需求自动配置加密PushEmail 业务。
最近在看的主力资料是Apache Axis2的英文文档。首先想要了解下Axis2是干什么的:初步感觉是,Axis2是一个帮助网络服务在网络上进行SOAP通信的实现方式。接着便是要知道这头回接触的“服务”到底是怎末实现的。目前看到的部分主要在讲服务的发布和客户端的生成方式。
在看文档的同时,也动手实践了些东西,比如写了两个用SOAP封装的XML文件,分别描述了ACS端的方法和CPE端的方法。但还不知道有没有错误,只能边学边修改了……
ACS.xml :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0"> <soap:Body> <cwmp:GetRPCMethods></cwmp:GetRPCMethods> <cwmp:GetRPCMethodsResponse> <MethodList soap-enc:arrayType="xsd:string[3]"> <string>GetRPCMethods</string> <string>Inform</string> <string>TransferComplete</string> </MethodList> </cwmp:GetRPCMethodsResponse> <cwmp:SetParameterValues> <!--这里只是示例两个参数,现实可以更多--> <ParameterList soap-enc:arrayType="cwmp:ParameterValueStruct[2]"> <ParameterValueStruct> <name soap-enc:arrayType="xsd:string(256)"> Parameter1 </name> <!--这里的string类型是假设的,具体可以更改--> <value xsi:type="xsd:string">1234</value> </ParameterValueStruct> <ParameterValueStruct> <name soap-enc:arrayType="xsd:string(256)"> Parameter2 </name> <!--这里的string类型是假设的,具体可以更改--> <value xsi:type="xsd:string">5678</value> </ParameterValueStruct> </ParameterList> <ParameterKey soap-enc:arrayType="xsd:string(32)"> <string>somevalue</string> </ParameterKey> </cwmp:SetParameterValues> <GetParameterValues soap-enc:arrayType="xsd:string(256)[2]"><!--想要获得的参数的个数就是string数组的大小,举例两个--> <string> InternetGatewayDevice.DeviceInfo.SerialNumber </string> <string>InternetGatewayDevice.DeviceInfo.</string> </GetParameterValues> <GetParameterNames> <ParameterPath soap-enc:arrayType="xsd:string(256)"> InternetGatewayDevice.DeviceInfo.SerialNumber </ParameterPath> <NextLevel soap-enc:arrayType="xsd:boolean"> boolean </NextLevel> </GetParameterNames> <SetParameterAttributes> <ParameterList soap-enc:arrayType="cwmp:SetParameterAttributesStruct[2]"> <ParameterAttributeStruct> <Name soap-enc:arrayType="xsd:string(256)"> InternetGatewayDevice.DeviceInfo.SerialNumber </Name> <Notification soap-enc:arrayType="xsd:int[0:2]"> 0 <!--0:Notification off;1:Passive notification;2:Active notification--> </Notification> <AccessListChange xsi:type="xsd:boolean"> false<!--true:The value of AccessList replaces the current access list for this parameter or group of parameters;false:No change is made to the access list.--> </AccessListChange> <AccessList soap-enc:arrayType="xsd:string(64)[]"> <string>Subscriber</string> </AccessList> </ParameterAttributeStruct> </ParameterList> </SetParameterAttributes> <GetParameterAttributes> <!--假设是两个参数--> <ParameterNames soap-enc:arrayType="xsd:string(256)[]"> <string>11111</string> <string>11111</string> </ParameterNames> </GetParameterAttributes> <AddObject> <ObjectName xsi:type="string(256)"><!--The path name must end with a "." after the last node in the hierarchical name of the object--></ObjectName> <ParameterKey xsi:type="string(32)"></ParameterKey> </AddObject> <DeleteObject> <ObjectName xsi:type="xsd:string(256)"></ObjectName> <ParameterKey xsi:type="xsd:string(32)"></ParameterKey> </DeleteObject> <Download> <CommandKey xsi:type="xsd:string(32)"></CommandKey> <FileType xsi:type="xsd:string(64)"></FileType> <URL xsi:type="string(256)"></URL> <Username xsi:type="xsd:string(256)"></Username> <Password xsi:type="xsd:string(256)"></Password> <FileSize xsi:type="xsd:unsignedInt"></FileSize> <TargetFileName xsi:type="xsd:string(256)"></TargetFileName> <DelaySeconds xsi:type="xsd:unsignedInt"></DelaySeconds> <SuccessURL xsi:type="xsd:string(256)"></SuccessURL> <FailureURL xsi:type="xsd:string(256)"></FailureURL> </Download> <Reboot> <CommandKey xsi:type="xsd:string(32)"></CommandKey> </Reboot> <InformResponse> <MaxEnvelopes xsi:type="xsd:unsignedInt"></MaxEnvelopes> </InformResponse> <TransferCompleteResponse></TransferCompleteResponse> <AutonomousTransferCompleteResponse></AutonomousTransferCompleteResponse> </soap:Body> </soap:Envelope>
CPE.xml :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0"> <soap:Body> <cwmp:GetRPCMethods></cwmp:GetRPCMethods> <cwmp:GetRPCMethodsResponse> <MethodList soap-enc:arrayType="xsd:string[10]"> <string>GetRPCMethods</string> <string>SetParameterValues</string> <string>GetParameterValues</string> <string>GetParameterNames</string> <string>SetParameterAttributes</string> <string>GetParameterAttributes</string> <string>AddObject</string> <string>DeleteObject</string> <string>Reboot</string> <string>Download</string> </MethodList> </cwmp:GetRPCMethodsResponse> <SetParameterValuesResponse> <Status soap-enc:arrayType="xsd:int[0:1]">1</Status> </SetParameterValuesResponse> <GetParameterValuesResponse> <ParameterList soap-enc:arrayType="cwmp:ParameterValueStruct[2]"> <ParameterValueStruct> <name soap-enc:arrayType="xsd:string(256)"> Parameter1 </name> <!--这里的string类型是假设的,具体可以更改--> <value xsi:type="xsd:string">1234</value> </ParameterValueStruct> <ParameterValueStruct> <name soap-enc:arrayType="xsd:string(256)"> Parameter2 </name> <!--这里的string类型是假设的,具体可以更改--> <value xsi:type="xsd:string">5678</value> </ParameterValueStruct> </ParameterList> </GetParameterValuesResponse> <GetParameterNamesResponse> <ParameterList soap-enc:arrayType="cwmp:ParameterInfoStruct[]"> <ParameterInfoStruct> <name xsi:type="xsd:string(256)">Parameter1</name> <!--这里的string类型是假设的,具体可以更改--> <Writable xsi:type="xsd:boolean">boolean</Writable> </ParameterInfoStruct> <ParameterInfoStruct> <name xsi:type="xsd:string(256)">Parameter2</name> <!--这里的string类型是假设的,具体可以更改--> <Writable xsi:type="xsd:boolean">boolean</Writable> </ParameterInfoStruct> </ParameterList> </GetParameterNamesResponse> <SetParameterAttributesResponse> </SetParameterAttributesResponse> <GetParameterAttriutesResponse> <ParameterList soap-enc:arrayType="cwmp:ParameterAttributeStruct[]"> <ParameterAttributeStruct> <Name xsi:type="xsd:string(256)"> InternetGatewayDevice.DeviceInfo.SerialNumber <!--Must not be a partial path--> </Name> <Notification soap-enc:arrayType="xsd:int[0:2]"> 0 <!--0:Notification off;1:Passive notification;2:Active notification--> </Notification> <AccessList soap-enc:arrayType="xsd:string(64)[]"> <string>Subscriber</string> </AccessList> </ParameterAttributeStruct> </ParameterList> </GetParameterAttriutesResponse> <AddObjectResponse> <InstanceNumber soap-enc:arrayType="xsd:UnsignedInt[1:]"></InstanceNumber> <Status soap-enc:arrayType="xsd:int[0:1]"><!--0=The object has been created;1=The object creation has been validated and committed,but not yet applied--></Status> </AddObjectResponse> <DeleteObjectResponse> <Status soap-enc:arrayType="xsd:int[0:1]"><!--0=The object has been deleted;1=The object deletion has been validated and committed,but not yet applied--></Status> </DeleteObjectResponse> <DownloadResponse> <Status soap-enc:arrayType="xsd:int[0:1]"><!--0=Download has completed and been applied;1=Download has not yet been completed and applied--></Status> <StartTime xsi:type="xsd:dateTime"></StartTime> <CompleteTime xsi:type="xsd:dateTime"></CompleteTime> </DownloadResponse> <RebootResponse></RebootResponse> <Inform> <DeviceId xsi:type="cwmp:DeviceldStruct"> <DeviceldStruct> <Manufacturer xsi:type="xsd:string(64)"></Manufacturer> <OUI xsi:type="xsd:string(6)"></OUI> <ProductClass xsi:type="xsd:string(64)"></ProductClass> <SerialNumber xsi:type="xsd:string(64)"></SerialNumber> </DeviceldStruct> </DeviceId> <Event soap-enc:arrayType="cwmp:EventStruct[64]"> <!--须再添加,参见P34表7--> <EventStruct> <EventCode xsi:type="xsd:string(64)"> 0 BOOTSTRAP </EventCode> <CommandKey xsi:type="xsd:string(32)"></CommandKey> </EventStruct> </Event> <MaxEnvelopes xsi:type="unsignedInt"></MaxEnvelopes> <CurrentTime xsi:type="dateTime"></CurrentTime> <RetryCount xsi:type="unsignedInt"></RetryCount> <ParameterList soap-enc:arrayType="cwmp:ParameterValueStruct[]"> <!--可再添加--> <ParameterValueStruct> <name xsi:type="xsd:string(256)"></name> <value xsi:type=""></value> </ParameterValueStruct> </ParameterList> </Inform> <TransferComplete> <CommandKey xsi:type="xsd:string(32)"></CommandKey> <FaultStruct xsi:type="cwmp:FaultStruct"> <!--数组成员还可再添加--> <FaultStruct> <FaultCode xsi:type="xsd:unsignedInt"></FaultCode> <FaultString xsi:type="xsd:string(256)"></FaultString> </FaultStruct> </FaultStruct> <StartTime xsi:type="xsd:dateTime"></StartTime> <CompleteTime xsi:type="xsd:dateTime"></CompleteTime> </TransferComplete> <AutonomousTransferComplete> <AnnounceURL xsi:type="xsd:string(1024)"></AnnounceURL> <TransferURL xsi:type="xsd:string(1024)"></TransferURL> <IsDownload xsi:type="xsd:boolean"></IsDownload> <FileType xsi:type="xsd:string(64)"></FileType> <FileSize xsi:type="xsd:unsignedInt"></FileSize> <TargetFileName xsi:type="xsd:string(256)"></TargetFileName> <FaultStruct xsi:type="cwmp:FaultStruct"></FaultStruct> <StartTime xsi:type="xsd:dateTime"></StartTime> <CompleteTime xsi:type="xsd:dateTime"></CompleteTime> </AutonomousTransferComplete> </soap:Body> </soap:Envelope>