Action #1229
Feature #591: Investigate how GammaLib can be made VO compliant.
Design and implement GVOHub class
Status: | Closed | Start date: | 06/19/2014 | |
---|---|---|---|---|
Priority: | Urgent | Due date: | 01/30/2015 | |
Assigned To: | Louge Thierry | % Done: | 100% | |
Category: | - | |||
Target version: | - | |||
Duration: | 226 |
Description
The GVOHub
class should implement an instance of a VO Hub respecting the SAMP protocol. As GammaLib is a standalone library, the class cannot depend on any library providing VO support. The VO Hub protocols and functions have to be implemented natively. This requires some thinking about how to organize the class, including identification of need for support classes and/or functions.
The GXml
class may be used here for example for XML protocol handling (writing and reading/parsing).
Note also that the GUrl
base class exists that describes a media independent interface. For the moment, GUrlFile
and GUrlString
exist for writing information in either a file or a string. Using this class, the client does not need to know into which media it writes or from which media it reads. Maybe it is possible to implement a GUrlSocket
class that allows reading or writing over a socket. In that case, the GXml
class could be used for XML exchange over sockets.
Recurrence
No recurrence.
History
#1 Updated by Knödlseder Jürgen over 10 years ago
- Assigned To set to Louge Thierry
#2 Updated by Knödlseder Jürgen over 10 years ago
- Description updated (diff)
#3 Updated by Louge Thierry over 10 years ago
- % Done changed from 0 to 10
Premières ébauches de design et de code produites. Pas encore de compilation.
#4 Updated by Louge Thierry over 10 years ago
Very first design and beginning of coding available. No compilation tried so far.
#5 Updated by Louge Thierry over 10 years ago
- File activity diagram.png added
- File class diagram.png added
- File GVOHub.hpp added
- File GVOHub.cpp added
L’inclusion du minimum de code produit dans Gammalib (avec une librairie “style gammalib”, et les spécificités du C++ par rapport au C) est en cours pour une version minimum fonctionnelle (ouverture du hub, contact par un client)
#6 Updated by Louge Thierry over 10 years ago
- Status changed from New to In Progress
- % Done changed from 10 to 20
Compilation de la classe GVOHub ok avec GVOHub.hpp, mais en mode permissif (les int des descripteurs de sockets en c correspondent à un type particulier en C++). Suite des opérations: Créer un fichier de tests sous le répertoire de tests de gammalib pour tester l’ouverture du hub puis implémenter les opérations nécessaires à son fonctionnement.
#7 Updated by Louge Thierry over 10 years ago
- % Done changed from 20 to 50
#8 Updated by Brau-Nogué Sylvie over 10 years ago
- Priority changed from Normal to High
#9 Updated by Knödlseder Jürgen about 10 years ago
- Priority changed from High to Urgent
You should now really concentrate on this one so that we can close the action within the next weeks.
#10 Updated by Knödlseder Jürgen about 10 years ago
- Due date set to 12/31/2014
#11 Updated by Knödlseder Jürgen about 10 years ago
- Due date changed from 12/31/2014 to 01/30/2015
#12 Updated by Knödlseder Jürgen almost 10 years ago
Skeleton finished, different clients have their own socket.
What is now missing is the passing of information between clients following the protocols.
#13 Updated by Knödlseder Jürgen almost 10 years ago
- TOPCAT
- Alladin
- VOSpec
It should be checked whether GVOHub is compatible with these Hubs, e.g. if they work the same way. The current GVOClient code leads for example to an exception when trying to connect to the VOSpec Hub. Connection to TOPCAT and Alladin seam to work.
Looks like the VOSpec hub does not work as it replies
HTTP/1.0 200 OK Content-Length: 475 Content-Type: text/xml <?xml version='1.0' encoding='UTF-8'?> <methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value> <int>1</int> </value> </member> <member> <name>faultString</name> <value>org.astrogrid.samp.xmlrpc.internal.XmlRpcFormatException: Unknown XML-RPC method samp.hub.register</value> </member> </struct> </value> </fault> </methodResponse>
Here is the response from Alladin:
HTTP/1.0 200 OK Content-Length: 529 Content-Type: text/xml <?xml version='1.0' encoding='UTF-8'?> <methodResponse> <params> <param> <value> <struct> <member> <name>samp.hub-id</name> <value>hub</value> </member> <member> <name>samp.self-id</name> <value>c2</value> </member> <member> <name>samp.private-key</name> <value>k:2_mmjoxbunxuargmid</value> </member> </struct> </value> </param> </params> </methodResponse> HTTP/1.0 200 OK Content-Length: 144 Content-Type: text/xml <?xml version='1.0' encoding='UTF-8'?> <methodResponse> <params> <param> <value></value> </param> </params> </methodResponse>
And here from TOPCAT:
HTTP/1.0 200 OK Content-Length: 529 Content-Type: text/xml <?xml version='1.0' encoding='UTF-8'?> <methodResponse> <params> <param> <value> <struct> <member> <name>samp.hub-id</name> <value>hub</value> </member> <member> <name>samp.self-id</name> <value>c2</value> </member> <member> <name>samp.private-key</name> <value>k:3_sigvjlgtrvxgupyu</value> </member> </struct> </value> </param> </params> </methodResponse> HTTP/1.0 200 OK Content-Length: 144 Content-Type: text/xml <?xml version='1.0' encoding='UTF-8'?> <methodResponse> <params> <param> <value></value> </param> </params> </methodResponse>
#14 Updated by Louge Thierry almost 10 years ago
- File AladinDialogueAvecHub.txt added
- % Done changed from 50 to 80
GVOHub is callable, reached by Aladin and Topcat (Aladin dialog with hub provided in file). Current actions are to serve the clients through SAMP protocol implementation, keeping record of registered clients in a list of GVOApp objects, GVOApp being a class for applications registered in the hub.
Different client doesn’t have their own sockets anymore, as SAMP through XML-RPC works in disconnected mode.
#15 Updated by Knödlseder Jürgen over 9 years ago
- Status changed from In Progress to Feedback
- % Done changed from 80 to 100
A version of the GVOHub class is now merged into the devel branch. The functionality of the Hub may not be complete yet, but registration, unregistrating and ping from a client works.
#16 Updated by Knödlseder Jürgen almost 9 years ago
- Precedes deleted (Action #780: Display skymap using Aladdin)
#17 Updated by Knödlseder Jürgen about 8 years ago
- Status changed from Feedback to Closed
Close this now