Title: Aligning design, development and operational constraints in building complex IT systems'
1(No Transcript)
2Aligning design, development and operational
constraints in building complex IT systems.
- Gianpaolo Carraro
- Architect
- Developer and Platform Group
- Microsoft Europe, Middle East and Africa
3"What do you mean it doesn't run in production?
It runs fine on my machine?!"
Anonymous developer
4Aligning constraints issues (example)
System Infrastructure Team
Application Development Team
Tension
- Develop software components
- Meet functional requirements
- Maintain servers and network
- Meet operational requirements
Deployment
- They talk about
- Components
- Services
- Layers
- They talk about
- Clusters, Farms
- Firewalls
- Load Balancing
5Summary
- Building Service Oriented Applications is complex
- Complexity is added due to interaction of (often)
independent teams. - Modeling languages and visual tools
- have to potential to greatly reduce complexity
- highly facilitate the alignment of design,
development and operational constraints in
building complex IT systems
6- Building Service Oriented Applications is complex
7New Business Requirements
Automate business processes Value chains with
partners Customer and supplier self service
Improve ROI of IT Lower operating costs Cut time
to market
8New Application Architecture
Automate business processes Improve ROI of
IT Lower operating costs Cut time to market Value
chains with partners Customer and supplier self
service
Service oriented architecture Web Services,
messaging, contracts Security Caching and state
management Deployment policies
constraints Heterogeneous platforms
9Evolving Platform Technology
Automate business processes Improve ROI of
IT Lower operating costs Cut time to market Value
chains with partners Customer and supplier self
service
Application Servers and standards Schemas and
databases Code and attributes Configuration
files Project structures Physical server
configurations
Service oriented architecture Messaging and
protocols Security Caching and state
management Deployment policies
constraints Heterogeneous platforms
10Complexity
Automate business processes Value chains with
partners Customer and supplier self service
Improve ROI of IT Lower operating costs Cut time
to market
Service oriented architecture Web Services,
messaging, contracts Security Caching and state
management Deployment policies
constraints Heterogeneous platforms
Application servers standards Schemas and
databases Code and attributes Configuration
files Project structures Physical server
configurations
11Where Does Complexity Arise?
entity
entity
0..1
User
Credit Card
1
address String
accountNumber String
city String
cardType String
country String
expirationDate Long
email String
nameOnCard String
groupId String
uid String
password String
userUid String
secretNumber Integer
1..
state String
setValues ( )
status String
getValues ( )
uid String
userId String
1
zip String
derived
entity
entity
Seller
Buyer
1
1...
entity
entity
Auction
Bid
categoryUid String
amount Float
creditCardAccount String
auctionUid String
creditCardExpiration Long
buyerUid String
0..1
creditCardName String
cancelExplanation String
creditCardType String
date Long
endTime Long
status String
itemUid String
uid String
minimumBidIncrement Float
sellerUid String
startingPrice Float
startTime Long
status String
timezoneUid String
uid String
setValues ( )
getValues ( )
?
- Low-level Implementation languages
package com.microsoftpearlcircle.auction.auctionma
nager.business.auctionmanager import
java.rmi.RemoteException import java.util.Vector
12Abstraction Decreases Complexity
- General Purpose Abstractions
C, Java, etc
- Bytecode or machine languages
Assembler, Pcode, CLR IL
13Domain Specific Modeling Language(a definition)
- Domain Specific Abstractions
- Narrow Scope
- Graphical
- Highly Expressive
- Coarse-grained abstractions
- May be translated into
- General purpose programming languages
- Specific framework completion
- Other modeling languages
14- A case study building a connected system
using with Web Services
15Where Does Complexity Arise?
entity
entity
0..1
User
Credit Card
1
address String
accountNumber String
city String
cardType String
country String
expirationDate Long
email String
nameOnCard String
groupId String
uid String
password String
userUid String
secretNumber Integer
1..
- High Level Concepts
- Activities
- Messages
- Security
- Reuse
- Components
- Protocols
state String
setValues ( )
status String
getValues ( )
uid String
userId String
1
zip String
derived
entity
entity
Seller
Buyer
1
1...
entity
entity
Auction
Bid
categoryUid String
amount Float
creditCardAccount String
auctionUid String
creditCardExpiration Long
buyerUid String
0..1
creditCardName String
cancelExplanation String
creditCardType String
date Long
endTime Long
status String
itemUid String
uid String
minimumBidIncrement Float
sellerUid String
startingPrice Float
startTime Long
status String
timezoneUid String
uid String
setValues ( )
getValues ( )
?
package com.microsoftpearlcircle.auction.auctionma
nager.business.auctionmanager import
java.rmi.RemoteException import java.util.Vector
- Low-level Implementation languages
16Scattered Concepts
?
Project Files and templates
Deployment Policies And Packages
.asmx files
.asmx code behinds
source code Statements and attributes
XML Configuration Files and schemas (e.g. WSDL
files)
17Replaced By A Holistic View
Web Service Interaction DSL
Project Files and templates
Deployment Policies And Packages
.asmx files
.asmx code behinds
source code Statements and attributes
XML Configuration Files and schemas (e.g. WSDL
files)
18Need A Designer Infrastructure
- For a specific aspect of overall development
- Define a metamodel for the abstractions
- Define a graphical notation
- Define a synchronization engine
19Simplify Using DSLs
Strategic Objectives
Manual Procedures
Business
Business Processes and Entities
Services, Messages, Contracts, Schedules
XML, Database, Classes, Code
Technology Architecture
Logical Data Center
IT
20Whats Inside A Viewpoint?
Strategic Objectives
Manual Procedures
Business
Business Processes and Entities
Services, Messages, Contracts, Schedules
XML, Database, Classes, Code
Technology Architecture
Logical Data Center
IT
21Whats Inside A Viewpoint?
Strategic Objectives
Manual Procedures
Business
Business Processes and Entities
Services, Messages, Contracts, Schedules
XML, Database, Classes, Code
Technology Architecture
Logical Data Center
IT
22Example 1
Strategic Objectives
Manual Procedures
Business
Business Processes and Entities
Services, Messages, Contracts, Schedules
XML, Database, Classes, Code
Technology Architecture
Logical Data Center
IT
23Dynamic Systems Initiative (DSI)
24Whidbey Solutions
An application designer
A system hosting designer
A logical data center designer
25- Introducing codename Whitehorse
26A DSL In Use Today
- Number 1 Design tool in the market!
27(No Transcript)
28(No Transcript)
29(No Transcript)
30(No Transcript)
31Demo (movie)
From PDC Session TLS345(available at
http//sitestream.microsoft.com/pdc2003)
32Patterns, Aspects And Transforms
- Web Interaction Patterns
- Service Interface
- Gateway
- Façade
- Logical System Architecture Patterns
- MSA Patterns
- IDC, EDC
- Layered Architecture Patterns
- Aspects
- Transactions
- Security
- Transformations
- Validate against deployment infrastructure
- Transform into implementation artifacts
33Applying A Service Façade Pattern
Service
Project Structures References Default XSD
schemas Security Policy Access Policy Pass-thru
Logic Filters
Policy Management
Selected Messages
Customer Management
Customer Self-Service
34Patterns
35Deployment patterns
36Deployment Plan
Solution Simple Web Application
Database Clusters
Web Clients
Web Application Farm
DAC
UIC
Data Sources
BC
UIP
Clients
37Deployment Plan
Solution Extended Enterprise Application
Database Clusters
Web Clients
Web Farm
Application Farm
DAC
BC
UIP
UIC
Data Sources
Clients
SA
SI
38Deployment Plan
Solution Smart Client Application
Database Clusters
Smart Clients
Web Farm
Application Farm
DAC
BC
UIP
UIC
Data Sources
SI
SA
39Aspect Weaving Instrumentation
Pointcut
Aspect
Policy Management
Pointcut
Code
Pointcut
Customer Management
Aspect
Pointcut
Pointcut
Customer Self-Service
Pointcut
Aspect
40Making Use Of Metadata
- Metadata collected in DSLs can be made available
across the life cycle - Source control systems
- Debuggers
- Testing Tools
- Compilers and language editors
41Enterprise Design Tools
Goal Simplify design and deployment of SOAs
- Build an initial set of model-driven development
tools supporting DSLs - Focused on specific development tasks
- With hi-fidelity, continuously synchronized
mappings to code or other models - Expand and integrate model data throughout life
cycle tools - Productize and promote underlying tool-building
frameworks and tools
42DSLs Supported
- Rich support for designing and constructing
connected applications from Web services - Designing WS for operational deployment
- Logical infrastructure requirements considered
early inform and constrain developers - Verify application settings against logical
infrastructure
43Review
- Modeling languages can help reduce complexity
- Domain-specific abstractions
- Holistic view of scattered concepts
- Modeling languages create the link among (i.e.
align) constraints - Extensibility is very important
- Implementing DSLs can be made effective with the
right underlying engine - Microsoft is working to improve Web service
design and deployment scenarios
44Further Information
- Whitepapers on MSDN, Visual Studio
Enterprisehttp//msdn.microsoft.com/vstudio/enter
prise
45(No Transcript)