`
ww2
  • 浏览: 415586 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Tempo研究之FDS

阅读更多
 Tempo FDS是什么组件,就不多解释了,参考我的 Tempo针对BPEL4People的实现构架 这篇blog即可。

在往下说之前,有必要阐述两个FDS内部的概念:User Process 和Workflow Process。User Process其实代表是bpel engine所处理的process,而Workflow Process则代表Tempo这边所关注的people task的处理。——这两个概念刚开始时令人混淆的,至少我在一开始跟踪代码的时候是理解反了。

当Intialo BPM engine(内部apache ode bpel engine)在启动一个process的时候,如果碰到一个People Activity,则会向Tempo FDS发送一个create task的请求(UP-->WP)。当Task执行人完成task,并提交的时候,FDS向User Process发出notifyTaskCompletion请求(WP-->UP)。这中间tempo内部各个组件之间的调用关系和执行顺序,可以参考http://www.intalio.org/confluence/display/TEMPO/Creating+and+Completing+a+Task 这上面的详细内容。

在FDS内部的实现逻辑大约是这个样子的:


FDS来回所对应的都是http请求和响应,所以消息都是由FormDispatcherServlet这个serlvet接收并处理的。

如果FDS接收的请求url是以 /fds/workflow/ib4p结尾的,则表示是WP-->UP的过程;否则是UP-->WP的过程。

建议在 Intalio\Server\var\log目录下的 server-log4j.properties(这是一个log4j的配置文件)中,增加对 org.intalio.tempo包结构的DEBUG日志信息输出,可以在 D:\Intalio\Server\var\log\geronimo.log 跟踪输出,这样可以查看来回的request/response message的xml消息格式,以及详细的处理过程。

Tempo FDS本身内部实现并不是很复杂,逻辑比较简单,主要是消息的来回转换。

一下是一个complete task处理的后台日志,方便看看具体的实现逻辑:
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] doGet request=org.mortbay.jetty.servlet.JSR154Filter$Request@10057d3
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] Resource URI: 'PeopleActivity/PA.xform.xsd'
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] Participant token: ''
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] Retrieving the item.
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] Sending the data..
19:52:45,937 DEBUG [org.intalio.tempo.workflow.wds.servlets.WDSServlet] [SocketListener2-22] Item retrieved & sent OK.
19:52:46,828 DEBUG [org.intalio.tempo.workflow.auth.n3.N3AuthProvider] [SocketListener2-19] Token 'VE9LRU4mJnVzZXI9PWludGFsaW9cYWRtaW4mJmlzc3VlZD09MTE5NTY0MzM1MTczNCYmcm9sZXM9PWludGFsaW9ccHJvY2Vzc2FkbWluaXN0cmF0b3IsZXhhbXBsZXNcZW1wbG95ZWUsaW50YWxpb1xwcm9jZXNzbWFuYWdlcixleGFtcGxlc1xtYW5hZ2VyJiZmdWxsTmFtZT09QWRtaW5pbmlzdHJhdG9yJiZlbWFpbD09YWRtaW5AZXhhbXBsZS5jb20mJm5vbmNlPT0tMzU0NDYwNjI1MzA3NTkxMzMwMyYmdGltZXN0YW1wPT0xMTk1NjQzMzUxNzM0JiZkaWdlc3Q9PW92OXlVbUNyTGgvcXZQajdNdXZDZkNWMU9DTT0mJiYmVE9LRU4=' is resolved to [Lorg.intalio.tempo.security.Property;@fae917
19:52:46,828 DEBUG [org.intalio.tempo.workflow.auth.n3.N3AuthProvider] [SocketListener2-19] User intalioadmin with roles intalioprocessadministrator,examplesemployee,intalioprocessmanager,examplesmanager
19:52:46,828 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnectionFactory] [SocketListener2-19] Getting connection to TMS DB
19:52:46,828 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] About to retrieve Workflow Task with ID 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] Workflow Task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017 has been read from TMS DB
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] About to retrieve user owners for task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] User Owner : intalioadmin
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] About to retrieve role owners for task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] About to retrieve attachments for task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,843 DEBUG [org.intalio.tempo.workflow.auth.BaseRestrictedEntity] [SocketListener2-19] isAvailableTo credentials: UserRoles{user=intalioadmin,roles=[intalioprocessadministrator, examplesemployee, intalioprocessmanager, examplesmanager]}
19:52:46,843 DEBUG [org.intalio.tempo.workflow.auth.BaseRestrictedEntity] [SocketListener2-19] isAvailableTo users: [intalioadmin]
19:52:46,843 DEBUG [org.intalio.tempo.workflow.auth.BaseRestrictedEntity] [SocketListener2-19] isAvailableTo roles: []
19:52:46,843 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] Attempt to delete Workflow Task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,875 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] XML parsed to string :
<?xml version="1.0" encoding="UTF-8"?><axis2ns3:input xmlns="http://example.com/PA/xform" xmlns:axis2ns3="http://example.com/PA/xform">
      
<username>
      
</username>
    
</axis2ns3:input>
19:52:46,875 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] XML parsed to string :
<?xml version="1.0" encoding="UTF-8"?><axis2ns4:output xmlns="http://example.com/PA/xform" xmlns:axis2ns4="http://example.com/PA/xform" xmlns:fe="http://example.com/PA/xform" participantToken="VE9LRU4mJnVzZXI9PWludGFsaW9cYWRtaW4mJmlzc3VlZD09MTE5NTY0MzM1MTczNCYmcm9sZXM9PWludGFsaW9ccHJvY2Vzc2FkbWluaXN0cmF0b3IsZXhhbXBsZXNcZW1wbG95ZWUsaW50YWxpb1xwcm9jZXNzbWFuYWdlcixleGFtcGxlc1xtYW5hZ2VyJiZmdWxsTmFtZT09QWRtaW5pbmlzdHJhdG9yJiZlbWFpbD09YWRtaW5AZXhhbXBsZS5jb20mJm5vbmNlPT0tMzU0NDYwNjI1MzA3NTkxMzMwMyYmdGltZXN0YW1wPT0xMTk1NjQzMzUxNzM0JiZkaWdlc3Q9PW92OXlVbUNyTGgvcXZQajdNdXZDZkNWMU9DTT0mJiYmVE9LRU4=" taskId="1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017" user="intalioadmin"><username>w1</username></axis2ns4:output>
19:52:46,875 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] Workflow PA Task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017 is about to be registered in TMS DB
19:52:46,875 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] Workflow PA Task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017 registered with ID=17
19:52:46,890 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19]  and User Owner : intalioadmin
19:52:46,921 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] committed
19:52:46,921 DEBUG [org.intalio.tempo.workflow.tms.server.TMSServer] [SocketListener2-19] intalioadmin has set output and completed Workflow Task Workflow Task 1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017
19:52:46,921 DEBUG [org.intalio.tempo.workflow.tms.server.dao.JDBCTaskDAOConnection] [SocketListener2-19] Closed connection
19:52:47,421 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Request URI: /ib4p
19:52:47,421 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] SOAPAction: "notifyTaskCompletion"
19:52:47,671 INFO  [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Workflow Processes -> User Process
19:52:47,671 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Parsing the request from the Workflow Processes.
19:52:47,687 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Workflow process request:
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8080/fds/workflow/ib4p</addr:To><addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">notifyTaskCompletion</addr:Action><intalio:session xmlns:intalio="http://www.intalio.com/type/session">573e4478-0f4e-4251-9d45-f870dadf4e80-2</intalio:session><intalio:callback xmlns:intalio="http://www.intalio.com/type/session"><addr:Address xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8080/ode/processes/workflow/ib4p</addr:Address><intalio:session>573e4478-0f4e-4251-9d45-f870dadf4e80-3</intalio:session></intalio:callback></soapenv:Header><soapenv:Body><axis2ns5:notifyTaskCompletionRequest xmlns="http://www.intalio.com/bpms/workflow/ib4p_20051115" xmlns:axis2ns5="http://www.intalio.com/bpms/workflow/ib4p_20051115" xmlns:b4p="http://www.intalio.com/bpms/workflow/ib4p_20051115">
                                                
<b4p:taskMetaData>
                                                    
<taskId>1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017</taskId>
                                                    
<processId>
    
</processId>
                                                    
<userProcessEndpoint>http://localhost:8080/ode/processes/PeopleActivity/PA/PA/User/WFmagic_EDLpiJdCEdy9R-hEBkLEtg</userProcessEndpoint>
                                                    
<userProcessNamespaceURI>http://example.com/PA/xform</userProcessNamespaceURI>
                                                    
<userProcessCompleteSOAPAction>http://example.com/PA/xform/Process/notifyTaskCompletion</userProcessCompleteSOAPAction>
                                                    
<session>573e4478-0f4e-4251-9d45-f870dadf4e80-2</session>
                                                
</b4p:taskMetaData>
                                                
<taskOutput><axis2ns6:output xmlns="http://example.com/PA/xform" xmlns:axis2ns6="http://example.com/PA/xform" xmlns:fe="http://example.com/PA/xform" participantToken="VE9LRU4mJnVzZXI9PWludGFsaW9cYWRtaW4mJmlzc3VlZD09MTE5NTY0MzM1MTczNCYmcm9sZXM9PWludGFsaW9ccHJvY2Vzc2FkbWluaXN0cmF0b3IsZXhhbXBsZXNcZW1wbG95ZWUsaW50YWxpb1xwcm9jZXNzbWFuYWdlcixleGFtcGxlc1xtYW5hZ2VyJiZmdWxsTmFtZT09QWRtaW5pbmlzdHJhdG9yJiZlbWFpbD09YWRtaW5AZXhhbXBsZS5jb20mJm5vbmNlPT0tMzU0NDYwNjI1MzA3NTkxMzMwMyYmdGltZXN0YW1wPT0xMTk1NjQzMzUxNzM0JiZkaWdlc3Q9PW92OXlVbUNyTGgvcXZQajdNdXZDZkNWMU9DTT0mJiYmVE9LRU4=" taskId="1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017" user="intalioadmin"><username>w1</username></axis2ns6:output></taskOutput>
                                                
<b4p:status>
                                                    OK
                                                
</b4p:status>
                                            
</axis2ns5:notifyTaskCompletionRequest></soapenv:Body></soapenv:Envelope>


19:52:47,687 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Converting the request to the user process format.
19:52:47,718 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Workflow process request (after conversion):
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8080/ode/processes/PeopleActivity/PA/PA/User/WFmagic_EDLpiJdCEdy9R-hEBkLEtg</addr:To><addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">http://example.com/PA/xform/Process/notifyTaskCompletion</addr:Action><intalio:session xmlns:intalio="http://www.intalio.com/type/session">573e4478-0f4e-4251-9d45-f870dadf4e80-2</intalio:session><session xmlns="http://www.intalio.com/type/session">573e4478-0f4e-4251-9d45-f870dadf4e80-2</session></soapenv:Header><soapenv:Body><userProcess:notifyTaskCompletionRequest xmlns="http://www.intalio.com/bpms/workflow/ib4p_20051115" xmlns:b4p="http://www.intalio.com/bpms/workflow/ib4p_20051115" xmlns:userProcess="http://example.com/PA/xform">
                                                
<userProcess:taskMetaData>
                                                    
<userProcess:taskId>1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017</userProcess:taskId>
                                                    
<userProcess:processId>
    
</userProcess:processId>
                                                    
<userProcess:userProcessEndpoint>http://localhost:8080/ode/processes/PeopleActivity/PA/PA/User/WFmagic_EDLpiJdCEdy9R-hEBkLEtg</userProcess:userProcessEndpoint>
                                                    
<userProcess:userProcessNamespaceURI>http://example.com/PA/xform</userProcess:userProcessNamespaceURI>
                                                    
<userProcess:userProcessCompleteSOAPAction>http://example.com/PA/xform/Process/notifyTaskCompletion</userProcess:userProcessCompleteSOAPAction>
                                                    
<userProcess:session>573e4478-0f4e-4251-9d45-f870dadf4e80-2</userProcess:session>
                                                
</userProcess:taskMetaData>
                                                
<userProcess:taskOutput><axis2ns6:output xmlns="http://example.com/PA/xform" xmlns:axis2ns6="http://example.com/PA/xform" xmlns:fe="http://example.com/PA/xform" participantToken="VE9LRU4mJnVzZXI9PWludGFsaW9cYWRtaW4mJmlzc3VlZD09MTE5NTY0MzM1MTczNCYmcm9sZXM9PWludGFsaW9ccHJvY2Vzc2FkbWluaXN0cmF0b3IsZXhhbXBsZXNcZW1wbG95ZWUsaW50YWxpb1xwcm9jZXNzbWFuYWdlcixleGFtcGxlc1xtYW5hZ2VyJiZmdWxsTmFtZT09QWRtaW5pbmlzdHJhdG9yJiZlbWFpbD09YWRtaW5AZXhhbXBsZS5jb20mJm5vbmNlPT0tMzU0NDYwNjI1MzA3NTkxMzMwMyYmdGltZXN0YW1wPT0xMTk1NjQzMzUxNzM0JiZkaWdlc3Q9PW92OXlVbUNyTGgvcXZQajdNdXZDZkNWMU9DTT0mJiYmVE9LRU4=" taskId="1228262541d53628:-5bad7914:11661f87cf4:-7fab192.168.67.2403670017" user="intalioadmin"><username>w1</username></axis2ns6:output></userProcess:taskOutput>
                                                
<userProcess:status>
                                                    OK
                                                
</userProcess:status>
                                            
</userProcess:notifyTaskCompletionRequest></soapenv:Body></soapenv:Envelope>


19:52:47,718 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Completion SOAP Action: 'http://example.com/PA/xform/Process/notifyTaskCompletion'
19:52:47,718 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Sending the request to the user process and getting the response
19:52:48,921 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] User process response:
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><axis2ns7:response xmlns="http://example.com/PA/xform" xmlns:axis2ns7="http://example.com/PA/xform" xmlns:xform="http://example.com/PA/xform">
  
<xform:isChainedAfter>
  
</xform:isChainedAfter>
  
<xform:taskMetaData>
    
<xform:taskId>
    
</xform:taskId>
    
<xform:taskState>
    
</xform:taskState>
    
<xform:taskType>
    
</xform:taskType>
    
<xform:description>
    
</xform:description>
    
<xform:processId>
    
</xform:processId>
    
<xform:creationDate>
    
</xform:creationDate>
    
<xform:userOwner>
    
</xform:userOwner>
    
<xform:roleOwner>
    
</xform:roleOwner>
    
<xform:claimAction>
      
<xform:user>
      
</xform:user>
      
<xform:role>
      
</xform:role>
    
</xform:claimAction>
    
<xform:revokeAction>
      
<xform:user>
      
</xform:user>
      
<xform:role>
      
</xform:role>
    
</xform:revokeAction>
    
<xform:saveAction>
      
<xform:user>
      
</xform:user>
      
<xform:role>
      
</xform:role>
    
</xform:saveAction>
    
<xform:completeAction>
      
<xform:user>
      
</xform:user>
      
<xform:role>
      
</xform:role>
    
</xform:completeAction>
    
<xform:formUrl>
    
</xform:formUrl>
    
<xform:failureCode>
    
</xform:failureCode>
    
<xform:failureReason>
    
</xform:failureReason>
    
<xform:userProcessCompleteSOAPAction>
    
</xform:userProcessCompleteSOAPAction>
    
<xform:isChainedBefore>
    
</xform:isChainedBefore>
    
<xform:previousTaskId>
    
</xform:previousTaskId>
    
<xform:userProcessEndpoint>
    
</xform:userProcessEndpoint>
    
<xform:userProcessNamespaceURI>
    
</xform:userProcessNamespaceURI>
  
</xform:taskMetaData>
  
<xform:status>OK</xform:status>
  
<xform:errorCode>
  
</xform:errorCode>
  
<xform:errorReason>
  
</xform:errorReason>
</axis2ns7:response></soapenv:Body></soapenv:Envelope>


19:52:48,921 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Converting the response to the Workflow Processes format.
19:52:48,921 DEBUG [org.intalio.tempo.workflow.fds.core.UserProcessMessageConvertor] [SocketListener2-19] Converted SOAP Action: null
19:52:48,921 DEBUG [org.intalio.tempo.workflow.fds.core.UserProcessMessageConvertor] [SocketListener2-19] Did not find addr:To in SOAP header
19:52:48,921 DEBUG [org.intalio.tempo.workflow.fds.core.UserProcessMessageConvertor] [SocketListener2-19] Did not find intalio:callback/addr:Address in SOAP header
19:52:48,937 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] Sending the converted response back to the Workflow Processes.
19:52:48,937 DEBUG [org.intalio.tempo.workflow.fds.FormDispatcherServlet] [SocketListener2-19] User process response (after conversion)
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ib4p:response xmlns="http://example.com/PA/xform" xmlns:ib4p="http://www.intalio.com/bpms/workflow/ib4p_20051115" xmlns:xform="http://example.com/PA/xform">
  
<ib4p:isChainedAfter>
  
</ib4p:isChainedAfter>
  
<ib4p:taskMetaData>
    
<ib4p:taskId>
    
</ib4p:taskId>
    
<ib4p:taskState>
    
</ib4p:taskState>
    
<ib4p:taskType>
    
</ib4p:taskType>
    
<ib4p:description>
    
</ib4p:description>
    
<ib4p:processId>
    
</ib4p:processId>
    
<ib4p:creationDate>
    
</ib4p:creationDate>
    
<ib4p:userOwner>
    
</ib4p:userOwner>
    
<ib4p:roleOwner>
    
</ib4p:roleOwner>
    
<ib4p:claimAction>
      
<ib4p:user>
      
</ib4p:user>
      
<ib4p:role>
      
</ib4p:role>
    
</ib4p:claimAction>
    
<ib4p:revokeAction>
      
<ib4p:user>
      
</ib4p:user>
      
<ib4p:role>
      
</ib4p:role>
    
</ib4p:revokeAction>
    
<ib4p:saveAction>
      
<ib4p:user>
      
</ib4p:user>
      
<ib4p:role>
      
</ib4p:role>
    
</ib4p:saveAction>
    
<ib4p:completeAction>
      
<ib4p:user>
      
</ib4p:user>
      
<ib4p:role>
      
</ib4p:role>
    
</ib4p:completeAction>
    
<ib4p:formUrl>
    
</ib4p:formUrl>
    
<ib4p:failureCode>
    
</ib4p:failureCode>
    
<ib4p:failureReason>
分享到:
评论

相关推荐

    jira插件tempo Timesheets 7.9.1

    《Jira插件Tempo Timesheets 7.9.1详解》 Tempo Timesheets是一款在Jira平台上广泛使用的高效时间管理插件,其7.9.1版本为用户提供了更为精准和便捷的工作时间追踪解决方案。这款插件的核心功能在于帮助团队成员...

    Jira时间跟踪插件tempo.tgz

    时间跟踪是Tempo的核心特性之一。它不仅可以让团队成员记录每天的工作时间,还能分析这些数据,提供工时报告。这些报告包括个人报告、团队报告以及项目报告,帮助管理层了解团队的工作效率,找出可能的瓶颈,以及...

    Asimptote_Cycle-Tempo_5.1.5.rar

    Cycle-Tempo是少数几个允许火用分析的软件包之一。它已经存在了十多年,拥有庞大的用户群体,包括主要能源公司、咨询公司和研发机构。 它是做什么的? Cycle-Tempo的主要特点是计算系统中所有相关的质量和能量流。它...

    Jira插件tempo-plugin-7.9.1

    Jira工时表插件tempo-plugin-7.9.1

    JSON渲染引擎Tempo.zip

    Tempo 是个轻量级的JSON渲染引擎(只有4kb),使用它可以以纯HTML的方式来构建数据呈现。 ...而 Tempo 可以实现 HTML 与 JavaScript 的完全分离,也支持使用AJAX获取数据再用 Tempo 呈现。... 标签:Tempo

    Tempo timing, tactics and strategy in narrative-driven decision-making

    Tempo is a modern treatment of decision-making that weaves together concepts and principles from the mathematical decision sciences, cognitive psychology, philosophy and theories of narrative and ...

    tempo-planner

    JIRE插件用于企业管理项目的插件,tempo-timesheet,展示时间分配任务

    Tempo Pro_v2.1.6.rar

    Tempo Pro_v2.1.6

    基于Tempo智慧中台解决方案.pptx

    Tempo智慧中台解决方案是美林数据的核心产品之一,它是一个一体化的大数据分析应用平台,具备先进的商业智能(BI)和人工智能(AI)分析功能。这个平台旨在解决企业在数据管理、分析和应用中的挑战,例如数据孤岛、...

    大数据tempo平台

    美林数据技术股份有限公司,结合二十年企业数字化行业服务经验、6 年数 据分析与挖掘技术研究与应用积累,历时三年,打造出“面向企业级用户的一体 化大数据分析平台”——Tempo 大数据分析平台。旨在为企业用户提供...

    tempo:Grafana Tempo是高容量,最小依赖项的分布式跟踪后端

    Grafana Tempo是一个开源,易于使用的大规模分布式跟踪后端。 Tempo具有成本效益,仅需要对象存储即可运行,并且与Grafana,Prometheus和Loki深度集成。 Tempo可以与任何开源跟踪协议一起使用,包括Jaeger,Zipkin和...

    TEMPO韵律eA1A中文说明书.pdf

    【TEMPO韵律eA1A中文说明书.pdf】是一份由Shanling山灵品牌提供的设备操作手册,主要介绍了一款名为eA1A的综合放大器。此设备旨在为音乐爱好者提供高质量的音频体验,它集成了多种输入源和功能,确保用户能够方便地...

    TEMPO韵律eA3中文说明书.pdf

    "TEMPO韵律eA3中文说明书.pdf" 该用户手册是关于 Shanling 山灵品牌的 DIGITAL INTEGRATED AMPLIFIER eA3 的使用说明书。该设备是一款数字综合放大器,具有多种功能,包括音频信号输入、音量调整、耳机输出等。 ...

    tempo节拍器软件

    电脑上的节拍器!很好用!本人学吉他用的!

    Grafana Tempo是高容量,最小依赖项的跟踪存储。-Golang开发

    Grafana Tempo是一个开源,易于使用的大规模分布式跟踪后端。 Tempo具有成本效益,仅需要对象存储即可运行,并且与Grafana,Prometheus和Loki深度集成。 Grafana Tempo是一个开源,易于使用的大规模分布式跟踪后端。...

    psrchive.rar_pgplot_psrchive 教程_python3.8 psrchive_tempo_脉冲星

    脉冲星数据处理是天文学领域的一个重要环节,主要用于研究快速自转的中子星。在本教程中,我们将深入探讨如何使用`psrchive`、`pgplot`、`tempo2`、`tempo`和`fftw`等工具进行脉冲星数据的分析。这些工具都是基于...

    Tempo人工智能挖掘平台(AI).pptx

    涵盖描述数据统计、直方图、相关分析、典型相关分析、偏相关分析、方差分析、P-P图、Q-Q图以及相似度等统计方法和图表。用户基于这些统计方法进行交互数据分析,掌握数据的分布特征。

    POLAR TEMPO用户使用说明书.pdf

    《Polar Tempo用户使用说明书》详细介绍了Polar Tempo心率监测器的使用方法和功能,旨在帮助用户充分利用这款产品来优化他们的运动体验和健康管理。Polar是知名的运动健康设备制造商,其产品以其精确性和可靠性而...

    tempo

    :hourglass_not_done: Tempo:MLOps软件开发套件 一个开源SDK,可简化工作流程,以大规模生产机器学习模型。 概述 Tempo为多个MLOps项目提供了统一的界面,使数据科学家能够部署和生产机器学习系统。 激励榜样 Tempo...

Global site tag (gtag.js) - Google Analytics