Hub components and concepts#

Hub is deployed as a single binary file. There are various components within Hub:

  • Hub Server - a server component that can route “client” application requests to the appropriate “connector” application

  • Hub Agent - a “connector” application to bootstrap other “connectors” such as the Petrel hub Connector.

  • Hub commandline client interface - a commandline client to query a running Hub Server and perform other Hub related operations

Hub also comes with some additional installation artifacts

  • Petrel Hub Connector - a Petrel plugin which provides a small set of functionality for managing Petrel project lifecycle operations and a host for other Hub Petrel plugins to register functionality

  • Prizm Hub Python library - a Hub “client” application available from PyPi for interacting with a running Cegal Hub Server and Cegal Hub “connector” applications

For more information on the Cegal Hub deployment scenarios and installation see Installation Guide

../../../_images/HubComponents.png ../../../_images/HubComponents_dark.png

Hub Server#

Hub Server routes messages between “client” applications and “connector” applications.

Hub “connectors” can register functionality with the Hub Server. Hub client applications can make requests to these connection applications via the Hub Server. A Hub Server can be run locally or remotely.

Hub Server allows multiple users to connect to a remote hosted environment from their local Hub connector applications. Hub Server needs to be configured and launched before users can connect from their local machines. Configuration on the remote hosted environment will be usually done by IT departments or digitalization teams. End-users will only need to connect to the Hub Server using the URL of the remote hosted environment.

For more information on the Cegal Hub Server see Hub Server

Hub Agent#

The Hub Agent awaits requests and tasks from the Hub server and execute them. The Hub Agent will register itself with the server as a Hub connector application. There must be a Hub Server running either locally or remotely.

Use the Hub Agent to list files, launch applications and execute scripts. These tasks are sent by a Hub client application (e.g., your Python code) to the Hub Agent and executed on the machine the Hub Agent is running. For remote connections list files, launch applications, and execute scripts are turned off by default and need to be explicitly allowed using the flags allow-file-list, allow-launch-profiles, and allow-scripts respectively when starting the Hub Agent.

You can also use Hub Agent to launch an application with a pre-configured profile. The applications to launch are saved in profile.json files in your app data. Use the command cegalhub installation apps to configure your application profiles.

For more information on the Cegal Hub Agent see Hub Agent

Hub commandline client#

The Hub commandline client is an built-in Hub client application you can use to check on the status of the Hub Server and connector applications along with invoking functionality on a Cegal Hub Agent.

For more information on the Cegal Hub Cmdline see Hub commandline

Hub connector applications#

Connector applications are a fundamental concept in Cegal Hub. Connector applications allow custom software to expose functionality to Hub and transfer data / messages in response to an end user / application client request. This communication can span the internet or simply be on your local machine. The Hub Agent discussed in previous chapters is such a Hub connector application. Hub connector applications can be developed for any software that supports a GRPC enabled language.

For more information on the Cegal Hub PetrelConnector see Hub Petrel Connector

The Cegal Hub Agent is itself a connector

For more information on the Cegal Hub Agent see Hub Agent

Hub client applications#

Client applications make use of Cegal Hub Server to proxy requests to a Cegal Hub Connector.

The Cegal Hub Python client library is one example of a client application. See the Tutorials