5.2 Microsoft.NET. Kurzer Überblick zu Microsoft.NET. .NET Web-Service Beispiel



Ähnliche Dokumente
Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Microsoft.NET und SunONE

Wiederholung: Beginn

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Workflow, Business Process Management, 4.Teil

3-schichtige Informationssystem-Architektur

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Java und XML 2. Java und XML

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

E-Services mit der Web-Service-Architektur

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Objektorientierte Programmierung

Ein neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen.

Enterprise Application Integration Erfahrungen aus der Praxis

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services

Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0

Web-Services - die GIS-Zukunft?

8a. Exkurs.NET. 8a.1.NET Architektur

Web Service Discovery mit dem Gnutella Peer-to-Peer Netzwerk

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

ObjectBridge Java Edition

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Lokale Installation von DotNetNuke 4 ohne IIS

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Cross-Platform Mobile mit.net

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 7: Prozesse und Möglichkeiten

WebService in Java SE und EE

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Anleitung zur Webservice Entwicklung unter Eclipse

SRH Hochschule Heidelberg

WSDL Web-basierte Anwendungen WSDL WSDL. Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien. Web Services Description Language

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

NET.Compact Framework

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Business Collaboration

Auszug aus JAX-WS Folien

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

ASP: Active Server Pages

Der lokale und verteilte Fall

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Titel. App-V 5 Single Server Anleitung zur Installation

Quo vadis, OPC? - von Data Access bis Unified Architecture - Dipl.-Ing. (BA) Erik Hennig Dresden,

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Zählen von Objekten einer bestimmten Klasse

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

WPF Steuerelemente Listbox, ComboBox, ListView,

Mobile und Verteilte Datenbanken

Web Services Security

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

Titel. System Center Configuration Manager 2012 R2 Anleitung Installation Softwareupdatepunkt und WSUS Integration

Factory Method (Virtual Constructor)

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Verteilte Systeme: Übung 4

Übungen zu Softwaretechnik

Einführung in Javadoc

OP-LOG

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

Architektur des agimatec-validation Frameworks

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Szenario 3: Service mit erweiterter Schnittstelle

Spring Dynamic Modules for OSGi Service Platforms

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition

R-ADSL2+ Einrichthinweise unter Windows 98/ME

Dokumentation zu Pocket NeuroNet

WCF Services in InfoPath 2010 nutzen

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

.NET-Objekte einfach speichern Michael Braam, Senior Sales Engineer InterSystems GmbH

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

SE2-10-Entwurfsmuster-2 15

Step by Step Webserver unter Windows Server von Christian Bartl

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Vertiefte Grundlagen Graphentheorie

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Speicher in der Cloud

Schneller, höher, weiter Die erweiterten Amt24-Schnittstellen. Klaus-Peter Geyer (T-Systems)

desk.modul : ABX-Lokalisierung

WPF Bindung. Dr. Beatrice Amrhein

POIS-Praktikum Prozessimplementierung, RosettaNet PIPs 3A

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

Referenzen TYPO3 Projekt Slider für Reiseberichte Stand: Februar 2015

Microsoft.NET Überblick. Matthias Nübling

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Thema: Web Services. Was ist ein Web Service?

xgu 2.0 Installationsanleitung Installationsanleitung Excel Add-In zu ASTAG GU Kalkulationsgrundlage Bern, 19. August 2014 Version: 01.

Ihr Benutzerhandbuch AVIRA ANTIVIR EXCHANGE

Installation Microsoft SQL Server 2008 Express

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Transkript:

Kapitel 5: Workshop.NET 1 5.2 Microsoft.NET Kurzer Überblick zu Microsoft.NET.NET Systemübersicht Common Language Runtime.NET Class Library Erweiterungen und Dienste.NET Web-Service Beispiel Überweisungsszenario mit Web-Services... Service Description and Discovery Web Referenzen Zoom-In: Proxies und Implementierungen in C#

Kapitel 5: Workshop.NET 2 Topic: Warum.NET? Ubiquitous Software Infrastructure

