Amit Bahree Senior Solution Architect Avanade. Agenda .NET 3.0 Introduction What is SOA? WCF WPF ...
-
Upload
raymond-manning -
Category
Documents
-
view
222 -
download
3
Transcript of Amit Bahree Senior Solution Architect Avanade. Agenda .NET 3.0 Introduction What is SOA? WCF WPF ...
Amit BahreeSenior Solution ArchitectAvanade
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
.NET 3.0
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
Why Messages?
Cross-platform Integration Asynchronous Communication Reliable Communication Mediation Thread Management Remote Communication End-to-End Security
Definitions
Service An autonomous system that accepts
requests and returns responses via set of published and well defined interfaces.
Service Orientation An Architectural paradigm that employs
the four tenets. Service Oriented Architecture
A architectural comprising of a collection of services which adheres to the four tenets.
Four Tenets of Service Orientation
Boundaries are Explicit
Know your Boundaries. Services should be easy to consume. Avoid RPC Interfaces. Keep the service surface area small. Don’t expose implementation details.
Services are Autonomous
Service versioning and deployment are independent of the system in which they are deployed.
Contracts should not change after publishing.
Adopt a pessimistic approach and isolate services from failure.
Share Schema & Contract, not Class Contracts and schema interact based on
data, WSDL and policy do not change over time.
Contracts should be as explicit as possible. If a service contract needs to be broken
then version the service, thereby minimizing the “ripple effect”.
Don’t expose internal representation.
Service Compatibility is based on Policy Separate service interactions from
constraints on those interactions. Service capabilities and requirements
are expressed in terms of a policy expression
Assertions identified by stable, globally unique names
SOA – the Holy Grail?
Myth Reality
Is a technology or a set of technologies.
It is revolutionary. It is the end goal. Requires Business and
Technology overhaul. Complex and requires
a lot of resources (people).
Is an architectural paradigm.
It is evolutionary. It is the means to an
end. It is an incremental
process. Relatively easy and
does not need an army.
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
Three Pillars of WCF
ASMX WSE
.NETRemoting
System.Messagin
g
Enterprise
Services
Today’s Technology
Interop withInterop withother platformsother platforms
ASMX
Ent Ent ServicesServices
Attribute-based programming
WSEWSE
WS-* protocols
Sys.MessaSys.Messagingging
Message- based programming
LocationLocationtransparencytransparency
Remoting
Unified framework supersets existing technologiesUnified framework supersets existing technologies
WCF Unified Framework
WCF Architecture
Service Model Layer
Influences and adds to the programming model based on
incoming messages
Messaging Layer
Moves messages backand forth and adds transfer semantics
(channels)
ServiceServiceCodeCode
Transaction Behavior
CLR Type Integration
Instancing Behavior
Security
Channel
TCP Transpor
t
Security
Channel
TCP Transpor
t
Transaction Behavior
CLR Type Integration
Composable Architecture
Service Model LayerService Model Layer Messaging LayerMessaging Layer
BehaviorsBehaviors ChannelsChannels
Transaction Behavior
CLR Type Integration
Instancing Behavior
Security
Channel
HTTP Transpor
t
Custom Channel
Reliable Messagin
g
Queue Transpor
t
MSMQ Integrati
on
TCP Transpor
t
Named Pipes
Throttling Behavior
Error Handling Behavior
Concurrency Behavior
Metadata Behavior
Custom Behavior
HTTP Transpor
t
TCP Transpor
t
Security
Channel
Custom Channel
Reliable Messagin
g
CLR Type Integration
Instancing Behavior
Transaction Behavior
Composability in Action
WCF Architecture
Windows Activation Windows Activation ServiceService
Windows Activation Windows Activation ServiceService .EXE.EXE
.EXE.EXE Windows Windows ServicesServices
Windows Windows ServicesServices COM+COM+
COM+COM+
HTTP Chann
el
HTTP Chann
el
TCPChann
el
TCPChann
el
Transaction Flow
Channel
Transaction Flow
Channel
NamedPipe
Channel
NamedPipe
Channel
MSMQ Chann
el
MSMQ Chann
el
Security
Channel
Security
Channel
Reliable Msg
Channel
Reliable Msg
Channel
Binary Encode
r
Binary Encode
r
Text Encode
r
Text Encode
r
XML Encode
r
XML Encode
r
MTOM Encode
r
MTOM Encode
r
Transaction
Transaction
Dispatch
Dispatch
Concurrency
Concurrency
Throttling
Throttling
Metadata
Metadata ErrorErrorInstanceInstance
Message Inspection
Message Inspection
ContractsData
DataMessage
MessageService
Service Policy and Binding
Policy and Binding
Parameter Filtering
Parameter Filtering
ApplicationApplication
Side-by-SideSide-by-Side
InteropInterop
UpgradeUpgrade
Investment Protection
20,379 lines security
5,988 lines reliable messaging
25,507 lines transactions
Total lines 56,296
4,442 lines infrastructure
class HelloService { [WebMethod] public String Hello(String Greeting) {
X509CertificateCollection collection = new X509CertificateCollection();IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(CRYPTOAPI_BLOB))); IntPtr data = (IntPtr)((int)blob + Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));…
SeqAckRange range = new SeqAcknRange(id, low, high );SeqAckRange[] ranges = { range };ReliableQueue.ProcessAcks( ranges );…
hr = pITxDispenser->BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction);…
return Greeting; }}
Development ProductivityUsing Visual Studio .NET 2003
Development ProductivityUsing Visual Studio .NET 2003 and WSE
10 lines security
1,804 lines reliable messaging
25,507 lines transactions
Total lines 27,321
class HelloService { [WebMethod] public String Hello(String Greeting) {
foreach ( SecurityToken tok in requestContext.Security.Tokens { X509SecurityToken token = tok as X509SecToken }
… SeqAckRange range = new SeqAcknRange(id,low,high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); …
hr = pITxDispenser->BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); …
return Greeting; }}
Development ProductivityUsing Visual Studio 2005 and WCF
1 lines security
1 lines reliable messaging
1 lines transactions
Total lines 3
[ServiceContract(SecureChannel, SecurityMode =“Windows")][Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)][ServiceContract]class HelloService { [ServiceOperation(TransactionFlowAllowed = true)] String Hello(String Greeting) { return Greeting; }
More than changing Transport Layers
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
What is User Experience?
Term used to describe the overall experience and satisfaction a user has when using a product or system.
Commonly refers to a combination of software and business topics.
Applies to any result of interaction design e.g. VRU’s.
From Wikipedia
User Experience in Software
User Experience Challenges
WPF Vision Unified approach to UI,
Documents, and Media Integration as part of
development and experience
Integrated, vector-based composition engine Utilizing the power of the PC
throughout the graphics stack
Declarative programming Bringing designers directly into
application development
Ease of deployment Allowing administrators to
deploy and manage applications securely
Unified Approach
With XAML designers With XAML designers
& developers can & developers can
streamline their streamline their
collaborationcollaboration
Declarative Programming
Built in controls have hard-coded look
Doing something custom takes lots of extra code WinXP Start Button team:
4 Developers, ~6 Months Dev Time
XAML – Declarative Programming
<Button Width="100"> OK <Button.Background> LightBlue </Button.Background></Button>
XAML
Button b1 = new Button();b1.Content = "OK";b1.Background = new SolidColorBrush(Colors.LightBlue);b1.Width = 100;
C#
Dim b1 As New Buttonb1.Content = "OK"b1.Background = New _ SolidColorBrush(Colors.LightBlue)b1.Width = 100
VB.NET
XAMLXAMLeXtensible Application Markup LanguageeXtensible Application Markup Language
Application or Browser?
SecurityChecking for Updates
Accessible
New Document Technologies XPS Print Path WPF Document API Open Document Specification XPS Viewer “Save As” Print Driver
Application Services
Deployment Services
Databinding
USER INTERFACE SERVICES
XAML
Accessibility
Property System
Input & Eventing
BASE SERVICES
DOCUMENT SERVICES
Packaging Services
XPS Documents
Animation
2D
3D
AudioImaging
Text
VideoEffects
Composition Engine
MEDIA INTEGRATION LAYER
Controls
Layout
WPF Architecture
More than a Pretty Face
Delivering Innovative User Experiences
Increase Developer – Designer Productivity
Flexible Application Deployment Leverage Existing Investment
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
EX: Check InventoryEX: Escalate To Manager
What Is A Workflow?
A Set Of Activities A Set Of Activities That Coordinates People That Coordinates People
And / Or Software...And / Or Software...
Like a flowchart…. Like a flowchart…. Or a state diagram…. Or a state diagram….
Sequential Workflow
Sequential structure Prescribes processing order
Step1
Step2
State MachineWorkflow
External events drive processing order
State2
State1Event
Event
Rules + data state drive processing order
Rules-driven Activities
Rule1
Rule2
Data
Step2
Step1
Activity Basics
Activities are the building blocks of workflows
Basic Activities – steps within a workflow and do “work”
Composite Activities – contains other activities
Forms and Controls Activity Control Workflow Form
Host ProcessHost Process
WF Architecture
Workflow Foundation
Runtime EngineRuntime Engine
A Workflow
Activity
Runtime ServicesRuntime Services
Base Activity LibraryBase Activity Library
Custom Activity Library
Visual Designer
Components
Key Concepts Workflows is a set of
Activities. Workflows run within a host
process. Developers can build their
own Custom Activity Libraries
Base Activity Library – Out-of-box activities and base for custom activities.
Runtime Engine – Workflow execution and state management.
Runtime Services – Hosting flexibility and communication.
Visual Designer – Graphical and code-based construction
WF Authoring Modes
Markup Only“Declarative”
XML defines workflowstructure logic and dataflow
XAML
Code Only
Code creates workflowin constructor
C#/VB
Markup & Code
XML defines workflowCode-beside definesextra logic
XAML C#/VB
Workflow Loader
Workflow Compilerwfc.exe
C#/VB Compiler.NET Assembly
Workflow Runtime
Workflow Runtime
ApplicationGenerated
XAML C#/VB
App. Creates ActivityTree & Serializes
Extensible Approach
OOB activities,workflow types, base typesGeneral-purposeActivity libraries define workflow constructs
Out-of-Box Activities
Base Activity Base Activity LibraryLibrary
Create/Extend/Compose activitiesApp-specificbuilding blocksFirst-class citizens
Compose activities
Extend activity
Author new activity
Custom Activity Custom Activity LibrariesLibraries
Vertical-specificactivities & workflowsBest-practice IP &Knowledge
Compliance
RosettaNet
CRM
IT Mgmt
Domain-SpecificDomain-SpecificWorkflow Workflow PackagesPackages
Two Workflow Products
Workflow and BizTalk
MessagingMessaging
DesigDesignn
ToolsTools
BusinesBusinesss
ActivityActivityMonitorMonitor
AndAndAdminAdminToolsTools
OrchestratioOrchestrationn
TransformatiTransformationon
AdaptersAdapters
BizTalkBizTalkAcceleratorsAccelerators
Premium BPM serverPremium BPM serverDistinct server productDistinct server product
Use in B2B, EAI, BPM scenariosUse in B2B, EAI, BPM scenarios
Deployable solutionsDeployable solutions
Manageability, Scale-outManageability, Scale-out
WorkflowWorkflow
Future version will migrate to Future version will migrate to Windows Workflow Foundation for Windows Workflow Foundation for orchestrationorchestration
WinFXWinFX
Visual Studio DesignerVisual Studio Designer
Windows Workflow Windows Workflow FoundationFoundation
Workflow frameworkWorkflow frameworkFuture technology Future technology
Broad set of scenarios Broad set of scenarios
Used to build solutionsUsed to build solutions
Enables manageability and scale-Enables manageability and scale-out in solutionsout in solutions
Use for building workflow into Use for building workflow into apps or workflow enabled serversapps or workflow enabled servers
Windows Workflow Foundation
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
Identity Crisis The Internet is more useful then ever… and The Internet is more useful then ever… and
more dangerous – It was designed without an more dangerous – It was designed without an identity layeridentity layer
Password FatiguePassword Fatigue Username + password is weak and overwhelmedUsername + password is weak and overwhelmed Identity theft, spoofing, phishing, fraudIdentity theft, spoofing, phishing, fraud
Enterprises are in identity silo hellEnterprises are in identity silo hell
www.antiphishing.orgwww.antiphishing.org
22% Stopped
25% Reduced
Goals Safe and secure Internet for allSafe and secure Internet for all
Safely, reliably identify sites to users…Safely, reliably identify sites to users… ……and users to sitesand users to sites Usable by everyone, everywhereUsable by everyone, everywhere Put users in control of their identityPut users in control of their identity
Connected SystemsConnected Systems Remove walls between systemsRemove walls between systems Internal and externalInternal and external
The Laws of Identity
User Control and ConsentUser Control and Consent Limited Disclosure for Limited UseLimited Disclosure for Limited Use Justifiable PartiesJustifiable Parties Directed Identity (Omni and Uni-Directed Identity (Omni and Uni-
Directional)Directional) Pluralism of Operators and TechnologiesPluralism of Operators and Technologies Human IntegrationHuman Integration Consistent Experience Across ContextsConsistent Experience Across Contexts
http://www.identityblog.com/
Identity Metasystem
Universal adoption of a single identity system Universal adoption of a single identity system unlikelyunlikely
Unifying identity meta-systemUnifying identity meta-system Connect and leverage the strengths of constituent Connect and leverage the strengths of constituent
identity systemsidentity systems Platform IndependentPlatform Independent Standard UIStandard UI
Protect applications from underlying Protect applications from underlying complexitiescomplexities
Decouple digital identity from implementation Decouple digital identity from implementation detailsdetails
Metasystem Concepts
Identity: A set of Identity: A set of claimsclaims in a in a security security token token provided by (and about) a provided by (and about) a subjectsubject
Roles :Roles : Relying PartyRelying Party Subject (user / client)Subject (user / client) Identity ProviderIdentity Provider
Protocol:Protocol: User is asked for identityUser is asked for identity User chooses an identity providerUser chooses an identity provider Identity provider gives user a security tokenIdentity provider gives user a security token User passes the token to the requestorUser passes the token to the requestor
Protocol Drill Down
Identity Provider(IP)
Relying Party(RP)
ClientClient wants to access a resource
RP provides identity requirements
1
2
User
3 Which IPs can satisfy requirements?
User selects an IP4
5Request security token (authentication required e.g. X509, Kerberos, username/pwd, self-issued token)
6
Return security token based on RP’s requirements (any format) – and optional signed display token
7 User approves release of token
8 Token released to RP (RP reads token and allows access)
Windows CardSpace
What is Windows CardSpace? Identity Selector for Windows
Digital identities represented by cards When user selects a card
Get security token from Identity Provider Give it to the Relying Party after user
consent User is in control Security
TokenService
UserExperience Service
Windows CardSpace
Easily and safely manage digital identities.
Authenticate with Websites and Web Service.
Easier No Usernames No Password Consistent login and
registration Safer
Avoid Phishes Multi-Factor Authentication Users in Control
WS-*Web Services
Windows CardSpace
User Relying Party
Identity Provider
CardSpace Cards
Contains claims about my identity that I assert
Not corroborated Stored locally Signed and encrypted to
prevent replay attacks Presented by user during
account sign-up
Provided by banks, stores, government, clubs, etc.
Locally stored cards contain metadata only (no identity)
Data stored by Identity Provider and obtained only when card submitted (from STS)
Provisions .CRD file via email, website, group policy etc.
Self Issued Managed
CardSpace and the Enterprise User-centric, active federation Information Cards
Standardized and ubiquitous Flexible, agile user-driven relationships Anti-phishing and information
minimalization Security Token Services
Identity service which connects systems
Agenda
.NET 3.0 Introduction What is SOA? WCF WPF WF CardSpace Q&A
Contact Information Amit Bahree
Senior Solution ArchitectAvanade
email: amitb<NOSPAM>@avanade.com blog: www.desigeek.com
msdn webcast: TBA msdn articles: TBA
book: http://tinyurl.com/2meycl