Server Management

25
Server Management Serverentwicklung unter .NET Dipl.-Inform. (FH) Paul Mizel [email protected]

description

Server Management. Dipl.-Inform. (FH) Paul Mizel. [email protected]. Serverentwicklung unter .NET. Inhalt. Motivation Anforderungen Inhalt der Arbeit Client- / Server-DV Servermodule Plugin-Lader Serverstart Protokolle Demonstration Ausblick. Motivation. Was ist OMNINO? - PowerPoint PPT Presentation

Transcript of Server Management

Page 1: Server Management

Server Management

Serverentwicklung unter .NET

Dipl.-Inform. (FH) Paul [email protected]

Page 2: Server Management

Seite 2Dipl. Inf. (FH) Paul Mizel

Inhalt•Motivation•Anforderungen•Inhalt der Arbeit

▫ Client- / Server-DV▫ Servermodule▫ Plugin-Lader▫ Serverstart

•Protokolle•Demonstration•Ausblick

Page 3: Server Management

Seite 3Dipl. Inf. (FH) Paul Mizel

Motivation•Was ist OMNINO?

•Es sollte ein Server-Kern unter .NET entworfen und entwickelt werden

•Mithilfe dieses Server-Kerns soll es möglich sein verschiedene Protokolle ohne viel Aufwand umzusetzen

•Erfahrungen in Standardnetzwerkprotokollen

Page 4: Server Management

Seite 4Dipl. Inf. (FH) Paul Mizel

Anforderungen•Schnittstelle für die Protokolle•Serverkern

▫Grundlage TCP, Synchron•Servermanagement•Protokolle

▫HTTP, FTP▫POP3, SMTP▫Telnet, Echo, (S)NTP▫DNS

Page 5: Server Management

Seite 5Dipl. Inf. (FH) Paul Mizel

Client-/Server-DV• TCP (Transmission Control Protocol)

• UDP (User Datagram Protocol)

SYN SEQ=x

Verarbeitung

ServerClient / Server 3-Wege-Handshake

SYN,ACK=x+1 SEQ=y

ACK SEQ=y+1

Verarbeitung ist abgeschlossen

Verarbeitung

ServerClient / Server

Page 6: Server Management

Seite 6Dipl. Inf. (FH) Paul Mizel

Server Module

Server

Clie

nt

Serverkernel

request

response Serv

er M

anag

emen

t

Provider

Protocol

Configuration

Membership

Session

Security

Page 7: Server Management

Seite 7Dipl. Inf. (FH) Paul Mizel

Plugin-Laderpublic List<T> GetPlugins<T>(string folder){

string[] files = Directory.GetFiles(folder, "*.dll");List<T> tList = new List<T>();

foreach (string file in files){

try{

Assembly assembly = Assembly.LoadFile(file);foreach (Type type in assembly.GetTypes()){

if (!type.IsClass || type.IsNotPublic)continue;

Type[] interfaces = type.GetInterfaces();if (((IList)interfaces).Contains(typeof(T))){

T protocol = (T)Activator.CreateInstance(type);tList.Add(protocol);

}}

}catch (Exception ex) {}}return tList;

}

Page 8: Server Management

Seite 8Dipl. Inf. (FH) Paul Mizel

Serverstart1. IServerConfiguration cfg = new ServerConfigurationImpl(80); //Configuration2. PluginHelper ph = new PluginHelper(); 3. IServerProtocol protocol = ph.GetProtocol(ProtocolType.HTTP); //Protocol4. IServerProvider provider = new ServerProviderImpl(cfg, protocol); //Provider5. 6. IServer server = new SynchronousSocketListener(provider); //create Server7. server.Start();

Page 9: Server Management

Seite 9Dipl. Inf. (FH) Paul Mizel

Protokolle

OSI-Layer

AnwendungApplication

Darstellung(Presentation)

Sitzung(Session)

Transport(Transport)

Vermittlung(Network)

Sicherung(Data Link)

Bitübertragung(Physical)

7

7

5

4

3

2

1

Netzzugang(Network)

Transport(Transport)

Anwendung(Application)

