250 likes | 323 Views
Server Management. Dipl.-Inform. (FH) Paul Mizel. paul.mizel@enivo.de. Serverentwicklung unter .NET. Inhalt. Motivation Anforderungen Inhalt der Arbeit Client- / Server-DV Servermodule Plugin-Lader Serverstart Protokolle Demonstration Ausblick. Motivation. Was ist OMNINO?
E N D
Server Management Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de Serverentwicklung unter .NET
Inhalt • Motivation • Anforderungen • Inhalt der Arbeit • 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 Membership Session Serverkernel Security request Provider Protocol Client Server Management Configuration response Seite 6 Dipl. Inf. (FH) Paul Mizel
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))) { Tprotocol = (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 = newPluginHelper(); 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
Kommunikationsgrundlage TCP basierte / Sitzungsbasierte UDP basierte Kommunikationsart Zeichenbasierte / Kommandobasierte Bytebasierte Performanceuntersuchung Speicherverwaltung Kodierung Protokolle Seite 10 Dipl. 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 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) . . . Seite 15 Dipl. 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) • . . . 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
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
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 Seite 24 Dipl. Inf. (FH) Paul Mizel
Anhang Demo[.\demo\] Präsentation[.\paul mizel projektarbeit 2006.ppt] Source Code[.\src\] Links[.\links\] RFCs[.\rfcs\]