Microsoft Application Platform 開發技術導引 李 清培 弈飛資訊 首席架構顧問 台灣微軟 特約資深講師 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
.NET Application Architecture Communication Operational Management Security UI components UI process components Service interfaces Business workflows Business components Business entities Data access components Service agents Data sources Services © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
對應用程式建置與管理的需求 提供企業系統快速開發、部署與管理的平台 Application Server 一致的程式模型 簡化部署工作 整合能力 單一管理介面 Application Server Web Browser DBMS Web Server Business Logic Engine Application Server Runtime
應用程式伺服器基本架構 Application Server RDBMS 網站伺服器 商業邏輯引擎 動態網頁 引擎 IIS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Application Platform Application Server IIS .NET Runtime & COM+ IIS ASP.NET RDBMS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Application Platform Application Server IIS .NET Runtime & COM+ IIS ASP.NET RDBMS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Application Platform Application Server LoB SAP R3 .NET Runtime & COM+ Siebel etc. IIS IIS ASP.NET RDBMS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Application Platform Application Server LoB SAP R3 Siebel etc. IIS IIS IIS ASP.NET RDBMS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Application Platform .NET Framework Programming Model Windows Server 2003 Distributed Application Infrastructure Developer Tools Visual Studio .NET © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
.NET 應用程式伺服器的功能 完整的程式環境 基礎架構 整合開發工具 .NET Framework 1.1 IIS 6.0 Enterprise Service/COM+ MSMQ Web services/UDDI 安全設計 目錄服務 ... 整合開發工具 Visual Studio .NET
應用伺服器設定 Q: 如何啟用所需之服務? A: 設定為 application server KEY MESSAGE: As a developer, you need to be more aware of security. SLIDE BUILDS: None SLIDE SCRIPT: Because Windows Server 2003 is more secure by default, you, as a developer, need to know more about security than you did in the past. If you just take a clean load of Windows Server 2003, and try to install Visual Studio .NET 2003, you’ll find that the install complains that IIS and FrontPage® Server Extensions (FPSE) are not there. While we made the server more secure by default, we did provide easy mechanisms to install the sets of applications and services that you need, through server roles. When you configure Windows Server 2003 as a application server, it installs IIS 6.0. As part of the install, you can optionally include ASP.NET, FPSE, and Microsoft Data Engine (MSDE) . SLIDE TRANSITION: What are the server roles? ADDITIONAL INFORMATION FOR PRESENTER: © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
IIS 6.0 的核心元件 提昇效能及穩定性 HTTP.SYS Web Admin Service (WAS) kernel-mode HTTP Listener Web Admin Service (WAS) user-mode 管理設定/應用程式 Application Pools 及 Worker Processes的概念與架構 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
執行模式比較 ASP .NET in Windows 2000 Server INETINFO ASPNET_WP.EXE ASPNET_WP.EXE ASPNET_WP.EXE metabase ASP.NET ASP ASP.NET ASP.NET Filters TCP/IP © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
執行模式比較 WAS HTTP.SYS Worker Process Worker Process Worker Process ASP.NET Filters Worker Process INETINFO metabase WAS Worker Process Worker Process Worker Process ASP.NET ASP.NET ASP.NET Filters Filters Filters HTTP.SYS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
HTTP.SYS 如何運作 HTTP.SYS API HTTP.SYS TCP/IP Listener Send Response Req. Queue Req. Queue Req. Queue Namespace Mapper HTTP Engine Response Cache HTTP Parser TCP/IP Request © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
WAS – Web Administrator Service Worker Process W3 Core W3 Core MetaBase.xml Config Mgr Web 應用程式 App Pool Mgr user HTTP.SYS kernel © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Worker Process Isolation Mode 架構 App Pool (1) App Pool (2) App Pool (3) Worker Process Worker Process Web Garden ISAPI Exts & Filters Web Proc. Core DLL Web Garden Web Garden ISAPI Exts & Filters Web Proc. Core DLL WAS ISAPI Exts & Filters W3 Core ISAPI Exts & Filters W3 Core ISAPI Exts & Filters W3 Core user kernel HTTP.SYS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Worker Process - Health monitoring 監視 Worker processes 定期ping worker processes WAS與每個worker process維護一個communication channel Worker Process Worker Process Web Garden Web Garden ISAPI Exts & Filters Web Proc. Core DLL Web Garden ISAPI Exts & Filters Web Proc. Core DLL WAS ISAPI Exts & Filters W3 Core ISAPI Exts & Filters W3 Core ISAPI Exts & Filters W3 Core © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
IIS 6.0 範例 應用程式集區 執行身分 啟動快速保護 行程回收 具擴充性的Session機制
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
COM+ 1.5 COM+ 1.0 的挑戰 應用程式使用較高的隔離層級 沒有應用程式回收 防火牆阻隔了 DCOM 通訊 效能與並行處理問題 沒有應用程式回收 防火牆阻隔了 DCOM 通訊 使用 COM+ 服務時,必須繼承 ServicedComponent (.NET) KEY MESSAGE: Challenges with COM+ SLIDE BUILDS: None SLIDE SCRIPT: COM+ does a great job at provider enterprise services (transactions, messaging, etc.), but there are some limitations. First, COM+ components use the highest isolation level possible for transactions. This is safe, but sometimes this isn’t needed, and can lead to performance and concurrency issues. In addition, there is no built-in mechanism for specifying rules that will cause the COM+ application to be shut down. If you want this functionality, you have to roll your own. DCOM is typically blocked by firewalls, limiting the ability to expose your functionality. If you’re using COM+ from managed code, you have to create classes, and they have to inherit ServicedComponent. This can limit your inheritance hierarchy. SLIDE TRANSITION: How does COM+ 1.5 solve these limitations? ADDITIONAL INFORMATION FOR PRESENTER: © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
COM+ 1.5功能導覽(1/2) Scalability Availability Manageability Isolation Level 設定 應用程式集區 Availability 應用程式回收 以系統服務方式執行 啟動門檻 Web Services Manageability Pause/disable Process dump © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
COM+ 1.5功能導覽(2/2) Programming model Security Alias components Public/private components Process initialization Services without components 分割 Security role-based security © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
COM+ 1.5 行程回收 My App My App 舊行程標示為回收行程暫停使用 新的用戶端使用新的行程 Resource ID: 1 舊行程完成執行中的任務 舊行程結束 舊行程標示為回收行程暫停使用 新的用戶端使用新的行程 My App ID: 2 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
COM+ 1.5 範例 Partition 別名 行程回收與集區 Isolation SOAP啟動 Service without component
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
MSMQ 3.0 新功能 可信賴的 Internet Messaging 可信賴的 1-N Messaging 整合式 “triggers” 透過 SOAP/HTTP 以 XML傳送 支援Firewalls 與 load balancing 可信賴的 1-N Messaging 具確認訊息的清單傳送方式 多點傳撥 整合式 “triggers” 可依訊息內容執行不同的程式 Reliable Internet Messaging The same programming model Use HTTP as transport XML based protocol Secured, robust B2B messaging Support “Internet Configuration” Firewall, DMZ, Load Balancing,…. Open queue, Send message Queue can be HTTP addressed New format name: DIRECT=HTTP://host/msmq/q1 Open queue, Receive message New message properties leverage SOAP support: SoapHeader / SoapBody SoapEnvelope / CompoundMessage SRMP: Specification for general-purpose reliable messaging Implemented in MSMQ 3.0 Public specification Extension of SOAP-RP Registered in Active Directory and Leverage AD Group object Programmable via ADSI calls Manageable via AD MMC Snap-In New format name: “DL=<guid>” Elements can be other DLs Dim dest as New MSMQDestination dest.FormatName = “DL=<guid>” message.Send dest Private DLs Client-managed “DL”: List of format names Including new format names: DL, HTTP Non-discoverable Dim dest as New MSMQDestination dest.FormatName = “DIRECT=OS:host1\q, PRIVATE=…” message.Send dest © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
新的 Triggers 功能 Q1 Q2 MTS EXE BAT MSMQ Rules MSMQ Triggers COM Problem: Generic queue listener code is frequently rewritten Solution: High performance 24x7 listener service to auto- invoke components on message arrival Allows apps with no MSMQ code Terminology: Trigger: <Queue, Rule> Rule: <Condition, Action> Condition: Message Property Expression Action: Invoke component or EXE MTS COM EXE BAT © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MSMQ 3.0 範例 Distribute List Multicast Internet Messaging Trigger
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
Web services SOA Service Broker 發行 (WSDL) 尋找 (UDDI) Service Provider 講久一點 詳細介紹三個角色 Broker: 媒介 管制 廣告 收費 有關Service Broker部分有相關主題作介紹,今天僅針對季節相關問題昨探討 Service Provider Service Requester 繫結 (SOAP) © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
UDDI Universal Description Discovery and Integration 處理Web service描述與搜尋問題的產業專案 與平台無關的處理方式 廣大的產業支援 UDDI UDDI 規範 (uddi.org) 服務提供者與描述的綱要 發行與搜尋的SOAP API 建構在 Internet 的標準上 (XML, HTTP, TCP/IP, SOAP) © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
UDDI工作原理 Provider:提供服務的公司或個人的相關資訊,名稱、地址、聯絡人…等;可加以分類 tModel: 服務規範的描述; 可分類 Provider:提供服務的公司或個人的相關資訊,名稱、地址、聯絡人…等;可加以分類 0…n Service: 服務的介面描述,以利於使用者使用;可加以分類 Bindings包含對 tModels的參照; 這些參照標示服務的介面規範 (i.e., WSDL, XSD, etc.) 0…n 1…n Binding: 服務進入點的技術資訊,可支援額外參數 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
範例 <Provider> Accounting department <tModel> <Service> Payroll service <Binding> North American access point: http://enterprise/payroll.asmx <tModel> Payroll tModel: http://enterprise/ payroll.wsdl <Service> Exchange rate service <Binding> European access point: http://europe/exchange.asmx North American access point: http://america/exchange.asmx <tModel> Exchange Rate tModel: http://www.example.org/exchange.wsdl © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MS UDDI Design Windows .NET Server Internet Information Server 6.0 (IIS) .NET Framework - common language runtime SQL Server 2000 MSDE ASP.NET User Interface XML SOAP API or Active Directory authentication and authorization HTTP or HTTPS © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Design-Time Discovery Office VBA 建立直接利用 web service 資料的解決方案 .NET Developer建立並部署 “pricing” web service Pricingweb service .NET Developer 登錄 web service UDDI Services Office VBA 使用者查詢 UDDI 取得 “pricing” services Office VBA 使用者決定最適當的 “pricing” service © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Web Service Provider Backup Run-Time Discovery Web Service Provider Backup Web Service Client 呼叫 Web Service Provider. 叫用失敗 X Web Service Client Web Service Provider UDDI Services 執行期, 用戶端動態查詢 UDDI 更新服務的存取點 重新再試,成功後更新存取點資訊 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
UDDI 範例 發行與查詢 動態繫結
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
Object-Oriented / Data-Centric Business Logic Client Service Client Service Business Logic
Remoting 範例 分散式物件
Agenda Application Platform 服務簡介 IIS 6.0開發技術導引 COM+ 1.5開發技術導引 MSMQ開發技術導引 UDDI與Web services開發技術導引 .NET Runtime : Remoting Let’s Code
行動寶典 Microsoft Application Platform Resources Pack MSDN修練研討會 4/28 .NET 元件服務開發技術研討會 Quick Start
線上資源 Windows Server 2003 Technology Centers MSDN程式開發人員專屬網站 http://www.microsoft.com/windowsserver2003/technologies/ MSDN程式開發人員專屬網站 http://msdn.microsoft.com .NET開發人員專屬網站 MSDN 線上社群 http://www.microsoft.com/taiwan/community/developer/ TWP .NET User Group http://www.acertwp.com.tw/software/netug/net/index.asp Move-To.NET User Group http://Move-To.NET
Do More With Less © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.