APNVZ_7. Builder konstrukční návrhový vzor Broker distribuované systémy

Save this PDF as:
 WORD  PNG  TXT  JPG

Rozměr: px
Začít zobrazení ze stránky:

Download "APNVZ_7. Builder konstrukční návrhový vzor Broker distribuované systémy"

Transkript

1 APNVZ_7 Builder konstrukční návrhový vzor Broker distribuované systémy 1

2 Konstrukční návrhové vzory Pro tvorbu nových objektů se obyčejně v Javě používají konstruktory. Konstruktory jsou užitečné pokud klient ví, od které třídy chce vytvořit instanci a má k dispozici všechny hodnoty parametrů vyžadované konstruktorem. Konstrukční návrhové vzory jsou zaměřeny na případy, kdy uvedené základní předpoklady neplatí. 2

3 Konstrukční návrhové vzory Syntaktická a sémantická pravidla, která řídí chování konstruktorů: využívání implicitního konstruktoru, jméno konstruktoru musí být identické se jménem třídy, konstruktor může vyvolávat jiné konstruktory pomocí pseudoproměnné this() a super(), za podmínky, že je toto volání prvním příkazem v konstruktoru, 3

4 Konstrukční návrhové vzory výsledkem volání konstruktoru je instance třídy, zatímco výsledkem volání metody je cokoli, k vyvolání konstruktoru využíváme metodu new() nebo metody balíčku java.lang.reflection. 4

5 Builder Kontext: Vytváření objektů (instancí). Problém: Často se stává, že v době vytváření nového objektu (instance) nemáte k dispozici všechny informace pro jeho vytvoření. Řešení: Je výhodné, dovolit konstrukci objektu postupně po krocích, tak jak jsou dostupné jednotlivé parametry pro nově vytvářený objekt. 5

6 Builder Záměrem vzoru builder je přesunout logiku konstrukce objektu (instance) mimo třídu, ze které se má objekt vytvořit. 6

7 Standardní builder Požadovaná data pro vytvářený objekt, jsou začleněna do např. textového řetězce. Z důvodu analýzy řetězce je tento třeba uložit v původním stavu a analyzovat - parse. Zpočátku tedy není dostatek dat pro vytvoření objektu nutná analýza. Řešení, které nabízí vzor builder spočívá v uložení těchto dat do nějakého meziobjektu až do doby, kdy je program připraven požádat objekt v paměti o konstrukci cílového objektu z extrahovaných dat. 7

8 Standardní builder Předpokládejme, že dostáváme informace formou textového řetězce o pořádání ohňostrojů. Tyto informace obsahují: datum, počet diváků, město, cenu vstupenky informaci, zda je či není určeno vhodné místo konání. 8

9 Standardní builder Např. (uváděné hodnoty jsou ve stejném pořadí, ale uvedeny anglicky): Date, November 15, Headcount, 330, City, Dublin, DollarsPerHead, 8.45, HasSite, False 9

10 Standardní builder Úlohou je rozčlenit řetězec na dílčí položky a z nich vytvořit objekt třídy Reservace. Standardní postup: vytvoření prázdného objektu třídy Reservace postupné doplňování datových atributů, jak je budeme schopni získat z analyzátoru textu. Problémem jsou ale neúplné a nepřesné informace. Sémanticky nesprávné informace např. málo diváků. Vytvořené objekty třídy Reservace by měly být vždy platné objekty. 10

11 Standardní builder Řešením je, že objekt třídy Rezervace nebude vznikat ve třídě Rezervace, ale ve třídě ReservationBuilder, do které jsou dočasně postupně uloženy všechny atributy postupně získané činností analyzátoru. Pro vlastní řešení je výhodné, aby třída ReservationBuilder byla abstraktní s abstraktní metodou build(), která je detailněji specifikovaná v podtřídách UnforgivingBuilder, ForgivingBuilder. 11

12 Standardní builder Požadavek, co chce zákazník - textově oddělené hodnoty čárkou. Požadavek na minimální hodnoty např. MINHEAD = 25, MINTOTAL = $ 498,95. Parser rozloží text pomocí metody tokenize(), builder výsledky ukládá do paměti a následně vytvoří objekt za předpokladu: má všechna požadovaná data, jsou splněny omezující podmínky (sémantika). 12

13 Diagram tříd aplikace builderu 13

