www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML Versus MUDE:
RPD Multi-User Development and SCM
Options
Stewart Bryson
Chief Innovation Officer, Global Operations
Rittman Mead
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Stewart Bryson
•Oracle ACE Director
•@StewartBryson
•stewart.bryson@rittmanmead.com
•Chief Innovation Officer for Rittman Mead Global
•Community Speaker and Enthusiast
•Writer for Rittman Mead Blog:

http://www.rittmanmead.com/blog
•BI Content Chair for Kscope14
•Real Time BI with Kevin & Stewart
‣iTunes: http://bit.ly/realtimebi
‣YouTube: http://www.youtube.com/user/
realtimebi
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmeadwww.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
About Rittman Mead
•@RittmanMead
•Oracle BI and DW Partner
•Innovation leader in Oracle BI
•Over 100 consultants worldwide
•Offices in US (Atlanta), Europe,
Australia, India and South Africa
•Skills in broad range of supporting
Oracle BI Tools
‣OBIEE, Exalytics and OBIA
‣ODI, EDQ, OWB
‣Essbase and Oracle OLAP
‣GoldenGate
‣Exadata
‣Endeca
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Presentation Agenda
•Take a look at OBIEE Multi-User Development
Environment (MUDE)
•Understand MDS XML: what it is… why do we care?
•Investigate Git, our sample version control system
•See manage_rpd.pl: a Perl script for automating some
basic tasks
•A demo of repository development using the Admin
Tool and Git.
•(Optional) Discuss enterprise SCM deployments
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Repository Software Development Lifecycle (SDLC) Challenges
• Allow multiple users to develop
concurrently
‣Serialized
‣Non-serialized
• Version control of repository
‣Providing “rollback” capabilities
‣Never develop the same “code” twice
• Package up releases
‣Allow easy migration between
environments
‣Provide the ability to version the
entire BI project
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Completed MUDE Project Checkout
In the Master directory
‣gcbc.rpd: The original master RPD file
‣gcbc.000: A backup file for rollback
purposes
‣gcbc.mhl: The history file (can be
converted to an XML file using
mhlconverter)
!
In the Repositories directory
‣gcbc_project1.rpd: The subset RPD
file
‣originalgcbc_project1: Another copy
of the subset RPD file for doing 3-way
merges
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
“Metadata-only” Multi-User Development
•Merging is done by the
developer instead of a
“source master”
•The master repository is not
itself checked into version
control
•Siloed merging and
branching
•Doesn’t version entire BI
project
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
The MDS XML Repository Storage Format
•New in OBIEE 11.1.1.6
•Like XUDML, but individual documents
for first-class repository objects
•Binary repository files are still required
for the BI Server
‣Generated by the Admin Tool
‣Generated by validaterpd command-
line utility
‣NOTE: Don’t use biserverxmlexec
command-line utility
•Integration with version control systems
built into the Admin Tool
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Who Said This?
“The primary purpose of this new storage format
and the source control extensions in the Oracle
BI Administration tool is to permit fine-grained
tracking and recording of changes to objects in
a single repository. It is not a replacement for
the Multiuser Development Environment, as it
does not have any features for merge conflict
resolution, which instead would need to be
performed using the source control client tools.”
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Who Said This?
“The primary purpose of this new storage format
and the source control extensions in the Oracle
BI Administration tool is to permit fine-grained
tracking and recording of changes to objects in
a single repository. It is not a replacement for
the Multiuser Development Environment, as it
does not have any features for merge conflict
resolution, which instead would need to be
performed using the source control client tools.”
Mark Rittman (2012-09-18). Oracle Business Intelligence 11g
Developers Guide (Kindle Locations 19413-19417). McGraw-
Hill. Kindle Edition.
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Version Control using GIT
•Initially designed and developed by
Linus Torvalds for Linux kernel
development
•Local repository for remote
publishing
‣Continual local commits
‣Periodic network publication
•Commands we care about today:
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Version Control using GIT
•Initially designed and developed by
Linus Torvalds for Linux kernel
development
•Local repository for remote
publishing
‣Continual local commits
‣Periodic network publication
•Commands we care about today:
==> git checkout!
==> git commit!
==> git merge!
==> git rebase!
==> git reset!
==> git push/pull
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
3
4
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Merging Branches
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Merging Branches
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Git: Branching the Entire Process
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
Client Installation
Using the Administration
Tool to do standalone
development
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
Enterprise Installation
Separate containers for Admin
and Managed Servers
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
Simple Installation
Single Container uses a smaller
footprint for laptops and VMs
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Full Development Environment (Simple Install)
•RPD Development requires a BI Server
‣See the BI Server Intelligent Request
Generation
‣See SQL or MDX Generation
•RPD Development requires a query
tool
‣Something to query the BI Server
‣Presentation Server works well
•RPD Development requires data
visualization
‣OBIEE just so happens to have that
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
2
3
4
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
DEMO
MDS XML Multi-User Development
using Git
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
3
4
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
2
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
patchrpd -P [modified repository password]
-C [modified repository path and name]
-Q [original repository password]
-G [original repository path and name]
-I [patch file path and name]
-O [new repository path and name]
comparerpd –P [current repository password]
–C [current repository path and name]
–W [original repository password]
–G [original repository path and name]
–D [patch file path and name]
In [middleware_home]Oracle_BI1bifoundationserverbin
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1 QA RPD
patchrpd
2
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1 QA RPD
patchrpd
2 Production RPD
patchrpd
3
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
What Do We Think?
•MUDE provides more granular control over individual
repository objects
‣Multiple changes to the same physical file are supported
‣XML/Git can do the same using built-in Admin Tool
utilities
•XML/Git allows us to use a common framework for all our
BI Content in one central store
‣presentation catalog, ODI Content, database scripts
‣We can periodically check-in the MUDE master RPD
and history file to Git as well
•Was Mark Rittman right?
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
What Do We Think?
•MUDE provides more granular control over individual
repository objects
‣Multiple changes to the same physical file are supported
‣XML/Git can do the same using built-in Admin Tool
utilities
•XML/Git allows us to use a common framework for all our
BI Content in one central store
‣presentation catalog, ODI Content, database scripts
‣We can periodically check-in the MUDE master RPD
and history file to Git as well
•Was Mark Rittman right?
www.rittmanmead.com inquiries@rittmanmead.com @rittmanmead www.facebook.com/rittmanmead
Contact Information
Stewart Bryson
Chief Innovation Officer
Rittman Mead
stewart.bryson@rittmanmead.com
@stewartbryson
https://github.com/RittmanMead/scripts

Oracle BI Multi-user Development: MDS XML versus MUDE