`
endual
  • 浏览: 3558185 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

juddi操作界面的基本使用(转载)

 
阅读更多


文章分类:Web前端

转自链接:http://www.cnblogs.com/kangjj22/archive/2009/01/09/1372394.html 

这一段时间快被这个晕死人的软件工程大作业折腾死了,总体感觉倒也不是说有多难,但理解这个juddi做的接口要uddi基础知识,像我这样菜鸟级用户,连web service都没怎么听说过,摸到门都花了好多时间和精力。网上这方面的资料实在是太少了,中文的帖子全是讲juddi的安装配置的,而且都是转来转去的,有的安装时遇到的关键[size=medium][/size]性的问题都没有人回答,英文都说实话又看不太进去...= =诶诶诶~ 

由于参考资料少,又没有花太多心思去读,我们一开始绕到 IBM的uddi4j上去了,花了半天调试通了能够findBusiness了,总算对uddi有了一个初步的概念。但是这段路也算是个小小的弯路吧~后来才意识到uddi4j的那个测试的代码和juddi的jsp界面提供的应该都是注册和查询服务等的API,晕~真够笨的。 

现在差不多把这个作业弄了大半部分了,自己先做个初步的总结,留在这里备忘。 

0.老师给的课程作业要求 

基于JUDDI的WEB服务注册中心,增加WEB服务非功能属性描述模块。利用第1组从WORDNET获取的语义信息在JUDDI注册中心查询用户需要的服务, 查询利用JUDDI的查询API自动完成。(并可根据查询结果对服务进行进一步分类,包括严格按功能、输入/输出的个数、类型完全一致和部分一致的分类.) 

JUDDI是Apache基金会下Web Services小组的一个开源项目,也是基于java并且符合UDDI规范的实现。主要具有以下特点: 

开放源代码,底层包可以采用jdk1.3及其以后版本(后来证明juddi是不完全支持JDK1.6的,这一点上花了太多的时间,好在丁丁同学目光如炬),具有平台无关性; 

后台数据库可以采用任何支持ANSI标准的数据库,例如MySQL,DB2等; 

可以将其发布到任何支持Servlet2.3标准的java应用服务器上,例如JakartaTomcat, WebSphere,WebLogic等; 



1.安装 
网上说安装的帖子很多,基本流程还是对的,我这里主要参考了http://www.cnblogs.com/kevin- wu/archive/2007/05/21/754157.html 这篇帖子 
但是一定要注意JDK版本不能是1.6 ,因为如果是JDK1.6,在测试安装是否成功的页面http://localhost:8080/juddi/happyjuddi.jsp 时,就会有SOAPMessage和SAXParserFactory两个类Found in an unknown location,其中SOAPMessage还是很重要的,应该是和SOAP通信有关,如果找不到就会导致后面findBusiness等不能执行,出现fault string and possibly fault code is not set的错误,网上提问的很多但都没有找到答案,这里要鸣谢丁丁同学,不然后面都做不下去了。 

如果运行环境是JRE1.5的版本那么这个包就能找到 
Looking for: javax.xml.soap.SOAPMessage 
+Found in: D:/Program Files/Tomcat/webapps/juddi/WEB-INF/lib/saaj.jar 

2.使用 
观察到 Tomcat/webapps/juddi/console目录下的jsp文件,每个api都用一个jsp文件实现,最终都提交表单到 controller.jsp文件。对这个controller.jsp,它内部实现了SOAP的一些通信机制,这里我们没有深究,只是简单地把它拿来用。 

我们在数据库中设计了一个service的非功能属性的table用来拓展juddi功能 
USE juddi; 

CREATE TABLE service_quality ( 
  SERVICE_KEY varchar(41), 
  PRICE varchar(10), 
  USER_VALUATION varchar(5), 
  EXECUTE_TIME varchar(10), 
  RELIABILITY varchar(5), 
  APPLICABILITY varchar(5), 
  LANGUAGE varchar(10), 
  SECURITY varchar(5), 
   PRIMARY KEY  (SERVICE_KEY) 
); 


下一步要解决的是 
改动这个目录下的API,查找服务时既能查出原有的服务的属性,又能查出我们新加入的非功能属性。 
简单分析了一下(这里可能会有不确切的地方),要注册一个服务,首先要得到一个authToken,然后根据它注册bussinessEntity信息,然后注册tModel信息,最后注册service信息。 

2.1 get_authToken 
打开 http://localhost:8080/juddi/console/get_authToken.jsp,可以看到默认提交的表单是一个SOAP 请求,代码表示它将soap_request传递给controller.jsp,然后将返回的消息responseMessage显示在下面的文本区中。***表示可能需要填写的部分,在这里*号部分是我们要提交的内容userID和cred,如果用户名userID不正确则会返回一个SOAP应答,但是cred随便填一个数也能得到authToken,不知道是为什么了。填写juddi和juddi,然后submit,得到一个authToken,即authToken:8FE01220-DD7D-11DD-ADFB-B7B7EF162770。 

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <authToken generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <authInfo>authToken:8FE01220-DD7D-11DD-ADFB-B7B7EF162770</authInfo> 
  </authToken> 
</soapenv:Body> 
</soapenv:Envelope> 

2.2 save_business 
get_authToken中的authToken:8FE01220-DD7D-11DD-ADFB-B7B7EF162770这一行覆盖<authInfo>后面的*,记得<name>属性是必填的,其他好像都是可选的 

输入 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <save_business generic="2.0" xmlns="urn:uddi-org:api_v2"> 
      <authInfo>authToken:8FE01220-DD7D-11DD-ADFB-B7B7EF162770</authInfo> 
      <businessEntity businessKey=""> 
        <name>ruc</name> 
        <description>Renmin University of China</description> 
        <contacts> 
          <contact useType="technical contact"> 
            <personName>Kang</personName> 
            <phone>010-62510000</phone> 
            <email>kang@hotmail.com</email> 
          </contact> 
        </contacts> 
      </businessEntity> 
    </save_business> 
  </soapenv:Body> 
</soapenv:Envelope> 

得到 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <businessDetail generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <businessEntity authorizedName="juddi" businessKey="EE976890-DD82-11DD-ADFB-8828584945B5" operator="jUDDI.org"> 
    <discoveryURLs> 
     <discoveryURL useType="businessEntity">http://localhost:8080/juddi/uddiget.jsp?businesskey=EE976890-DD82-11DD-ADFB-8828584945B5</discoveryURL> 
    </discoveryURLs> 
    <name>ruc</name> 
    <description>Renmin University of China</description> 
    <contacts> 
     <contact useType="technical contact"> 
      <personName>Kang</personName> 
      <phone>010-62510000</phone> 
      <email>kang@hotmail.com</email> 
     </contact> 
    </contacts> 
   </businessEntity> 
  </businessDetail> 
</soapenv:Body> 
</soapenv:Envelope> 


2.3 save_tModel 
tModel是一个技术指纹,一个service可以对应多个tModel 

输入 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <save_tModel generic="2.0" xmlns="urn:uddi-org:api_v2"> 
      <authInfo>authToken:3348A9F0-DD82-11DD-ADFB-9513937BB2B2</authInfo> 
      <tModel tModelKey=""> 
        <name>HelloWorld</name> 
        <description>Hello World</description> 
        <overviewDoc> 
          <description></description> 
          <overviewURL>http://localhost:8080/WebProjectDemo/services/HelloWorld#HelloWorldSoapBinding</overviewURL>
        </overviewDoc> 
        <identifierBag> 
          <keyedReference tModelKey="" keyName="" keyValue="" /> 
        </identifierBag> 
        <categoryBag> 
          <keyedReference tModelKey="" keyName="" keyValue="" /> 
        </categoryBag> 
      </tModel> 
    </save_tModel> 
  </soapenv:Body> 
</soapenv:Envelope> 

其中 
overviewURL 是服务实现文档的位置 
<overviewURL> 
http://localhost:8080/WebProjectDemo/services/HelloWorld#HelloWorldSoapBinding 
</overviewURL> 
其中http://localhost:8080/WebProjectDemo/services/HelloWorld 是HelloWorld.wsdl文件中的address location,HelloWorldSoapBinding是HelloWorld.wsdl文件中的binding name 

得到 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <tModelDetail generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <tModel authorizedName="juddi" operator="jUDDI.org" tModelKey="uuid:59EFA030-DD88-11DD-ADFB-A2381C34199F"> 
    <name>HelloWorld</name> 
    <description>Hello World</description> 
    <overviewDoc> 
     <overviewURL>http://localhost:8080/WebProjectDemo/services/HelloWorld#HelloWorldSoapBinding</overviewURL>
    </overviewDoc> 
    <identifierBag> 
     <keyedReference keyName="" keyValue="" tModelKey=""/> 
    </identifierBag> 
    <categoryBag> 
     <keyedReference keyName="" keyValue="" tModelKey="UUID:A035A07C-F362-44dd-8F95-E2B134BF43B4"/> 
    </categoryBag> 
   </tModel> 
  </tModelDetail> 
</soapenv:Body> 
</soapenv:Envelope> 

2.4 save_service 
输入 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <save_service generic="2.0" xmlns="urn:uddie-org:api_v2"> 
      <authInfo>authToken:3348A9F0-DD82-11DD-ADFB-9513937BB2B2</authInfo> 
      <businessService businessKey="EE976890-DD82-11DD-ADFB-8828584945B5" serviceKey=""> 
        <name>HelloWorld</name> 
        <description>HelloWorld</description> 
        <bindingTemplates> 
          <bindingTemplate bindingKey=""> 
            <accessPoint URLType="http">http://localhost:8080/</accessPoint> 
            <tModelInstanceDetails> 
              <tModelInstanceInfo tModelKey="uuid:0978C270-DD89-11DD-ADFB-E44D6510EEF7"> 
                <instanceDetails> 
                  <overviewDoc> 
                    <overviewURL>http://localhost:8080/WebProjectDemo/services/HelloWorld#HelloWorldSoapBinding</overviewURL>
                  </overviewDoc> 
                </instanceDetails> 
              </tModelInstanceInfo> 
            </tModelInstanceDetails> 
          </bindingTemplate> 
        </bindingTemplates> 
      </businessService> 
    </save_service> 
  </soapenv:Body> 
</soapenv:Envelope> 

得到 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <serviceDetail generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <businessService businessKey="EE976890-DD82-11DD-ADFB-8828584945B5" serviceKey="B052F6D0-DD8C-11DD-ADFB-DB56A1983284"> 
    <name>HelloWorld</name> 
    <description>HelloWorld</description> 
    <bindingTemplates> 
     <bindingTemplate bindingKey="B05567D0-DD8C-11DD-ADFB-C11B5D72DD9F" serviceKey="B052F6D0-DD8C-11DD-ADFB-DB56A1983284"> 
      <accessPoint URLType="http">http://localhost:8080/</accessPoint> 
      <tModelInstanceDetails> 
       <tModelInstanceInfo tModelKey="uuid:0978C270-DD89-11DD-ADFB-E44D6510EEF7"> 
        <instanceDetails> 
         <overviewDoc> 
          <overviewURL>http://localhost:8080/WebProjectDemo/services/HelloWorld#HelloWorldSoapBinding</overviewURL>
         </overviewDoc> 
        </instanceDetails> 
       </tModelInstanceInfo> 
      </tModelInstanceDetails> 
     </bindingTemplate> 
    </bindingTemplates> 
   </businessService> 
  </serviceDetail> 
</soapenv:Body> 
</soapenv:Envelope> 


2.5 find_tmodel 
输入 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <find_tModel generic="2.0" xmlns="urn:uddi-org:api_v2"> 
      <findQualifiers> 
        <findQualifier>exactNameMatch</findQualifier> 
      </findQualifiers>      
      <name>HelloWorld</name> 
      <identifierBag> 
        <keyedReference tModelKey="***" keyName="***" keyValue="***" /> 
      </identifierBag> 
      <categoryBag> 
        <keyedReference tModelKey="***" keyName="***" keyValue="***" /> 
      </categoryBag> 
    </find_tModel> 
  </soapenv:Body> 
</soapenv:Envelope> 

<findQualifier>的属性值大概有 
exactNameMatch, orAllKeys ,andAllKeys等 
http://www.uddi.org/pubs/ProgrammersAPI_v2.htm#_Toc25137773 的APPENDIX E里面说得挺多的了。 

返回 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <tModelList generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <tModelInfos> 
    <tModelInfo tModelKey="uuid:57DEA0A0-DBBE-11DD-A95C-D13DE83070A5"> 
     <name>HelloWorld</name> 
    </tModelInfo> 
   </tModelInfos> 
  </tModelList> 
</soapenv:Body> 
</soapenv:Envelope> 


2.6 find_service 
这也是我们组做这个作业遇到的最大的一个问题,就是怎么也查不出服务 
返回的消息总是 

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <serviceList generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <serviceInfos/> 
  </serviceList> 
</soapenv:Body> 
</soapenv:Envelope> 

网上有类似提问的,就是没回答。今天早上灵光一现,发现只要把那些不查的属性去掉 就可以了,搞了很么就居然这么简单,晕死晕死晕死... 

按tModelKey查 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <find_service generic="2.0" xmlns="urn:uddi-org:api_v2"> 
    <tModelBag> 
        <tModelKey>uuid:0978C270-DD89-11DD-ADFB-E44D6510EEF7</tModelKey> 
    </tModelBag> 
</find_service> 
  </soapenv:Body> 
</soapenv:Envelope> 
得到 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <serviceList generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <serviceInfos> 
    <serviceInfo businessKey="EE976890-DD82-11DD-ADFB-8828584945B5" serviceKey="B052F6D0-DD8C-11DD-ADFB-DB56A1983284"> 
     <name>HelloWorld</name> 
    </serviceInfo> 
   </serviceInfos> 
  </serviceList> 
</soapenv:Body> 
</soapenv:Envelope> 

按服务名name查 
输入 
<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soapenv:Body> 
    <find_service businessKey="" generic="2.0" xmlns="urn:uddi-org:api_v2"> 
      <findQualifiers> 
        <findQualifier>orAllKeys</findQualifier> 
      </findQualifiers>      
      <name>Hello</name> 
    </find_service> 
  </soapenv:Body> 
</soapenv:Envelope> 
得到 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
  <serviceList generic="2.0" operator="jUDDI.org" xmlns="urn:uddi-org:api_v2"> 
   <serviceInfos> 
    <serviceInfo businessKey="EE976890-DD82-11DD-ADFB-8828584945B5" serviceKey="B052F6D0-DD8C-11DD-ADFB-DB56A1983284"> 
     <name>HelloWorld</name> 
    </serviceInfo> 
    <serviceInfo businessKey="BB3604C0-DB02-11DD-AA81-B82AA209A326" serviceKey="CADE5640-DC86-11DD-9640-8799713EAEDE"> 
     <name>HelloWorld</name> 
    </serviceInfo> 
   </serviceInfos> 
  </serviceList> 
</soapenv:Body> 
</soapenv:Envelope> 

  

参考到的几个还不错的网页 
UDDI V2.03 Data Structure Specification 
businessEntity、tModel、businessService等结构的一些格式规范 
http://www.uddi.org/pubs/DataStructure_v2.htm#_Toc25130763 

Web 服务:UDDI专题 
http://www.ibm.com/developerworks/cn/webservices/ws-theme/ws-uddi.html 

Creating and publishing Web Services to jUDDI 
在eclipse里配置,研究了好一阵,虽然没太用上...留在这里备忘下 
http://www.mail-archive.com/juddi-user@ws.apache.org/msg00472.htm l 

使用 UDDI 的 Web 服务描述和发现(第一部分)+(第二部分) 
微软的帖子,帮助我澄清了一些概念 
http://bbs.w3china.org/dispbbs.asp?boardID=10&ID=571 0 

分享到:
评论

相关推荐

    Juddi安装和API的使用

    接下来的任务是修改Juddi的API,使得在查询服务时,不仅返回基本的服务信息,还能返回新增的非功能属性。这通常涉及到对Juddi的API进行编程调用,可能需要修改JSP文件,以及`controller.jsp`中的SOAP通信逻辑,以便...

    使用UDDI4J连接JUDDI

    完成JUDDI服务器的搭建后,可以使用UDDI4J库连接至JUDDI,进行服务的发布、查找等操作。 ##### **UDDI4J基本使用** 1. **初始化UDDI客户端**: 创建`UDDIProxy`实例,指定JUDDI的URL和认证信息。 ```java ...

    juddi安装包和文档

    《JUDDI安装详解与实战指南》 JUDDI(Java Universal ...通过以上详细的安装和使用指南,相信你已经掌握了JUDDI V2的基本操作。在实践中,不断熟悉和掌握其高级特性和管理功能,将有助于提升企业的服务治理能力。

    juddi 安装包

    3. **使用JUDDI**:涵盖了创建、查询和管理服务实例的方法,以及如何通过JUDDI的Web界面进行操作。 4. **安全性设置**:讲解了如何为JUDDI配置安全设置,包括用户认证、权限管理和SSL配置。 5. **数据备份与恢复**:...

    juddi-tomcat-2.0.1

    在本文中,我们将深入探讨如何使用"juddi-tomcat-2.0.1"来部署Juddi,并结合Apache Tomcat进行Web服务的开发。 首先,我们需要了解Juddi的核心功能。Juddi作为一个服务注册中心,它允许服务提供者发布服务信息,...

    juddi-dist-3.0.0.rc1.zip

    5. **测试**:通过Web界面或API进行基本的注册和查找操作,验证JUDDI的正常运行。 四、JUDDI应用实践 在实际应用中,JUDDI常用于: 1. **企业服务总线(ESB)**:作为ESB的一部分,JUDDI帮助管理和发现ESB上的...

    Juddi2.0.1+Apache-Tomcat-6.0.36+MySQL环境搭建测试

    通过浏览器访问JUDDI的管理界面(通常是`http://localhost:8080/juddi`),按照提示进行操作。 7. **使用UDDI4J注册Web服务**:UDDI4J是一个Java库,用于与UDDI服务器交互。在项目中引入UDDI4J的依赖,编写代码来...

    juddi配置资源问题解决

    - 如果使用的是不同版本的Tomcat或jUDDI,配置参数可能有所不同,需要查阅对应版本的官方文档。 遵循以上步骤,通常可以解决jUDDI连接MySQL数据库时的驱动问题。如果依然遇到问题,建议检查系统环境变量、JDK版本、...

    juddi-portal-bundle-3.1.2

    "门户"在这里可能指的是JUDDI提供的用户界面,使得用户能够方便地管理和操作注册的服务。 **描述中的“支持uddi v3规范”** 表明JUDDI实现了UDDI的第三版标准,该标准定义了如何在Web服务中发现、描述和集成业务...

    使用uddi4j连接juddi

    【标题】"使用uddi4j连接juddi"涉及的知识点主要集中在Java Web服务(Web Service)领域,特别是如何利用uddi4j这个库来与JUDDI(Java Universal Description, Discovery and Integration)服务器进行交互。JUDDI是...

    juddi v3 用户指南

    本节详细介绍了juddi v3 API的使用,包括UDDI数据模型、juddi特有的模型扩展以及API的具体操作方法。一个简单的出版示例帮助用户快速上手,理解如何通过API来管理和发布服务。 ### 九、订阅服务 订阅服务允许用户...

    juddi-0.9rc4-src.tar.gz_UDDI_java service_juddi_juddi-0.9rc4_web

    5. **服务发现和缓存**:juddi使用缓存技术来提高服务查找的效率,并且支持跨注册中心的服务发现,使得服务的可用性和可扩展性得到增强。 6. **集成框架**:juddi可以与其他服务治理框架(如Spring-WS、CXF等)无缝...

    juddi jar包

    juddi jar包,可以用UDDI和juddi链接用

    JUDDI开发指南

    **JUDDI开发指南**是一份详尽的技术文档,旨在为开发者提供使用JUDDI(UDDI Java开源实现)进行开发的全面指导。JUDDI是UDDI (Universal Description, Discovery, and Integration) 的Java实现之一,而UDDI是由OASIS...

    juddi-0.9rc4.zip_UDDI_juddi_juddi-0.9rc4.zip_rc4_service

    5. **互操作性**:作为UDDI标准的实现,JUDDI与其他UDDI服务器兼容,增强了跨平台的互操作性。 6. **持久化存储**:JUDDI通常使用数据库(如MySQL或JDBC兼容的数据库)来持久化服务信息,确保数据的可靠性和可恢复性...

    juddi3.1.0

    3. **安全管理**:Juddi支持用户角色和权限管理,确保只有授权的用户可以访问和操作服务。 4. **监控与维护**:Juddi提供了日志记录和统计功能,便于管理员监控服务状态和性能。 **四、遗憾之处** 虽然Juddi ...

Global site tag (gtag.js) - Google Analytics