Windows DNA: Windows DNA: The Microsoft Application Platform The Microsoft Application Platform for the Enterprise for the Enterprise Carlos McKinley Carlos McKinley Microsoft Corporation Microsoft Corporation
Mar 27, 2015
Windows DNA:Windows DNA:The Microsoft Application Platform The Microsoft Application Platform
for the Enterprisefor the Enterprise
Carlos McKinleyCarlos McKinleyMicrosoft CorporationMicrosoft Corporation
AgendaAgenda DNA ExploredDNA Explored Site ServerSite Server XML & BizTalk ServerXML & BizTalk Server Web ServicesWeb Services
Evolution To Web ServicesEvolution To Web Services
XMLXML
ProgrammabilityProgrammabilityConnectivityConnectivity
HTMLHTML
PresentationPresentation
TCP/IPTCP/IPTechnology
Technology
Innovation
Innovation
FTP,FTP, E-mail, Gopher
E-mail, Gopher
Web PagesWeb Pages
Browse Browse the Webthe Web
Program Program the Webthe Web
Web Services
Web Services
TCP/IP: universal protocol
HTML: universal presentation
XML: universal description
Key success factors:
•Simplicity
•Standards
Forthcoming ArchitectureForthcoming Architecture
Publish
Subscribe
Conversation
Message Bus on any
Protocol
WebService
Web Service
Web Service
DataStores
The Inter/Intra/Extranet (PTP)
MsgStoresData
Stores
Client
Third Generation Architecture:Third Generation Architecture:Program the WebProgram the Web
UserUser
Web Site:Web Site:ApplicationsApplications
Web Site:Web Site:ApplicationsApplications
DevicesDevices
PagePage HTML
DataData
ObjectObject
XML
COM
Windows DNA - The Guiding Windows DNA - The Guiding ArchitectureArchitecture
Windows DNA is Distributed ComputingWindows DNA is Distributed Computing
Common object model on all tiersCommon object model on all tiers Language neutralLanguage neutral ““Auto-everything” - services for scalable, Auto-everything” - services for scalable,
reliable, interoperable, distributed applicationsreliable, interoperable, distributed applications Tools available todayTools available today
Microsoft’s Application Platform Microsoft’s Application Platform Value PropositionValue Proposition
A single, rich, fully capable platform for new A single, rich, fully capable platform for new enterprise applications, with the best build enterprise applications, with the best build and buy flexibilityand buy flexibility
Ease and Low-cost of Development, via Ease and Low-cost of Development, via tools tightly integrated with runtime tools tightly integrated with runtime environmentenvironment
Plug into and re-use existing customer Plug into and re-use existing customer investments on desktop, back-ends, investments on desktop, back-ends, development languages and skillsdevelopment languages and skills
Industry leading price/performanceIndustry leading price/performance
The TargetThe Target Today, Today,
It’s Easy to Build Robust Applications for PC’sIt’s Easy to Build Robust Applications for PC’s PC-based Department-sized distributed PC-based Department-sized distributed
applications are near ubiquitousapplications are near ubiquitous But, The Internet Factor. But, The Internet Factor.
Apps must be 24x7 – software as a serviceApps must be 24x7 – software as a service More Reliable, More Scalable, More SecureMore Reliable, More Scalable, More Secure New apps developed and deployed as quickly as New apps developed and deployed as quickly as
possiblepossible Plug into all other corporate IT assetsPlug into all other corporate IT assets ROI – considering full life-cycle: ROI – considering full life-cycle:
$$ for development, runtime, management$$ for development, runtime, management
Windows DNA 2000Windows DNA 2000
Next generation of building blocks for Next generation of building blocks for Windows DNA applicationsWindows DNA applications
Windows 2000 is the Cornerstone Windows 2000 is the Cornerstone Rock solid, high performance platformRock solid, high performance platform Integrates core Windows DNA Application ServicesIntegrates core Windows DNA Application Services ““Friction-free” deployment and managementFriction-free” deployment and management
Set of new and enhanced servicesSet of new and enhanced services Richer Web applications platformRicher Web applications platform Improved integration and interoperabilityImproved integration and interoperability E-commerce is “built-in”E-commerce is “built-in” Exploit Windows 2000Exploit Windows 2000 All expected to ship by mid 2000All expected to ship by mid 2000
Win32Win32
ComponentsComponents
ScriptingScripting
DHTMLDHTML
HTMLHTML
Rich clientRich client
Thin clientThin client
Windows DNAWindows DNAPresentation servicesPresentation services
IISIIS
Write business Write business logic as COM logic as COM componentscomponents
MTSMTSMSMQMSMQ
WebWeb TransactionTransaction QueuingQueuing SecuritySecurity IntegratedIntegrated
Windows DNAWindows DNABusiness logicBusiness logic
Windows NT as an application server Windows NT as an application server includes best of breed servicesincludes best of breed services
MainframeMainframe
DirectoryDirectory
RDBMSRDBMS
Email andEmail andmessagingmessaging
File systemFile systemADOADO
OLE DBOLE DB
PresentationPresentationservicesservices
ApplicationApplicationservicesservices
Distributed transactionsand query processing acrossmultiple data stores
Windows DNAWindows DNAData servicesData services
Simplified programmatic access Simplified programmatic access Universal data providerUniversal data provider
Bi-directional application, data and network interop with Bi-directional application, data and network interop with mainframes, AS/400, UNIX and other platformsmainframes, AS/400, UNIX and other platforms Extends COM/COM+ to CICS, IMS, terminal oriented apps, Unisys, Extends COM/COM+ to CICS, IMS, terminal oriented apps, Unisys,
etc. etc. Extends MSMQ to MQSeries Extends MSMQ to MQSeries Extends ODBC/OLEDB to DB2, Sybase, Oracle, VSAMExtends ODBC/OLEDB to DB2, Sybase, Oracle, VSAM Delivers heterogeneous bi-directional data replicationDelivers heterogeneous bi-directional data replication Built-in extensibility via SDKBuilt-in extensibility via SDK
OS/390, OS/390, OS/400, UNIXOS/400, UNIX
VSAM, DB2, VSAM, DB2, Oracle, SybaseOracle, Sybase
CICS, IMS, CICS, IMS, MQSeries, MQSeries,
Terminal AppsTerminal Apps
Application IntegrationApplication Integration
APPC, CLI-C, DPLAPPC, CLI-C, DPLLU0, LU2 and LU0, LU2 and MQSeriesMQSeries
Data IntegrationData Integration
DRDA - RLIODRDA - RLIOXA, TDS, CLI and XA, TDS, CLI and DB LIBDB LIB
Network Network IntegrationIntegrationTCP/IP and SNATCP/IP and SNA
COM-XML-MSMQCOM-XML-MSMQ
ADO-OLEDB-ODBCADO-OLEDB-ODBC
Std. LAN ProtocolsStd. LAN Protocols
Windows DNAWindows DNAInteroperability servicesInteroperability services
Windows DNA 2000Windows DNA 2000
New or Enhanced:New or Enhanced:• Application ServicesApplication Services• Legacy InteroperabilityLegacy Interoperability• E-commerce (B2C)E-commerce (B2C)• Data Access/StorageData Access/Storage• Development ToolsDevelopment Tools• “ “Developer Success”Developer Success”• + E-commerce (B2B)+ E-commerce (B2B)• + Deployment and + Deployment and Management Management
Microsoft“Babylon”
Server
Microsoft
BizTalkServer
Microsoft
CommerceServer
MicrosoftSQLServer
Windows 2000Windows 2000Windows DNA Application Windows DNA Application
ServicesServices ““Built-in” integrated applications server for Built-in” integrated applications server for
building distributed Web applicationsbuilding distributed Web applications IIS 5.0 - high performance web serverIIS 5.0 - high performance web server Active Server PagesActive Server Pages COM+ component servicesCOM+ component services TransactionsTransactions Message Queue and Queued ComponentsMessage Queue and Queued Components Role-based securityRole-based security Network Load BalancingNetwork Load Balancing High performance XML supportHigh performance XML support
COM+ Key FeaturesCOM+ Key FeaturesCOM+ makes it easier to develop, deploy, and COM+ makes it easier to develop, deploy, and administer Enterprise Scale, Component-based administer Enterprise Scale, Component-based
ApplicationsApplications
New servicesNew services Queued componentsQueued components EventsEvents Dynamic Load Dynamic Load
BalancingBalancing Object PoolingObject Pooling CRMCRM
Improved servicesImproved services Transactions, servers, Transactions, servers,
security, administrationsecurity, administration
InterceptionInterception Unify COM and MTS for Unify COM and MTS for
single programming, single programming, admin modeladmin model
Improved Improved interoperability interoperability XA, TIP, CRMXA, TIP, CRM
100% compatible with 100% compatible with existing COM and MTS existing COM and MTS componentscomponents Same or better Same or better
performanceperformance
CreateInstanceCreateInstance… … OK: SetCompleteOK: SetComplete… … Err: SetAbortErr: SetAbort
IUnknownIUnknown
ServerServer
ClientClient
ContextContext
AttributesAttributes
COM+: Simple, Powerful COM+: Simple, Powerful Programming ModelProgramming Model
COM+ for Serving COM+ for Serving ApplicationsApplications
Using COM+ Services:Using COM+ Services: You write a “single user” component as though it You write a “single user” component as though it
were the only user of resources were the only user of resources COM+ provides the rich service environment to COM+ provides the rich service environment to
make your component multi-user, multi-threaded make your component multi-user, multi-threaded and resource-pooled. and resource-pooled.
All you have to do is:All you have to do is: Use your favorite COM-compliant tool and add Use your favorite COM-compliant tool and add
attributesattributes
ApplicationApplicationClientClient
COM+ ServerCOM+ Server Process
ConcurrencySecurity
Services...
Server-sideServer-sideApplication LogicApplication LogicIFooIFoo
COM+ Queued ComponentsCOM+ Queued Components
Features:Features: Delivery of: component creation, method invocation, and Delivery of: component creation, method invocation, and
life cycle management over MSMQ queues with life cycle management over MSMQ queues with transactionstransactions
Benefits:Benefits: Increase application availability and resilienceIncrease application availability and resilience Decouple application elementsDecouple application elements Retain component programming modelRetain component programming model
MSMQMSMQClientClient
ApplicationApplicationComponentComponent
IRecorderIRecorder
RecorderRecorder PlayerPlayerServerServer
ApplicationApplicationComponentComponentIFooIFoo
Multicast ICustLoginSink2
ICustLoginSink3
ICustLoginSink4
COM+ Event ServiceCOM+ Event Service
Publish-and-Subscribe modelPublish-and-Subscribe model Late-bound designLate-bound design Subscription management moved out of app codeSubscription management moved out of app code
UnboundUnboundUnbound
Application ClientApplication Client
UnicastICustLogin
Sink1
IEventXXX
EventEventClassClass
EventEventDatabaseDatabase
EventEventAdminAdmin
Dynamic load balancing engine, based on Dynamic load balancing engine, based on response timeresponse time
Available via AppCenterAvailable via AppCenter Not included in base OSNot included in base OS
COM+ Component Load BalancingCOM+ Component Load Balancing
ApplicationApplicationClientClient
createcreateLB
Activatortracktrack
Response TimeEngine
LB Service
Response TimeRuntime
Server Group
Server 1Server 1
IBank
Server 1Server 1
IBank
coclass Bank coclass Bank [[LBLB=Yes,]=Yes,]
IIBankIIBank
select serverselect server
COM+ Object PoolingCOM+ Object Pooling For use when JIT doesn’t workFor use when JIT doesn’t work
When objects are expensive to initializeWhen objects are expensive to initialize When objects consume expensive resourcesWhen objects consume expensive resources
Pooled Objects :Pooled Objects : Initialized once at startupInitialized once at startup Pooled after SetCompletePooled after SetComplete Activate and Deactivate can be used to control Activate and Deactivate can be used to control
recyclingrecycling
Pool size governed by Min and Max Pool size governed by Min and Max parametersparameters
Visual StudioVisual Studio
Truly Integrated suite of toolsTruly Integrated suite of tools Analyzer, Modeler, Package & Deployment,Analyzer, Modeler, Package & Deployment,
SourceSafe, Respository, Component ManagerSourceSafe, Respository, Component Manager The “Enterprise Workbench”The “Enterprise Workbench” Allows you to Leverage component support Allows you to Leverage component support
where appropriate – client or serverwhere appropriate – client or server
SQL Server 7.0SQL Server 7.0 Best database for Line of BusinessBest database for Line of Business
Self-tuning, self-managingSelf-tuning, self-managing Scalable from laptop to clusterScalable from laptop to cluster Over 2000 apps available todayOver 2000 apps available today
Best database for Data Warehousing and Best database for Data Warehousing and Business IntelligenceBusiness Intelligence Only DB w/ integrated OLAP & ETLOnly DB w/ integrated OLAP & ETL Office 2000 integrationOffice 2000 integration Fastest time to marketFastest time to market
Three times faster, 1/3 the costThree times faster, 1/3 the cost 3x tpmC per CPU vs. Oracle8i 3x tpmC per CPU vs. Oracle8i
Best SAP performance – any platformBest SAP performance – any platform
Host Integration ServerHost Integration Server
OS/390, OS/400, OS/390, OS/400, UNIXUNIX
VSAM, DB2, Oracle, VSAM, DB2, Oracle, SybaseSybase
CICS, IMS, MQSeries, CICS, IMS, MQSeries, Terminal AppsTerminal Apps
Application IntegrationApplication Integration
APPC, CLI-C, DPLAPPC, CLI-C, DPLLU0, LU2 and MQSeriesLU0, LU2 and MQSeries
Data IntegrationData Integration
DRDA - RLIODRDA - RLIOXA, TDS, CLI and DB XA, TDS, CLI and DB LIBLIB
Network Network IntegrationIntegrationTCP/IP and SNATCP/IP and SNA
COM-XML-MSMQCOM-XML-MSMQ
ADO-OLEDB-ODBCADO-OLEDB-ODBC
Std. LAN ProtocolsStd. LAN Protocols
Version upgrade to SNA ServerVersion upgrade to SNA Server Bi-directional network, data, and applications Bi-directional network, data, and applications
interoperability with mainframes, AS/400, UNIX, and interoperability with mainframes, AS/400, UNIX, and others.others.
Bridge legacy data into XMLBridge legacy data into XML Requires no new code on the hostRequires no new code on the host Available by mid 2000Available by mid 2000
AppCenter ServerAppCenter ServerHigh Availability, Multi-Server DeploymentHigh Availability, Multi-Server Deployment
and Management Environmentand Management Environment
SingleSingleServerServer
Key FeaturesKey FeaturesFault ToleranceFault ToleranceDynamic Load BalancingDynamic Load BalancingSimplified ManagementSimplified ManagementRemote ManagementRemote ManagementApp and Content ReplicationApp and Content ReplicationStaging/DeploymentStaging/DeploymentIntegrated App MonitoringIntegrated App MonitoringLoad TestingLoad TestingCapacity AnalysisCapacity AnalysisWMI enabledWMI enabled
……
……
Multiple ServerMultiple ServerWeb FarmWeb Farm
Available by mid 2000Available by mid 2000
AgendaAgenda DNA ExploredDNA Explored Site ServerSite Server XML & BizTalk ServerXML & BizTalk Server Web ServicesWeb Services
Commerce Must HavesCommerce Must Haves
User identification, authentication and User identification, authentication and targetingtargeting
Catalog browsingCatalog browsing Order captureOrder capture Transacted Order ProcessingTransacted Order Processing AnalysisAnalysis Back-End IntegrationBack-End Integration
AnalyzeAnalyzeAnalyzeAnalyze
TransactTransactTransactTransact
Site Server 3.0Site Server 3.0Commerce EditionCommerce Edition
Account, profile managementAccount, profile management Online advertisingOnline advertising Targeted promotionsTargeted promotions Direct mailDirect mail Samples, wizards, toolsSamples, wizards, tools
EngageEngageEngageEngage
Order capture, routing, Order capture, routing, managementmanagement
Market-based pricingMarket-based pricing Internet EDIInternet EDI Extensible, openExtensible, open Integrate existing systemsIntegrate existing systems
Order analysisOrder analysis Usage and content Usage and content
analysisanalysis Site iterationSite iteration
If your site hasIf your site has: : Registered and anonymous users:Registered and anonymous users:
Can users register or update their accounts online?Can users register or update their accounts online?
Can you track millions of anonymous (cookie ID) users?Can you track millions of anonymous (cookie ID) users?
Private or sensitive content:Private or sensitive content:Do you roll your own authentication?Do you roll your own authentication?
Can you change permissions w/o rewriting scripts?Can you change permissions w/o rewriting scripts?
Premium or subscription areas:Premium or subscription areas:Can users subscribe without calling customer service?Can users subscribe without calling customer service?
Can you easily run temporary promotions?Can you easily run temporary promotions?
TargetedTargeted marketing or sales information: marketing or sales information:How hard is it to author personalized pages?How hard is it to author personalized pages?
Can you tune personalization w/o rewriting scripts?Can you tune personalization w/o rewriting scripts?
Every Site Needs MembershipEvery Site Needs Membership
Membership Customer
Accounts and Site Security
Membership At The Core Of Membership At The Core Of Site Server And Your SiteSite Server And Your Site
Commerce Streamlined Sales/Services
Personalization Individualized
Delivery
Analysis Refined Experience
Advertising Targeted Message
Membership FunctionsMembership Functions
Authenticate users and authorize Authenticate users and authorize access to content and applicationsaccess to content and applications Cookies, Basic, HTML forms, Cookies, Basic, HTML forms,
Certificates, DPACertificates, DPA Store and manage user accounts Store and manage user accounts
Self-registration and delegated user adminSelf-registration and delegated user admin Protect confidential user informationProtect confidential user information Create personalized Web sites Create personalized Web sites
Active user object and design time Active user object and design time controlscontrols
Build online communitiesBuild online communities
Membership Web SolutionsMembership Web SolutionsPersonal And SecurePersonal And Secure
Web Site AreasWeb Site Areas
Consistent User Tracking & AnalysisConsistent User Tracking & Analysis
PublicPublic
Anon CustomersAnon Customers
Cookie Auth Cookie Auth
Explicit ProfilingExplicit Profiling
SecuredSecured
Members OnlyMembers Only
Basic, Forms,Basic, Forms,& Certificates& Certificates
Explicit ProfilingExplicit Profiling+ Targeted Mail+ Targeted Mail
SubscribedSubscribed
Premium ServicesPremium Services
Basic, Forms, Basic, Forms, & Certificates& Certificates+ Group ACLs+ Group ACLs
Explicit ProfilingExplicit Profiling+ Targeted Mail+ Targeted Mail
+ Push+ Push
RegisteredRegistered
Repeat ClientsRepeat Clients
Cookie Auth Cookie Auth + Group ACLs+ Group ACLs
Explicit ProfilingExplicit Profiling
AgendaAgenda DNA ExploredDNA Explored Site ServerSite Server XML & BizTalk ServerXML & BizTalk Server Web ServicesWeb Services
XML – A Closer LookXML – A Closer Look
<book><book> <id>15534</id><id>15534</id> <price>29.00</price><price>29.00</price> <author>Ricardo</author><author>Ricardo</author> <title>XML and Me</title><title>XML and Me</title> <grade.level>college</grade.level><grade.level>college</grade.level></book></book>
15334, 29.00, 50023, 1, “Ricardo”, …15334, 29.00, 50023, 1, “Ricardo”, …
XML StructureXML Structure
HTML in less then a paragraph.
<!--HTML Snippet--><h1>Invoice</h1><p>From: C. Brooks. </p><p>To: C. McCall </p><p> Date: 2/1/99 </p><p> Amount: $189.00 </p><p> Tax: 12% </p><p> Total Due: $5.00 </p>
XML StructureXML Structure
XML in less then a paragraph.
<!--XML Snippet--><Invoice>
<From>C. Brooks. </From><To>C. McCall </To><Date>2/1/99 </Date><Amount>$189.00 </Amount><Tax>12% </Tax><Total>$5.00 </Total>
</Invoice>
<?xml version="1.0"?><?xml version="1.0"?><Order o_id="7845" o_date="1999-02-01" o_cur="USD" c_id="JANTOY" ><Order o_id="7845" o_date="1999-02-01" o_cur="USD" c_id="JANTOY" > <ShippingAddress sa_city="Erie" sa_state="PA" sa_pcode="19130"><ShippingAddress sa_city="Erie" sa_state="PA" sa_pcode="19130"> <Line l_text="Jan's Toys" /><Line l_text="Jan's Toys" /> <Line l_text="1818 Market Street" /><Line l_text="1818 Market Street" /> <Line l_text="3rd Floor, Room 1219" /><Line l_text="3rd Floor, Room 1219" /> </ShippingAddress></ShippingAddress> <OrderDetails><OrderDetails> <Item p_id="325" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /><Item p_id="325" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /> <Item p_id="326" p_name="Zapper" od_qty="2" od_unitp="10.25" /><Item p_id="326" p_name="Zapper" od_qty="2" od_unitp="10.25" /> <Item p_id="327" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /><Item p_id="327" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /> </OrderDetails></OrderDetails> <Comments><Comments> This order replaces order 7844 which was cancelled by the This order replaces order 7844 which was cancelled by the customer.customer. </Comments></Comments></Order></Order>
A “Well-Formed” XML DocumentA “Well-Formed” XML Document
XML declaration
Root element
Start-tag
End-tag
Element
Attribute
Content
Empty element
Multiple Applications Into A SolutionMultiple Applications Into A Solution
AccountingAccounting
ShippingShipping
R&DR&D
WebsiteWebsite
Data Data (Schema)(Schema)
InterfacesInterfaces
CustomersCustomers
DesignDesignPatternPattern BusinessBusiness
FrameworkFramework
Composable ServicesComposable Services
Online SalesOnline Sales
PlanningPlanningERPERP
XMLXMLOnlineOnlineStoreStore
ConsumersConsumers
Supplier ASupplier A
SAPSAP
Supplier CSupplier C
SiebelSiebel
Supplier BSupplier B
JD EdwardsJD Edwards
XML MessageXML Message
XMLXML
Purchase OrdersPurchase OrdersInventoryInventoryCapacityCapacity
BizTalk Server BizTalk Server BizTalk Server DescriptionBizTalk Server Description
A Microsoft A Microsoft ProductProduct Under Development Under Development for Business Process Integration Through for Business Process Integration Through the Reliable Exchange of Business the Reliable Exchange of Business DocumentsDocuments
Natively Uses BizTalk SchemasNatively Uses BizTalk Schemas Natively Supports XML DocumentsNatively Supports XML Documents Integrates with Existing Systems Via Integrates with Existing Systems Via
Specific Support ForSpecific Support For X12 EDIX12 EDI UN/Edifact EDIUN/Edifact EDI RecordsetsRecordsets Simple flat file delimited or positional Simple flat file delimited or positional
documentsdocuments Many transportsMany transports
BizTalk Server BizTalk Server VisionVision
Business Process Integration Within and Business Process Integration Within and Between CompaniesBetween Companies
BizTalkBizTalkDocumentsDocuments
Supplier ASupplier A
Supplier BSupplier B
Supplier CSupplier C
PlanningPlanning
ERPERP
Online Online sales sales
Web siteWeb site
LOBLOBSQLSQLServerServer
Single Single MTS TX MTS TX ContextContext
Doing BizTalk With Windows DNADoing BizTalk With Windows DNA
COM Business COM Business Logic ComponentsLogic Components
DCOM orDCOM orDCOM ConnectorDCOM Connector
ADOADO
CIPMCIPM
HTTPHTTPIISIIS
SMTPSMTPExchangeExchange
HTTPSHTTPS
DOM DOM WrapperWrapperIE5/COMIE5/COM
BTSBTS
Windows NT, MMC, PKI, Cert Server, WLBSWindows NT, MMC, PKI, Cert Server, WLBS
FFIIRREEWWAALLLL
BizTalk Document StructureBizTalk Document Structure
BizTalk messageBizTalk message
BizTalk rootBizTalk root
BizTalk headerBizTalk header
Document bodyDocument body
Business documentBusiness document
Routing informationRouting information
EnvelopeEnvelope
BizTalk Document - the business dataBizTalk Document - the business data
<body> <body> contains BizTalk Documentcontains BizTalk Document
<delivery><delivery> encloses to/from encloses to/from routing inforouting info
message & document handling infomessage & document handling info
<biztalk_1>encloses BizTalk Message<biztalk_1>encloses BizTalk Message
Standard MIME & XML Message HeadersStandard MIME & XML Message Headers
The complete BizTalk MessageThe complete BizTalk Message
Current BizTalk ArchitectureCurrent BizTalk ArchitectureOrg AOrg A Org BOrg B
AdapterAdapter
HandlerHandler
ApplicationApplication
TransportTransport
AppApp
TransportTransport
AppApp
AdptAdpt AdptAdpt
HandlerHandler
AdapterAdapter
HandlerHandler
TransportTransport
HandlerHandler
AdptAdpt
BizTalk ServerBizTalk Server
BizTalk Server CapabilitiesBizTalk Server Capabilities
POsPOs
InvoiceInvoice
TradingTradingProfilesProfiles
TradingTradingProfilesProfiles
Trading Partner Profile ManagementTrading Partner Profile Management Business Desk (Profiles and Agreements)Business Desk (Profiles and Agreements)
Application IntegrationApplication Integration EDI interoperability, XML tools for mapping EDI interoperability, XML tools for mapping
formatsformats
Automated document interchangeAutomated document interchange Content based routing, Digital Certificates (PKI)Content based routing, Digital Certificates (PKI)
Rich Management and AnalysisRich Management and Analysis SDK for extensibility, direct app integrationSDK for extensibility, direct app integration
SQL
Duluth Mutual
West Coast Sales
AgendaAgenda DNA ExploredDNA Explored Site ServerSite Server XML & BizTalk ServerXML & BizTalk Server Web ServicesWeb Services
11stst & 2 & 2ndnd Generation Web Generation Web AppsApps
1-1 correspondence of page to file
Browser
Web ServerWeb Server
File
“Dynamic Pages”
Browser
File
Web Server
DB In-housesystems
3rd Generation Web 3rd Generation Web
File DB
“Dynamic Pages”
Browser
Web Server
In-houseIn-housesystemssystems
“Th
e F
irew
all”
Web site
Web site
Web site
Accessing another site today = HTML “screen scraping” or “your architect calls my architect”
Tomorrow, external Web sites become building blocks using XML•Web Services•Megaservices
Web service
Web service
Web service
Examples of Web ServicesExamples of Web Services
Location Services
Maps, routing, nearby locations…
Shopping Services
Order tracking, supply chain, auctions, coupons…
Information Services
Headlines, weather, horoscopes, TV times…
Communication Services
Email, instant messages…
Some Web Service ScenariosSome Web Service Scenarios
Search engine enables you to program Search engine enables you to program it without a browserit without a browser
Travel site enables you to compare Travel site enables you to compare against other travel sitesagainst other travel sites
Web customer relationship Web customer relationship management software extended to management software extended to search online White Pagessearch online White Pages
Traffic monitoring site communicates Traffic monitoring site communicates with PIM to calculate how long it will with PIM to calculate how long it will take you between meetingstake you between meetings
Combining Web ServicesCombining Web Services
Calendar
White Pages
Mapping (Location)
Alerting
TrafficAu
then
tica
tio
nA
uth
enti
cati
on
Bil
lin
gB
illi
ng
SOAP
SOAP
SOAP
SOAP
SOAP
SOAP
What SOAP IsWhat SOAP Is
Designed to perform Web method Designed to perform Web method invocationsinvocations
OS, object model, language agnosticOS, object model, language agnostic HTTP + XML on the wireHTTP + XML on the wire Works over existing Internet Works over existing Internet
infrastructureinfrastructure OS, language, and object model OS, language, and object model
agnostic interoperabilityagnostic interoperability
SOAP Message StructureSOAP Message Structure
SOAP Message
SOAP Envelope
SOAP Header
SOAP Body
Method Call & Data
Headers
HTTP Headers
XML Encoded SOAP Method Call & DataXML Encoded SOAP Method Call & Data
<Body> contains SOAP Method Call<Body> contains SOAP Method Call
Individual headersIndividual headers
<Header> encloses headers<Header> encloses headers
<Envelope> encloses payload<Envelope> encloses payload
Standard HTTP and SOAP HTTP HeadersStandard HTTP and SOAP HTTP Headers
The complete SOAP MessageThe complete SOAP Message
SOAP Message TypesSOAP Message Types
SOAP defines three kinds of messages:SOAP defines three kinds of messages: CallCall ResponseResponse FaultFault
Response and Fault are optionalResponse and Fault are optional
SOAP Sample CallSOAP Sample CallPOST /StockQuote HTTP/1.1POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.comHost: www.stockquoteserver.com
Content-Type: text/xmlContent-Type: text/xml
Content-Length: nnnnContent-Length: nnnn
SOAPMethodName: Some-Namespace-URI#GetLastTradePriceSOAPMethodName: Some-Namespace-URI#GetLastTradePrice
<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1”>org:soap.v1”>
<SOAP:Body><SOAP:Body>
<m:GetLastTradePrice <m:GetLastTradePrice
xmlns:m="Some-Namespace-URI”>xmlns:m="Some-Namespace-URI”>
<symbol>DIS</symbol><symbol>DIS</symbol>
</m:GetLastTradePrice></m:GetLastTradePrice>
</SOAP:Body></SOAP:Body>
</SOAP:Envelope></SOAP:Envelope>
SecuritySecurity
Builds on HTTP securityBuilds on HTTP security HTTPSHTTPS X.509 certificatesX.509 certificates
Firewalls can filter easilyFirewalls can filter easily Does not pass application codeDoes not pass application code Developers/IT choose which methods to Developers/IT choose which methods to
expose explicitlyexpose explicitly Type safetyType safety
SOAP and StandardsSOAP and Standards
Builds onBuilds on W3C XML standardsW3C XML standards IETF HTTP standardIETF HTTP standard
SOAP Spec v1.0 to IETFSOAP Spec v1.0 to IETF http://www.ietf.org/internet-drafts/draft-http://www.ietf.org/internet-drafts/draft-
box-http-soap-01.txtbox-http-soap-01.txt
SummarySummary
Windows DNA provides a Windows DNA provides a comprehensive, integrated platform for comprehensive, integrated platform for building distributed Web appsbuilding distributed Web apps
Windows DNA 2000 delivers the next Windows DNA 2000 delivers the next wave of building blocks for the platformwave of building blocks for the platform
Windows DNA is the fastest and easiest Windows DNA is the fastest and easiest way to build high-value distributed way to build high-value distributed Web-enabled appsWeb-enabled apps