150 likes | 264 Views
Open SPP Architecture Notes. 30 May 2011. Scope. Registry High level architecture concerns Repository and other elements not in scope. System Architecture. SPP. Registry To Registry. Registry. Registry. SPP. SPP. domain. Registry To Repository. Local Repository. Local
E N D
Open SPP Architecture Notes 30 May 2011
Scope • Registry • High level architecture concerns • Repository and other elements not in scope
System Architecture SPP Registry To Registry Registry Registry SPP SPP domain Registry To Repository Local Repository Local Repository SBE LUF ENUM SBE SBE Based on draft-ietf-drinks-spprov-07
SPP to Registry SPPP as service and as batch, provision SED data Registry to Repository Batch updates of LUF data Updates partial, incremental and full Versioning Registry to Registry [propose] SPPP – share SED data SBE to Repository [ LUF ] ENUM System Interfaces
Non-Functional Requirements • Consistency • Must provide all clients consistent query results or replication data for SED records • Integrity • SED records must never be corrupt • Persistence • SED records maintained for their lifetime in persistent storage. The registry is the authoritative source of SED data. • Availability • Can be supported through fail over mechanisms of the server infrastructure • Not high availability [ compared to repository]
Non-Functional Requirements • Request Scalability • does not typically support a large number of simultaneous provisioning SPPs • Data Scalability • Must support a large number of SED records – especially PublicIdentifiers • [AI – to set benchmark] • Throughput • Draft mentioned near real-time • [AI – to set benchmark]
Security Requirements • Authentication • WS Envelope protocols – such as SOAP WS-Security support digest and certificate • Authorization • Should define model [ RBAC] , granularity • Message Integrity • WS Envelope support • Batch File Integrity • More serious threat
Non-Functional Requirements • Federation • Mechanism for multiple Registries to cooperate • Multiple registries to a repository ? • Extensibility • Not defined at this point
Registry Interfaces & Components SED Replicator SPPP Batch LUF SPPP SED Replication Compiler SPPP Impl SPPP Batch LUF Simulator Registry To Repository Common RequestModel Defined By XSD In draft SPPP Command Processor SED Data Model Persistence
Registry SPPP • SPPP Service interface • Request oriented • Decoupled from client [SPP] • Stateless • Ease of client development • SPPP Batch interface • File [ script] oriented • Support very large files [ especially PublicIdentifiers] • separate file transport [ ftp ? ] to known protocol • Scripting • Checkpointing / stateful
Object Model Organization n Destination Group Route Group n 1 0 0 1 n n Public Identifier Route Record
Separation of Concerns • Service Interface implementation • Service implementation uses container services • Web Service envelope implementation • Execution context, connections, resources, security • SPPP Command Processor • Interprets the commands as defined in XSD • SED Data Model • Manipulates persistentSED Objects • Uses persistence interface • Manages Sessions, transactions • Persistence • mapping layer to database and cache[ orm or any other underlying model ]
Reference ImplementationOpenSPP • Server for SPPP Service Interface • SOAP Based • Java 6, JAX-WS stack • Requests defined in XSD • SPPP Impl • JAX WS Web Method • Dispatches request to SPPP Command Processor by reflection
Initial Component Design Thoughts • SPPP Impl • JAX WS Web Method • SPPP commands defined by XSD in WSDL – received as strongly typed JAXB objects with hierarchy and polymorphism • Dispatches request to SPPP Command Processor by reflection • Handles context and WS protocol issues • Gets authentication result • Authorization enforcement
Initial Component Design Thoughts • SPPP Command Processor • Stateless method • Validates the request • Invokes data model methods to implement command • SED Data Model • Interprets method to manipulate persistent entities and components • Logical queries interpreted as specific queries to persistence • Logical command methods implemented using Object lifecycle CRUD methods • For relational – may use Hibernate OR/M • Handles session and transaction management