1 / 25

Server Management

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?

bayard
Download Presentation

Server Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Server Management Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de Serverentwicklung unter .NET

  2. Inhalt • Motivation • Anforderungen • Inhalt der Arbeit • Client- / Server-DV • Servermodule • Plugin-Lader • Serverstart • Protokolle • Demonstration • Ausblick Dipl. Inf. (FH) Paul Mizel

  3. 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

  4. 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

  5. Client-/Server-DV • TCP (Transmission Control Protocol) • UDP (User Datagram Protocol) Dipl. Inf. (FH) Paul Mizel

  6. Server Module Server Membership Session Serverkernel Security request Provider Protocol Client Server Management Configuration response Seite 6 Dipl. Inf. (FH) Paul Mizel

  7. 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

  8. 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

  9. Protokolle Dipl. Inf. (FH) Paul Mizel

  10. Kommunikationsgrundlage TCP basierte / Sitzungsbasierte UDP basierte Kommunikationsart Zeichenbasierte / Kommandobasierte Bytebasierte Performanceuntersuchung Speicherverwaltung Kodierung Protokolle Seite 10 Dipl. Inf. (FH) Paul Mizel

  11. 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

  12. 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

  13. 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

  14. POP3 • Protokolle zum Empfangen von E-Mails • Standard Port: 110 • Alternativen / Erweiterungen • POP3S (SSL Erweiterung) • . . . Dipl. Inf. (FH) Paul Mizel

  15. SMTP Protokolle zum Senden von E-Mails Standard Port: 25 Alternativen / Erweiterungen ESMTP (Extended SMTP) . . . Seite 15 Dipl. Inf. (FH) Paul Mizel

  16. 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

  17. 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

  18. (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

  19. 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

  20. 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

  21. Demonstration Dipl. Inf. (FH) Paul Mizel

  22. 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

  23. Danke!

  24. 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

  25. Anhang Demo[.\demo\] Präsentation[.\paul mizel projektarbeit 2006.ppt] Source Code[.\src\] Links[.\links\] RFCs[.\rfcs\]

More Related