HyperCuP/Old/Documents/AlphaVersion

From Corrib Clan Wiki

Jump to: navigation, search

orouli delbasrelchi erlibocnaze

Contents

HyperCuP meeting topics

  • What is HyperCuP?
  • How it creates, adds, ... peers
  • What are the use cases? (DL - Generic Message Broadcast)
  • Are they correct?
  • Problems related to threads
  • Other methods (JMX)
  • The future work

What we decided

  • Application will have to provide the implementation of LocalQuery interface.
  • Implementations of interfaces provided for the HyperCuP factory through the registerLocalQuery
  • HyperCuP will provide a Connector interface with such methods like: joinNetwork, performQuery
  • performQuery will take a Serializable and return Serializable, so both Strings and serializable data could be sent
  • Axis will be deployed within the main webapp

Application diagram

This is a simple diagram of HyperCuP integration within application. The GMH(Generic Message Handler) isn't a real class but rather an abstracion of inside HyperCuP code responsible for handling generic messages. Application is responsible for providing the part of the code inside the doted box, while HyperCuP implements rest.

Enlarge

Interfaces to be defined

LocalQuery

  • Serializable performQuery(Serializable query)

ResultIntegrator

  • Result integrate(List<Result>)

roalbocget

Miscellaneous

Draft of General Message Status class:

Dim
Progress
Reslut List
Local Result
timeStamp
timeOut

Interfaces

Interfaces for current version (more than one network per webapp)

  • org.skruk.hypercup.Connector - interface responsible for performing distibuted query: to obtain this interfaces implementation execute: (Connector)org.skruk.hypercup.manage.HyperCuP.getInstance().getConnector(String alias) alias is a local identifier of the network to which Connector will be obtained. Alias should be initialized during webapp startup by invoking registerServiceURL, which is described later on.
  • org.skruk.hypercup.LocalQuery - interface to be implemented by aplication whitch uses hyperCuP. Through this interface hypercup obtains results for local queries in distibuted nodes
  • org.skruk.hypercup.manage.Configurator - interface which should be used by webapp during startup to configure HyperCuP service offered by that application. To obtain object implementing this interface execute: org.skruk.hypercup.manage.HyperCuP.getInstance().registerServiceURL(String _serviceURL, String alias) - this method registers URL of local hyperCuP WebService and connects this webservice to alias, which can be used inside webapp to obtain Connector which is described above. During aplication startup fallowing methods of Configurator should be called in order to properly configure HyperCuP:
    • registerLocalQuery(LocalQuery _localQuery) - this method registers implementation of localQuery
    • registerConnectionPropertiesFile(String connectionPropertiesFile) - this method registers name of the file which HyperCuP will use to store data about its connections to other Peers.


Interfaces for older version alowing only one network per webapp

  • org.skruk.hypercup.Connector - interface responsible for performing distibuted query: to obtain this interfaces implementation (Connector)org.skruk.hypercup.manage.HyperCuP.getInstance().getConnector()
  • org.skruk.hypercup.LocalQuery - interface to be implemented by aplication whitch uses hyperCuP. Through this interface hypercup obtains results for local queries in distibuted nodes
  • org.skruk.hypercup.manage.HyperCuP.getInstance().registerLocalQuery(LocalQuery _localQuery) - this method should be used by application to register its implementation of localQuery in order for that implementation to be known by HyperCuP(it should be done as soon as the application is started)
  • org.skruk.hypercup.manage.HyperCuP.getInstance().registerServiceURL(String _serviceURL) - this method should be used by application to register URL of local hyperCuP WebService(it should be done as soon as the application is started)
  • org.skruk.hypercup.manage.HyperCuP.getInstance().registerConnectionPropertiesFile(String connectionPropertiesFile) - this method should be used by application to register name of the properites file where HyperCuP will store data about its connections to other Peers(it should be done as soon as the application is started)

Building Network

Currently there is no programmatical way of joining one HyperCuP enabled webapp to HyperCuP network. Instead one should use a temporary(it will be removed in coming versions of HyperCuP) method provided by HyperCuP webservice: join(String adr, String service). This method will connect webapp on which it is invoked(the proper URL of that webapp's HyperCuP service must be also provided in service parameter) to a network represented by an integration champion(other webapp already connected to the network), which URL(the URL of its HyperCuP service) is provided ind adr parameter.

Facts about HyperCuP/Old/Documents/AlphaVersion — Click + to find similar pages.RDF feed
Personal tools

Corrib cluster project is supported by Enterprise Ireland under Grant No. ILP/05/203, Science Foundation Ireland under Grant No. SFI/02/CE1/I131.
Hosted at DERI, NUI Galway.