This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lsoapi:documents:architecture [2015/08/24 20:58] Steven Saunders |
lsoapi:documents:architecture [2015/09/11 21:00] (current) Kevin Luehrs |
||
---|---|---|---|
Line 36: | Line 36: | ||
* **tomcat** to serve lsoapi .war files | * **tomcat** to serve lsoapi .war files | ||
* **JAXRS/Jersey** for REST interactions | * **JAXRS/Jersey** for REST interactions | ||
- | * see lsoapi/README.md for detailed instruction on installing these technologies | + | * //see lsoapi/README.md for detailed instruction on installing these technologies// |
In addition of you need to run the OpenDaylight UNI-Manager emulator, the following dependencies come into play | In addition of you need to run the OpenDaylight UNI-Manager emulator, the following dependencies come into play | ||
* **nodejs/npm** to install dependencies for and run the UNI-Manager emulator nodejs app | * **nodejs/npm** to install dependencies for and run the UNI-Manager emulator nodejs app | ||
+ | * //see lsoapi/README.md for detailed instruction on installing these technologies// | ||
Finally, if you decide to run the demo-ui, the following dependencies come into play | Finally, if you decide to run the demo-ui, the following dependencies come into play | ||
Line 45: | Line 46: | ||
* **bower** to install front end web UI dependencies (like angular) | * **bower** to install front end web UI dependencies (like angular) | ||
* **grunt** for front end web UI preprocessing tasks (like less to css) | * **grunt** for front end web UI preprocessing tasks (like less to css) | ||
- | * see lsoapi/demo-ui/README.md for detailed instruction on installing these technologies | + | * //see lsoapi/demo-ui/README.md for detailed instruction on installing these technologies// |
=== Code Organization === | === Code Organization === | ||
Line 65: | Line 66: | ||
<unibase> ... UNI code unrelated to providing REST services | <unibase> ... UNI code unrelated to providing REST services | ||
<unimgr> .... OpenDaylight UNI Manger Emulator | <unimgr> .... OpenDaylight UNI Manger Emulator | ||
+ | | ||
+ | == A closer look at the directory structures == | ||
+ | |||
+ | In general, the <xxxbase> and <xxxmgr> directories (where **xxx** is __cos__, __svc__, __evc__, and __uni__, are organized in the same manner, as described below. | ||
+ | |||
+ | __<xxxbase>__ | ||
+ | |||
+ | __<xxxbase>__ directories contain code that supports the definition and management of MEF entities, but contain no code specific to providing the REST service layer for that entity. The build result in a __xxxbase.jar__ file for each <xxxbase> directory that can be (and is) used by any of the service layers, which is why they are packaged in a seperate .jar file. | ||
+ | |||
+ | The contents of the __<xxxbase>__ directory in general is structured as follows: | ||
+ | (again, remember that **xxx** represents a MEF entity, specifically : cos, or evc, or svc, or uni) | ||
+ | |||
+ | <xxxbase>/src/main/java/com/cablelabs/vcpe/xxx/xxxbase/ | ||
+ | <client> ...... code supporting the sending of REST messages to the xxx server | ||
+ | <model> ....... defines the xxx class with accompanying MEF attributes | ||
+ | <repository> .. data store for xxx entities | ||
+ | | ||
+ | __<xxxmgr>__ | ||
+ | |||
+ | __<xxxmgr>__ directories contain code that supports the actual RESTFUL service for each MEF entity. The code in contained in __<xxxmgr>__ may have dependencies on any of the __<xxxbase>__ .jar files (for example __<evcmgr>__ is dependent upon __<cosbase>__ in order to make rest calls the the **cosmgr** REST server. | ||
+ | |||
+ | The contents of the __<xxxmgr>__ directory in general is structured as follows: | ||
+ | |||
+ | xxxmgr/src/main/java/com/cablelabs/vcpe/xxx/xxxmgr/*.java ... contains code for serving xxx rest requests | ||
+ | | ||
+ | == UNI manager emulator == | ||
+ | |||
+ | The one exception the the directory structures defined above is <unimgr> directory. The lsoapi service layers do NOT include a UNI service layer (i.e. UNI manager), but rather, the UNI Manager will be contained within OpenDaylight. | ||
+ | |||
+ | However, the lsoapi code base does provide a nodejs UNI Manager Emulator, which can receive and process all REST messages defined by the ODL UNI Manager northbound interface. The emulator can be useful if you do not have OpenDaylight installed on you development machine, but you would like to test the UNI Northbound REST API messaging. | ||
+ | |||
+ | Specifically, the <evcmgr> code consumes the ODL Uni manager northbound REST interface (i.e. it makes NETCONF REST calls to OpenDaylight, which can be alternately served by the emulator). | ||
+ | |||
+ | The details for configuring and running the emulator can be found in the lsoapi/README.md file | ||
+ | |||
+ | Return to [[https://wiki.opnfv.org/lsoapi| main project page]] | ||
+ | |