Webes alkalmazások fejlesztése 2. előadás. Kliens-szerver rendszerek megvalósítása (TCP/IP)

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Webes alkalmazások fejlesztése 2. előadás. Kliens-szerver rendszerek megvalósítása (TCP/IP)"

Átírás

1 Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 2. előadás Kliens-szerver rendszerek megvalósítása (TCP/IP) Giachetta Roberto

2 Hálózati kapcsolatok Alkalmazások hálózaton át történő kommunikációjának két módja van: kapcsolat-orientált: a kapcsolatban két végpont, egy kliens és egy szerver vesz részt, amelyek között a kapcsolat kölcsönös elfogadáson ( kézrázáson ) alapul erre szolgál a Transfer Control Protocol (TCP) biztonságos (az adatok célba érnek), de lassú kapcsolat-mentes: a két végpontnak nincs tudomása egymásról erre szolgál a User Datagram Protocol (UDP) gyors, de nem biztonságos ELTE IK, Webes alkalmazások fejlesztése 2:2

3 Hálózati kapcsolatok A.NET keretrendszerben a hálózati kommunikációt biztosító osztályok a System.Net névtérben helyezkednek el A keretrendszer két absztrakciós réteget is biztosít: a magasabb szintű absztrakciós rétegen a protokollnak megfelelő osztályok foglalnak helyet (TcpClient, TcpListener, UdpClient), amelyek lehetőséget adni a hálózati kapcsolat folyam-alapú kezelésére (NetworkStream) az alacsonyabb szintű rétegen a protokoll-független kapcsolati osztály (Socket) segítségével tudunk direkt kapcsolatot létesíteni ELTE IK, Webes alkalmazások fejlesztése 2:3

4 TCP kommunikáció A TCP kliens objektum (TcpClient) a klienskezeléshez használható a kliens és a szerver oldalon is a Connect metódussal csatlakozhatunk egy megadott hálózati pontra (IP cím, port), a kapcsolatot a Close metódussal zárjuk a kapcsolat állapotát a Connected tulajdonsággal ellenőrizhetjük Pl.: TcpClient cl = new TcpClient(); cl.connect(ipaddress.parse(" "), 6500); // kapcsolódás if (cl.connected) { } // ha sikerült ELTE IK, Webes alkalmazások fejlesztése 2:4

5 TCP kommunikáció A TCP szerver objektum (TcpListener) a szerveren figyeli a csatlakozási kérelmeket példányosításkor megadjuk, mely portot figyelje, és mely cím(ek)ről fogadja a kéréseket (ha bármely címről fogadunk kéréseket, használhatjuk az IPAddress.Any értéket) a szerver a Start művelettel indítható és a Stop metódussal állítható le a szerver fogadhat csatlakozásokat az AcceptTcpClient metódussal, amely visszaadja a kliens példányt, és onnantól azon keresztül kommunikálhatunk a klienssel ELTE IK, Webes alkalmazások fejlesztése 2:5

6 TCP kommunikáció a csatlakozó távoli végpont információi elérhetőek a Client.RemoteEndPoint tulajdonságon keresztül Pl.: TcpListener ls = new TcpListener(IPAddress.Any, 6500); // hallgatás a 6500-as porton, bármely címre ls.start(); TcpClient client = ls.accepttcpclient(); // fogadunk egy csatlakozást // client.client.remoteaddress megadja a távoli // végpontot ls.stop(); // szerver leállítása ELTE IK, Webes alkalmazások fejlesztése 2:6

7 TCP kommunikáció A kapcsolattal létrejön egy hálózati adatfolyam (NetworkStream), amelyet a kliens GetStream műveletével kérhetünk le az adatfolyamra felváltva írhatunk, illetve olvashatunk bináris tartalomhoz használhatjuk az író/olvasó (Read, Write) műveleteket szöveges tartalomhoz használhatjuk az adatfolyam író/olvasó típusokat (StreamReader, StreamWriter), ahol a megszokott műveletekkel írhatunk/olvashatunk tartalmat (Read, ReadLine, Write, ) a tartalom nem kerül automatikusan elküldésre, csak a Flush utasítás kiadása után ELTE IK, Webes alkalmazások fejlesztése 2:7

8 TCP kommunikáció Pl.: NetworkStream stream = cl.getstream(); // hálózati folyam lekérdezése StreamWriter writer = new StreamWriter(stream); // adatfolyam író példányosítása writer.writeline("hello Network!"); // üzenet írása writer.flush(); // üzenet küldése StreamReader reader = new StreamReader(stream); // adatfolyam olvasó példányosítása String answer = Reader.ReadLine(); // válasz kiolvasása ELTE IK, Webes alkalmazások fejlesztése 2:8

9 TCP kommunikáció kliens TcpClient Connect szerver TcpListener GetStream AcceptTcpClient TcpClient NetworkStream StreamReader StreamWriter ELTE IK, Webes alkalmazások fejlesztése 2:9

10 Példa Feladat: Készítsünk egy egyszerű visszhangot biztosító kliensszerver rendszert. a szerver konzol felületű alkalmazás, amely várja a csatlakozásokat, minden fogadott üzenetet kiír, majd visszaküldi a kliensnek (a szerver minden lecsatlakozás után megkérdezi, hogy leállítjuk-e) a kliens szintén konzol felületű alkalmazás, amelyben üzeneteket küldhetünk a szervernek, és kiírja a képernyőre a szervertől kapott visszhangot (a kliensből nem lehet kilépni, folyamatosan várja a bemenetet) mindkét esetben egy-egy objektum felel a tevékenységért (Client és Server), amelyeket a Run metódussal futtatunk ELTE IK, Webes alkalmazások fejlesztése 2:10

