1 / 413

JAT – Java Technologie

JAT – Java Technologie. KA. David Ježek david.jezek @ vsb.cz Tel: 597 32 5 874 Místnost: EA406. 1. Přednáška. Úvod Podmínky udělení zápočtu Komponentní technologie JavaBeans. 1. 1. Úvod 1/3. Seznámení s obsahem Nabídka Sun certifikátu Podmínky k udělení zápočtu

zahir-best
Download Presentation

JAT – Java Technologie

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

E N D

Presentation Transcript


  1. JAT – Java Technologie KA David Ježek david.jezek@vsb.cz Tel: 597 325 874 Místnost: EA406

  2. 1. Přednáška Úvod Podmínky udělení zápočtu Komponentní technologie JavaBeans JAT – Java Technologie

  3. 1. 1. Úvod 1/3 • Seznámení s obsahem • Nabídka Sun certifikátu • Podmínky k udělení zápočtu • Téma a rozsah projektu • Závěrečný test • Užitečné odkazy • Java Beans • Java GUI • Swing, AWT • JNDI • JDBC • Architektura IS • Protokol HTTP • Aplikační servery • JavaEE aplikační model • Java Servlet JAT – Java Technologie

  4. 1. 1. Úvod 2/3 • JSP JavaServerPages • JSF Java Server Faces • EnterpriseJavaBeans • Java Transaction • Perzistence objektů • Java Persistenc API • Hibernate • Návrhové vzory JavaEE • DAO • Aplikační rámce MVC • Struts 2 • Portlety • JMS – JavaMessageServices • Webové služby • Java Web Services • JAXB JAT – Java Technologie

  5. 1. 1. Úvod 3/3 • RMI • CORBA • IDL JAT – Java Technologie

  6. 1. 2. Certifikáty společnosti SUN • Společnost SUN nabízí slevu 25% na vybrané certifikační zkoušky pro účastníky programu „Sun AcademicInitiative“. • VŠB je členem „Sun AcademicInitiative“ a studenti VŠB mohou využít nabízenou slevu na certifikační zkoušky. • http://www.sun.com/solutions/landing/industry/education/sai/index.jsp JAT – Java Technologie

  7. 1. 3. Podmínky udělení zápočtu • Odevzdání projetu v termínu. • Absolvování závěrečného testu. • Získání minimálně 15 bodů na cvičeních • Projekt bude hodnocen maximálně 40, minimálně je nutno získat 20. • Na cvičeních v 2. až 12. týdnu bude rozděleno 36 bodů přičemž maximálně lze započítat do celkových výsledků 30 bodů a minimálně je nutno získat 15 bodů • Závěrečný test bude hodnocen maximálně 30 minimálně je nutno získat 15. • Celkový součet bodů za projekt a závěrečný test musí být minimálně 51 bodů. JAT – Java Technologie

  8. 1.4. Projekt • Webový informační systém • JSF, EJB, JPA • Rozsah • Celý systém se bude skládat alespoň ze 7 tabulek s využitím vazeb (1-N) a dědičnosti (mapování JPA) JAT – Java Technologie

  9. Něco z historie… • 500 před n. l. – Pythagoras založil bratrstvo vyznávající reinkarnaci, vegetariánství, mystický význam čísel a odmítání fazolí (beans) jako potravy (obsahují duše zemřelých) • 850 n. l. – arabský pasák koz Kaldi zjistil, že se jeho stádo chová divně a objevil kávu a účinky kofeinu. • Konec 17. století – pěstování kávových zrn na ostrově Java, spojení názvu s kávou obecně • 1995 – jazyk Oak firmy Sun má problémy s názvem, zvolen název Java a spojení produktů s kávou JAT – Java technologie

  10. Java Platforms • Standard Edition (Java SE) • Java Applet, Java WebStart • Java FX • JavaFX 2.1 - desktop, browser and mobile phones. • Planed: TV set-top boxes, gaming consoles, Blu-ray players and other • Enterprise Edition (Java EE) • Servlets, JavaServerFaces, JavaServerPages • Micro Edition (Java ME) • Mobile phone, Java TV, Java Card, other devices JAT – Java Technology

  11. Java SE Platform JAT – Java Technology

  12. JavaFX Platform • Designed for RIA • Variety of devices • Media support • Scene graph • CSS styles JAT – Java Technology

  13. Java EE Platform • Multi-tier architecture • Java EE API • Servlets • Java Server Faces • Java Server Pages • Persistence API • … • Runtime environment JAT – Java Technology

  14. Java ME Platform • Designed to run java application on devices with limited resources • Java ME API is subset of Java SE API with some extra special class libraries • Define profiles and configuration for different types of devices JAT – Java Technology

  15. 3. Komponentní technologie – Motivace • Vývoj • Opakovaná použitelnost • Snadnost testování • Možnost specializace výrobců • Distribuce • Rychle uvedení na trh • Nezávislost na dodavateli • Údržba • Snížení nákladů na údržbu • Zaměnitelnost –tlak odběratelů na standardizaci JAT – Java Technologie

  16. 3.1. Aplikace v IT • Technické vybavení • Paměť, procesory, základní desky • Periferní zařízení – PnP, ovladače • Komunikační prvky • Programové vybavení • Grafické uživatelské rozhraní – Swing • Distribuované aplikace –CORBA, EJB, .NET,… • Databáze • Informační systémy JAT – Java Technologie

  17. 3.2. Co je to komponenta? 1/3 • Stavební jednotka se smluvně definovanými: • rozhraními; • explicitními kontextovými vazbami Napájení Mobilní telefon IKeyboard IBluetooth GSM Modul JAT – Java Technologie

  18. Co je to komponenta? 2/3 • Může být použita nezávisle na • prostředí, pro které byla vytvořena, • prostředí, ve kterém byla vytvořena. MS Office Print MyApp MPEG Player (C++) Home Video (Java) Movie Library (PHP) JAT – Java Technologie

  19. Co je to komponenta? 3/3 • Je určena pro integraci třetí stranou • Autor komponenty • Neví, kdo a k čemu bude jeho komponenty využívat • Musí dodržet stanovené rozhraní • Autor aplikace • Neví, kdo bude dodávat komponenty • Komunikuje přes stanovené rozhraní • Integrátor • Propojí aplikaci s vhodnými komponentami JAT – Java Technologie

  20. Požadavky na komponenty • Úplná dokumentace • Důkladné testování • Robustní kontrola platnosti vstupů • Vracení dostatečných informativních chybových zpráv • Vycházet s toho, že komponenta bude použita k předem nepředpokládaným účelům. JAT – Java Technologie

  21. Specifikace komponenty • Stav • Vlastnosti – čtení, nastavení • Chování • Operace – volání, parametry, výsledek • Interakce s okolím • Události – registrace, oznámení JAT – Java Technologie

  22. Životní cyklus komponenty 1/2 • Tvorba komponenty • Standardy – CORBA, COM+, EJB, .NET • Binární kompatibilita – nezávislost na jazyce • Publikace rozhraní • Dokumentace – pro člověka • Introspekce – součást komponenty, klientská aplikace může číst metadata JAT – Java Technologie

  23. Životní cyklus komponenty 2/2 • Šíření komponenty • registrace komponenty, adresářové služby • LDAP, JNDI, UDDI • Vyhledávání komponenty • identifikace komponenty, pozdní vazba • Tvorba aplikace • Podpora IDE – přístup jako k interním objektům JAT – Java Technologie

  24. Architektura komponentně orientovaných systémů Aplikační server 1 Aplikace 1 Komponenty Aplikace 2 Komponenty Aplikační server 2 JAT – Java Technologie

  25. Aplikační server • Prostředí pro běh softwarových komponent a aplikací • Distribuované prostředí • Zdroje (Resources) • Zabezpečení • Transakce • Příklady • JBoss, Jakarta Tomcat, BEA Weblogic, Citrix, Meta Frame, IBM WebSphere, Oracle AS, Glassfish, Sun Java System AS, … JAT – Java Technologie

  26. Příklad tvorby aplikací WSDL, IDL, Interface EAR, WAR, DLL komponenta popis rozhraní dynamická vazba zdrojový text aplikace Vývojové prostředí Java,C#, C++ JAR, WAR, EAR, EXE spustitelná aplikace JAT – Java Technologie

  27. Hlavní komponentní technologie • JavaBeans, EJB • pouze jazyk Java • Enterprise Java Beans – pro rozsáhle systémy, distribuované • COM, COM+, DCOM, ActiveX • Binárně kompatibilní komponenty • Základní technologie pro Windows • .NET • Kompatibilita na jazykové úrovni – C++, C#, Jscript, VB.NET JAT – Java Technologie

  28. 2. JavaBeans Komponenta JavaBean je třída jazyka JAVA splňující přesně dané podmínky. • Zdroje • http://java.sun.com/docs/books/tutorial/javabeans/TOC.htm • http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html • http://www.cs.vsb.cz/behalek/vyuka/pte/prednasky/index.php JAT – Java Technologie

  29. JavaBeans - základy “A Java Bean is a reusable software component that can be manipulated visually in a buildertool.” • Granularita komponent • Malé stavební bloky • „celé aplikace“ • Přenositelnost • Jednotné, kvalitní API • Jednoduchost • JavaBeans vs. Knihovny • Design time vs. run-time • Bezpečnost • Internacionalizace • Perzistence komponent • SerializationorExternalization • Lokální komponenty • Multi-Threading JAT – Java Technologie

  30. Java Beans – Typy komponent • Vizuální komponenty • Mají vizuální reprezentaci zabírající prostor v okně aplikace • Příklad: tlačítko, tabulka, rolovací seznamy • Podpora ve vizuálních nástrojích • Nevizuální komponenty (Invisible) • Příklad: časovač, databázové spojení, kontrola pravopisu, … • Podpora ve vizuálních nástrojích JAT – Java Technologie

  31. Java Beans – Struktura komponenty • Vlastnosti (properties) • Přístup prostřednictvím přístupových metod (čtení, zápis hodnoty), ne přímo • Metody (methods) • Operace nad komponentami • Události (events) • Komunikační vazby mezi komponentami JAT – Java Technologie

  32. Java Beans – Události (1) • Zdroj událostí • Objekt, který generuje události • Spravuje seznam registrovaných posluchačů • Posluchač (listener) • Objekt, který chce být o události informován • Musí být registrován u zdroje událostí • Musí implementovat dohodnuté rozhraní JAT – Java Technologie

  33. Java Beans – Události (2) Posluchač Registrovaní posluchači Posluchač Zdroj událostí registrace Posluchač addEventListener vznikudálosti nastala událost (e) Informace o události EventObject e JAT – Java Technologie

  34. Java Beans – Zpracování událostí • Posluchač se zaregistruje u zdroje událostí (např. u tlačítka, na jehož stisknutí čeká) • Uživatel stiskne tlačítko – vznikne událost • Zdroj události (tlačítko) projde seznam registrovaných posluchačů a každému z nich oznámí vznik události: • Zavolá dohodnutou metodu rozhraní posluchače • Metodě předá informace o události (podtřída java.util.EventObject) JAT – Java Technologie

  35. Events: Model Event – Listener Event handling MyListener somethingHappend Source addFooListener fireSomethingHappend FooEvent AddFooListener somethingHappend MyOther Listener JAT – Java Technology

  36. Events: Model Event – Listener JAT – Java Technology

  37. Události: Model Event – Listener • publicclassFooEventextendsjava.util.EventObject { • protectedStringmyInfo; • publicFooEvent(Object source,String something) { • super(source); • myInfo =something; • } • publicStringgetMyInfo() { • returnmyInfo; • } • }

  38. Události: Model Event – Listener • publicinterfaceFooListenerextends java.util.EventListener { • publicvoid somethingHappend(FooEvent FooEventevt); • publicvoid somethingChanged(FooEvent FooEventevt); • publicvoid whatever(FooEvent FooEventevt); • }

  39. Události: Model Event – Listener • import java.util.ArrayList; • private ArrayList<FooListener> listeners = new ArrayList<FooListener>(); • publicclass EventSource { • public FooListener[] getFooListeners() { • returnlisteners.toArray(new FooListener[listeners.size()]); • } • public synchronizedvoid removeFooListener(FooListener listener){ • listeners.remove(listener); • } • publicsynchronizedvoid addFooListener(FooListener listener){ • listeners.add(listener); • } • protectedsynchronizedvoid fireSomethingHapend() { • FooEvent e = new FooEvent(this, "something"); • for (FooListener l : listeners) { • l.somethingHapend(e); • } • } • }

  40. JavaBeans – Události - Shrnutí • Objekt události • musí dědit z java.util.EventObject • Má se jmenovat <něco>Event • Musí mít konstruktor s alespoň jedním parametrem (zdroje událostí) • Rozhraní posluchače (ListenerType) • Musí dědit z java.util.EventListener • Má se jmenovat <něco>Listener • Jednotlivé metody by mněli mít jeden parametr (událost) • Mají vracet void • Zdroj událostí(JavaBean) musí mít metody public voidadd<ListenerType>(<ListenerType> listener) throwsjava.util.TooManyListenersException; public voidremove<ListenerType>(<ListenerType> listener) public <ListenerType>[] get<ListenerType>s(); JAT – Java Technologie

  41. Java Beans – Adaptér (1) • Rozhraní EventListener pro konkrétní komponentu může obsahovat mnoho metod • Chceme-li reagovat jen na některé události: • Musíme buď implementovat prázdné reakce na ostatní události • Nebo použijeme adaptér jako bázovou třídu a implementujeme jen zvolené metody • Adaptér implementuje implicitní odezvu na všechny události JAT – Java Technologie

  42. JavaBeans – Adapter(2) publicinterfaceCounterListener { publicvoidcounterReset(CounterEventevt); publicvoidvalueChanged(CounterEventevt); } publicclassCounterAdapterimplementsCounterListener{ publicvoidcounterReset(CounterEventevt){ } publicvoidvalueChanged(CounterEventevt){ } } JAT – Java Technology

  43. Java Beans – Adaptér (3) Countercounter=newCounter(); // použití anonymní vnitřní třídy counter.AddCounterListener(newCounterAdapter(){ @Override publicvoidcounterReset(CounterEvent e){ System.out.println("Reset"); } }); JAT – Java Technologie

  44. JavaBeans – Properties (vlastnosti) • Jednoduché vlastnosti • Getter metoda public <PropertyType> get<PropertyName>() public booleanis<PropertyName>() • Setter metoda public void set<PropertyName>(<PropertyType> value) JAT – Java Technologie

  45. Java BeansProperties • Properties s názvem counter publicclassCounter { privateintcounter; publicintgetCouner() { returnthis.counter; } publicvoidsetCounter(int i) { this.counter = i; } } publicintgetCouner() privateintcounter; publicvoidsetCounter(int i) JAT – Java Technologie

  46. JavaBeans – Properties (vlastnosti) • Indexované vlastnosti (indexedproperties) • indexedsetter void set<PropertyName>(int index, <PropertyType> value) • indexedgetter public <PropertyType> get<PropertyName> (int index) • arraysetter public void set<PropertyName> (PropertyTypevalues[]) • arraygetter public <PropertyType>[] get<PropertyName> () JAT – Java Technologie

  47. JavaBeans – Properties (vlastnosti) protectedVector<JButton> buttons; voidsetButtons(int index, JButton b){ buttons.setElementAt(b, index); } publicJButtongetButtons(int index){ returnbuttons.elementAt(index); } publicvoidsetButtons(JButtonvalues[]){ buttons.clear(); for(JButton b : values){ buttons.add(b); } } publicJButton[] getButtons(){ returnbuttons.toArray(newJButton[buttons.size()]); } JAT – Java Technologie

  48. Java Beans – Speciální vlastnosti • Vázané vlastnosti (boundproprties) • Generují událost PropertyChange, pokud se mění jejich hodnota • Vlastnosti s omezením (constrainedprop.) • Generují událost VetoableChange, pokud se mění jejich hodnota • Změna může být zakázaná JAT – Java Technologie

  49. JavaBeans – Properties (vlastnosti) • Boundproperties (obalené) publicvoidaddPropertyChangeListener(PropertyChangeListener x); publicvoidremovePropertyChangeListener(PropertyChangeListener x); publicinterfacePropertyChangeListenerextendsjava.util.EventListener { voidpropertyChange(PropertyChangeEventevt); } publicclassPropertyChangeEventextendsjava.util.EventObject { publicPropertyChangeEvent(Objectsource, StringpropertyName, ObjectoldValue, ObjectnewValue); publicStringgetPropertyName(); publicObjectgetNewValue(); publicObjectgetOldValue(); JAT – Java Technologie

  50. JavaBeans – Properties (vlastnosti) • Boundproperties (obalené) public voidaddPropertyChangeListener(StringpropertyName, PropertyChangeListenerlistener); public voidremovePropertyChangeListener(StringpropertyName, PropertyChangeListenerlistener); public voidadd<PropertyName>Listener( PropertyChangeListener p); public voidremove<PropertyName>Listener( PropertyChangeListener p); JAT – Java Technologie

More Related