-
Předpokládejte, že máte za úkol pro konkrétního zákazníka
vytvořit informační systém pro evidenci zakázek. Půjde o relativně
jednoduchou webovou aplikaci, jejíž těžiště bude spočívat v
provádění CRUD operací nad několika entitami. Informace o
zákaznících budou čerpány z externího CRM systému.
Navrhněte architekturu systému a vyberte vhodné technologie
pro jeho realizaci. Svůj návrh architektury i volbu
technologií dobře zdůvodněte.
-
Vysvětlete, k čemu slouží návrhový vzor DAO a co nám jeho použití přináší.
-
Vysvětlete, k čemu slouží návrhový vzor Session Façade a co nám jeho použití přináší.
-
Vysvětlete, k čemu slouží návrhový vzor Adapter a co nám jeho použití přináší.
-
Proč je na úrovní API mezi prezentační a aplikační vrstvou lepší
používat DTO místo entit?
-
Co je to IoC, k čemu se to používá a co nám to přináší?
-
Co je to ORM? Jaké jsou výhody a nevýhody této technologie?
-
Uveďte alespoň dva příklady, kdy je ORM vhodná technologie,
a alespoň dva příklady, kdy se ORM naopak nehodí.
-
Jaké jsou výhody a nevýhody JPA?
-
Jaké jsou vlastnosti JPA entit (např. ve srovnání s EJB 2.x) a
jakým způsobem můžeme definovat mapování do databáze?
-
Nakreslete a popište stavový diagram entity.
-
Vysvětlete všechny rozdíly mezi operacemi merge() a persist().
-
Předpokládejme, že máme ORM nástroj, který implementuje JPA i
své vlastní proprietární API. Jaké výhody a nevýhody nám přinese
použití JPA ve srovnání s proprietárním API?
-
Jaké jsou rozdíly mezi JPA a JDO?
-
Jaké jsou výhody POJO entit ve srovnání s heavyweight entitami?
-
Co je to JPQL? Napište libovolný příklad.
-
Mějme entitu Person s atributy name a salary.
V jazyce JPQL napište dotaz, který spočítá průměrný plat všech
osob v databázi.
-
Mějme entitu Person s atributy name a salary.
V jazyce JPQL napište dotaz, který vrátí kolekci všech osob s platem
alespoň 10000.
-
Mějme entitu Person s atributy name a salary.
V jazyce JPQL napište dotaz, který vrátí plat osoby se jménem "Franta Vocásek".
-
Vyjmenujte alespoň čtyři příklady, k čemu se dají vhodně použít interceptory.
-
Vyjmenujte alespoň čtyři příklady, k čemu se dá vhodně použít AOP.
-
Co jsou to interceptory a k čemu se to používá?
-
Co je to AOP a k čemu se to používá?
-
Vysvětlete pojmy pointcut, aspect a advice.
-
Vysvětlete, jakým způsobem lze implementovat AOP (uveďte oba
používané způsoby). Jaké jsou jejich výhody a nevýhody?
-
Je v pořádku rozhraní následující komponenty? Pokud ne, vysvětlete proč.
public interface CustomerDAO {
public void create(Customer customer) throws SQLException;
}
-
Je v pořádku rozhraní následující komponenty? Pokud ne, vysvětlete proč.
public interface CustomerDAO {
public void create(String firstName, String lastName) throws DataException;
}
-
Je v pořádku rozhraní následující komponenty? Pokud ne, vysvětlete proč.
public interface CustomerDAO {
public Customer[] findByName(String customerName) throws DataException;
}
-
Mějme aplikaci, jejíž architektura obsahuje níže uvedené vrstvy.
Která vrstva bude zodpovědná za orchestraci služeb?
- Service
- DAO
- Façade
- Adapter
- Controller
- View
-
Mějme aplikaci, jejíž architektura obsahuje níže uvedené vrstvy.
Která vrstva bude zodpovědná za konverzi entit na DTO?
- Service
- DAO
- Façade
- Adapter
- Controller
- View
-
Mějme aplikaci, jejíž architektura obsahuje níže uvedené vrstvy.
Na kterých vrstvách mohou vznikat instance DTO?
- Service
- DAO
- Façade
- Adapter
- Controller
- View
-
Mějme aplikaci, jejíž architektura obsahuje níže uvedené vrstvy.
Která vrstva bude zodpovědná za page flow?
- Service
- DAO
- Façade
- Adapter
- Controller
- View
-
Mějme vícevláknovou serverovou aplikaci s globálním řízením transakcí.
K čemu je aktuální transakce vázána?
- K JDBC Connection
- K vláknu
- K instanci Entity Manager
- K instanci Entity Manager Factory
- V systému je pouze jedna globální transakce
- Transakce nelze řídit globálně
-
Může v rámci jednoho Persistence Context probíhat více transakci?
- Ne
- Ano
- Ano, ale nemůže jich být více aktivních naráz, musí proběhnout postupně.
-
Co všechno musí být splněno, abychom mohli používat distribuované transakce (zaškrtněte vše, co musí platit).
- Musíme používat lokální řízení transakci.
- Musíme používat globální řízení transakci.
- Musíme řídit transakce pomocí JTA.
- Musíme řídit transakce pomocí JTA nebo pomocí komponenty JpaTransactionManager.
- Distribuované transakce nejsou v Java EE podporovány.
-
Které z následujících vět jsou pravdivé?
- Pokud transakce řídíme imperativně, můžeme používat lokální transakce.
- Pokud transakce řídíme imperativně, můžeme používat globální transakce.
- Pokud transakce řídíme deklarativně, můžeme používat lokální transakce.
- Pokud transakce řídíme deklarativně, můžeme používat globální transakce.
-
Jaké možnosti propagace transakcí podporuje EJB 3.1?
- MANDATORY
- NESTED
- NEVER
- NOT_SUPPORTED
- REQUIRED
- REQUIRES_NEW
- SUPPORTS
- EJB 3.1 nepodporuje deklarativní řízení transakcí
-
Jaké možnosti propagace transakcí podporuje Spring?
- MANDATORY
- NESTED
- NEVER
- NOT_SUPPORTED
- REQUIRED
- REQUIRES_NEW
- SUPPORTS
- Spring nepodporuje deklarativní řízení transakcí
- Co je to distribuovaná transakce?
- Jak funguje deklarativní řízení transakcí?
-
Kdo (tj. která komponenta) zajišťuje řízení transakcí u EJB,
pokud používáme deklarativní řízení transakcí?
-
Kdo (tj. která komponenta) zajišťuje řízení transakcí u rámce Spring,
pokud používáme deklarativní řízení transakcí?
-
Vysvětlete rozdíl mezi deklarativním a imperativním řízení transakcí.
- Porovnejte webové služby typu REST a SOAP.
- Co je to WSDL? K čemu se to používá a proč je to důležité?
- Jaké výhody a nevýhody nám přinášejí webové služby typu REST.
- Jak vypadají webové služby typu REST.
- Co je to ESB. K čemu ESB slouží?
-
Popište rozdíl mezi komponentově orientovaným webovým aplikačním rámcem
(component based framework) a webovým aplikačním rámcem
založeném na požadavcích (request based framework).
-
Jaké jsou obecně výhody a nevýhody komponentově orientovaných webových
aplikačních rámců (component based framework) ve srovnání s
webovými aplikačními rámci založených na požadavcích (request based framework)?
-
Které technologie používají POJO entity?
- JPA
- HIBERNATE
- JDO
- EJB 2.x
- EJB 3.x
- iBatis
- Spring JDBC
- POJO entity se nepoužívají
-
Jakým způsobem můžeme definovat ORM mapování v JPA
- Pomocí anotací
- Pomocí XML deskriptoru
- Pomocí speciálních JavaDoc komentářů
- Nijak, mapování se provádí auomaticky
- POJO entity se nepoužívají
-
Pokud u JPA definujeme mapování pomocí anotací i pomocí
XML, co má vyšší prioritu?
- Anotace
- XML
- Záleží na konfiguraci
- Záleží na implementaci konkrétního ORM nástroje
- Ani jedno, ORM nástroj vyhodí výjimku, protože XML a anotace se nesmí kombinovat.
- Je tento test napsaný správně? Svoji odpověď
zdůvodněte.
@Test
public void testDoSomethingEqualsTen(){
MyClass myClass = new MyClass();
myClass.setTime(System.currentTimeMillis());
long expected = 10;
long actual = myClass.doSomething();
assertEquals(expected, actual);
}
- Vyjmenujte a popište základní vlastnosti, které
by mělo mít jednotkové testování.
- Uveďte a charakterizujte aspoň 3 druhy testování
podle cíle.
- Porovnejte ručné testování s automatizovaným.
- Porovnejte výhody a nevýhody formální
verifikace a testování.
- Stručně popište k čemu slouží funkční testování
a uveďte příklad nástroje pro toto testování.
- Vysvětlete pojem akceptační testování. K čemu
slouží? Jaké jsou časté problémy?
- K čemu slouží mock objekty? Kvůli čemu je
potřebujeme ? Uveďte příklad knihovny, která poskytuje mechanizmy vytváření mock
objektů.
- Jaké jsou výhody a nevýhody technologie EJB ve srovnání s rámcem Spring?
- Jaké máme typy EJB komponent v EJB 3.1 (jsou čtyři plus jedna je zastaralá)? Stručně je popište.
- K čemu slouží kompomenta typu Stateless Session Bean ?
- Kdy je lepší použít EJB a kdy je lepší použít Spring? Zdůvodněte.
- Co to je EJB? (čeho je součástí, která
vrstva, co zajišťuje, kdy ji použít)
-
Co je to EJB kontejner? Kde jej nalezneme a k čemu slouží?
-
Jaké máme typy EJB komponent typu Session Bean v EJB 3.1? Jaké jsou mezi nimi hlavní rozdíly?
- Co to je a k čemu slouží
Message-Driven Bean?
- Stručně popište dva typy business
rozhraní u EJB komponent. Které z nich musíme vždy použít?
- Co to je a k čemu slouží Singleton
Session Bean? Její omezení? Je stavová? Přístup a jak ho lze řídit? Životní cyklus.
- Jaké jsou druhy komunikace při
vzdáleném přístupu? Jaký se nejčastěji používá pro komunikaci na internetu?
- K čemu slouží protokol TCP a jaké
jsou jeho nevýhody? Víte které třídy v Jave představují protokol TCP?
- Co je to RPC a RMI? Vysvětlete
rozdíly a ke každému uveďte aspoň jednu implementaci.
- Co je to Java RMI? Jaké má výhody a
nevýhody?
- Co je to JSON-RPC? Jaký formát správ
používá? V čem se liší od XML-RPC?
- Co je to SOAP? Který z konceptů je v
SOAP implementován: RPC nebo RMI? V jakém formátu je popsané jeho API? V jakém
formátu jsou přenášené správy?
- Co je to to REST? Jaká je jeho hlavní
výhoda?
- Co je to AMQP? Jaké jsou rozdíly mezi
JMS a AMQP?
- Co je to JMS? Jaký druh komunikace
JMS podporuje?
- Jaké jsou výhody webové aplikace
oproti desktopové aplikaci?
- Vysvětlete princip Convention over
configuration.
- Napište 3 Request base technologie a
3 Component Base technologie.
- Co znamená řízení průchodu aplikací?
Jaké technologie tuto činnost usnadňují?
- Popište MVC architekturu. Jak spolu
jednotlivé části spolupracují? (Nakreslete obrázek)
- Jaký je rozdíl mezi Component-based a
Request-based webovým frameworkem?
- Jaký je rozdíl mezi
internacionalizací a lokalizací? Na co všechno je potřeba dbát při
internacionalizaci aplikace? Napište názvy třídy, které se v Javě nejčastěji
používají při internacionalizaci.
- Která z následujících anotací
nepatří do knihovny JUnit?
- @Test
- @Before
- @BeforeClass
- @Transactional
-
Co nejlépe použijeme, pokud chceme při startu více uživatelské aplikace vytvořit trvalé připojení do databáze?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
-
Co nejlépe použijeme, pokud chceme při ukončení více uživatelské aplikace ukončit a zavřít trvalé připojení k databázi?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
-
Co nejlépe použijeme, pokud chceme přijímat více JMS zpráv najednou a neblokovat tak prostředky komponenty?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
-
Co nejlépe použijeme, pokud chceme v aplikaci vytvořit službu, která vrací aktuální měnový kurz načtený z databáze?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
-
Co nejlépe použijeme pro realizaci služby nákupního košíku ve více uživatelské aplikaci?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
-
Co nejlépe použijeme, pokud chceme aby se část informací odkládala na server během komunikace klienta s více uživatelskou aplikací?
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean
- Pro které z následujících aplikací
je vhodný transientní (pomíjivý) druh komunikace?
- internetový prohlížeč
- podnikový objednávkový systém
- aplikace internetového rádia
- aplikace pro řízení lodní dopravy
- Pro které z následujících aplikací
je vhodný persistentní (vytrvalý) druh komunikace?
- internetový prohlížeč
- podnikový objednávkový systém
- aplikace internetového rádia
- aplikace pro řízení lodní dopravy
- Které z následujících možností
jsou postupy pro volání vzdálených metod?
- Co patří mezi technologie
prezentační vrstvy?
- Vyberte známé typy útoků na webové
aplikace.
- Climbing
- Cross-site scripting
- Cross-site skiing
- Phishing
- SQL Injection
-
Entita v JPA se z Odpojeného (Detached) stavu dostane do Spravovaného stavu (Managed) pomocí jakého příkazu?
- detach
- merge
- persist
- refresh
-
Kde mohou být uložena data?