Serverentwicklung unter .NET Server Management Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de Serverentwicklung unter .NET
Inhalt Motivation Anforderungen Inhalt der Arbeit Protokolle Client- / Server-DV Servermodule Plugin-Lader Serverstart Protokolle Demonstration Ausblick Dipl. 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 Dipl. 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 Dipl. Inf. (FH) Paul Mizel
Client-/Server-DV TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Dipl. Inf. (FH) Paul Mizel
Server Module Server Serverkernel Membership Session Security request Provider Protocol Client Server Management Configuration response Dipl. Inf. (FH) Paul Mizel Seite 6
Plugin-Lader public 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; Dipl. Inf. (FH) Paul Mizel
Serverstart 1. IServerConfiguration cfg = new ServerConfigurationImpl(80); //Configuration 2. PluginHelper ph = new PluginHelper(); 3. IServerProtocol protocol = ph.GetProtocol(ProtocolType.HTTP); //Protocol 4. IServerProvider provider = new ServerProviderImpl(cfg, protocol); //Provider 5. 6. IServer server = new SynchronousSocketListener(provider); //create Server 7. server.Start(); Dipl. Inf. (FH) Paul Mizel
Protokolle Dipl. Inf. (FH) Paul Mizel
Protokolle Kommunikationsgrundlage Kommunikationsart TCP basierte / Sitzungsbasierte UDP basierte Kommunikationsart Zeichenbasierte / Kommandobasierte Bytebasierte Performanceuntersuchung Speicherverwaltung Kodierung Normal System.Byte System.String x10.000 126 783 5118 x100.000 716 8145 49354 x1.000.000 6614 80385 501130 Dipl. Inf. (FH) Paul Mizel Seite 10
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 Dipl. 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) . . . Dipl. 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)) . . . Dipl. Inf. (FH) Paul Mizel
POP3 Protokolle zum Empfangen von E-Mails Standard Port: 110 Alternativen / Erweiterungen POP3S (SSL Erweiterung) . . . Dipl. Inf. (FH) Paul Mizel
SMTP Protokolle zum Senden von E-Mails Standard Port: 25 Alternativen / Erweiterungen ESMTP (Extended SMTP) . . . Dipl. Inf. (FH) Paul Mizel Seite 15
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) . . . Dipl. 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 )) . . . Dipl. 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 . . . Dipl. 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) . . . Dipl. Inf. (FH) Paul Mizel
DEMO 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 Dipl. Inf. (FH) Paul Mizel
Demonstration Dipl. 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 Dipl. Inf. (FH) Paul Mizel
Danke!
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 Dipl. Inf. (FH) Paul Mizel Seite 24
Anhang Demo [.\demo\] Präsentation [.\paul mizel projektarbeit 2006.ppt] Source Code [.\src\] Links [.\links\] RFCs [.\rfcs\]