1 / 24

Modelov ání EJB komponent

Modelov ání EJB komponent. Diplomová práce Lukáš Valenta. Obsah prezentace. Softwarové komponenty a modely Komponenty Enterprise JavaBeans (EJB) Modelování komponent UML ENT metamodel Praktická část práce Architektura navrhovaného programu Zpracování výstupu Praktická ukázka.

dusan
Download Presentation

Modelov ání EJB komponent

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. Modelování EJB komponent Diplomová práce Lukáš Valenta

  2. Obsah prezentace • Softwarové komponenty a modely • Komponenty Enterprise JavaBeans (EJB) • Modelování komponent • UML • ENT metamodel • Praktická část práce • Architektura navrhovaného programu • Zpracování výstupu • Praktická ukázka

  3. Softwarová komponenta • Černá skříňka • Zapouzdření • Rozhraní • Znovupoužití • Spojování s programem • Při překladu • Za běhu

  4. Komponentové modely Definují standard, který musí množina komponent dodržet, aby z nich bylo možné poskládat aplikace. • Formát specifikace rozhraní • Prostředí pro běh komponent • Služby poskytované komponentám • COM+ (Component Object Model) • CCM (CORBA Component Model) • EJB (Enterprise JavaBeans)

  5. Architektura J2EE

  6. Komponenty EJB • Obsahují business logiku • Verze 2.1 • 3 typy komponent • Session beans • Vázané na relaci klienta • Stavové / bezstavové • Entity beans • Reprezentují entity uložené v úložišti (DB) • Životnost beanu = životnost záznamu v DB • Message-driven beans • Zpracování asynchronně zasílaných požadavků (zpráv)

  7. Komponenta EJB • „Home“ rozhraní • Metody náležející k beanu jako celku • Vyhledávání, vytváření a rušení instancí • Získání reference prostřednictvím JNDI • Rozhraní komponenty • Aplikační rozhraní • Další poskytovaná a požadovaná rozhraní • Třída beanu • Implementuje aplikační metody, vlastní „tělo“ • Deployment Descriptor • XML soubor • Informace o komponentách obsažených v modulu • Distribuuje se v JAR archivu

  8. Rozhraní komponenty • „Home“ rozhraní public interface FiboHome extends javax.ejb.EJBHome { public Fibo create() throwsjava.rmi.RemoteException; } • Aplikační rozhraní public interface Fibo extends javax.ejb.EJBObject { /* Aplikační metoda */ publicdouble[] compute(int number) throws java.rmi.RemoteException; } • Další rozhraní specifikovaná vývojářem: • Rozhraní webovských služeb • Akceptované zprávy • Požadované zdroje a odkazovaná rozhraní • Požadované prostředí …

  9. Třída beanu public class FiboBeanimplements javax.ejb.SessionBean { /* Konstruktor*/ public FiboBean() { super(); } /* Metoda volaná kontejnerem po vytvoření instance */ public void ejbCreate() throws CreateException {} /* Aplikační metoda */ publicdouble[] compute(int number) { /* Výpočet */ return vysledek; } }

  10. Průběh komunikace

  11. Deployment descriptor <ejb-jar> <enterprise-beans> <session> <description>Fibonacci generator</description> <display-name>Fibo</display-name> <ejb-name>Fibo</ejb-name> <home>FiboHome</home> <remote>Fibo</remote> <ejb-class>FiboBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>container</transaction-type> <ejb-ref> <ejb-ref-name>ejb/FiboEntity</ejb-ref-name> <home>FiboEntityHome</home> <remote>FiboEntityRemote</remote> </ejb-ref> ... </session> </enterprise-beans> </ejb-jar>

  12. Modelování komponent • Unified Modeling Language • Univerzální grafický jazyk • Specifikace, dokumentace SW systémů • Rozšiřitelný (stereotypy) • Diagram komponent, tříd • ENT metamodel • Popis rozhraní komponent • Exports-Needs-Ties • Uživatelský úhel pohledu

  13. ENT Metamodel • Element – prvek rozhraní komponenty • Název, typ, klasifikátor • Trait – související elementy • Stejný klasifikátor a meta-typ • Množina traitů definuje komponentový model • Kategorie – „podobné“ traity • Definovaný „úhel pohledu“ • Na základě klasifikátoru

  14. Elementy • Klasifikovány z několika hledisek – dimenzí: • Nature, Kind, Role, Granularity, Construct, Presence, Arity, Lifecycle • Tag - sémantická informace přidružená k elementu Název:(prázdný) Typ:FiboEntityRemote Klasifikátor: ( {syntax}, {operational}, {required}, {structure}, {instance}, {permanent}, {single}, {development, assembly, deployment, runtime} ) Tag „locality“= „remote“ Tag „bean“= „ejb/FiboEntity“

  15. Kategorie • Sdružujítraity na základě logické funkce definované nad klasifikátorem • E-N-T (Exports-Needs-Ties) • F-D (Functionality-Data) f Exports: role = { provided } fNeeds: role = { required } f Ties: role = { provided, required }

  16. Praktický cíl práce Navrhnout a implementovat nástroj, který vytváří ENT reprezentaci rozhraní komponent EJB • Vstup: J2EE modul s EJB komponentami= JAR archiv • Třídy v přeložené formě: Java byte-kód • Deployment descriptor • Žádné zdrojové kódy či dokumentace • Výstup: XML soubor s ENT popisem jejich rozhraní • Elementy rozhraní komponent + tagy

  17. Architektura programu

  18. Metamodel

  19. Metamodel - kategorie

  20. Přístup do JAR archivu

  21. ENT reprezentace EJB

  22. XML výstup <application> <component ctype="Session" model="EJB2.1"> <provider>(empty)</provider> <namespace>(empty)</namespace> <name>Fibo</name> <tag name="security_id">use_caller</tag> <tag name="state">stateless</tag> <element> <name>(empty)</name> <type>Fibo</type> <tag name="locality">remote</tag> <trait>business_interfaces</trait> </element> ... </component> </application>

  23. Vizualizace výstupu • Nástroj ENTVis, zobrazení dle kategorií

  24. Závěr • Přínosy • Rozšíření ENT metamodelu • Implementace metamodelu • Zdrojem beany v binárním formátu, není potřeba zdrojových kódu či dokumentace • Náměty na rozšíření • EJB 3.0 • Využití možností Java 5.0 Děkuji za pozornost

More Related