Author:	  Diego	  Thanh	  Nguyen	  ORACLE	  FUSION	  –	  CONTENT	  REPOSITORY	  TECHNICAL	  SOLUTION	  10/8/12	           ...
q I.	  Introduction	  to	  WebDAV	  &	  Apache	  Jackrabbit	    v I.1.	  WebDAV	    v I.2.	  Apache	  Jackrabbit	  q I...
I.1.	  WebDAV	  q Web-­‐based	  Distributed	  Authoring	  &	  Versioning	  q WebDAV	  (RFC	  2518	  -­‐	  deYined	  by	 ...
I.2.	  WebDAV	  –	  HTTP	  extensions	  q HTTP	           q WebDAV	  (additional	  methods)	    v Options	        v Pr...
I.2.	  JCR	  Features	  
I.2.	  JCR	  Features	  
I.2.	  JCR	  Features	  
I.2.	  Jackrabbit	  architecture	  
II.1.	  High-­‐Level	  Architecture	  CLIENT                  SERVER                                                      ...
II.2.1.	  EC	  Groupware	  Component	  EnterConnect Groupware API: A unified interface for all connectors thataccess the g...
II.2.2.	  EC	  Groupware	  Design	  Pattern	                                                         <<Factory Method>>   ...
II.3.1.	  Pilot	  Sample	  –	  UseCase	  (1)	  Use Case                    View appointments of a weekDescription         ...
II.3.1.	  Pilot	  Sample	  –	  UseCase	  (2)	  Screen  shot:  	                                                      13	  
II.3.2.	  Pilot	  Sample	  –	  Sequence	  Diagram	  (1)	  	     portlet:   CalendarPortlet                                ...
II.3.2.	  Pilot	  Sample	  -­‐	  Sequence	  Diagram	  (2)	  	  Method	                           Description	1:getCalendar...
3.3.3.	  Pilot	  Sample	  -­‐	  Model	  Classes	  q Some	  Model	  Classes	  related	  to	  this	  scenario.	  	         ...
3.3.4.	  Pilot	  Sample	  -­‐	  Psuedo	  Code	  (1)	  q Class	  CalendarManager	     	                                   ...
II.3.4.	  Pilot	  Sample	  -­‐	  Psuedo	  Code	  (2)	  q Class	  CalendarService	     	                                  ...
Application	  Directory	                   1             4            1.    Portal project     2                          ...
Screenshot:	  Login	  Screen	  URL: localhost:7001/insidebridgeway/insidebridgeway.portal                                 ...
Screenshot:	  Home	  Page	                                    21	  
News/Message	  Portlet	      1              4                   5                              8                          ...
News/Message	  Portlet	  Item    Portlet Type       Porlet                        Edit Page Flow                          ...
Home	  Page	  Portlets	        1                4       7      2                5      3                6       8         ...
Home	  Page:	  Other	  Portlets	  Item    Portlet Type    Porlet Instances                 Edit Page Flow                 ...
Document	  Library	  Page	                            12       11                          13                          14 ...
Document	  Library	  Page:	                                       Portlets	  Item      Portlet Type        Porlet Instance...
THANK	  YOU	  !                              	  10/8/12	           www.smartbiz.vn	     28	  
Upcoming SlideShare
Loading in...5
×

ECM Technical Solution

352

Published on

ECM Technical Solution

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
352
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
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   www.smartbiz.vn   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   www.smartbiz.vn   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   www.smartbiz.vn   28  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×