280 likes | 561 Views
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
E N D
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 Bart De Smet
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 Bart De Smet
Enterprise applicaties Bart De Smet
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 Bart De Smet
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 Bart De Smet
Agenda • Introductie • Databasetoegang • ADO.NET 1.x en 2.0 • SQLXML • SQL 2005 Web Services • SOAP Data Provider • Communicatie tussen lagen • Conclusie • Vragen Bart De Smet
ADO.NET Bart De Smet
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? Bart De Smet
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 Bart De Smet
ADO.NET 2.0 1 Enkel voor SQL Server 2005 2 Voorlopig enkel voor SQL Server 2005 Bart De Smet
SQLXML Bart De Smet
SQLXML 1 vergelijking met TDS 2 vreemde tekens in kolomnamen niet toegestaan 3 installatie op Active Directory domaincontroller Bart De Smet
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 Bart De Smet
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 Bart De Smet
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 Bart De Smet
Agenda • Introductie • Databasetoegang • Communicatie tussen lagen • XML Web Services • .NET Remoting • SOA • MSMQ • Conclusie • Vragen Bart De Smet
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) Bart De Smet
.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 Bart De Smet
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 Bart De Smet
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 Bart De Smet
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 Bart De Smet
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 Bart De Smet
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 Bart De Smet
Agenda • Introductie • Databasetoegang • Communicatie tussen lagen • Conclusie • Vragen Bart De Smet
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 Bart De Smet
Agenda • Introductie • Databasetoegang • Communicatie tussen lagen • Conclusie • Vragen Bart De Smet
Vragen Bart De Smet