Upload
wso2-inc
View
123
Download
0
Embed Size (px)
Citation preview
OurG-RegJourney-fromanindividualRXTmodel,overacustomgovernanceAPItoasinglepageJSclient
BerndRehwaldtPrincipalIT-ConsultantmsgsystemsagGermany
Star<ngpoint
JSClient
Metamodel
GovernanceAPI
G-Regjourney
Wheredowecomefrom?
• LargeautomoCvecustomer• NeedforgovernanceinsystemscommunicaCon(inhousebetween
applicaConclusters|tocustomers)• UsingSOAapproachestablishinggovernanceprinciples,rules,
processes,tooling• StandardizedcommunicaConbasedonSOAPwebservices• AMer7yearsendingupinatoolinglandscapewithcommercial
productsforrunCmegovernanceandahomegrownsetoftoolscomprisingdocuments,staCcwebsiteandalotofscripCng
Sowhatwastheproblem?
• Hardtokeeptrackofspecandlifecyclechanges
• Hardtomaintainthegovernancemodel
• NorealCmediscovery• Manytechnologiesandlanguages
(Java,Perl,XSLT,…)• Newrequirementscameup
– e.g.dealingwithRestAPIs
SVN
EnterpriseServiceBus
planningIT
Website
Excel
Ourarchitecturalvision?
DiscoveryClient
DataSourcesDataSources
DataTargetsDataTargets
GovernanceClient
Governancepla\orm
Lookingforanewgovernancepla\orm?
• InvesCgaCngIBMWebSphereRegistry&Repository(WSRR)+ Veryflexibleontologybasedmetamodeling- Genericgovernanceclient- Noenduserreadyclient- Quitehighlicensecost
• LookingforothercustomizablegovernancesoluCons• CameupwithWSO2GovernanceRegistry(V4.6)
G-RegjourneyMetamodel
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
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
DefiningRXTs(#2)
• DealingwithrelaCons?– Have1-to-1and1-to-manyrelaCons– HavealwaysoneleadingassetwhendefiningarelaCon– EnsureeasynavigaConatresourceandgovernancelevel
• AllrelaConsarebidirecConal– Issue:AssociaConstothesameassetmaynothavethesametypename
– SoluCon:Fixmetamodel
ServiceSpecDomain Service
Version Spec*
Service
Domain
Service
GovernanceAPI
G-Regjourney
InvesCgaCngexisCngG-RegAPIs
• G-Reg4.6WebServiceAPI– Coversallgovernanceaspects– VeryhardtoemployfromJavaScriptclient
• G-Reg4.6RestAPI– Notatgovernancelevel(dealingwithresourcesandcollecCons)
• EnterpriseStore1.0API– CamewithJSClient– RestAPIbuildinJaggerybutnotdocumented
BuildourowngovernanceAPI
• Requirements(funcConal)– Generic(usableforallRXTdefiniCons)– CompletehandlingonGovernanceLevel(includingcomments,raCngs,voCngs)– Supportforbinaryassets(RXTswithoutcontent)– ValidaConsupport– OpCmizedforclientusage(associaConsupport)– AssetretrievalwithandwithoutSOLRindexing– Lifecyclemanagement(incl.LCconfiguraCondata,LChistory)
– AddiConalassetspecificAPIsifneeded
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
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
WhataboutG-Reg5.1GovernanceAPI?
• Cametolate:-(• and…
– NoassociaConsupport–mustswitchtoresourcelevelanduseResourceRestAPI– NovalidaConsupport(prioradd/update)– MissingSupportforbinaryassets– NoLCconfigdata– OnlySolrbasedretrieveofassets– OnlyBasicOuthsupported
JSClient
G-Regjourney
Clientarchitecture
• Differentclientsforuserprofiles– Governance(manageassets,lifecycles)– Discovery(discoverassets,postnewassets)
• Technology– SinglePageHTMLclient– UsingBootstrap,AngularJS,D3.js– BuildingAngulardirecCvesforstandardbehavior
• Assetlifecycle• AssetrelaConsnetwork• Assetzoomabletreemap
• GenericLCmanagement• Autoroutedlayout• TransiCondialog• Resultmessagedialogs
forfailandsuccess• PaginatedLChistory
AngulardirecCve
assetlifecycle
• Differentnetworklayouts• Assetsearch• Assetbrowse• Assetfilter• Metadatadialogs
AngulardirecCve
assetrelaCons
• Fortreelikeassetstructures• AnimatednavigaCons• Assetsearch• Metadatadialogs
AngulardirecCve
assettreemap
Conclusions
• WSO2G-Regisastrongpla\ormfordesignCmegovernance– Hasstrongsupportformanagingcustommetamodelsandlifecycles– RemotegovernanceAPIcurrentlyshippedwiththeproductnotsufficient
enoughforcustomJSwebclient
• RightdecisiontorelyonWSO2G-Reg
QuesCons?
Dr.BerndRehwaldtPrincipalITconsultantIT-ArchitecturemsgAppliedTechnologyResearch
e-mail:[email protected]:www.msg-systems.com
msgsystemsagSubsidiaryBerlinWinestraße3013509BerlinGermany
ThankYou!
#WSO2ConEU
Shareyourfeedbackforthissessionwso2con.com/app