...
Additional views can be injected into the GUI at runtime. Each view has a unique identifier (e.g. "myviewid"). Client The following convention should be used to place client-side resources should be placed in the .oar file using the following convention:
|
+-- resources
| +-- {UiExtId}
| +-- css.html
| +-- js.html
|
+-- webapp
+-- app
+-- view
+-- {viewid1}
| +-- *.css
| +-- *.html
| +-- *.js
|
+-- {viewid2}
+-- *.css
+-- *.html
+-- *.js
where UiExtId is the unique ID of the UiExtension instance, and viewid1 and viewid2 are the unique IDs of the views provided by the extension.
Server-Side Architecture
The main artifact supporting the ONOS GUI on the server-side is the UiExtensionService. The following figure illustrates the relationship between the "service", the implementing "manager", and how the "core UI extension" is composed...
Under review from here down.....
Topology Model (to be moved to another page)
...
When a link event arrives, a lookup is done to see if the "parent" object for that link already exists.
Server-Side Architecture
Websocket Servlet
When the topology view is loaded it makes an HTTP request to ws://<server>/onos/ui/ws/topology
URL. This requests gets upgraded into a Web-Socket, thus establishing a symmetric and persistent connection between the client and the server. On the server side, this process is facilitated by GuiWebSocketServlet
, which extends Jetty WebSocketServlet
and results in creation of a session-specific TopologyViewWebSocket
instance. This instance holds the necessary session-state for interacting with this specific client.
...