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

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

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

Transkrypt

1 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 and Authorization Service. uwierzytelnianie, autoryzacja. 1

2 Bezpieczeństwo Aplikacje biznesowe zwykle musz ą zapewnić odpowiedni poziom bezpieczeństwa, korzystającym z nich użytkownikom. Specyfikacje JEE i EJB udostępniaj ą podstawowy zakres usług bezpieczeństwa: uwierzytelnianie (authentication) sprawdzenie tożsamości użytkownika, autoryzacja (authorization) określenie praw użytkownika do realizacji odpowiednich zada ń i korzystania z określonych zasobów, poufność (confidentality) ochrona przed podsłuchem i podmian ą przekazywanych informacji. 2

3 Uwierzytelnianie Specyfikacja EJB nie określa w jaki sposób ma si ę odbywać uwierzytelnianie, pomimo i ż specyfikuje propagacj ę tych informacji od klienta do serwera. Z tego powodu producenci serwerów aplikacji często stosuj ą określone technologie do realizacji tego zadania (np. JAAS). Często uwierzytelniania dokonuje si ę w momencie uzyskiwania dostępu do zasobów poprzez usług ę JNDI. properties.put(context.security_principal, username); properties.put(context.security_credentials, userpassword); InitialContext ctx = new InitialContext(properties); Object ref = jndicontext.lookup("travelagent"); TravelAgentRemote remote = (TravelAgentRemote) PortableRemoteObject.narrow(ref, TravelAgentRemote.class) 3

4 Autoryzacja: użytkownicy i role użytkownicy: Tomasz role: Administrator Alicja Joanna Menadżer Janusz Michał Pracownik Użytkownicy s ą przypisani do jednej lub kilku ról. Uprawnienia s ą określone na poziomie ról za pomoc ą adnotacji lub deskryptora wdrożenia: ejb-jar.xml. 4

5 Przydzielanie uprawnie ń metodom... domyślna dla // wszystkich metod public class ProcessPaymentBean implements ProcessPaymentRemote, ProcessPaymentLocal // wszyscy uwierzytelnieni public boolean bycash(customer customer, double amount) throws // zaufani agenci public boolean bycheck(customer customer, CheckDO check, double amount) throws PaymentException{... // zautoryzowani agenci - domyślnie public boolean bycredit(customer customer, CreditCardDO card, double amount) throws PaymentException{

6 Przydzielanie uprawnie ń metodom <ejb-jar version="3.0"> <assembly-descriptor> <security-role> <description>zautoryzowani</description> <role-name>authorized_merchant</role-name> </security-role> <security-role> <description>zaufani</descripton> <role-name>check_fraud_enabled</role-name> </security-role> <method-permission> <role-name>authorized_merchant</role-name> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycredit</method-name> </method> </method-permission> 6

7 Przydzielanie uprawnie ń metodom <method-permission> <role-name>check_fraud_enabled</role-name> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycheck</method-name> </method> </method-permission> <method-permission> <unchecked/> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycash</method-name> </method> </method-permission> </assembly-descriptor> </ejb-jar> 7

8 Identyfikowanie metod w XML'u Określając metody możemy używać wyraże ń wieloznacznych, np: <method> <ejb-name>processpaymentbean</ejb-name> <method-name>*</method-name> </method> oznacza wszystkie metody w komponencie ProcessPaymentBean. <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycheck</method-name> </method> oznacza wszystkie metody w komponencie ProcessPaymentBean o nazwie public interface ProcessPaymentLocal { boolean bycheck(customer cust, CheckDO check, double amount); boolean bycheck(double[] amounts); boolean bycheck( ); 8

9 Identyfikowanie metod w XML'u - parametry Precyzyjne określenie powyższych metod uzyskujemy korzystając z elementu <method-params>: <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycheck</method-name> <method-params> <method-param>com.titan.domain.customer</method-param> <method-param>com.titan.processpayment.checkdo</method-param> <method-param>double</method-param> </method-params> </method> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycheck</method-name> <method-params></method-params> </method> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycheck</method-name> <method-params>double[]</method-params> </method> 9

