Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
United States Patent & Trademark Office!                   !    America Invents Act!       and Alfresco!                  !...
The Disclaimer!•  Views expressed in this presentation are my   own and not necessarily representative of the   views of t...
The Law!•  Leahy-Smith “America Invents Act” (AIA)!•  Signed September 15th, 2011!•  Introduces significant reforms!    –  ...
The Requirements!•  Support filing of AIA Petitions!    –  Inter Partes Review!    –  Transition program for Covered Busine...
The Architecture!             Petitioners, Public COTS Case Management       Product!                !                    ...
The Constraints!•  Congressionally-mandated deadline!•  First production system to use Alfresco and Case   Management COTS...
The Strategies!•  CMIS Only!   –  Single, top-level “DropZone” for Case creation!   !               Cases/DropZone/       ...
The Strategies!•  CMIS Only!   –  Case-specific Drop Zones for filing documents!                                            ...
The Strategies!•  Externalized User Registration/Authentication!   –  Trusted connection between Case Management      Prod...
The Strategies!•  Externalized User Registration/Authentication!   –  Alfresco users created on demand!public	  Map<String...
The Strategies!•  Externalized User Registration/Authentication!   –  Dynamic group assignments based on      metadata pro...
The Strategies!•  Closed Architecture!   –  Folder structure reflects business view!   –  Content model holds key metadata!...
The Wish List!•  Generate code from content model XML!    –  e.g. XJC (JAXB), wsdl2java, hbm2java!•  Support Webscripts wr...
The End!           14!
Upcoming SlideShare
Loading in …5
×

Joe Wolf: USPTO

5,363 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Joe Wolf: USPTO

  1. 1. United States Patent & Trademark Office! ! America Invents Act! and Alfresco! ! Presented by ! Joe Wolf! Software Developer, USPTO OCIO! ! ! ! March 5, 2013!
  2. 2. The Disclaimer!•  Views expressed in this presentation are my own and not necessarily representative of the views of the U.S. Patent & Trademark Office or Department of Commerce.!•  Discussions regarding specific software products or vendors do not constitute an endorsement of said products or vendors by the U.S. Patent & Trademark Office or Department of Commerce.!
  3. 3. The Law!•  Leahy-Smith “America Invents Act” (AIA)!•  Signed September 15th, 2011!•  Introduces significant 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. 4. The Requirements!•  Support filing of AIA Petitions! –  Inter Partes Review! –  Transition program for Covered Business Methods! –  Post-Grant Review !•  Collect documents! –  Papers & Exhibits! –  Public, private, or confidential visibility!•  Collect payments!•  Support PTAB workflow, email notifications!•  Provide public access to documents! !
  5. 5. The Architecture! Petitioners, Public COTS Case Management Product! ! Alfresco 4.0•  Support Petitions Workflow! CMIS! Enterprise!•  Send Notifications! !•  Collect Payments! •  Persist Documents!•  Persist Case Metadata!•  Provide Public Search! USPTO Personnel 5!
  6. 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. 7. The Strategies!•  CMIS Only! –  Single, top-level “DropZone” for Case creation! ! Cases/DropZone/ Cases/2013/PGR/00/createFolder PGR2013- OnCreateNodePolicy PGR2013- 00001 00001 1.  Validate uniqueness of CaseID 2.  Move folder 3.  Track CaseID in attributeService 4.  Create case sub- folders with ACLs 7!
  8. 8. The Strategies!•  CMIS Only! –  Case-specific Drop Zones for filing documents! PGR2013-00001/Record/ PGR2013-00001/ Exhibit/Petitioner cases:exhibit cases:exhibitcreateDoc OnCreateNodePolicy cases:filingParty= cmis:name= petitioner Exhibit1001.pdf cases:exhibitNo= 1.  Move to appropriate cases:caseId= 1001 subfolder/rename PGR2013-00001 2.  Apply caseId aspect 3.  Apply ACLs based on visibility, if necessary 8!
  9. 9. The Strategies!•  Externalized User Registration/Authentication! –  Trusted connection between Case Management Product and Alfresco!<servlet>      <servlet-­‐name>cmisprps</servlet-­‐name>      <servlet-­‐class>          org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet      </servlet-­‐class>      <init-­‐param>            <param-­‐name>callContextHandler</param-­‐name>            <param-­‐value>                gov.uspto.prps.AutoAuthCallContextHandler            </param-­‐value>      </init-­‐param>      <load-­‐on-­‐startup>8</load-­‐on-­‐startup>  </servlet>   9!
  10. 10. The Strategies!•  Externalized User Registration/Authentication! –  Alfresco users created on demand!public  Map<String,  String>  getCallContextMap(HttpServletRequest  request)  {      //  ...extract  username  from  HTTP  request      String  ticket  =  ticketComponent.getCurrentTicket(username,  true);            AuthenticationUtil.runAs(new  RunAsWork<NodeRef>()  {          @Override          public  NodeRef  doWork()  throws  Exception  {              return  personService.getPerson(username);  //  call  has  side-­‐effect!          }      },  AuthenticationUtil.getSystemUserName());              Map<String,  String>  context  =  new  HashMap<String,  String>();      context.put(CallContext.USERNAME,  "");      context.put(CallContext.PASSWORD,  ticket);      return  context;  }   10!
  11. 11. The Strategies!•  Externalized User Registration/Authentication! –  Dynamic group assignments based on metadata 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<String>  groupMembers  =  authorityService              .getContainedAuthorities(AuthorityType.USER,  group,  true);    if  (groupMembers  ==  null  ||  !groupMembers.contains(user))  {      authorityService.addAuthority(group,  user);  }   11!
  12. 12. The Strategies!•  Closed Architecture! –  Folder structure reflects business view! –  Content model holds key metadata! –  Use CMIS! •  Expunging! •  Reporting! •  Auditing! •  Multi-document PDF generation! 12!
  13. 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. 14. The End! 14!

×