Top Banner
ORACLE FUSION – CONTENT REPOSITORY TECHNICAL SOLUTION Author: Diego Thanh Nguyen 10/8/12 www.smartbiz.vn 1
28
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ECM Technical Solution

ORACLE  FUSION  –  CONTENT  REPOSITORY  TECHNICAL  SOLUTION  

Author:  Diego  Thanh  Nguyen  

10/8/12   www.smartbiz.vn   1  

Page 2: ECM Technical Solution

10/8/12   www.smartbiz.vn   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  

Page 3: ECM Technical Solution

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  

Page 4: ECM Technical Solution

I.2.  WebDAV  –  HTTP  extensions  

q HTTP  v Options  v Get  v Post  v Put  v Head  v Delete  v Trace  v Connect  

q WebDAV  (additional  methods)  v PropFind  v PropPatch  v MkCol  v Delete  for  collections  v Put  for  collections  v Copy,  Move  v Lock,  Unlock  

q Body  ==  XML  

4  

Page 5: ECM Technical Solution

I.2.  JCR  Features  

Page 6: ECM Technical Solution

I.2.  JCR  Features  

Page 7: ECM Technical Solution

I.2.  JCR  Features  

Page 8: ECM Technical Solution

I.2.  Jackrabbit  architecture  

Page 9: ECM Technical Solution

9  

II.1.  High-­‐Level  Architecture  

SERVERJSR-168 CONTAINER

Ente

rCon

nect

Gro

upw

are

API

Jaka

rta

Slid

e A

PIJa

kart

a C

omm

ons

HTT

P C

lient

Exch

ange

C

onne

ctor

Jaka

rta

Com

mon

s Lo

ggin

gJa

va T

rans

actio

n A

PI

JDO

M (J

SR 1

02)

Ope

nGro

upw

are

Con

nect

orLo

tus

Dom

ino

Con

nect

or

CLIENT

Web browser(IE, FireFox, etc.)

INTERNET/INTRANET

Enterprise Application ServicesAuthentication/ Authorization

Logging/ Tracing

JSR-168 PORTLETS – Spring Portlet MVC Framework

Presentation/Interface Tier

Services Tier

Integration Tier

Spring Java Database Connectivity

Spring Java Transaction

Spring Beans

Spring WebStrutsStruts

Java Server PagesJava Server PagesJSTLJSTL X

MLB

eans

Message-Driven

Enterprise Java Beans

Spring Remoting

Spring Remoting

Spring Messaging

Java Messaging

Presentation/Interface Tier

Services Tier

Integration Tier

Spring Java Database Connectivity

Spring Java Transaction

Spring Beans

Spring WebStrutsStruts

Java Server PagesJava Server PagesJSTLJSTL X

MLB

eans

Message-Driven

Enterprise Java Beans

Spring Remoting

Spring Remoting

Spring Messaging

Java Messaging

COLLABORATION SERVER

MS Exchange 2003

Email

Calendar

Contact

Task

Uploaded Document

Web

DA

V Se

rver

Domino Lotus Server

Email

Calendar

Contact

Task

Uploaded Document

Web

DA

V Se

rver

Page 10: ECM Technical Solution

10  

II.2.1.  EC  Groupware  Component  

EnterConnect Groupware API

Jakarta Slide API

Jakarta Commons HTTP Client

Exchange Connector

Jakarta Commons Logging Java Transaction API

XML HTTP request

XML HTTP response

JDOM (JSR 102)

OpenGroupware Connector

Lotus Domino Connector

MS Exchange 2003

Email

Calendar

Contact

Task

Uploaded Document

Web

DA

V Se

rver

EnterConnect Groupware API: A unified interface for all connectors that access the groupware servers via WebDAV, applying Singleton, Façade and Factory design patterns

All connectors utilize the Jakarta Slide (client-side) API to send requests to and receive responses from a variety of WebDAV-enabled groupware servers

Jakarta Slide re-uses some of open source libraries such as the Jakarta Commons library (HTTP Client and Logging), JDOM (JSR 102), JTA, JMX, …

Page 11: ECM Technical Solution

11  

II.2.2.  EC  Groupware  Design  Pattern  

<<Abstract Factory>>

ECGroupwareFactory

ECLotusDominoConnector ECOpenGroupwareConnector<<Singleton>>

<<Façade>>

ECExchangeConnector

<<Factory Method>>

«interface»MailManager

ExchangMailManager

ExchangeCalendarManager

ExchangeTasksManager

«interface»CalendarManager

«interface»TasksManager

Apache Slide Class

Page 12: ECM Technical Solution

12  

