Home
ARIADNE USER GUIDE
Contents
1. eseessessnesnesnnesnnenneesnennnnnsnensonsnnnnennnnsnnesnnnsnnesnnnnnensnesnnssnnnnnonsnn 8 5 The register TunctioD n enenatis eee e Ree EU apap tt 9 6 T he unregister function oe rouen eta eee i a ae re n eee ees es 10 7 GetServiceData Class ties t en e t eee cay be t et ri SH e ie ik 11 S Emding services uie dept delta alas kon el sat ou isst alude eee e tette 12 9 005 parameters XML S CHEM ats see De Re ee pente deir p e a eed eee sese va n en dee 12 19 Example of QoS parameters e ee esee ce inerte ctr e eee eret Oe ae etes eee eee Pe eee 14 11 Example of finding service CUStOMIZETS cceeeccessecereeessecescecssccesceceeeeeeaecscecesaeeeeeesseeceacecneeseseceseecsaeeeeeeceaeeeeaeees 14 12 Comparison between service discovery protocols ll Lileteekeoeuoeuaetaaetae on nen aao one even ao en ao one eene trennt nennen nnne 17 I Introduction Mobile Ad hoc NET works MANETs enable spontaneous connectivity between wireless devices which can share their services without requiring any particular infrastructure In addition ad hoc routing protocols increase connectivity by offering multi hop communication However distributed service provision over MANET S requires adequate support of service discovery and invocation due to the network s dynamics and the resource constraints of wireless devices Some service discovery protocols for MANETs have been proposed but they are mainly aimed at small scale MANE
2. GetServiceHequestHops is the maximum number of hops that a search message can make between the directories PortNumber defines the port number that is used to send and receive all Ariadne messages except the control messages which are used to calculate the number of the neighbor nodes BloomFilter contains three sub targets activation size and hashFunctionNumber Activation takes two values true or false The true value activates the generation of the service summary and their exchange with the other directories and the false value deactivates it Size is the size of the array that contains the services summaries See 1 for more details HashFunctionNumber is the number of the values given by the hash function See 1 for more details Cache contains two sub targets activation and size that concern the cache The cache is an array where the service descriptions found in the remote directories are temporarily stored The cache may be used to answer other search requests Activation takes two values true or false The true value activates the cache use and the false value deactivates it To increase the Ariadne performances we suggest you activate the cache Size is the size of the cache array ProfilePort defines the port number that is used to send and receive the control messages which are used to calculate the number of the neighbor nodes The ProfilePort number must be different from the PortNumber val
3. If you want to use another SOAP container you have to write an appropriate deployment file and generate an appropriate Binding file from the provided SDInterface wsdl and SDConcrete wsdl files There are 4 steps to deploy Ariadne as a Web Service 1 copy the ariadne jar and SDService jar file into the shared folder of the Servlet container 2 copy the configuration folder into the default folder used by ariadne jar under the Servlet container 3 copy the content of the lib folder into the shared folder of the Servlet container 4 use the wsdd deployment file appropriate to the SOAP container to deploy the Ariadne interface Installing Ariadne for local instance use In this case you only have to add the ariadne jar and SDService jar files and the content of the lib folder to the current CLASSPATH and copy the configuration folder into the default folder used by ariadne jar IV Using Ariadne Using Ariadne is the same for both types of installation There is only a small difference in starting Ariadne which will be explained in Section IV 2 To be able to use Ariadne you have to know the Ariadne setting file and the SD interface its WSDL description is given in the annex The setting file will be described in the next section How to use the SD interface is explained in several sections according to the functionality provided start register service unregister service and find service customization and QoS in the QoS management Secti
4. service provider Provider QoS return true if and only if each parameter of the client QoS is contained in the provider QoS name based all the ttls of the Client QoS are equal to or higher than their corresponding ttls of the Provider QoS all the values of the Client QoS are equal to their corresponding values of Provider QoS in the case of the string type all the values of the Client QoS are equal to or higher than their corresponding values of the Provider QoS in the case of the integer type IV 6 2 Customization Our approach in service Customization is inspired by WSAMI Customization 4 which is based on using of a pair of content customizers at both ends as presented in 5 A Customizer consists of a local and a remote service Any message exchanged between the client and the service goes through the Customizer See http www rocq inria fr arles work wsami html for more details As shown above in register service section IV 3 Ariadne registers the WSDL description of a service and can also register a WSDL description of the local service customizer and a WSDL description of the remote service customizer related to the service These customizers can be used to customize the running of the service When a client asks the Ariadne for a registered service the Ariadne searches and gives the EndPoints of the service and also the EndPoints of its customizers Figure IV 6 2 shows an example SDService GetServiceDa
5. 00 lt size gt lt Cache gt lt ProfilePort value must be different of PortNumber value defined above gt lt ProfilePort gt 5555 lt ProfilePort gt lt QoS gt lt activation values true false gt lt activation gt true lt activation gt lt QoS gt lt TimingValues gt lt SD gt lt LISTENING_PERIOD_VALUE gt 5 lt LISTENING_PERIOD_VALUE gt lt ADVERTISEMENT_PERIOD_VALUE gt 5000 lt ADVERTISEMENT_PERIOD_VALUE gt lt ELECTION_WAITING_RESPONSE_TIME_VALUE gt 6000 lt ELECTION_WAITING_RESPONSE_TIME_VALUE gt lt WAITING_GET_SERVICE_RESPONSE_MIN_VALUE gt 50 lt WAITING_GET_SERVICE_RESPONSE_MIN_VALUE gt lt WAITING_GET_SERVICE_RESPONSE_MAX_VALUE gt 20000 lt WAITING_GET_SERVICE_RESPONSE_MAX_VALUE gt lt CHECKING_PERFORMANCE_PERIOD gt 60000 lt CHECKING_PERFORMANCE_PERIOD gt lt SD gt lt Election gt ELECTION HOPS_VALUE gt 1 lt ELECTION HOPS VALUE lt LISTENING_PERIOD_VALUE gt 5 lt LISTENING_PERIOD_VALUE gt lt ADVERTISEMENT_PERIOD_VALUE gt 5000 lt ADVERTISEMENT_PERIOD_VALUE gt lt ELECTION_WAITING_RESPONSE_TIME_VALUE gt 6000 lt ELECTION_WAITING_RESPONSE_TIME_VALUE gt lt Election gt lt Directory gt lt LISTENING_PERIOD_VALUE gt 5 lt LISTENING_PERIOD_VALUE gt lt ADVERTISEMENT_PERIOD_VALUE gt 5000 lt ADVERTISEMENT_PERIOD_VALUE gt lt ADVERTISEMENT_HOPS_VALUE gt 2 lt ADVERTISEMENT_HOPS_VALUE gt lt SUMMARIE_EXCHANGE_PERIOD_VALUE gt 20000 lt SUMMARIE_EXCHANGE_PERIOD_VALUE gt lt WAITING
6. ARIADNE USER GUIDE Authors Rafik CHIBOUT Francoise SAILHAN Val rie ISSARNY trafik chibout francoise sailhan valerie issarny inria fr Table of contents TIT OAUC ON vide oak aye sike a ye vin ee e e tad a Ma ERN ed 2 IHAriadne TAN CtIONIN Yi D ius pas ena da 2 IIIstallmg Ariadne teta en Gr t E e aee e Rt ee eet a rn 2 IV Using Ariadne EE Hp EE UPS 4 II nPAJ CM cL 4 IV 2Sstartmg Arn dne oii ene eR A EPI aer beh e 8 IV 3Registering d Service eed eR Hee ne pede tette eg eter sena bek ed 8 TV AUnregistering a Service tt eee o nio e p Da se eis 9 IV 5 Finding service eee atiende e ete epe 10 IV 6QoS5 Management 1n Ariadne 55e douse teri reve d eso eter EG onere epe en erede 12 IV 6 1QoS Parameters 22a Bean RB nass 12 IV 6 2Customlization ice rp t Ptr eae a eir e depo Ra FO dpt ee ae Pe ees 14 VComparison between service discovery protocols nennen trennen nren trennen trennen 15 VIAppendix eee RD eo BE REN AN ee en eye n eee won T Rees 17 Malls C HR M 22 List of Figures 1 Packages structure of Ariadne release aisis esis essri erias mernes sE eene tne too osooseoosenoseoouoooeuooonounooonoonoe 3 2 The Ariadne default setting file ies pere pt P ERE UR epe ERR RR EUER RH REA 6 3 Gettmp an instanc Gf Ariadne oae Uo PRU ORE RE e E UR qe o o IURE NR syon seas 8 4 Example of the Ariadne starting with instantiation
7. Ts We thus developed Ariadne 1 which is a scalable protocol for MANETs based on the homogeneous and dynamic deployment of cooperating directories within the network The scalability of Ariadne is made possible by minimizing the amount generated traffic and using of compact directory summaries These summaries enable the directory that most likely caches the description of a given service to be efficiently located Ariadne is based on the Web Services architecture to provide interoperability among mobile devices Specifically we use WSDL Web Service Description Language 2 for service description and SOAP Simple Object Access Protocol 3 for service invocation However we enrich WSDL to allow an open specification of Quality of Service QoS parameters Ariadne can operate on any IP network over 1 hop communication or multi hop communication To allow multi hop communication Ariadne needs to run over an ad hoc routing protocol e g OLSR available at http hipercom inria fr olsr II Ariadne functioning Ariadne subdivides into two components i Directories that are dynamically deployed on the network and ii Service Discovery component SD that are deployed on all the nodes The Directory caches the descriptions of networked services that have been discovered The SD looks for directory instances in the vicinity of the local node and provides an interface that allows registering unregistering services and searching services When the SD
8. _GET_SERVICE_RESPONSE_MIN_VALUE gt 50 lt WAITING_GET_SERVICE_RESPONSE_MIN_VALUE gt lt WAITING_GET_SERVICE_RESPONSE_MAX_VALUE gt 10000 lt WAITING_GET_SERVICE_RESPONSE_MAX_VALUE gt lt INITIAL_TTL_VALUE gt 30000 lt INITIAL_TTL_VALUE gt lt TTL_UPDATING_VALUE gt 3000 lt TTL_UPDATING_VALUE gt lt Directory gt lt TimingValues gt lt ServiceDiscovery gt 2 The Ariadne default setting file DirectoryDeployment takes three values auto false and true auto Ariadne deploys a directory on the local node if and only if an elect message is received false Ariadne will never deploy a directory in the local node and reply with a refuse message for all election requests received true Ariadne deploys a directory on the local node even when it starts up independently of the directories deployed in its vicinity MinPerformance takes a numeric value between 0 and 1 This value is the percentage of the node s capacity If the current capacity of the local node is less than the MinPerformance value the Ariadne can replies with a refuse message to the election requests if not it can send its candidature HopsNumber is the number of hops over which the node searches for its neighbor nodes This value must be higher than or equal to 1 and should be as small as possible in order to avoid flooding the network MaxDirectoryRequested is the maximum number of the directories that the SD may request when it searches for a service
9. atch Part 2 find the services SDService GetServiceData services sd getServices partialWSDLDescription Part 3 treat the found services if services null amp amp services length gt 0 take the first service found String serviceEndPoint services 0 getServiceEP String localCustomizerEndPoint services 0 getCustLocalEP String remoteCustomizerEndPoint services 0 getCustRemotel Ha Hj Part 4 use the selected service java net URL serviceURL new java net URL serviceEndPoint ServiceInterface service new Service ServiceBindingStub serviceURL null 11 8 Finding a service IV 6 QoS Management in Ariadne Ariadne provides two optional mechanisms to handle the QoS awareness The first is the QoS Parameters which allow the user to find the appropriate service and the second is the Customization which allows the user to customize its service running The following describes these two mechanisms IV 6 1 QoS Parameters We enrich the WSDL language by integrating QoS parameters which are mainly used to allow the clients to find the appropriate service according to the context The service s QoS parameters and their values are initially given by the service provider when it registers the service and the values are updated periodically by Ariadne The client requiring a service can add some QoS parameters and their values into the WSDL descr
10. ervice Part 3 now you can register the service sd register wsdlDescription EndPointURL 5 The register function There are 3 parts in the above example Part1 we obtain the WSDL description from the file and put it into a string Part2 we create the EndPoint URL from the set of information host address port number service context and service name The host address is the address of the host where the service is deployed In this case the host has the address 128 10 10 10 and the service s name is myService which is deployed in the services context Part3 we call the register function and give it the WSDL description of the service and its EndPoint URL IV 4 Unregistering a Service A service is unregistered by unregister function given by the SD This function has two parameters the WSDL description of the service to remove and its EndPoint URL When the unregister function is invoked the service is removed from all the directories Figure IV 4 shows an example of the unregistering of the service that was registered in the previous section Figure IV 3 get the wsdl description from the wsdl file String wsdlFilePath servicesproviders services wsdl MyServiceInterface wsdl String wsdlDescription Try java io FileInputStream wsdlFile new java io FileInputStream wsdlFilePath while wsdlFile available gt 0 byte data new byte wsdlFile available wsdlFile read data wsdlD
11. es needed by Ariadne bin contains the scripts to start up and shut down Ariadne deployment axis deploy wsdd undeploy wsdd is the deployment undeployment script of Ariadne on Apache Axis deployment csoap deploy wsdd undeploy wsdd is the deployment undeployment script of Ariadne on CSoap wsdl SDInterface wsdl is the WSDL description of Ariadne interface wsdl SDConcrete wsdl is the concrete definition of Ariadne interface SIC contains the Java source code of the Ariadne doc contains this document Ariadne can be installed in two ways 1 as a Web Service deployed on a SOAP container or 2 as a local part of the application that uses it To install Ariadne as a Web Service you have to install a Servlet container we suggest you use Jakarta Tomcat see http jakarta apache org tomcat index html for more detail and a SOAP container we suggest Axis or CSoap Installing Ariadne as a Web Service The Ariadne release provides the deployment files of Ariadne as a Web Service on Axis deployment axis deploy wsdd and on CSoap deployment csoap deploy wsdd It also provides the Binding Apache Axis is an implementation of the SOAP See http ws apache org axis CSoap is an implementation of the SOAP for resource constrained devices See http www rocq inria fr arles work wsami html files in the ariadne jar which are named SOAPBindingAxis class for Axis and SOAPBindingCSoap class for CSoap
12. escription wsdlDescription new String data catch FileNotFoundException ex System out println wsdlFilePath file not found catch IOException ex System out printin wsdlFilePath file I O Error EndPointURL http 128 10 10 10 8080 services myService call unregister function sd unregister wsdlDescription EndPointURL 6 The unregister function IV 5 Finding a service Ariadne aims to provide clients with an efficient means to find services by optimizing the response time the network flooding and finding the services that match the clients specifications To find a service you have to give Ariadne a full WSDL description or a partial WSDL description of the required service Ariadne searches for the given service description in the directory that is most likely caches the service Finding the service is enabled by the getServices function of the SD which has one parameter WSDL description and returns an array of GetServiceData objects Each GetServiceData object contains a description of a service that has been found The structure of GetServiceData class is shown in Figure IV 5 Package SDService Public class GetServiceData implements java io Serializable Private java lang String serviceEP Private java lang String custLocalEP Private java lang String custRemoteEP Private java lang String wsdlDocument Private java lang String wsdlCustLocal Private java lang S
13. given by the SD The register function has four parameters the WSDL description of the service the endpoint of the service URL the WSDL description of the local customizer the WSDL description of the remote customizer In this section we will show only the use of the first and second parameters the customizers parameters will be described in Section IV 6 2 The following Figure IV 3 is an example of the register function SD starting see the starting section Part 1 get the wsdl description from the wsdl file String wsdlFilePath servicesproviders services wsdl MyServiceInterface wsdl String wsdlDescription Try java io FileInputStream wsdlFile new java io FileInputStream wsdlFilePath while wsdlFile available 0 t byte data new byte wsdlFile available wsdlFile read data wsdlDescription wsdlDescription new String data catch FileNotFoundException ex System out println wsdlFilePath file not found catch IOException ex System out println wsdlFilePath file I O Error Part 2 create the EndPoint URL String hostAddress 128 10 10 10 the address of the host where the service is deployed String port 8080 String servicesContext services String serviceName myService String EndPointURL http hostAddress port servicesContext serviceName EndPointURL http 128 10 10 10 8080 services myS
14. ical N A Flat Hierarchical hierarchical hierarchical Service State in N A N A Soft state and Soft state Hard state Soft state Soft state and N A Soft state directories hard state with hard state periodically check Directory address N A N A Configured Configured or Configured or Multicast Multicast N A Discovered address multicast multicast address address address address address Number of N A N A Multiple Single N A N A Multiple N A N A directory hierarchies hierarchy hierarchies hierarchies Announcement and lookup Query vs Query Announceme Both Both Both Both Both Both Query Announcement nt Directory based vs Non Non Directory Directory Directory Either Directory non Directory non directory based directory directory based based based based directory based based based based Communication Unicast and Broadcast Unicast Unicast and Unicast and Multicast Unicast Unicast and Unicast broadcast anycast and multicast broadcast multicast and multicast multicast broadcast Service Selection User vs Protocol User User Protocol User User User User User User selection Selection selection selection selection selection selection selection selection selection Service Matching Match all N A Match best Match all Match one or Match all Match all or Match all N A match all match best Context aware N A N A N A N A N A N A N A N A N A Scope aware Location N A Location Location N A Administrati Location N A N A
15. ies in the vicinity If an SD doesn t receive any directory advertisements after xT time is a constant it initiates the election process All the directories exchange the summary of their cached services These summaries are used by the directory to know which directory caches a WSDL description of a given service when it doesn t locally cache the service itself In Ariadne the directory summaries are generated with a bloom filter implementation from http tiger towson edu users dknopp1 III Installing Ariadne The latest version of Ariadne can be found at http www rocq inria fr arles download ariadne Download the ariadne version tar file and uncompress it into a temporary folder You get the following file Figure III configuration xccl DEZE setting xml ariadne c LLL ariadne jar LLL EL SDService jar lib Si SESE et eee imid a ka wsdl4j jar xmlParserAPIs jar Wie eres eue rios jaxrpc api jar bin SE a E RR a startup sh ILL shutdown sh deployment deploy wsdd undeploy wsdd fer deploy wsdd sanen undeploy wsdd wsdl ee seers T SDInterface wsdl isi oi aba SDConcrete wsdl Fre gre doc Packages structure of Ariadne release configuration setting xml is an XML file used to configure Ariadne ariadne ariadne jar contains the Ariadne release classes ariadne SDService jar contains the SD component classes lib contains the librari
16. iption of the required service these values will be compared to the values given by the service provider Only the services that offer at least the QoS values equal to or higher than the QoS values requested by the client are selected The following Figure IV 6 1 is the XML Schema of the QoS parameters lt xs element name ServiceDiscovery gt lt xs complexType gt lt xs sequence gt lt xs element name ttl type xs integer default 1 gt lt xs element name QoS gt lt xs complexType gt lt xs sequence gt lt xs element name param minOccurs 0 maxOccurs 10 gt lt xs complexType gt lt xs attribute name name type xs string gt lt xs attribute name type type xs integer gt lt xs attribute name ttl type xs integer gt lt xs attribute name value type xs string gt lt xs complexType gt lt xs element gt lt xs sequence gt lt xs complexType gt lt xs element gt lt xs sequence gt lt xs complexType gt lt xs element gt 9 QoS parameters XML Schema The root element is the ServiceDiscovery and it contains two elements ttl and QoS The ttl element is the time to live of the service description registered in the directory Once this time has expired the service description is removed from the directory To keep a service description in the directory all the time the service provider has to re register the service before its ttl expires or give the 1 to the tt
17. l value The QoS element contains an occurrence of the param element which allows the user to define any QoS attribute and give it a value The param element has four attributes name type ttl and value Name is the name of the QoS parameter Type is the type of the QoS parameter 0 for integer type and 1 for string type We will add other types in future versions ttl is the time to live of the QoS parameter When the ttl expires the QoS value is set to null To keep the QoS parameter continually put its ttl value to 1 Value is the value of the QoS parameter and may be a string or an integer 12 The Figure IV 6 1 shows an example of QoS parameters 13 ServiceDiscovery lt tt1 gt 120000 lt tt1 gt QoS lt param name instance type 1 ttl 1 value www rocq inria fr arles gt lt param name energy type 0 ttl 60000 value 45 gt lt param name memory type 0 ttl 60000 value 64000 gt lt param name freememory type 0 ttl 60000 value 5000 gt lt param name cpu type 0 ttl 60000 value 800 gt lt param name cachesize type 0 ttl 60000 value 256 gt lt param name connectivity type 0 ttl 80000 value 5 gt lt param name bandwith type 0 ttl 90000 value 50 gt lt Qos gt lt ServiceDiscovery gt 10 Example of QoS parameters The comparison between the QoS parameters required by a client Client QoS and the QoS parameters given by a
18. on IV 1 Setting file The Ariadne setting file is named setting xml You can find it in the configuration folder and you must put it into the current folder used by Ariadne The setting file contains a set of XML targets and their values which are responsible for the proper functioning of Ariadne To describe the XML targets we will show and explain the default configuration of the setting file see Figure IV 1 Only experienced users should modify this default configuration according to their network topology and connectivity lt xml version 1 0 gt lt ServiceDiscovery gt l Directory deployment values auto false true gt auto With election process if any gt l false never elected as directory gt l true always elected as directory gt lt DirectoryDeployment gt auto lt DirectoryDeployment gt lt MinPerformance gt 0 5 lt MinPerformance gt lt HopsNumber gt 1 lt HopsNumber gt lt MaxDirectoryRequested gt 5 lt MaxDirectoryRequested gt lt GetServiceRequestHops gt 2 lt GetServiceRequestHops gt lt PortNumber gt 9999 lt PortNumber gt lt BloomFilter gt lt activation values true false gt lt activation gt true lt activation gt lt size gt 2800 lt size gt lt hashFunctionNumber gt 4 lt hashFunctionNumber gt lt BloomFilter gt lt Cache gt lt activation values true false gt lt activation gt true lt activation gt lt size gt 1
19. ps over which an election message is sent LISTENING PERIOD VALUE is the period of time for the election process to take the received messages from the message stack ADVERTISEMENT PERIOD VALUE is the frequency time of the directory advertisement ELECTION WAITING RESPONSE TIME VALUE is the time that the Election process must wait to receive the election response messages This time will be multiplied by the number of hops For directory LISTENING PERIOD VALUE is the period of time for the Directory to take the received messages from the messages stack ADVERTISEMENT PERIOD VALUE is the period of time for the directory to advertise its presence ADVERTISEMENT HOPS VALUE is the number of hops over which the directory sends its advertisements SUMMARIE EXCHANGE PERIOD VALUE is the period of time for the directory to send its services summary to the other directories if its summary has been changed WAITING GET SERVICE RESPONSE MIN VALUE when the Directory sends a search service message to the other directories it looks for the reply message every WAITING GET SERVICE RESPONSE MIN VALUE time WAITING GET SERVICE RESPONSE MAX VALUE if the Directory doesn t receive a response message for a search service message after the WAITING GET SERVICE RESPONSE MAX VALUE it returns an empty result INITIAL TTL VALUE is the initial living time for a received directory advertisement TTL UPDATING VALUE is the period of
20. receives register unregister or search service requests it forwards them to all the directories in its vicinity Each node in the network must run at least the SD component The directory part can be deployed on some nodes in two ways 1 by election or ii by forcing the deployment on the local node in the setting file see Section IV 1 The election process consists of choosing one or more nodes that can become directories The election starts by broadcasting an election request from an SD without any directories in its vicinity to all the other SD in its vicinity An SD receiving the election request can either refuse or accept to act as a directory depending on its capacity When an SD is willing to act as a directory it sends back an acceptance message which contains its capacity CPU Memory Disc etc and its connectivity number of neighbors number of neighbor directories etc Finally the SD that initiated the election chooses one or more nodes to become directories based on received replies and sends them a notification message The SD that receives a notification message deploys the directory component on the local node The main selection criteria for directory hosts is the node coverage i e the node that has the highest number of neighbor nodes and the smallest number of directories in its vicinity is chosen Each directory advertises its presence every T time unit These advertisements are received by the SDs and the Director
21. se gt part name serviceEP type typens ArrayOfGetServiceData message lt port type declns gt lt portType name SDPortType gt operation name start gt lt input message tns startRequest gt lt output message tns startResponse gt lt operation gt lt operation name stop gt lt input message tns stopRequest gt lt operation gt lt operation name Register gt lt input message tns RegisterRequest gt lt operation gt lt operation name UnRegister gt lt input message tns UnRegisterRequest gt lt operation gt lt operation name getServices gt lt input message tns GetServicesRequest gt 18 output message tns GetServicesResponse ou operation 19 operation name getAllServices gt lt input message tns GetAllServicesRequest gt output message tns GetAllServicesResponse gt lt operation gt operation name getServices_ByInstanceURL gt lt input message tns GetServices ByInstanceURLRequest output message tns GetServices ByInstanceURIResponse operation portType lt binding declns gt binding name SDBinding type tns SDPortType gt soap binding style rpo transport http schemas xmlsoap org soap http gt operation name start gt soap operation soapAction gt input soap body use encoded namespace urn SDService encodingStyle http schemas xml
22. soap org soap encoding gt lt input gt lt operation gt lt operation name stop gt lt soap operation soapAction gt lt input gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt input gt lt operation gt lt operation name Register gt lt soap operation soapAction gt lt input gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt input gt lt operation gt lt operation name UnRegister gt lt soap operation soapAction gt lt input gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt input gt lt operation gt lt operation name getServices gt 20 soap operation soapAction gt input soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding input output soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt output gt lt operation gt lt operation name getAllServices gt lt soap operation soapAction gt lt input gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt input gt lt output gt lt soap body use encoded namespace urn SDSer
23. strings minOccurs OQ maxOccurs unbounded type typens GetServiceData gt lt xsd sequence gt lt xsd restriction gt lt xsd complexContent gt lt xsd complexType gt lt xsd schema gt lt types gt lt message declns gt lt message name startRequest gt message name startResponse gt part name stat type xsd boolean gt message message name stopRequest gt message name RegisterRequest gt 17 part name WSDL type xsd string gt part name EP type xsd string gt part name WSDLLCU type xsd string gt part name WSDLRCU type xsd string gt message message name UnRegisterRequest gt part name WSDL type xsd string gt part name EP type xsd string gt lt message gt message name GetServices_ByInstanceURLRequest gt part name WSDL type xsd string gt part name instanceURL type xsd string gt message message name GetServices ByInstanceURIResponse part name serviceEP type typens ArrayOfGetServiceData message message name GetServicesRequest gt part name WSDL type xsd string gt message message name GetServicesResponse gt part name serviceEP type typens ArrayOfGetServiceData gt message message name GetAllServicesRequest gt part name GroupServicewAU type xsd string gt message message name GetAllServicesRespon
24. ta services sd getServices partialWSDLDescription if services null amp amp services length gt 0 take the first service found String serviceEndPoint services 0 getServiceEP String localCustomizerEndPoint services 0 getCustLocalEP String remoteCustomizerEndPoint services 0 getCustRemoteEP 11 Example of finding service customizers 14 V Comparison between service discovery protocols The following table Figure V shows a comparison between some well known service discovery protocols and our Ariadne implementation listing which functionalities are supported in each case The table comes from 6 except the Ariadne column 15 Bluetooth DEAPspace INS Jini Salutation SLP SSDS UPnP Ariadne Service Naming and Standard N A N A Standard Standard Standard N A Standard WSDL attributes Invocation N A N A N A Java code Remote URL N A XML Data SOAP Procedure Call Status inquiry N A N A N A Notification Notification N A N A Polling and N A and event notification agent Directory Centralized vs N A N A Distributed Distributed Either Centralized Distributed N A Distributed distributed Number of Service N A N A Fully Multiple Multiple Multiple Single copy N A Multiple Information Copies replicated in copies copies copies copies sub domains single copy globally Flat vs N A N A Flat and Flat or Flat N A Hierarch
25. time for the directory to update the TTL of other directory advertisements Then the directory removes them when their TTL is equal to zero IV 2 Starting Ariadne If Ariadne is deployed as a Web Service you can use the bin startup sh provided in the release to start Ariadne and bin shutdown sh to stop it In your application you can obtain an instance of the Ariadne by using the Binding classes as shown in the following example Figure IV 2 java net URL localSDURL new java net URL http localhost 8080 service SD SDService SDPortType sd new SDService SDBindingStub localSDURL null 3 Getting an instance of Ariadne In the other case to start Ariadne you have to create an instance of the servicediscovery SD class in your application and you invoke the start method to start Ariadne The isStarted method of the servicediscovery SD class returns true when Ariadne is ready to use and returns false otherwise The following is an example of the Ariadne starting with instantiation Figure IV 2 Import SDService SDImpl SDService SDPortType sd new SDImpl Sd start While sd isStarted Ariadne is ready to use 4 Example of the Ariadne starting with instantiation IV 3 Registering a service As described above Ariadne main role is to allow service providers to advertise their services and to allow clients to find them The service advertisement is enabled by the register function
26. tring wsdlCustRemote Public GetServiceData setter and getter methods of all the attributes 10 7 GetServiceData Class serviceEP is the service s EndPoint custLocalEP is the EndPoint of the local customizer if any custRemoteEP is the EndPoint of the remote customizer if any wsdlDocument is the full WSDL description of the service wsdlCustLocal is the full WSDL description of the local customizer service if any wsdlCustRemote is the full WSDL description of the remote customizer service if any Generally the service search in Ariadne is composed of four parts 1 Getting the full or partial WSDL description of the required service 2 Asking the Ariadne to search for the registered services whose WSDL description contains a given WSDL description 3 Selecting one or more of the found services 4 Using the found service EndPoints to connect to the services and use them These four parts are shown in the following example Figure IV 5 Part 1 get WSDL description of the required service String partialWSDLDescription String partialWSDLFilePath clients wsdl wsami MyServiceInterface wsdl IY Java io FileInputStream wsdlFile new java io FileInputStream partialWSDLFilePath While wsdlFile available gt 0 byte data new byte wsdlFile available wsdlFile read data partialWSDLDescription partialWSDLDescription new String data c
27. ue defined above QoS contains one target activation Activation takes two values true or false that specify respectively whether Ariadne takes care of the quality of service or not See section IV 6 1 for more details Timing Values This target contains the list of the waiting times and the frequency advertisement times of the SD the Directory and the election process The default values of the waiting times are defined according to a MANET formed by five laptops which have CPU Intel PIT 800MHz RAM 192Mo and wireless card Lucent WaveLAN PC Card 11Mb s For SD LISTENING PERIOD VALUE is the period of time for the SD to take the received messages from the message stack ADVERTISEMENT PERIOD VALUE is the frequency time of the directory advertisement ELECTION WAITING RESPONSE TIME VALUE is the time that the SD must wait when the election is processing This time will be multiplied by the number of hops WAITING GET SERVICE RESPONSE MIN VALUE when the SD sends a search service message it looks for the reply message every WAITING GET SERVICE RESPONSE MIN VALUE time WAITING GET SERVICE RESPONSE MAX VALUE if the SD doesn t receive a response message for a search service message after the WAITING GET SERVICE RESPONSE MAX VALUE it returns an empty result CHECKING PERFORMANCE PERIOD is the frequency time for checking performance value of the local node For Election ELECTION HOPS VALUE is the number of ho
28. vice encodingStyle http schemas xmlsoap org soap encoding gt lt output gt lt operation gt operation name getServices ByInstanceURL gt lt soap operation soapAction gt lt input gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt input gt lt output gt lt soap body use encoded namespace urn SDService encodingStyle http schemas xmlsoap org soap encoding gt lt output gt lt operation gt lt binding gt definitions 21 VII References 1 F Sailhan V Issarny Scalable Service Discovery for MANET In proc of IEEE International Conference on Pervasive Computing and Communications PERCOM March 2005 accepted paper 2 Web Services Description Working Group http www w3c org 2002 ws desc 3 XML Protocol Working Group http www w3c org 2000 xp Group 4 D Sacchetti R Chibout V Issarny WSAMI A Middleware Infrastructure for Ambient Intelligence based on Web Services http www rocq inria fr arles work wsami html 5 J Steinberg and J Pasquale A Web middleware architecture for dynamic customization of content for wireless clients In Proceedings of the WWW 02 Conference 2002 6 F Zhu M Mutka and L Ni Classification of Service Discovery in Pervasive Computing Environments MSU CSE 02 24 Michigan State University EastLansing 2002 22
29. vicinity and and ve domain administrati administrati administrati ve domain ve domain ve domain and network topology 16 Yes N A N A N A N A N A QoS aware E p Yes 12 Comparison between service discovery protocols VI Appendix WSDL Description of SD Interface lt xml version 1 0 2 definitions name urn SDService targetNamespace urn SDService xmlns tns urn SDService xmlns typens urn SDService xmlns xgd http www w3 0rg 1999 XMLSchema xmlns soap http schemas xmlsoap org wsdl soap xmlns soapenc http schemas xmlsoap org soap encoding xmlns wsdl http schemas xmlsoap org wsdl xmlns http schemas xmlsoap org wsdl lt type defs gt types xsd schema targetNamespace urn SDService gt xsd complexType name GetServiceData gt lt xsd sequence gt lt xsd element name serviceEP type xsd string gt lt xsd element name custLocalEP type xsd string gt lt xsd element name custRemoteEP type xsd string gt lt xsd element name wsdlDocument type xsd string gt lt xsd element name wsdlCustLocal type xsd string gt lt xsd element name wsdlCustRemote type xsd string gt lt xsd sequence gt lt xsd complexType gt lt xsd complexType name ArrayOfGetServiceData gt lt xsd complexContent gt lt xsd restriction base soapenc Array gt lt xsd sequence gt lt xsd element name
Download Pdf Manuals
Related Search
Related Contents
EpsonEB-1940W - Office Max SRL 10 - Buschkamp Guide Pratique - Myotonic Dystrophy Foundation Florida Restaurant & Lodging Show October 6 Spire SilentEagle 650W Zanussi ZM175ST User's Manual Panasonic CU-RE12GKE air conditioner Driving the Business of Advertising 30/03/2015 : Compte rendu qui « n`est pas validé par le bureau ON-KEY KARAOKE TV STAR USER MANUAL Copyright © All rights reserved.
Failed to retrieve file