ECM Technical Solution


Published on

ECM Technical Solution

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

ECM Technical Solution

  1. 1. Author:  Diego  Thanh  Nguyen  ORACLE  FUSION  –  CONTENT  REPOSITORY  TECHNICAL  SOLUTION  10/8/12   1  
  2. 2. q I.  Introduction  to  WebDAV  &  Apache  Jackrabbit   v I.1.  WebDAV   v I.2.  Apache  Jackrabbit  q II.  Technical  Solution   v High-­‐Level  Architecture   v Oracle  Fusion  Groupware  Component   v Pilot  Sample  –  “view  appointments  of  a  week”     v UseCase   v Detail  Design  &  Sequence  Diagram   v Pseudo  Code   10/8/12   2  
  3. 3. I.1.  WebDAV  q Web-­‐based  Distributed  Authoring  &  Versioning  q WebDAV  (RFC  2518  -­‐  deYined  by  IETF)   v Namespace  management      (Collections)   v Metadata  for  Web-­‐resources      (Properties)   v Overwrite  protection      (Locking)  q WebDAV  Extensions   v Versioning  of  resources  (RFC  3253)     v Searching  &  Locating   v Access  Control  q Uses  XML  for  properties,  control,  status   3  
  4. 4. I.2.  WebDAV  –  HTTP  extensions  q HTTP   q WebDAV  (additional  methods)   v Options   v PropFind   v Get   v PropPatch   v Post   v MkCol   v Put   v Delete  for  collections   v Head   v Put  for  collections   v Delete   v Copy,  Move   v Trace   v Lock,  Unlock   v Connect   q Body  ==  XML   4  
  5. 5. I.2.  JCR  Features  
  6. 6. I.2.  JCR  Features  
  7. 7. I.2.  JCR  Features  
  8. 8. I.2.  Jackrabbit  architecture  
  9. 9. II.1.  High-­‐Level  Architecture  CLIENT SERVER COLLABORATION SERVER JSR-168 CONTAINER MS Exchange 2003 JSR-168 PORTLETS – Spring Portlet MVC Framework Presentation/Interface Tier Lotus Domino Email Connector JSTL JSTL XMLBeans Java Transaction API Java Server Pages WebDAV Server Java Server Pages JDOM (JSR 102) Calendar EnterConnect Groupware API Struts Struts Spring Web Contact Web browser Services Tier Jakarta Slide API OpenGroupware (IE, FireFox, etc.) Task Connector Spring Java Transaction Uploaded Spring Spring Document Remoting Message- Remoting Driven Jakarta Commons HTTP Client Spring Beans Enterprise Jakarta Commons Logging Java Beans INTERNET/ INTRANET Domino Lotus Server Integration Tier Connector Exchange Spring Email Spring Messaging Java Database WebDAV Server Connectivity Java Calendar Messaging Contact Enterprise Application Services Task Authentication/ Logging/ Uploaded Authorization Tracing Document 9  
  10. 10. II.2.1.  EC  Groupware  Component  EnterConnect Groupware API: A unified interface for all connectors thataccess the groupware servers via WebDAV, applying Singleton, Façade andFactory design patterns All connectors utilize the Jakarta EnterConnect Groupware API Slide (client-side) API to send requests to and receive responses Exchange OpenGroupware Lotus Domino from a variety of WebDAV-enabled Connector Connector Connector groupware servers MS Exchange 2003 Email Jakarta Slide API WebDAV Server XML HTTP request Calendar Jakarta Commons HTTP Client JDOM (JSR 102) Contact XML HTTP response Jakarta Commons Logging Java Transaction API Task Uploaded DocumentJakarta Slide re-uses some of open source libraries such as the JakartaCommons library (HTTP Client and Logging), JDOM (JSR 102), JTA, JMX, … 10  
  11. 11. II.2.2.  EC  Groupware  Design  Pattern   <<Factory Method>> «interface» TasksManager <<Abstract Factory>> ECGroupwareFactory <<Façade>> ExchangeTasksManager <<Singleton>> ECLotusDominoConnector ECOpenGroupwareConnector ECExchangeConnector ExchangeCalendarManager ExchangMailManager «interface» «interface» MailManager CalendarManager Apache Slide Class 11  
  12. 12. II.3.1.  Pilot  Sample  –  UseCase  (1)  Use Case View appointments of a weekDescription The goal of this use case is to allow end-user to view his/her appointments of the selected week.Actors End-userPreconditions 1. The end-user’s account has been configured. 2. The end-user is opening the Calendar page.Steps 1. The end-user would like to view the appointments of a week by selecting week view of Calendar. àThe system will display the list of appointments of the current week. 2. The end-user would like to see the appointments of another week by selecting another week. àThe system will display the list of appointments of the selected week.Variations (optional) TBDNon-Functional (optional) TBDIssues TBD 12  
  13. 13. II.3.1.  Pilot  Sample  –  UseCase  (2)  Screen  shot:   13  
  14. 14. II.3.2.  Pilot  Sample  –  Sequence  Diagram  (1)     portlet: CalendarPortlet service: CalendarService connector: ECGroupwareConnector Exchange Server   1: getCalendarWeekModel() 2: getWeekAppointmentList() 3: prepareWebdavRequest() 4: getList OfA ppointment [ Webdav reques t] 5: result (list of appointments) in the xml format 6: parseAppointmentIds() 7: prepareWebdavRequest() 8: getAppointmentDet ails [W ebdav request ] 9: appointment details in xml format 10: parseAppointmentDetails() 11: Appoinment Model instance list 12: getAdditionInfo() 13: prepareCalendarWeekModel() 14: a CalendarWeekModel instance 14  
  15. 15. II.3.2.  Pilot  Sample  -­‐  Sequence  Diagram  (2)    Method Description 1:getCalendarWeekModel()   Get  data  from  server  and  return  the  model  for  the  Calendar  Week   View  page. 2:getWeekAppointmentList() Get  data  from  server  and  return  the  list  of  Appointment  instances   in  a  week  of  a  user. 3:prepareWebdavRequest() Create  the  Webdav  request  to  get  the  list  of  appointments  in  a   week. 4:getListOfAppointment   Perform  the  Webdav  request  have  created  in  3: 6:parseAppointmentIds() Parse  the  xml  data  from  server  to  get  the  Ids  of  the  appointments. 7:  prepareWebdavRequest() Create  the  Webdav  request  to  get  the  appointments  details 8:getAppointmentDetails Perform  the  Webdav  request  have  create  in  7 10:parseAppointmentDetails() Parse  the  xml  data  from  server  to  get  the  appointment  details. 12:getAdditionInfo() Get  some  addition  info  necessary  for  the  Calendar  Week  View   page  (e.g.  Public  Folders,  Private  Folders,  etc.) 13:prepareCalendarWeekModel() Transform  the  appointment  list  &  additional  data  above  into  the   CalendarWeekModel. 15  
  16. 16. 3.3.3.  Pilot  Sample  -­‐  Model  Classes  q Some  Model  Classes  related  to  this  scenario.       16  
  17. 17. 3.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (1)  q Class  CalendarManager     17  
  18. 18. II.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (2)  q Class  CalendarService     18  
  19. 19. Application  Directory   1 4 1.  Portal project 2 2.  Spring Config 3.  Modules 4.  Libraries 3 19  
  20. 20. Screenshot:  Login  Screen  URL: localhost:7001/insidebridgeway/insidebridgeway.portal 20  
  21. 21. Screenshot:  Home  Page   21  
  22. 22. News/Message  Portlet   1 4 5 8 22  
  23. 23. News/Message  Portlet  Item Portlet Type Porlet Edit Page Flow Content Page Flow No. Instances 1 News / Bridgeway /portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/ Message News Alert epContentEditorController.jpf 4 News / Executive /portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/ Message Message epContentEditorController.jpf 5 News / Whats New /portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/ Message epContentEditorController.jpf 8 News / Company /portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/ Message News epContentEditorController.jpf 23  
  24. 24. Home  Page  Portlets   1 4 7 2 5 3 6 8 9 10 24  
  25. 25. Home  Page:  Other  Portlets  Item Portlet Type Porlet Instances Edit Page Flow Content Page Flow 2 Links Company Links /portlets/epLinks/epLinksAdmin/ /portlets/epLinks/EpLinksController.jpf EpLinksAdminController.jpf 3 Calendar Company Calendar /portlets/Calendar/CalendarController.jpf 6 Discussion Company /portlets/collaboration/nativedb/discussion/ /portlets/collaboration/nativedb/discussion/admin/Content/ Forums Discussion Boards admin/Content/ContentController.jpf ContentController.jpf 7 Contacts Company Directory /portlets/Contacts/ContactsController.jpf Controller 9 Broadcast Broadcast News /portlets/RSSCMS/edit/editController.jpf /portlets/RSSCMS/RSSController.jpf News 10 Popular Popular Documents /portlets/epContentRepository/folderContent/ Documents FolderContentController.jpf 25  
  26. 26. Document  Library  Page   12 11 13 14 26  
  27. 27. Document  Library  Page:   Portlets  Item Portlet Type Porlet Instances Edit Page Content Page Flow Flow 12 Document Library Document Library /portlets/epContentRepository/statistics/StatisticsController.jpf Statistics Statistics 13 My Documents My Documents /portlets/epContentRepository/myContributions/MyContributionsController.jpf 14 Recently Submitted Recently Submitted /portlets/epContentRepository/recentlySubmittedContent/ Documents Documents RecentlySubmittedContentController.jpf 11 Document Library Document Repository /portlets/epContentRepository/browse/BrowseController.jpf 15 27  
  28. 28. THANK  YOU  !  10/8/12   28