wso2con eu 2016: our g-reg journey – from an individual rxt model, over a custom governance api...

24
Our G-Reg Journey - from an individual RXT model, over a custom governance API to a single page JS client Bernd Rehwaldt Principal IT-Consultant msg systems ag Germany

Upload: wso2-inc

Post on 13-Feb-2017

124 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

OurG-RegJourney-fromanindividualRXTmodel,overacustomgovernanceAPItoasinglepageJSclient

BerndRehwaldtPrincipalIT-ConsultantmsgsystemsagGermany

Page 2: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Star<ngpoint

JSClient

Metamodel

GovernanceAPI

G-Regjourney

Page 3: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Wheredowecomefrom?

•  LargeautomoCvecustomer•  NeedforgovernanceinsystemscommunicaCon(inhousebetween

applicaConclusters|tocustomers)•  UsingSOAapproachestablishinggovernanceprinciples,rules,

processes,tooling•  StandardizedcommunicaConbasedonSOAPwebservices•  AMer7yearsendingupinatoolinglandscapewithcommercial

productsforrunCmegovernanceandahomegrownsetoftoolscomprisingdocuments,staCcwebsiteandalotofscripCng

Page 4: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Sowhatwastheproblem?

•  Hardtokeeptrackofspecandlifecyclechanges

•  Hardtomaintainthegovernancemodel

•  NorealCmediscovery•  Manytechnologiesandlanguages

(Java,Perl,XSLT,…)•  Newrequirementscameup

–  e.g.dealingwithRestAPIs

SVN

EnterpriseServiceBus

planningIT

Website

Excel

Page 5: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Ourarchitecturalvision?

DiscoveryClient

DataSourcesDataSources

DataTargetsDataTargets

GovernanceClient

Governancepla\orm

Page 6: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Lookingforanewgovernancepla\orm?

•  InvesCgaCngIBMWebSphereRegistry&Repository(WSRR)+  Veryflexibleontologybasedmetamodeling-  Genericgovernanceclient-  Noenduserreadyclient-  Quitehighlicensecost

•  LookingforothercustomizablegovernancesoluCons•  CameupwithWSO2GovernanceRegistry(V4.6)

Page 7: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

G-RegjourneyMetamodel

Page 8: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Thecustomassetmetamodel•  Shippedgovernance(service,endpoint,…)modeldidnotfit•  Havemanagedtypes,codelistandAll-In-OneWSDLs

•  CreatedcustommodelusingRXTmechanism

WADL XML

ServiceSpec

TypeSpec

Domain

Contract

System

ServiceVersion

TypeVersion

XSD

Doc

CodeList

WADLWSDL

Type

TypeType Type

Type

Type

Type

WikiPage

Page 9: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

