Simple Contest System



Podobne dokumenty
Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Administrowanie systemami informatycznymi Kod przedmiotu

Programowanie obiektowe 2 - opis przedmiotu

7. zainstalowane oprogramowanie zarządzane stacje robocze

Kurs zdalny Podstawy geoinformacji dla nauczycieli

Internet przedmiotów - opis przedmiotu

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Sprawa numer: BAK.WZP Warszawa, dnia 16 sierpnia 2016 r.

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

SCENARIUSZE ĆWICZEŃ DLA UŻYTKOWNIKÓW ZEWNĘTRZNYCH SYSTEMU INFORMATYCZNEGO NAWIKUS

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

STUDIA I MONOGRAFIE NR

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Wirtualizacja zasobów IPv6 w projekcie IIP

Systemy Informatyki Przemysłowej

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

MAREK NIEZGÓDKA ICM, UNIWERSYTET WARSZAWSKI

REFERAT O PRACY DYPLOMOWEJ

PRZEWODNIK PO PRZEDMIOCIE

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Rok akademicki: 2014/2015 Kod: CCB s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Przetwarzanie danych w chmurze

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Programowanie usług sieciowych

Od e-materiałów do e-tutorów

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

Regulamin Organizacji Nauczania na Odległość (E-learningu) na Uniwersytecie Ekonomicznym we Wrocławiu

Regulamin Organizacji Nauczania na Odległość (E-learningu) w Uniwersytecie Ekonomicznym we Wrocławiu

Procedura kształcenia na odległość

ZiMSK. VLAN, trunk, intervlan-routing 1

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Umowa o współpracy. Strona 1 z 5

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Kurs zdalny Zarządzanie informacją przestrzenną

Rozwijanie kompetencji nauczycieli i uczniów z zakresu stosowania TIK. Wykorzystanie e-podręczników i e-zasobów w nauczaniu i w uczeniu się

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

System zarządzający grami programistycznymi Meridius

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

System Zarządzania Dystrybucją

Opis efektów kształcenia dla modułu zajęć

Wykład 1 Inżynieria Oprogramowania

Aplikacje WWW i PHP - opis przedmiotu

Podstawowe zasady działania systemu antyplagiatowego OSA oraz przesyłania obronionych prac do ORPD w kontekście współpracy z systemem Dziekanat

Umowa o współpracy. Strona 1 z 5

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Instrukcja dla Szkolnego Administratora Systemu Antyplagiatowego Antyściąga.pl

Wstęp do Informatyki. Klasyfikacja oprogramowania

Regulamin korzystania z platformy e-learning w projekcie Czas Zawodowców Wielkopolskie Kształcenie Zawodowe

Instrukcja dla Uczelnianego Administratora Systemu Antyplagiatowego Plagiat.pl

Janina Mincer-Daszkiewicz

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od prostych do poważnych algorytmów w C++ Symbol szkolenia: PUZC++

Integracja ORPPD z uczelnianymi systemami antyplagiatowymi

Nowoczesne metody nauczania przedmiotów ścisłych

USOS. Wdrożenie w Uniwersytecie Łódzkim USOS UŁ

Win Admin Replikator Instrukcja Obsługi

PANEL KSZKOŁA WEB. Szanowni Państwo!

REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI

Zarządzanie informacją i wiedzą w usługach o podwyŝszonym poziomie bezpieczeństwa. Maciej Stroiński stroins@man.poznan.pl

Programowanie MorphX Ax

Nie święci garnki lepią. czyli wprowadzenie do programowania

aplikacja akcyzattor

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

OPIS PRZEDMIOTU ZAMÓWIENIA

ABC e - learningu. PROJEKT PL35 KOMPETENTNY URZĘDNIK WYśSZA JAKOŚĆ USŁUG W WIELKOPOLSCE

Kryteria oceniania z Technologii Informacyjnej

SZKOLENIE: METODYKA E-LEARNINGU (50h) Tematyka zajęć: PROGRAM EXE NARZĘDZIE DO TWORZENIA ELEKTRONICZNYCH MATERIAŁÓW DYDAKTYCZNYCH (10h)

Uslugi chmurowe dla nauki na podstawie BonFIRE

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Portal Edukacyjny przykład CRM i BIG DATA w SMART CITY Luboradza, września 2014 r.

