Encyjne komponenty EJB

Wielkość: px
Rozpocząć pokaz od strony:

Download "Encyjne komponenty EJB"

Transkrypt

1 132 Encyjne komponenty EJB Marek Wojciechowski

2 Plan rozdziału 133 Wprowadzenie do encyjnych komponentów EJB Cykl życia encyjnego EJB Tworzenie encyjnego EJB w środowisku Oracle JDeveloper Wykorzystywanie encyjnych EJB Powiązania między encyjnymi EJB Transakcje zarządzane przez kontener Dostęp do encyjnych EJB z poziomu JSP

3 Encyjne komponenty EJB 134 Reprezentują obiekty składowane w bazie danych Na platformie J2EE podstawowym mechanizmem trwałego przechowywania danych jest relacyjna baza danych Przykłady trwałych obiektów: pracownicy, oddziały, produkty,... Nie modelują procesów, nie zawierają skomplikowanej logiki biznesowej, ale zarządzają danymi wykorzystywanymi w procesach biznesowych Mogą zawierać kod np. walidujący dane Typowo każdy komponent encyjny jest oparty o tabelę w relacyjnej bazie danych, a każda instancja komponentu encyjnego reprezentuje wiersz w tabeli Dane z tabel przedstawiane w formie obiektów

4 Instancje encyjnych EJB a dane w bazie danych 135 Wiele instancji encyjnego komponentu EJB może w danej chwili reprezentować te same dane (ten sam wiersz tabeli) Synchronizacja instancji komponentu z bazą danych jest obsługiwana przez kontener Dana instancja encyjnego komponentu EJB nie musi przez cały czas swego istnienia reprezentować tych samych danych (!) Kontener utrzymuje pulę (pool) instancji komponentu W czasie swego istnienia instancje są aktywowane (pobierane z puli) i pasywowane (zwracane do puli) Aktywowane instancje są dynamicznie przypisywane do reprezentacji instancji danych z bazy danych (w kolejnych "okresach aktywności" instancja komponentu może reprezentować różne obiekty tego samego typu)

5 Cechy encyjnych komponentów EJB 136 Trwałość Składowane w bazie danych (typowo) Odporne na awarie aplikacji, serwera aplikacji, serwera bd Trwałość zarządzana przez kontener (CMP) lub komponent (BMP) Współdzielenie komponentu przez wielu klientów Działanie w ramach transakcji (zarządzanych przez kontener: CMT) Możliwość współdzielenia instancji komponentu przez kilku klientów lub korzystania z różnych instancji reprezentujących te same dane Klucz główny (primary key) Unikalny identyfikator obiektu Podstawowe kryterium wyszukiwania obiektów Związki Powiązania z innymi komponentami encyjnymi Analogia do związków między tabelami w relacyjnej bazie danych

6 Trwałość zarządzana przez kontener 137 CMP - Container-Managed Persistence Kontener EJB obsługuje wszystkie operacje na bazie danych, których wymaga komponent Kod komponentu nie zawiera żadnych instrukcji SQL Przenaszalność dzięki niezależności od konkretnej bazy danych Kontener generuje odwołania do bazy danych w oparciu o abstrakcyjny schemat podany w deskryptorach instalacji Kontener EJB obsługuje również związki między komponentami encyjnymi CMR Container-Managed Relationships

7 Trwałość zarządzana przez komponent 138 BMP - Bean-Managed Persistence Twórca komponentu dostarcza kod zarządzający trwałością komponentu: Implementując metody callback do odczytu, zapisu i manipulacji danymi oraz zarządzania związkami np. ejbload(), ejbstore(), ejbcreate(), ejbpostcreate(), ejbremove(), ejbfindxxx() Kod komponentu zawiera wywołania JDBC / SQLJ Ograniczona przenaszalność kod odwołuje się do konkretnego schematu bazy danych Elastyczność twórca komponentu ma "pełną władzę" nad zarządzaniem jego trwałością Niekoniecznie komponent musi odpowiadać jednej tabeli Dane mogą być składowane np. w LDAP, a nie tylko w bazie danych!

8 CMP czy BMP? 139 CMP BMP

9 Składniki encyjnego komponentu EJB 140 Interfejs domowy (Home / LocalHome) Wykorzystywany przez klientów do tworzenia, usuwania i wyszukiwania obiektów encyjnych Interfejs komponentowy (Remote / Local) Zawiera deklaracje metod biznesowych komponentu, udostępnianych klientom Klasa komponentu Reprezentuje dane Zawiera metody dostępu do danych i manipulacji danymi Klasa klucza głównego Wykorzystywana do identyfikacji instancji komponentu Deskryptor instalacji (deployment descriptor) Plik XML zawierający informacje dla kontenera

