ECM Technical Solution

Uploaded on

ECM Technical Solution

ECM Technical Solution

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Author:  Diego  Thanh  Nguyen  ORACLE  FUSION  –  CONTENT  REPOSITORY  TECHNICAL  SOLUTION  10/8/12   1  
  • 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. 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. 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. I.2.  JCR  Features  
  • 6. I.2.  JCR  Features  
  • 7. I.2.  JCR  Features  
  • 8. I.2.  Jackrabbit  architecture  
  • 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. 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. 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. 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. II.3.1.  Pilot  Sample  –  UseCase  (2)  Screen  shot:   13  
  • 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. 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. 3.3.3.  Pilot  Sample  -­‐  Model  Classes  q Some  Model  Classes  related  to  this  scenario.       16  
  • 17. 3.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (1)  q Class  CalendarManager     17  
  • 18. II.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (2)  q Class  CalendarService     18  
  • 19. Application  Directory   1 4 1.  Portal project 2 2.  Spring Config 3.  Modules 4.  Libraries 3 19  
  • 20. Screenshot:  Login  Screen  URL: localhost:7001/insidebridgeway/insidebridgeway.portal 20  
  • 21. Screenshot:  Home  Page   21  
  • 22. News/Message  Portlet   1 4 5 8 22  
  • 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. Home  Page  Portlets   1 4 7 2 5 3 6 8 9 10 24  
  • 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. Document  Library  Page   12 11 13 14 26  
  • 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. THANK  YOU  !  10/8/12   28