170 likes | 276 Vues
This proposal outlines a straightforward approach for publishing WSRP Producers and Portlets as business services in UDDI. It suggests categorizing these services effectively and emphasizes a minimalistic structure, utilizing only essential tModels and bindings. The proposal provides two approaches for referencing and publishing WSRP services, focusing on ease of discovery and extension. Proposed structures for Producer and Portlet business services are included, ensuring clear references and straightforward access points, facilitating a seamless integration into existing UDDI frameworks.
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)