10 Interfejs domowy 141 Interfejs Home dla klientów zdalnych (i lokalnych) Rozszerza javax.ejb.ejbhome Interfejs LocalHome dla klientów lokalnych Rozszerza javax.ejb.ejblocalhome Zawiera metody do: Tworzenia obiektów encyjnych: 0 lub więcej metod create() Typowo dodające nowy wiersz do tabeli Zwracające interfejs komponentowy Wyszukiwania obiektów encyjnych : metody findxxx() Zwracające interfejs komponentowy lub Collection Obowiązkowo wśród nich findbyprimarykey() Usuwania obiektów encyjnych : remove() Typowo usuwające wiersz z tabeli Podstawowa wersja jako parametr przyjmuje klucz główny Opcjonalnie inne metody nieodnoszące się do konkretnej instancji

11 Interfejs komponentowy 142 Interfejs Remote dla klientów zdalnych (i lokalnych) Rozszerza javax.ejb.ejbobject Interfejs Local dla klientów lokalnych Rozszerza javax.ejb.ejblocalobject Zawiera metody getxxx/setxxx odczytujące i modyfikujące poszczególne pola Opcjonalnie może zawierać metody biznesowe Dziedziczy metody: getejbhome() lub getejblocalhome() getprimarykey()

12 Klasa klucza głównego 143 Klucz główny Jednoznacznie identyfikuje instancje komponentu encyjnego Wykorzystywany przy usuwaniu instancji Podstawowe kryterium selekcji przy wyszukiwaniu instancji Klasa klucza głównego Musi implementować java.io.serializable Definiowana przede wszystkim przy kluczach złożonych Dla kluczy prostych (pojedynczy atrybut) można wykorzystać jedną z klas bibliotecznych np. java.lang.string java.lang.integer java.lang.long...

13 Klasa komponentu 144 Musi implementować interfejs javax.ejb.entitybean Dla każdej metody create() interfejsu domowego zawiera: ejbcreate() inicjalizującą trwałe pola (persistent fields) ejbpostcreate() inicjalizującą pola związków między komp. EJB Implementuje metody: Wyszukujące poprzez ejbfindxxx() Inne metody interfejsu domowego poprzez ejbhomexxx() Metody callback z interfejsu javax.ejb.entitybean: ejbload(), ejbstore(), ejbactivate(), ejbpassivate(), ejbremove(), setentitycontext(...), unsetentitycontext() Metody biznesowe zawarte w interfejsie komponentowym Opcjonalnie inne prywatne metody

14 Cykl życia encyjnego EJB 145 Brak newinstance() setentitycontext() unsetentitycontext() Pasywny (w puli) ejbcreate() ejbpostcreate() ejbremove() ejbactivate() ejbpassivate() ejbload() Gotowy ejbstore()

15 146 Tworzenie encyjnego komponentu EJB CMP - Przykład (1/8) Tworzenie komponentów encyjnych CMP w oparciu o tabele

16 147 Tworzenie encyjnego komponentu EJB CMP - Przykład (2/8) Kreator: wybór tabel z bazy danych Planowane wykorzystanie z serwletu, więc interfejs Local

17 148 Tworzenie encyjnego komponentu EJB CMP - Przykład (3/8) Utworzone pliki dla komponentu encyjnego Emp: EmpLocalHome.java interfejs LocalHome EmpLocal.java interfejs Local EmpBean.java klasa komponentu ejb-jar.xml standardowy deskryptor instalacji orion-ejb-jar.xml specyficzny dla OC4J deskryptor instalacji JDev 9i JDev 10g

18 149 Tworzenie encyjnego komponentu EJB CMP - Przykład (4/8) Interfejs LocalHome (EmpLocalHome.java) package mypackage1; import javax.ejb.ejblocalhome; import javax.ejb.createexception; import javax.ejb.finderexception; import java.util.collection; public interface EmpLocalHome extends EJBLocalHome { EmpLocal create() throws CreateException; EmpLocal create(long empno) throws CreateException; EmpLocal findbyprimarykey(long primarykey) throws FinderException; } Collection findall() throws FinderException;