DefiningRXTs(#1)

•  StoragelocaCons?–  FlatStructureforeachassettype?–  Wantedtostoreassetsthatbelongtogetherin

thesameplace•  Service+ServiceSpecs+DocumentaCons+

TechnicalDefiniCons–  Havingassetswithmetadataandthosewith

binarycontent–  Issue:AnassetcannotbeacollecCon!–  SoluCon:CreaCngacollecConforeachassetthat

hasmetadataanda<asset_name>_metaasset

CollecCon(ServiceSpec)

Asset(ServiceSpec)

ServiceSpec

ServiceVersion

WSDLDoc

ServiceSpec

ServiceVersion

WSDL

Doc

Page 10: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

DefiningRXTs(#2)

•  DealingwithrelaCons?–  Have1-to-1and1-to-manyrelaCons–  HavealwaysoneleadingassetwhendefiningarelaCon–  EnsureeasynavigaConatresourceandgovernancelevel

•  AllrelaConsarebidirecConal–  Issue:AssociaConstothesameassetmaynothavethesametypename

–  SoluCon:Fixmetamodel

ServiceSpecDomain Service

Version Spec*

Service

Domain

Service

Page 11: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

GovernanceAPI

G-Regjourney

Page 12: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

InvesCgaCngexisCngG-RegAPIs

•  G-Reg4.6WebServiceAPI–  Coversallgovernanceaspects–  VeryhardtoemployfromJavaScriptclient

•  G-Reg4.6RestAPI–  Notatgovernancelevel(dealingwithresourcesandcollecCons)

•  EnterpriseStore1.0API–  CamewithJSClient–  RestAPIbuildinJaggerybutnotdocumented

Page 13: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

BuildourowngovernanceAPI

•  Requirements(funcConal)–  Generic(usableforallRXTdefiniCons)–  CompletehandlingonGovernanceLevel(includingcomments,raCngs,voCngs)–  Supportforbinaryassets(RXTswithoutcontent)–  ValidaConsupport–  OpCmizedforclientusage(associaConsupport)–  AssetretrievalwithandwithoutSOLRindexing–  Lifecyclemanagement(incl.LCconfiguraCondata,LChistory)

–  AddiConalassetspecificAPIsifneeded

Page 14: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

BuildourowngovernanceAPI

•  Requirements(nonfuncConal)–  FlexiblepaginaConandsorCng

overallanributes–  Supportofdifferent

authenCcaConmethods

•  BasicAuth

•  JWT

•  OAuth2

•  WebSeal

Client GRegAPIAPI

Gateway

User

Client GRegAPI

User

Client GRegAPI

OAuthService

User

Client GRegAPIWebSeal

User

Page 15: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

GovernanceAPIStructure(GenericAPI)Asset(s)GET assets/{type}?{start}&{size}&{limit}&{sort}&{sorder}&{query} RetrieveorsearchassetsGET asset/{type} ReturnstheRxtdefiniConGET asset/{type}/{id}/[binary] ReturnsassetdetailsPOST asset/{type}/[binary] CreatesanewassetPUT/DELETE asset/{type}/{id}/[binary] Update/DeleteexisCngassetPOST asset/{type}/validation ValidateanassetLifecycleGET asset/{type}/{id}/lc CurrentLCdataofanassetGET asset/type}/{id}/lc/history?{start}&{size} LChistoryofanassetPOST/DELETE asset/{type}/{id}/lc/{name} Atache/detacheaLCfromassetPOST/DELETE asset/{type}/{id}/lc/{name}/check/{index} Tick/unCckachecklistitemPUT asset/{type}/{id}/lc/{name}/{action} PerformsLCacCononassetTagsGET asset/tags RetrievealltagsGET asset/{type}/tags RetrievealltagsofanassettypeGET asset/{type}/{id}/tags RetrievealltagsofanassetPUT/DELETE asset/{type}/{id}/tags/{tag} Add/RemoveatagfromanassetCommentsGET asset/{type}/{id}/comments?{start}&{end} RetrievecommentsofanassetPUT/DELETE asset/{type}/{id}/comment/{cid} UpdateordeleteanexisCngcommentPOST asset/{type}/{id}/comment Addanewcommenttoanasset

Page 16: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

WhataboutG-Reg5.1GovernanceAPI?

•  Cametolate:-(•  and…

–  NoassociaConsupport–mustswitchtoresourcelevelanduseResourceRestAPI–  NovalidaConsupport(prioradd/update)–  MissingSupportforbinaryassets–  NoLCconfigdata–  OnlySolrbasedretrieveofassets–  OnlyBasicOuthsupported

Page 17: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

JSClient

G-Regjourney

Page 18: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Clientarchitecture

•  Differentclientsforuserprofiles–  Governance(manageassets,lifecycles)–  Discovery(discoverassets,postnewassets)

•  Technology–  SinglePageHTMLclient–  UsingBootstrap,AngularJS,D3.js–  BuildingAngulardirecCvesforstandardbehavior

•  Assetlifecycle•  AssetrelaConsnetwork•  Assetzoomabletreemap

Page 19: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

•  GenericLCmanagement•  Autoroutedlayout•  TransiCondialog•  Resultmessagedialogs

forfailandsuccess•  PaginatedLChistory

AngulardirecCve

assetlifecycle

Page 20: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

•  Differentnetworklayouts•  Assetsearch•  Assetbrowse•  Assetfilter•  Metadatadialogs

AngulardirecCve

assetrelaCons

Page 21: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

•  Fortreelikeassetstructures•  AnimatednavigaCons•  Assetsearch•  Metadatadialogs

AngulardirecCve

assettreemap

Page 22: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

Conclusions

•  WSO2G-Regisastrongpla\ormfordesignCmegovernance–  Hasstrongsupportformanagingcustommetamodelsandlifecycles–  RemotegovernanceAPIcurrentlyshippedwiththeproductnotsufficient

enoughforcustomJSwebclient

•  RightdecisiontorelyonWSO2G-Reg

Page 23: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

QuesCons?

Dr.BerndRehwaldtPrincipalITconsultantIT-ArchitecturemsgAppliedTechnologyResearch

e-mail:[email protected]:www.msg-systems.com

msgsystemsagSubsidiaryBerlinWinestraße3013509BerlinGermany

Page 24: WSO2Con EU 2016: Our G-Reg Journey – From an Individual RXT model,  Over a Custom Governance API to a Single Page JS Client

ThankYou!

#WSO2ConEU

Shareyourfeedbackforthissessionwso2con.com/app