Kapitel 5: Workshop.NET 3.Überblick Web Controls COM+ Services Web Forms ASP.NET API Interop Darüber hinaus ist.net für Microsoft auch einfach Markenname für die aktuelle Produktgeneration Channels.NET Remoting C++ C# CLR MSIL VB.NET Class Library XML Web Services.NET My Services JS ADO.NET.NET DP ODBC.NET OLE DB

Kapitel 5: Workshop.NET 4.NET in Kürze Software-Infrastruktur für die Entwicklung verteilter, heterogener Anwendungen (mit verteilt meint man hier insbesondere das Internet) Für alle Arten von Computern (.NET Compact Framework, Smart Device Extension SDE) Optimiert für Windows (GDI+) Starke Ähnlichkeit zu den Konzepten und Mechanismen von Java Unter anderem wird auch SOAP unterstützt, aber leider ist die Implementierung derzeit noch unvollständig.net My Services waren mal als beispielhafte Web- Services gedacht... Microsoft Produkt

Kapitel 5: Workshop.NET 5 Common Language Runtime (CLR) Die CLR ist die Laufzeitumgebung für sogenannten managed Code Objektorientierung Garbage Collection Immer Just-In-Time Kompilierung (JIT) Class Management (Zugriff, Versionierung) Security Sandbox Lauffähig ist alles, was in der Microsoft Intermediate Language (MSIL) vorliegt CLR ~ Java Virtual Machine MSIL ~ Java Byte Code Web Forms ASP.NET Web Controls COM+ Services Interop API ODBC.NET C# CLR C++ JS ADO OLE MSIL.NET DB VB.NET.NET Class Library DP XML Web Services.NET My Services CLR MSIL

Sprachunterstützung von.net C# Sprachunabhängigkeit Source kann in beliebiger Sprache sein, sofern jene in MSIL übersetzt wird C#, VB.NET, C++, Jscript, Java, Eiffel Aber nur C# und VB.NET spiegeln das Objektmodel der CLR direkt wider Plattformunabhängigkeit CLR selbst ist standardisiert Microsoft selbst bietet mit Rotor eine Shared-Source Implementierung der CLR für Windows NT und FreeBSD Aus der Linux-Gemeinde kommt das Mono Projekt Problem: Das Klassenframework ist nicht komplett offen C++ CLR MSIL VB.NET JS Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 6

Kapitel 5: Workshop.NET 7.NET Class Library API Umfangreiche sprachunabhängige Klassenbibliothek Data Access (ADO.NET) XML, XSLT Web Services (SOAP, UDDI, WSDL) Crypto (RSA, DES/3DES, MD5,...) I/O (File, TCP, HTTP,...) Nicht komplett plattformunabhängig (although: Ximian s Mono [Opensource.NET Framework], Halcyon Software [.NET Framework in Java]) C# CLR C+ + JS MSIL VB.NET Class Library

Kapitel 5: Workshop.NET 8.NET Erweiterungen ASP.NET API Interop ADO.NET Zugriff auf Datenquellen (OLE DB, ODBC) COM+ Interoperabilität Zugriff auf COM+ Infrastruktur (Tx, Queues, etc.).net Remoting Vergleichbar mit Java RMI ASP.NET Programmiermodel für Einbindung in IIS Web-Services SOAP Kommunikation.NET Remoting C# CLR C+ + JS MSIL VB.NET XML Web Services ADO.NET

Kapitel 5: Workshop.NET 9 Szenario - Übersicht Finance WebService UDDI Client SOAP Finance Zürich WebService_Bern SOAP SOAP WebService_Basel Account Account Bern Basel UID UIDa

Kapitel 5: Workshop.NET 10 Web-Services Infrastruktur

Web-Service Discovery Lokalisierung von Dokumenten, die einen Web-Service beschreiben Bei.NET typischerweise zwei Dokumente: 1. WSDL-Beschreibung 2..disco Discovery-Datei XML Dokument, das auf andere Resourcen verweist (typischerweise URLs), die gesuchten Web-Service näher beschreiben Erleichtert automatisierte Suche nach einem Web-Service. Beispiel: <?xml version="1.0"?> <disco:discovery xmlns:disco=http://schemas.xmlsoap.org/disco xmlns:wsdl="http://schemas.xmlsoap.org/disco/wsdl"> <wsdl:contractref ref="http://sapr4/oho/finance.asmx?wsdl"/> </disco:discovery> Ein Web-Service muss keine Discovery anbieten (entweder gar nicht oder zumindest nicht selbst -> UDDI) ASP.NET ermöglicht sogar selbstbeschreibende Web Services Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 11

