Thesisverdediging

advertisement
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
Conclusie
Vragen
Vrijdag 10 juni 2005
Bart De Smet
2
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
3
Enterprise applicaties
Presentation Layer
Business Logic Layer
Co
mm
Thin client
users (browser)
un
i ca
Data Layer
Business objects
Business rules
Persistence
layer
tio
n
Web application
Communication
Co
mm
ic
un
ati
on
Application
Server(s)
Database
Server(s)
Rich client
users (WinForm)
GUI application
Vrijdag 10 juni 2005
Bart De Smet
4
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
5
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
6
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
7
ADO.NET
Vrijdag 10 juni 2005
Bart De Smet
8
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
9
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
10
ADO.NET 2.0
User 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
2
Enkel voor SQL Server 2005
Voorlopig enkel voor SQL Server 2005
Vrijdag 10 juni 2005
Bart De Smet
11
SQLXML
Vrijdag 10 juni 2005
Bart De Smet
12
SQLXML
Templates
 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
2
3
vergelijking met TDS
vreemde tekens in kolomnamen niet toegestaan
installatie op Active Directory domaincontroller
Vrijdag 10 juni 2005
Bart De Smet
13
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
14
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
15
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
SelectCommand
SoapDataAdapter
DataSet
-SelectCommand
-InsertCommand
-DeleteCommand
-UpdateCommand
InsertCommand
DeleteCommand
Proxy class
+GetProducts()
+InsertProduct()
+DeleteProduct()
+UpdateProduct()
Web service
HTTP
SOAP
+GetProducts()
+InsertProduct()
+DeleteProduct()
+UpdateProduct()
Database
UpdateCommand
Vrijdag 10 juni 2005
Bart De Smet
16
Agenda
 Introductie
 Databasetoegang
 Communicatie tussen lagen




XML Web Services
.NET Remoting
SOA
MSMQ
 Conclusie
 Vragen
Vrijdag 10 juni 2005
Bart De Smet
17
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
18
.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
19
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
20
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
21
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
22
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
23
MSMQ Service Provider
 Eigen ontwikkeling
 Doelstelling:
 Gebruik van MSMQ
vereenvoudigen
 Eenvoudige definitie van
een “MSMQ Service”
 Bidirectionele
communicatie
 Gebruik:
MSMQ Service
Application
Server Host
Application
MQDL /export
Client
Application
MICROSOFT CORPORATION
Proxy class
 Declaratief (attributen)
 Tool MQDL.exe
 Bruikbaar bij SOA
Vrijdag 10 juni 2005
Server
Client
Bart De Smet
MQDL /proxy
MQDL /svcman
Service
manager
MQDL contract
MSMQ Channel
24
Agenda





Introductie
Databasetoegang
Communicatie tussen lagen
Conclusie
Vragen
Vrijdag 10 juni 2005
Bart De Smet
25
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
26
Agenda





Introductie
Databasetoegang
Communicatie tussen lagen
Conclusie
Vragen
Vrijdag 10 juni 2005
Bart De Smet
27
Vragen
Vrijdag 10 juni 2005
Bart De Smet
28
Download