thesisverdediging
DESCRIPTION
Thesisverdediging. “Ontwerp van enterprise applicaties op het .NET platform” Bart De Smet Academiejaar 2004-2005 Promotor: Prof. A. De Clercq Begeleider: Dhr. N. Sabbe. Agenda. Introductie Enterprise applicaties Het .NET platform Doelstelling Databasetoegang Communicatie tussen lagen - PowerPoint PPT PresentationTRANSCRIPT
Thesisverdediging
“Ontwerp van enterprise applicaties op het .NET platform”
Bart De SmetAcademiejaar 2004-2005
Promotor: Prof. A. De ClercqBegeleider: Dhr. N. Sabbe
Vrijdag 10 juni 2005 Bart De Smet 2
Agenda
Introductie Enterprise applicaties Het .NET platform Doelstelling
Databasetoegang Communicatie tussen lagen Conclusie Vragen
Vrijdag 10 juni 2005 Bart De Smet 3
Enterprise applicaties Kenmerken (M. Fowler):
Persistente data Hoge datavolumes Complexe business-logica Vlotte gebruikersinterface Integratie met andere applicaties (EAI)
Geen “information silo” Leidt tot verhoogde eisen!
Resultaat: Gelaagd model
Vrijdag 10 juni 2005 Bart De Smet 4
Enterprise applicaties
ApplicationServer(s)
DatabaseServer(s)
GUI application
Communication
Communication
Communication
Web application
Business objectsBusiness rules
Persistencelayer
Rich clientusers (WinForm)
Thin clientusers (browser)
Data LayerBusiness Logic LayerPresentation Layer
Vrijdag 10 juni 2005 Bart De Smet 5
Het .NET platform Visie:
“Microsoft versie 3.0” Technologie:
Ontwikkelingsframework: .NET Framework Ontwikkelingstools: Visual Studio “Windows Server System”: IIS, MSMQ, ... Database: SQL Server
Gebruik van beta-technologie Performantietests onder voorbehoud Niet steeds foutloos
Vrijdag 10 juni 2005 Bart De Smet 6
Doelstelling Concreet antwoord op volgende vragen:
Mate van gelaagdheid? Welke technologie te kiezen? Rijpheid van Service-Oriented Architecture?
Aandachtspunten en testcriteria: Gelaagheid en encapsulatie
Goede applicatiestructuur voor betere maintainability Performantie
Stijgende nood door EAI-scenario’s Productiviteit bij ontwikkeling “Aspecten” van beveiliging, manageability
Vrijdag 10 juni 2005 Bart De Smet 7
Agenda Introductie Databasetoegang
ADO.NET 1.x en 2.0 SQLXML SQL 2005 Web Services SOAP Data Provider
Communicatie tussen lagen Conclusie Vragen
Vrijdag 10 juni 2005 Bart De Smet 8
ADO.NET
Vrijdag 10 juni 2005 Bart De Smet 9
ADO.NET DataSet
Off-line weerspiegeling van de database Houdt wijzigingen bij Mogelijk probleem van “data aging”
XML-gebaseerde datacarrier (o.a. voor webservices) Databinding mogelijk (Windows Forms, ASP.NET)
DataAdapter Synchronisatie van off-line data met persistentie Gebruikt achterliggende DML-commando’s
Waar past business logica? O/R-mapping? Strongly typed DataSets?
Vrijdag 10 juni 2005 Bart De Smet 10
ADO.NET 2.0 Er verandert weinig aan de concepten Features
Enkel voor SQL Server 2005: User Defined Types Query Notifications Multiple Active Result Sets Batched Updates
Algemeen: Asynchrone databaseinvocatie DataSet verbeteringen Nieuwe datacontrols (Windows Forms)
Toekomst: ObjectSpaces, WinFS, Comega
Vrijdag 10 juni 2005 Bart De Smet 11
ADO.NET 2.0User Defined Types1 Verhoogde proximity
Risico op foutief gebruik Controleer relevantie voor
types m.b.v. diverse regels
Query Notifications1 Oplossing voor aging Netwerkbelasting
Gebruik voor read-mostly data; combineer met caching
Multiple Active Result Sets (MARS)1
Handig en inituïtief Slordig connectiebeheer
Overweeg hogere proximity; besteed zorg aan connecties
Batched Updates2 Eenvoudig, krachtig Batchgrootte-gevoelig
Batchgrootte altijd zorgvuldig testen, geen nattevingerwerk
Asynchrone databaseinvocatie
Standaard patroon Eenvoudig bruikbaar
Gebruik voor operaties met lage onderlinge beïnvloeding
DataSet “verbeteringen”
Welkome verbeteringen Binaire serializatie
Voor compressie, gebruik GZip i.p.v. binaire serializatie
1 Enkel voor SQL Server 20052 Voorlopig enkel voor SQL Server 2005
Vrijdag 10 juni 2005 Bart De Smet 12
SQLXML
Vrijdag 10 juni 2005 Bart De Smet 13
SQLXMLTemplates Voldoende encapsulatie
Parameterisatie mogelijk Zeer flexibel en krachtig
Modificatie van stored procedures is vereist
Lage performantie1
Updategrams Intuïtief principe Parameterisatie mogelijk
Geen encapsulatie Moeilijke code bij gebruik
over HTTP Vaak “plumbing” nodig2
Lage performantie1
Diffgrams Integratie met DataSets Eenvoudig via API
Geen encapsulatie Relatief lage performantie1
SOAP Web Services Voldoende encapsulatie Gebruik van standaarden Flexibiliteit en eenvoud
Geen WS-* ondersteuning Niet compatibel met
sommige infrastructuren Zeer lage performantie1
1 vergelijking met TDS2 vreemde tekens in kolomnamen niet toegestaan3 installatie op Active Directory domaincontroller
Vrijdag 10 juni 2005 Bart De Smet 14
SQLXML XML?
XML is niet compact (TDS wél) Lage performantie
XML en SOAP zijn standaarden (TDS niet) Inzetbaar voor EAI-doeleinden
Aandachtspunten Algemene opmerkingen
Vals gevoel van gelaagdheid Encapsulatie is soms een illusie Hoge leercurve, niet bugvrij
Scenario’s Weinig interessant binnen een enterprise applicatie Geschikt voor gebruik voor EAI-doeleinden
Vrijdag 10 juni 2005 Bart De Smet 15
SQL Server 2005 Web Services Analoog aan SQLXML Web Services
Nu via http.sys kernel listener Voordelen:
Geen IIS-installatie vereist Geïntegreerd in de database zelf (Theoretisch) hogere performantie Toekomstige ondersteuning voor WS-*
Nadelen: Werkt enkel op dezelfde machine als SQL Server Lage performantie in vergelijking met TDS
Gebruik: Vooral interessant voor EAI-doeleinden
Vrijdag 10 juni 2005 Bart De Smet 16
SOAP Data Adapter Eigen ontwikkeling Doelstelling:
Gebruik van DataAdapter bij webservices Automatische generatie van instantiatie-code
Werking: SoapConnection gebruikt proxyklasse SoapCommand roept webmethoden aan SoapDataAdapter synchroniseert off-line wijzigingen
Database+GetProducts()+InsertProduct()+DeleteProduct()+UpdateProduct()
Web service
HTTPSOAP
+GetProducts()+InsertProduct()+DeleteProduct()+UpdateProduct()
Proxy class
UpdateCommand
DeleteCommand
InsertCommand
SelectCommand
-SelectCommand-InsertCommand-DeleteCommand-UpdateCommand
SoapDataAdapter
DataSet
Vrijdag 10 juni 2005 Bart De Smet 17
Agenda Introductie Databasetoegang Communicatie tussen lagen
XML Web Services .NET Remoting SOA MSMQ
Conclusie Vragen
Vrijdag 10 juni 2005 Bart De Smet 18
XML Web Services Voordelen:
Gebaseerd op standaarden: XML, SOAP, WSDL, UDDI WS-Specifications
Eenvoudig en intuïtief principe (façade – proxy) “Explicitness of boundaries”
Nadelen: XML-serializatie van data is vereist; weinig compact Lagere performantie dan binaire protocols
Algemene aanbevelingen: Gebruik output caching Hou webservices statusloos Gebruik voor “chunky communication” (= relatief)
Vrijdag 10 juni 2005 Bart De Smet 19
.NET Remoting Voordelen:
Enorm hoge graad van transparantie Sterk aanpasbaar en uitbreidbaar Hoge performantie
Nadelen: Té groot risico op “chatty communication” Geen standaardisatie: enkel .NET-naar-.NET Beperkte “roadmap” voor .NET Remoting (Indigo)
Gebruiken of niet? Enkel voor inter-application domain (Microsoft)
Lees: IPC op dezelfde machine Niet inzetbaar voor EAI
Geen standaardisatie
Vrijdag 10 juni 2005 Bart De Smet 20
SOA Service-oriented
Webservices als entrypoints Achterliggende componenten worden verborgen
“Loosely coupled” Contract = berichtgebaseerd
Voorzien op fouten Vermijden van cascade-effect (belang bij EAI)
Ondersteuning voor “aspecten” Beveiliging, integriteit, betrouwbaarheid Gedistribueerde transacties Beleidsregels
Absolute must voor hedendaagse EAI
Vrijdag 10 juni 2005 Bart De Smet 21
SOA Principes:
Standaarden Set van WS-Specifications
Implementatie in .NET via WSE Werkwijze:
Definieer berichten via XSD Implementeer business components
Eventueel gebruik van service agents Bouw een façade vóór de business components
Gebruik WSE voor implementatie van de “aspecten” Rol van service als “gateway”
Genereer proxies Piece of cake in Visual Studio
Vrijdag 10 juni 2005 Bart De Smet 22
SOA Voordelen:
Gestandaardiseerd; lange “roadmap” Tools en technologieën (voorbeeld BizTalk)
Nadelen: Op heden onvolledig
Reliable messaging (MSMQ) Distributed transactions (DTS)
Jonge technologie (vb. mate van loosely coupling?) Gebruik:
Voorzie façade layers vandaag, met WSE Gebruik deze ook binnen de applicatie
Voor reliable messaging, gebruik MSMQ Toekomst = Indigo
Vrijdag 10 juni 2005 Bart De Smet 23
MSMQ Wat is het?
Bericht-gebaseerde communicatie via wachtrijen Relatief oude technologie in Windows
Doch bruikbaar in .NET Biedt ondersteuning voor:
Reliable messaging Transactionele messaging
Combinatie met SOA “One-way communication” Betrouwbare bezorging is vereist “Fire and forget”-communicatie vereist bevestiging Voorbeeld:
Plaatsen van een order
Vrijdag 10 juni 2005 Bart De Smet 24
MSMQ Service Provider Eigen ontwikkeling Doelstelling:
Gebruik van MSMQ vereenvoudigen
Eenvoudige definitie van een “MSMQ Service”
Bidirectionele communicatie
Gebruik: Declaratief (attributen) Tool MQDL.exe
Bruikbaar bij SOA
MSMQ ServiceApplication
MQ
DL
/exp
ort
MQDL /svcmanMQDL /proxyMICROSOFT CORPORATION
MQDL contract
Service manager
Proxy class
Server HostApplication
ClientApplication
ServerClient
MSMQ Channel
Vrijdag 10 juni 2005 Bart De Smet 25
Agenda
Introductie Databasetoegang Communicatie tussen lagen Conclusie Vragen
Vrijdag 10 juni 2005 Bart De Smet 26
Conclusie Datatoegang
“Intra-enterprise application” gebruik TDS Voor integratiedoeleinden gebruik XML
EAI is vroeg of laat nodig Liefst voor de business logic layer
Plaatsen van een façade via SOA Ook mogelijk op de databaselaag
SQLXML of SQL Server 2005 Web Services SOA = “Be prepared for EAI”
Klassieke ontwikkeling blijft; façade is “gateway” Jonge technologie in evolutie (onvoltooid) Indigo = veelbelovende toekomst
Vrijdag 10 juni 2005 Bart De Smet 27
Agenda
Introductie Databasetoegang Communicatie tussen lagen Conclusie Vragen
Vrijdag 10 juni 2005 Bart De Smet 28
Vragen