David ChouDavid Chou [email protected]@microsoft.com
ArchitectArchitect
Office as a PlatformOffice as a Platform
Business Agility
Software applications that can be composed in days
(not months) to accommodate business needs and
ad-hoc processes
Usability
Make functionality an integrated part of user
experience within tools users already know
The Long Tail
Small companies can’t afford to build custom software
and still address business needs
Greater Access
Providing software capabilities to enable all users to
make better decisions (not just executives)
Cost of Application Building
Speed of business
Increasing complexity
Duplication of effort
Backlog
Last Mile
Where people work
Collaborative flow of business
Reducing overload
Capitalizing on your SOA
Empowerment with oversight
Distributed app development
Simplifying access
Supporting the business
Managing accountability
ServicesServices
Sales
Portal
HR
Web
Supply
Chain
Internet
Sales
“User is cold from sleeping outside”
“User is cold from sleeping outside”
Applications assembled by reusing
existing data and logic to solve a business
problem
Tenets
Reuse*
Agility
Task-based
Loose coupling
Good artists copy, great artists
steal.
—Pablo Picasso
A web service is a program/component
you interact with by exchanging messages
Services are built to last
Availability and stability are critical
A composite application is a set of
components and services cooperating in a
given task
Applications are built to change and evolve
Adapt to new services after deployment
Web Web
ServiceService
RenderingRendering
Application StorageApplication StorageShared ServicesShared Services
Rigid Business Logic and ProcessRigid Business Logic and Process
Information SharingInformation Sharing
Ad-Hoc WorkflowAd-Hoc Workflow
Unstructured Unstructured
DataData
Data Data
WarehouseWarehouse
Moving to a composition architecture requires a
fundamental shift in thinking
You don’t have to write code for everything
Look for patterns of reuse
Look for products that provide services and allow for
composition
Be careful—an inventory of software assets by itself does
not enable composite applications
Requires a platform with capabilities
for composition
Assets must be components
Platform must provide containers
Application TierApplication Tier
(Business Transactions and Process)(Business Transactions and Process)
Data TierData Tier
(Data Management, ACID, Reporting)(Data Management, ACID, Reporting)
Presentation TierPresentation Tier
(User Experience)(User Experience)
T
o
o
ls
T
o
o
ls
ISSUE!
Participants: people, roles
Flow style: flexible, dynamic
Data: unstructured, documents
Participants: apps, services
Flow style: prescriptive,
protocols
Data: structured, transactional
Information Worker
Document Review…
System WorkflowHuman Workflow
Business to Business
Supply Chain Mgmt…
Line of Business Apps
Quote to Cash, Sales Automation…
CRMERP
Create
Lead
Qualified?
Retire
Lead
Create
Opportunity
Create
Quote
Closed?
Complete
Sale
Create
Invoice
CRM ERP
Get specs
from
customer
Validate
specs with
Tech Sales
Estimate
custom
design
Cost out
the
solution
Decide
discount
strategy
Assemble
proposed
response
Approve
proposed
response
Unstructured
Structured
Estimate
custom
design Unstructured
Create
Lead
Qualified?
Retire
Lead
Create
Oppt’y
Create
Quote
Closed?
Complete
Sale
Create
Invoice
Get specs
from
customer
Validate
specs with
Tech
Sales
Cost out
the
solution
Decide
discount
strategy
Assemble
proposed
response
Approve
proposed
response
Structured
Office Business Applications
“Classic” Enterprise Applications
Estimate
custom
design Unstructured
Office SharePoint Server
Word Excel Outlook InfoPath
Secured, Well-Managed InfrastructureSecured, Well-Managed Infrastructure
A platform built to bridge the results gap
>What is OBA
•Using the 2007 Office System as a platform to build
composite applications
Reach into LOB systems (via BDC)
Provides assets as components & enables platform
containment
Supports both end-user and developer re-use
•Office 2007 Clients
•Office Share Point Server 2007
>OBA is not..
•A product
•Simple Office clients
Line-of-
Business
Applications
Microsoft
Office
System
OBAs
>Office Clients
•Open XML Format
•Extensible User Interface
•Enhanced Add-in Model
•.NET Programming Model
•Word (richer custom XML, building blocks,
document parts, XML binding)
•Excel (connect directly to SQL Analysis
services, new cube functions for OLAP data
access, visualization, server functionality)
•Outlook (unified object model, forms,
security, performance)
•InfoPath (server based forms support,
managed object model, VS integration)
>Office System Server
•Excel Services
•InfoPath Forms
Services
•Enterprise Search
•Content Management
•Business Intelligence
•Workflow
•Business Data Catalog
•Website and Security
Framework
LOB Apps, data LOB Apps, data
warehouse, warehouse,
trading partners, trading partners,
etcetc
Tools
V
i
s
u
a
l
S
t
u
d
i
o
T
o
o
l
s
f
o
r
O
f
f
i
c
e
…
2007 Office system clients
Office SharePoint Server 2007
Office Office
Business Business
ApplicationsApplications
MicrosoftMicrosoft
Office SystemOffice System
DynamicsSAP
Content
Management
Unified Communication &
Collaboration
Business
Intelligence
E
x
c
h
a
n
g
e
S
e
r
v
e
r
2
0
0
7
Of
f
i
c
e
Com
munic
a
tions
Se
r
v
er 2
0
0
7
SiebelLOB
Dynamics Duet ISV OBAs Custom OBAs
• Search
• Workflow
• Business Data Catalog
• Website & Security Framework
• Excel Services
Open XML File Formats & Extensible Fluent Interface
Productivity TierProductivity Tier
(Manage ‘Rhythm of the Business’)(Manage ‘Rhythm of the Business’)
Data TierData Tier
(Data Management, ACID, Reporting)(Data Management, ACID, Reporting)
Presentation TierPresentation Tier
(User Experience)(User Experience)
T
o
o
ls
T
o
o
ls
Accounts for
ad-hoc and
human
interactions
Application TierApplication Tier
(Business Transactions and Process)(Business Transactions and Process)
Document Library & Forms LibraryDocument Library & Forms Library
KPIs, DashboardsKPIs, Dashboards
SharePoint Lists, ActionsSharePoint Lists, Actions
Search ServicesSearch Services
Identity StoreIdentity Store
Data StoreData Store
Data WarehouseData Warehouse
Outlook, Excel, InfoPathOutlook, Excel, InfoPath
Sites, Pages, Web PartsSites, Pages, Web Parts
SharePoint DesignerSharePoint Designer
Visual Studio Tools for Visual Studio Tools for
OfficeOffice
SharePoint Site TemplatesSharePoint Site Templates
SharePoint DesignerSharePoint Designer
Visual StudioVisual Studio
SharePoint Admin ConsoleSharePoint Admin Console
SQL Management StudioSQL Management Studio
Excel ServicesExcel Services
Business Data CatalogBusiness Data Catalog
Workflows & Business ProcessesWorkflows & Business Processes
Collaboration Collaboration
Server &Server &
Composite Composite
AppApp
ServerServer
Productivity Productivity
ToolsTools
&&
Web Web
BrowerBrower
BPMBPM
&&
SOASOA
ConnectorConnector
LOB Apps:LOB Apps:
ERPERP
CRMCRM
SiebelSiebel
SAPSAP
OracleOracle
Etc…Etc…
UpdatesUpdates
Add-InsAdd-Ins
XML FormsXML Forms
Web Web
ComponentsComponents
TemplatesTemplates
Read Read
PresentationProductivityApplication Data
Office Office
SharePoint SharePoint
Server 2007Server 2007
OfficeOffice
Productivity Productivity
ToolsTools
&&
Internet Internet
ExplorerExplorer
BizTalkBizTalk
&&
BDCBDC
ConnectorConnector
LOB Apps:LOB Apps:
ERPERP
CRMCRM
SiebelSiebel
SAPSAP
OracleOracle
Etc…Etc…
UpdatesUpdates
Add-InsAdd-Ins
XML FormsXML Forms
Web Web
ComponentsComponents
TemplatesTemplates
Read Read
PresentationProductivityApplication Data
Windows Vista
Windows Server 2003
Office SharePoint Server 2007
Active Directory
SQL Server 2005
Client
Server
Enterprise Search Excel Services
Windows SharePoint Services
RolesWorkflow Version Control
Security CollaborationWeb Parts
Object Models, Web Services, Event Handlers
Document
Libraries
BizTalk Server 2004
LOB Applications
Accounts Payable
and Receivable
Systems, ERP etc.
Office Enterprise Edition 2007 Internet Explorer
Dashboard
(KPIs, Cash
Balance, Targets)
Word 2007
(PivotTable
Reports)
Outlook 2007
InfoPath 2007
>Information Workers
•Ease of use
•Improve collaboration and access
>Developers
•Reduce development costs; faster time to market
•Focus on innovation, not maintenance
>Organizations
•Leverage existing assets
•Enhance business process automation and visibility
•Improve productivity and business performance
>ISVs
•Increase audience reach
Composite Applications
Look for patterns of reuse
Look for products that provide services and allow
for composition
You don’t have to write code for everything
Remember the productivity tier – sometimes less is more
Platform Selection
Rich Productivity Client
Collaboration and Composition Server
Enables productivity tier
Provide patterns of reuse
Provides services and allows for composition
Example: 2007 Office System
Microsoft Dynamics CRM
eBay Outlook Integration
Dassault PLM Word Integration
CAPABILITY
BI and Portals
KEY OFFICE 2007
TECHNOLOGIES USED
Excel
Exchange
Outlook
SharePoint Server
Word
XML file format
Virtual Earth
Real Estate Performance Management: Creating visibility across the real estate lifecycle to deliver
revenue growth, cost reduction and compliance
Accruent Outlook Integration
CAPABILITY
BI and Portals
KEY OFFICE 2007
TECHNOLOGIES USED
Excel
Pivot tables
XML file format
Custom ribbon/task pane
Analysis /
Reporting Services
Fractal Maps for Office 2007: Award-winning data visualization system made readily available to
all information workers for the first time
Fractal Edge Excel Integration
LeaveLeave
ManagementManagement
Reports &Reports &
AnalyticsAnalytics
Time Time
ManagementManagement
OrganizationOrganization
ManagementManagement
Sales Sales
ManagementManagement
Travel Travel
ManagementManagement
DemandDemand
PlanningPlanning
Purchasing Purchasing
ManagementManagement
RecruitmentRecruitment
ManagementManagement
Budget Budget
MonitoringMonitoring
Enabling seamless access to SAP through
Microsoft Office
SAP Outlook Integration
Server FrameworkServer Framework
SAP Business SuiteSAP Business Suite
Duet Server/s
Duet Client Framework
and Services
SAP Backend
Application &
Metadata
Management
Item handler
Service Routing
User and Role
Management
Single Sign On
Exchange 2003
Active Directory
Client
SQL Express
(Caching)
Microsoft Office Professional
2003 & 2007
.NET 2.0
SQL Server 2005
Metadata Repository
Windows Server 2003
Message Forwarding
Application Deployment
Role Synchronization
NetWeaver 04
Event Handler
Services
Apps
Publishing
Services
SAP Systems
mySAP ERP 04/05
mySAP CRM
mySAP SRM
mySAP SCM
NetWeaver BI/BW
Enterprise SOA
Deployment
Services
Application Web Services
Request Handler
and
Authentication
Service Composition
Server FrameworkServer Framework
Integration Integration
ArchitectureArchitecture
C
o
m
p
o
s
it
io
n
C
o
m
p
o
s
it
io
n
A
r
c
h
it
e
c
t
u
r
e
A
r
c
h
it
e
c
t
u
r
e
Contextual Ribbons
Tight Integration with Office with Task Panes and Ribbons
Application-level add-ins
.NET Managed code extensibility
Calculated
data and
charts
Browser
Spreadsheets rendered in web parts
Set parameters, sort, filter, drill to explore
and view the right data
High fidelity to Excel client
Custom Applications
Set values, perform calculations, get
updated values via Web Services
Retrieve full workbook file
Spreadsheets/
Calculated data
Spreadsheets stored in document
libraries
Spreadsheet calculation
and rendering
External data retrieval
and caching
Office SharePoint Servers
& Excel Services
Spreadsheets
Excel 2007
Design and author
Open in Excel for rich exploration
and analysis
Open snapshots
Spreadsheets/snapshots
Excel 2007
TabTab
GroupGroup
RibbonRibbon
ControlControl
Ribbon Customization
Outlook custom form regions
Actions Pane
Extend Office Documents
Custom ribbon Custom tab
Custom
task pane
surfacing
data via the
Business
Data
catalog
(BDC)
Adding PO Management using VSTO
Create Outlook Add-in project in VSTO with ribbon C# code &
ribbon XML
RosettaNet
schema for
Purchase
Order
Design the forms by importing XML schema into InfoPath
Binding a date
picker control to
a date field in
the schema
Dragging UI controls and binding to schema elements
Form onLoad event
VSTO adds code behind to pre-populate the form
1.1.Small company has actuary who Small company has actuary who
determines insurance formula in Exceldetermines insurance formula in Excel
2.2.Team of salespeople call into central office Team of salespeople call into central office
to obtain quotes for customers—not idealto obtain quotes for customers—not ideal
3.3.Formula is sensitive—don’t want IP getting Formula is sensitive—don’t want IP getting
outout
4.4.Need a better solution…but don’t have Need a better solution…but don’t have
loads of $$loads of $$
Insurance Quote Application
Presentation TierPresentation Tier
Outlook 2007Outlook 2007
(Consume)(Consume)
Application TierApplication Tier
Excel ServicesExcel Services
Presentation TierPresentation Tier
Excel 2007Excel 2007
(Contribute)(Contribute)
Data TierData Tier
SQL ServerSQL Server
Productivity TierProductivity Tier
SharePoint Document LibrarySharePoint Document Library
SharePoint Server 2007SharePoint Server 2007
Web ServicesWeb Services
Web ServicesWeb Services
Solution Architecture
>Supply Chain Collaboration
>Retail Store Manager Dashboard
>Financial Services, Loan Origination System
>Price optimization with SAP
>HealthCare Scenario
>Manufacturing Plant Floor Operations (June
2007)
>Public Sector Citizens Portal (June 2007)
Solution for unification of lending channels, disjointed or redundant
workflows and automation of lending approval processes.
>Includes
•A reference solution and a reference implementation
•Architecture Guidance
•Scenarios for collaboration between the brokers and lenders
with a retailer, and then extending back thru a manufacturer and
a supplier
•Solution bits (website & SharePoint templates, .NET assemblies, web
services, reference data, scripts, BDC XML, etc.)
>Requires
•Platforms – 2007 Office System, MOSS 2007, BizTalk 2006,
SQL Server 2005, Windows Server 2003
•Tools – Visual Studio 2005, Visual Studio Tools for Office, Office
SharePoint Designer 2007
OBA Developer Center
http://msdn.microsoft.com/oba
Office Developer Center
http://msdn.microsoft.com/office
Reference Application Packs
Supply Chain Management
http://msdn2.microsoft.com/en-us/architecture/aa702528.aspx
Retail Store Operations
http://msdn2.microsoft.com/en-us/architecture/aa905316.aspx
Financial Services - Loan Origination System
http://msdn2.microsoft.com/en-us/architecture/bb265266.aspx
Price Management
http://msdn2.microsoft.com/en-us/architecture/bb467601.aspx
HealthCare – Health Plans (CERA)
http://msdn2.microsoft.com/en-us/architecture/bb530326.aspx
Manufacturing Plant Floor Analytics
http://msdn2.microsoft.com/en-us/architecture/bb643797.aspx
Public Sector E-Forms Processing
http://msdn2.microsoft.com/en-us/architecture/bb643796.aspx
OBA Community Portal
http://www.obacentral.com
Office Developer Conference
Feb. 10-13, 2008 – San Jose, CA
http://www.odc2008.com
Questions? Feedback?
Please fill out your evaluations
>SoCal Architect Community
http://socalmsft.com
http://blogs.msdn.com/socalarchitect (team blog)
http://davidcchou.com (my blog)
VSTO 2005 + VSTO 2005
SE
VSTO 2008
Ribbon
(Word 2007, Excel 2007, PowerPoint 2007,
Outlook 2007 add-ins only)
Simplified hookup
Sample XML
Simplified hookup
Sample XML
Visual designer
Richer programming layer
Export-to-XML option
Actions Pane
(document-level projects only)
Word 2003 (doc, dot)
Excel 2003 (xls, xlt)
Word 2003 docs (doc, dot)
Excel 2003 (xls, xlt)
Word 2007 (docx, docm, dotx, dotm)
Excel 2007 (xlsx, xlsm, xltx, xltm)
Custom Task Pane
(Word 2007, Excel 2007, Outlook 2007,
InfoPath 2007 and PowerPoint 2007 add-
ins only)
Simplified hookup
Visual designer
Simplified hookup
Visual designer
Outlook Form Region
(Outlook 2007 only)
Visual designer
Configuration wizard
Import from existing
Supported Development Scenarios
Custom ribbons can expose additional
custom functionality in the Office 2007
clients allowing users to access LOB data
Either directly using the different controls (e.g.
control gallery)
Windows forms
By activating a custom task pane exposing the
data
Intelligent Documents
Can deliver additional data to the user to act upon or
integrate within the Office documents
OBA Intelligent Document Pattern
Two Types
Actions Pane
Associated with a specific
Word or Excel document
Custom Task Pane:
The same general idea as
Actions Pane, only on the
application add-in level,
not individual doc
Task Panes
Features of Office OpenXML
File Container
Document Properties
Comments
WordML / Spreadsheet ML
Custom XML
Embedded Code
Images / Video / Sound
User view: single Office file
Document Parts
Most parts are XML
Each XML part is a discrete component
Can add, extract and modify
individual parts without using
Office programs
Corruption of any part would not
prohibit the file from opening
Developer view: modular file
OpenXML Formats Architecture
Formed by 40 companies to share developer
information about the Office Open XML file formats
Articles with full source code for C#, VB, Java, XSLT
Forums for posting technical questions
OpenXmlDevelopers.org
Part of Windows Presentation FoundationPart of Windows Presentation Foundation
Installed with .NET 3.0Installed with .NET 3.0
Requires .NET 2.0 RuntimeRequires .NET 2.0 Runtime
Enables package manipulation forEnables package manipulation for
Office Open XML File FormatsOffice Open XML File Formats
XML Paper Specification FilesXML Paper Specification Files
Any Open Packaging Convention filesAny Open Packaging Convention files
Components of System.IO.Packaging
Mostly client focused and uses contextual
information to determine UI composition
Static
Dynamic
Enabling technologies
Add-ins
Ribbon Extensions
Custom Task Panes
User Profiles and
Audiences
Context Driven Composite User Interface Pattern
View assembling component parts from the
same or different LOB systems that
cooperatively interact to provide rich
capabilities
Enabling technologies
Web Parts
Custom Lists and
Libraries
Custom Application
and Site Pages
Mesh Composite View Pattern
Documents stored in SharePoint
containers can be involved in a workflow
to get them approved
Business data can be delivered or
captured in electronic format using
InfoPath 2007 forms and triggering
workflows
LOB Initiated Document Workflow Pattern
Guidance in more complex scenarios
Two approaches
ombining the LOB initiated
document workflow pattern
and other OBA patterns such
as the intelligent document
pattern
evelop a workflow specific
to the problem domain that
interacts with the LOB
system and enriches the
workflow executing on
SharePoint
Cooperating Document Workflow Pattern
Find the business data you need and be able
to use and act upon that data
Microsoft Office SharePoint
Server 2007 Index Engine
can crawl business data
accessible via Business Data
Catalog
Search results can be
delivered in highly
customized manner
OBA Discovery Navigation Pattern
Additive UI enhances Outlook’s built-in forms
Adjoining and Separate Regions for both
custom and built-in forms
Regions are created in Outlook Forms
Designer
Forms solution implemented via Add-in
Deployment via Windows registry
New Outlook controls added to toolbox
Category Strip and Button
Contact Photo
Electronic Business Card Preview
Scheduling Free/Busy
InfoBar
Date and Time Picker
Check, Option, Edit, Label, Frame (MSForms)
Outlook controls are themed
Controls continue to support databinding
Event support for controls