Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

JavaOne 2006 Markus Bjartveit Krüger

Liknende presentasjoner


Presentasjon om: "JavaOne 2006 Markus Bjartveit Krüger"— Utskrift av presentasjonen:

1 JavaOne 2006 Markus Bjartveit Krüger markus.kruger@ergo.no

2 Temaer •Java Platform, Enterprise Edition 5 –Enterprise Javabeans 3.0 –Java Persistence API •REST: web services på en ny (gammel) måte •IDE-krigen: NetBeans 5.5 vs Eclipse 3.2

3 Java EE 5 •J2EE → JEE •Mål: enklere å utvikle enterprise-applikasjoner •Krever Java 5.0 •Fullstendig bakoverkompatibel •Standarden ferdig: final release 11. mai 2006 •Referanseimplementasjon tilgjengelig fra Sun, basert på open source-prosjektet GlassFish –http://java.sun.com/javaee/downloads/http://java.sun.com/javaee/downloads/ –http://java.sun.com/javaee/community/glassfish/http://java.sun.com/javaee/community/glassfish/

4 EJB 3.0 •Bruker annotations (Java 5) i stedet for konfigurasjon i XML-filer •Forenklet programmeringsmodell –Plain Old Java Objects (POJO); forretningslogikk trenger ikke fra JEE-grensesnitt lenger –Trenger ikke remote / local interfaces eller home interfaces –Dependency injection basert på annotations; trenger ikke slå opp ressurser i JNDI, mye lettere å skrive testklasser

5 Eksempel: EJB 2.1 public class PayrollBean implements javax.ejb.SessionBean { SessionContext ctx; DataSource empDB; public void setSessionContext(SessionContext ctx) { this.ctx = ctx; } public void ejbCreate() { empDB = (DataSource)ctx.lookup( "jdbc/empDB"); } public void ejbActivate() { } public void ejbPassivate() { } public void ejbRemove() { } public void setBenefitsDeduction(int empId, double deduction) {... Connection conn = empDB.getConnection();... }... }

6 Eksempel: EJB 3.0 @Stateless public class PayrollBean implements Payroll { @Resource private DataSource empDB; public void setBenefitsDeduction(int empId, double deduction) {... Connection conn = empDB.getConnection();... }... }

7 Java Persistence API (JPA) •Erstatter entity beans •Del av JEE 5, men kan også brukes selvstendig •Grensesnitt mot, ikke erstatning for, eksisterende ORM-rammeverk som TopLink og Hibernate •Bruker annotasjoner og POJOs i stedet for grensesnitt og XML-deklarasjoner

8 JPA: Eksempel på entitet @Entity public class Employee implements Serializable { private String id; private String name; private Department department; // Every entity must have a no-arg public/protected constructor. public Employee(){ } public Employee(String name, Department dept) { this.name = name; this.department = dept; } @Id // Every entity must have an identity. public String getId() { return id; } public void setId(String id) {this.id = id;} public String getName() {return name; } public void setName(String name) { this.name = name;} @ManyToOne public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; }

9 JPA: Eksempel på bruk @Stateless public class HRMSBean implements HRMS { @PersistenceContext private EntityManager em; public Employee createEmployee(String empName, String departmentName) { Department dept = em.find(Department.class, empName); Employee emp = new Employee(empName, dept); // User is responsible for managing bidirectional // relationships dept.getEmployees().add(emp); em.persist(emp); return emp; } @Remote public interface HRMS { Employee createEmployee(String empName, String departmentName); }

10 JEE 5: døden for Spring? •Neppe; Spring 2.0 på vei •JEE krever fremdeles JEE-spesifikke bindinger, selv om rammeverket er mindre påtrengende •Spring-tjenester kan bytte fra JEE til andre plattformer ved å endre konfigurasjonsfiler, uten noen kodeendringer –Kan for eksempel bytte til Jini/Javaspaces, se Gigaspaces sin Spring-integrasjon

11 REST: web services på ny (gammel) måte •REST: Representational State Transfer –“Architectural Styles and the Design of Network- based Software Architectures”, Roy Fielding –http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htmhttp://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm •Konkurrent til SOAP •Ikke en standard, snarere en arkitektur •Brukes blant annet av tjenester hos Yahoo, del.icio.us og Amazon

12 Kjennetegn ved REST •Hver ressurs har unik URL •Bruker hele spekteret av aksessmetoder i HTTP (GET, POST, PUT, DELETE, osv.) –CRUD med HTTP: GET = SELECT, PUT = INSERT, POST = UPDATE, DELETE = DELETE •Mindre overhead enn SOAP •Utnytter web-infrastruktur (cacher, proxyer) bedre •Må definere struktur for respons •Ikke så god støtte (ennå) i utviklingsverktøy •Bedre egnet for AJAX

13 REST og Java •Støttes av JAX-WS –Men: mye manuelt knot •Støttes av AXIS 2.0 •Kan implementeres manuelt (java.net.URL, Apache HTTPClient, m.m.), siden grensesnittene typisk er mye enklere

14 IDE-krig: NetBeans 5.5 vs Eclipse 3.2 •NetBeans 5.5: beta tilgjengelig •Eclipse 3.2: beta tilgjengelig, endelig release som del av samlerelease Eclipse Callisto 30. juni 2006

15 Nytt i NetBeans 5.5 •Støtte for JEE 5 •JPA: kan generere entitetsklasser fra DB- skjema og omvendt •Statisk og dynamisk verifikasjon av JEE 5- kode •Profilering av hele JEE-stacken •God integrasjon med GlassFish –autogenerering av testsider for web services –HTTP monitor: ta opp, revider og spill tilbake HTTP- forespørsler –SOAP monitor: ditto for SOAP –analyse av kallflyt for web service-kall

16 Nytt i Eclipse 3.2 •Eclipse Callisto: fellesslipp av 10 Eclipse- prosjekt –Business Intelligence and Reporting Tools –C/C++ IDE – Data Tools Platform –Eclipse Modeling Framework –Graphical Editor Framework –Graphical Modelling Framework – Eclipse Project (kjerneprosjektet) – Test and Performance Tool Platform – Web Tools –Visual Editor

17 IDE: evaluer høst 2006 •Hvis du utvikler for JEE, bør du evaluere NetBeans og Eclipse på nytt høsten 2006 •Nyheter fra andre leverandører? IntelliJ, JDeveloper, andre?


Laste ned ppt "JavaOne 2006 Markus Bjartveit Krüger"

Liknende presentasjoner


Annonser fra Google