thesisverdediging

28
Thesisverdediging “Ontwerp van enterprise applicaties op het .NET platform” Bart De Smet Academiejaar 2004-2005 Promotor: Prof. A. De Clercq Begeleider: Dhr. N. Sabbe

Upload: trudy

Post on 15-Jan-2016

88 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Thesisverdediging

Thesisverdediging

“Ontwerp van enterprise applicaties op het .NET platform”

Bart De SmetAcademiejaar 2004-2005

Promotor: Prof. A. De ClercqBegeleider: Dhr. N. Sabbe

Page 2: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 2

Agenda

Introductie Enterprise applicaties Het .NET platform Doelstelling

Databasetoegang Communicatie tussen lagen Conclusie Vragen

Page 3: Thesisverdediging

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

Page 4: Thesisverdediging

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

Page 5: Thesisverdediging

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

Page 6: Thesisverdediging

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

Page 7: Thesisverdediging

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

Page 8: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 8

ADO.NET

Page 9: Thesisverdediging

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?

Page 10: Thesisverdediging

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

Page 11: Thesisverdediging

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

Page 12: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 12

SQLXML

Page 13: Thesisverdediging

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

Page 14: Thesisverdediging

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

Page 15: Thesisverdediging

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

Page 16: Thesisverdediging

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

Page 17: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 17

Agenda Introductie Databasetoegang Communicatie tussen lagen

XML Web Services .NET Remoting SOA MSMQ

Conclusie Vragen

Page 18: Thesisverdediging

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)

Page 19: Thesisverdediging

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

Page 20: Thesisverdediging

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

Page 21: Thesisverdediging

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

Page 22: Thesisverdediging

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

Page 23: Thesisverdediging

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

Page 24: Thesisverdediging

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

Page 25: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 25

Agenda

Introductie Databasetoegang Communicatie tussen lagen Conclusie Vragen

Page 26: Thesisverdediging

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

Page 27: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 27

Agenda

Introductie Databasetoegang Communicatie tussen lagen Conclusie Vragen

Page 28: Thesisverdediging

Vrijdag 10 juni 2005 Bart De Smet 28

Vragen