19 150 Tworzenie encyjnego komponentu EJB CMP - Przykład (5/8) Interfejs Local (EmpLocal.java) package mypackage1; import javax.ejb.ejblocalobject; public interface EmpLocal extends EJBLocalObject { Long getempno(); void setempno(long newempno); String getename(); void setename(string newename);... Long getsal(); void setsal(long newsal); Metody getxxx i setxxx dla pól komponentu } Long getdeptno(); void setdeptno(long newdeptno);

20 151 Tworzenie encyjnego komponentu EJB CMP - Przykład (6/8) Klasa komponentu (EmpBean.java) package mypackage1.impl; import javax.ejb.entitybean; import javax.ejb.entitycontext; import java.sql.timestamp; public abstract class EmpBean implements EntityBean { private EntityContext context; public Long ejbcreate() { return null; } public void ejbpostcreate() {} public Long ejbcreate(long empno) { setempno(empno); return empno; } public void ejbpostcreate(long empno) {} public void ejbactivate() {} public void ejbload() {} public void ejbpassivate() {} public void ejbremove() {} public void ejbstore() {} public void setentitycontext(entitycontext ctx) { this.context = ctx; } public void unsetentitycontext() { this.context = null; } public abstract Long getempno(); public abstract void setempno( Long newempno); public abstract String getename(); public abstract void setename( String newename); public abstract Long getsal(); public abstract void setsal( Long newsal); public abstract Long getdeptno(); public abstract void setdeptno( Long newdeptno); } Metody z interfejsów Local i LocalHome CMP setxxx/getxxx abstrakcyjne CMP wiele spośród "callback" pustych CMP brak metod ejbfindxxx

21 152 Tworzenie encyjnego komponentu EJB CMP - Przykład (7/8) Standardowy deskryptor instalacji (ejb-jar.xml) <?xml version = '1.0' encoding = 'windows-1250'?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" " <ejb-jar> <enterprise-beans> <entity> <description>entity Bean ( CMP )</description> <display-name>emp</display-name> <ejb-name>emp</ejb-name> <local-home>mypackage1.emplocalhome</local-home> <local>mypackage1.emplocal</local> <ejb-class>mypackage1.impl.empbean</ejb-class> <persistence-type>container</persistence-type> <prim-key-class>java.lang.long</prim-key-class> <reentrant>false</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>emp</abstract-schema-name> <cmp-field> <field-name>empno</field-name> </cmp-field> <cmp-field> <field-name>ename</field-name> </cmp-field>... <cmp-field> <field-name>sal</field-name> </cmp-field> <cmp-field> <field-name>deptno</field-name> </cmp-field> <primkey-field>empno</primkey-field> </entity> </enterprise-beans> </ejb-jar> Składniki komponentu Abstrakcyjny schemat

22 153 Tworzenie encyjnego komponentu EJB CMP - Przykład (8/8) Specyficzny dla OC4J deskryptor instalacji (orion-ejb-jar.xml) <?xml version = '1.0' encoding = 'windows-1250'?> <!DOCTYPE orion-ejb-jar PUBLIC "-//Evermind//DTD Enterprise JavaBeans 1.1 runtime//en" " <orion-ejb-jar> <enterprise-beans> <entity-deployment name="emp" data-source="jdbc/marek8ids" table="emp"> <primkey-mapping> <cmp-field-mapping name="empno" persistence-name="empno" persistence-type="number(4)"/> </primkey-mapping> <cmp-field-mapping name="empno" persistence-name="empno" persistence-type="number(4)"/> <cmp-field-mapping name="ename" persistence-name="ename" persistence-type="varchar2(10)"/>... <cmp-field-mapping name="sal" persistence-name="sal" persistence-type="number(7,2)"/> <cmp-field-mapping name="deptno" persistence-name="deptno" persistence-type="number(2)"/> </entity-deployment> </enterprise-beans> <assembly-descriptor> <default-method-access> <security-role-mapping impliesall="true" name="<default-ejb-caller-role>"/> </default-method-access> </assembly-descriptor> </orion-ejb-jar> Mapowanie abstrakcyjnego schematu na schemat konkretnej bazy danych

23 Korzystanie z encyjnych EJB (1/3) 154 Definicja referencji w deskryptorze instalacji: web.xml dla odwołań z serwletów i JSP ejb-jar.xml dla odwołań z innych EJB web.xml <web-app>... <ejb-local-ref> <ejb-ref-name> ejb/emp </ejb-ref-name> <ejb-ref-type> Entity </ejb-ref-type> <local-home> mypackage1.emplocalhome </local-home> <local> mypackage1.emplocal </local> </ejb-local-ref> </web-app>

