Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Open-O Client Project Proposal Version 1.0 Reviewed Draft Client: Tao Shen (CMCC) GUI: Seshu Kumar M (Huawei ) CLI: Kanagaraj Manickam (Huawei) Overview • Project Name : Client • Repository Name : Client • Project Description – This project aims to provide an unified GUI and CLI for the Open-O functionalities provided over RESTful API. In addition, it provides java & js sdk for Open-O services. • Project Participants – China Mobile, Huawei, ZTE Architecture Alignment Client GUI CLI JS sdk Java sdk Orchestrator Service Global Service-O Common Service SDN-O NFV-O Driver TOOLs GUI One Portal to command whole Open-O !! GUI: Problem Statement • OPEN-O Portal currently is not unified and no common framework is provided for the individual pages. • No rules and restrictions defined on UCD or usability. • Hence OPEN-O currently has a difference in look and feel between the pages from different partners. GUI: Solution • Strong extensibility of functional modules – • Low dependence on operation system – • The Client project adopts HTML and Javascript technology to reduce dependence on operation system. Portal applications can be deployed to the web server more simply and implement orchestrator services by calling RESTful APIs. Offering identical presentation style – • The Client project can add or delete function modules more easily. Portal applications can be decoupled from each orchestrator so that developers can work independently and integrate function modules into the Client system for nointerference. The common module defines coherent presentation style for other functional modules as the framework of Client system. Function modules can import defined style without concern of details to give users a sense of uniformity. Providing third-party software – The common module can import open source third-party software as developers need. It means that the third-party software can be managed by Client framework to avoid repeated import. GUI Single Dashboard OPEN-O Dashboard 1. Main page for all the views needed for the OPEN-O User 2. Hop based interlinking between the different portals. OPEN-O Server 3. Easy to integrate the new portal pages and plug & play GUI Framework Browser Models (Widgets, like the combo, text box, check box, radio, tree, table,) HTML object CSS object Event and error handling 1. Message dialog 2. Confirmation dialog 3. Warn, error, info dialog Pre defined Operation 1. Workflow, step1, step2, step3 2. Create , modify 3. Delete GUI Framework User Operation Browser as view GUI Templates Mustache js Data binding Update Base for the MVC Update Model Controller Notify Angular JS GUI: Proposed Solution GUI New HTML CSS Model Java Script (Angular JS) Existing XmlHttpRequest based request GSO SGW (App Server on NodeJS) Driver SDNO REST request NFVO GUI: Advantages • We will have the look and feel everywhere in the OPEN-O application • Easy to develop the Portal and will reduce the effort for the developers • There is a defined place for all the functionality and if any error occur, stabilizing is much faster • Even a non experienced person can use it better and can implement intended business logic • We will have extension scope much better, i.e., if required portability of the UI will be much better to a new technology. CLI One Command to command whole Open-O !! Why CLI/SDK needed ? CLI: – Helps to automation – Helps to expand Open-O eco-system • Existing operator environment • New Business 3rd party integration – operator-friendly – concise/powerful SDK (java api): – Helps to avoid code-duplication/re-implementation – Detects the REST API version/schema changes at compile time itself, than run-time – 1:1 mapping between REST API and java api CLI: Problems faced in Sun release are addressed ! – Problem: When micro-service (A) is used by more than one micro-services, say, B & C, both of these services re-implemented/repeated the integration code for service A. in sun release, ESR and DM services got integrated by many services and each of them re-implemented (copied) the code across. Solution: As every micro-service provides sdk jars, dependent micro-services could directly use it via maven dependency, instead of re-implement/repeating the code (copy & paste) This will completely avoid maintenance over-head introduced in sun release – Problem: When a micro-service (A) depends on another micro-service (B), and when B changes the REST API, A will fail when user runs it. This has become a BIG blocker issue in CMCC lab during sun release time. Solution: As part of CLI project, each micro-service would provide an java client library jar (SDK), which is auto-generated from swagger.json of that micro-service. So when changes made in REST API of micro-service A, automatically B will fail as listed below: • Now B uses A sdk to connect to A using mvn dependency, instead of re-implementing the integration. • A changes REST API • A sdk jar got auto-updated (changes in java method signature/model change, etc) • Now Mvn build of B will break as dependent A sdk jar is changed. • Developer will fix B to use updated A sdk jar. This problem is identified in compile time than run time. (early detection and recovery) CLI: Birds-view Open-o GUI GSO SDK GSO developer NFVO SDK Open-o CLI Com SDK admin New Projects Sdk = java/js api library SDNO NFVO COMMONO Preferred by CLI admin GUI user SDK (java lib) developer Microservice SDK MSB SDNO SDK Open-O API gateway user Microservice SDK interface Microservice SDK Microservice SDK Micro-service Micro-service Micro-service Micro-service Micro-service CLIENT Client: Project details • Contact person – • • Both CLI and GUI projects will be governed under new project called ‘client’ Following sub-projects are provided: – – • • [email protected] (PTL) Initial Committers – CMCC : – Huawei : • Openo-gui : For GUI project Openo-cli : For CLI project • • • • Using swagger, each service would be enabled to generate version-specific-java library/jar (sdk) – [email protected] (GUI) [email protected] (CLI) [email protected] [email protected] ZTE : • • • • [email protected] [email protected] [email protected] [email protected] Developers committed to the project – CMCC : – Huawei : • • • • – [email protected] [email protected] [email protected] [email protected] ZTE : • • [email protected] [email protected] s Thanks Open-O Team