PRZEWODNIK PO PRZEDMIOCIE

Wykład Ćwiczenia Laboratorium Projekt Seminarium

PRZEWODNIK PO PRZEDMIOCIE

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

Regulamin tworzenia i prowadzenia zajęć dydaktycznych w formie elektronicznej, z wykorzystaniem metod i technik kształcenia na odległość

Programowanie obiektowe

KARTA PRZEDMIOTU. 10. WYMAGANIA WSTĘPNE: technologia informacyjna na poziomie szkoły średniej.

PRZEWODNIK PO PRZEDMIOCIE

Platforma e-learningowa MWSLiT

Rozdział 1. Postanowienia ogólne

Doskonalenie podstaw programowych kluczem do modernizacji kształcenia zawodowego

Podstawy modelowania programów Kod przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy. Dokumentacja specjalności. Sieci komputerowe

1 Struktura organizacyjna. 2 Uprawnienia i obowiązki uczestników procesu kształcenia na odległość

Integracja uczelnianego archiwum prac dyplomowych z Centralnym Repozytorium Prac Dyplomowych

Załącznik nr 1 do Zapytania ofertowego: Opis przedmiotu zamówienia

Założenia programu InfoTrick

EDUKONTAKT nowoczesna współpraca w edukacji z wykorzystaniem internetu

kompleksowe oprogramowanie do zarządzania procesem spawania

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

Rozwijanie kompetencji nauczycieli i uczniów z zakresu stosowania technologii informacyjno-komunikacyjnych (TIK). Wykorzystanie e-podręczników i

Rozwijanie kompetencji cyfrowych. Wykorzystanie e-zasobów w nauczaniu i w uczeniu się

Transkrypt:

Grzegorz Wierzowiecki 2007-06 Spis treści Simple Contest System Simple Contest System...1 Słownik...2 Dziedzina problemowa...2 Cel...2 Zakres odpowiedzialności systemu...2 Użytkownicy systemu...2 Wymagania użytkownika...3 Wymagania związane z dziedziną problemową...3 Wymagania związane z funkcjonalnością systemu...3 Wymagania związane z ograniczeniami systemu...3 Wymagania funkcjonalne...4 Opis struktury systemu...5 Diagram klas...5 Opis klas...6 Agent...6 UserInterface...6 WebUserInterface...6 CommandLineUserInterface...6 Compiler...6 Checker...6 Judge...6 Preprocessor...6 Watchdog...6 Database...6 CommunicationAPI...6 StandardIO...7 SimpleQueue...7 Opis metod...7 receive_as(who, buf, len, flags)...7 send_to(towho, buf, len, flags)...7 confirm(who, id, flags)...7 run()...7 Wymagania niefunkcjonalne...7 Przyszła ewolucja systemu...8 LiveCD...8 Rozproszona implementacja warstwy komunikacji...8 Szyfrowanie transmisji...8 Uwierzytelnianie węzłów obliczeniowych...8 Więcej implementacji poszczególnych modułów...8 1

Słownik Simple Contest System (SCS) nazwa całego systemu rozumianego jako otwarty system rozproszony złożony z wielu autonomicznych agentów. Jego dotyczy ta dokumentacja. Zawodnik jest to osoba zarejestrowana w systemie, która może przesłać do systemu rozwiązanie jednego z problemów w celu weryfikacji.( Niekoniecznie musi to być zawodnik biorący udział w zawodach. Może być tą osobą również uczeń przy zastosowaniu e-leraning i inni. ) Agent jest to program autonomiczny realizujący wymagania otwartych systemów rozproszonych: autonomiczność i komunikatywność. System składa się z modułów nazywanych agentami, które spełniają określone role. Wiadomość kawałek informacji, będący podstawową jednostką komunikacji z agentami oraz agentów między sobą. Zunifikowany, którego obsługą zajmuje się warstwa abstrakcji PJWSTK - Polsko-Japońska Wyższa Szkoła Technik Komputerowych. Dziedzina problemowa Uczelnia Polsko-Japońska Wyższa Szkoła Technik Komputerowych prowadzi wydział Informatyki. Jest to wydział cieszący się dobrą renomą na terenie Polski, jak i sama uczelnia. Uczelnie opuszcza każdego roku dziesiątki świetnie wykształconych programistów. Uczelnia pragnie każdego roku podwyższać poziom nauczenia by skutecznie konkurować na rynku uczelnianym i podtrzymać renomę. Uczelnia wspomaga uczniów poprzez systemy wspomagające nauczanie (obecnie głównie edu), wspomagające wymianę materiałów między prowadzącymi i uczniami między sobą, oraz przepływem informacji (wirtualny dziekanat, wirtualne składanie podań). Cel Przyciągnięcie większej ilości nowych studentów poprzez oferowanie jeszcze wyższego poziomu nauczania oraz poprzez posiadanie jeszcze większej renomy. Podwyższenie poziomu nauczania ma zostać osiągnięte poprzez wzbogacenie istniejącej infrastruktury informatycznej o nowy element, system Simple Contest System, dzięki któremu uczniowie będą mogli efektywniej korzystać z zajęć programistycznych oraz uczyć się we własnym zakresie. Podwyższenie renomy poprzez organizację warszawskich i ogólnopolskich konkursów informatycznych. Zakres odpowiedzialności systemu System ma za zadanie pozwalać na wprowadzanie do niego problemów oraz procedur, bądź danych potrzebnych do weryfikacji potencjalnych rozwiązań. Zawodnicy (przypominam iż to również uczniowie) mają mieć możliwość przesyłania do systemu swoich rozwiązań problemów i otrzymywać informację zwrotną na temat ich rozwiązania. Informacja zwrotna ma dawać informacje o ewentualnych błędach i ocenę rozwiązania. Użytkownicy systemu Zawodnik opisany w słowniku. 2

Administrator osoba administrująca systemem oraz przeprowadzająca zawody. Nauczyciel prowadzący ćwiczenia lub wykład. Wymagania użytkownika Wymagania związane z dziedziną problemową System ma być przyjazny w użytkowaniu dla studentów. Ten cel ma być osiągnięty poprzez integrację strony webowej z systemem Edu, bądź upodobnieniem interfejsu webowego do systemu Edu. System ma mieć możliwość przechowywania dokładnych czasów wysłań poszczególnych rozwiązań oraz adresu ip i numeru portu maszyny oraz id użytkownika z której zostało wysłane rozwiązanie. Wymagania związane z funkcjonalnością systemu Nauczyciele mają mieć możliwość dodawania przez zadań poprzez odpowiedni interfejs webowy. Ma istnieć możliwość wglądu przez osoby uprawnione do źródeł rozwiązań. Zawodnicy mają posiadać możliwość wysyłania rozwiązań zarówno poprzez interfejs webowy jak i linię komend. Administratorzy mają mieć możliwość edycji procedur testowych pracujących na danych testach. Administratorzy mają mieć możliwość ustalania reguł przy organizowaniu zawodów poprzez modyfikację agenta Judge (sędziego). Wymagania związane z ograniczeniami systemu. System ma działać na komputerze z systemem Linux w wersji co najmniej 2.4.x przy 128MB pamięci operacyjnej wolnej oraz zużywając maksymalnie 1GB zasobów dyskowych. 3

Wymagania funkcjonalne 4

Opis struktury systemu Diagram klas 5

Opis klas Agent Abstrakcyjna klasa reprezentująca agenta. Wszyscy agenci tworzący system dziedziczą jej cechy. Od tego momentu wszystkie klasy potomne będę nazywał agentami. UserInterface Agent odpowiedzialny z kontakt z użytkownikiem. Odebranie od niego rozwiązania oraz przekazania jemu informacji od systemu. WebUserInterface Agent będący implementacją UserInterface gdzie za interfejs użytkownika służy strona internetowa. CommandLineUserInterface Agent będący implementacją UserInterface w którym to za interfejs użytkownika służy linia komend za pomocą której wywołując agenta z odpowiednimi parametrami, użytkownik może komunikować się z systemem. Compiler Agent Kompilaczka kompiluje rozwiązania użytkownika na kod binarny. Checker Agent Sprawdzaczka sprawdza rozwiązanie użytkownika (wersję binarną) pod kątem testów. Tworzy raport i przekazuje sędziemu. Judge Agent Sędzia przyjmuje raporty, wiadomości od systemu, oceniając zawodników. Preprocessor Agent ten dokonuje wstępnej obróbki danych od użytkownika przygotowując je do dalszej obróbki przez kolejnych agentów. Watchdog Wartownik pilnujący czy agent/ci (którego/rych pilnuje) są w dobrym stanie i czy potwierdzają przetworzenie przyjętych wiadomości. Database Opcjonalny agent który służy do komunikacją z bazą danych, z punktu widzenia systemu służącą głównie do logowania zaistniałych zdarzeń. CommunicationAPI Klasa abstrakcyjna będąca interfejsem do warstwy komunikacji między agentowej, będącej 6

warstwą abstrakcji ukrywającą kwestie implementacji przed agentami, pozwalającą na wygodną zmianę modelu pracy zespołu agentów poprzez wymianę implementacji na nową klasnę z niej dziedziczącą. StandardIO Implementacja komunikacji między agentowej bazująca na standardowym wejściu,wyjściu. Przydatna przy tworzeniu prostych zespołów oraz w procesie tworzenia poszczególnych agentów. SimpleQueue Implementacja komunikacji między agentowej której centrum tworzy zbiór kolejek fifo, po jednej dla każdej roli. Opis głównych metod receive_as(who, buf, len, flags) Służy do obierania wiadomości przez agentów. W parametrach kolejno podaje: who - jako przedstawiciel jakiej roli może obsłużyć wiadomość, buf bufor w którym może ją przechować oraz len wielkość, flags są to flagi dotyczące komunikacji. send_to(towho, buf, len, flags) Wysyła wiadomości (o treści buf i długości len) do przedstawiciela roli towho z flagami dotyczącymi komunikacji flags. confirm(who, id, flags) Potwierdza przetworzenie wiadomości, wcześniej odebranej przez agenta. run() Jest to metoda służąca do uruchomienia agenta. W niej się znajduje główne ciało kodu agenta. Pętla obsługi wiadomości. process_message() Przetwarza odebraną wiadomość w specyficzny dla roli którą pełni agent, sposób. Wymagania niefunkcjonalne System ma działać na komputerze z systemem Linux w wersji co najmniej 2.4.x posiadającym 128MB pamięci operacyjnej wolnej zużywając maksymalnie 1GB zasobów dyskowych. Potrafić obsłużyć ruch 100 rozwiązań na godzinę. 7

Przyszła ewolucja systemu Zamieszczam poniżej kilka przykładowych możliwych rozszerzeń systemu, które mamy na uwadze podczas jego tworzenia. LiveCD Cały czas wraz z tworzeniem systemu są tworzone prototypy wersji LiveCD, które to mają być docelową platformą powszechnego użytku przeznaczoną dla grupy użytkowników niezaawansowanych w tym najmłodszych. Rozproszona implementacja warstwy komunikacji Odpowiednia implementacja warstwy komunikacji CommunicationAPI pozwala na pełne rozproszenie obliczeń i zrównoleglenie, dzięki czemu system może być w stanie znosić dowolnie duże obciążenia i mogąc obsłużyć zawody ogólnopolskie bądź ogólnoświatowe. (Przy odpowiedniej liczbie węzłów obliczeniowych). Szyfrowanie transmisji może być bardzo użyteczne przy tworzeniu systemu którego węzły obliczeniowe będą się komunikować między sobą przez internet bądź w nieodizolowanej fizycznie sieci lokalnej. (Preferowane technologie: OpenTLS, OpenSSL) Uwierzytelnianie węzłów obliczeniowych Zastosowanie technologi kluczy asymetrycznych może pozwolić nie tylko na zabezpieczenie transmisji (jak w poprzednim punkcie) ale również na uzwierzytelnianie posczególnych węzłów obliczeniowych, co może skutkować podwyższoną ochroną przed atakami typu hijacking, dos i innych. (Preferowane technologie: OpenTLS, OpenSSL) Więcej implementacji poszczególnych modułów Większa ilość zróżnicowanych implementacji poszczególnych modułów systemu (w szczególności agentów i CommunicationAPI) pozwoli na zwiększenie gamy zastosowań systemu, jak np. na użycie w systemach e-learning-owych, czy też na przeprowadzanie konkursów z innych dziedzin, jak np. fizyka. 8