24 Korzystanie z encyjnych EJB (2/3) 155 Wyszukiwanie metodą findbyprimarykey() try { Context context = new InitialContext(); EmpLocalHome lh = (EmpLocalHome) context.lookup("java:comp/env/ejb/emp"); EmpLocal el = lh.findbyprimarykey(new Long("7499")); out.println("7499: " + el.getename()); } catch (Exception e) { out.println(e); } 7499: ALLEN Wyszukiwanie metodą findall() try { Context context = new InitialContext(); EmpLocalHome lh = (EmpLocalHome) context.lookup("java:comp/env/ejb/emp"); out.println("employees: "); Collection emps = lh.findall(); Iterator it = emps.iterator(); while (it.hasnext()) { el = (EmpLocal) it.next(); out.println(el.getempno() + ": " + el.getename() + ", " + el.getsal()); } } catch (Exception e) { out.println(e); } Employees: 7369: SMITH, : ALLEN, : WARD, : JONES, : MARTIN, : BLAKE, : CLARK, : SCOTT, : KING, : TURNER, : ADAMS, : JAMES, : FORD, : MILLER, 1300

25 Korzystanie z encyjnych EJB (3/3) 156 Tworzenie, modyfikacja i usuwanie danych try { Context context = new InitialContext(); EmpLocalHome lh = (EmpLocalHome) context.lookup("java:comp/env/ejb/emp"); // dodanie nowego pracownika EmpLocal el = lh.create(new Long("9999")); // modyfikacja danych pracownika el.setename("bush"); el.setsal(new Long("4500")); // usuniecie pracownika lh.remove(new Long("9999")); } catch (Exception e) { out.println(e); } Wykorzystanie metody create utworzonej przez kreator (lepszym rozwiązaniem jest dodanie nowej metody create z "pełnym" zestawem parametrów)

26 Metody wyszukujące findxxx() 157 Do wyszukiwania instancji encyjnych EJB służą metody findxxx() zawarte w interfejsie Home / LocalHome Zwracają interfejs komponentowy lub typ Collection BMT: twórca komponentu implementuje odpowiednie metody ejbfindxxx() w klasie komponentu CMT: dla metod findxxx() zadeklarowanych w interfejsie Home / LocalHome, deskryptor instalacji zawiera odpowiednie zapytania w języku EJB QL Nie dotyczy findbyprimarykey() i findall(), które są automatycznie implementowane przez kontener

27 CMP: Dodatkowe metody findxxx() Przykład (1/2) Dodanie metody wyszukującej wg pensji 158 ejb-jar.xml </ejb-jar> </enterprise-beans> </entity>... <query> <query-method> <method-name> findbyminsal </method-name> <method-params> <method-param> int </method-param> </method-params> </query-method> <ejb-ql> SELECT DISTINCT OBJECT(e) FROM Emp e WHERE e.sal >?1 </ejb-ql> </query> </entity> </enterprise-beans> </ejb-jar> Zapytanie odwołujące się do abstrakcyjnego schematu zdefiniowanego w deskryptorze instalacji, wyrażone w języku EJB QL

28 CMP: Dodatkowe metody findxxx() Przykład (2/2) 159 Wyszukiwanie metodą findbyminsal() try { Context context = new InitialContext(); EmpLocalHome lh = (EmpLocalHome) context.lookup("java:comp/env/ejb/emp"); out.println("rich Employees: "); Collection emps = lh.findbyminsal(1280); Iterator it = emps.iterator(); while (it.hasnext()) { el = (EmpLocal) it.next(); out.println(el.getempno() + ": " + el.getename() + ", " + el.getsal()); } } catch (Exception e) { out.println(e); } Rich Employees: 7499: ALLEN, : JONES, : BLAKE, : CLARK, : SCOTT, : KING, : TURNER, : FORD, : MILLER, 1300

29 Język EJB QL 160 Język zapytań dla EJB oparty o SQL-92 Wykorzystywany do deklaratywnego specyfikowania działania metod wyszukujących w komponentach encyjnych CMP Zapewnia przenaszalność zapytań Zapytania definiowane w kontekście abstrakcyjnego schematu (definiowanego w deskryptorze instalacji) Podczas instalacji zapytania tłumaczone na język danej platformy Składnia SELECT... FROM... WHERE... Brak klauzul ORDER BY, GROUP BY, HAVING (!) SELECT DISTINCT OBJECT(e) FROM Emp e WHERE e.sal >?1 Eliminacja duplikatów Zwracanie obiektów Nazwa z abstrakcyjnego schematu Wyrażenie ścieżkowe Pierwszy parametr

30 Powiązania między encyjnymi EJB 161 Zazwyczaj w modelu danych występują związki między danymi W bazie danych istnieją związki między tabelami (poprzez klucze obce) W aplikacji J2EE związki te mogą być reprezentowane jako powiązania między encyjnymi komponentami EJB Podstawowe własności związku to: Liczebność liczba instancji biorących udział w związku: 1:1, 1:N, M:N Kierunkowość kierunki w których możliwa jest nawigacja wg związku: związki jedno- i dwukierunkowe Dla komponentów CMP kontener zarządza związkami CMRs: Container-Managed Relationships (od EJB 2.0) Związki wykorzystują lokalne interfejsy docelowych EJB

31 Tworzenie związków 162 Uwagi o implementacji związków: Dostępne tylko dla EJB 2.0 Dla komponentów opisanych w tym samym deskryptorze instalacji Definicja związku obejmuje: W klasie komponentu: abstrakcyjne metody getxxx/setxxx dla każdego pola reprezentującego powiązanie W deskryptorze instalacji: Nazwa związku, liczebność i kierunkowość Dla każdego kierunku informacje o polu reprezentującym związek Opcjonalnie dla jednego kierunku specyfikacja kaskadowego usuwania Tworzenie związków za pomocą JDevelopera "Ręczna" edycja modułu EJB Wykorzystanie kreatora tworzącego encyjne EJB na podstawie tabel

32 163 Tworzenie związku CMR - Przykład (1/2) Nowy komponent encyjny Dept (CMP), powiązany z wcześniej utworzonym Emp (CMP) Utworzenie związków z wcześniej utworzonymi encyjnymi EJB w oparciu o klucze obce z bazy danych

33 164 Tworzenie związku CMR - Przykład (2/2) Właściwości utworzonego związku

34 CMR: Metody do obsługi związku 165 Metody utworzone przez kreator do obsługi związku: Interfejs EmpLocal komponentu Emp: DeptLocal getdept_deptno() (zamiast Long getdeptno()) void setdept_deptno(deptlocal newdept_deptno) (zamiast void setdeptno(long newdeptno)) Interfejs DeptLocal komponentu Dept: Collection getemp_deptno() void setemp_deptno(collection newemp_deptno)

35 CMR: Nawigacja w oparciu o związek - Przykład 166 try { Context context = new InitialContext(); EmpLocalHome lh = (EmpLocalHome) context.lookup("java:comp/env/ejb/emp"); EmpLocal el = lh.findbyprimarykey(new Long("7499")); out.println("employee #7499's department:"); out.println("7499: " + el.getename() + ", " + el.getdept_deptno().getdname()); out.println("employees in the same department as Emp #7499:"); Odczyt nazwy departamentu dla obiektu Dept DeptLocal dl = el.getdept_deptno(); Collection emps = dl.getemp_deptno(); Iterator it = emps.iterator(); while (it.hasnext()) { EmpLocal e = (EmpLocal) it.next(); if (!e.isidentical(el)) out.println(e.getempno() + ": " + e.getename()); } } catch (Exception e) { out.println(e); } Odczyt obiektu Dept związanego z danym obiektem Emp Odczyt kolekcji obiektów Emp związanych z danym obiektem Dept Test czy 2 obiekty EJB są identyczne Employee #7499's department: 7499: ALLEN, SALES Employees in the same department as Emp #7499: 7521: WARD 7654: MARTIN 7698: BLAKE 7844: TURNER 7900: JAMES

36 Transakcje zarządzane przez kontener 167 W kodzie aplikacji nie ma instrukcji rozpoczynających i kończących transakcje Funkcjonalność ta jest realizowana przez kontener w oparciu o informacje z pliku deployment descriptor CMT to jedyna opcja dla encyjnych EJB (dla sesyjnych wybór między CMT lub BMT)... <assembly-descriptor> <container-transaction> <description>no description</description> <method> <ejb-name>myemployee</ejb-name> <method-name>*</method-name> </method> <trans-attribute>requiresnew</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> ejb-jar.xml

37 Transakcje zarządzane przez kontener 168 atrybut transakcyjny Znaczenie wartości atrybutu transakcyjnego: Komponent encyjny korzystający z CMP, CMR musi działać w ramach transakcji (!) Dozwolone wartości atrybutu transakcyjnego: Required, RequiresNew, Mandatory

38 Transakcje zarządzane przez kontener 169 wycofanie transakcji Kod komponentu korzystającego CMT nie może zawierać instrukcji kończących transakcję (commit(), rollback()) Komponent może zlecić kontenerowi wycofanie transakcji wołając metodę setrollbackonly() na rzecz swego kontekstu EJBContext Referencja na obiekt EJBContext jest zapisywana w jednym z pól komponentu przez metodę setentitycontext() na początku cyklu życia Typowo metoda wywołuje setrollbackonly() przed rzuceniem wyjątku Samo rzucenie wyjątku nie wycofuje transakcji (!) Metoda może sprawdzić czy transakcja została "zaznaczona do wycofania" metodą getrollbackonly()... context.setrollbackonly();...

39 Dostęp do encyjnych EJB z poziomu JSP przy użyciu biblioteki znaczników OJSP EJB 170 Biblioteka znaczników JSP dla EJB może być wykorzystana zarówno do operacji na komponentach sesyjnych jak i encyjnych Plik opisu biblioteki: ejbtaglib.tld musi być instalowany z aplikacją W Oracle ias biblioteka należy do "dobrze znanych" Znaczniki usehome, usebean, createbean zachowują swe znaczenie Typowe dla komponentów encyjnych jest użycie znacznika iterate: Do utworzenia kolekcji instancji encyjnych EJB i iteracji po niej

40 Dostęp do encyjnych EJB z poziomu JSP przy użyciu biblioteki znaczników OJSP EJB- Przykład Salaries.jsp <%@ page contenttype="text/html;charset=windows-1250"%> <%@ taglib uri="/web-inf/ejbtaglib.tld" prefix="ejb" %> <html> <head> <title>employees</title> </head> <body> <ejb:usehome id="home" type="mypackage1.emplocalhome" location="java:comp/env/ejb/emp" local="true"/> <ejb:iterate id="emp" type="mypackage1.emplocal" collection="<%=home.findall()%>" max="50"> Employee #<%=emp.getempno()%>: <%=emp.getename()+" "+ emp.getsal()%>$. <br> </ejb:iterate> </body> </html> Atrybut local konieczny przy korzystaniu z interfejsów lokalnych <%@ page contenttype="text/html;charset=windows-1250"%> <%@ taglib uri="/web-inf/ejbtaglib.tld" prefix="ejb" %> <html> <head> <title>employees</title> </head> <body> <ejb:usehome id="home" type="mypackage1.emplocalhome" location="java:comp/env/ejb/emp" local="true"/> <ejb:iterate id="emp" type="mypackage1.emplocal" collection="<%=home.findall()%>" max="50"> Employee #<jsp:getproperty name="emp" property="empno" />: <jsp:getproperty name="emp" property="ename" /> <jsp:getproperty name="emp" property="sal" />$. <br> </ejb:iterate> </body> </html> Możliwość korzystania jak z JavaBeans 171

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa

Bardziej szczegółowo

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów

Bardziej szczegółowo

Budowa komponentów Enterprise JavaBeans

Budowa komponentów Enterprise JavaBeans VII Seminarium PLOUG Warszawa Marzec 2003 Budowa komponentów Enterprise JavaBeans Maciej Zakrzewicz, Marek Wojciechowski mzakrz, marek@cs.put.poznan.pl Politechnika Poznañska Instytut Informatyki Streszczenie

Bardziej szczegółowo

Wprowadzenie do Enterprise JavaBeans 2.0

Wprowadzenie do Enterprise JavaBeans 2.0 71 Wprowadzenie do Enterprise JavaBeans 2.0 Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 72 Wprowadzenie do EJB Rodzaje komponentów Zdalny

Bardziej szczegółowo

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek Enterprise JavaBean EJB 2.x oraz zmiany w standardzie dla EJB 3.0 Michał Stanek Plan prezentacji Czym jest EJB Architektura aplikacji J2EE oraz kontener EJB Typy komponentów JavaBean EJB 1.0, EJB 2.x Wady

Bardziej szczegółowo

Dostęp do baz danych z aplikacji J2EE

Dostęp do baz danych z aplikacji J2EE 47 Dostęp do baz danych z aplikacji J2EE Marek Wojciechowski Marek.Wojciechowski@cs.put.poznan.pl http://www.cs.put.poznan.pl/mwojciechowski/ Plan rozdziału 48 Źródła danych w JDBC Java Naming and Directory

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Platforma J2EE i EJB. Oprogramowanie systemów równoległych i rozproszonych Wykład 9. Rola EJB na platformie J2EE. Dr inż. Tomasz Olas olas@icis.pcz.

Platforma J2EE i EJB. Oprogramowanie systemów równoległych i rozproszonych Wykład 9. Rola EJB na platformie J2EE. Dr inż. Tomasz Olas olas@icis.pcz. Platforma J2EE i EJB Oprogramowanie systemów równoległych i rozproszonych Wykład 9 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Platforma

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Usługa TimerService ejbtimeout() @javax.ejb.timeout

Usługa TimerService ejbtimeout() @javax.ejb.timeout TimerService i JNDI 1. Usługa TimerServiece, interfejsy TimedObject, TimerService, Timer, TimerHandle transakcje, zastosowanie usługi w komponentach EJB, cykl życia EJB, problemy. 2. Zasoby JNDI i wstrzykiwanie,

Bardziej szczegółowo

Bezstanowe komponenty sesyjne i zdarzenia zwrotne

Bezstanowe komponenty sesyjne i zdarzenia zwrotne Bezstanowe komponenty sesyjne i zdarzenia zwrotne 1. Zdarzenia zwrotne. klasy nasłuchujące, klasy nasłuchujące a dziedziczenie. 2. Bezstanowe komponenty sesyjne. interfejsy: bazowy, zdalny i lokalny, obiekty

Bardziej szczegółowo

Stanowe komponenty sesyjne

Stanowe komponenty sesyjne Stanowe komponenty sesyjne 1. Porównanie komponentów stanowych i bezstanowych. 2. Cykl życia stanowego komponentu sesyjnego, 3. Komponenty sesyjne a kontekst utrwalania, 4. Zagnieżdżanie komponentów sesyjnych,

Bardziej szczegółowo

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

Enterprise JavaBeans (EJB)

Enterprise JavaBeans (EJB) Enterprise JavaBeans (EJB) Wykład prowadzi: Marek Wojciechowski Enterprise JavaBeans (EJB) 1 Plan wykładu Wprowadzenie do technologii EJB Typy komponentów EJB Klienci dla komponentów EJB Transakcje w EJB

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

Bardziej szczegółowo

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK Zaawansowane aplikacje internetowe EJB 2 Celem tego laboratorium jest pokazanie, w jaki sposób aplikacje stworzone w różnych technologiach mogą korzystać z funkcjonalności udostępnianej przez komponenty

Bardziej szczegółowo

"Biznesowe" wzorce projektowe

Biznesowe wzorce projektowe POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych

Bardziej szczegółowo

Podstawowe informacje o technologii Java Persistence API - przykład

Podstawowe informacje o technologii Java Persistence API - przykład Podstawowe informacje o technologii Java Persistence API - przykład na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe 3_2 1 1. Wykonanie kopii programu Sklep_6 2 1. Wykonanie

Bardziej szczegółowo

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 1 Enterprise JavaBeans 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 2 Enterprise JavaBeans Enterprise JavaBeans (EJB) to specyfikacja

Bardziej szczegółowo

Komponenty sterowane komunikatami

Komponenty sterowane komunikatami Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty

Bardziej szczegółowo

Enterprise Java Beans wykład 7 i 8

Enterprise Java Beans wykład 7 i 8 Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Enterprise Java Beans wykład 7 i 8 Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Co to jest EJB Architektura EJB

Bardziej szczegółowo

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe HIBERNATE CD. Rodzaje relacji Jeden do wielu Pojedyncza Osoba ma wiele Wpisów Wiele do jednego Wiele Wpisów należy do jednej Osoby Jeden do jednego Pojedyncza

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej Jarosław Kuchta Wzorce projektowe warstwy biznesowej Wzorce projektowe dotyczące danych, obiektów i logiki biznesowej Transfer Object Assembler Łączy dane pochodzące z różnych komponentów biznesowych Composite

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Java EE: JSF + EJB + JPA

Java EE: JSF + EJB + JPA Java EE: JSF + EJB + JPA Celem ćwiczenia jest utworzenie prostej aplikacji bazodanowej umożliwiającej przeglądanie i dodawanie zleceń serwisowych. Ćwiczenie pokazuje współpracę technologii JSF (podstawowej

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

Obs³uga transakcji rozproszonych w jêzyku Java

Obs³uga transakcji rozproszonych w jêzyku Java VII Seminarium PLOUG Warszawa Marzec 2003 Obs³uga transakcji rozproszonych w jêzyku Java Marek Wojciechowski, Maciej Zakrzewicz marek, mzakrz}@cs.put.poznan.pl Politechnika Poznañska, Instytut Informatyki

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie

Bardziej szczegółowo

1. Model ACID. 2. Deklaratywne zarządzanie transakcjami, atrybuty transakcji. 3. Propagacja transakcji. transakcje rozproszone, propagacja kontekstu

1. Model ACID. 2. Deklaratywne zarządzanie transakcjami, atrybuty transakcji. 3. Propagacja transakcji. transakcje rozproszone, propagacja kontekstu Transakcje 1. Model ACID. 2. Deklaratywne zarządzanie transakcjami, atrybuty transakcji. 3. Propagacja transakcji. transakcje rozproszone, propagacja kontekstu utrwalania. 3. Izolacja typowe problemy,

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Transakcje w systemach Java Enterprise Korzystanie z systemów kolejkowania w serwerach aplikacji

Transakcje w systemach Java Enterprise Korzystanie z systemów kolejkowania w serwerach aplikacji Transakcje w systemach Java Enterprise Korzystanie z systemów kolejkowania w serwerach aplikacji Systemy kolejkowania w środowisku serwera aplikacji Możliwość korzystania z systemów kolejkowania w aplikacjach

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Wprowadzenie do J2EE. Maciej Zakrzewicz. Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/

Wprowadzenie do J2EE. Maciej Zakrzewicz. Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ 1 Wprowadzenie do J2EE Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji

Bardziej szczegółowo

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB) Wielowarstwowe aplikacje internetowe Plan wykładu Enterprise JavaBeans (EJB) Wprowadzenie do technologii EJB Typy komponentów EJB Klienci dla komponentów EJB Transakcje w EJB JavaServer Faces (JSF) Enterprise

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

