Skip to content

Commit

Permalink
Updates to suit the recent changes to OVE core
Browse files Browse the repository at this point in the history
  • Loading branch information
Senaka Fernando committed Sep 4, 2019
1 parent 443d2ad commit 10ab22d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion docs/APP_DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ window.ove.frame.on(function (message) {
window.ove.frame.send(target, message, appId);
```

The `message` argument represents a JSON serializable object in both methods. The `target` argument can be one of `Constants.Frame.PEER` or `Constants.Frame.CHILD`, and the optional `appId` argument identifies the target application. If `window.ove.frame.on` has not been set, all messages would be received by `window.ove.socket.on`. These methods can be used to develop controllers that support interactive operations such as [**linking and brushing**](https://link.springer.com/referenceworkentry/10.1007/978-0-387-39940-9_1129), across a number of different application instances or types.
The `message` argument represents a JSON serializable object in both methods. The `target` argument can be one of `Constants.Frame.PARENT`, `Constants.Frame.PEER` or `Constants.Frame.CHILD`, and the optional `appId` argument identifies the target application. If `window.ove.frame.on` has not been set, all messages would be received by `window.ove.socket.on`. These methods can be used to develop controllers that support interactive operations such as [**linking and brushing**](https://link.springer.com/referenceworkentry/10.1007/978-0-387-39940-9_1129), across a number of different application instances or types.

## Embedding OVE within an existing web application

Expand Down
10 changes: 8 additions & 2 deletions docs/BASIC_CONCEPTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ In addition to these *views*, `apps` may present a *control* page that can be ac

When the `iframe` representing a `section` is created, its `margin` CSS property is used to position it correctly, and the `window.ove.geometry` object is set so that each `instance` of an `app` running within each `iframe` can determine what to display.

## High availability of server-side application components
## Peer nodes of OVE core

OVE provides a [Persistence Service](../ove-services/packages/ove-service-persistence-inmemory/README.md) which can be used to replicate server-side state among peers. This service can be registered with OVE core or any OVE application as explained in the [documentation](../ove-services/packages/ove-service-persistence-inmemory/README.md). OVE core also accepts registration of `peer` nodes using the `http://OVE_CORE_HOST:PORT/peers` API method. Once registered OVE peers will cross-post messages that are broadcasted using WebSockets.
OVE core accepts registration of `peer` nodes using the `http://OVE_CORE_HOST:PORT/peers` API method. Once registered OVE peers will cross-post messages that are broadcasted using WebSockets. Peer nodes of OVE serve two purposes, high availability (HA) or distribution of workload.

For a HA deployment, OVE also provides a [Persistence Service](../ove-services/packages/ove-service-persistence-inmemory/README.md) which can be used to replicate server-side state among peers. This service can be registered with OVE core or any OVE application as explained in the [documentation](../ove-services/packages/ove-service-persistence-inmemory/README.md). In a HA deployment each peer can take up the role of being the master and therefore they can also be fronted by a load balancer.

In terms of distributing workload, OVE is capable of offloading the messaging subsystem to a different peer either for a single app or a group of apps. OVE can have any number of such peers as long as they are registered and they would all be in sync with the master. Unlike in a HA deployment, these peers are slaves and cannot be fronted by a load balancer as they would be serving dedicated apps.

All peer-to-peer communication use WebSockets.

0 comments on commit 10ab22d

Please sign in to comment.