TCP/IP Layer TCP/IP Protokolle

Eth

erne

t

Toke

n R

ing

FDD

I

X.2

5

Fram

e R

elay

SLI

P

ATM PP

P

IP, ICMP, ARP, RARPInternet

(Internet)RIP, OSPF, NLSP, EGP, BGP

TCP UDP

Teln

et

FTP

HTT

P

PO

P3

DN

S

Hub, Repeater

WLAN Access Point, Switch, Bridge

Router, Layer-3 Switch

Layer 4-7 Switch, Content Switch,

Gateway

Ech

o

(S)N

TP

Hardware

SM

TP

Page 10: Server Management

•Kommunikationsgrundlage▫ TCP basierte / Sitzungsbasierte▫ UDP basierte

•Kommunikationsart▫ Zeichenbasierte / Kommandobasierte▫ Bytebasierte

•Performanceuntersuchung

▫ Speicherverwaltung▫ Kodierung

Seite 10Dipl. Inf. (FH) Paul Mizel

Protokolle

  Normal System.Byte System.String

x10.000 126 783 5118

x100.000 716 8145 49354

x1.000.000 6614 80385 501130

0

100000

200000

300000

400000

500000

600000

x10.000 x100.000 x1.000.000

Normal

System.Byte

System.String

Page 11: Server Management

Seite 11Dipl. Inf. (FH) Paul Mizel

Protokolle• HTTP 1.1 - Hypertext Transfer Protocol Version 1.1

(RFC 2068)• FTP - File Transfer Protocol

(RFC 959)• POP3 - Post Office Protocol Version 3

(RFC 1939)• SMTP - Simple Mail Transfer Protocol

(RFC 2821 und Service Extension for Authentication 2554)• Telnet

(RFC 854 - 861)• Echo

(RFC 862)• (S)NTP - (Simple) Network Time Protocol

(RFC 868 (RFC 2030))• DNS - Domain Name System

(RFC 1034)*RFC - Request For Comments

Page 12: Server Management

Seite 12Dipl. Inf. (FH) Paul Mizel

HTTP•Ein Protokoll zur Übertragung von Daten

über ein Netzwerk. Es wird hauptsächlich eingesetzt, um Webseiten und andere Daten in einen Webbrowser zu laden.

•Standard Port: 80•Alternativen / Erweiterungen

▫Gopher▫HTTPS (HTTP over SSL(Secure Socket

Layer))▫SOAP (Simple Object Access Protocol)▫. . .

Page 13: Server Management

Seite 13Dipl. Inf. (FH) Paul Mizel

FTP•Download (Server zum Client) und zum

Upload (Client zum Server) von Dateien.•Standard Port: 21•Alternativen / Erweiterungen

▫SCP (Secure Copy Protocol)1 Alle Daten werden verschlüsselt

▫SFTP (SSH FTP) 1+ Alle Daten über den SSH-Tunel

▫SFTP (Secure FTP) nur Steuerkanal über SSH-Tunel

▫FTPS (FTP over SSL(Secure Socket Layer))▫. . .

Page 14: Server Management

Seite 14Dipl. Inf. (FH) Paul Mizel

POP3•Protokolle zum Empfangen von E-Mails•Standard Port: 110•Alternativen / Erweiterungen

▫POP3S (SSL Erweiterung)▫. . .

Page 15: Server Management

Seite 15Dipl. Inf. (FH) Paul Mizel

SMTP•Protokolle zum Senden von E-Mails•Standard Port: 25•Alternativen / Erweiterungen

ESMTP (Extended SMTP) . . .

Page 16: Server Management

Seite 16Dipl. Inf. (FH) Paul Mizel

Telnet•Wird dazu verwendet, Benutzern den

Zugang zu Internetrechnern über die Kommandozeile zu bieten

•Standard Port: 23•Alternativen / Erweiterungen

▫SSH (Secure shell)▫RDP (Remote Desktop Protocol)▫. . .

Page 17: Server Management

Seite 17Dipl. Inf. (FH) Paul Mizel

Echo•Funktion dieses Dienstes ist: Alle

