Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Java Enterprise Ed. vs Spring Framework

Podobne prezentacje


Prezentacja na temat: "Java Enterprise Ed. vs Spring Framework"— Zapis prezentacji:

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

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 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 Platform Enterprise Edition is a set of coordinated 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. JEE definiuje standard tworzenia wielowarstwowych aplikacji opartych na komponentach, oraz opisuje wymagania wobec ich środowiska wykonania. JEE wykorzystuje dorobek JSE oraz definiuje dodatkowe usługi. Powoduje to uproszczenie procesu tworzenia i wdrażania bezpiecznych i stabilnych rozwiązań biznesowych.

6 Java EE: Serwery aplikacji
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

7 Java EE: Historia Historia Aktualna wersja (FR: Maj 2006): JEE 5
JPE Java 2 EE 1.2 (J2EE 1.2) Java 2 EE 1.3 (J2EE 1.3) Java 2 EE 1.4(J2EE 1.4) – zmiana wersjonowania Java EE 5 (JEE 5) Aktualna wersja (FR: Maj 2006): JEE 5 Trwaja prace nad wersja 6

8 Java EE i jej składowe EJB (Enterprise JavaBeans) 3.0 Java Servlet 2.5
JSP (JavaServer Pages) 2.1 JSTL (JSP Standard Tag Library) JSF (JavaServer Faces) 1.2 JAXB (Java Architecture for XML Binding) SAAJ (SOAP with Attachments API for Java) JAAS (Java Authentication and Authorization Service) JPA (Java Persistence API) 1.0 JCA (J2EE Connector Architecture) JTA (Java Transaction API) JMS (Java Message Service) StAX (Streaming API for XML) JAF (JavaBeans Activation Framework) JAX-WS (Java API for Web Services) Common Annotations Web Service Metadata JavaMail

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 Komponenty realizujące logikę biznesową
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 framework wspomagający tworzenie interfejsu uż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? 101 Damnations (101 przeklenstw EJB)

15 Nadeszła wiosna Marzec 2004

16 Rod Johnson, Jurgen Hoeller (Spring Source) Początki w książce (2002)
Spring Framework Autorzy: Rod Johnson, Jurgen Hoeller (Spring Source) Początki w książce (2002) Historia Spring Marzec 2004 Spring 2.0 – Wrzesień 2006 Spring 2.5 – Listopad 2007 Ulatwienie: testowalnosc, prostota, luzne polaczenia, cykl zycia

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 lightweight inversion of control and aspect-oriented container framework. Spring nie jest implementacją JEE Spring nie jest serwerem aplikacyjnym Where Struts, WebWork and others can be considered Web frameworks, Spring addresses all tiers of an application Wyjasnienie: Lightweight—Spring is lightweight in terms of both size and overhead. The entire Spring framework can be distributed in a single JAR file that weighs in at just over 1 MB. And the processing overhead required by Spring is negligible. What's more, Spring is nonintrusive: objects in a Spring-enabled application typically have no dependencies on Spring-specific classes. Inversion of control—Spring promotes loose coupling through a technique known as inversion of control (IoC). When IoC is applied, objects are passively given their dependencies instead of creating or looking for dependent objects for themselves. You can think of IoC as JNDI in reverse—instead of an object looking up dependencies from a container, the container gives the dependencies to the object at instantiation without waiting to be asked. Aspect-oriented—Spring comes with rich support for aspect-oriented programming that enables cohesive development by separating application business logic from system services (such as auditing and transaction management). Application objects do what they're supposed to do—perform business logic—and nothing more. They are not responsible for (or even aware of) other system concerns, such as logging or transactional support. Container—Spring is a container in the sense that it contains and manages the life cycle and configuration of application objects. You can configure how your each of your beans should be created—either create one single instance of your bean or produce a new instance every time one is needed based on a configurable prototype—and how they should be associated with each other. Spring should not, however, be confused with traditionally heavyweight EJB containers, which are often large and cumbersome to work with. Framework—Spring makes it possible to configure and compose complex applications from simpler components. In Spring, application objects are composed declaratively, typically in an XML file. Spring also provides much infrastructure functionality (transaction management, persistence framework integration, etc.), leaving the development of application logic to you.

19 Cel: ułatwienie pisania aplikacji J2EE (aktualnie JEE)
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
Spring distribution comes as one big jar file and alternatively as a series of smaller jars broken out along the above lines (so you can include only what you need) Spring Core: Most basic part of framework that provides IOC and dependency injection features .The most basic part is BeanFactory which provides a sophisticated implementation of the factory pattern which allows programmer to decouple the configuration and specification of dependencies from actual program logic. Spring Context Package: The package, which provides a way to access objects in a framework-style manner similar to JNDI naming Concept. Spring DAO package: This Package provides a JDBC-abstraction layer that removes the need to write JDBC coding and parsing database-vendor specific error codes. Spring ORM package: This Package provides integration layers for popular object-relational mapping. APIs, like JDO, Hibernate etc. Using the ORM package you can use all those O/R-mappers in combination with all the other features Spring offers, such as the simple declarative transaction management feature. Spring AOP Package: This is a aspect-oriented programming implementation which allows to define method-interceptors and point cuts to decouple code implementing functionality that should logically be separated. Spring's Web package: This package provides basic web-oriented integration features, like multipart file-upload functionality or initialization of the IoC container using servlet listeners and a web-oriented application context. When using Spring together with Struts or any other web framework, this is the package to integrate with. Spring's MVC package: This package provides a Model-View-Controller (MVC) implementation for web-applications. Spring's MVC framework is different from other implementations as it provides a clean separation between model code and web forms, and allows you to use all the other features of the 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 Obiekty, zależności między nimi i dodatkowe wymagania programista specyfikuje w pliku .xml

24 Wstrzykiwanie zależności

25 JDBC... 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 { if (rs != null) rs.close(); if (stmt != null) stmt.close(); 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 Java EE 5 Spring 2.5 Wstrzykiwanie zależności
Tak (ograniczenia) Tak Adnotacje Kontener EJB Nie Wsparcie dla TDD Brak Bardzo dobre Inne technologie Integracja POJO ~Tak Inwazyjność Architektura modułowa

28 Java EE vs Spring: Trendy

29 Sun i SpringSource 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

30

31 Wiele poziomów bezpieczeństwa:
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)

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

33 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

34 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

35 Spring Security

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

37 PDE

38 Cel...

39 Dziękuję za uwagę. Pytania?


Pobierz ppt "Java Enterprise Ed. vs Spring Framework"

Podobne prezentacje


Reklamy Google