Joe Wolf: USPTO

download Joe Wolf: USPTO

of 14

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of Joe Wolf: USPTO

  • 1.United States Patent & Trademark Ofce! !America Invents Act! and Alfresco!!Presented by !Joe Wolf!Software Developer, USPTO OCIO! ! ! ! March 5, 2013!

2. The Disclaimer! Views expressed in this presentation are my own and not necessarily representative of the views of the U.S. Patent & Trademark Ofce or Department of Commerce.! Discussions regarding specic software products or vendors do not constitute an endorsement of said products or vendors by the U.S. Patent & Trademark Ofce or Department of Commerce.! 3. The Law! Leahy-Smith America Invents Act (AIA)! Signed September 15th, 2011! Introduces signicant reforms! USPTO granted fee setting authority! No more Tax Code compliance strategy patents! First to Invent First Inventor to File! Expanded Post-Grant procedures and reviews! And more!! 4. The Requirements! Support ling of AIA Petitions! Inter Partes Review! Transition program for Covered Business Methods! Post-Grant Review ! Collect documents! Papers & Exhibits! Public, private, or condential visibility! Collect payments! Support PTAB workow, email notications! Provide public access to documents!! 5. The Architecture! Petitioners, Public COTS Case Management Product!!Alfresco 4.0 Support Petitions Workow!CMIS!Enterprise! Send Notications! ! Collect Payments! Persist Documents! Persist Case Metadata! Provide Public Search! USPTO Personnel 5! 6. The Constraints! Congressionally-mandated deadline! First production system to use Alfresco and Case Management COTS Product! Case Management COTS Product limitations! Only supported CMIS! Handled user registration and authentication! Closed architecture! 6! 7. The Strategies! CMIS Only! Single, top-level DropZone for Case creation! ! Cases/DropZone/ Cases/2013/PGR/00/createFolder PGR2013-OnCreateNodePolicyPGR2013- 00001 00001 1. Validate uniqueness of CaseID 2. Move folder 3. Track CaseID in attributeService 4. Create case sub- folders with ACLs7! 8. The Strategies! CMIS Only! Case-specic Drop Zones for ling documents! PGR2013-00001/Record/ PGR2013-00001/ Exhibit/Petitioner cases:exhibitcases:exhibitcreateDoc OnCreateNodePolicy cases:filingParty= cmis:name= petitioner Exhibit1001.pdf cases:exhibitNo= 1. Move to appropriatecases:caseId= 1001 subfolder/renamePGR2013-000012. Apply caseId aspect3. Apply ACLs basedon visibility, ifnecessary8! 9. The Strategies! Externalized User Registration/Authentication! Trusted connection between Case ManagementProduct and Alfresco! cmisprpsname> org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet class> callContextHandlername> gov.uspto.prps.AutoAuthCallContextHandler value> param> 8on-startup> 9! 10. The Strategies! Externalized User Registration/Authentication! Alfresco users created on demand!public Map getCallContextMap(HttpServletRequest request) { // ...extract username from HTTP request String ticket = ticketComponent.getCurrentTicket(username, true); AuthenticationUtil.runAs(new RunAsWork() { @Override public NodeRef doWork() throws Exception { return personService.getPerson(username); // call has side-effect! } }, AuthenticationUtil.getSystemUserName()); Map context = new HashMap(); context.put(CallContext.USERNAME, ""); context.put(CallContext.PASSWORD, ticket); return context; } 10! 11. The Strategies! Externalized User Registration/Authentication! Dynamic group assignments based onmetadata provided in CMIS call!// during execution of onCreateNode policy for documents... String user = AuthenticationUtil.getFullyAuthenticatedUser(); String group = groupName(caseId, filingParty); // hides PermissionService.GROUP_PREFIX weirdness Set groupMembers = authorityService .getContainedAuthorities(AuthorityType.USER, group, true); if (groupMembers == null || !groupMembers.contains(user)) { authorityService.addAuthority(group, user); } 11! 12. The Strategies! Closed Architecture! Folder structure reects business view! Content model holds key metadata! Use CMIS! Expunging! Reporting! Auditing! Multi-document PDF generation!12! 13. The Wish List! Generate code from content model XML! e.g. XJC (JAXB), wsdl2java, hbm2java! Support Webscripts written in any JSR 223- compliant language! CRUD in CMIS Query Language! Apache Chemistry to go 1.0! Servlet 3.0/JavaEE 6 support or URL dispatching via Spring Web! 13! 14. The End! 14!