II.3.1.  Pilot  Sample  –  UseCase  (1)  

Use Case View appointments of a week

Description The goal of this use case is to allow end-user to view his/her appointments of the selected week.

Actors End-user

Preconditions 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) TBD

Non-Functional (optional) TBD

Issues TBD

Page 13: ECM Technical Solution

13  

II.3.1.  Pilot  Sample  –  UseCase  (2)  

Screen  shot:  

Page 14: ECM Technical Solution

14  

II.3.2.  Pilot  Sample  –  Sequence  Diagram  (1)  

   

portlet: CalendarPortlet

service: CalendarService

connector: ECGroupwareConnector

Exchange Server

2: getWeekAppointmentList()

3: prepareWebdavRequest()

4: getListOfAppointment [Webdav request]

5: result (list of appointments) in the xml format

11: Appoinment Model instance list

1: getCalendarWeekModel()

7: prepareWebdavRequest()

6: parseAppointmentIds()

8: getAppointmentDetails [Webdav request ]

9: appointment details in xml format

10: parseAppointmentDetails()

12: getAdditionInfo()

13: prepareCalendarWeekModel()

14: a CalendarWeekModel instance

Page 15: ECM Technical Solution

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.

Page 16: ECM Technical Solution

16  

3.3.3.  Pilot  Sample  -­‐  Model  Classes  

q Some  Model  Classes  related  to  this  scenario.  

   

Page 17: ECM Technical Solution

17  

3.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (1)  

q Class  CalendarManager    

Page 18: ECM Technical Solution

18  

II.3.4.  Pilot  Sample  -­‐  Psuedo  Code  (2)  

q Class  CalendarService    

Page 19: ECM Technical Solution

19  

Application  Directory  

1.  Portal project

2.  Spring Config

3.  Modules

4.  Libraries

2 1

3

4

Page 20: ECM Technical Solution

20  

Screenshot:  Login  Screen  

URL: localhost:7001/insidebridgeway/insidebridgeway.portal

Page 21: ECM Technical Solution

21  

Screenshot:  Home  Page  

Page 22: ECM Technical Solution

22  

1 4

5

8

News/Message  Portlet  

Page 23: ECM Technical Solution

23  

News/Message  Portlet  Item No.

Portlet Type Porlet Instances

Edit Page Flow Content Page Flow 1 News /

Message Bridgeway News Alert

/portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/epContentEditorController.jpf

4 News / Message

Executive Message

/portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/epContentEditorController.jpf

5 News / Message

What's New /portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/epContentEditorController.jpf

8 News / Message

Company News

/portlets/epContentEditor/edit/editController.jpf /portlets/epContentEditor/epContentEditorController.jpf

Page 24: ECM Technical Solution

24  

1

2

3

4

5

6

7

8

9

10

Home  Page  Portlets  

Page 25: ECM Technical Solution

25  

Home  Page:  Other  Portlets  Item Portlet Type Porlet Instances Edit Page Flow Content Page Flow

2 Links Company Links /portlets/epLinks/epLinksAdmin/EpLinksAdminController.jpf

/portlets/epLinks/EpLinksController.jpf 3 Calendar Company Calendar /portlets/Calendar/CalendarController.jpf 6 Discussion

Forums Company Discussion Boards

/portlets/collaboration/nativedb/discussion/admin/Content/ContentController.jpf

/portlets/collaboration/nativedb/discussion/admin/Content/ContentController.jpf

7 Contacts Controller

Company Directory /portlets/Contacts/ContactsController.jpf 9 Broadcast

News Broadcast News /portlets/RSSCMS/edit/editController.jpf /portlets/RSSCMS/RSSController.jpf

10 Popular Documents

Popular Documents /portlets/epContentRepository/folderContent/FolderContentController.jpf

Page 26: ECM Technical Solution

26  

Document  Library  Page  

11 12

13

14

Page 27: ECM Technical Solution

27  

Document  Library  Page:  Portlets  

Item Portlet Type Porlet Instances Edit Page Flow

Content Page Flow 12 Document Library

Statistics Document Library Statistics

/portlets/epContentRepository/statistics/StatisticsController.jpf 13 My Documents My Documents /portlets/epContentRepository/myContributions/MyContributionsController.jpf 14 Recently Submitted

Documents Recently Submitted Documents

/portlets/epContentRepository/recentlySubmittedContent/RecentlySubmittedContentController.jpf

11 15

Document Library Document Repository /portlets/epContentRepository/browse/BrowseController.jpf

Page 28: ECM Technical Solution

10/8/12   www.smartbiz.vn   28  

THANK  YOU  !