WSDL Beispiel (Account Web-Service) <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > <types> </types> <message name="withdrawsoapin"> </message> <message name="withdrawsoapout"> </message> <porttype name="withdrawsoap"> <operation name="withdraw"> <input message="s0:withdrawsoapin"/> <output message="s0:withdrawsoapout"/> </operation> </porttype> <binding name="s0:accountsbaselsoap"> </binding> <service name="accountsbasel"> <port name="accountsbaselsoap" binding="s0:accountsbaselsoap" > <soap:address location= http://sapr4/webservice_basel/accounts.asmx"/> </port> </service> </definitions> http://sapr4:4711/grabs/webservice_basel/account.asmx?wsdl Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 12

Zugriff auf Web-Services Eine Proxy-Klasse und das.net Framework erledigen die Feinarbeit. Vorgehensweise: 1. Lokalisieren des gewünschten Web-Service. 2. Erzeugen einer Proxy-Klasse für diesen Web-Service im Projekt mittels einer Web-Referenz. 3. Einbinden der Proxy-Klasse im Client Code über deren Namespace (using Direktive). 4. Instanziierung der Proxy-Klasse im Client Code. 5. Zugriff auf den Web-Service über die Proxy-Klasse. Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 13

1. Lokalisierung Nachschlagen in einem Web-Services Directory Suche nach einem.disco Wegweiser, der auf die gesuchte WSDL Beschreibung verweist. Eine WSDL Datei entspricht einer IDL Beschreibung a la COM oder CORBA Speziell bei ASP.NET: ASP.NET Web-Services sind selbstbeschreibend. Parameter?DISCO liefert Discovery-Dokument, Parameter?WSDL liefert WSDL Beschreibung Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 14

Kapitel 5: Workshop.NET 15 2. Proxy-Klassen Proxy-Klassen repräsentieren die Funktionalität eines Web-Services im Client Konzept wie bei CORBA, COM+ und EJB Orts- und Implementierungstransparenz Grundlage der Proxy-Klasse ist WSDL Beschreibung Beispiel mit.net: wsdl.exe /language:cs /out:finance.cs URL Theoretisch Interoperabilität zwischen verschiedenen Herstellern von SOAP Client und SOAP Server Praxis

Kapitel 5: Workshop.NET 16 2b. Web References von Visual Studio VisualStudio.NET kapselt Proxy-Klassen und deren Erzeugung/Verwaltung als sogenannte Web References Basierend auf Discovery- und WSDL-Datei Bindung zwischen Proxy und Service kann sein: Statisch Zum Kompilierzeitpunkt wird Client mit einer konkreten Instanz eines Web-Services gebunden Dynamisch Der Proxy wird erzeugt und kompiliert, die von ihm angesprochene Service-Instanz kann aber zur Laufzeit festgelegt werden, entweder per Konfigurationsdatei (web.config) oder im Programm per URL() Methode.

Proxy-Erzeugung für ASP.NET Web-Services Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Workshop.NET 17 C# Source Client.cs C# Source Finance.asmx.cs wsdl.exe /language:cs Finance.asmx?WSDL C# Compiler C# Proxy Reference.cs CLR.NET Framework WSDL Finance?WSDL C# Compiler FinanceClient Finance Service

