# iod-gateway-adapter-github **Repository Path**: BDWare/github_adapter ## Basic Information - **Project Name**: iod-gateway-adapter-github - **Description**: 代码数据空间的适配器(数联网网关模块) - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-11-23 - **Last Updated**: 2024-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CSTR数据空间 ## 空间组成 * CSTR解析接口,解析接口会返回标识对应的描述信息、URL等。 * CSTR标识数据集(来源到findata.cn)。 ## 空间实现 cstr-router * resolve: 针对本空间的标识,会返回repoid为cstr-repo的id。 ``` 输入示例: 1. 数据资源标识:CSTR:18406.11.SOCIOECO.TPDC.271202 解析结果示例: { "identifier":"CSTR:18406.11.SOCIOECO.TPDC.271202", "handleValues":{ "repoId":"CSTR:100871.11.idoentryrepo", "appendixes":{ "CSTR:100871.11.idoentryrepo":{ "address":"tcp://8.130.140.101:18030", "version":"2.1" } } }, "permission":0 } 2. 仓库标识:CSTR:100871.11.idoentryrepo 解析结果示例: { "identifier":"CSTR:100871.11.idoentryrepo", "handleValues":{"address":"tcp://8.130.140.101:18030","version":"2.1"}, "permission":0 } 3. 不存在的标识:CSTR:18406.11.SOCIOECO.TPDC.271202222 null ``` cstr-repo * listOperation:会返回这个标识对应的描述信息,以及本DO支持Retrieve操作。 ``` 输入示例:CSTR:33282.11.licpcasdc.fPSk4iDX 返回结果: { "identifier": "CSTR:33282.11.licpcasdc.fPSk4iDX", "operation": "0.DOIP/Op.ListOperation", "response": "0.DOIP/Status.001", "attributes": { "id": "6514f453badbd8496951439d", "identifier": "CSTR:33282.11.LICPCASDC.FPSK4IDX", "status": 1, "resolveCount": 0, "viewCount": 12, "userName": "tiankeke@licp.cas.cn", "nameZh": "中国科学院兰州化学物理研究所所级中心", "registerOrganizationType": "所级中心", "registerOrganizationDesc": "中国科学院兰州化学物理研究所始建于1958年,目前主要开展资源与能源、新材料、生态与健康等领域的基础研究、应用研究和战略高技术研究工作。战略定位是“西部资源与能源化学和新材料高技术创新研究基地”,力争建成具有“一流成果、一流管理、一流环境、一流人才”,特色鲜明,国际上有重要影响,国内不可替代并具有可持续发展能力的国立研究机构。截至目前,研究院拥有中国科学院院士1人,中国工程院院士1人,发展中国家科学院院士1人,国家重点实验室2个、国家工程中心1个、国家地方联合工程研究中心1个、中科院重点实验室2个,甘肃省重点实验室2个。", "creatTime": "2023-09-28", "updateTime": "2023-11-23", "userAgent": "instdb", "resourceChineseName": "计入油膜惯性作用椭圆接触弹流润滑性能研究", "resourceName": "", "identificationStatus": 2, "descriptionCN": "基于计入惯性项的Navier-Stokes方程和连续性方程,建立了计入油膜惯性作用的椭圆接触弹性流体润滑模型,研究了油膜惯性对椭圆接触弹流润滑性能的影响. 弹性变形通过快速傅里叶变换(FFT)计算,而油膜压力通过复合直接迭代法求解. 数值结果表明:在计入油膜惯性作用后,润滑膜的二次压力峰增大,入口区的油膜速度减小,且逆流区范围扩大;考虑油膜惯性作用后油膜厚度有所增大,当载荷从300 N增加到700 N时,中心膜厚最大增加了5.14%. 试验结果也表明,考虑油膜惯性作用后的中心膜厚数值解与试验结果更加接近.", "descriptionEN": "", "resourceType": "11", "creators": [ { "creatorNameCN": "孟凡明" }, { "creatorNameCN": "张万民" } ], "submitOrgName": "中国科学院兰州化学物理研究所所级中心", "registerOrganizationCN": "中国科学院兰州化学物理研究所所级中心", "publicationDate": "2023-09-28", "shareChannel": "1", "shareRange": "02", "process": "正常", "alternativeIdentifiers": [ { "identifierValue": "10.57841/casdc.0002593", "identifierType": "04" } ], "subjectClassifications": [ { "subjectName": [ "130" ], "subjectNameStandard": "01", "keyWordsCN": [ "油膜惯性 ", " 椭圆接触 ", " 油膜压力", "中心膜厚", "FFT" ], "keyWordsEN": [] } ], "nodeID": "0" } } ``` * retrieve:会返回这个标识对应的URL(下载地址) ``` 输入示例:CSTR:33282.11.licpcasdc.fPSk4iDX 返回结果: header: { "identifier": "CSTR:33282.11.licpcasdc.fPSk4iDX", "operation": "0.DOIP/Op.Retrieve", "response": "0.DOIP/Status.001", "attributes": { "nodeID": "0" } } body: http://119.78.99.9:8081/dataDetails/68a781b82749417e83cce4f20e9a7944 ``` * subscribe:基于数据集导入到repo中,可实现按数据来源订阅语用链接。 ```使用sdk发起订阅,参考:subscriber-repo-example模块中的test/DOIPTest.java中的示例。 public void mockSubscribe() { DoipClientImpl client = new DoipClientImpl(); client.connect(ClientConfig.fromUrl("tcp://8.130.140.101:21051")); CountDownLatch countDownLatch = new CountDownLatch(1); DoipMessage subscribe = EventMessageFactory.subscribeTopic("unused", "CSTR:100871.11.findata_dp_stream", "bdtest/SubscriberExample1", true); client.sendMessage(subscribe, new DoipMessageCallback() { @Override public void onResult(DoipMessage msg) { LOGGER.info("msg.header:" + msg.header.parameters.attributes.toString()); LOGGER.info("msg.body:" + msg.body.getDataAsJsonString()); countDownLatch.countDown(); } }); for (; countDownLatch.getCount() > 0; ) Thread.yield(); } ``` 订阅成功之后可收到类似的DoipMessage: ``` header: { "identifier": "bdtest/SubscriberExample1", "operation": "0.DOIP/Op.Publish", "response": "0.DOIP/Status.001", "attributes": { "offset": 8, "total": 9, "type": "create", "topicId": "CSTR:100871.11.findata_dp_stream", "fromRepo": "CSTR:100871.11.idoentryrepo", "publishType": "Data", "nodeID": "0" } } body: sharing c6b086a0df97811beb08bf8a5dcc25040c2e91b4b9086be30ee8695d76de888b ``` ## 调试 * cstr-router: 在test目录下,运行CSTRRouterDebug.java中的测试用例。 * cstr-repo: 在test目录下,运行CSTRRepoDebug.java中的测试用例。 启动成功之后,可使用test目录下的`DOIPTest.java`和`IRPTest.java`进行测试。 ## 部署 首先,参考各自目录下的`debugconf.json`和`deployconfig.json.template`; 然后配置好`cstr-router/deployconfig.json` 和`cstr-repo/deployconfig.json`; 最后,执行对应目录下的`build.gradle 中的 deployRepo/deployRouter` 任务即可。