empfangenen Daten unverändert zum Client zurückzusenden

•Standard Port: 7•Alternativen / Erweiterungen

▫Ping (ICMP (Internet Control Message Protocol ))

▫. . .

Page 18: Server Management

Seite 18Dipl. Inf. (FH) Paul Mizel

(S)NTP•Protokoll zur Synchronisation von Uhren in

Computersystemen•Standard Port: 123•Alternativen / Erweiterungen

▫PPS (Pulse-Per-Second)▫Time Protocol ▫Daytime Protocol ▫. . .

Page 19: Server Management

Seite 19Dipl. Inf. (FH) Paul Mizel

DNS• DNS ist eine verteilte Datenbank, die den

Namensraum im Internet verwaltet. Dient zur Umsetzung von Domainnamen in IP-Adressen (forward lookup) und umgekehrt (reverse lookup).

• Standard Port: 53• Alternativen / Erweiterungen

▫EDNS (Extended DNS) Paketgröße/Weiterer Headercode

▫IDNA (Internationalizing Domain Names in Applications)

▫ENUM (tElephone NUmber Mapping)▫. . .

Page 20: Server Management

Seite 20Dipl. Inf. (FH) Paul Mizel

Demonstration•Wie erstelle ich einen Protokoll?

▫ Enivo.Net.dll einbinden.▫ Erben von ServerProtocolImpl oder IServerProtocol

implementieren▫ ProtocolAttribute setzen oder die Parameter zum Auffinden ändern▫ Methoden ausprogrammieren

void Request(TcpConnection req); void Connected(TcpConnection req); void Disconnected(TcpConnection req);

•Präsentation des Managers

DEMO

Page 21: Server Management

Seite 21Dipl. Inf. (FH) Paul Mizel

Demonstration

Page 22: Server Management

Seite 22Dipl. Inf. (FH) Paul Mizel

Ausblick•Server-Kern auch als Client/Proxy erweitern•UDP Erweiterung•Synchron und Asynchron Optimierung•Lastverteilung (Load Balancing)•Sicherheit

▫ IDS(Intrusion Detection System)▫ Syn-Flooding▫ SSL Erweiterung

•Umgebung als Service

Page 23: Server Management

Danke!

Page 24: Server Management

Seite 24Dipl. Inf. (FH) Paul Mizel

Quellen[Abhinaba]Abhinaba B.: C# 2.0: Loading plugins at run-time using late binding [Internet]

http://blogs.msdn.com/abhinaba/archive/2005/11/14/492458.aspx

[Archer, Whitechapel]Archer, T. und Whitechapel, A.: Inside C#: Objektorientiertes Programmieren mit C# und dem .NET Framework. Microsoft Press, 2002

[Microsoft MSDN#1]Microsoft.: Asynchronous Server Socket Example [Internet] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/

html/cpconnon-blockingserversocketexample.asp , 2005

[Microsoft MSDN#2]Microsoft.: Asynchronous Server Socket Example [Internet] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/

html/cpconblockingserversocketexample.asp, 2005

[Schwichtenberg]Schwichtenberg, H.: Deutsche Community-Site für .NET [Internet] http://www.it-visions.de/glossar/default.aspx?g=alle IT Visions, 2005

[Selke]Selke, G. W.: Kryptographie: Verfahren, Ziele, Einsatzmöglichkeiten. O’Reilly GmbH & Co. KG, 2000

[Wikipedia DE]Wikimedia Foundation: Wikipedia. [Internet] http://de.wikipedia.org/wiki/Hauptseite, Wikimedia Foundation, 2004

[Wikipedia EN]Wikimedia Foundation: Wikipedia : The free Encyclopedia. [Internet] http://en.wikipedia.org/wiki/Main_Page, Wikimedia Foundation,

2004

[Winkler]Winkler, P.: M+T Computerlexikon. Markt+Technik Verlag, 2000

Page 25: Server Management

Anhang Demo

[.\demo\] Präsentation

[.\paul mizel projektarbeit 2006.ppt] Source Code

[.\src\]

Links[.\links\]

RFCs[.\rfcs\]