10 Identyfikowanie metod w XML'u - interfejsy Interfejs zdalny/lokalny określamy następująco: <method> <ejb-name>processpaymentbean</ejb-name> <method-name>*</method-name> <method-intf>remote</method_intf> </method> Wewną trz <method-intf> dopuszczalne s ą następujące wartości: Remote, Home, LocalHome, Local, ServiceEndpoint. Aby wykluczyć dostęp do metody można uż yć lub wpisać j ą na list ę <exclude-list>: <assembly-descriptor> <exclude-list> <method> <ejb-name>processpaymentbean</ejb-name> <method-name>bycash</method-name> </method> </exclude-list> </assembly-descriptor> 10

11 Role komponentów Komponenty EJB równie ż mog ą występować w określonych rolach. Aby zdefiniować takie zachowanie korzystamy z public class TravelAgentBean implements TravelAgentRemote{... lub z deskryptora wdrorzenia: <ejb-jar version="3.0"> <enterprise-beans> <session> <ejb-name>travelagentbean</ejb-name> <security-identity> <run-as> <role-name>authorized_merchant</role-name> </run-as> </security-identity> </session> </enterprise-beans> </ejb-jar> 11

12 Role komponentów Komponenty sesyjne stanowe mog ą dodatkowo używać roli korzystającego z nich klienta. <enterprise-beans> <entity> <ejb-name>employeeservice</ejb-name> <security-identity> <user-caller-identity/> </security-identity> </entity> </enterprise-beans> 12

13 Korzystanie z mechanizmów bezpieczeństwa Komponenty EJB posiadaj ą dostęp do informacji o uprawnieniach klienta. Przykładem mog ą być metody interfejsu EJBContext. getcallerprincipal() - zwraca obiekt implementujący interfejs java.security.principal opisujący klienta: Principal caller = ctx.getcallerprincipal( ); String travelagent = caller.getname( ); iscallerinrole(string) sprawdza, czy klientowi jest przypisana odpowiednia rola. if (amount > maximumjuniortrade && ctx.iscallerinrole("junior_travel_agent")) throw new PaymentException("Brak uprawnien"); Rola wykorzystywana w kodzie komponentu musi być wcześniej zadeklarowana. 13

14 Korzystanie z mechanizmów bezpieczeństwa... import javax.ejb.*; import javax.annotation.*; public class ProcessPaymentBean implements ProcessPaymentLocal SessionContext ctx;... private boolean process(...) throws PaymentException { if (ctx.iscallerinrole("junior_travel_agent")) throw new PaymentException("Brak uprawnien");... 14

15 Korzystanie z mechanizmów bezpieczeństwa Alternatywnie, rola może zostać zadeklarowana w deskryptorze wdrożenia: <ejb-jar version="3.0"> <enterprise-beans> <session> <ejb-name>processpaymentbean</ejb-name> <security-role-ref> <role-name>junior_travel_agent</role-name> </security-role-ref> </session> </enterprise-beans> </ejb-jar> 15

16 Konfiguracja bezpieczeństwa w JBoss Na wstępie należy utworzyć domen ę bezpieczeństwa ( security domain). JBoss obsługuje trzy sposoby konfiguracji domen: LDAP, bazy danych oraz plik conf/login-config.xml. <application-policy name="titanidentitydb"> <authentication> <login-module code="org.jboss.security.auth.spi.usersrolesloginmodule" flag = "required"> <module-option name="usersproperties"> users-titan.properties </module-option> <module-option name="rolesproperties"> roles-titan.properties </module-option> </login-module> </authentication> </application-policy> 16

17 Konfiguracja bezpieczeństwa Pliki users-titan.properties i roles-titan.properties musz ą znajdować si ę na scieżce klass aplikacji. Przykładowa zawartość: users-titan.properties michal=alamakota tomasz=tomasz123 roles-titan.properties michal=user tomasz=user, ADMINISTRATOR alicja=manager, ADMINISTRATOR w JBoss fragment aplikacji klienckiej (autoryzacja poprzez JNDI): public Context getinitialcontext( ) throws Exception { Properties env = new Properties( ); env.setproperty(context.security_principal, user); env.setproperty(context.security_credentials, password); env.setproperty(context.initial_context_factory, "org.jboss.security.jndi.jndilogininitialcontextfactory"); return new InitialContext(env); 17

18 JBoss i JAAS JAAS (Java Authentication and Authorization Service) jest specyfikacj ą umożliwiając ą zarządzanie bezpieczeństwem z poziomu Języka Java. Od wersji 1.4 JAAS zostało włączone do j2sdk (Java 2 Standard Developer Kit). Serwer JBoss podczas przeprowadzenia uwierzytelniania i autoryzacji korzysta z infrastruktury omówionej w ramach JAAS. 18

19 JAAS - przykład package sample; import java.io.*; import java.util.*; import javax.security.auth.login.*; import javax.security.auth.*; import javax.security.auth.callback.*; public class SampleAcn { public static void main(string[] args) { LoginContext lc = null; try { lc = new LoginContext("Sample", new MyCallbackHandler()); catch (Exception ex){ex.printstacktrace();system.exit(-1); try { lc.login(); catch (Exception ex){ex.printstacktrace();system.exit(-1); System.out.println("Authentication succeeded!"); 19

20 JAAS kontekst logowania Kontekst logowania potrzebuje informacji o: - klasie odpowiedzialnej za komunikacj ę z użytkownikiem, implementującej interfejs CallbackHandler (MyCallbackHandler). Sun dostarcza dwie klasy, które można wykorzystać we własnych aplikacjach: TextCallbackHandler i DialogCallbackHandler. - klasie implementującej wymagany sposób uwierzytelniania implementującej sample_jaas.config): LoginModule (plik konfiguracyjny Sample { sample.module.sampleloginmodule required debug=true; ; 20

21 JAAS - CallbackHandler class MyCallbackHandler implements CallbackHandler { public void handle(callback[] callbacks) throws IOException, UnsupportedCallbackException { for (int i = 0; i < callbacks.length; i++) { if (callbacks[i] instanceof TextOutputCallback) { // display the message according to the specified type TextOutputCallback toc = (TextOutputCallback)callbacks[i]; switch (toc.getmessagetype()) { case TextOutputCallback.INFORMATION: System.out.println(toc.getMessage()); break; case TextOutputCallback.ERROR: System.out.println("ERROR: " + toc.getmessage()); break; case TextOutputCallback.WARNING: System.out.println("WARNING: " + toc.getmessage()); break; default: throw new IOException("Unsupported message type: " + toc.getmessagetype()); 21

22 JAAS - CallbackHandler else if (callbacks[i] instanceof NameCallback) { NameCallback nc = (NameCallback)callbacks[i]; System.err.print(nc.getPrompt()); System.err.flush(); nc.setname((new BufferedReader (new InputStreamReader(System.in))).readLine()); else if (callbacks[i] instanceof PasswordCallback) { // prompt the user for sensitive information PasswordCallback pc = (PasswordCallback)callbacks[i]; System.err.print(pc.getPrompt()); System.err.flush(); pc.setpassword(readpassword(system.in)); else { throw new UnsupportedCallbackException (callbacks[i], "Unrecognized Callback"); // Czyta haslo z podanego strumienia private char[] readpassword(inputstream in) throws IOException {... 22

23 JAAS - LoginModule Kontekst logowania tworzy nowy pusty obiekt Subject reprezentujący uwierzytelnianego użytkownika lub usług ę, oraz moduł logujący LoginModule. Wywołanie metody login() powoduje uwierzytelnienie, utworzenie jednego lub wielu obiektów implementujących Principal (prawa dostępu) oraz dodanie ich do obiektu Subject. Gotowy zbiór modułów logowania (com.sun.security.auth.module): JndiLoginModule uwierzytelnianie poprzez JNDI, KeyStoreLoginModule alias zapisany w keystore, Krb5LoginModule uwierzytelnianie za pomoc ą protokołu Kerberos, NTLoginModule uwierzytelnianie poprzez Windows NT UnixLoginModule systemy UNIX 23

24 JAAS - LoginModule package sample.module; import... public class SampleLoginModule implements LoginModule { // stan początkowy private Subject subject; private CallbackHandler callbackhandler; private Map sharedstate; private Map options; // opcje private boolean debug = false; // status uwierzytelniania private boolean succeeded = false; private boolean commitsucceeded = false; // użytkownik i haslo private String username; private char[] pass // przykładowy Principal private SamplePrincipal userprincipal; 24

25 JAAS - LoginModule public void initialize(subject subject, CallbackHandler callbackhandler, Map sharedstate, Map options) { this.subject = subject; this.callbackhandler = callbackhandler; this.sharedstate = sharedstate; this.options = options; // initialize any configured options debug = "true".equalsignorecase( (String)options.get("debug")); public boolean login() throws LoginException { // przygotowanie - prośba o login i hasło if (callbackhandler == null) throw new LoginException("brak CallbackHandler'a "); Callback[] callbacks = new Callback[2]; callbacks[0] = new NameCallback("login: "); callbacks[1] = new PasswordCallback("haslo: ", false); 25

26 JAAS - LoginModule try { callbackhandler.handle(callbacks); username = ((NameCallback)callbacks[0]).getName(); char[] tmppass = ((PasswordCallback)callbacks[1]).getPassword(); if (tmppass == null) tmppass = new char[0]; pass = new char[tmppass.length]; System.arraycopy(tmpPass, 0, pass, 0, tmppass.length); ((PasswordCallback)callbacks[1]).clearPassword(); catch (Exception ex) { throw new LoginException(ex.toString()); boolean buser = false, bpass = false; if (username.equals("testuser")) buser = true; if (buser && pass.length==12 && pass[0]=='t' &&... ){ bpass = true; succeeded = true; return true; else { // zły login/hasło succeeded = false; username = null; password = null; if (!buser) throw new FailedLoginException("Zły login"); else throw new FailedLoginException("Złe hasło"); 26

27 JAAS - LoginModule public boolean commit() throws LoginException { if (succeeded == false) return false; else { // przypisujemy użytkownikowi obiekt Principal userprincipal = new SamplePrincipal(username); if (!subject.getprincipals().contains(userprincipal)) subject.getprincipals().add(userprincipal); // porządki username = null; password = null; commitsucceeded = true; return true; public boolean abort() throws LoginException { if (succeeded == false) return false; else if (succeeded == true && commitsucceeded == false){ // logowanie pomyślne ale brak uwierzytelnienia succeeded = false; username = null; password = null; userprincipal = null; else { // inny problem logout(); return true; 27

28 JAAS - LoginModule public boolean logout() throws LoginException { subject.getprincipals().remove(userprincipal); succeeded = false; succeeded = commitsucceeded; username = null; password = null; userprincipal = null; return true; Metody initialize(), login(), commit(), abort() i logout() nale żą do interfejsu LoginModule. 28

29 JAAS - Autoryzacja Kolejnym etapem po sprawdzeniu tożsamości użytkownika (uwierzytelnieniu) jest autoryzacja (określenie i nadanie właściwych uprawnie ń). W tym celu należy: określić uprawnienia dla odpowiednich obiektów Principal, związać obiekt Subject z aktualnym kontekstem kontroli dostępu. 29

30 JAAS - Autoryzacja package sample; import... public class SampleAzn { public static void main(string[] args) { LoginContext lc = null; try { lc = new LoginContext("Sample", new MyCallbackHandler()); lc.login(); catch (Exception ex) {... Subject mysubject = lc.getsubject();... // wywołanie przykładowej akcji PrivilegedAction action = new SampleAction(); Subject.doAsPrivileged(mySubject, action, null); System.exit(0); 30

31 JAAS przykładowa akcja package sample; import java.io.file; import java.security.privilegedaction; public class SampleAction implements PrivilegedAction { public Object run() { System.out.println("\njava.home = " + System.getProperty("java.home")); System.out.println("\nuser.home = " + System.getProperty("user.home")); File f = new File("plik.txt"); System.out.print("\nplik.txt "); if (!f.exists()) System.out.print("nie "); System.out.println("istnieje."); return null; 31

32 JAAS polisa /* prawa dla LoginModule */ grant codebase "file:./samplelm.jar" { permission javax.security.auth.authpermission "modifyprincipals"; ; grant codebase "file:./sampleazn.jar" { permission javax.security.auth.authpermission "createlogincontext.sample"; permission javax.security.auth.authpermission "doasprivileged"; ; /* Określenie prawd dostępu do SampleAction */ grant codebase "file:./sampleaction.jar", Principal sample.principal.sampleprincipal "testuser" { ; permission java.util.propertypermission "java.home", "read"; permission java.util.propertypermission "user.home", "read"; permission java.io.filepermission "foo.txt", "read"; 32

33 JAAS przygotowanie i uruchomienie jar -cvf SampleAzn.jar sample/sampleazn.class sample/mycallbackhandler.class jar -cvf SampleAction.jar sample/sampleaction.class jar -cvf SampleLM.jar sample/module/sampleloginmodule.class sample/principal/sampleprincipal.class java -classpath SampleAzn.jar:SampleAction.jar:SampleLM.jar -Djava.security.manager -Djava.security.policy==sampleazn.policy -Djava.security.auth.login.config==sample_jaas.config sample.sampleazn 33

34 Podsumowanie Specyfikacja JEE określa sposób zarządzania bezpieczeństwem poprzez określenia uprawnie ń dla ról, do których mog ą być przypisywani użytkownicy. Sposób uwierzytelniania jest zależny od kontenera EJB. Najpopularniejsz ą usług ą realizując ą te zadania w świecie Javy jest JAAS. 34

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

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

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

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

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 14 Bezpieczeństwo Podstawowe pojęcia uwierzytelniania (authentication) autoryzacja (authorization) atrybuty bezpieczeństwa informacji integralność danych (data integrity)

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

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); } Web Services 1. Podstawy usług sieciowych. SOAP, WSDL. 2. Usługi sieciowe w JAX-RPC. interfejs punktu końcowego, korzystanie z usługi z poziomu komponentu EJB, programy klienckie, narzędzia i deskryptory

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

O autorach... 11 Wprowadzenie... 13 Rozdział 1. Instalacja i kompilacja serwera JBoss... 23

O autorach... 11 Wprowadzenie... 13 Rozdział 1. Instalacja i kompilacja serwera JBoss... 23 Spis treści O autorach... 11 Wprowadzenie... 13 Rozdział 1. Instalacja i kompilacja serwera JBoss... 23 Pobranie plików binarnych... 24 Warunki instalacji... 24 Instalacja serwera przy użyciu pakietu zawierającego

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

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

JBoss 4.0. Podrêcznik administratora

JBoss 4.0. Podrêcznik administratora IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE

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

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

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

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

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

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 wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 7 Enterprise Java Beans Zagadnienia dotyczące systemów rozproszonych Zdalne wołanie metod (ang. Remote Method Invocation) Wielowątkowość (ang. Threading) Współpraca

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System

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

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

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

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

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

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

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

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 4 Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Protokół SSL do zabezpieczenia aplikacji na poziomie protokołu transportowego

Bardziej szczegółowo

(Pluggable Authentication Modules). Wyjaśnienie technologii.

(Pluggable Authentication Modules). Wyjaśnienie technologii. Bezpieczeństwo systemów komputerowych. Temat seminarium: Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii Autor: Bartosz Hetmański Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

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

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne

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

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

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

Bardziej szczegółowo

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku

Bardziej szczegółowo

Java programowanie w sieci. java.net RMI

Java programowanie w sieci. java.net RMI Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

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

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

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Konfigurowanie edytora programu za pomocą Tools/Options/Editor Konfigurowanie edytora programu za pomocą

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

Wzorce prezentacji internetowych

Wzorce prezentacji internetowych Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html JAVA I BAZY DANYCH ZAGADNIENIA: wprowadzenie; JDBC; komunikacja z bazą danych; HSQLDB. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii

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

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej

Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej UJ 2006/2007 Michał Cieśla pok. 440a, email: ciesla@if.uj.edu.pl konsultacje: wtorki 10-12 http://users.uj.edu.pl/~ciesla/ 1 2 Plan wykładu

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Serwer współbieżny połączeniowy

Serwer współbieżny połączeniowy Serwery współbieżne 1. Serwery współbieżne serwery połączeniowe, usuwanie zakończonych procesów, serwery bezpołączeniowe, 2. Jednoprocesowe serwery współbieżne. koncepcja i implementacja. 1 Serwer współbieżny

Bardziej szczegółowo

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji. Temat Stworzenie systemu składającego się z prostej usługi sieciowej (ang. web service) oraz komunikującej się z nią aplikacji klienckiej umożliwiającej dostęp do usługi przez przeglądarkę internetową.

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream

Bardziej szczegółowo

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d.

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d. Java Enterprise Edition spotkanie nr 4 Java Server Pages c.d. 1 Opracował Jacek Sroka Implict variables & objects application javax.servlet.servletcontext np. application.log() lub getrealpath("/web-inf/licznik.txt")

Bardziej szczegółowo

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

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

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 9 Java Message Service i Message-Driven Beans Alternatywa dla RMI-IIOP asynchroniczność (asynchrony) brak blokowania daje się fire-and-forget rozprężenie (decoupling)

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

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

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Wprowadzenie do Active Directory. Udostępnianie katalogów

Wprowadzenie do Active Directory. Udostępnianie katalogów Wprowadzenie do Active Directory. Udostępnianie katalogów Wprowadzenie do Active Directory. Udostępnianie katalogów. Prowadzący: Grzegorz Zawadzki MCITP: Enterprise Administrator on Windows Server 2008

Bardziej szczegółowo

Java. Michał Wójcik. michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl

Java. Michał Wójcik. michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl Java Michał Wójcik michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska 5 kwietnia

Bardziej szczegółowo

J2EE Project PRZEMYSŁAW SOŁTAN. (1.1 RC2 build 03.01.2005) e-mail: kerk@moskit.ie.tu.koszalin.pl

J2EE Project PRZEMYSŁAW SOŁTAN. (1.1 RC2 build 03.01.2005) e-mail: kerk@moskit.ie.tu.koszalin.pl J2EE Project PRZEMYSŁAW SOŁTAN e-mail: kerk@moskit.ie.tu.koszalin.pl (1.1 RC2 build 03.01.2005) Dokumentacja Proces tworzenia niniejszego dokumentu zrealizowano przy użyciu darmowego oprogramowania OpenOffice

Bardziej szczegółowo

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF O mnie 12 lat doświadczenia w systemach WEB Java/JEE (ISC) 2 CISSP CTO w J-LABS GET / HTTP/1.1 Host: bank.pl User-Agent: Mozilla/5.0

Bardziej szczegółowo

JUNIT. Terminologia. Organizacja testów

JUNIT. Terminologia. Organizacja testów JUNIT Terminologia Test coverage zarkes badań testowany kawałek kodu Test lokalny local test badanie pojedynczej klasy itp. Text fixture armatura pomiarowa (wat?) punkt odniesienia do testów Integration

Bardziej szczegółowo

Programowanie współbieżne Laboratorium nr 11

Programowanie współbieżne Laboratorium nr 11 Programowanie współbieżne Laboratorium nr 11 Wykonywane w danym momencie programy nazwano procesami [1] - izolowanymi, niezależnie wykonywanymi programami, dla których system operacyjny przydzielał pamięć,

Bardziej szczegółowo

SOAP. Autor: Piotr Sobczak

SOAP. Autor: Piotr Sobczak SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x?

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x? Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x? Przykład autoryzacji 802.1x dokonano w oparciu serwer Microsoft Windows 2003 i

Bardziej szczegółowo

Aplikacje www laboratorium

Aplikacje www laboratorium Aplikacje www laboratorium Konfigurowanie zabezpieczeń w oparciu o JAAS w serwerze GlassFish Zabezpieczanie aplikacji webowych z wykorzystaniem JASS jest w podstawowych zastosowaniach procesem dwuetapowym.

Bardziej szczegółowo

Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej

Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej Bezpieczne gniazda Poufna komunikacja przez otwarte medium, takie jak Internet, która ma uniemożliwiać podsłuch, bezwzględnie wymaga

Bardziej szczegółowo

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody W bloku inicjalizacji nie można wywołać konstruktora klasy nadrzędnej (poprzez super). class Klasa{

Bardziej szczegółowo

Podpisywanie i bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/

Podpisywanie i bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/ Podpisywanie i bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/ security1.2/ 1 Ograniczanie zabezpieczeń przed uruchamianymi apletami napisanymi przez uwierzytelnianych autorów

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Piotr Matkowski Wprowadzenie do J2EE 20 kwietnia 2005. "Unfortunately, no one can be...told what the J2EE is. You have to see it for yourself.

Piotr Matkowski Wprowadzenie do J2EE 20 kwietnia 2005. Unfortunately, no one can be...told what the J2EE is. You have to see it for yourself. Piotr Matkowski Wprowadzenie do J2EE 20 kwietnia 2005 "Unfortunately, no one can be...told what the J2EE is. You have to see it for yourself." Plan referatu 1.Wstęp 2.Najważniejsze koncepcje Wielowarstwowość

Bardziej szczegółowo