170 likes | 262 Views
WSRP-UDDI Straw Man Richard Jacob WSRP-PFB SC. Publishing Producers – basic ideas. Publish WSRP Producer as a businessService Categorize this businessService as being of type WSRP-Producer
E N D
Publishing Producers – basic ideas • Publish WSRP Producer as a businessService • Categorize this businessService as being of type WSRP-Producer • Use simple approach to publish the URL of service-WSDL and then use the service’s DescriptionInterface for further discovery • At the beginning use an approach as simple as possible, perhaps with minimum amount of tModels and other structures needed. • Proposal should allow easy extension to the UDDI-WSDL documents
Producer <businessService> <Name=…/> <Description=…/> <categoryBag> <keyedReference> tModelKey=… keyName=“WSRP Type” keyValue=“Producer” <tModel> <Name=WSRP Type/> Unchecked Categorization KeyValues would be Producer or Portlet, later might be even PortletApplication <bindingTemplate> <accessPoint=“http://your.com/service.wsdl”/> <tModelInstanceDetails> ..tModelKey=… <tModel> <wsrp_v1_bindings wsdl/> Type: wsdlSpec To indicate it implements the wsrp wsdl Publishing Producers – approach 1
Publishing Portlets – basic ideas • Publish Portlet as a businessService • Categorize this businessService as being of type WSRP Portlet • Need to publish the Portlet handle somehow • Need to reference the Producer the Portlet belongs to • This could be done in two ways: • Either pointer to the Producer’s wsdl • Or reference within the directory to the Producer entity (seems better to me) • Try to keep it as simple as possible with minimum amount of tModels and other structures needed
Portlet <businessService> <Name=…/> <Description=…/> <categoryBag> <keyedReference> tModelKey=… keyName=“WSRP Type” keyValue=“Portlet” <keyedReference> tModelKey=… keyName=“WSRP Producer Ref” kevValue=“Producer Business Service Key” <tModel> <Name=WSRP Type/> Unchecked Categorization KeyValues would be Producer or Portlet, later might be even PortletApplication <tModel> <Name=WSRP Producer Ref/> Unchecked Categorization KeyValues would be the Producer’s businessService Key <bindingTemplate> <accessPoint=“PortletHandlel”/> Publishing Portlets – approach 1 Note: same tModel as used for Producer categorization
Approach 1 – summary/questions/… • 3 tModels used in total • No redundant information about wsdl, just stored on the producer entity (seems to be natural), Portlets refer to Producer • WSRP Type tModel • Is it sufficient for searching WSRP Producer/Portlets? • Could it be a checked categorization allowing only distinct values? • Producer’s bindingTemplate • tModelInstanceKey references the wsrp-wsdl tModel to indicate a wsrp impl • Do we need this if we have the categorization WSRP Type tModel? • It could be defined as UDDI-tn-v2, Appendix a (external wsdl documents) • Here UDDI defines a WSDL Address tModel to indicate the accessPoint is not an actual access point but the service wsdl URL, do we need that? • Contradiction to UDDI-WSDL proposals (v1 and v2) • We would have one tModel for the WSRP wsdl (containing 4 bindings/portTypes) • While UDDI defines that for each binding/porttype there should be one tModel… • Also UDDI says there must be one bindingTemplate for each portType used (don’t see really why in this case) • Producer Reference tModel • How easy is it to find the businessService entity in UDDI the Portlet businessService is pointing to? • Better ways to add such a reference? • This model could be easily extended to the WSDL-UDDI best practices/technical note proposals
Producer <businessService> <Name=…/> <Description=…/> … <tModel> <Name=WSRP Producer/> This tModel indicates that this businessService is a WSRP Producer <bindingTemplate> <accessPoint=“http://your.com/service.wsdl”/> <tModelInstanceDetails> <tModelInstanceInfo> tModelKey=… <tModelInstanceInfo> tModelKey=… <tModel> <wsrp_v1_bindings wsdl/> Type: wsdlSpec To indicate it implements the V1 wsrp wsdl Publishing Producers – Approach 2
Portlet <businessService> <Name=…/> <Description=…/> <categoryBag> <keyedReference> tModelKey=… keyName=“WSRP Producer Ref” kevValue=“Producer Business Service Key” <tModel> <Name=WSRP Producer Service Ref/> Unchecked Categorization KeyValues would be the Producer’s businessService Key Allows to find Producer in Registry <tModel> <Name=WSRP Portlet/> This tModel indicates that this businessService is a WSRP Portlet <bindingTemplate> <accessPoint=“PortletHandle”/> <tModelInstanceDetails> <tModelInstanceInfo> tModelKey=… Publishing Portlets (optional) – Approach 2
Approach 2 – data structuresProducer’s businessService <businessService serviceKey=“…“ businessKey=“…"> <name xml:lang=“en”>Example Producer</name> <description xml:lang=“en”>Producer description</description> <bindingTemplates> see next page </bindingTemplates> </businessService> • may contain multiple name values (at least one), each accompanied with a unique xml:lang value (required) • May contain multiple description values, each adorned with a unique xml:lang value (optional) • Contains at a minimum one binding template holding the access point to the service wsdl (required)
Approach 2 – data structuresProducer’s wsdl address bindingTemplate <bindingTemplate bindingKey=“…” serviceKey=“…”> <description xml:lang=“en”>Binding description</description> <accessPoint URLType=“other”>http://url-to-your-service-wsdl.wsdl</accessPoint> <tModelInstanceDetails> <tModelInstanceInfo> tModelKey=“key of wsrp_v1_bindings.wsdl tModel” </tModelInstanceInfo> <tModelInstanceInfo> tModelKey=“key of WSRP Producer tModel” </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplate> • May contain multiple description values, each adorned with a unique xml:lang value (optional) • accessPoint holds URL of service WSDL (required) • References two tModels • Wsrp_v1_bindings.wsdl to indicate that producer implements V1 of WSRP (required) • WSRP Producer tModel to point out the businessService is a WSRP Producer (required)
Approach 2 – data structuresPortlet’s businessService <businessService serviceKey=“…“ businessKey=“…"> <name xml:lang=“en”>Example Portlet</name> <description xml:lang=“en”>Portlet description</description> <bindingTemplates> see next page </bindingTemplates> <categoryBag> <keyedReference tModelKey=“WSRP Producer Service Reference tModel’s key” keyName=“WSRP Producer Service Reference” keyValue=“Producer’s businessService key” /> </categoryBag> </businessService> • may contain multiple name values (at least one), each accompanied with a unique xml:lang value (required), we may want to define a mapping to PortletDescription.title? • May contain multiple description values, each adorned with a unique xml:lang value (optional), we may want to define a mapping to PortletDescription.Description • Contains at a minimum one binding template where the accessPoint holds the Portlet handle (required) • categoryBag holds reference to the businessService entity of the Producer, thus allowing to find out the wsdl location of the producer
Approach 2 – data structuresPortlet’s wsdl address bindingTemplate <bindingTemplate bindingKey=“…” serviceKey=“…”> <description xml:lang=“en”>Binding description</description> <accessPoint URLType=“other”> portlet_handle_comes_in_here </accessPoint> <tModelInstanceDetails> <tModelInstanceInfo> tModelKey=“key of WSRP Portlet tModel” </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplate> • May contain multiple description values, each adorned with a unique xml:lang value (optional) • accessPoint holds URL of service WSDL (required) • References one tModel • WSRP Portlet tModel to point out the businessService is a WSRP Portlet (required)
Approach 2 – data structuresWSRP v1 bindings wsdl tModel <tModel tModelKey="..."> <name>urn:oasis:names:tc:wsrp:v1:bindings </name> <description xml:lang="en"> The WSRP V1 WSDL containing the bindings </description> <overviewDoc> <description xml:lang="en">WSDL source document.</description> <overviewURL> http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_bindings.wsdl </overviewURL> </overviewDoc> <categoryBag> <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="wsdlSpec"/> </categoryBag> </tModel> • Name is a uri to wsrp namespace (required) • May contain multiple description values, each adorned with a unique xml:lang value (optional) • overviewURL points to our V1 bindings wsdl (required) • References one tModel • UDDI types tModel indicating that this technical fingerprint is expressed by WSDL • Published once by the WSRP TC (in public UDDI case)
Approach 2 – data structuresWSRP Producer tModel <tModel tModelKey="..."> <name>urn:oasis:names:tc:wsrp:v1:producer </name> <description xml:lang="en"> The WSRP V1 Producer </description> <overviewDoc> <description xml:lang="en">Description of that tModel.</description> <overviewURL> URL to the WSRP-UDDI document we will produce </overviewURL> </overviewDoc> </tModel> • Name is a uri to wsrp namespace (required) • May contain multiple description values, each adorned with a unique xml:lang value (optional) • overviewURL points to our WSRP-UDDI document (optional) • Published once by the WSRP TC (in public UDDI case)
Approach 2 – data structuresWSRP Portlet tModel <tModel tModelKey="..."> <name>urn:oasis:names:tc:wsrp:v1:portlet</name> <description xml:lang="en"> The WSRP V1 Portlet </description> <overviewDoc> <description xml:lang="en">Description of that tModel.</description> <overviewURL> URL to the WSRP-UDDI document we will produce </overviewURL> </overviewDoc> </tModel> • Name is a uri to wsrp namespace (required) • May contain multiple description values, each adorned with a unique xml:lang value (optional) • overviewURL points to our WSRP-UDDI document (optional) • Published once by the WSRP TC (in public UDDI case)
Approach 2 – data structuresWSRP Producer Reference tModel <tModel tModelKey="..."> <name>urn:oasis:names:tc:wsrp:v1:producer reference</name> <description xml:lang="en"> Reference to the Producer’s businessService key </description> <overviewDoc> <description xml:lang="en">Description of that tModel.</description> <overviewURL> URL to the WSRP-UDDI document we will produce </overviewURL> </overviewDoc> <categoryBag> <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyValue="unchecked"/> <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyValue="categorization"/> </categoryBag> </tModel> • Name is a uri to wsrp namespace (required) • May contain multiple description values, each adorned with a unique xml:lang value (optional) • overviewURL points to our WSRP-UDDI document (optional) • References two tModels • UDDI categorization tModel indicating that this tModel is a categorization tModel • UDDI unchecked tModel indicating the that the values are not being checked • Published once by the WSRP TC (in public UDDI case)