14 /* * Copyright (c) 2001, Steven J. Metsker. * Please use this software as you wish with the sole * restriction that you may not claim that you wrote it. */ Poznámky import java.util.*; import com.oozinoz.utility.dollars; /** * Subclasses of this abstract class validate a reservation's * attributes before constructing a Reservation object. */ public abstract class ReservationBuilder { public static final int MINHEAD = 25; public static final Dollars MINTOTAL = new Dollars(495.95); protected Date date = null; protected String city; protected int headcount; protected Dollars dollarsperhead = new Dollars(0); protected boolean hassite;

15 /** * Push a date into the future by rolling forward the year. indate a date to push forward a date like the one provided but with a year * that makes the date in the future */ public static Date futurize(date indate) { Calendar now = Calendar.getInstance(); Calendar then = Calendar.getInstance(); then.settime(indate); Poznámky while (then.before(now)) then.add(calendar.year, 1); return then.gettime(); /** * Construct a valid reservation from attributes that have * been presumably been set for this builder. Subclasses may * throw an exception if a valid reservation cannot * be formed. a valid reservation */ public abstract Reservation build() throws BuilderException;

16 public String getcity() { return city; Poznámky public void setcity(string value) { city = value; /** * The date for a reservation. */ public Date getdate() { return date; public void setdate(date value) { date = value; /** * The dollars/head that a customer will pay for a display. */ public Dollars getdollarsperhead() { return dollarsperhead; public void setdollarsperhead(dollars value) { dollarsperhead = value;

17 /** * Indicates whether a customer has a site in mind for a * display. */ public boolean hassite() { return hassite; Poznámky public void sethassite(boolean value) { hassite = value; /** * The number of people that a customer will guarantee for * a display. */ public int getheadcount() { return headcount; public void setheadcount(int value) { headcount = value;

18 /** * Copyright (c) 2001, Steven J. Metsker. * Please use this software as you wish with the sole * restriction that you may not claim that you wrote it. */ Poznámky import java.text.dateformat; import java.text.parseexception; import java.util.calendar; import java.util.date; import com.oozinoz.utility.dollars; public class ReservationParser { private ReservationBuilder builder; /** * Create a parser that will pass its results to the specified * builder. builder the builder to pass parameters to */ public ReservationParser(ReservationBuilder builder) { this.builder = builder; /** * Parse a reservation request, passing its information to the * builder. s the request */ public void parse(string s) throws ParseException { String[] tokens = s.split(",\\s*"); s*");

19 for (int i = 0; i < tokens.length; i += 2) { String type = tokens[i]; String val = tokens[i + 1]; if ("date".comparetoignorecase(type) == 0) { Calendar now = Calendar.getInstance(); DateFormat formatter = DateFormat.getDateInstance(); Date d = formatter.parse(val + ", " + now.get(calendar.year)); builder.setdate(reservationbuilder.futurize(d)); else if ("headcount".comparetoignorecase(type) == 0) builder.setheadcount(integer.parseint(val)); else if ("City".compareToIgnoreCase(type) == 0) builder.setcity(val.trim()); else if ("DollarsPerHead".compareToIgnoreCase(type) == 0) builder.setdollarsperhead(new Dollars(Double.parseDouble(val))); else if ("HasSite".compareToIgnoreCase(type) == 0) builder.sethassite(val.equalsignorecase("true")); Poznámky

20 /* * Copyright (c) 2001, Steven J. Metsker. */ import java.io.serializable; import java.util.date; Poznámky Třída Reservation import com.oozinoz.utility.dollars; public class Reservation implements Serializable { private Date date; private int headcount; private String city; private Dollars dollarsperhead; private boolean hassite; Reservation(Date date, int headcount, String city, Dollars dollarsperhead, boolean hassite) { this.date = date; this.headcount = headcount; this.city = city; this.dollarsperhead = dollarsperhead; this.hassite = hassite;

21 public String tostring() { StringBuffer sb = new StringBuffer(); sb.append("date: "); sb.append(date.tostring()); sb.append(", Headcount: "); sb.append(headcount); sb.append(", City: "); sb.append(city); sb.append(", Dollars/Head: "); sb.append(dollarsperhead); sb.append(", Has Site: "); sb.append(hassite); return sb.tostring(); Poznámky Třída Reservation public Date getdate() { return date; public int getheadcount() { return headcount; public String getcity() { return city; public Dollars getdollarsperhead() { return dollarsperhead; public boolean hassite() { return hassite;

22 /* * Copyright (c) 2001, Steven J. Metsker. */ /** * Signals a problem while building a reservation from its * attributes. */ public class BuilderException extends Exception { /** * Constructs a BuilderException with no detail * message. */ public BuilderException() { Poznámky BuilderException /** * Constructs a BuilderException with the * specified detail message. s detail message */ public BuilderException(String s) { super(s);

23 /** * Copyright (c) 2001, Steven J. Metsker. * * Please use this software as you wish with the sole * restriction that you may not claim that you wrote it. */ Poznámky UnforgivingBuilder public class UnforgivingBuilder extends ReservationBuilder { /** * Create a valid reservation. Throw an exception if any required * attribute of a reservation is missing. BuilderException */ public Reservation build() throws BuilderException { if (date == null) throw new BuilderException("Valid date not found"); if (city == null) throw new BuilderException("Valid city not found"); if (headcount < MINHEAD) throw new BuilderException("Minimum headcount is " + MINHEAD); if (dollarsperhead.times(headcount).islessthan(mintotal)) throw new BuilderException("Minimum total cost is " + MINTOTAL); return new Reservation(date, headcount, city, dollarsperhead, hassite);

24 /** * Copyright (c) 2001, Steven J. Metsker. * Please use this software as you wish with the sole * restriction that you may not claim that you wrote it. */ import com.oozinoz.utility.dollars; /** * This class builds a valid reservation from its attributes, * and fills in values where it can if the attributes are not * set. This builder must receive a city and a date, but it * will set reasonable values for the other reservation values. */ public class ForgivingBuilder extends ReservationBuilder { public Reservation build() throws BuilderException { boolean noheadcount = (headcount == 0); boolean nodollarsperhead = (dollarsperhead.iszero()); Poznámky ForgivingBuilder if (noheadcount && nodollarsperhead) { headcount = MINHEAD; dollarsperhead = sufficientdollars(headcount); else if (noheadcount) { headcount = (int) Math.ceil(MINTOTAL.dividedBy(dollarsPerHead)); headcount = Math.max(headcount, MINHEAD); else if (nodollarsperhead) { dollarsperhead = sufficientdollars(headcount); check(); return new Reservation(date, headcount, city, dollarsperhead, hassite);

25 private Dollars sufficientdollars(int headcount) { Dollars dollars = MINTOTAL.dividedBy(headcount); if (dollars.times(headcount).islessthan(mintotal)) dollars = dollars.plus(dollars.cent); return dollars; Poznámky protected void check() throws BuilderException { if (date == null) throw new BuilderException("Valid date not found"); if (city == null) throw new BuilderException("Valid city not found"); if (headcount < MINHEAD) throw new BuilderException("Minimum headcount is " + MINHEAD); if (dollarsperhead.times(headcount).islessthan(mintotal)) throw new BuilderException("Minimum total cost is " + MINTOTAL);

26 /* * Copyright (c) 2001, Steven J. Metsker. */ import com.oozinoz.reservation.*; Poznámky ShowUnforgiwing public class ShowUnforgiving { public static void main(string[] args) { /* Remove "DollarsPerHead, 9.95" to see exception message when /* that field is omitted. */ String sample = "Date, November 5, Headcount, 250, " + "City, Springfield, DollarsPerHead, 9.95, HasSite, False"; ReservationBuilder builder = new UnforgivingBuilder(); try { new ReservationParser(builder).parse(sample); Reservation res = builder.build(); System.out.println("Unforgiving builder: " + res); catch (Exception e) { System.out.println(e.getMessage()); Výsledek: Unparseable date: "November 5, 2009"

27 /* * Copyright (c) 2001, Steven J. Metsker. /* import com.oozinoz.reservation.*; Poznámky ShowForgiving public class ShowForgiving { public static void main(string[] args) { /* Remove "DollarsPerHead, 9.95" to see how that field is /* calculated if omitted. String sample = "Date, November 5, Headcount, 250, " + "City, Springfield, DollarsPerHead, 9.95, HasSite, False"; ReservationBuilder builder = new ForgivingBuilder(); try { new ReservationParser(builder).parse(sample); Reservation res = builder.build(); System.out.println("Forgiving builder: " + res); catch (Exception e) { System.out.println(e.getMessage()); Výsledek: Unparseable date: "November 5, 2009"

28 Shrnutí - Builder Vzor Builder odděluje konstrukci složitých objektů od jejich prezentace. To má okamžitý efekt v tom, že složitá výsledná třída je jednodušší. Třída builderu se zaměřuje na správnou konstrukci objektu a ponechává na výsledné (cílové) třídě zaměření se na vlastní operace validované instance. To má význam že kontrola platnosti dat se provádí před vlastním vytvořením instance. 28

29 Distribuované systémy Dva hlavní trendy ve vývoji technologií hardware: Počítačové systémy s multiprocesorovými operačními systémy Počítačová síť spojující stovky heterogenních počítačů Výhody distribuovaných systémů: Ekonomické. Počítačová síť s různými PC a pracovními stanicemi poskytuje lepší poměr cena/výkon než sálové (mainframe) počítače. Výkonnost a rozšiřitelnost. Počítačová síť je počítač, distribuované aplikace jsou schopné využívat zdroje dostupné v počítačové síti. 29

30 Distribuované systémy Distribuovaná podstata řešených aplikací. Sledují model Klient/Server. Spolehlivost. Multiprocesorový systém může havarovat bez účinku na zbytek systému. (Za předpokladu zálohování důležitých serverů). Nevýhody: Distribuované systémy vyžadují radikálně odlišný software než centralizované systémy. To je důvod proč se vyvinuly tři různé platformy: 30

31 Distribuované systémy CORBA obecná, trpící nedostatkem kompatibility.net orientovaná pouze na systému platformy Windows Java EE orientovaná pouze na jeden jazyk Javu. Cílem vzoru Broker je zevšeobecnění všech výše uvedených konkrétních řešení. Všechny tři platformy používají tzv. ORB (Object Requert Broker), který se liší. 31

32 Distribuované systémy Distribuovaný systém bude mít intuitivně komponenty, které jsou distribuované na různých počítačích. Na počítač, který hostí některé komponenty distribuovaného systému se odkazujeme jako na hostitelský (host). Koncept hostitelského počítače pak bude označovat všechny operační komponenty počítače, včetně hardware, síťového operačního systému a software. 32

33 Distribuované systémy Distribuovaný systém má více než jednu komponentu na více než jednom hostitelském počítači. Tyto komponenty se vzájemně ovlivňují, jsou ve vzájemné interakci. Komponenty potřebují poskytovat vzájemný přístup ke službám a potřebují být schopny si požádat o služby navzájem. 33

34 Distribuované systémy Teoreticky by komponenty mohly být propojeny navzájem pomocí primitiv síťového operačního systému. Prakticky by to bylo příliš složité pro mnoho aplikací. Middleware mezivrstva, která pomáhá s heterogenitou a distribucí. 34

35 Hostitelský počítač a distribuovaný systém Komponenta 1... Komponenta N Síťový operační systém Hardware Hostitelský počítač 35

36 Middleware v distribuovaném systému Komponenta 1... Komponenta N Middleware Síťový operační systém Hardware Hostitelský počítač 36

37 Úkoly middleware Middleware přemosťuje mezeru mezi síťovým operačním systémem a komponentami. Poskytuje navrhovateli vyšší úrovně abstrakce. Implementuje vyšší úrovně abstrakce založené na základních operacích (primitives), které poskytuje síťový operační systém. Zapouzdřuje složitost před návrhářem. 37

38 Typy middleware 1. Transakčně orientované middleware Toto middleware podporuje transakce přes různé distribuované databázové systémy. Využívá se v architekturách, kde komponenty jsou databázové aplikace. Používá dvou fázový commit protokol k implementaci distribuovaných transakcí. Open Group adoptovala standard pro Open Distributed Transaction Processing (DTP). 38

39 2. Middleware orientované na zprávy Message oriented middleware Podporuje komunikaci mezi distribuovanými systémy prostřednictvím výměny zpráv. Komponenty klient používají tyto systémy k posílání zpráv, aby požádaly o vykonání služby na komponentě serveru. Obsah zprávy obsahuje i parametry služby. Jiná zpráva je zaslaná klientovi od serveru, aby dodala výsledky služby. 39

40 2. Middleware orientované na zprávy Message oriented middleware Síla middleware orientovaného na zasílání zpráv je v podpoře asynchronního doručování zpráv, což je velmi přirozené. 40

41 3. Vzdálené volání procedur Remote Procedure Calls Vyvinuto počátkem 80. let firmou Sun Microsystem jako část platformy Open Network Computing. RPCs jsou operace, které mohou být vyvolány vzdáleně nad různými platformami hardware a operačních systémů. Systémy remote procedure call jsou základem objektově orientovaného middleware. 41

42 4. Objektově orientované middleware Toto middleware se vyvinulo více méně z myšlenky RPC (vzdálené volání procedur). Prvním z těchto systémů byl OMG produkt Common Object Request Broker Architecture CORBA. Microsoft přidal distribuované schopnosti svému Component Object Model (COM).NET Sun poskytl mechanismus pro Remote Method Invocation (RMI) v Javě. 42

43 Návrhový vzor Broker zprostředkovatel, jednatel Návrhový vzor Broker se používá ke strukturování distribuovaných softwarových systémů s oddělenými komponentami, které jsou spolu v interakci prostřednictvím vzdáleného volání služeb. Broker (zprostředkovatel) je zodpovědný za koordinaci komunikace jako např. zasílání požadavků, doručování výsledků a výjimek. 43

44 Návrhový vzor Broker Kontext: distribuované prostředí s možností heterogenních systémů s nezávisle spolupracujícími komponentami Problém: Vytvoření komplexního softwarového systému jako množiny oddělených, mezi sebou operujících komponent. Výsledkem je velká pružnost, udržovatelnost a zaměnitelnost. 44

45 Návrhový vzor Broker Rozdělením funkcionality do nezávislých komponent se systém stane potencionálně distribuovatelným a škálovatelným. Problémy návrhu komunikace komponent, závislost a omezení: závislost systému na mechanismu komunikace, klienti musí znát fyzické rozmístění serverů, omezení řešení na jeden programovací jazyk. Jsou třeba služby pro přidání, odstranění, aktivaci a lokalizaci komponent, které nejsou závislé na detailech specifikace systému. 45

46 Návrhový vzor Broker Z pohledu vývojáře by neměl být zásadní rozdíl mezi vývojem software pro centralizovaný systém nebo distribuovaný systém. Objektová aplikace by měla vidět pouze rozhraní poskytované objektem a neměla by vědět nic o implementačních detailech objektu eventuálně o jeho fyzickém umístění. 46

47 Návrhový vzor Broker Architektura vzor Broker by měla vybalancovat následující síly: Komponenty by měly být schopny zpřístupnit služby poskytované jinými komponentami prostřednictvím vzdálených volání služeb, které jsou transparentní k umístění (lokalizaci). Je třeba zabezpečit změnu, přidání resp. odstranění komponenty za běhu. Navržená architektura (vzor) by měl ukrýt systémové a implementační detaily od uživatelů komponent a služeb. 47

48 Řešení: Návrhový vzor Broker Zavést komponentu Broker, která dosáhne lepšího oddělení komponent klientů a serverů. Servery se registrují u brokerů a umožňují tak, aby jejich služby byly dostupné pro klienty prostřednictvím rozhraní metod. Klienti si zpřístupní funkcionalitu serverů zasláním požadavků prostřednictvím brokeru. 48

49 Návrhový vzor Broker Úloha Brokeru zahrnuje lokalizaci vhodného serveru, zasláním požadavků na server a přesun výsledků a výjimek ze serveru zpět klientovi. Využitím vzoru Broker, může aplikace jednoduše zpřístupnit distribuované služby zasláním volání zprávy vhodnému objektu, místo zaměření se na nízko úrovňovou komunikaci procesů. 49

50 Návrhový vzor Broker Vzor Broker (zprostředkovatel, dohodce) snižuje náročnost distribuované aplikace tím, že je pro vývojáře transparentnější. Využívá k tomu integrace dvou technologií: distribuované technologie a objektové technologie, v objektovém modelu jsou distribuované služby zapouzdřeny uvnitř objektů. 50

51 Struktura Brokeru Client-side Proxy -transfer message Broker -transfer message Server-side Proxy +packdata() +sendrequest() +return() +maineventloop() +registerservice() +acknowledgement() +findserver() +fincclient() +forwardrequest() +forwardresponse() +packdata() +callservice() +sendresponse() -calls -calls -calls Client +callserver() +starttask() +usebrokerapi() -users API Brodge +packdata() +forwardmessage() +transmitmessage() -users API Server +initialize() +entermainloop() +runservice() +usebrokerapi() 51

52 Komponenta Server Komponenta server implementuje objekty, které vystavují svoji funkčnost prostřednictvím rozhraní, které se skládá z operací a atributů. Tato rozhraní je dostupné buď prostřednictvím interface-definition-language (IDL), nebo prostřednictvím binárního standardu. Rozhraní typicky seskupují sémanticky blízké funkcionality. Existují dva druhy serverů: servery poskytující běžné služby mnoha aplikačním doménám; servery implementující specifickou funkcionalitu pro jednu aplikaci, doménu, nebo úlohu. 52

53 Komponenta Client Komponenty client jsou aplikace, které přistupují ke službám alespoň jednoho serveru. K vyvolání vzdálené služby klienti zašlou požadavek brokeru. Po provedení operace obdrží od brokeru výsledky, nebo výjimky. 53

54 Komponenta Client Interakce mezi komponentami klientů a serverů je založena na dynamickém modelu, který znamená, že servery mohou také působit jako klienti. Tento dynamický interakční model se liší od tradičního označení klient/server výpočtů v tom, že role klientů a serverů nejsou staticky definovány. 54

55 Komponenta Client Z pohledu implementace můžeme považovat klienty za aplikace a servery za knihovny. Všimněte si, že klienti nepotřebují znát umístění serverů, ke kterým přistupují. To je důležitá vlastnost, protože dovoluje přidání nových služeb a přesun existujících služeb na jinou adresu dokonce za běhu systému. 55

56 Komponenta Broker Komponenta broker je zprostředkovatel zodpovědný za rozeslání požadavků od klientů k serverům, stejně jako rozeslání odpovědí a výjimek zpět klientům. Komponenta broker musí mít nějaké prostředky pro adresaci příjemce požadavku založeném na jednotném systémovém identifikátoru. Broker poskytuje API klientům a serverům, jenž zahrnuje operace pro registraci serverů a pro vyvolání metod serveru. 56

57 Komponenta Broker Když přijde požadavek na server, který je udržován místní komponentou broker, tak broker předá požadavek přímo serveru. Není-li právě server aktivní, broker ho aktivuje. Všechny odpovědi a výjimky z prováděné služby jsou zaslány komponentou broker zpět klientovi, který vyslal požadavek. 57

58 Komponenta Broker Je-li daný server hostem jiné komponenty broker, místní broker nalezne cestu (route) ke vzdálenému brokeru a zašle požadavek používajíc tuto cestu. Je zde potřeba, aby brokery navzájem komunikovaly. V závislosti na požadavcích celého systému, mohou být do komponenty broker integrovány dodatečné operace jako name service nebo marshaling support. 58

59 Proxy na straně klienta Client-side proxies reprezentuje vrstvu mezi komponentami client a broker. Tato vrstva poskytuje transparentnost v tom, že vzdálený objekt se klientovi jeví jako lokální. Konkrétně proxies umožňují ukrývání detailů implementace od klienta jako např.: mezi procesorový komunikační mechanismus používaný pro přenos zpráv mezi klienty a brokery; tvorba a rušení paměťových bloků; řazení (marshaling) parametrů a výsledků. 59

60 Proxy na straně klienta V mnoha případech client-side-proxies převádějí objektový model, specifikovaný jako část brokeru, do objektového modelu programovacího jazyka použitého k implementaci klienta. 60

61 Proxy na straně serveru Server-side proxies je analogické k client-side proxies. Rozdílnost je v tom, že server-side proxies jsou zodpovědné za příjem požadavků, rozbalování příchozích zpráv a volání odpovídajících služeb. Jsou také použity pro řazení výsledků a výjimek před odesláním klientovi. 61

62 Komponenta Bridge Bridges jsou volitelné komponenty použité k ukrývání implementace detailů, když spolu komunikují dvě komponenty broker. Nejpoužívanější scénář použití ilustruje případ, kdy se komponenta server registruje u komponenty místní (lokální) broker: komponenta broker je odstartovaná v inicializační fázi systému. Vstoupí do smyčky ve které očekává příchod zpráv. uživatel, nebo nějaká jiná entita odstartuje komponentu server aplikace. Po inicializaci se server zaregistruje u komponenty broker. 62

63 Komponenta Bridge když komponenta broker dostane požadavek registrace od serveru, vybere si z ní všechny potřebné informace a ty si uloží. Tyto informace jsou využity pro nalezení a aktivaci příslušného serveru. Zpět serveru je poslána potvrzovací zpráva. Po obdržení potvrzovací zprávy od komponenty broker, server vstoupí do čekací smyčky na požadavky od klientů. 63

64 Dynamické chování vzoru Client Client-side Proxy Broker Server-side Proxy Server callserver sendrequest packdata forwardrequest findserver callservice unpackdata runservice forwardresponse packdata return findclient result unpackdata 64

65 Implementace 1. Definovat objektový model, nebo použít stávající model. 2. Definovat, který druh komponentní interoperability bude systém nabízet. Interoperabilita může být buď specifikovaná binárním standardem, nebo interface definition language (IDL). 3. Specifikovat API, které komponenta brokeru poskytuje pro spolupráci s klienty a servery. 4. Použít objekty proxy k ukrytí implementačních detailů od klientů a serverů. 5. Navrhnout komponentu broker. 6. Vytvořit překladač IDL. 65

66 Broker - varianty Přímo komunikující Broker System Po počáteční inicializaci klient komunikuje se serverem přímo. Systém Broker předávající zprávy Brokery poskytující rozhraní RPC jsou typickými představiteli. Servery užívají typ zprávy ke stanovení co musí dělat, místo poskytování služeb. Trader system. Standardně Broker zasílá zprávy pouze jednomu serveru. Tento systém je orientovaný na služby. Broker musí vědět, který server(y) poskytuje jaké služby. 66

67 Broker - varianty Adapter Broker System. Broker funguje jako dodatečná vrstva na serveru. Tato vrstva adapteru je zodpovědná za registraci serverů a interakci se servery. Doplněním více než jednoho adapteru, je možné podporovat různé strategie granularity serveru a jeho lokace. 67

68 Broker - varianty Callback Broker System. Reaktivní model je řízený událostmi, nedělá rozdíl mezi klienty a servery. Kdykoli přijde událost, broker vyvolá metodu callback komponenty, která je registrovaná, že reaguje na událost. Může vyvolat novou událost 68

69 Použití V objektových technologiích pro distribuované zpracování. Tento vzor je použit ke specifikaci Common Object Request Broker Architecture (Corba). Pro podporu interoperability je definován interface definition language (IDL). Java EE distribuovaná technologie firmy (Sun) Oracle..NET distribuovaná technologie firmy Microsoft. 69

70 Výhody Transparentnost umístění je umožněna tím, že komponenta broker je zodpovědná za vyhledání serveru podle jedinečného identifikátoru. Zaměnitelnost a rozšiřitelnost komponent. Portabilita systému s komponentou broker. Interoperabilita mezi různými systémy s komponentou broker. Znovupoužitelnost. 70

71 Slabá místa Omezená výkonnost. Nízká odolnost vůči chybám. Testování a ladění. 71

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Úvod do Web Services

Úvod do Web Services Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Úvod do CORBY. Svetlozara Arabadzhieva 6.12.2006

Úvod do CORBY. Svetlozara Arabadzhieva 6.12.2006 Úvod do CORBY Svetlozara Arabadzhieva 6.12.2006 6.12.2006 Co je to CORBA? Common Object Request Broker Architecture Definice: Jazykov ě nezávislý objektový model a specifikace vývojového prostředí pro

Více

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky 7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Jakub Čermák <jakub@jcermak.cz> http://www.jcermak.cz. Microsoft Student Partner

Jakub Čermák <jakub@jcermak.cz> http://www.jcermak.cz. Microsoft Student Partner Jakub Čermák http://www.jcermak.cz Microsoft Student Partner Úvod, příklady použití, trocha teorie Struktura aplikace Typy obecně, primitivní typy, speciální typy Podmínky, cykly, namespaces

Více

Zpracoval: houzvjir@fel.cvut.cz

Zpracoval: houzvjir@fel.cvut.cz Zpracoval: houzvjir@fel.cvut.cz 15. Návrhové vzory. Komponentový návrh, volná vazba versus těsná vazba. Oddělení politiky od mechanismu. Doménově specifické jazyky (DSL). (A7B36OMO) Obsah Návrhové vzory...

Více

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT Škola: Střední škola obchodní, České Budějovice, Husova 9 Projekt MŠMT ČR: EU PENÍZE ŠKOLÁM Číslo projektu: CZ.1.07/1.5.00/34.0536 Název projektu školy: Výuka s ICT na SŠ obchodní České Budějovice Šablona

Více

Cloudová Řešení UAI/612

Cloudová Řešení UAI/612 Cloudová Řešení UAI/612 Kontakt Ondřej Urbánek ondrej.urbanek@orchitech.cz Výuka 7.3. 2014 13:00 21.3.2014 13:00 11.4. 2014 13:00 24.5. 2014 13:00 Cloudová Řešení Co je to cloud? Co je pro něj charakteristické?

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

Vazba (volná, těsná) - míra znalosti jedné třídy*komponenty o druhé.

Vazba (volná, těsná) - míra znalosti jedné třídy*komponenty o druhé. Návrhové vzory. Komponentový návrh, volná vazba versus těsná vazba. Oddělení politiky od mechanismu. Návrh distribuovaných systémů s použitím webových služeb a servisně orientované architektury (SOA).

Více

UML: Unified Modeling Language

UML: Unified Modeling Language UML 1 UML: Unified Modeling Language Systém kombinace softwaru, hardwaru, dat a uživatelů, která umožňuje řešení konkrétního problému Vývoj systémů vytváření systémů pro klienta Vývoj probíhá na základě

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci Základy programovaní 4 (Java) Stream API Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/ZP4JV 5. listopad, 2014 1 / 10 Stream API Java 8 nový přístup k práci s kolekcemi

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

3. Třídy. Základní pojmy objektového programování. Třídy

3. Třídy. Základní pojmy objektového programování. Třídy 3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití Programové prostředky PC - 5 Informatika 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah: Vrstvy programového

Více

7.3 Diagramy tříd - základy

7.3 Diagramy tříd - základy 7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Vzdálený přístup k počítačům

Vzdálený přístup k počítačům Vzdálený přístup k počítačům jedna z nejstarších služeb vzdálený přístup k sálovým počítačům nejprve vzdálené terminály později terminálová emulace jako jedna ze služeb počítačové sítě současnost využíváno

Více

InternetovéTechnologie

InternetovéTechnologie 9 InternetovéTechnologie webové služby, SOA, služby, atd. Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Co je to webová služba - Webová služba je softwarový systém zkonstruovaný k podpoře interakce

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

MASSIV. Middleware pro tvorbu online her

MASSIV. Middleware pro tvorbu online her MASSIV Middleware pro tvorbu online her Obsah prezentace Úvod Prostředky poskytované Massivem Využití jádra Massivu v Demu Zhodnocení projektu Prezentace Dema Úvod Část 1. Tým projektu Massiv Zahájení

Více

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13 Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje

Více

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007 Bakalářská práce, FEL ČVUT Praha Vedoucí práce: Doc. Ing. Zdeněk Kouba, CSc. červenec 2007 1. Seznamte se s problematikou bezpečného zpřístupnění legacy datatabáze z Internetu za následujících omezujících

Více

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept

Více

VirtualBox desktopová virtualizace. Zdeněk Merta

VirtualBox desktopová virtualizace. Zdeněk Merta VirtualBox desktopová virtualizace Zdeněk Merta 15.3.2009 VirtualBox dektopová virtualizace Stránka 2 ze 14 VirtualBox Multiplatformní virtualizační nástroj. Částečně založen na virtualizačním nástroji

Více

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz) Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz) Autor: Radek Vystavěl Díl 12: Algebra Lineární transformace MATEMATIKA Lineární transformace, neboli přeet hodnoty x podle

Více

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19 3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,

Více

Co je Symantec pcanywhere 12.0? Hlavní výhody Snadné a bezpečné vzdálené připojení Hodnota Důvěra

Co je Symantec pcanywhere 12.0? Hlavní výhody Snadné a bezpečné vzdálené připojení Hodnota Důvěra Symantec pcanywhere 12.0 Špičkové řešení vzdáleného ovládání pro odbornou pomoc a řešení problémů Co je Symantec pcanywhere 12.0? Symantec pcanywhere, přední světové řešení vzdáleného ovládání*, pomáhá

Více

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah:

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah: Obsah: Testování... 1 Zadání příkladu... 1 Vytvoření kostry třídy... 1 Napsání testů... 2 Testy správnosti... 3 Testy výjimek... 3 Testy vztahů/závislostí... 4 Zdrojový text testu... 4 Spuštění testů...

Více

19. Projekt Adventura

19. Projekt Adventura Projekt Adventura strana 189 19. Projekt Adventura 19.1. Základní popis, zadání úkolu Pracujeme na projektu Adventura, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy Hra.

Více

System Center Operations Manager

System Center Operations Manager System Center Operations Manager Jan Vávra Solution Sales Professional Microsoft System Center Operations Manager End-to-End Service Management Proaktivní správa IT služeb Integrované monitorování distribuovaných

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

ABBYY Automatizované zpracování dokumentů

ABBYY Automatizované zpracování dokumentů ABBYY Automatizované zpracování dokumentů tradiční řešení OCR versus Cloud Jiří Dvořák ECM konzultant Světový leader v produktech pro zpracování dokumentů Individulání uživatelé Malé a střední společnosti

Více

7. Dynamické datové struktury

7. Dynamické datové struktury 7. Dynamické datové struktury Java poskytuje několik možností pro uložení většího množství dat (tj. objektů či primitivních datových typů) v paměti. S nejjednodušší z nich, s polem, jsme se již seznámili.

Více

Proměnné a datové typy

Proměnné a datové typy Proměnné a datové typy KAPITOLA 2 V této kapitole: Primitivní datové typy Proměnné Opakování Mezi základní dovednosti každého programátora bezesporu patří dobrá znalost datových typů. Ta vám umožní efektivní

Více

Windows je registrovaná obchodní známka firmy Microsoft v USA a v ostatních zemích.

Windows je registrovaná obchodní známka firmy Microsoft v USA a v ostatních zemích. Sun, Sun Microsystems, Java a všechny obchodní známky a loga obsahující Sun nebo Java jsou ochrannými známkami nebo registrovanými ochrannými známkami firmy Sun Microsystems, Inc. v USA a v ostatních zemích.

Více

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému. 1. B4. Počítačové sítě a decentralizované systémy Jakub MÍŠA (2006) Decentralizace a distribuovanost v architekturách počítačových sítí. Centralizovaná a distribuovaná správa prostředků, bezpečnostní politika

Více

Tvorba webových služeb

Tvorba webových služeb KAPITOLA 32 Tvorba webových služeb Už léta bojují softwaroví vývojáři a architekti o vytvoření softwarových komponent, které by mohly být vzdáleně zavolány prostřednictvím lokální sítě a Internetu. Během

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro

Více

Lukáš Kubis. lukas.kubis@student-partners.com MSP pro VŠB-TU Ostrava

Lukáš Kubis. lukas.kubis@student-partners.com MSP pro VŠB-TU Ostrava Lukáš Kubis lukas.kubis@student-partners.com MSP pro VŠB-TU Ostrava Agenda Simplified Configuration Discovery Routing Service Other Features WCF Service Communication Service 1 Service 2 Caller Message

Více

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

Alcatel-Lucent VitalQIP DNS/DHCP & IP Management Software

Alcatel-Lucent VitalQIP DNS/DHCP & IP Management Software Vítáme Vás Alcatel-Lucent VitalQIP DNS/DHCP & IP Management Software Pavel Moulis 13.9.2012 COPYRIGHT 2011 ALCATEL-LUCENT ENTERPRISE. ALL RIGHTS RESERVED. AGENDA 1. Co je IPAM definice, výzvy 2. VitalQIP

Více

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml Rozhraní SAX, SAX vs. SAX2 Jaroslav Ciml Použití SAX - připomenutí Vytvoření instance parseru XMLReader xmlreader = XMLReaderFactory.createXMLReader(); Registrace handleru xmlreader.setcontenthandler(

Více

Internet Information Services (IIS) 6.0

Internet Information Services (IIS) 6.0 Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Vánoční sety Christmas sets

Vánoční sety Christmas sets Energy news 7 Inovace Innovations 1 Vánoční sety Christmas sets Na jaře tohoto roku jste byli informováni o připravované akci pro předvánoční období sety Pentagramu koncentrátů a Pentagramu krémů ve speciálních

Více

SOA a Cloud Computing

SOA a Cloud Computing 9.11.2011 Marriott hotel Praha SOA a Cloud Computing Jaroslav Novotný IT Architekt 1 Copyright 2011, Oracle and/or its affiliates. All rights SOA a Cloud Computing 2 Copyright 2011, Oracle and/or its affiliates.

Více

Datové abstrakce v programovacích jazycích

Datové abstrakce v programovacích jazycích Datové abstrakce v programovacích jazycích Motivace Strukturovat rozsáhlé programy Dovolit separátní překlad Možné formy strukturování: Podprogramy původní forma abstrakce -abstrakce výpočtů Moduly kontejnery

Více

Semestrální práce z DAS2 a WWW

Semestrální práce z DAS2 a WWW Univerzita Pardubice Fakulta elektrotechniky a informatiky Semestrální práce z DAS2 a WWW Databázová část Matěj Trakal 8.12.2009 Kapitola 1: Obsah KAPITOLA 1: OBSAH 2 KAPITOLA 2: ZÁKLADNÍ CHARAKTERISTIKA

Více

WEBOVÉ SYSTÉMY PORADENSKÝCH SLUŽEB WEB-BASED ADVISORY SERVICE SYSTEMS. Milan Mišovič, Jana Andrýsková

WEBOVÉ SYSTÉMY PORADENSKÝCH SLUŽEB WEB-BASED ADVISORY SERVICE SYSTEMS. Milan Mišovič, Jana Andrýsková WEBOVÉ SYSTÉMY PORADENSKÝCH SLUŽEB WEB-BASED ADVISORY SERVICE SYSTEMS Milan Mišovič, Jana Andrýsková Anotace: Poradenská služba je zákaznicky orientovaný proces, pro který je na bázi současných webových

Více

Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8

Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8 Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8 1. Stáhněte si instalační program HOST makro engine z oficiálního webu IABYTE. 2. Spusťte instalační program a postupujte

Více

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Design Patterns Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Základní návrhové vzory Kategorie Creational Patterns starají se o vytváření instancí Structural Patterns struktura komponent v

Více

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Počítačové sítě Počítačová síť je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Základní prvky sítě Počítače se síťovým adaptérem pracovní

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

InternetovéTechnologie

InternetovéTechnologie 8 InternetovéTechnologie webdesign, mobile first Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Webové stránky a aplikace - Webové stránky - množina vzájemně propojených stránek, které obsahují informace

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

Správa dat v podniku. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu

Správa dat v podniku. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu Správa dat v podniku MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu Obsah o Důležité oblasti pro správu, uchovávání a využívání dat v podniku Něco z historie Řízení dat na úrovni podniku Data

Více

Mobilní trh vize Atos

Mobilní trh vize Atos 20-11-2014 Mobilní trh vize Atos Nabídka Smart Mobility: Dva způsoby reakce na požadavky na mobilitu Enterprise Mobilita pro zaměstnance Téma: Kvalitnější, rychlejší, levnější mobilní Ovlivňuje: Produktivitu

Více

JAK SE DAŘÍ KOMERČNÍMU LINUXU? Ondřej Suchý Enlogit s.r.o.

JAK SE DAŘÍ KOMERČNÍMU LINUXU? Ondřej Suchý Enlogit s.r.o. JAK SE DAŘÍ KOMERČNÍMU LINUXU? Ondřej Suchý Enlogit s.r.o. Část 1 O Enlogit Enlogit: o nás IT pro firmy primární zaměření: služby významný implementátor Linux & open source v ČR řešení serverové infrastruktury,

Více

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb: Technologie Marushka Základním konceptem technologie Marushka je použití jádra, které poskytuje přístup a jednotnou grafickou prezentaci geografických dat. Jádro je vyvíjeno na komponentním objektovém

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE 2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 35.240.60 materiálem o normě. Dopravní telematika Elektronický výběr poplatků (EFC) Definice rozhraní

Více

EURO přeshraniční platba

EURO přeshraniční platba EURO přeshraniční platba EURO přeshraniční platba je platební příkaz splňující následující kriteria: Je předložen elektronicky Je požadováno standardní provedení (tj. nikoliv urgentní nebo expresní) Částka

Více

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ RELATIONAL AND OBJECT DATABASES DESIGN DIFFERENCES AND IT S IMPLICATIONS TO MODEL TRANSFORMATION Vít Holub

Více

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Nové vývojové nástroje i5/os Rational Developer for System i V7.1 Nové vývojové nástroje i5/os Rational Developer for System i V7.1 Aleš Petr, IBM ČR Konference COMMON 18. 20. května 2008 ales_petr@cz.ibm.com Agenda Rational Application Developer for System i V7.1 Novinky

Více

POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi.

POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky POPIS TUN TAP (Chci si ujasnit o kterem bloku z toho schematu se mluvi.) VAS MODEL OpenVPN MUJ MODEL funkce virtuálního sítového rozhrani

Více

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27 Programování v C# Soubory a regulární výrazy Petr Vaněček 1 / 27 Obsah přednášky Informace o prostředí Práce se soubory Regulární výrazy 2 / 27 Zprostředkování informací Třída System.Environment Poskytuje

Více

Spisová služba a zákon 300/2008 Ladislav Kleman, Petra Benediktová

Spisová služba a zákon 300/2008 Ladislav Kleman, Petra Benediktová Spisová služba a zákon 300/2008 Ladislav Kleman, Petra Benediktová Hradec Králové, 7. dubna 2009 Proč spisová služba EZOP a produkty Asseco Elektronická spisová služba ze zákona povinnost pro všechny obecní

Více

Programové vybavení OKsmart pro využití čipových karet

Programové vybavení OKsmart pro využití čipových karet Spojujeme software, technologie a služby Programové vybavení OKsmart pro využití čipových karet Ukázky biometrické autentizace Ing. Vítězslav Vacek vedoucí oddělení bezpečnosti a čipových karet SmartCard

Více

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012 Vývoj SW pro mobilní zařízení s ios Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012 Perspektiva 3 roky zkušeností s vývojem aplikací pro ios 1 rok vývoj pro Android desítky aplikací Obsah

Více

ios Cvičení RSS čtečka

ios Cvičení RSS čtečka strana 1 ios Cvičení RSS čtečka Jiří Kamínek Kaminek.jiri@stoneapp.com strana 2 Vytvoření nového projektu v XCode Název RSSLesson Navigation-based Application use Core Data for storage nezaškrtávat strana

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava 1.-2.10.2009 1

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava 1.-2.10.2009 1 Dominik Vymětal 2009, Ostrava 1.-2.10.2009 1 Procesní model Výhody Orientace na konkrétní činnosti a možnost reengineeringu Nevýhody Malá orientace na průřezové nebo opakované činnosti Modely na základě

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

PRÁCE S UKÁZKAMI ODPOVĚDÍ MATURANTŮ NA DVD

PRÁCE S UKÁZKAMI ODPOVĚDÍ MATURANTŮ NA DVD CVIČENÍ K VIDEU 5 DVD PRÁCE S UKÁZKAMI ODPOVĚDÍ MATURANTŮ NA DVD Na DVD si můžeš prohlédnout 4 ukázky správných a 4 ukázky nesprávných odpovědí těchto částí ústní maturitní zkoušky z angličtiny: 1) Interakce

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze Boj se zavlečeným impedančním nesouladem na úrovni databáze ABSTRACT: Impedanční nesoulad může být zmírněn správnou volbou databázové technologie. Článek vysvětluje, co to impedanční nesoulad je a uvádí

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti

Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti Práce s databází Specifikace JDBC Pro práci s relačními databázemi poskytuje Java rozhraní JDBC Java Database Connectivity. Specifikace tohoto rozhraní má několik verzí. Verze 1.x je součástí SDK již od

Více