Pagina 1 di 1

Slackware supporta JSON-RPC o deve essere installato come extra?

Inviato: lun 18 apr 2022, 23:07
da gian_d
Sto sistemando gli slackbuild per i pacchetti relativi all'installazione di Avogadro 2. Alcuni di questi sono già su slackbuilds.org ma manca la ciliegina fondamentale, ovvero i pacchetti relativi ad Avogadro Libraries e l'interfaccia grafica, Avogadro Application. C'erano una serie di problemini che riguardavano un'installazione pulita, ma li ho risolti. L'applicazione funziona nelle operazioni di base, sufficienti per un uso elementare, per lo più didattico.

Resta la rogna più grossa, ovvero quella di integrare la funzionalità dell'uso avanzato dell'applicazione, basato su script Python e su Molequeue, un framework attraverso il quale vengono gestite le risorse computazionali in locale e in rete. L'avvio di queste funzionalità genera errori in runtime perché va impostata correttamente - in fase di installazione - l'integrazione con Python (devo ancora capire se devono essere installati dei moduli specifici) e perché l'interfaccia rpc di Molequeue non riesce a connettersi. Ravanando è saltato fuori che il framework usa un protocollo di connessione basato sulle specifiche JSON-RPC 2.0, di cui sono pressoché ignorante, perciò dovrò studiarmi tutta la faccenda.

Il primo approccio: la Slackware supporta queste specifiche? non ho trovato nessun pacchetto che in apparenza abbia una relazione con questo standard e mi viene il sospetto che nel mio sistema molequeue non funzioni proprio perché manca qualcosa nell'installazione e configurazione del sistema. Ho visto che su slackbuilds.org ci sono delle librerie che supportano queste specifiche: python-jsonrpclib e libjson-rpc-cpp. Mi chiedo però se estendono lo standard nel sistema rendendolo disponibile alle applicazioni che lo usano oppure servono semplicemente a integrare il supporto negli specifici linguaggi di programmazione in una configurazione di base preesistente.

Chiedo scusa per le banalità ma ribadisco che per me si tratta di roba nuova che devo ancora studiare e digerire.

Re: Slackware supporta JSON-RPC o deve essere installato come extra?

Inviato: mar 19 apr 2022, 0:54
da erio
sembra che lo slackbuild esiste ergo:
PRGNAM="python-jsonrpclib"
VERSION="0.4.3.2"
HOMEPAGE="https://github.com/tcalmant/jsonrpclib"
DOWNLOAD="https://github.com/tcalmant/jsonrpclib/ ... 3.2.tar.gz"
MD5SUM="21e212aff8998fdb167be511c013b4ab"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"

Re: Slackware supporta JSON-RPC o deve essere installato come extra?

Inviato: mar 19 apr 2022, 15:12
da gian_d
Sì, era uno degli slackbuild che avevo indicato. Tuttavia non mi è chiaro in che modo potrebbero essere usati nel contesto specifico. Secondo me sono librerie che vanno utilizzate per supportare le specifiche all'interno di un'applicazione che si sviluppa ad hoc (in python o in c++). Oppure installate come dipendenze di runtime per applicazioni che le richiedono come librerie condivise.

Poco fa, invece, ho risolto il mio problema specifico: Avogadro 2 funziona come applicazione standalone in locale, ma nel momento in cui si devono elaborare i dati relativi ad una struttura costruita e convertirla in un formato (pratica consueta in ambito accademico, quando si devono elaborare i dati di una struttura molecolare) allora richiede un framework di connessione per il calcolo computazionale. Questo framework è Molequeue. A quanto ho capito implementa già al suo interno queste specifiche come client e come server sfruttando una classe di Qt5.

Il fatto che siano concepite come applicazioni autonome genera l'equivoco: se si avvia Avogadro prima di Molequeue, l'applicazione non può connettersi al socket locale.
Quindi bisogna prima avviare Molequeue, che ha già una sua interfaccia grafica, ma si può ridurre nel systray lasciandolo in esecuzione. Quando si avvia Avogadro, al momento opportuno trova Molequeue in esecuzione e si connette a questo socket. Per ora ho capito come far dialogare le due piattaforme in locale, adesso devo capire come far connettere Molequeue ad un software locale o ad un server esterno per elaborare l'input.