Title: Microsoft Commerce Server Platform
1Microsoft Commerce Server Platform
2Agenda
- Overview
- User Profiling System
- Targeting
- Data Warehouse Analysis
- Pipelines Transactions
- Administration
- Catalog
- BizDesk
- Solution Sites
3Overview
Web Site
Web Presence
Retail
Supplier
Corp Purchase
Web Site Tools
Content
Products
Analysis
Order
User Profiles
Marketing
Custom Catalog Order Requisitions
4Solid Momentum in Market
- Solid Customer wins
- Internet Deployments
- GAP, Eddie Bauer, 800 Flowers, Tower Records,
Time Warner,Barnes and Noble (Commerce)
Broadcast.com, Sony Music, Sportsline,
Ivillage/Ibaby, CBS Marketwatch, PC World, PBS,
Intellicast, QVC (Commerce), WWF, Quote.com,
Virgin Records, Capitol Records, Forbes, MCP 20th
Century Fox - Reviews Won 16/19 SSCE Reviews
- 7 comparative wins/positives, 9 positive stand
alone reviews - Doing well with top tier analysts
(Gartner/Forrester comparatives) - Microsoft Web Platform considered most
scaleable by PC Week Lab (July 1999)
5Solid Momentum as Platform
- Solution Developers/SIs
- 1,900 solution developers in US trained on
commerce platform - 100 Go To MCSPs in US referral program
- 7 of the top firms now support Microsoft commerce
solutions - Compaq, EY, Amdahl and DMR Consulting, KPMG,
NCR, USWeb - ISP/CSPs
- 17 ISP/CSPs focused on Microsoft commerce
- 8 go-to-market GTE Internetworking, Icon CMT,
Digex, US Web, Data Return, AIS, Concentric,
Northwest Nexus - 9 offer INEX hosting 9 Net Avenue, Anaserve,
CCI, First Internet Media, IDT, NetEase,
TotalNet, United Interactive Tech., Web FX 2K - ISVs
- 70 partners shipping extensions to SSCE
6Release Theme
- Build a comprehensive integrated platform for
web-commerce applications - Profiling
- Targeting
- Product Catalog
- Transactions
- Data Warehousing Analysis
- Improved Developer Productivity
- A set of configurable tools that businesses use
to target users, manage content, process
transactions and analyze site usage
7Sample Customers
- Eddie Bauer (Add web traffic stats for a few)
- 20k shoppers/day (4x peak)
- 20/1 transaction ratio
- 5 total overall revenue
- 13 web server, 2 SQL servers
- 1 800 Flowers
- 25k transactions/day (6x peak)
- 6k concurrent connections
- 80 web server, 2 SQL servers
- 10min average shopping time
8Closing The Loop
Web Site
- Relationship Mgmt
- Providing Customers what they want, when they
want it - Implicit user profiling Targeting
9Commerce Server Overview
10User Profiling System
11Requirements
- Extensible application layer to model business
entities. - Profiles, Expressions, Terms (Objects, Rules,
Definitions) - Users, Orgs, POs, Requisitions, Products,
Accounts, etc... - Scalable user management platform
- 10Million Users, 1 Peak Online, Mixed
Transactions (login, read, write) - Data store agnostic
- LDAP, 3rd Party OLEDB/ODBC sources, Commerce SQL
Prop Store - Transparent Data Source aggregation
- XML Schema Representation
- Enable integrated business solutions
- Analysis, BizTalk, Transaction Integration
- User Management, Targeting, Business Process
12BizData Enabled Platform
Targeting Services
Transaction Services
User Management Services
Analysis Services
Ads, Promos
Analysis Objects
PipeLine Objects
Auth Objects
Selection Objects
DTS Tasks
BizTalk
User Profiles
Expressions
Profiles
Profiles
Profiles
User Profile System
13BizData Definitions
- Profile Definitions
- Profiles define logical business objects
- Users, Organizations, Purchase Orders,
Requisitions, etc. - Data model supports business data extensions
- property groups, site terms, profile references,
attribute tags, etc.. - Enable property mappings to physical data sources
- user.name maps to SQL1.Table2.Column3
- Expression Definitions
- Expressions are simple rules evaluated against
profile instances. - E.g. IsFrequentVistor - User.TotalVisits 100
- Site Terms
- Common store of business terms used in profiles
and expressions. - User.EyeColor SiteColors Brown, Blue,
Green
14BizData Runtime Objects
- Profile Object
- Exposes Profile Instance data with simple object
model - ADSI-IADs, ADO-Fields
- Supports simple physical-logical data
translations - Data store agnostic (LDAP Directories, Ansi-SQL,
etc.) - Supports data store aggregation.
- Extensive Caching (object properties,
connections) - User Profile Object is successor to Site Server
3.0 AUO (Active User Object). - Expression Evaluator Object
- Enables runtime evaluation of boolean expressions
- Consumes Profile objects, Commerce dictionaries,
IDispatch objects. - Extensive data caching (expressions, results,
profile properties). - Optimized Pcode.
15Profile System Architecture
Profile Service
Profile object exposes simple object managing
data entities. ADO Support for Bulk Processing
(Select, Insert, Update).
Profile Object Cache
ADO
Commerce OLEDB Provider
Commerce OLEDB Provider provides standard
interface supporting both the profile service and
ADO. Provider exposes simple SQL semantics
(profile analogous to a logical table
view). Provider enables data translations and
data source aggregation based on profile
definitions.
BizData Defs
Profile Definition Cache
Data Source Aggregation Manager
ADSI/ LDAP
OLEDB/ SQL7
OLEDB/ ODBC
Optimized data source provider plug-ins for
directories (LDAPv3), SQL7, and OLEDB/ODBC
sources supporting ANSI-SQL subset.
LDAP DS
LDAP DS
LDAP DS
3rd Party Databases
LDAP ADS
Commerce SQL Prop Store
16BizData Profile Design
SAMPLE USER PROFILE User.Name Dave User.Email
Dave_at_Ms.com User.Info.Age
22 User.Info.Preferences Sports, Books
17User Management Services
- Profile architecture targeted to enable User
Management. - User Profiles everywhere (auth, targeting,
transactions, analysis, etc...) - Registered User, Anonymous User, User Context,
etc... - User Management Requirements
- User Identification and Authentication
Integration - Anonymous user tracking leverage Commerce AuthID
object (encrypted cookies, URLs) - Register Users
- Integrate Authorization solutions (NT5, Active
Directory) - HTTP Forms solutions (Beta)
- Enable single logon across web servers (Beta)
- Highly scalable user management platform
- 10Million Users, 1 Peak Online, Mixed
Transactions (login, read, write) - Caching (object, property, connections, ...)
- Optimized database providers (ADSI/IDirectory,
OleDb/SQL7/StoredProcs, etc...) - Partitioning, Replication, etc...
- Database agnostic
- Directories (ads), RDBMS (sql), Other (oledb)
- 3rd party (Netscape, Oracle, DB2, etc..)
- Enable data privacy based on working internet
standards (P3P, etc..).
18User Profile Enabled Platform
19Targeting
20Targeting
- Expressions
- Content Selection Framework
- Predictor
- Direct Mail
- Campaigns
- Advertising
- Discounts
- Related Sell
21Targeting overview
22Targeting Requirements
- Fast, 50ms latency, 100requests/sec
- Real time event tracking
- Integrated with
- expression builder/evaluator
- user profile service
- catalog
- Platform for 3rd party extensions
- Comprehensive reporting
- Active extensible content templates
23Targeting Architecture
Offline
Design Time
Run Time
ASP pages
Basket.asp
Expr Evaluator
Load Prediction Model
Content Selection Framework
Biz Desk Applications
Predictor Client
Expression Builder GUI
Expr Evaluator
Predictor Engine
Load Predictor Data
XML
SQL 7
SQL 7
SQL 7
SQL 7
SQL 7
SQL 7
SQL 7
Site Terms
Profiles Schemas . User . Context
Expressions
Data Warehouse
Catalog
Users
Context
24Expression Evaluator
Expression Evaluator
Expression (stored in XML)
A and (B or C) or D
Eval Engine
Object Property cache
Expr result cache
P-CODE cache
Expression Load preprocessing
Expression Store Objects
Parse-tree
BizData Defs
P-code array
25Content Selection Framework
Run Time Content Selection Framework
Design Time Business Desk Modules
Users
Web Page
Content Selector
Profiles
26Recommendations
- scheduler launches model builder
- app downloads current model
- user goes to checkout page
- ASP calls predictor to add recommendations
- IIS logs feedback basket data to the warehouse
IIS
27Direct Marketing
List Manager
Direct Mail Editor UI
Web Servers Personalized Mail pages.
SSA Scheduler
Campaign Mgr
Reports
BizDesk
Direct Mail NT Service
Data Warehouse SQL 7
Marketing Database SQL 7
SMTP Server
CDO
Mail Pipe
DTS
DTS
Web Logs
IIS EventProcessor
28Campaign Architecture
Run Time Content Selection Framework
B2B Integration
Design Time UI Modules
Cache Mgr
Load Content
Users
Write Results
Campaign Mgr. BizDesk
BizTalk Server
MSN
Content Selector
Campaign UI
Web Page
3rd parties
Profiles
Exp Builder
Link Exchange
Filter
Exp Eval
Context
Score
User
Catalog
Real Media
Predictor
CSF Pipelines
Select
Content SQL 7
DW SQL 7
Record
Format
IIS Log
Click Sold, etc
Redir
Record
29Targeting Applications
- Discounts
- Targets product page and users basket
- Supports Up-Sell, Cross-Sell and Inventory Sell
- Integrated with product catalog
- Advertising
- Real-time performance monitoring of campaigns
- Integrated User targeting
- Direct Mail
- Fast, Scalable, Runs as an Win2K Service
- Has a List Management object to support importing
and merging of targeted lists - Tracks mails sent, non-delivered, clicked
30Data Warehouse Analysis
31OverviewCommerce Data WarehouseCommerce Analysis
Interactive Analysis
Web Usage
Targeted Mail
Users
Site Data Warehouse
Transactions
Scheduled Reports
Catalog
User Profile Management
Advertisements
Content
Prediction Clustering
Document Tracking
Other
Other
32Commerce Data Warehouse and AnalysisOverall
Process Flow
Event Data
On-line Services
Administration
ADO
Commerce events
Real Time Events
Commerce OLE DB Provider
Commerce Reports
Commerce Business Desk
IIS
Data Warehouse Service
Commerce data events
WebTV
VB
Other Events
Office 2K
Web logs
DTS Packages
ASP
IP Resolution
SQL Server
Non-Event Data
Other
WhoIs
OLAP Server
Commerce data
Custom Task
Other Data
HTML/XML
ADO / OLE DB
CDO
IE
33Data Warehouse
34Commerce Data WarehouseRequirements
- Tight integration with Commerce Server Components
- Data sources
- IIS and Apache log formats
- Transactions/Ads/Promos/Content/User
Profiles/Products - Extensible and programmable
- Create new data sources (Import Extend Schema)
- Modify and Manage cubes
- Access through standard OLE-DB interfaces
- Scalability Performance
- Support high volume sites internal customers
- 50 M pages/day, 100 M URLs, 30 M users
- Feedback to on-line systems
- User profile (for targeting via expressions)
- Direct Mail, Real-time Recommendations
35Commerce Data WarehousePotential internal users
- Web TV (100M URLs, 1B rows)
- Windows Media Server
- Proxy Server
- Microsoft.COM (50M pages/day, 40M users)
36Commerce Data WarehouseHigh Level Architecture
MS TV Server Events
Scripts
Web Log Import
Campaigns Users Transactions
ADO
Commerce OLE DB 2.0/2.5 Provider
XML Schema Definitions
Bulk Insert/Update
Commerce Storage Service
SQL Server
OLAP Server
37Commerce Data Warehouse OLE DB Provider
Application
Scripts
XML
ADO
Commerce OLE DB Provider
OLE DB 2.0 2.5 Interface
Command Processor
Metadata
IRow
Bulk Insert Update
Bulk data parser
IRowset
DS/SQL Aggregations
Storage Driver
38Commerce Data Warehouse Storage Services
Commerce OLE DB Provider
Storage Services
Metadata
Jobs
Sequencers
Command
Command
Data packet
Schema Manager
Calc Engine
Aggregator
Calc Sequencer
Delete Sequencer
Save Sequencer
Infrastructure
Cube Mgr
Collections Job Group Job Manager Async Job
Thread Pool Job Queue Connection Pool Virtual
Buffer Pools
Job Network
Job Network
Job Network
Partition Mgr
Job Mgr
Job Mgr
Job Mgr
39Commerce Data WarehousePreliminary Performance
- Scales linearly with hardware
- Hardware configuration
- DB machine 4 500 MHz CPU, 1 MB L2 cache, 100
GB array, 1 GB RAM - Processing machine 4 500 MHz CPU, 512 MB RAM
40Commerce Data WarehouseLog Import
- Multi threaded, no contention
- Smart memory management
- Processes commerce extensible log events
- Extensible cookie decryption
Users Map
Recycled String Buffer
Hit Queue
Hit Array
Inference Engine Job
CS OLE DB Provider
External Parser Plugin
Log Parser
User Hash
Storage
Hit Queue
Hit Array
Inference Engine Job
CS OLE DB Provider
Hit Array Pool
Users Map
Recycled String Buffer
Hit Array
41Analysis
42Requirements
- Integrated with Commerce Server
- Commerce centric reports out of the box
- Present reports via the BizDesk
- User definable calculations and reports
- Allow ad-hoc reporting
- Easy to use intuitive interface
- Performance Scalability
- Significantly increase reporting speed
- Provide long term trend analysis
43Current Solution
- Define Calculation
- Calculations basis for all reports, defines
dimensions, measures, and filters - Can be named and saved in the calculation
inventory - Run/create/edit report in BizDesk
- Create from scratch or from existing report (New
or Save As) - Choose calculation from inventory or create new
calculation, apply formatting to the calculation - View/print Reports
- select from manager list of reports using
search/find feature - Export Calculations
- export to List Manager, Direct Mailer, User
Profiles
44Analysis Opportunity
- Leverage MS OLAP server
- Data Warehouse integration with OLAP
- Use third party OLAP Reporting tools
- Work closely with PLATO team
- Test if Shiloh meets our requirements
- Work out release logistics
- Integrate cube mgmt
45Segmentation (Data Mining)
- Segment users based on implicit behavior
- System based discovery of hidden trends and
behavior in the data warehouse - Use discovered segments to drive targeting
46Segmentation Architecture
47Segment Viewer Screenshot
48Pipelines Transactions
49Requirements
- Backward compatible with 3.0 pipelines
- B2B features
- Support multiple POs per requisition
- Support multiple shipments per PO
- Purchase Order approval process
- Integrate with BizTalk
- OBI standards compliant
- Support 64-bit currency values
- Move component UI to the BizDesk
- Shipping Methods, Tax
50What Is A Pipeline?
- Framework for modeling a commerce process
- Framework consists of stages
- Stage consists of components
- Each component operates on a commerce data
object (e.g., OrderForm)
51Pipeline Editor
Produces PCF files that are loaded into the
pipeline object on an ASP page
52Example Pipeline, Stages
Basket Pipeline
Total Pipeline
Checkout Pipeline
53Corporate Purchasing Model OBI - Open Buying on
the Internet
Supplying Organizations
Buying Organization
Employee with Browser
Browses Creates Requisition
Internet
Home Page with Vendor Links
Suppliers
Buying Org
Requisition \Basket
BizTalk Server
Purchasing Server
Catalogs
BizTalk Server
OBI Order Request
OBI Order - EDI / HTTP
Acct System Updated
Order Request Approval
Invoice to AP
LOB System
Workflow
54Administration
55Administration
- For system administrators (BizDesk is the
business manager admin) - Extensible MMC snap-in
- COM objects
- SQL schema for config data persistence
- Hierarchy of sites, addresses, and Web servers
- Resources are configurable admin entities
56Admin Design
Admin SQL Database
(Can be remote, so central admin is supported)
Admin COM objects
Admin MMC snap-ins and extensions
57Objects in hierarchy
- Resource
- Entity with independent config data (e.g.,
Product Catalog, Direct Mail, Data Warehouse) - Site
- Collection of Commerce Addresses sharing the same
resources - Address
- Single URL, single IIS application. May contain
multiple IIS Web sites (a Web cluster or farm). - Web Server
- An IIS Web site with Commerce content
58Catalog
59Customer Requirements
- Customers require product catalog management in
the box - Integrated with other features
- Marketing (product discounts)
- Data Warehouse (report on product sales)
- BizTalk Server (exchange catalogs with trading
partners) - Sophisticated search capabilities
- End User Management tools
60Product Catalog - Overview
- User definable product types and category
hierarchy (Data Driven Logical Schema) - Multiple Search Mechanisms
- Import/Export/Merge via XML
- Catalog Interchange support via BizTalk Server
(XML-Data Schemas for Catalog) - High performance (using caching)
- Catalog Management Tools via BizDesk
- Custom Catalogs
- Export product data to Data Warehouse for
reporting - API (COM based)
61Catalog Architecture
Commerce Site
SQL7 Catalog Collection
Catalog BizDesk
Schema Design
Editor
Catalog API Layer
Custom Catalog
CatalogExchange
Catalog DTS
BizTalk Server
BizDesk Framework
Export/Import
Commerce DW
Commerce Catalog XML
62Catalog Schema
Catalog Collection
Example
Property name
Property Definition
Catalog Schema
Property size
Catalog Data
63Catalog API
- COM Object model
- Provide high runtime performance through use of
caching - Catalog Object
- Manage Schema
- Perform Searches
- Import/Export XML
- Product Object
- Read/write product details
- Category Object
- Read/write category details
64BizDesk
65Business Desk
- Web-based framework for hosting business
management modules - zero-install, remote access, extensible
- 20 modules shipping for common business
operations - Business Users
- Common look and feel in IE 5
- Rich UI components in DHTML behaviors, simple
navigation model, web based wizards - Developers
- COM objects for server side navigation, data
validation security - SDK for Module Development
66Business Desk
67Technologies
- DHTML for client side UI including use of
behaviors, dynamic properties - CSS for layout
- XML for configuration of navigation, client
controls, and transport of data from server to
client - XSL for XML transforms
- XML data-binding to simplify draw code
- ADO Recordsets for data initialization
- HTTP/XML communication in some controls (so full
page doesnt refresh every time) - HTML Help ActiveX control for help files
68BizDesk Architecture
Client
Server
Edit Sheet
Commerce business objects
ADO
Edit Field
css
css
Expression Builder
Dynamic Table
css
xml data binding
HTTP/XML
xsl
css
ASP
xsl
Converts recordsets from objects and ADO to xml
for widgets to consume
Profile Builder
List Editor
xml data binding
HTTP/XML
xsl
css
css
Tree View
Widget HTC (behavior) files
xsl
css
dynamic properties
69Solution Sites
70Solution Sites Requirements
- Provide applications which demonstrate CS4.0
Integration - Provide a Jumpstart for the development process
- Demonstrate best practices code samples for
CS4.0 - Blank Site
- This site contains a full feature BizDesk site
and a minimum user site. This is the site a used
by development when a solution site doesnt meet
their needs
71Solution Sites
- Common features
- Business data driven for most site functionality
(exposed to the developer thru MMC) - Save Orders
- Table driven shipping and tax component
- Partner Desk Services for User
- Supplier
- Multi-line ship-to support
- Delegated User Admin
- Blanket PO designation
72Solution Sites
- Corporate Purchasing
- NT/CR authentication supported
- One Requisition can support multiple POs
- Multiple catalog support
- Vendor specific catalog
- Support for Line-item or Order Level Account/Cost
Center Designation on PO - POs sent to Vendors via BizTalk
- Retail
- Mktg Campaign Management Integration
- Auctions
- Lightweight Inventory mgmt system
73Site Mobility - PUP
- Envisioned users
- SP moving a site from their development
machine(s) to customers machine(s) and/or
corporate pre-production environment moving site
into production - Packer UnPacker (PUP)
- utility that takes the resources of a Commerce
Site and places them into a compressed package or
extracts them from a package - package includes virtual roots, directories and
files, connection strings, database schema and
optionally data - the way a Commerce Site plugs into the MMC
configuration infrastructure - by default it moves all resources of a site,
advanced mode allows packing and unpacking of any
combination of individual site resources
74PUP Architecture
- Keywords - extensible, simple, generic
- Every site has any number of resources. Each
resource supplies an object that implements the
IPup interface - The PUP performs the following tasks via methods
on the IPup interface - Export() packs a site resource into a package
- Import() unpacks a site resource from a package
into a site - Delete() removes a site resource from a site
(Beta) - CreateGroupResource() creates a logical group
resource - DeleteGroupResource() deletes a logical group
resource (Beta)
75PUP Architecture (cont.)
- If a third party vendor wants to add a resource
to our architecture they supply an IPup object,
add the resource into the Site Config data-store
(via SDK code) and the PUP will transport their
resource along with ours - The PUP operates in two modes
- Command line
- allows execution of the PUP via script
- used by our MMC snap-in
- GUI
- Simple requires very little user input and
forces reasonable defaults - Advanced allows extensive flexibility but
requires more knowledge of our architecture
76Solutions Architecture
- Thin layering over Platform objects.
- App helper layer
- AppCfg VBScript friendly COM configuration.
- Helper functions (e.g., Localizable address
formats) - Wrapper functions that we plan to feed back into
platform post-Alpha. (e.g., product catalog
wrapper functions) - App Display layer separate the HTML for display
from ASP code for business logic. - Robust ASP error handling Customer should never
see VBScript errors in production mode. Rich
error display in development mode.
Application Display Layer
Reusable Application Helper Layer
Helper ASP Code Library
Object Wrapper ASP Code Library
AppCfg Object
Commerce Server Platform Objects
77Wrap-up
78CS Timeline
- Alpha - 09/99
- Beta Code Complete 10/99
- Beta - 12/99
- RTM - Q1/00
79Challenges
- Need to backfill some key positions
- Dev Manager, Dev Lead, Test Lead, 3 PMs
- Dependencies
- W2K (IE5, CDO, IIS5) needs to ship on time
- Shiloh resolve integration and schedule
- BizTalk resolve integration and schedule
80Challenges (cont.)
- Post-Alpha work items
- BizDesk usability review
- Convert pipeline definitions to format for use
with BizTalk - Integration with Plato/Shiloh
- Content Manager
- Related Sell (Upsell, Cross Sell)
- Additional Solution Site
- Catalog API, UI for custom catalogs
- Perf/scale work
81The End!
82Backup Slides
83ExpressionsOverview
- Show promotion for new convertible when the
current user is male AND lives on the west
coast - Show ad for golf courses when the current user
is older than 65 years of age and it is the
afternoon - Select all users from user profile data store
who are between 25 and 30 years of age and live
in Seattle - Select all users from user profile data store
who are between 25 and 30 years of age and live
in Seattle
- Expressions
- Targeting conditions
- Filter queries
- Business rules
- Other expressions
- Expressions are
- Built on profiles
- Stored in BizDesk modules
- Evaluated at run-time
84DW Extra Slides
85Commerce OLE DB ProviderFeatures - Components
- Storage Driver
- Communicates with Storage Services
- Packs client side buffers asynchronously and
submit for further processing to Storage Services
(in-proc or remote) - Packing involves normalizing data laying out
buffers for optimal server processing - Contains in-memory copy of the Schema Catalog
- Many intrinsic commands
- Bulk Insert/Update
- Parses XML subset, comma, tab and space delimited
data files - Supports XML based or using OLEDB/ADO
- Schema changes/definitions
- Calculations changes/definitions/execution
- Report changes/definitions/generation
- SQL Command (Supports subset of syntax)
- SELECT, INSERT, DELETE, UPDATE
86Storage Services Features
- Provides rich and high performance logical
abstractions over SQL - Supports mapping to legacy DBs and partitions
- Custom web data types URI Date
- High performance relation management
- Supports ROLAP surrogate keys slowly changing
dimensions - Run as in-proc to OLE DB Provider or as NT
Service - Tight integration with OLAP services
- Robust error recovery from many soft database
errors - Extensive runtime information collection for
further analysis
Reference Slides Storage Service Components
87Storage ServicesComponents Catalog
- Catalog container for Metadata
- Logical
- Classes (Read Only, Non Persistent, Abstract..)
- Members Vectors/Multi-values, computed members
de-normalization - Efficient Relations (1-1, Inheritance, 1-M, M-M)
- Key Def, Partition Key Def, Type Def, Partition
policy - Aggregate definitions Calculations data
versioning (slowly changing dimensions) - Physical
- Table Def / Column Def Template of Physical
Table - Source Def, Partition defs, Indexes
- Optimal storage of relations enables ROLAP
schemas - Features
- Dynamic Schema
- Can add modify classes, members, relations on
the fly - Automatic physical schema generation from logical
(manual optional) - Map logical entities to legacy databases
- Loads and compiles the schema for efficient
processing - Schema definition in XML or ADO/OLE DB
Reference Slide Storage Services Logical Schema
88Storage ServicesComponents - Cube Manager Calc
Engine
- Cube Manager - handles MS OLAP integration
- Manages cube schema
- Synchronizes cube schema and logical schemas
- Member add ? dimension prop/dimension/nothing
- Relation add ? parent becomes dimension
- Manages virtual cubes
- Manages cube data
- Creates/modifies cubes
- Manages cube partitions
- Intelligent incremental update of dimensions/fact
data in parallel - Calc Engine query translation and execution
- Translates complex queries specified in XML to a
series of SQL query jobs or to a single OLAP
query. - Uses Job Manager infrastructure to run generated
queries in parallel when invoking SQL queries. - Assembles the results and invoke appropriate
calculation render components.
89Example Web Request job network processing
90Storage Service Components
91Storage ServicesLogical Schema
- Logical Schema manipulated through OLE DB 2.5
Provider - Special Schema Rows/Rowsets
- Logical Abstraction through Class, Members,
and Relations - Versioning support on the Class level
Class B
b1 b2 b3
x y z d
A
B
A
Mapping members from a class to a single
physical table
Mapping members from a class across multiple
physical tables
Mapping members from multiple classes to a single
physical table
Various class-to-table mapping schemes
92Storage ServicesLogical Schema
- By writing to a logical schema, we greatly reduce
the burden on the developer. For example, in log
import we write to one logical class,
Request/Hit which stores in potentially 17
physical tables
93Storage Services Features - Scaling
- Scaling
- Horizontal and vertical partitions across
multiple servers/databases/tables - Partitioning based on simple expressions (date,
hash) and support for partition policies - Multi dimension aggregates to reduce storage and
I/O - High performance
- Dynamic data layout in memory for cache friendly
access and high speed in memory processing - Algorithms to do highly parallel processing as
well as parallel relation resolving with little
lock contention - Hierarchy of work queues for processing and
database accessing in parallel - Batch operations parallel BCP operations
- Intelligent use of physical resources
- Parallel jobs against multiple tables/databases/se
rvers - Supports row IDs of 1, 2, 4, 6 or 8 bytes wide.
94Storage ServicesADO Schema Example
- -----------------------------------
- ' Add a new CLASS
- -----------------------------------
- rec.Open "CLASS/NewCls", cn, adModeReadWrite,
adCreateOverwrite - rec("IsPersistent") 1
Persistent class - rec("CatalogName") "test1 Name of
the catalog to store - rec("ClassDefName") "NewCls Name of
the new class - rec("SourceDefName") "test_Source Name of
the source - rec("GenerateTableDef") 1 Create a
table - rec("GeneratePartitionDef") 1 Create a
partition - rec("GenerateKeyDef") 1 Create a
key for the class - rec("GenerateIdentity") 1 Create
identity column - rec("__Commit") 1 Commit
this class - Commit the class to the catalog
- cmd.CommandText "CommitSchema
- cmd.Execute
95Storage ServiceADO Schema Example
- ' ----------------------------------
- ' Add a new MEMBER
- ' ----------------------------------
- rec.Open "MEMBER/NewCls/NewMem", cn, adModeWrite,
adCreateOverwrite - rec("MemberDefName") NewMem"
- rec("GenerateColumnDef") 1
- rec("IsPrimaryKey") 1
- rec("DefValAsStr") "DefaultValue"
- rec("TypeName") "WSTR"
- rec("__Commit") 1
- ' Commit Catalog changes
- cmd.CommandText "commitschema"
- cmd.Execute
96Storage ServicesADO Example
- ' ----------------------------------
- ' Add a new Instance
- ' ----------------------------------
- rec.Open "Instance/NewCls", cn, adModeReadWrite,
adCreateOverwrite - rec(NewMem") StringData
- rec(Date") Now
- rec("__Commit") 1
97Storage ServicesDynamic Resource Management
- Storage Services
- Global
- Partition
- DB
- Server
- Resources
- Batch Level
- Class
- CPU
98Commerce Data WarehouseStatus
- Bugs
- 50 active for Alpha
- 160 active for Beta
- Beta Features
- Full multi-value support
- Improve robustness, performance scalability
- WhoIS, Title Lookup, Scheduling
- High speed deletes
- Archiving
99Targeting Extra Slides
100Expression Requirements
- Based on Profiles
- Represented in XML
- Basis for application targeting
- Fast, 150 evaluations in 15ms
- Common UI
- Common Runtime
- Integrates with CSF
- Support translation into SQL queries
- Integrates with Site-Terms
101Expression Builder
- Business Manager focused UI for authoring
expressions - DHTML launched in application context via the
Business Desk - Expression Grammar configurable by application
- Consumes profile schemas site terms
- Data Store
- Used to persist, name and retrieve expressions
- Expressions represented in XML
102Expression Evaluator
- COM component that evaluates specific expression
- Expressions can be preloaded and precompiled
- Can evaluate multiple expressions per request
(e.g. CSF) - Evaluation results cached for duration of request
- Callable with expression Id or expression XML
103Content Selection Framework
- Open content scoring architecture
- Many reusable components
- Very Fast
- Speed research efforts created
- Fast Dictionaries via hash key lookups
- High performance content object
- Cache Controller
- Active content templates (patent applied for)
- Peer-to-peer cache synchronization (patent
applied for) - Open content scoring architecture (patent applied
for)
104Prediction Engine
- Uses MS Research technology (patent applied for)
- Distributed model architecture
105Content Selection Framework
- Platform supporting content decision applications
- Advertising, Discount, Content Delivery, Coupons
- Based on commerce pipelines
- Provides
- integrated targeting support with expression
evaluator - content formatting templates
- open platform to build your own content BizDesk
modules - Supports multiple types of events
106Real-time Recommendations
- Expands Intelligent Cross Sell from 3.0
- Value-added functionality specific components
- Product cross-sell
- Personalized product recommendation
- Algorithms can be parameterized
- Confidence levels
- Number of recommendations returned
- ASP wrapper functions make coding easier
- Highly scalable architecture
- Developed jointly with MS Research
107Direct Marketing
- Direct Marketing is an off-line form of
targeting. - It leverages the Data Warehouse Calc engine as
one way to produce lists of users to send mail
to. - Via the List Manager object we can get targeted
lists of users from Analysis, SQL or flat files.
108CSF Global.ASA
- Dim CacheMgr
- set CacheMgr Server.CreateObject("Commerce.Cache
Manager") - CacheMgr.LoaderProgId(discounts")
"Commerce.LoadDiscounts" - CacheMgr.WriterProgId(discounts")
"Commerce.WriteEvents - Set ContentTypeMap Server.CreateObject(
"Commerce.Dictionary" ) - Set Application("MSCSContentTypeMap")
ContentTypeMap - Set Pipe server.CreateObject("Commerce.OrderPipe
line") - Pipe.loadpipe(Discount.PCF")
- Set ContentTypeMap("advertising") Pipe
109CSF Web Pages
- Dim CSO, rsDISC
- Set CSO Server.CreateObject("Commerce.ContentSel
ector") - Set CSO.Evaluator Application("MSCSExpressionEva
luator") - CSO.Size "Banner"
- CSO.TargetFrame "_top"
- CSO.NumRequested 1
- CSO.PageGroup "Home"
- Set CSO.UserProfile UserProfile
- Set CSO.CacheManager Application("MSCSCacheManag
er") - Set CSO.ContentTypeMapping Application("MSCSCont
entTypeMap") - Set rsDISC CSO.GetContent("Discounts")
- If NOT rsDISC.EOF Then Response.Write(rsDISC("html
")) End If
110CSF Redir.ASP
- set Pipe Application("CampaignsCSFEventPipe")
- sCacheName Request.Querystring("CacheName")
- set dictCache Application("MSCSCacheManager").Ge
tCache(sCacheName) - sEvt Request.Querystring("evt")
- ciid clng(Request.Querystring("ciid"))
- set dictOrder("_Performance")
dictCache("_Performance") - Pipe.orderExecute 1, dictOrder, dictContext,
Errlvl
111Content Delivery (not for Alpha)
- Separation of page logic, format and data
- Allows a business user to easily manage, format
and target content on a page - Allows developers
- Simple programming interfaces for the VID
developer - High performance and scalability
- Extensible formatting templates
112Advertising features
- Campaign or Campaign Item impression goals
- Real-time performance monitoring of campaigns
- Exposure limits
113Discount Campaign Mgt
- Reacts to product page and users basket
- Related Sells Campaign Management
- Supports Up-Sell, Cross-Sell and Inventory Sell
114Direct Mail Campaign Mgt
- Fast, Scalable, Runs as an NT Service
- Has a List Management object to support importing
and merging of lists - Campaign tracking of mails sent, clicked
- Non-delivery processing is in danger of being
dropped due to insufficient staffing
115User Profile Extra Slides
116User Profile System Status
- Alpha
- Currently coding and testing SQL7 and AD support
- Need to test scalability of architecture
- Site Auth object working
- Post Alpha
- Need to implement secure Nt5 forms-auth filter
- Need to enable and aggressively test distributed
data source support (SQL7, AD) - Need to implement MMC designers and migrate
BizData Admin Object to C. - Need to re-align with latest XML/Schema/Data
standards. - Need to implement BizData OLEDB BULK update
support - Dependencies
- NT5 Active Directory ADSI
- DAG SQL, ADO, OLEDB
- XML (DOM, Standards, BizTalk, etc.)
- IIS5, ASP, COM
- Issues
- Dev and Test bandwidth remains throttled.
- Scaling and deploying on win2k AD is a challenge
- Profile Svc has no Tx support in Commerce 4.0
117BizData Runtime Object Features
- Profile Service Object
- Runtime data object exposing simple consistent
object model for business objects (users,
context, content, ...). - Optimized architecture minimizes user profiling
transaction loads. - Supports business data extensions (groupings,
terms, meta tags, etc..) - Enables Commerce Applications (User Management,
Targeting, ...) - Commerce OleDB Provider
- Enables data source interoperability (ActiveDs,
SQL7, 3rd Party (LDAP, ODBC) - Enables data source aggregation (objects derived
from multiple sources) - Enables physical to logical data translations to
better reflect business logic. - Enables optimized data source access (connection
pools, distributed databases, memory pooling,
configurable caching, etc...) - Enables solid integration with Analysis system
(DTS export flags). - Expression Evaluator Object
- Enables optimized runtime expressions (business
rules) based on profiles for targeting and
personalized applications. - Optimized caching and pcode enables optimized
evaluation in runtime.
118Profile Object Architecture Feature Breakdown
Profile Service Object Features Manages primary
profile object factory (Get, Delete, Create)
Set User GetProfile(Joe, USER) Set Org
GetProfileByType(orgID, User.Info.OrgId,
Organization) Enables cross-page profile object
cache Instantiated as Application Object
under IIS (e.g. Global.asa) Configurable
Object Cache (TTL expiration, Cache
pre-allocations) Configurable Profile
Property Loading On first load of
profile object fetch only properties x, y, z.
Other properties (e.g. Images) are
loaded on demand. Profile Object
(Run-time) Profile object interface supporting
simple property level access (set/get
user.name). Exposes standard object interfaces
for property access ADSI-IAds,
ADO-Fields User.Name joe
User.Address.Zip 98052
User.SetInfo Enables R/W property cache (cache
flush and reload semantics). ADO Support
(Design-time) Simple ANSI-SQL semantics
INSERT INTO user VALUES (namejoe,
emailjoe_at_ms.com) UPDATE user SET (email
joe_at_ms.com) WHERE name joe DELETE FROM
user WHERE name joe SELECT name,
address.zip FROM user WHERE name joe
ANDS only SELECT FROM user WHERE
lastModified June 5, 2000 170000 ORDER BY
guid
119Profile Object Architecture Breakdown (continued)
Commerce OLEDB Provider Enables ADO support
with simple ANSI-SQL semantics (profile table
object) SELECT, UPDATE, DELETE, INSERT
BULK UPDATE, DELETE (Beta) Manages BizData
Profile Definition Cache Profile Definitions
(users, context, etc..) Enables logical to
physical data source mappings Manages Data
Source Aggregation Plug in Data Source
Providers include (LDAPv3, SQL7, OleDb/ODBC)
Simple COM objects providing data source specific
interface Manages joining or chaining across
across data sources. Profile Data Source
Providers ADSI/LDAPv3 Provider Enables
Active Directory, Membership, ILS, ... Netscape?
Supports NT Secure Login based on security
context of logged in user. Enables
connection pooling (beta) Supports DN
semantics (hiearchical storage) Commerce/SQL7
Provider Enables scalable property store on
SQL7. Leverage stored procedure interfaces
Supports MULTIVALUE properties Support
Database Partitioning (beta) OLEDB/ODBC
Enables ODBC sources supporting basic ANSI-SQL
INSERT, UPDATE, DELETE, SELECT
Supports connection pooling, unicode, ...
SQL7, ORACLE, DB2?, etc...
120Profile Design Flow
- Design Business Profile Objects using the Profile
Designer - Create profiles as a collection of properties
- Users, Context, Products, etc...
- Include extended profile data types
- Site Terms User.Favorite_Color - Site_Colors
(red, blue, green, etc..) - Profile References User.Manager,
User.Organization - Group related properties User.Home_Address.Zip,
User.Business_Address.Zip - Attach application specific property tags
(attributes) - User.Age (constraints, UI hints, descriptions,
etc...) - Map profile definitions to physical data source
objects - Map property to physical data source object
- LDAPv3 Directory (class attribute)
- SQL7 Database (table column)
- ODBC Data source (table column)
- Manage data integrity (Primary Keys, Data Types)
- For profiles aggregating across multiple data
sources define the Join Keys. - Non-mapped properties are considered dynamic
(cached properites) that only last for the object
session.
121Simple User Profile DefinitionXML Sample
Definitions"
typeDefName"STRING" keyDef"PRIMARY"
IsExported"1" idref"ADSource.User.email"/
typeDefName"STRING" isSearchable"1"
isExported"1" idref"ADSource.User.cn"/
name"UserID" typeDefName"STRING" keyDef"JOIN"
isExported"1" idref"ADSource.User.GUID/
name"Password" typeDefName"STRING"
"/
creditCard"/
typeDefName"NUMBER" isExported"1"
e"/
typeDefName"DATE" isExported"1"
Visit"/
typeDefName"STRING" isExported"1"
isMultiValued"1"
122User Profile System Performance Goals
Enable Improved performance for user data access
under IIS Enable cross page caching Enable
optimized memory management Enable connection
pooling Enable optimized data source interfaces
(IDirectory, SQL stored procs, etc.) Enable
support for session state (object cache, ILS
support, IMDB?) Challenge Work with DAG and NT
teams to incorporate optimizations and logic into
data access components. Opportunity Work with
AppServer team to incorporate extensible
architecture and caching solutions into core
architecture? Enable Large User Populations (
10Million Users ADSQL) Enable support for
advanced database configurations
(beta) Partitions SQL7 databases ( 1M users
per SQL x 50 props) Distributed AD Directories
( 1M users per DS) Challenges Work with NT
ActiveDS Team on optimal distributed solutions
that will manage anticipated transaction loads
(logins, searches, modifies) Enable Transaction
Load Balancing Minimize Database access (Smart
Object/Property based Caching) Enable Web server
load balancing (beta) single login, cross
server session state, etc... Challenges NT
security context/Secure Passwords Opportunity
Drive BizData Object architecture to 2nd tier
service Opportunity Align with
AppServer Session Service (investigate plans)
123User Profile System Performance Numbers
First performance run on Alpha drop TBD ASP
Simple ASP/second ASP/ADO/SQL7 ASP/
ADSI/AD ASP/UPO/SQL7 ASP/UPO/AD
124User Profile SystemCommerce Bizdata Enabled
Services and Integration
- Targeting Services
- Enables user personalization, targeting
applications and services. - Content Selection Framework leverages User
Profiles and Expression Evaluator object. - More detail to follow.
- Transaction Services
- Easily integrates with transaction services
(Pipeline and Biztalk) to enable user context and
transaction management. - More detail to follow.
- Site Analysis and Decision Support
- Solid integration with Commerce Dataware house
with custom DTS task for incremental runtime
export of Bizdata profile objects. - User profile integrated with Site Auth and IIS
logging - BizDesk application integration enables feedback
into runtime system. - Business Data Object Interchange
- Enables integrated solutions with BizTalk
interchange services .
125Sample XML Expression YoungActiveUser
User.Age 15 AND User.Age (User.Info.Preferences Contains(extreme
sports) OR (User.Info.Preferences
Contains(mountain biking) OR (User.Info.Prefer
ences Contains(auto racing) ) TYPE'and' RTY ID'User.Info.Age' TYPE'number'
/ 15 AUSE ID'User.Info.Age' TYPE'number' / TYPE'number'25 TYPE'or' ID'User.Info.Preferences' TYPE'string'
MULTIVAL'true' / TYPE'string'extreme sports E ID'User.Info.Preferences' TYPE'string'
MULTIVAL'true' / TYPE'string'mountain biking SE ID'User.Info.Preferences' TYPE'string'
MULTIVAL'true' / TYPE'string'auto racing