1 / 39

Java Enterprise Ed. vs Spring Framework

Java Enterprise Ed. vs Spring Framework. SDM-1 Agnieszka Brejnak. Plan prezentacji. Cel pracy magisterskiej Java EE Spring Framework Bezpieczeństwo Eclipse IDE i Plugin-Development Environment. Cel pracy magisterskiej.

arissa
Download Presentation

Java Enterprise Ed. vs Spring Framework

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

E N D

Presentation Transcript


  1. Java Enterprise Ed. vs Spring Framework SDM-1 Agnieszka Brejnak

  2. Plan prezentacji • Cel pracy magisterskiej • Java EE • Spring Framework • Bezpieczeństwo • Eclipse IDE i Plugin-Development Environment

  3. Cel pracy magisterskiej • Przedstawienie mechanizmów bezpieczeństwa w Java EE 5 oraz Spring Security 2.0 • Identyfikacja problemów w obydwu rozwiązaniach • Stworzenie wtyczki do Eclipse IDE dla Spring Security

  4. Java EE: FAQ • Co to jest Java Enterprise Edition? • Czym się różni Java EE od Java SE? • Czy Java EE to to samo co J2EE? • Czym się różni Enterprise Java Bean od Java Bean? • Czy aplikacje Java EE muszą być uruchamiane na serwerach aplikacji? • W jakim środowisku pisać aplikacje JEE?

  5. Java EE Java PlatformEnterprise Edition is a set ofcoordinated technologies that significantly reduces the cost and complexity of developing, deploying, and managing multitier, server-centric applications. Building on the Java SE, Java EE adds the capabilities that provide a complete, stable, secure, and fast Java platform for the enterprise. http://java.sun.com/javaee/

  6. JEE to tylko specyfikacja. Komercyjne BEA WebLogic Sun Java System Application Server IBM WebSphere Oracle Application Server SAP NetWeaver Otwarte JBoss Glassfish Apache Geronimo Specyfikacja ma juz prawie 2 lata a jeszcze nie wszystkim udało się uzyskać certyfikat Java EE: Serwery aplikacji

  7. Java EE: Historia

  8. Java EE i jej składowe

  9. Java EE: Architektura aplikacji • Programy i applety klienckie uruchomione na maszynie klienta • Komponenty webowe uruchomione na serwerze w kontenerze webowym • Komponenty biznesowe uruchomione na serwerze w kontenerze EJB

  10. Java EE: EJB EJB jest dla Java EE tym czym jest Myszka Mickey dla Walta Disney’a • Komponenty realizujące logikę biznesową • Zarządzane przez kontener EJB • Można je konfigurować adnotacjami • Dodatkowe usługi (transakcje, bezpieczeństwo) zapewniane przez kontener • Klienci EJB: aplikacje biurkowe, przeglądarki, usługi sieciowe • EJB są „rejestrowane” w kontenerze i udostępniane innym

  11. Java EE: Zastosowania EJB • 3 rodzaje klientów • aplikacje • usługi sieciowe • przeglądarki • Do EJB można się dostać: • bezpośrednio • przez JSP/Servlety • EJB może się komunikować z: • innymi EJB • bazami danych i innymi systemami spadkowymi • usługami sieciowymi

  12. Java Server Faces • JSF to frameworkwspomagającytworzenie interfejsuużytkownika aplikacji JEE uruchamianych po stronie serwera. • Zgodny z architekturą MVC rozdzielającą interfejs, dane i logikę biznesową. • Dodatkowo zapewnia mechanizmy: • zarządzania bean'ami. • zarządzania nawigacją w aplikacji. • przechwytywania wyjątków i błędów, • internacjonalizacji aplikacji

  13. Java EE: Zmiany, zmiany... Gdzie Java EE zaspała? • Utrwalanie danych: Hibernate • Framework dla aplikacji Web: Struts • Wstrzeliwanie zależności: Spring IoC • Adnotacje: XDoclet • Wsparcie dla testów – nadal brak

  14. Java EE: Problemy • Zbyt rozbudowana specyfikacja (nie wszystkie serwery aplikacyjne są certyfikowane) • Problemy z testowaniem jednostkowym • Konieczność uruchamiania EJB w kontenerze • Zbyt powolna reakcje na potrzeby programistów • Złe nastawienie do EJB po poprzednich wersjach Czy JEE 6 rozwiąże te problemy?

  15. Nadeszła wiosna 2004... Marzec 2004

  16. Spring Framework • Autorzy: Rod Johnson, Jurgen Hoeller (Spring Source) • Początki w książce (2002) • Historia • Spring 1.0 - Marzec 2004 • Spring 2.0 – Wrzesień 2006 • Spring 2.5 – Listopad 2007

  17. Spring Framework : FAQ • Co to jest Spring Framework? • Czy w Springu pisze się programy w Javie? • Czym Spring Framework różni się od Java EE? • Czy to jeden z wielu webowych frameworków? • Kto używa Spring Framework?

  18. Spring Framework Spring is a lightweightinversion of control and aspect-orientedcontainerframework. Spring nie jest implementacją JEE Spring nie jest serwerem aplikacyjnym

  19. Spring Framework • Cel: ułatwienie pisania aplikacji J2EE (aktualnie JEE) • Framework wspomagający tworzenie aplikacji na każdym poziomie • Integracja i ułatwienie korzystania z istniejących technologii (w tym z JEE) • Struts, JSF, WebWork • Hibernate, TopLink, JPA • JDBC, JTA

  20. Architektura Spring Framework • Architektura modułowa • Moduły niezależne od siebie • Stopniowe wprowadzanie w projekt • Dostosowanie do potrzeb

  21. Spring Portfolio • Spring Web Flow • Spring Web Services • Spring Security • Spring Batch • Spring IDE • Spring Integration • Spring .NET (!) • ...

  22. Spring Framework: cechy • Wstrzeliwanie zależności (IoC, DI) • Programowanie aspektowe (AOP) • Ułatwienie programowania • Wsparcie dla procesu testowania • Nieinwazyjność • Dostarczanie usług (transakcje, bezpieczeństwo) bez użycia kontenera

  23. Spring Framework IoC • Kontener Inversion of Control = Dependency Injection • Identyfikuje i udostepnia obiekty aplikacji • Zarządza cyklem życia obiektu • Konfiguruje obiekty, w tym: • wszczepia zależności • „dekoruje” obiekty transakcyjnością, mechanizmami bezpieczeństwa • Obiekt nie musi tworzyć ani szukać swoich składowych

  24. Wstrzykiwanie zależności

  25. List commissions = new ArrayList(); Statement stmt = null; ResultSet rs = null; try { stmt = this.myConnection.createStatement(); rs = stmt.executeQuery("SELECT comm FROM emp"); while (rs.next()) { Integer commission = new Integer(rs.getInt("COMM")); if (rs.wasNull()) commission = null; commissions.add(commission); } } catch (SQLException sqlEx){ logger.severe(sqlEx.getMessage()); logger.severe(sqlEx.getErrorCode()); logger.severe(sqlEx.getSQLState()); } finally { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); } catch (SQLException sqlEx) { logger.severe(sqlEx.getMessage()); } } JDBC... List comms = new ArrayList(); JdbcTemplate jt = new JdbcTemplate(datasource); List res = jt.queryForList("SELECT comm FROM emp"); Iterator it = res.iterator(); while (it.hasNext()) { Number comm = ((Map)it.next()).get("COMM"); if (comm != null) comms.add(new Integer(comm.intValue()) ); }

  26. Java EE vs Spring Java EE Spring ciężki kontener EJB lekka JVM usługi zapewniane usługi zapewniane przez kontener przez framework

  27. Java EE vs Spring

  28. Java EE vs Spring: Trendy

  29. To nie tylko rywalizacja SpringSource członkiem grupy eksperckiej dla Java EE 6 Wsparcie dla Spring Framework w Netbeans IDE Spring integruje się z EJB Spring może opakować POJO i udostępniać je jako EJB Sun i SpringSource

  30. Bezpieczeństwo Wiele poziomów bezpieczeństwa: • zabezpieczenia komputera klienckiego • aplikacje • bazy danych • sieci komputerowe • systemy operacyjne • fizyczny dostęp do urządzeń • uświadamianie ludzi (korporacje)

  31. Bezpieczeństwo aplikacyjne • Uwierzytelnianie • Autoryzacja • Niezaprzeczalność • Logowanie aktywności • Szyfrowanie i integralność • Wykrywanie aktywności człowieka

  32. Bezpieczeństwo: JEE i Spring • JEE i Spring Security (dawniej Acegi) • Podobieństwa: • Konfiguracja poprzez: adnotacje, XML i programowa • Wsparcie dla uwierzytelniania, autoryzacji, wymuszenie szyfrowania, rozpoznawania aktywności człowieka • Wykorzystanie AOP

  33. Bezpieczeństwo: JEE i Spring Różnice: • Spring Security: konfiguracja zamknięta w WAR • Spring Security: zabezpieczenie dowolnej klasy, metody, instancji obiektu • Spring Security: bogatsze API • Spring Security: hierarchiczne role

  34. Spring Security

  35. Eclipse • Popularne IDE • Open-source, wspierany przez IBM • Ponad 1000 wtyczek • Główni konkurenci: • NetBeans, Sun • IntelliJ IDEA, Jet Brains

  36. PDE

  37. Cel...

  38. Dziękuję za uwagę. Pytania?

More Related