WIPO Sequence Validator 작업매뉴얼 버젼 2.1.0 본문서의목적은특허청이 WIPO Sequence Validator 웹서비스를배포하게지원하고 Validator 의 환경설정을지원하는것입니다. WIPO FOR OFFICIAL USE ONLY
WIPO Sequence Validator 작업매뉴얼 1. 소개 WIPO Sequence Validator ( 이하 'Validator' 또는 ' 도구 ' 로칭함 ) 의주요목적은각국특허청 (IP Offices, IPOs) 에 WIPO ST.26 형식의 XML 파일을검증하기위한서비스를제공하여 XML 파일이 WIPO 표준 ST.26 을따르는지확인하는것입니다. WIPO Sequence 데스크탑애플리케이션을 사용하여작성된서열목록은 WIPO ST.26 을준수하지만, 사용자는가장적합하다고생각하는 어떠한도구도사용할수있습니다. 본문서의목적은다음섹션에자세히설명한도구의구축, 배포, 설정및파일사용자시스템을 설명하는것입니다. 문제해결에대한질문은다음위키를참조하십시오 : https://www3.wipo.int/confluence/display/st26software/validator+troubleshooting 1.1. WIPO Sequence Validator 워크플로우개요 도구는다음과같은네가지사용사례를제공한다 : WIPO ST.26 파일의검증 ; 실행중인검증의상태요청 ; 환경설정파일업데이트 ( 특허청관리자만 ); 및 프로세스가완료되면검증프로세스의결과로콜백엔드포인트를호출합니다. 참고 : 이콜백엔드포인트 1 는 Valdator 의범위밖에있습니다. 엔드포인트를설정하는것은이서비스를개발하고설정하는각특허청의책임입니다. 도구는웹서비스로실행할수있는 JAR 파일또는 Tomcat 서버상에서배포할수있는 WAR 파일로구성된다. 양자모두의경우에, WIPO ST.26 서열목록을검증하려고, 도구는로컬파일시스템으로부터파일을사용하고검증결과에관한검증보고서를생성하며, 선택적으로, 콜백엔드포인트를호출하여검증처리의결과, 즉, 검증보고서를반환한다. Validator 의주요워크플로우는다음과같다 : 각특허청 IT 시스템에서 WIPO ST.26 XML 파일은기본 " 받은문서 " 폴더또는원하는지정폴더에저장된다. 1 여기서콜백엔드포인트는요청메시지를보낼수있는 URI 로식별되는고유주소이다. Page 2 of 38
WIPO Sequence Validator 작업매뉴얼 IPO 시스템은파일검증을요청하는 HTTP Post 를시작합니다. 환경설정에따라, 특허청시스템은파일의 " 전체 " 또는 " 형식 " 검증을요청할수있습니다. " 형식 " 검증프로세스는 ST.26 파일이 XML 파일인지여부를확인하고 ST.26 DTD 와비교하여 ST.26 파일을확인합니다. " 전체 " 검증프로세스는 " 형식 " 검증프로세스를수행할뿐만아니라 ST.26 의컨텐츠에서파생된업무검증규칙과대비하여 ST.26 파일을검증합니다. 참고 : " 형식 " 검증프로세스는동시에수행될수있으므로온라인제출접수시스템에만사용할것을권장하는반면 " 전체 " 검증은훨씬더오래걸리므로배치프로세스에권장한다. 검증이완료되면, 파일이 " 형식 " 검증을통과했는지여부와, 특허청 IT 시스템이 " 전체 " 검증을선택한경우, 추가로업무규칙검증프로세스가올바로시작되었는지여부를나타내는응답이제공된다. Validator 가 " 전체 " 검증을수행중인경우, " 받은문서 " 폴더에서 XML 파일을검색하여업무규칙검증처리를시작한후다음을수행한다 : Validator 는지정된 " 출력 " 폴더에 XML 보고서파일 (" 검증보고서 ") 을생성하고검증된 WIPO ST.26 XML 파일을 " 보낸문서 " 폴더로이동한다. 업무규칙검증처리가완료된후, 콜백엔드포인트가구성된경우 Validator 에서호출되고, 검증처리와관련된추가정보가요청에추가된다. 요청의구조와일부샘플데이터는아래섹션 4 에제공된다. 콜백엔드포인트는응답에서빈코드또는성공코드를반환해야합니다 ( 오류없음 ). [ 참고 : 이단계는외부웹서비스가사용가능하게되고호출이 Validator 에서구성된경우에만실행됩니다.] Validator 와콜백엔드포인트간의연결도필요합니다. 위에서언급한바와같이, 외부웹서비스는 Validator 의일부를구성하지않으며아래에명시한계약에따라각특허청이개발및구성해야합니다. 특허청시스템은 " 보고서 " 폴더에서검증보고서를검색할수있다.. Page 3 of 38
WIPO Sequence Validator 작업매뉴얼 참고 : WIPO Sequence Validator 는웹 API 를사용하여지적재산데이터를처리및통신하기위한 WIPO 표준 : WIPO ST.90 을준수한다. 1.2. Validator 파일시스템구조의정의 Validator 가사용하는파일시스템의구조는 5 개의폴더로구성된다 : " 받은문서 " 폴더 : 이폴더는검증을위해특허청이 WIPO ST.26 파일을제공하는로컬폴더이다. " 처리 " 폴더 : 이폴더는 " 받은문서 " 에있는파일을처리중임시로전달하는로컬폴더입니다. 이폴더에는 2 개의하위폴더가있습니다 : o " 전체검증 " 폴더 : 전체검증대기중인파일저장. o " 형식검증 " 폴더 : 형식검증대기중인파일저장. " 보낸문서 " 폴더 : 검증이완료되면, 응용프로그램은이로컬폴더에 WIPO ST.26 파일의소스를저장한다 " 보고서 " 폴더 : 이폴더는검증결과를검증보고서파일에저장하는로컬폴더이다 " 매개변수 " 폴더 : 이폴더는비동기식심층검증처리에대한매개변수를제공하기위해 검증요청의모든검증매개변수를갖는 JSON (.json) 파일이있는로컬폴더이다. 예시파일시스템구조는아래에제공된다 : /temp/st26 /temp/st26/inbox /temp/st26/process/full /temp/st26/process/formality /temp/st26/outbox /temp/st26/reports /temp/st26/params [ 중요 : 기본적으로 /temp/st26 디렉토리는도구가있는상위디렉토리에있어야합니다. 예를들어, JAR 또는 WAR 파일이 C:/dev 에있는경우폴더구조는 C:/temp/ST26/ 으로생성되어야합니다.] Page 4 of 38
WIPO Sequence Validator 작업매뉴얼 2. WIPO Sequene Validator 의배포 앞서살펴본바와같이, Validator 는아래에나열된 2 개의바이너리형식중하나로제공된다. 특허청이 Validator 를배포하려는인프라유형에따라, 특허청은다른유형보다한유형의바이너리를선택하는것을선호한다. Validator 가제공되는 2 개의바이너리는다음과같다 : 바이너리 SpringBoot JAR: 이바이너리는실행가능한 JAR 파일이다. 이를위해서는 Java 8 이설치되어있어야한다. War 패키지바이너리 : 이바이너리는 Servlet 컨테이너상에배포하기위한것이다. Tomcat 8.5. 와같이, Spring Boot 2 및 Servlet Spec 3.1+ 와호환되는응용프로그램서버가필요하다. 다음섹션은 Java 응용프로그램서버내에서 Spring Boot app 이나 WAR 로서 Validator 를배포하는것을자세히설명한다. 2.1. Spring Boot JAR 로 Validator 시작하기 Spring Boot JAR 는내장서버를포함하고있어, 별도의서버가없어도 Validator API 를배포할수있다. 이는 IT 인프라차원에서구성및배포를크게단순화한다. 내장서버를실행하려면, 다음명령을실행해야한다. 참고 : Java 8 이서버에이미설치되어있어야한다 : Java 가 UTF-8 의사용을보장하지않으므로시스템속성 "file.encoding" 이 "UTF-8" 로설정되어야한다. 이작업은다음을포함하여수행될수있다 : java -D -jar wipo-sequence-validator.jar Validator API 는 Swagger UI 를통해액세스할수있다 : http://[host-name]:8080/swagger-ui.html Validator API 는다음엔드포인트에서액세스할수있다 : http://[host-name]:8080/api/[version]/status http://[host-name]:8080/api/[version]/validate Page 5 of 38
WIPO Sequence Validator 작업매뉴얼 여기서, 특허청은다음과같이변경해야한다 : [host-name] 은서버호스트이름으로대체해야한다 ; 그리고 [version] 은 Validator API 의버전 ( 예를들어, v1.0) 으로대체되어야한다. 기본적으로서버는포트 8080 에서실행되고, 포트를 --server.port 로변경한다명령행옵션을아래와같이추가해야한다 : java -D"file.encoding=UTF-8" -jar wipo-sequence-validator.jar -server.port=<port-number> 기본적으로 Validator 는자바가상머신 (JVM) 기본메모리설정을사용한다. 기본최대힙크기는사용가능한실제메모리의 4 분의 1 이다. 최대힙크기를수정하려면, 명령행을사용하여실행할때 "-Xmx" 옵션을사용해야한다 2 : java -D"file.encoding=UTF-8" -Xmx[size]-jar wipo-sequence-validator.jar 2.1.1. Validator 를실행응용프로그램으로배포하기 예를들어, Validator 는또한운영체제의시작과함께실행을지원하기위해운영체제에의해관리되는서비스로설치될수있다. WIPO 서열에지원되는모든플랫폼에대해이러한방식으로 Spring Boot JAR 파일을구성할수있다 : Windows, Linux 및 Mac OS. 다음가이드는각운영체제에대해 JAR 파일을실행하는시스템서비스를생성하는방법에대한세부사항을제공한다. 또한서비스의다른옵션을구성하는방법및응용프로그램실행방법에대한정보를제공한다 : https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html 2 https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#babhdabi Page 6 of 38
WIPO Sequence Validator 작업매뉴얼 2.2. WAR 웹서비스로배포 제공된두번째바이너리유형의경우, WAR 패키지는 Apache Tomcat 8.5 와같은기존 Java 응용 프로그램서버에서배포될수있다. 참고 : Servlet 3.1 과호환가능한컨테이너가필요하다. 다음지시사항은 Tomcat 응용프로그램서버를위한것이다. 여기서, "$TOMCAT_ROOT" 는 Tomcat 서버의루트폴더를말하며, 이값은파일경로에대한관련값으로대체되어야한다. a) 서버중지 : $TOMCAT_ROOT\bin\catalina.bat stop b) war 를 $TOMCAT_ROOT\webapps\wipo-sequence-validator.war 에복사 c) 서버시작 : $TOMCAT_ROOT\bin\catalina.bat start 참고 : Java 가 UTF-8 사용을보장하지않으므로시스템속성 "file.encoding 은응용프로그램서버의 시작시 "UTF-8" 로설정되어야한다. 이작업은다음을포함하여수행될수있다 : - D"file.encoding=UTF-8" Validator API 는위에지시된대로 Swagger UI 를통해액세스될수있다 : http://host-name:8080/wipo-sequence-validator/swagger-ui.html Validator API 는다음엔드포인트에서액세스할수있다 : http://[host-name]:8080/wipo-sequence-validator/api/[version]/status http://[host-name]:8080/wipo-sequence-validator/api/[version]/validate 여기서, 특허청은다음과같이변경해야한다 : [host-name] 은서버호스트이름으로대체해야한다, 그리고 [version] 은 API 의버전 ( 예를들어, v1.0) 으로대체되어야한다. 기본적으로, 서버는포트 8080 에서실행된다. 이를다른포트로변경하려면 Tomcat 구성파일을여기에제공된지시사항에따라수정해야한다 : https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#common_attributes 기본적으로, Validator 는 JVM 기본메모리설정을사용한다. 기본최대힙크기는사용가능한실제메모리의 4 분의 1 이다. Page 7 of 38
WIPO Sequence Validator 작업매뉴얼 최대힙크기를수정하려면, 위의섹션 2.1 에서나타낸대로, 명령행을사용하여실행할때 "-Xmx" 옵션을사용해야한다. Page 8 of 38
WIPO Sequence Validator 작업매뉴얼 3. 검증보고서 도구에의해생성된검증보고서는 XML 형식이며사용된템플릿은아래에제공되어있다 : <?xml version="1.0" encoding="utf-8" standalone="yes"?> <VerificationReport productiondate="yyyy-mm-dd" sourcefilename="[st.26 filename]"> <VerificationMessageBag> <VerificationMessage> <Severity>[ERROR WARN XML_WARN XML_ERROR]</Severity> <DataElement>[ST.26 element]</dataelement> <DetectedSequence>[Sequence ID]</DetectedSequence> <DetectedValue>[value]</DetectedValue> <MessageKey>[Message key]</messagekey> <ParameterBag> <Parameter key="param key">param value</parameter> <ParameterBag> <LocalizedMessage> [Localized message] </LocalizedMessage> </VerificationMessage>... </VerificationMessageBag> </VerificationReport> 이검증보고서의예는 Annex III 에제공된이구성요소의허용되는값과함께이매뉴얼에 Annex I 로제공됩니다. 표시된심각도와관련하여, 다음분류에유의하십시오 : ERROR - ' 전체 ' 확인중에반환된오류 WARNING - ' 전체 ' 확인중에반환된경고 XML_ERROR - ' 형식 ' 확인중에반환된오류 XML_WARN - ' 형식 ' 확인중에반환된경고 Page 9 of 38
WIPO Sequence Validator 작업매뉴얼 4. 콜백엔드포인트요청 Validator 에대한콜백엔드포인트에의해이루어진요청은파일위치및검증처리를자세히 설명하는다음매개변수를포함해야한다 : 검증요청의 "seqlinputlocation" 필드는검증할 XML 서열목록의경로를표시하도록설정해야한다. 특허청에서이필드를비워두면, 도구는기본 " 받은문서 " 폴더에있는파일명 "namefile" 을갖는 XML 파일을검증하려고시도한다. "namefile" 매개변수는검증할서열목록파일을확인한다. 요청내의 "verificationreportoutputpath" 는도구로생성된검증보고서 (.xml) 의파일위치를나타낸다. 사용자가필드를공백으로두거나유효하지않은파일경로를입력하면, 검증보고서는기본 " 보고서 " 폴더에저장된다. 4.1. 콜백엔드포인트요청형식 속성 "api.url" 이구성되는경우, Validator 는검증의결과를지정된 URL 을사용하여엔드포인트로 보내려고시도한다. Validator 와통신하려면, 콜백엔드포인트가다음웹서비스계약 (YAML) 을준수해야한다 : openapi: 3.0.0 info: description: Callback for the WIPO Sequence Validator version: "1.0" title: WIPO Sequence Validator Callback paths: /api/validator/callback: post: summary: Return the generated contract operationid: callbackusingpost requestbody: content: application/json: Page 10 of 38
WIPO Sequence Validator 작업매뉴얼 schema: $ref: "#/components/schemas/servicerequest" description: request required: true responses: "200": description: OK "201": description: Created "401": description: UNAUTHORIZED "403": description: FORBIDDEN "404": description: ELEMENT NOT FOUND "500": description: INTERNAL ERROR SERVER deprecated: false servers: - url: //localhost:8080/ components: schemas: Error: type: object required: - code - message properties: code: example: INVALID_VALIDATION_TYPE description: error code message: description: error message moreinfo: description: extended info on the error title: Error MapEntry: type: object properties: key: xml: Page 11 of 38
WIPO Sequence Validator 작업매뉴얼 name: key attribute: true wrapped: false value: title: MapEntry xml: name: Parameter attribute: false wrapped: false ServiceRequest: type: object properties: currentapplicationnumber: currentseqlversionnumber: elapsedtime: type: integer format: int64 endtime: errorsummary: type: array items: $ref: "#/components/schemas/verificationmessage" httpstatus: parentapplicationnumber: parentseqlversionnumber: processid: seqidquantity: type: integer format: int32 seqinputquantity: type: integer format: int32 seqltype: starttime: totalerrorquantity: type: integer Page 12 of 38
WIPO Sequence Validator 작업매뉴얼 format: int32 totalwarningquantity: type: integer format: int32 verificationreportoutputpath: title: ServiceRequest VerificationMessage: type: object properties: dataelement: xml: name: DataElement attribute: false wrapped: false detectedsequence: xml: name: DetectedSequence attribute: false wrapped: false index: type: integer format: int32 key: xml: name: MessageKey attribute: false wrapped: false locmessage: xml: name: LocalizedMessage attribute: false wrapped: false params: type: object additionalproperties: paramsforxml: type: array xml: name: ParameterBag Page 13 of 38
WIPO Sequence Validator 작업매뉴얼 attribute: false wrapped: true items: $ref: "#/components/schemas/mapentry" reportvalue: xml: name: DetectedValue attribute: false wrapped: false sequenceidnumber: type: xml: name: Severity attribute: false wrapped: false title: VerificationMessage xml: name: VerificationMessage attribute: false wrapped: false 또한, 요청은이구조를갖는 JSON 오브젝트여야한다. { "currentapplicationnumber": "string", "currentseqlversionnumber": "string", "elapsedtime": 0, "endtime": "string", "errorsummary": [ { "dataelement": "string", "detectedsequence": "string", "index": 0, "key": "string", "locmessage": "string", "params": { "additionalprop1": "string", "additionalprop2": "string", "additionalprop3": "string" }, "paramsforxml": [ Page 14 of 38
WIPO Sequence Validator 작업매뉴얼 { "key": "string", "value": "string" } ], "reportvalue": "string", "sequenceidnumber": "string", "type": "string" } ], "httpstatus": "string", "parentapplicationnumber": "string", "parentseqlversionnumber": "string", "processid": "string", "seqidquantity": 0, "seqinputquantity": 0, "seqltype": "string", "starttime": "string", "totalerrorquantity": 0, "totalwarningquantity": 0, "verificationreportoutputpath": "string" } 이는 Validator 를호출한외부엔드포인트로보낼예시 JSON 오브젝트이다. { "processid": "1608194222169dvVE", "seqltype": "ST.26", "httpstatus": "SUCCESS", "currentapplicationnumber": "string", "currentseqlversionnumber": "string", "parentapplicationnumber": "string", "parentseqlversionnumber": "string", "verificationreportoutputpath": "C:/temp/report.xml", "starttime": "2020-12-17 09:36:54.000000", "endtime": "2020-12-17 09:37:26.000607", "elapsedtime": 32607, "totalwarningquantity": 1, Page 15 of 38
WIPO Sequence Validator 작업매뉴얼 "totalerrorquantity": 2, "seqinputquantity": 3, "seqidquantity": 3, "errorsummary": [ { "index": 0, "reportvalue": "", "type": "WARNING", "params":com.wipo.st26.ipotool.models.servicerequest@5887858, "key": "X_EARLIEST_PRIO_APPLICATION_ID_MISSING", "locmessage": "Earliest priority application information is absent. It must be provided when a priority claim is made to an earlier application.", }, { }, { "detectedsequence": "", "dataelement": "PROPERTY_NAMES.EARLIEST_PRIORITY_APPLICATION" "index": 0, "reportvalue": "-", "type": "ERROR", "params": {}, "key": "INVENTION_TITLE_MISSING", "locmessage": "The invention title is missing. At least one invention title must be entered.", "detectedsequence": "", "dataelement": "PROPERTY_NAMES.INVENTION_TITLE_BAG" "index": 1, "reportvalue": "-", "type": "ERROR", "params": {}, "key": "INVENTION_TITLE_MISSING", "locmessage": "The invention title is missing. At least one invention title must be entered.", "detectedsequence": "", Page 16 of 38
WIPO Sequence Validator 작업매뉴얼 "dataelement": "PROPERTY_NAMES.INVENTION_TITLE_BAG" } ] } 4.2. 검증보고서 섹션 3 에서언급한대로, 검증후생성된검증보고서는 "verificationreportoutputpath" 에있으며제공된예시에서 "C: /temp/report.xml" 에있다. 이보고서의내용은 "ServiceRequest" 의 "errorsummary" 필드에있는콜백엔드포인트로전송됩니다. 이필드의예시는위의섹션에서제공된예시요청에제공됩니다 4. Page 17 of 38
WIPO Sequence Validator 작업매뉴얼 5. 환경설정 5.1. 기본설정 Validator 는속성파일을사용하여구성된다. 기본 "application.properties" 파일은다음값을갖는다 : ########### WIPO Sequence Validator properties ## -- FOLDERS -- #Base path to be used by the rest of folders app.basepath=/temp/st26/ #Folder to put the files to be processed app.inboxpath=${app.basepath}inbox/ #Folder to store the ST26 files once validated app.outboxpath=${app.basepath}outbox/ #Folder to store the validation reports app.reportspath=${app.basepath}reports/ #Folder to store the parameters app.paramspath=${app.basepath}params/ #Parent folder for full and formality folders app.processpath=${app.basepath}process/ #Files in process for a full validation are stored in this folder app.process.fullpath=${app.processpath}full/ #Files in process for a formality validation are stored in this folder app.process.formalitypath=${app.processpath}formality/ alternativeresourcebasepath=${app.basepath}alt_resources #Preferences #To enable the rule VXQV49 set this value to true, default value is false. app.preferences.optionalenglishqualifiervalue=false # Please enter either: ERROR or WARNING to specifiy the type of the verification message for the rule VXQV_49, default value is "WARNING". app.preferences.optionalruletype=warning #locale used for the localized messages from the verification report validator_locale=en api.url= Page 18 of 38
WIPO Sequence Validator 작업매뉴얼 ## -- Watcher # These properties control the process looking for files in the folders to be processed # (see: https://docs.spring.io/spring-framework/docs/current/javadocapi/org/springframework/scheduling/concurrent/threadpooltaskexecutor.html) processing.delay=10000 processing.corepoolsize=5 #Max number of files being validated concurrently processing.maxpoolsize=10 processing.queuecapacity=1000 processing.enabled=true #### Logging (see https://logback.qos.ch/manual/configuration.html) logging.level.root=info logging.level.org.wipo=info logging.pattern.console=%d{yyyy-mm-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n # HEALTH ENDPOINT management.endpoints.jmx.exposure.include=health # Show details of health endpoint management.endpoint.health.show-details=always 여기에제공된매개변수의값을수정하려면대체 "application.properties" 파일을사용해야 한다. Spring Boot 문서에자세히설명된몇가지옵션이있다 : https://docs.spring.io/springboot/docs/2.0.6.release/reference/html/boot-features-external-config.html#boot-featuresexternal-config-application-property-files 가장간단한옵션은새로운 "application.properties" 를제공하는것이다. 작업순서에따라다음 위치에서검색될파일 : (a) 현재디렉토리내의 "/config" 폴더 [ 참고 : Validator 가 Tomcat 에서 WAR 파일로배포된 경우, 이폴더는 "lib" 폴더, 예를들어, "/opt/apache-tomcat/lib/config" 에있다 ]; (b) 현재디렉토리 [ 참고 : Validator 가 Tomcat 에서 WAR 파일로배포된경우, 이폴더는 "lib" 폴더, 예를들어, "/opt/apache-tomcat/lib/" 에있다 ]; Page 19 of 38
WIPO Sequence Validator 작업매뉴얼 (c) $classpath 또는 config 패키지 ; 이어서 (d) $classpath 루트. 또한, 도구를시작할때명령행에서매개변수를확립하여구성파일의경로와이름을지정할수있다. JAR 배포를위해 : java -jar -Dspring.config.location= <PATH_TO_FILE> wipo-sequence-validator.jar For a WAR deployment on Tomcat, the following entry to CATALINA_OPTS should be added: 내보내기 CATALINA_OPTS="-Dspring.config.location= WAR 배포를사용할때, 새로운 "application.properties" 파일은또한웹애플리케이션의 "WEB- INF/classes" 폴더에복사될수있거나, 기존파일이수정됩니다. 5.2. Configuring verification rule VXQV_49 app.preferences.optionalenglishqualifiervalue=false app.preferences.optionalruletype=warning application.properties 파일의 optionalenglishqualifiervalue 값은사용자가 VXQV_49 규칙을 활성화하려는경우 'true' 로설정할수있으며 optionalruletype 값을 'ERROR' 또는 'WARNING' 으로 업데이트하여규칙의심각도를설정할수있습니다. 이두속성의기본값은위에나와있습니다. 5.3. 엔드포인트상태확인 # HEALTH ENDPOINT management.endpoints.jmx.exposure.include=health Validator 서비스는애플리케이션의 'health' 에대한기본정보를제공하는 /health 엔드포인트를 구현하였습니다. /health 엔드포인트를탐색하기위한 URL 은 http://localhost:8080/wipo-sequence-validator /actuator/health URL 입니다. 엔드포인트는다음을표시해야합니다 : 애플리케이션이정상인한상태는 'UP' 입니다. 데이터베이스연결이나디스크공간부족등의문제로인해애플리케이션이비정상상태가 되면 'DOWN' 이표시됩니다. Page 20 of 38
WIPO Sequence Validator 작업매뉴얼 /health 엔드포인트는단순한 'UP' 또는 'DOWN' 상태만표시합니다. application.properties 파일의 다음속성은상태정검프로세스의일부로확인된모든상태표시기의상태를포함하여전체세부 정보를제공합니다. # Show details of health endpoint management.endpoint.health.show-details=always /health 엔드포인트에는이제상태정검프로세스의일부로실행되는 "DiskSpaceHealthIndicator" 의 세부정보가포함됩니다. 상태엔드포인트는이와같이일련의키 - 값쌍으로표시되며추가세부정보를포함합니다. 예시가 아래에있습니다 : 5.4. 현지화메시지 Validator 는공식적인 10 개의 PCT 언어 ( 아랍어, 중국어, 영어, 프랑스어, 독일어, 포르투갈어, 일본어, 한국어, 러시아어및스페인어 ) 각각의현지화메시지를, 예를들어, 검증보고서에서제공할 수있습니다. 기본적으로이러한메시지는영어로제공됩니다. Validator 가이러한메시지를다른언어로 제공하도록구성하려면, "application.properties" 파일의 "validator_locale" 매개변수가적절한언어 코드로설정되어야합니다. #Local used for the localized messages from the verification report validator_locale=en 참고 : 새 "application.properties" 파일에설정된속성을적용하려면 Validator 를다시시작해야한다. 5.5. 사용자정의생물명 특허청이원래의사전정의된생물명목록의일부를형성하지않는자체사용자정의생물명을 제공하기위해, "alternativeresourcebasepath" 폴더에 "custom_organism.json" 이라는새파일을 만들어사용자정의유기체목록을제공할수있다. 이파일은다음구조를갖는다 : [ {"value":"custom Organism Sample"}, Page 21 of 38
WIPO Sequence Validator 작업매뉴얼 ] {"value":"custom Organism Sample 2"} 참고 : 생물명의사전정의된목록과달리, 모든유기체가알파벳의각문자에대해 JSON 파일로 분리되지않고단일 JSON 파일에포함되어있다. 5.6. Referencing ST.26 DTD files 기본적으로, Validator 는최신버전의 ST.26 DTD 를참조한다. WIPO Sequence Validator 의 현재버전은 WIPO ST.26 DTD 의버전 1.3 을기반으로한다 3. 최신버전의 ST.26 DTD 사본은소스코드의 /src/main/resources 폴더에있는 Validator 라이브러리에포함된다 ( 이는 JAR 또는 WAR 파일내에서참조되는정의된파일경로이다 ). 이는 "catalog.xml" 파일에서참조된다. 아래와같은동일한폴더의파일 : <?xml version="1.0" encoding="utf-8"?> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <public publicid="-//wipo//dtd Sequence Listing 1.3//EN" uri="st26sequencelisting_v1_3.dtd"/> </catalog> 새로운 DTD 를포함하는방법에대한지시사항은아래에자세히설명되어있다. 검증동안, XML 파일의 DOCTYPE 신고서에설정된 DTD 의버전이사용된다. 먼저, "publicid" 를사용하여사용할 DTD 파일의위치를확인한다. "publicid" 가카탈로그에포함되지않은경우, 시스템은 Java 프로세스가실행되는루트폴더에서 DTD 파일을찾으려고시도한다. 5.6.1. 검증을위한대체 DTD 버전을표시하는방법 ST.26 DTD 의이전버전을참조하는 WIPO ST.26 파일을검증할수있으려면, 이 ST.26 DTD 파일이적절한검증을허용하기위해 Validator 에사용할수있어야한다. 이를위해, 두가지대체방법이있다 : (a) JAR 파일의압축을풀고 "src/main/resources" 폴더에추가또는대체 ST.26 DTD 파일에대한참조를포함시킨다. "catalog.xml" 을수정한다파일및추가 ST.26 DTD 에대한새항목을추가하거나기존항목을편집한다. For example: <?xml version="1.0" encoding="utf-8"?> 3 Valid as of April 18, 2022 Page 22 of 38
WIPO Sequence Validator 작업매뉴얼 <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <public publicid="-//wipo//dtd Sequence Listing 1.2//EN" uri="st26sequencelisting_v1_2.dtd"/> <public publicid="-//wipo//dtd Sequence Listing 1.3//EN" uri="st26sequencelisting_v1_3.dtd"/> </catalog> (b) JAR 파일을수정하는대신, 다음단계를따라야한다 : (i) "catalog.xml" 및모든 DTD 를로컬폴더에복사합니다 ; (ii) 추가 ST.26 DTD 에대한참조를포함시키기위해 "catalog.xml" 을수정합니다 ; 그리고 (iii) 시작할때이 Java 시스템속성을설정합니다 : "xml.catalog.files=<path_to_catalog.xml>" 참고 : Windows 용 Tomcat 에서이환경변수를추가하여수행할수있다 : set "JAVA_OPTS=%JAVA_OPTS% -Dxml.catalog.files=C:\\temp\\tomcat\\sharedclasspath\\catalog.xml" [ 중요 : ST.26 DTD 의다른버전을포함하면참조된 ST.26 DTD 에대한 XML 파일의 ' 형식 ' 검증이 가능하지만 ' 전체 ' 검증은검증규칙을구현하기위해소스코드를변경해야할수있다. 따라서 ' 형식 ' 검증을수행할때에만다중 DTD 를사용하는것이권장된다.] Page 23 of 38
WIPO Sequence Validator 작업매뉴얼 6. Validator REST API 이섹션에서, Validator API 의사용사례가명시된다 : 3 개의서비스또는사용사례가있다 : " 받은문서 " 폴더에서파일을검증한다 ; 요청의일부로파일을검증한다 ; 및 검증상태를요청한다. 이 (OAS 3.0 Complete API [YAML File]) 서비스에대한 API 사양은부속서 II 로빠짐없이제공된다. 6.1. WIPO ST.26 파일의검증 요청맵핑 방법 /api/v1/validate POST 사용 생산 응용프로그램 /json 응용프로그램 /json 작업 " 받은문서 " 폴더에있는기존 WIPO ST.26 파일의검증을요청한다. 요청 { Returns a unique verificationid for retrieving the status of the validation request. } "currentapplicationnumber": "string", "currentseqlversionnumber": "string", "parentapplicationnumber": "string", "parentseqlversionnumber": "string", "seqlinputlocation": "string"(location of Input.xml file), "verificationreportoutputpath": "string" (Destination of report.xml), "namefile": "file.xml", "type : "string" (Possible values: full formality), 응답 '202': " 허용됨 ". WIPO ST.26 파일이형식검증을통과하여사업 규칙검증이시작되었습니다. 이코드는또한검증보고서를검색하기 Page 24 of 38
WIPO Sequence Validator 작업매뉴얼 위한고유코드를나타내는응답메시지를포함합니다 ("verificationid"). WIPO ST.26 파일은처리를위해 " 처리 " 폴더로이동합니다. 400 : 요청실패. REST 요청이제대로형성되지않았거나 WIPO ST.26 파일이 XML 검증을통과하지못했다. 이코드는오류의세부사항을표시하는응답메시지로보완된다 '404': 찾을수없음. " 받은문서 " 폴더에서 WIPO ST.26 파일을찾을수없다 '500': 인터넷서버오류. 내부오류가발생하였다. 이코드는오류의세부사항을표시하는응답메시지로보완된다 사전조건 WIPO ST.26 파일은사용자가지정한 " 받은문서 " 폴더에제공되어야한다. 사후조건 WIPO ST.26 파일은 verifyreportoutputpath 에제공된위치또는다음 위치의 " 보낸문서 " 폴더로이동합니다 : /[outbox]/[verificationid]/[file.xml] 검증보고서는다음에생성된다 : /[reports]/ [verificationid]/report_[file.xml] 해당 OAS 3.0 정의 [YAML 사양에서 ] /api/v1.0/validate: post: tags: - validation-controller 요약 : ' 받은문서폴더에있는기존 ST26 파일의검증요청. 고유값반환 verificationid for retrieving the status of the validation request' operationid: validationfileusingpost consumes: - application/json produces: - application/json parameters: - in: body name: request description: 'ST26 File name for validation' Page 25 of 38
WIPO Sequence Validator 작업매뉴얼 required: false schema: $ref: '#/definitions/validationrequest' responses: '200': description: OK schema: $ref: '#/definitions/validationresponse' '201': description: Created '202': description: 'Accepted. The ST26 file passed the formal validation and their verification has started. This code will be complemented with a response message indicating a unique code for retrieving the verification report (verificationid). ST26 file is moved to the process folder for processing' schema: $ref: '#/definitions/validationresponse' '400': description: 'Bad request. The REST request was not well formed or the ST26 file did not pass the XML validation. This code will be complemented with a response message indicating the detail of the error' '401': description: Unauthorized '403': description: Forbidden '404': description: 'File not found. The ST26 file was not found in the Inbox Folder' '500': description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' deprecated: false Page 26 of 38
WIPO Sequence Validator 작업매뉴얼 6.2. 검증상태요청하기 요청맵핑방법사용생산 /api/v1/status POST application/json application/json 작업 특정 WIPO ST.26 파일에대한검증상태요청 요청 { } verificationid: {} 응답 '200': 성공. 이코드는또한다음에서선택된검증처리의상태를 갖는고유 ID 를나타내는응답메시지를포함한다 : o o o o o RUNNING : 파일이처리중이다 FINISHED-VALID : 파일이형식검증을성공적으로통과했으며, 검증결과가보고서폴더에서사용가능하다. FINISHED-INVALID : 처리가완료되었지만파일이형식검증을통과하지못했다. 검증결과가보고서폴더에서사용가능하다 NOT_FOUND : "verificationid" 를찾지못했다 VERIFICATION_ID_ERROR : "verificationid" 가요청에포함되지않았다 400 : 요청실패. REST 요청이잘형성되지않았다. '500': 서버오류. 내부오류가발생하였다. 이코드는또한오류의 세부사항을표시하는응답메시지를포함한다 사후조건검 Validator 가검증상태를제공한다. 추정 - Page 27 of 38
WIPO Sequence Validator 작업매뉴얼 Page 28 of 38
WIPO Sequence Validator 작업매뉴얼 해당 OAS 3.0 정의 [YAML 사양에서 ] paths: /api/v1.0/status: post: tags: - validation-controller 요약 : ' 특정 ST26 파일에대한검증상태요청 ' operationid: getstatususingpost consumes: - application/json produces: - application/json parameters: - in: body name: request description: 'ST26 File name Object for validation status' required: false schema: $ref: '#/definitions/validationstatusrequest' responses: '200': description: 'This code will be complemented with a response message indicating the Status of the verification process: RUNNING (the file is being processed) FINISHED-VALID (the file passed the formality validation and the result of the validation is available in the reports folder) FINISHED-INVALID (the file passed the formality validation and the result of the validation is available in the reports folder)' schema: $ref: '#/definitions/validationstatusresponse' '201': description: Created '400': description: 'Bad request. The REST request was not well formed' '401': description: Unauthorized '403': description: Forbidden '404': description: 'Not Found' Page 29 of 38
WIPO Sequence Validator 작업매뉴얼 '500': description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' deprecated: false [ 부속서 I 첨부 ] Page 30 of 38
WIPO Sequence Validator 작업매뉴얼 부속서 I: 검증보고서예시 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <VerificationReport productiondate="2020-12-17" sourcefilename="valid2warning.xml"> <VerificationMessageBag> <VerificationMessage> <Severity>WARNING</Severity> <DataElement>PROPERTY_NAMES.EARLIEST_PRIORITY_APPLICATION</DataElement> <DetectedSequence></DetectedSequence> <DetectedValue></DetectedValue> <MessageKey>X_EARLIEST_PRIO_APPLICATION_ID_MISSING</MessageKey> <ParameterBag/> <LocalizedMessage>Earliest priority application information is absent. It must be provided when a priority claim is made to an earlier application.</localizedmessage> </VerificationMessage> <VerificationMessage> <Severity>ERROR</Severity> <DataElement>PROPERTY_NAMES.INVENTION_TITLE_BAG</DataElement> <DetectedSequence></DetectedSequence> <DetectedValue>-</DetectedValue> <MessageKey>INVENTION_TITLE_MISSING</MessageKey> <ParameterBag/> <LocalizedMessage>The invention title is missing. At least one invention title must be entered.</localizedmessage> </VerificationMessage> <VerificationMessage> <Severity>ERROR</Severity> <DataElement>PROPERTY_NAMES.INVENTION_TITLE_BAG</DataElement> <DetectedSequence></DetectedSequence> <DetectedValue>-</DetectedValue> <MessageKey>INVENTION_TITLE_MISSING</MessageKey> <ParameterBag/> <LocalizedMessage>The invention title is missing. At least one invention title must be entered.</localizedmessage> </VerificationMessage> </VerificationMessageBag> </VerificationReport> [ 부속서 II 첨부 ] Page 31 of 38
WIPO Sequence Validator 작업매뉴얼 부속서 II: 전체 API 사양 (YAML) swagger: '2.0' info: description: 'API for the WIPO Sequence Validator' version: '1.0' title: 'WIPO Sequence Validator API' host: 'localhost:8080' basepath: / tags: - name: validation-controller description: 'Validation Controller' paths: /api/v1.0/status: post: tags: - validation-controller 요약 : ' 특정 ST26 파일에대한검증상태요청 ' operationid: getstatususingpost consumes: - application/json produces: - application/json parameters: - in: body name: request description: 'ST26 File name Object for validation status' required: false schema: $ref: '#/definitions/validationstatusrequest' responses: '200': description: 'This code will be complemented with a response message indicating the Status of the verification process: RUNNING (the file is being processed) FINISHED-VALID (the file passed the formality validation and the result of the validation is available in the reports folder) FINISHED-INVALID (the file passed the formality validation and the result of the validation is available in the reports folder)' schema: Page 32 of 38
WIPO Sequence Validator 작업매뉴얼 $ref: '#/definitions/validationstatusresponse' '201': description: Created '400': description: 'Bad request. The REST request was not well formed' '401': description: Unauthorized '403': description: Forbidden '404': description: 'Not Found' '500': description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' deprecated: false /api/v1.0/validate: post: tags: - validation-controller 요약 : ' 받은문서폴더에있는기존 ST26 파일의검증요청. 검증요청상태를검색하기위한고유 검증 ID 반환 ' operationid: validationfileusingpost consumes: - application/json produces: - application/json parameters: - in: body name: request description: 'ST26 File name for validation' required: false schema: $ref: '#/definitions/validationrequest' responses: '200': description: OK schema: $ref: '#/definitions/validationresponse' '201': description: Created '202': Page 33 of 38
WIPO Sequence Validator 작업매뉴얼 description: 'Accepted. The ST26 file passed the formal validation and their verification has started. This code will be complemented with a response message indicating a unique code for retrieving the verification report (verificationid). ST26 file is moved to the process folder for processing' schema: $ref: '#/definitions/validationresponse' '400': description: 'Bad request. The REST request was not well formed or the ST26 file did not pass the XML validation. This code will be complemented with a response message indicating the detail of the error' '401': description: Unauthorized '403': description: Forbidden '404': description: 'File not found. The ST26 file was not found in the Inbox Folder' '500': description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' deprecated: false definitions: ValidationRequest: type: object required: - namefile - type - verificationreportoutputpath properties: namefile: example: file.xml description: 'File Name Validation' type: example: 'full or formality' description: 'Type of validation' currentapplicationnumber: example: 1.3 Page 34 of 38
WIPO Sequence Validator 작업매뉴얼 description: 'The application number associated with the sequence listing' currentseqlversionnumber: example: 1.2 description: 'the version number of this sequence listing (internally assigned by an Office)' parentapplicationnumber": example: WIPO-1234 description: 'Any associated parent application' parentseqlversionnumber: example: 1.1 description: 'The version number of the parent s sequence listing' seqlinputlocation: example: /st26/inbox/file.xml description: 'Contains the path of the input xml file to be validated' verificationreportoutputpath: example: /st26/outbox/file.xml description: 'Will contain the destination path of the report.xml generated by the tool.' title: ValidationRequest description: 'Class representing a response Validation status File by the application.' ValidationResponse: type: object required: - verificationid properties: errormsg: verificationid: example: 1552208288697FNc2 description: verificationid title: ValidationResponse description: 'Class representing a response Validation ST26 File by the application.' ValidationStatusRequest: type: object required: Page 35 of 38
WIPO Sequence Validator 작업매뉴얼 - verificationid properties: verificationid: example: 1552208288697FNc2 description: verificationid title: ValidationStatusRequest description: 'Request of the validation status of an ST26 File' ValidationStatusResponse: type: object required: - status properties: status: example: 'RUNNING - FINISHED_VALID - FINISHED_INVALID' description: 'Valdation Status File' reportpath: example: /st26/reports/1552208288697fnc2/report_file.xml description: ReportFilePath title: ValidationStatusResponse description: 'Response with the validation status for a specific verificationid.' [ 부속서 III 첨부 ] Page 36 of 38
WIPO Sequence Validator 작업매뉴얼 부속서 III: 속성이름 (JSON) { "dtdversion": "PROPERTY_NAMES.DTD_VERSION", "filename": "PROPERTY_NAMES.FILE_NAME", "softwarename": "PROPERTY_NAMES.SW_NAME", "softwareversion": "PROPERTY_NAMES.SW_VERSION", "productiondate": "PROPERTY_NAMES.PRODUCTION_DATE", "project": "PROPERTY_NAMES.PROJECT", "nonenglishfreetextlanguagecode": "PROPERTY_NAMES.NON_ENGLISH_FREE_TEXT_LANGUAGE_CODE", "originalfreetextlanguagecode": "PROPERTY_NAMES.ORIGINAL_FREE_TEXT_LANGUAGE_CODE", "name": "PROPERTY_NAMES.PROJECT_NAME", "applicationidentification": "PROPERTY_NAMES.APPLICANT_IDENTIFICATION", "applicationidentification.filingdate": "PROPERTY_NAMES.APPLICANT_IDENTIFICATION", "applicantfilereference": "PROPERTY_NAMES.APPLICANT_FILE_REFERENCE", "priorityinformationbag": "PROPERTY_NAMES.PRIORITY_INFORMATION_BAG", "earliestpriorityapplicationidentification": "PROPERTY_NAMES.EARLIEST_PRIORITY_APPLICATION", "earliestpriorityapplicationidentification.filingdate": "PROPERTY_NAMES.EARLIEST_PRIORITY_APPLICATION", "applicantname": "PROPERTY_NAMES.APPLICANT", "applicantlist": "PROPERTY_NAMES.APPLICANT", "applicantname.name": "PROPERTY_NAMES.APPLICANT_NAME", "applicantname.languagecode": "PROPERTY_NAMES.APPLICANT_LANGUAGE_CODE", "applicantname.namelatin": "PROPERTY_NAMES.APPLICANT_NAME_LATIN", "inventorname": "PROPERTY_NAMES.INVENTOR", "inventorlist": "PROPERTY_NAMES.INVENTOR", "inventorname.name": "PROPERTY_NAMES.INVENTOR_NAME", "inventorname.languagecode": "PROPERTY_NAMES.INVENTOR_LANGUAGE_CODE", "inventorname.namelatin": "PROPERTY_NAMES.INVENTOR_NAME_LATIN", "inventiontitlebag": "PROPERTY_NAMES.INVENTION_TITLE_BAG", "sequencetotalquantity": "PROPERTY_NAMES.SEQUENCE_TOTAL_QUANTITY", "sequencedatabag": "PROPERTY_NAMES.SEQUENCE_DATA_BAG", "sequenceidnumber": "PROPERTY_NAMES.SEQUENCE_ID_NUMBER", "length": "PROPERTY_NAMES.SEQUENCE_LENGTH", "INSDSeqMoltype": "PROPERTY_NAMES.SEQ_MOL_TYPE", "INSDQualifierMolType": "PROPERTY_NAMES.QUAL_MOL_TYPE", "organism": "PROPERTY_NAMES.ORGANISM", "division": "PROPERTY_NAMES.DIVISION", "INSDSeq_other-seqids": "PROPERTY_NAMES.INSDSEQ_OTHER-SEQIDS", "featuretable": "PROPERTY_NAMES.FEATURE_TABLE", "featurekey": "PROPERTY_NAMES.FEATURE_KEY", Page 37 of 38
WIPO Sequence Validator 작업매뉴얼 } "featurelocation": "PROPERTY_NAMES.FEATURE_LOCATION", "featurequals": "PROPERTY_NAMES.FEATURE_QUALS", "qualifierid": "PROPERTY_NAMES.QUALIFIER_ID", "qualifiername": "PROPERTY_NAMES.QUALIFIER_NAME", "qualifiervalue": "PROPERTY_NAMES.QUALIFIER_VALUE", "qualifiertranslatedvalue": "PROPERTY_NAMES.QUALIFIER_TRANSLATED_VALUE", "INSDSeqSequence": "PROPERTY_NAMES.SEQ_SEQUENCE" 이것은소스코드의일부이며구현과함께필요에따라업데이트되는점을참고바랍니다. [ 문서의끝 ] Page 38 of 38