Kapitel 5: Workshop.NET 18 Auszug aus dem Account-Proxy public class Account : System.Web.Services.Protocols.SoapHttpClientProtocol { public Account() statische URL-Bindung { this.url = "http://sapr4/ /WebService_Bern/Account.asmx"; } public System.Double Withdraw ( long laccountnumber, System.Double famount) { object[] results = this.invoke( Withdraw", new object[] { laccountnumber, famount}); return ((System.Double)(results[0])); } }

Kapitel 5: Workshop.NET 19 3. - 5. Einbindung und Verwendung des Proxy using FinanceWebService.OhOBank; public class FinanceClient { public Transfer ( long lfrom, long lto, System.Double famount ) { try { Account account = new Account(); dynamische URL-Bindung } } account.url = MapAccountToService(lFrom); account.withdraw(lfrom, famount); } catch ( System.Exception ex ) { }

Kapitel 5: Workshop.NET 20 ASP.NET Web-Service (Server) SOAP Client 1. HTTP requests arrive, with method name and parameters encoded in URL or separate XML. 5. ASP.NET converts results to XML and returns to client via HTTP. 4. Objects returns result to ASP.NET. Windows 2000 server machine with.net and IIS 2. ASP.NET creates object specified in ASMX file. 3. ASP.NET calls specified method on object. Your NET object Method 1... Method N SOAP Server

Kapitel 5: Workshop.NET 21 Code-Beispiel Account::Withdraw() public class Account : System.Web.Services.WebService { }... [WebMethod].NET Attribute, um automatisch SOAP Interface generieren zu lassen public double Withdraw ( long laccountnumber, double famount ) { try benutzt SQL Server.NET Data Provider { SqlConnection conn = new SqlConnection( ); SqlCommand comm = new SqlCommand( "UPDATE account SET balance = balance - "+famount+ " WHERE account_number = " + laccountnumber, conn); comm.connection.open(); return GetBalance(lAccountNumber); } finally { if ( conn!= null ) conn.close(); } }

Kapitel 5: Workshop.NET 22.NET WebMethodAttribute Properties Description Kurzbeschreibung zu einer Web-Service Methode. EnableSession Generiert einen Session-State für eine Service-Methode. TransactionOption Analog Transaktionsproperties von COM+ ABER: Web-Service kann nur Wurzel einer Tx. sein! BufferResponse, CacheDuration, MessageName, Beispiel: [WebMethod (Description= Blafasel, TransactionOption=Required)] public double Withdraw ( long laccountnumber, double famount ) { }

Kapitel 5: Workshop.NET 23 In der Übung Client SOAP WebService_Finance UDDI Exchange Rate SOAP Finance Zürich WebService_Bern SOAP SOAP WebService_Basel Account Account ADO.NET Bern ADO.NET Basel UID IIS auf SAPR4 UIDa

Kapitel 5: Workshop.NET 24 Datenbankverbindung mit SQL Server SQL Server Instance = SAPR4 DBName: ohoxx UName : ohoxx Paswd : ohoxx DBName: ohoxxa UName : ohoxxa Paswd : ohoxxa Database 1 schema_bern.sql Database 2 schema_basel.sql

Kapitel 5: Workshop.NET 25 Web-Service Directories Problem: Wie findet man Web-Services (insbesondere von Drittanbietern)? Web-Services Directiories Zentrale Verzeichnisse wo Anbeiter Informationen über ihre Web-Services veröffentlichen können Inhalt: UDDI Spezifikationen Web-Service Directories können selbst ein Web-Service sein UDDI (Universal Description, Discovery and Integration) Spezifikationen standadisiert, wie Informationen über Web-Services publiziert und abgefragt werden können The XML schemas associated with UDDI define four types of information that would enable a developer to use a published XML Web service. These are: business information, service information, binding information, and information about specifications for services. Developers can use the UDDI Business Registry to locate discovery documents and service descriptions. Beispiele: Microsofts UDDI Business Registry (http://uddi.microsoft.com/) IBM (http://www.ibm.com/servuices/uddi/)

Kapitel 5: Workshop.NET 26 WSDL Beispiel (Finance Web-Service) <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > <types> </types> <message name="transfersoapin"> </message> <message name="transfersoapout"> </message> <porttype name="financesoap"> <operation name="transfer"> <input message="s0:transfersoapin"/> <output message="s0:transfersoapout"/> </operation> </porttype> <binding name="s0:financesoap"> </binding> <service name="finance"> <port name="financesoap" binding="s0:financesoap" > <soap:address location= http://sapr4/financewebservice/finance.asmx"/> </port> </service> </definitions> http://sapr4:4711/grabs/financewebservice/finance.asmx?wsdl