ecm technical solution
DESCRIPTION
ECM Technical SolutionTRANSCRIPT
ORACLE FUSION – CONTENT REPOSITORY TECHNICAL SOLUTION
Author: Diego Thanh Nguyen
10/8/12 www.smartbiz.vn 1
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
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
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
I.2. JCR Features
I.2. JCR Features
I.2. JCR Features
I.2. Jackrabbit architecture
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
Calendar
Contact
Task
Uploaded Document
Web
DA
V Se
rver
Domino Lotus Server
Calendar
Contact
Task
Uploaded Document
Web
DA
V Se
rver
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
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, …
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
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
13
II.3.1. Pilot Sample – UseCase (2)
Screen shot:
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
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.
16
3.3.3. Pilot Sample -‐ Model Classes
q Some Model Classes related to this scenario.
17
3.3.4. Pilot Sample -‐ Psuedo Code (1)
q Class CalendarManager
18
II.3.4. Pilot Sample -‐ Psuedo Code (2)
q Class CalendarService
19
Application Directory
1. Portal project
2. Spring Config
3. Modules
4. Libraries
2 1
3
4
20
Screenshot: Login Screen
URL: localhost:7001/insidebridgeway/insidebridgeway.portal
21
Screenshot: Home Page
22
1 4
5
8
News/Message Portlet
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
24
1
2
3
4
5
6
7
8
9
10
Home Page Portlets
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
26
Document Library Page
11 12
13
14
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
10/8/12 www.smartbiz.vn 28
THANK YOU !