Programowanie komponentowe 5

Programowanie komponentowe 5 Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf

Bardziej szczegółowo

Business Intelligence Beans + Oracle JDeveloper

Business Intelligence Beans + Oracle JDeveloper Business Intelligence Beans + Oracle JDeveloper 360 Plan rozdziału 361 Wprowadzenie do Java OLAP API Architektura BI Beans Instalacja katalogu BI Beans Tworzenie aplikacji BI Beans Zapisywanie obiektów

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Enterprise JavaBeans (EJB)

Enterprise JavaBeans (EJB) Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z sesyjnymi komponentami Enterprise JavaBeans. Zilustrowane będą różnice między komponentami stanowymi i bezstanowymi. Pokazane będzie

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Enterprise Java Beans Narzędzia i Aplikacje Java EE

Enterprise Java Beans Narzędzia i Aplikacje Java EE Enterprise Java Beans Narzędzia i Aplikacje Java EE Michał Piotrowski Michał Wójcik Waldemar Korłub Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika

Bardziej szczegółowo

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Obiekt interfejsu Session Jest to podstawowy interfejs komunikacji pomiędzy aplikacją, a API Hibernate

Bardziej szczegółowo

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE 276 Oracle9iAS: instalacja i konfiguracja aplikacji J2EE Marek Wojciechowski Marek.Wojciechowski@cs.put.poznan.pl http://www.cs.put.poznan.pl/mwojciechowski/ Plan rozdziału 277 Przypomnienie architektury