11 Példa Megvalósítás (Server.cs): try { while (true){ String message = reader.readline(); Console.WriteLine("Fogadott üzenet: " + message); writer.writeline(message); writer.flush(); // üzenet elküldése } } catch { // sikertelen olvasás, ekkor megszakadt // az adatfolyam client.close(); // kapcsolat bezárása } ELTE IK, Webes alkalmazások fejlesztése 2:11

12 Tervezési szempontok A kliens-szerver architektúra fontos szerepet játszik olyan esetekben, amennyiben egyes gépek között kommunikációt akarunk megvalósítani, globális erőforrásokat (pl. adatbázis) használnánk erőforrás-igényes műveleteket központilag hajtanánk végre Kliens tervezési szempontjai: üzemmódok: online, offline csatlakozás módja: automatikus, manuális kritikus tényezők: szerver nem elérhetőségének, leállásának, túlterheltségének kezelése ELTE IK, Webes alkalmazások fejlesztése 2:12

13 Tervezési szempontok A szerver tervezési szempontjai: működés: aktív (maga is kezdeményez kommunikációt a kliensekkel), passzív (csupán a kliensek kéréseit dolgozza fel, majd válaszol) felhasználói felület: konzol, grafikus, vagy nincs kezelés: automatikus, manuális kritikus tényezők: teherbírás, rendelkezésre állás közös erőforráshoz való hozzáférés (párhuzamosítás miatt kölcsönös kizárást igényel) eseménynaplózás (pl. adatbázisban, vagy rendszer eseménynaplóban) ELTE IK, Webes alkalmazások fejlesztése 2:13

14 Tervezési szempontok Egy kliens-szerver rendszer esetén elkerülhetetlen a párhuzamosítás a szervernek egyszerre több klienst is ki kell szolgálnia a kliens nem blokkolódhat a kommunikáció során A párhuzamosításért a System.Threading névtér típusai használhatóak, alapvetően két lehetőségünk van: a szál (Thread) alacsony szinten biztosítja egy adott tevékenység (metódus) párhuzamos futtatását a taszk (Task) egy magasabb szintű megoldás, amely egy tevékenység jövőbeli végrehajtásának ütemezését és futtatását biztosítja ELTE IK, Webes alkalmazások fejlesztése 2:14

15 Párhuzamosítás Szálak esetén egy metódust adunk meg, amelyet a szál lefuttat a futtatást a Start művelettel érjük el a megszakítást az Abort metódussal kezdeményezhetjük, ám ez nem terminálja a szálat, hanem kivételt (ThreadAbortException) vált ki állapota az IsAlive és ThreadState tulajdonságokkal kérhetjük le lehetőségünk várakozni a szál lefutására a Join metódussal bármely szál szüneteltethető a Thread.Sleep(<idő>) metódussal ELTE IK, Webes alkalmazások fejlesztése 2:15

16 Párhuzamosítás Pl.: private void Process(){ // futtatandó tevékenység Thread.Sleep(1000); // altatás 1 másodpercre } Thread mythread = new Thread(new ThreadStart(Process)); // szál példányosítása a megadott tevékenységre mythread.start(); // szál indítása mythread.join(); // várakozás a szál lefutására ELTE IK, Webes alkalmazások fejlesztése 2:16

17 Párhuzamosítás A taszkok lambda-kifejezésként megadott tevékenységet (Action), vagy függvényt (Func) tudnak végrehajtani függvény esetén a taszknak ismernie kell az eredmény típusát, ezt sablonként adjuk meg a taszk futtatható egy lépésben (Task.Run), vagy létrehozható, és később elindítható (Start), vagy használható egy külön gyártó objektum (Task.Factory.StartNew) kezelhető az állapota (Status, IsCanceled, IsCompleted) a taszk eredményét a Result tulajdonságtól kérhetjük le (ekkor a program várakozik az eredmény megszületésére) ELTE IK, Webes alkalmazások fejlesztése 2:17

18 Párhuzamosítás Pl.: private void Process(){ } // futtatandó tevékenység private void RunProcess() { } Task.Run(() => Process()); // a tevékenység lambda-kifejezését adjuk meg, // és taszkban futtatjuk ELTE IK, Webes alkalmazások fejlesztése 2:18

19 Párhuzamosítás Pl.: private Int32 Process(){ } // eredményt adó tevékenység private void RunProcess() { // aszinkron művelet } Int32 result = Task.Run(() => Process()).Result; // taszk lefuttatása és az eredmény bevárása ELTE IK, Webes alkalmazások fejlesztése 2:19

20 Párhuzamosítás Pl.: private Int32 Process(){ } // eredményt adó tevékenység private void RunProcess() { Task<Int32> mytask = new Task<Int32>(() => Process()); // taszk legyártása tevékenység megadással mytask.start(); // taszk indítása Int32 result = mytask.result; // az eredmény bevárása } ELTE IK, Webes alkalmazások fejlesztése 2:20

21 Példa Feladat: Módosítsuk az előző alkalmazást úgy, hogy párhuzamosan tudja fogadni a klienseket. a szervert alakítjuk át úgy, hogy minden klienskommunikáció kezelése külön taszkba kerüljön magát a hallgatózást is áthelyezhetjük egy taszkba, így a szerver nem kérdezi meg minden kliens csatlakozása esetén, hogy ki szeretnénk-e lépni, hanem mi döntjük el, mikor szakítjuk meg a futtatást ügyelni kell arra, hogy hallgatózás közben a TcpListener leállítása SocketException kivételt okoz ELTE IK, Webes alkalmazások fejlesztése 2:21

22 Példa Megvalósítás (Server.cs): public void Run(){ Task.Run(() => { // új taszk a szerver futtatásához try { while (true) { } } catch (SocketException) { } // ha menet közben leállítjuk a szervert Console.WriteLine("Szerver leállítva."); }); ELTE IK, Webes alkalmazások fejlesztése 2:22

23 Példa Megvalósítás (Server.cs): Console.WriteLine("Kilépés billentyűleütésre."); // kilépés Console.ReadKey(); _TcpListener.Stop(); // szerver leállítása } private void HandleCommunication(TcpClient client){ Task.Run(() => { // új taszk a klienssel való kommunikációhoz }); } ELTE IK, Webes alkalmazások fejlesztése 2:23

24 Párhuzamosítás A párhuzamosítás elérhető aszinkron (async) tevékenységek használatával is a taszkok futása bevárható az await kulcsszóval, pl.: private async void RunProcess() { // aszinkron művelet Int32 result = await Task.Run(() => Process()); // az eredmény bevárása } számos beépített metódus rendelkezik aszinkron változattal (pl. ConnectAsync, ReadLineAsync), amelyek szintén bevárhatóak ELTE IK, Webes alkalmazások fejlesztése 2:24

25 Párhuzamosítás grafikus felületen Amennyiben az alkalmazás párhuzamos szálon is futtat tevékenységet, ügyelni kell arra, hogy az nem férhet hozzá a grafikus felülethez, csak szinkronizálást követően: szál (Thread) és aszinkron művelet esetén a Dispatcher osztály biztosítja a szinkronizációt, pl.: Dispatcher.CurrentDispatcher.BeginInvoke( new Action(() => { })); taszk esetén futtathatjuk a teljes tevékenységet az előre megadott szinkronizációs kontextusban, ami így a felület szálán fut végrehajtódni más tekintetben is paraméterezhető a taszk (pl. megszakítás engedélyezése) ELTE IK, Webes alkalmazások fejlesztése 2:25

26 Taszkok paraméterezése A taszk megszakítását a CancellationToken biztosítja a token a CancellationTokenSource típusból kérhető le, majd a Cancel() metódussal kezdeményezhető a leállítás ez nem szakítja meg automatikusan a működést, csak egy jelzést ad az IsCancellationRequested tulajdonsággal kérhetjük le az állapotot, és zárhatjuk le a taszk működését A taszk viselkedését a TaskCreationOptions felsorolási típus adja meg, pl. megadhatunk pártatlan ütemezésre törekvést (PrefairFairness), illetve jelezhetjük, hogy hosszan futó taszkról van szó (LongRunning) ELTE IK, Webes alkalmazások fejlesztése 2:26

27 Taszkok paraméterezése Pl.: CancellationTokenSource source = new CancellationTokenSource(); // tokenforrás létrehozása Task.Run(() => { if (source.iscancellationrequested) // ha kérték a megszakítást return; // megszakítjuk a futást }, source.token); // megadjuk a megszakító tokent ELTE IK, Webes alkalmazások fejlesztése 2:27

28 Taszkok paraméterezése Taszkok szinkronizálását a TaskScheduler típus biztosítja a statikus FromCurrentSynchronizationContext() metódus az aktuális szálba történő szinkronizálást fogja biztosítani paraméterként megadhatjuk a taszknak Általában nem a tevékenységet szeretnénk szinkronizálni, hanem a felülethez történő hozzáférést, ehhez: futtathatunk egy belső, szinkron taszkot a taszk befejezte után lefuttathatjuk még egy tevékenységet, ehhez a ContinueWith( ) metódust használhatjuk, amely sorosítja a taszkok működését ELTE IK, Webes alkalmazások fejlesztése 2:28

29 Taszkok paraméterezése Pl.: TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext(); // a visszaszinkronizálás biztosítása Task.Factory.StartNew(() => { },,, scheduler) // a taszk szinkron fog futni Task.Factory.StartNew(() => { }).ContinueWith(() => { label.text = "Ready." }, scheduler); // a taszk párhuzamosan fut, majd ha végez // lefuttat egy szinkron tevékenységet, így // biztonságosan írhatunk a felületre ELTE IK, Webes alkalmazások fejlesztése 2:29

30 Példa Feladat: Készítsünk egy kliens-szerver alapú csevegőszobát. a kliens egy WPF grafikus felületű alkalmazás, ahol a felhasználó előbb csatlakozik a szerverhez az IP cím és felhasználónév megadásával, majd írhat a közös szobába a kliens MVVM architektúrában építjük fel, a modell feladata a hálózatkezelés (NetworkManager), a bejövő üzeneteket eseménnyel továbbítja a szerver konzol felületű alkalmazás, amely kezeli a klienseket, továbbítja az üzeneteket az üzeneteket már a kliens szintjén összeállítjuk (felhasználónév, időpont, szöveg), egyszerű szövegként továbbítjuk ELTE IK, Webes alkalmazások fejlesztése 2:30

31 Példa Tervezés (ChatRoom.Client): ELTE IK, Webes alkalmazások fejlesztése 2:31

32 Példa Tervezés (ChatRoom.Client): class Client - _client :TcpClient - _reader :StreamReader - _writer :StreamWriter Model::NetworkManager + Close() :void + Connect(String, Int32) :void + NetworkManager() - NetworkManager_ConnectionChanged(object, EventArgs) :void - OnConnectionChanged() :void - OnMessageReceived(String) :void - ReadMessages() :void + SendMessage(String) :void «event» + ConnectionChanged() :EventHandler + MessageReceived() :EventHandler<MessageEventArgs> «property» + IsConnected() :Boolean -_Manager ViewModelBase ViewModel::ChatRoomViewModel - _connectcommand :DelegateCommand - _manager :NetworkManager - _sendcommand :DelegateCommand + ChatRoomViewModel() - InsertMessage(String) :void - Manager_ConnectionChanged(object, EventArgs) :void - Manager_MessageReceived(object, MessageEventArgs) :void «property» + Address() :String + CanConnect() :Boolean + ConnectCommand() :ICommand + CurrentText() :String + IsConnected() :Boolean + Messages() :ObservableCollection<String> + SendCommand() :ICommand + UserName() :String ELTE IK, Webes alkalmazások fejlesztése 2:32

33 Példa Tervezés(ChatRoom.Server): class Server ChatServer - _clients :List<TcpClient> - _isrunning :Boolean - _listener :TcpListener - _writers :List<StreamWriter> + ChatServer() - HandleClient(TcpClient) :void + Start() :void + Stop() :void Program - Main(string[]) :void ELTE IK, Webes alkalmazások fejlesztése 2:33

34 Példa Megvalósítás (NetworkManager.cs): private void ReadMessages(){ TaskScheduler scheduler = ; // a visszaszinkronizáláshoz a jelenlegi // szálba Task.Factory.StartNew(() => { }, TaskCreationOptions.LongRunning).ContinueWith(_ => OnConnectionChanged(), scheduler); // megadjuk a később lefuttatandó // tevékenységet } ELTE IK, Webes alkalmazások fejlesztése 2:34

35 Az erőforrásokhoz való hozzáférés megvalósítása A szerveren a közös erőforrások (pl. adatbázis) kezelése párhuzamos környezetben kölcsönös kizárást követel, nehogy inkonzisztens állapotba kerüljön az erőforrás Ennek több lehetősége is adott, pl.: szemafor (Semaphor), amely adott programsorokat tud kölcsönösen kizártan futtatni monitor (Monitor) használata, amely egy adott objektumhoz biztosít kölcsönösen kizárt hozzáférést (ugyanez rövidítve a lock kulcsszó) szinkronizált művelet, amely a művelethez való párhuzamos hozzáférést zárja ki (MethodImplOptions.Synchronized) ELTE IK, Webes alkalmazások fejlesztése 2:35

36 Az erőforrásokhoz való hozzáférés megvalósítása Pl.: private Object resource; // erőforrás lock(resource){ // kritikus szakasz az erőforrásra, amíg valaki // bent van a szakaszban ugyanezzel az // objektummal, más nem léphet be } // kritikus szakasz vége Adatbázisokhoz való hozzáférés esetén maga az adatbázisszintű végrehajtás szálbiztos, de a programban való végrehajtás nem (így pl. ha minden szál külön entitásmodell példányt használ, nem kell kritikus szakasz) ELTE IK, Webes alkalmazások fejlesztése 2:36

37 A kommunikációs csatorna A kliens és szerver közti kommunikációban byte sorozatokat közvetítünk, de magasabb szinten összetett adatokat közlünk magának az üzenetnek is többnyire van típusa (pl. bejelentkezés, játék indítása, ), amely az üzenetet nyitja és meghatározza további tartalmat kliens üzenettípus tartalom szerver a.net keretrendszerben biztosított a hálózati kapcsolat csatorna alapú kezelése (NetworkStream), amely lehetővé tesz szöveges adatközlést, alacsonyabb szinten csak Byte[] tartalom közölhető ELTE IK, Webes alkalmazások fejlesztése 2:37

38 A kommunikációs csatorna A kommunikáció lehetséges megoldásai: szöveges: a tartalmat valamilyen elhatároló jellel (pl.: ;,, $) választjuk el egymástól általános, rövid, de összetett üzeneteknél nagyon bonyolult sorozatot eredményezhet pl.: Text User01 User10 Hello friend! szérializált (objektumszérializáció alkalmazásával): könnyen végrehajtható, de az osztályszerkezetet a kliensnek és a szervernek is ismernie kell ELTE IK, Webes alkalmazások fejlesztése 2:38

39 A kommunikációs csatorna XML alapú: a tartalom objektumhierarchiának megfelelően, vagy akár tetszőlegesen felépíthető testre szabható, könnyen olvasható, általános megoldás pl.: <Message Type="Text" SenderName="User01" TargetUser="USer10"> Hello friend! </Message> XML-szérializációval könnyen végrehajtható, de az osztályoknak megegyező felépítéssel kell rendelkeznie a kliens és a szerver oldalon ELTE IK, Webes alkalmazások fejlesztése 2:39

40 XML szérializáció A.NET keretrendszer több módszert is kínál XML adatok kezelésére, egyike az XML formátumú objektumszérializáció az osztályokat, illetve tulajdonságokat attribútumokkal jelöljük meg, amely megadja XML-beli szerepüket (XmlRoot, XmlElement, XmlAttribute) a típusok egymásba ágyazhatóak (XmlInclude( ) attribútum segítségével) az XmlSerializer típus biztosítja a szérializációt egy megadott adatfolyamba ha szeretnénk bináris formában megkapni az XML-t, akkor MemoryStream segítségével elvégezhető az átalakítás ELTE IK, Webes alkalmazások fejlesztése 2:40

41 XML szérializáció Pl.: [XmlRoot] // XML gyökér elem class Message { [XmlAttribute] // XML attribútum public Int32 Code { get; set; } [XmlElement] // XML beágyazott elem public String Content { get; set; } }; // XMl szérializálható típus a megfelelő // attribútumokkal Message m = new Message { Code = 1, Content = "Hello World!" }; ELTE IK, Webes alkalmazások fejlesztése 2:41

42 XML szérializáció Pl.: MemoryStream stream = new MemoryStream(); // memóriabeli adatfolyam XmlSerializer ser = new XmlSerializer(typeof(message)); // szérializáló a megadott típusra serializer.serialize(stream, message); // szérializáció megadott adatfolyamba, a // keletkezett XML: // <Message Code = "1"> // Hello World! // </Message> Byte[] data = stream.toarray(); // az XML bináris alakban ELTE IK, Webes alkalmazások fejlesztése 2:42

43 Példa Feladat: Módosítsuk az előző rendszert úgy, hogy lehessen privát üzeneteket is küldeni a felhasználóknak. módosítjuk a klienst, megjelenik a privát küldés lehetősége, ehhez szükségünk van a felhasználók listájára (ebből kiválaszthatjuk a célszemélyt) így már összetettebb az üzenet, ezért nem szimpla szöveget, hanem XML-t küldünk a hálózaton, szérializációt használva, ehhez egy közös osztálykönyvtárat hozunk létre (ChatRoom.Communication) külön üzenetet biztosítunk a felhasználónév megadására, kijelentkezésre, valamint a felhasználók listájának elküldésére (minden változást követően) ELTE IK, Webes alkalmazások fejlesztése 2:43

44 Példa Tervezés: cmp ChatRoom Client Server Communication ELTE IK, Webes alkalmazások fejlesztése 2:44

45 Példa Tervezés: class ChatRoom - _client :TcpClient - _stream :NetworkStream Model::NetworkManager + Connect(String, Int32, String) :void + Logout() :void + NetworkManager() - NetworkManager_ConnectionChanged(object, EventArgs) :void - OnConnectionChanged() :void - OnMessageReceived(String, String, Boolean) :void - OnUserListReceived(String) :void - ReadMessages() :void + SendMessage(String, String) :void + SendMessage(String, String, String) :void «event» + ConnectionChanged() :EventHandler + MessageReceived() :EventHandler<MessageEventArgs> + UserListReceived() :EventHandler<UserListEventArgs> «property» + IsConnected() :Boolean Communication::Message + Deserialize(Byte[], Int32) :Message + Serialize(Message) :Byte[] «property» + Code() :MessageCode + SenderName() :String + TargetName() :String + Text() :String +Code «enumeration» Communication:: MessageCode Login = 101 Logout = 102 Text = 103 List = 110 Server::ChatServer - _clients :List<ChatClient> - _isrunning :Boolean - _listener :TcpListener - _lockedobject :Object + ChatServer() - HandleClient(ChatClient) :void - RemoveClient(ChatClient) :void - SendMessage(Message) :void - SendUserList() :void + Start() :void + Stop() :void -_Clients 0..* Server::ChatClient «property» + Client() :TcpClient + Stream() :NetworkStream + UserName() :String ELTE IK, Webes alkalmazások fejlesztése 2:45

46 Példa Megvalósítás (Message.cs): [XmlRoot] public class Message { [XmlAttribute] public MessageCode Code { get; set; } // kód } [XmlAttribute] public String SenderName { get; set; } // küldő [XmlElement] public String Text { get; set; } // szöveg ELTE IK, Webes alkalmazások fejlesztése 2:46

47 Példa Megvalósítás (Message.cs): public static Byte[] Serialize(Message message){ using (MemoryStream stream = new MemoryStream()) { // memória adatfolyam segítségével alakítjuk // át XmlSerializer serializer = new XmlSerializer(typeof(Message)); serializer.serialize(stream, message); // szérializáljuk a tartalmat XML-é return stream.toarray(); // kivesszük az adatokat byte-tömbként } ELTE IK, Webes alkalmazások fejlesztése 2:47

48 Példa Megvalósítás (Server.cs): TcpClient tcpclient = _Listener.AcceptTcpClient(); // várakozunk a kliensekre ChatClient chatclient = new ChatClient { Client = tcpclient, Stream = tcpclient.getstream() }; // kliens felvétele lock (_LockedObject) { // a kliensek listájához mindig kritikus // szakaszban férünk hozzá _Clients.Add(chatClient); } ELTE IK, Webes alkalmazások fejlesztése 2:48

49 Eseménynaplózás megvalósítása Célszerű, hogy a szerver a rajta futó tevékenységeket naplózza (pl. biztonsági, vagy hibakeresési okokból) A.NET alkalmazásoknak lehetőségük van a Windows eseménynaplóját használni az EventLog osztály segítségével a CreateEventSource metódussal létrehozhatunk új eseménynaplót az alkalmazásnév (forrás) és a napló nevének megadásával (számos megkötés van az elnvezésekre) a létezést ellenőrizhetjük a SourceExists metódussal bejegyzést a WriteEntry metódussal írhatunk, a bejegyzésnek különböző típusai lehetnek (Information, Error, ) ELTE IK, Webes alkalmazások fejlesztése 2:49

50 Eseménynaplózás megvalósítása az eseménynapló a Delete művelettel törölhető az utasítások kivételt dobnak, ha az alkalmazásnak nincs joga hozzáférni az eseménynapló információkhoz pl.: EventLog.CreateEventSource("MyServer", "MyServerLog"); // eseménynapló létrehozása EventLog serverlog = new EventLog(); serverlog.source = "MyServer"; // forrás serverlog.log = "MyServerLog"; // név serverlog.writeentry("szerver elindult.", EventLogEntryType.Information); // bejegyzés az eseménynaplóba ELTE IK, Webes alkalmazások fejlesztése 2:50

51 Windows szolgáltatások Amennyiben a szerver automatikusan tevékenykedik, nem szükséges, hogy felhasználói felülettel rendelkezzen Lehetőségünk van olyan alkalmazások készítésére, amelyek nem rendelkeznek felülettel, hanem a háttérben futnak, ezeket nevezzük szolgáltatásoknak (Windows Service) a szolgáltatásokat a vezérlőpulton keresztül kezelhetjük futásának módja direkt módon, vagy előre beállítottan kezelhető (pl. automatikus indítás/leállítás) a szolgáltatás kommunikálhat más programokkal, adatbázisokkal, illetve használhatja a rendszer eseménynaplóját bejegyzések rögzítésére ELTE IK, Webes alkalmazások fejlesztése 2:51

52 Windows szolgáltatások A szolgáltatásokat.net-ben külön projekttípusban (Windows Service) hozhatjuk létre a szolgáltatás ősosztálya a ServiceBase, ennek felül kell definiálnunk OnStart, OnStop metódusait, ezek megadják az indításnál/leállításnál végrehajtandó tevékenységeket a szolgáltatást a ServiceBase osztály Run metódusával futtathatjuk, amelyet a főprogram végez a szolgáltatást rendszerint egy ciklusban történő végrehajtás vezérli egy adott metódusban, amelyet kötelező külön szálban futtatni (mivel az indítás metódusának adott időn belül terminálnia kell, különben a rendszer megszakítja az indítást) ELTE IK, Webes alkalmazások fejlesztése 2:52

53 Windows szolgáltatások Pl.: public partial class MyService : ServiceBase { protected override void OnStart(string[] args){ // indítási tevékenységek eventlog.writeentry("szolgáltatás elindult.", EventLogEntryType.Information); // csak naplózással kommunikálunk } protected override void OnStop(){ // leállítási tevékenységek } } ELTE IK, Webes alkalmazások fejlesztése 2:53

54 Windows szolgáltatások telepítése A szolgáltatást az adott gépre telepítenünk kell a telepítéshez szükségünk van egy Installer objektumra, amely bekonfigurálja a szolgáltatást (esetleg inicializálja az eseménynaplót) két telepítőt kell felkonfigurálnunk: ServiceProcessInstaller: megadja a kezelő felhasználó adatait ServiceInstaller: megadja a szolgáltatás leírását, kezelésének módját (manuális, automatikus, ), függőségeit, az InstallUtil program segítségével telepíthetjük a szolgáltatást ELTE IK, Webes alkalmazások fejlesztése 2:54

55 Windows szolgáltatások telepítése Pl.: [RunInstaller(true)] // telepítőként való futtatás public partial class ServerInstaller : System.Configuration.Install.Installer { public ServerInstaller() { _serviceprocessinstaller.account = ServiceAccount.LocalService; // a szolgáltatás futtatója _serviceprocessinstaller.password = null; _serviceprocessinstaller.username = null; // a futtató azonosítója (mivel // rendszerfiók futtatja, ezért nem // szükségesek) ELTE IK, Webes alkalmazások fejlesztése 2:55

56 Windows szolgáltatások telepítése Pl.: _serviceinstaller.description = "My Server"; // szolgáltatás leírása _serviceinstaller.servicename = "MyServer"; // szolgáltatás neve _serviceinstaller.starttype = ServiceStartMode.Automatic; // automatikus indulás a rendszerrel Installers.AddRange(new Installer[] { _serviceprocessinstaller, _serviceinstaller}); // telepítők felvétele ELTE IK, Webes alkalmazások fejlesztése 2:56

57 Telepítő projektek A telepítés kezdeményezhető az InstallUtil program segítségével, vagy telepítő projekt (Setup Project) létrehozásával Visual Studio-ban a telepítőben megadhatjuk, mely projektek kimentét, függőségeit, valamint egyéb erőforrásait kívánjuk telepíteni szerkeszthetjük a fájlrendszer (File System), regisztrációs adatbázis (Registry), valamint fájltársítási (File Types) műveleteket, definiálhatunk telepítési feltételeket (Launch Conditions), valamint egyedi telepítési műveleteket (Custom Actions) szolgáltatás esetén az egyedi műveletek minden pontjához fel kell azt vennünk (a telepítő objektum futtatásához) ELTE IK, Webes alkalmazások fejlesztése 2:57

58 Példa Feladat: Módosítsuk az előző rendszert úgy, hogy a szerver, mint Windows szolgáltatás fusson a szerveren. a szerver felépítése passzol a szolgáltatás működési elvéhez (indítani, illetve leállítani van lehetőségünk, a futás külön szálban történik), ezért a ServerService projektbe átemeljük a szervert a szolgáltatásban eseménynaplózzuk az indítási, illetve leállítási folyamatokat, valamint elfogjuk az esetleges kivételeket létrehozzuk a megfelelő telepítő objektumot, valamint telepítő projektet ELTE IK, Webes alkalmazások fejlesztése 2:58

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20 Hálózatkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés 2013 1 / 20 Tartalomjegyzék 1 Hálózati Alapismeretek 2 System.Net Namespace 3 Socket Kezelés 4 Példa Tóth Zsolt

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 5. előadás Windows Forms alkalmazások párhuzamosítása Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 12. fejezet Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Cserép Máté

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 5. előadás Windows Forms alkalmazások párhuzamosítása Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu

Részletesebben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)

Részletesebben

Task-alapú párhuzamosítás C# környezetben

Task-alapú párhuzamosítás C# környezetben Task-alapú párhuzamosítás C# környezetben OE-NIK 1 Task Aszinkron elvégzett feladat A háttérben egy Thread vagy egy ThreadPool egy eleme van: magasabb absztrakciós szinten dolgozunk ThreadPool Gyakorlatilag

Részletesebben

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22 Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML

Részletesebben

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás

Részletesebben

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális

Részletesebben

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 7. előadás Autentikáció és autorizáció (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Autentikáció

Részletesebben

Számítógépes Hálózatok. 7. gyakorlat

Számítógépes Hálózatok. 7. gyakorlat Számítógépes Hálózatok 7. gyakorlat Gyakorlat tematika Hibajelző kód: CRC számítás Órai / házi feladat Számítógépes Hálózatok Gyakorlat 7. 2 CRC hibajelző kód emlékeztető Forrás: Dr. Lukovszki Tamás fóliái

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok. 5. gyakorlat Számítógépes Hálózatok 5. gyakorlat PYTHON ALAPOK V. Socket programozás, UDP 2 Óra eleji kiszh Elérés: https://canvas.elte.hu Számítógépes Hálózatok Gyakorlat 1 3 A kommunikációs csatorna kétféle típusa

Részletesebben

CAN alapú járműves adatokat megjelenítő szoftver fejlesztése

CAN alapú járműves adatokat megjelenítő szoftver fejlesztése CAN alapú járműves adatokat megjelenítő szoftver fejlesztése Beszámoló Dokumentum szám: D01-018-08-05 Dokumentum dátum: 2014. január 30. Szerző(k): Jánky Szabolcs (szabolcs.janky@inventure.hu) http://

Részletesebben

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL ) Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Tesztelés

Részletesebben

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok GY 6.hét Számítógépes Hálózatok GY 6.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu

Részletesebben

UNIX: folyamatok kommunikációja

UNIX: folyamatok kommunikációja UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 A kommunikáció

Részletesebben

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE Programozás III HÁLÓZATKEZELÉS A hálózatkezeléshez használatos java csomag: java. net Hol találkoztunk már vele? Pl.: URL cim = this.getclass().getresource("/zene/valami_zene.wav"); De pl. adott URL-ről

Részletesebben

Viczián István IP Systems http://jtechlog.blogspot.hu/ JUM XIX. - 2012. szeptember 18.

Viczián István IP Systems http://jtechlog.blogspot.hu/ JUM XIX. - 2012. szeptember 18. Viczián István IP Systems http://jtechlog.blogspot.hu/ JUM XIX. - 2012. szeptember 18. Két projekt Mindkettőben folyamatirányítás Eltérő követelmények Eltérő megoldások Dokumentum gyártási folyamat Üzemeltetés

Részletesebben

Programozás II. ATM példa Dr. Iványi Péter

Programozás II. ATM példa Dr. Iványi Péter Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési

Részletesebben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás - Pál László 12. ELŐADÁS Állomány-kezelés 2 Objektumorientált programozás - Pál László Mi a

Részletesebben

Konkurens TCP Szerver

Konkurens TCP Szerver A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.

Részletesebben

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez

Részletesebben

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 1. előadás Webes alkalmazások és biztonságuk 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

.NET alapszolgáltatások 2.

.NET alapszolgáltatások 2. 1.oldal.NET alapszolgáltatások 2. Directory-k kezelése (Példák : DirectoryDateTimeRunEnv alkalmazás) Ellenőrzés könyvtár létrehozása előtt: if (!Directory.Exists("test")) Directory.CreateDirectory("test");

Részletesebben

Számítógépes Hálózatok GY 7.hét

Számítógépes Hálózatok GY 7.hét Számítógépes Hálózatok GY 7.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu

Részletesebben

Ja J v a a v a há h l á óz ó a z t a i al a ka k l a maz ma á z s á o s k o Socket, URL

Ja J v a a v a há h l á óz ó a z t a i al a ka k l a maz ma á z s á o s k o Socket, URL Java hálózati alkalmazások Socket, URL Protokollok java.net: socket, URL (Uniform Resource Locators) Protokoll: számítógépek közötti kommunikáció szabályai Internet TCP/IP (Transport Control Protocol/Internet

Részletesebben

HÁLÓZATI HASZNÁLATI ÚTMUTATÓ

HÁLÓZATI HASZNÁLATI ÚTMUTATÓ HÁLÓZATI HASZNÁLATI ÚTMUTATÓ Nyomtatási napló tárolása hálózaton 0 verzió HUN A megjegyzések definíciója A Használati útmutatóban következetesen az alábbi szimbólumot használjuk: A megjegyzésekből azt

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Programozási nyelvek és módszerek Java Thread-ek

Programozási nyelvek és módszerek Java Thread-ek Programozási nyelvek és módszerek Java Thread-ek Laki Sándor lakis@inf.elte.hu 2006. május 3. 0-0 Szálak (Threads) Ahhoz, hogy egy mai rendszer m ködhessen több 10-100 folyamatnak kell futnia. A folyamatok

Részletesebben

NAV felé történő számla adatszolgáltatás a Nagy Utazás 3 programmal

NAV felé történő számla adatszolgáltatás a Nagy Utazás 3 programmal NAV felé történő számla adatszolgáltatás a Nagy Utazás 3 programmal 1. Központ képernyő beállítások A NAV webes felületén a Felhasználó regisztrációjakor megkapott Technikai felhasználó adatokat az Eszköz/Rendszeradatok/Központ

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

G Data MasterAdmin 9 0 _ 09 _ 3 1 0 2 _ 2 0 2 0 # r_ e p a P ch e T 1

G Data MasterAdmin 9 0 _ 09 _ 3 1 0 2 _ 2 0 2 0 # r_ e p a P ch e T 1 G Data MasterAdmin TechPaper_#0202_2013_09_09 1 Tartalomjegyzék G Data MasterAdmin... 3 Milyen célja van a G Data MasterAdmin-nak?... 3 Hogyan kell telepíteni a G Data MasterAdmin-t?... 4 Hogyan kell aktiválni

Részletesebben

Tartalomjegyzék. Előszó... 10

Tartalomjegyzék. Előszó... 10 Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.

Részletesebben

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

Webes alkalmazások fejlesztése 14. fejezet. Szolgáltatások adatkezelése (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Webes alkalmazások fejlesztése 14. fejezet. Szolgáltatások adatkezelése (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 14. fejezet Szolgáltatások adatkezelése (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának

Részletesebben

API tervezése mobil környezetbe. gyakorlat

API tervezése mobil környezetbe. gyakorlat API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás

Részletesebben

LabView Academy. 4. óra párhuzamos programozás

LabView Academy. 4. óra párhuzamos programozás LabView Academy 4. óra párhuzamos programozás Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét

Részletesebben

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Mi az IMDG? Nem memóriában futó relációs adatbázis NoSQL hagyományos relációs adatbázis Más fajta adat tárolás Az összes adat RAM-ban van, osztott

Részletesebben

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A Microsoft Visual Studio 2005 fejlesztőkörnyezet Vizuális és eseményvezérelt programozás BMF NIK A Microsoft Visual Studio 2005 fejlesztőkörnyezet Az integrált fejlesztőkörnyezet (IDE) alapelemei Projektek és megoldások Új projekt indítása, projektek

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész 3. előadás Protokollok Kommunikáció 2. rész RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg

Részletesebben

Mobil Partner telepítési és használati útmutató

Mobil Partner telepítési és használati útmutató Mobil Partner telepítési és használati útmutató Tartalom Kezdeti lépések... 2 Telepítés... 2 A program indítása... 6 Mobile Partner funkciói... 7 Művelet menü... 7 Kapcsolat... 7 Statisztika... 8 SMS funkciók...

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

Netis vezeték nélküli, N típusú, router

Netis vezeték nélküli, N típusú, router Netis vezeték nélküli, N típusú, router Gyors üzembe helyezési kézikönyv Típusok: WF-2409/WF2409/WF2409D A csomagolás tartalma (Vezeték nélküli, N típusú, router, hálózati adapter, ethernet kábel, kézikönyv,

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:

Részletesebben

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül

Részletesebben

ALKALMAZÁSOK ISMERTETÉSE

ALKALMAZÁSOK ISMERTETÉSE SZE INFORMATIKAI KÉPZÉS 1 SZE SPECIFIKUS IT ISMERETEK ALKALMAZÁSOK ISMERTETÉSE A feladat megoldása során valamely Windows Operációs rendszer használata a javasolt. Ebben a feladatban a következőket fogjuk

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Bevezetés Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu

Részletesebben

Számítógépes Hálózatok GY 3-4.hét

Számítógépes Hálózatok GY 3-4.hét Számítógépes Hálózatok GY 3-4.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu 1 Teszt canvas.elte.hu Kód:

Részletesebben

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Telepítési Kézikönyv

Telepítési Kézikönyv Intelligens Dokumentum Kezelő Rendszer Telepítési Kézikönyv 1/15. oldal Dokumentum áttekintés Dokumentum címe: doknet telepítési kézikönyv Dokumentum besorolása: szoftver telepítési leírás Projektszám:

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

Input Output Műveletek

Input Output Műveletek Input Output Műveletek Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 1 / 30 Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás,

Részletesebben

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra

Részletesebben

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Célkitűzés

Részletesebben

Hálózati operációs rendszerek II. OES biztonsági rendszere

Hálózati operációs rendszerek II. OES biztonsági rendszere Hálózati operációs rendszerek II. OES biztonsági rendszere OES biztonsági rendszere Többszintű rendszer Bejelentkezés Fájlrendszer edirectory Public Key Infrastructure (PKI) Szerver konzol Autentikáció

Részletesebben

Fontos megjegyzés: Telepítse először az illesztőprogramot, majd csatlakoztassa a VideoCAM ExpressII eszközt az USB porthoz!

Fontos megjegyzés: Telepítse először az illesztőprogramot, majd csatlakoztassa a VideoCAM ExpressII eszközt az USB porthoz! Fontos megjegyzés: Telepítse először az illesztőprogramot, majd csatlakoztassa a VideoCAM ExpressII eszközt az USB porthoz! Telepítés előtt olvassa el ezt a fontos megjegyzést! 1. A VideoCAM ExpressII

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

Bérprogram vásárlásakor az Ügyfélnek e-mailben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot.

Bérprogram vásárlásakor az Ügyfélnek e-mailben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot. Telepítés Bérprogram vásárlásakor az Ügyfélnek e-mailben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot. A programot honlapunkról, az alábbi linkről tudják letölteni:

Részletesebben

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS

Részletesebben

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás 1 Főbb jellemzők Hagyományosan 3 elemből (queue, printer, print server) álló rendszer Egyirányú kommunikáció a nyomtató és a munkaállomás

Részletesebben

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 7. előadás Autentikáció és autorizáció (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja Kommunikáció Folyamatok közötti kommunikáció Minden elosztott rendszer alapja Marshalling Alap primitívek Direkt, indirekt portok Blokkolás, nem blokkolás Pufferelés Megbízhatóság RPC Az RPC jellemzői

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát

Részletesebben

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan

Részletesebben

Kalapácsvetés 2016 szöveges

Kalapácsvetés 2016 szöveges Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat után

Részletesebben

Gyors üzembe helyezési kézikönyv

Gyors üzembe helyezési kézikönyv Netis vezeték nélküli, kétsávos router Gyors üzembe helyezési kézikönyv WF2471/WF2471D A csomagolás tartalma (Két sávos router, hálózati adapter, ethernet kábel, kézikönyv) 1. Csatlakozás 1. Kapcsolja

Részletesebben

Operációs rendszerek. Az X Window rendszer

Operációs rendszerek. Az X Window rendszer Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).

Részletesebben

Gyors telepítési kézikönyv

Gyors telepítési kézikönyv netis Vezeték nélküli, N router Gyors telepítési kézikönyv 1. A csomagolás tartalma (Vezeték nélküli,n Router, Hálózati adapter, Ethernet kábel, Kézikönyv) * A kézikönyv, az összes, Netis, 150Mbps/300Mbps

Részletesebben

Microsoft SQL Server telepítése

Microsoft SQL Server telepítése Microsoft SQL Server telepítése Az SQL Server a Microsoft adatbázis kiszolgáló megoldása Windows operációs rendszerekre. Az SQL Server 1.0 verziója 1989-ben jelent meg, amelyet tizenegy további verzió

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

Részletesebben

Sikeres végrehajtás(pass): ez azt jelenti, hogy a teszt rendben lefutott, és az ellenőrzési feltételek mind teljesültek.

Sikeres végrehajtás(pass): ez azt jelenti, hogy a teszt rendben lefutott, és az ellenőrzési feltételek mind teljesültek. 1 1. fejezet A JUnit tesztelési környezet A JUnit egy szabad forráskódú modultesztelő rendszer, amely Java programjaink automatikus teszteléséhez nyújt segítséget. A rendszer letölthető a http://junit.org

Részletesebben

FELHASZNÁLÓI DOKUMENTÁCIÓ ÜZEMBEHELYEZÉSI KÉZIKÖNYV

FELHASZNÁLÓI DOKUMENTÁCIÓ ÜZEMBEHELYEZÉSI KÉZIKÖNYV "REGISZTER" rendszerek FELHASZNÁLÓI DOKUMENTÁCIÓ ÜZEMBEHELYEZÉSI KÉZIKÖNYV A népesség-nyilvántartás helyi rendszeréhez IBM PC számítógépre 4.0 Verzió Készítette: eközig ZRT. Készült: 2011. március Jelen

Részletesebben

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás. 1.1. Szükséges névterek. 1.2. Attribútumok. 1.3.

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás. 1.1. Szükséges névterek. 1.2. Attribútumok. 1.3. Sorosítás (szerializáció) és helyreállítás Cél: a memóriában tárolt adatok egyszerű lemezre mentése és visszatöltése. A sorosítás során létrehozunk egy állományt és egy sorosítást kezelő objektumot. Ez

Részletesebben

S04-2 Elosztott alkalmazások készítése

S04-2 Elosztott alkalmazások készítése S04-2 Elosztott alkalmazások készítése Tartalom 1. Többrétegű architektúra, elosztott szerveroldal 2. Kommunikációs eszközök: távolieljárás-hívás és üzenet alapú infrastruktúra (point-to-point és publish-subscribe

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

Bánsághi Anna 2014 Bánsághi Anna 1 of 35 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 4. ELŐADÁS - ADATFOLYAMOK KEZELÉSE 2014 Bánsághi Anna 1 of 35 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Nézetek kezelése Sok esetben

Részletesebben

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 3. előadás Objektumrelációs adatkezelés (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server Kompozit alkalmazások fejlesztése IBM WebSphere Portal Server Portletek -összefoglaló Portlet: portálba integrálható kisalkalmazás Szabványok JSR 168 Portlet 1.0 (IBM API) JSR 286 Portlet 2.0 Dióhéjban

Részletesebben