Bardziej szczegółowo

Builder (budowniczy) Cel: Przykład:

Builder (budowniczy) Cel: Przykład: 1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Service Locator Ułatwia wyszukanie komponentów usługowych Service Activator Umożliwia asynchroniczne przesyłanie żądań do komponentów biznesowych

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Projektowanie aplikacji J2EE w architekturze Model-View-Controller XI Konferencja PLOUG Kościelisko Październik 2005 Projektowanie aplikacji J2EE w architekturze Model-View-Controller Maciej Zakrzewicz PLOUG, Instytut Informatyki Politechniki Poznańskiej mzakrz@cs.put.poznan.pl

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski ASP.NET (2) Contexts and Dependency Injection (CDI) Specyfikacja składowa Java EE 6 dotycząca współpracy warstwy prezentacji z

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje

Bardziej szczegółowo

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

1. Podstawowe usługi bezpieczeństwa. 2. Użytkownicy i role. przydzielanie uprawnie ń metodom, role komponentów, korzystanie i konfiguracja

1. Podstawowe usługi bezpieczeństwa. 2. Użytkownicy i role. przydzielanie uprawnie ń metodom, role komponentów, korzystanie i konfiguracja Bezpieczeństwo 1. Podstawowe usługi bezpieczeństwa. 2. Użytkownicy i role. przydzielanie uprawnie ń metodom, role komponentów, korzystanie i konfiguracja mechanizmów bezpieczeństwa w Jboss 3. Java Authentication

Bardziej szczegółowo

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo