Not your Father s. Java EE. Lars Röwekamp CIO
|
|
|
- Kory Adams
- 10 years ago
- Views:
Transcription
1 Not your Java EE Lars Röwekamp CIO New Technologies
2 May I submit my billing info to your merchant account via your payment gateway?
3
4 Wo liegt das Problem... Too many times application architects focus on the technical problems instead of designing for the problem domain.
5 Wo liegt das Problem... User Interface UI CDI Managed Bean App TX Session EJB Session EJB Service EntityManager Entity Data
6 Es wäre doch viel schöner, wenn... User Interface UI UseCase Controller App TX Business Object Business Object Business Object Domain
7 Es wäre doch viel schöner, wenn... Business TX User Interface UI UseCase Controller App Business Object Business Object Business Object Domain
8 Es wäre doch viel schöner, wenn... Application Adapter Domain Model Adapter
9 Es wäre doch viel schöner, wenn... App Core mit Business TX Application Adapter Domain Model Adapter
10 Es könnte alles so einfach sein...
11 Das kleine 1x1 des DDD Eric Evans says For most software projects, the primary focus should be on the domain and domain logic. Complex domain design should be based on a model.
12 Das kleine 1x1 des DDD fachliche Domäne End User Die gemeinsame Domain Expert Technical Expert fachliche Welt in der wir leben.
13 Das kleine 1x1 des DDD Ubiquitous Language End User Fachsprache als Basis Domain Expert Technical Expert für ein gemeinsames Domain Model
14 Das kleine 1x1 des DDD Rich Domain Model End User Produce Software Domain Expert Technical Expert that makes perfectly sense to business, not only to coder
15 Das kleine 1x1 des DDD Access Layer Rich Domain Model Produce Software that is always Business Layer in a correct state, Domain Expert Technical Expert not only partially DB Layer
16 Das kleine 1x1 des DDD Services access with Repositories access with Model-Driven Design express model with express model with express model with Entities maintain integrity with act as root of Aggregates Value Objects encapsulate with encapsulate with encapsulate with X mutually exclusive choices isolate domain with Layered Architecture encapsulate with Factories Smart UI
17 Das kleine 1x1 des DDD keep model unified by names enter Bounded Context assess/overview relationships with Context Map Continous Integration Overlap allied contexts through relate allied contexts as Shared Kernel Customer Supplier Teams overlap unilaterally as Conformist Ubiquitous Language translate and insulate unilaterally with free teams to go support multiple clients through Open Host Service formalize as Published Language Anticorruption Layer Separate Ways
18 Passt das zu Java EE?
19 Passt das zu Java EE? Klar Java EE Next Generation BluePrint a.k.a. Java EE meets DDD
20 Passt das zu Java EE? Klar
21 Passt das zu Java EE? Klar, aber You must follow the Chuck-Norris Rules!
22 Always follow the Rules RULE #1 Design a Rich not an Anemic Domain Model
23 Rule #1: Rich not Anemic Domain Model /** * Represents a business customer with a * full qualified name, a date of birth indicating * if the customer is sui juris and a valid address * that may change after a relocation. */ public class Customer { private String firstname; private String lastname; Fachlichkeit? private Date birthdate; private Address address; public void setfirstname(string afirstname) {... public String getfirstname() { return firstname; public void setlastname(string alastname) {... public String getlastname() { return lastname; public void setbirthdate(date birthdate) {... public Date getbirthdate() { return birthdate; public void setaddress(address address) {... public Address getaddress() { return address;
24 Rule #1: Rich not Anemic Domain Model /** * Represents a customer data access object to * encapsulate all db relevant activities */ public class CustomerDao { sprechend?... public List<Customer> findbyzipcodeorcity( String zipcode, String city) { return...; public List<Customer> findbyzipcodeorcityorcitylimit( String zipcode, String city, int order) { return...;
25 Rule #1: Rich not Anemic Domain Model Zur Erinnerung Wir möchten ein sprechendes Domain Model, mit einem sprechenden API, welches wir in sich konsistent erzeugen und im weiteren Verlauf konsequent konsistent erhalten.
26 Rule #1: Rich not Anemic Domain Model Anforderungen sprechendes Modell sprechendes API konsistent erzeugen konsistent erhalten Fachlichkeit, Validierung, Konvertierung, Normalisierung und Konsistenzprüfung!
27 Mut zur Fachlichkeit
28 Rule #1: Rich not Anemic Domain Model Anforderungen sprechendes Modell sprechendes API konsistent erzeugen konsistent erhalten
29 Rule #1: Rich not Anemic Domain Model // (JPA) Entity with Value Objects public class Customer extends HumanBeing { sprechend private FirstName firstname; private LastName lastname; private FamilyStatus familystatus; private Customer partner; private Address postaladdress; private Map<PhoneNumberType, PhoneNumber> phonenumbers;... public void marry(partner partner,lastname newlastname) { lastname = notnull(newlastname) familystatus = FamilyStatus.MARRIED; // Ensure bidirectional integrity for partner entity!... public boolean ismarried() { return (familystatus == FamilyStatus.MARRIED);
30 Rule #1: Rich not Anemic Domain Model // (JPA) Entity with Value Objects public class Customer extends HumanBeing { sprechend... private Map<PhoneNumberType, PhoneNumber> phonenumbers;... public void changehomephonenumber( PhoneNumber changedhomephonenumber) {... public void disconnecthomephone() {... public void changemobilephonenumber( PhoneNumber changedhomephonenumber) {... public void disconnectmobilephone() {......
31 Rule #1: Rich not Anemic Domain Model /** * Represents a customer data access object to * encapsulate all db relevant activities */ public class CustomerDao { sprechend... public List<Customer> findbyzipcodeorcityorstreet( String street, String city, String zipcode) { return...; public List<Customer> findbyanyof( ZipCode zipcode, City city, Street order) { return...;
32 Hmm, passt das wirklich zu Java EE?
33 Rule #1: Rich not Anemic Domain Model /** * Simple value object for first name using the * common base <code>simplevalueobject</code> */ public class FirstName extends SimpleValueObject<String> { public FirstName(String avalue) { super(avalue); public String gettext() { return super.getvalue(); Common Base Passt das wirklich: Value Objects?
34 Rule #1: Rich not Anemic Domain Model /** Abstract value object as a common base */ public abstract class SimpleValueObject<T extends Comparable> implements Serializable, Comparable<SimpleValueObject<T>> { private T value; public SimpleValueObject(T avalue) { value = avalue; protected T getvalue() { return value; public boolean equals(object o) { return...; Common Base public int hashcode() { return...; public String tostring() { return...; public int compareto(simplevalueobject<t> o) { return...;
35 Rule #1: Rich not Anemic Domain Model /** * Embeddable date of birth for (re)use in value objects public class DateOfBirth { private Date dateofbirth;... /** * Customer entity making use of date of birth embeddable public class Customer { VO, Entities dateofbirth", column=@column(name= CUST_BIRTHDATE )) private DateOfBirth dateofbirth;...
36 Rule #1: Rich not Anemic Domain Model /** * Using JPA-QL and = "User.findBy ", query = "select u from User u where u. = = "User.findBy String", query = "select u from User u " + " where u. .value = : string ) ) public class User extends AbstractEntity { protected static final String _COLUMN = = "value", column = _COLUMN, unique = true, nullable = false)) private ;... VO & JPA Queries
37 Rule #1: Rich not Anemic Domain Model /** CDI based JSF Controller managing user related public class CustomerController { private DateOfBirth dateofbirth; private ZipCode zipcode;...; public DateOfBirth getdateofbirth() { return dateofbirth; public void setdateofbirth(dateofbirth newdateofbirth) { dateofbirth = newdateofbirth; public ZipCode getzipcode() { return zipcode; public void setzipcode(zipcode newzipcode) { zipcode = newzipcode;... VO & JSF
38 Rule #1: Rich not Anemic Domain Model <!-- Value Object binding in JSF xhtml page via Unified Expression Language & JSF Faces Converter --> <!-- using JSF converter for Value Object of type ZipCode (read) > <h:outputtext value= #{customercontroller.zipcode /> <!-- using JSF converter for Value Object of type ZipCode (write) > <h:inputtext value= #{customercontroller.zipcode... /> VO & = ZipCode.class) public class ZipCodeConverter extends SimpleValueObjectConverter <ZipCode> {
39 Rule #1: Rich not Anemic Domain Model Anforderungen sprechendes Modell sprechendes API konsistent erzeugen konsistent erhalten
40 Rule #1: Rich not Anemic Domain Model // JPA // cross-field public class Customer { // common constraint for type Name private FirstName // common constraint for type Name private LastName // delegate validation to Class private CreditCard // delegate validation to Class private BankAccount = AddressArea.GERMANY) // special constraint private Address postaladdress;...
41 Rule #1: Rich not Anemic Domain Model // Builder Pattern - IN ACTION (easy version) konsistent // create AddressBuilder AddressBuilder builder = new AddressBuilder(); // set all known values // BTW: could be also used in JSF and other frameworks builder.setstreet(...); builder.setstreetnumber(...); builder.setzipcode(...); builder.setcity(...); builder.setstate(...); builder.setcountry(...); // build valid and immutable Address object Address address = builder.build();
42 Rule #1: Rich not Anemic Domain Model // Builder Pattern - IN ACTION (extended version) // create AddressBuilder Address address = newaddress() // set values // BTW: could be also used in JSF with own EL Resolver.forStreetNumber(...).ofStreet(...).inCity(...).withZipCode(...).lyingInState(...).ofCountry(...) // build Address object.build(...); konsistent
43 Rule #1: Rich not Anemic Domain Model // Class with Builder - extended version public class Address { konsistent public static Builder newaddress() { return new Builder();... public static class Builder { private Address address = new Address(); public Builder ofstreet(string initialstreet) { address.street = validatestreet(initialstreet); return this; public Address build() { validate(); Address validaddress = address; address = new Address(); return validaddress;
44 Always follow the Rules RULE #2 Inject Business not Infrastructure
45 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController { // inject CustomerService and // CDI managed controller layer bean (SessionScoped) private AuthenticationController authcontroller; private Customer customer; public String createcustomer() { currentcallcenteragent = authcontroller.getloggedincca(); customer.setauditinformation(currentcallcenteragent); customerservice.create(customer); mailservice.sendwelcom (customer); return CUSTOMER_CREATED; // getter / setter for customer...
46 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController { // inject CustomerService and @Current private CallCenterAgent currentcallcenteragent; private Customer customer; public String createcustomer() { customer.setauditinformation(currentcallcenteragent); customerservice.create(customer); mailservice.sendwelcom (customer); return CUSTOMER_CREATED; // getter / setter for customer...
47 Rule #2: Inject Business not Infrastructure // authenticationcontroller ) public class AuthenticationController implements Serializable { private CallCenterAgent loggedincca; public String @RequestScoped public CallCenterAgent getloggedincca() { CallCenterAgent
48 Rule #2: Inject Business not Infrastructure package de.openknowldege.qualifier import... // self-made qualifier to indicate current instance METHOD, PARAMETER, Current{
49 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController { // inject CustomerService and @Current private CallCenterAgent currentcallcenteragent; private Customer customer; public String createcustomer() { customer.setauditinformation(currentcallcenteragent); customerservice.create(customer); mailservice.sendwelcom (customer); return CUSTOMER_CREATED; // getter / setter for customer...
50 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController { // inject CustomerService and @Current // still bounded to controller layer? private CallCenterAgent currentcallcenteragent; private Customer customer; public String createcustomer() { customer.setauditinformation(currentcallcenteragent); customerservice.create(customer); mailservice.sendwelcom (customer); return CUSTOMER_CREATED; // getter / setter for customer...
51 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController { // inject CustomerService and @Current // still bounded to controller layer? NO! private CallCenterAgent currentcallcenteragent; private Customer customer; public String createcustomer() { customer.setauditinformation(currentcallcenteragent); customerservice.create(customer); mailservice.sendwelcom (customer); return CUSTOMER_CREATED; // getter / setter for customer...
52 Rule #2: Inject Business not Infrastructure // Customer Service public class private CallCenterAgent private EntityManager em; // transactional by default public void createcustomer(customer customer) { customer.setauditinformation(currentcallcenteragent); em.persist(customer);...
53 Rule #2: Inject Business not Infrastructure <html...> <h:body> <h:form> Vorname: <h:inputtext value= #{createcustomercontroller.customer.firstname"/> Name: <h:inputtext value= #{createcustomercontroller.customer.lastname"/> </h:form> </h:body> </html> Aber was ist mit der View?
54 Rule #2: Inject Business not Infrastructure <html...> <h:body> <h:form> Vorname: <h:inputtext value= #{customertocreate.firstname"/> Name: <h:inputtext value= #{customertocreate.lastname"/> </h:form> </h:body> </html> Fachlichkeit auch in der View?
55 Rule #2: Inject Business not Infrastructure // JSF createcustomercontroller ) public class CreateCustomerController private CustomerService customerservice; private Customer customer; // getter customertocreate ) public Customer getcustomer { return customer;... #{customertocreate
56 Rule #2: Inject Business not Infrastructure // EJB based shoppingcartservice public class ShoppingCartService {... // call from JSF via #{shoppingcartservice.add(...) public void add( ShoppingCart shoppingcart, Article article) { BTW: Service Access via EL
57 Rule #2: Inject Business not Infrastructure // JPA Repository public class CustomerRepository EntityManager em; // CDI producer method for @Named( currentcustomer ) public Customer findcustomer customerid ) Integer customerid) { return em.find(customer.class, customerid)... BTW: Repository als Producer
58 Always follow the Rules RULE #3 Business drives TX not Technology
59 Rule #3: Business drives TX not Technology // Customer Service public class private CallCenterAgent private EntityManager em; // transactional by default public void createcustomer(customer customer) { customer.setauditinformation(currentcallcenteragent); em.persist(customer);...
60 Rule #3: Business drives TX not Technology // Customer Service EJB - no EJB public class CustomerService implements private CallCenterAgent private EntityManager em; // transactional by default public void createcustomer(customer customer) { customer.setauditinformation(currentcallcenteragent); em.persist(customer);...
61 Rule #3: Business drives TX not Technology // Customer public class CustomerService implements private CallCenterAgent private EntityManager public void createcustomer(customer customer) { customer.setauditinformation(currentcallcenteragent); em.persist(customer);... Java EE 7, DeltaSpike or home brewn
62 Rule #3: Business drives TX public class TransactionAdvice private UserTransaction public Object applytransaction( InvocationContext ic) throws Throwable {... // 1. implement utx.begin() ic.proceed(); // 2. call original method... // 3. implement utx.commit() *XML registration omitted
63 Rule #3: Business drives TX not Technology // Customer Service - no annotation public class CustomerService implements private CallCenterAgent private EntityManager public void createcustomer(customer customer) { customer.setauditinformation(currentcallcenteragent); em.persist(customer);...
64 Rule #3: Business drives TX not Technology User Interface UI UseCase Controller App TX Business Object Business Object Business Object Domain
65 Rule #3: Business drives TX not Technology Business TX User Interface UI UseCase Controller App Business Object Business Object Business Object Domain
66 Rule #3: Business drives TX not Technology // JSF createcustomercontroller ) public class CreateCustomerController private CustomerService customerservice; private Customer public String createcustomer() { customerservice.create(customer);... // some additional use case tx related work return CUSTOMER_CREATED; // getter / setter for customer...
67 Rule #3: Business drives TX not Technology Business TX User Interface Danger: LIE! UseCase Controller App Business Object Business Object Business Object Domain
68 Rule #3: Business drives TX not Technology Lazy Initialization Problem besteht nach wie vor! EntityManager ist an Transaktion gebunden Probleme bei lesenden Zugriffen ohne TX Varianten EXTENDED EM CM) EXTENDED EM AM) Fachliche Queries via EntityGraph (seit JPA 2.1)
69 Always follow the Rules and You are my (wo)man!
70 Always follow the Rules Business TX User Interface UI UseCase Controller App Business Object Business Object Business Object Domain
71 Es wäre doch viel schöner, wenn... App Core mit Business TX Application Adapter Domain Model Adapter
72 Erkenntnis des Tages - bitte mitnehmen! The Design is the Code, the Code is the Design.
73 Erkenntnis des Tages - bitte mitnehmen! Muss ich denn jedes Mal den Code ändern, wenn sich die Fachlichkeit ändert?
74 Erkenntnis des Tages - bitte mitnehmen! Zur Hölle, ja! Wann denn bitte sonst?
75 Not your Java EE Lars Röwekamp CIO New Technologies
Web Development in Java Live Demonstrations (Live demonstrations done using Eclipse for Java EE 4.3 and WildFly 8)
Web Development in Java Live Demonstrations (Live demonstrations done using Eclipse for Java EE 4.3 and WildFly 8) Java Servlets: 1. Switch to the Java EE Perspective (if not there already); 2. File >
Search Engines Chapter 2 Architecture. 14.4.2011 Felix Naumann
Search Engines Chapter 2 Architecture 14.4.2011 Felix Naumann Overview 2 Basic Building Blocks Indexing Text Acquisition Text Transformation Index Creation Querying User Interaction Ranking Evaluation
Managed Beans II Advanced Features
2014 Marty Hall Managed Beans II Advanced Features Originals of Slides and Source Code for Examples: http://www.coreservlets.com/jsf-tutorial/jsf2/ Customized Java EE Training: http://courses.coreservlets.com/
Smalltalk in Enterprise Applications. ESUG Conference 2010 Barcelona
Smalltalk in Enterprise Applications ESUG Conference 2010 Barcelona About NovaTec GmbH German software consulting company Offering full IT services for complex business applications Software engineering,
Elena Chiocchetti & Natascia Ralli (EURAC) Tanja Wissik & Vesna Lušicky (University of Vienna)
Elena Chiocchetti & Natascia Ralli (EURAC) Tanja Wissik & Vesna Lušicky (University of Vienna) VII Conference on Legal Translation, Court Interpreting and Comparative Legilinguistics Poznań, 28-30.06.2013
An introduction to creating JSF applications in Rational Application Developer Version 8.0
An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create
JavaServer Faces 2.0. Bernd Bohmann. Matthias Weßendorf. Agenda. Agenda. IRIAN Deutschland Apache MyFaces Tobago CORE. Mehr als nur ein Web-Framework
Bernd Bohmann JavaServer Faces 2.0 Mehr als nur ein Web-Framework IRIAN Deutschland Apache MyFaces Tobago CORE Bernd Bohmann IRIAN Deutschland GmbH Matthias Weßendorf Oracle Matthias Weßendorf Oracle Apache
Kapitel 2 Unternehmensarchitektur III
Kapitel 2 Unternehmensarchitektur III Software Architecture, Quality, and Testing FS 2015 Prof. Dr. Jana Köhler [email protected] IT Strategie Entwicklung "Foundation for Execution" "Because experts
Web Anwendungen Entwickeln mit JSF, Spring und Tomcat
Entwickeln mit JSF, Spring und Tomcat Ulm, AOI-Systeme Schulung, Beratung, Entwicklung Januar 2011 Übersicht 1 System Architecture Übersicht 1 System Architecture 2 Übersicht 1 System Architecture 2 3
JSR-303 Bean Validation
JSR-303 Bean Validation Emmanuel Bernard JBoss, by Red Hat http://in.relation.to/bloggers/emmanuel Copyright 2007-2010 Emmanuel Bernard and Red Hat Inc. Enable declarative validation in your applications
The Java EE 6 Platform. Alexis Moussine-Pouchkine GlassFish Team
The Java EE 6 Platform Alexis Moussine-Pouchkine GlassFish Team This is no science fiction Java EE 6 and GlassFish v3 shipped final releases on December 10 th 2009 A brief History Project JPE Enterprise
Is Cloud relevant for SOA? 2014-06-12 - Corsin Decurtins
Is Cloud relevant for SOA? 2014-06-12 - Corsin Decurtins Abstract SOA (Service-Orientierte Architektur) war vor einigen Jahren ein absolutes Hype- Thema in Unternehmen. Mittlerweile ist es aber sehr viel
Web Development in Java Part I
Web Development in Java Part I Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Department of Informatics Federal University of Espírito Santo (Ufes), Vitória, ES Brazil
Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB
September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets
Rapid Application Development. and Application Generation Tools. Walter Knesel
Rapid Application Development and Application Generation Tools Walter Knesel 5/2014 Java... A place where many, many ideas have been tried and discarded. A current problem is it's success: so many libraries,
BP9 - Citrix Receiver Optimierung: So verbessern Sie Management und Benutzerkomfort. Systems Engineer, Citrix Systems GmbH
BP9 - Citrix Receiver Optimierung: So verbessern Sie Management und Benutzerkomfort Oliver Lomberg Ralph Stocker Systems Engineer, Citrix Systems GmbH Systems Engineer, Citrix Systems GmbH Simplicity vs.
Supporting Multi-tenancy Applications with Java EE
Supporting Multi-tenancy Applications with Java EE Rodrigo Cândido da Silva @rcandidosilva JavaOne 2014 CON4959 About Me Brazilian guy ;) Work for Integritas company http://integritastech.com Software
Java on Guice Guice 1.0 User's Guide
http://code.google.com/p/google-guice/ Java on Guice Guice 1.0 User's Guide Guice (pronounced "juice") is an ultra-lightweight, next-generation dependency injection container for Java 5 and later. Introduction
Successful Collaboration in Agile Software Development Teams
Successful Collaboration in Agile Software Development Teams Martin Kropp, Magdalena Mateescu University of Applied Sciences Northwestern Switzerland School of Engineering & School of Applied Psychology
BP1 Mobile App Management: Solutions for ios and Android. Gary Barton Mobility Architect Citrix Receivers and Gateways Group
BP1 Mobile App Management: Solutions for ios and Android Gary Barton Mobility Architect Citrix Receivers and Gateways Group Agenda 1. Synergy Announcements 2. Mobile Management Market 3. Citrix Vision
The Oracle Fusion Development Platform
The Oracle Fusion Development Platform Juan Camilo Ruiz Senior Product Manager Development Tools 1 The preceding is intended to outline our general product direction. It is intended for information purposes
TIn 1: Lecture 3: Lernziele. Lecture 3 The Belly of the Architect. Basic internal components of the 8086. Pointers and data storage in memory
Mitglied der Zürcher Fachhochschule TIn 1: Lecture 3 The Belly of the Architect. Lecture 3: Lernziele Basic internal components of the 8086 Pointers and data storage in memory Architektur 8086 Besteht
How To Write A Validator In Java 1.1.1
Bean Validation 1.1 What's cooking? 05.04.2013 Gunnar Morling JBoss, by Red Hat Bean Validation 1.1 JSR 349 Final Approval Ballot nächste Woche! Vollständig offen Issue-Tracker Mailingliste GitHub: Spezifikation
DV4 - Citrix CloudGateway: Access and control Windows, SaaS and web applications. Systems Engineer, Citrix Systems GmbH
DV4 - Citrix CloudGateway: Access and control Windows, SaaS and web applications Rob Sanders Oliver Lomberg Systems Engineer, Citrix Systems Systems Engineer, Citrix Systems GmbH Corporate PC Corporate
Design Patterns in Java
Design Patterns in Java 2004 by CRC Press LLC 2 BASIC PATTERNS The patterns discussed in this section are some of the most common, basic and important design patterns one can find in the areas of object-oriented
Why IBM WebSphere Application Server V8.0?
Why IBM Application Server V8.0? Providing the right application foundation to meet your business needs Contents 1 Introduction 2 Speed the delivery of new applications and services 3 Improve operational
Software / FileMaker / Plug-Ins Mailit 6 for FileMaker 10-13
Software / FileMaker / Plug-Ins Mailit 6 for FileMaker 10-13 Seite 1 / 5 Mailit 6 for FileMaker 10-13 The Ultimate Email Plug-In Integrate full email capability into your FileMaker 10-13 solutions with
Open Text Social Media. Actual Status, Strategy and Roadmap
Open Text Social Media Actual Status, Strategy and Roadmap Lars Onasch (Product Marketing) Bernfried Howe (Product Management) Martin Schwanke (Global Service) February 23, 2010 Slide 1 Copyright Open
Exemplar for Internal Achievement Standard. German Level 1
Exemplar for Internal Achievement Standard German Level 1 This exemplar supports assessment against: Achievement Standard 90885 Interact using spoken German to communicate personal information, ideas and
Mind The Gap! Setting Up A Code Structure Building Bridges
Mind The Gap! Setting Up A Code Structure Building Bridges Representation Of Architectural Concepts In Code Structures Why do we need architecture? Complex business problems too many details to keep overview
Aspects of using Hibernate with CaptainCasa Enterprise Client
Aspects of using Hibernate with CaptainCasa Enterprise Client We all know: there are a lot of frameworks that deal with persistence in the Java environment one of them being Hibernate. And there are a
Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework
JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 1 (2013), pp. 53-69 Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework Marcin Kwapisz 1 1 Technical University of Lodz Faculty
OTN Developer Day Enterprise Java. Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics
OTN Developer Day Enterprise Java Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics I want to improve the performance of my application... Can I copy Java code to an HTML Extension? I coded
Spring Data JDBC Extensions Reference Documentation
Reference Documentation ThomasRisberg Copyright 2008-2015The original authors Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee
Java EE 7: Back-End Server Application Development
Oracle University Contact Us: 01-800-913-0322 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application Development training teaches
Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation
Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish Ludovic Champenois Oracle Corporation The following is intended to outline our general product direction. It is intended for information
Enterprise Java Web Application Frameworks & Sample Stack Implementation
Enterprise Java Web Application Frameworks & Sample Stack Implementation Mert ÇALIŞKAN [email protected] STM Inc. 2009 Who am I? The Software Plumber :) SCJP certified dude bla bla... Open Source Evangelist
... Introduction... 17
... Introduction... 17 1... Workbench Tools and Package Hierarchy... 29 1.1... Log on and Explore... 30 1.1.1... Workbench Object Browser... 30 1.1.2... Object Browser List... 31 1.1.3... Workbench Settings...
Tutorial on Building a web Application with Jdeveloper using EJB, JPA and Java Server Faces By Phaninder Surapaneni
Tutorial on Building a web Application with Jdeveloper using EJB, JPA and Java Server Faces By Phaninder Surapaneni This Tutorial covers: 1.Building the DataModel using EJB3.0. 2.Creating amasterdetail
Web Applications and Struts 2
Web Applications and Struts 2 Problem area Problem area Separation of application logic and markup Easier to change and maintain Easier to re use Less error prone Access to functionality to solve routine
Microsoft Nano Server «Tuva» Rinon Belegu
1 Microsoft Nano Server «Tuva» Rinon Belegu Partner: 2 Agenda Begrüssung Vorstellung Referent Content F&A Weiterführende Kurse 3 Vorstellung Referent Rinon Belegu Microsoft Certified Trainer (AWS Technical
The Google Web Toolkit (GWT): The Model-View-Presenter (MVP) Architecture Official MVP Framework
2013 Marty Hall & Yaakov Chaikin The Google Web Toolkit (GWT): The Model-View-Presenter (MVP) Architecture Official MVP Framework (GWT 2.5 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html
Easy-Cassandra User Guide
Easy-Cassandra User Guide Document version: 005 1 Summary About Easy-Cassandra...5 Features...5 Java Objects Supported...5 About Versions...6 Version: 1.1.0...6 Version: 1.0.9...6 Version: 1.0.8...6 Version:
Grails - Rapid Web Application Development for the Java Platform
Grails - Rapid Web Application Development for the Java Platform Mischa Kölliker Guido Schmutz Zürich, 24.06.2008 Basel Baden Bern Lausanne Zurich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg Munich
Reusing Existing * Java EE Applications from Oracle SOA Suite
Reusing Existing * Java EE Applications from Oracle SOA Suite Guido Schmutz Technology Manager, Oracle ACE Director for FMW & SOA Trivadis AG, Switzerland Abstract You have a lot of existing Java EE applications.
Exemplar for Internal Assessment Resource German Level 1. Resource title: Planning a School Exchange
Exemplar for internal assessment resource German 1.5A for Achievement Standard 90887! Exemplar for Internal Assessment Resource German Level 1 Resource title: Planning a School Exchange This exemplar supports
OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN
OpenShift is FanPaaStic For Java EE By Shekhar Gulati Promo Code JUDCON.IN About Me ~ Shekhar Gulati OpenShift Evangelist at Red Hat Hands on developer Speaker Writer and Blogger Twitter @ shekhargulati
Domain-Driven Design
SWE577 2011S 1 Domain-Driven Design Ali Fındık Abstract Domain Driven Design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of
Domain Driven Design. Informatik IT-Uddannelse og IT-Udvikling
Domain Driven Design Morten Mertner Senior Consultant, Teknologisk Institut - Architect and Software Developer (C#) - Teacher - Speaker (conferences and gatherings) Certifications - MSCD.NET - MCT Open
SAP Enterprise Portal 6.0 KM Platform Delta Features
SAP Enterprise Portal 6.0 KM Platform Delta Features Please see also the KM Platform feature list in http://service.sap.com/ep Product Management Operations Status: January 20th, 2004 Note: This presentation
<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server
GlassFish v3 - A Taste of a Next Generation Application Server Peter Doschkinow Senior Java Architect Agenda GlassFish overview and positioning GlassFish v3 architecture Features
MySQL Cluster: HA als StorageEngine
MySQL Cluster: HA als StorageEngine Erkan Yanar linsenraum.de 25. April 2012 Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 1 / 34 What About Hochverfügbarkeit mit MySQL
Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import
Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician
Creating Models. Rob Allen, June 2014
Creating Models Rob Allen, June 2014 I make business websites 19ft.com The business logic is the hard part MVC MVC The model is the solution to a problem A problem A customer wants to plan a journey
A place for everything, everything in its place Benjamin Franklin
A place for everything, everything in its place Benjamin Franklin What do I do I create software holistic approach Technology (Java, Java EE) and Craftsmanship Design, architecture, usability Exploration
<Insert Picture Here> Java EE 7. Linda DeMichiel Java EE Platform Lead
1 Java EE 7 Linda DeMichiel Java EE Platform Lead The following is intended to outline our general product direction. It is intended for information purposes only, and may not be
SPARROW Gateway. Developer Data Vault Payment Type API. Version 2.7 (6293)
SPARROW Gateway Developer Data Vault Payment Type API Version 2.7 (6293) Released July 2015 Table of Contents SPARROW Gateway... 1 Developer Data Vault Payment Type API... 1 Overview... 3 Architecture...
Managed App Configuration for App Developers. February 22, 2016
Managed App Configuration for App Developers February 22, 2016 Contents Chapter 1 Managed App Configuration Overview...5 Benefits of managed app configuration...6 Managed app configuration flow...7 Configuration
Table of Content. Introduction to ObjectDB and JPA. Object Model: Types, Entities, Primary Keys. Database Connections
ObjectDB Table of Content Introduction to ObjectDB and JPA Object Model: Types, Entities, Primary Keys. Database Connections JPA Fundamentals (CRUD Operations) Java Persistence Query Language (JPQL) JPA
Oracle Application Development Framework Overview
An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
GlassFish Security. open source community experience distilled. security measures. Secure your GlassFish installation, Web applications,
GlassFish Security Secure your GlassFish installation, Web applications, EJB applications, application client module, and Web Services using Java EE and GlassFish security measures Masoud Kalali PUBLISHING
How To Extend Content Broker Storage On Libs Libs 3.5.2.5 (Libs) With Libs 4.5) And Libs 5.5
Whitepaper HowTo: Extending Content Broker Storage An example of storing comments using the new extensible storage model Table of contents 1 Introduction 1.1 Why a new data storage model?... 1 2 New storage
Oracle SOA Suite Then and Now:
Oracle SOA Suite Then and Now: The Evolution from 10g to 11g Shane Goss Impac Services Agenda SOA Suite 11g New Features Highlight new features of SOA 11g Some products have added features and functionality
Gurkensalat statt Spaghetticode. Stuttgarter Testtage 2013
Gurkensalat statt Spaghetticode Stuttgarter Testtage 2013 1.Motivation für BDD 2.Einführung in BDD 3.Cucumber für Java 4.Lessons Learned Motivation für BDD 3 Requirements 4 ... ein wenig Excel 5 dazu noch
Portals, Portlets & Liferay Platform
Portals, Portlets & Liferay Platform Repetition: Web Applications and Model View Controller (MVC) Design Pattern Web Applications Frameworks in J2EE world Struts Spring Hibernate Data Service Java Server
<Insert Picture Here> Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007
Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007 Oracle Application Express Introduction Architecture
Enterprise JavaBeans 3.1
SIXTH EDITION Enterprise JavaBeans 3.1 Andrew Lee Rubinger and Bill Burke O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xv Part I. Why Enterprise JavaBeans? 1. Introduction
Customer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
AD2 - The future of mobile enterprise applications: Live from the Citrix Labs
AD2 - The future of mobile enterprise applications: Live from the Citrix Labs Steve Parry, Senior Director, Citrix Labs Christian Gehring, Enterprise Presales Architect, Citrix Systems Citrix Labs Citrix
How To Talk To A Teen Help
Sprechen - Speaking Das Sprechen in der englischen Sprache ist viel leichter, wenn du einige Tipps beherzigst! 1. Bevor du ein Gespräch beginnst, überlege dir: Was ist die Situation? Welche Rolle soll
Vergleich der Versionen von Kapitel 1 des EU-GMP-Leitfaden (Oktober 2012) 01 July 2008 18 November 2009 31 Januar 2013 Kommentar Maas & Peither
Chapter 1 Quality Management Chapter 1 Quality Management System Chapter 1 Pharmaceutical Quality System Principle The holder of a Manufacturing Authorisation must manufacture medicinal products so as
Mit einem Auge auf den mathema/schen Horizont: Was der Lehrer braucht für die Zukun= seiner Schüler
Mit einem Auge auf den mathema/schen Horizont: Was der Lehrer braucht für die Zukun= seiner Schüler Deborah Löwenberg Ball und Hyman Bass University of Michigan U.S.A. 43. Jahrestagung für DidakEk der
QAS DEBUG - User und Computer
QAS DEBUG - User und Computer Inhalt Computer Status vastool status Benutzer Login vastool list user vastool nss getpwnam vastool user checkaccess kinit su
Entwicklung von Integrationslösungen aus einem Guss mit AIA Foundation Pack 11g
Entwicklung von Integrationslösungen aus einem Guss mit AIA Foundation Pack 11g Gregor Bublitz Director [email protected] Gerhard Drasch Solution Architect, Oracle FMW A-Team
JBoss JEE5 with EJB3.0 on NonStop. JAVA SIG, San Jose
Presentation JBoss JEE5 with EJB3.0 on NonStop JAVA SIG, San Jose Jürgen Depping CommitWork GmbH Agenda Motivation JBoss JEE 5 Proof of concept: Porting OmnivoBase to JBoss JEE5 for NonStop ( with remarks
JAXB Tips and Tricks Part 2 Generating Java Classes from XML Schema. By Rob Ratcliff
JAXB Tips and Tricks Part 2 Generating Java Classes from XML Schema By Rob Ratcliff What is JAXB? Java Architecture for XML Binding Maps an XML Schema into Java Objects Experimental support for DTD, RelaxNG
<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel
Building a Complex Web Application Using ADF and Siebel Nishit Rao Group Product Manager Fusion Middleware Oracle Dhiraj Soni Technical Architect GIT Apps Engineering Oracle The following
Dozer v.5.5.1 User's Guide
... Dozer v.5.5.1 User's Guide... Franz Garsombke, Matt Tierney, Dmitry Buzdin 2014-04-22 T a b l e o f C o n t e n t s i Table of Contents... 1. Table of Contents...........................................................
What's new in Java EE 6? Antonio Goncalves
What's new in Java EE 6? Antonio Goncalves Overall presentation Focuses on news features of Java EE 6 You must know Java EE 5 28 specifications Thousands of pages 60 slides in 60 minutes Agenda Quick overview
How to Build Successful DSL s. Jos Warmer Leendert Versluijs
How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint
Please do not SUPER SIZE ME enterprise integration using the Camunda Fox Plattform Ralf Sigmund OPITZ CONSULTING
Please do not SUPER SIZE ME enterprise integration using the Camunda Fox Plattform Ralf Sigmund OPITZ CONSULTING OPITZ CONSULTING GmbH 2012 Seite 1 Project Goal: Orchestrate Several Backend Systems in
J2EE-Application Server
J2EE-Application Server (inkl windows-8) Installation-Guide F:\_Daten\Hochschule Zurich\Web-Technologie\ApplicationServerSetUp.docx Last Update: 19.3.2014, Walter Rothlin Seite 1 Table of Contents Java
1. Wenn der Spieler/die Spielerin noch keine IPIN hat, bitte auf den Button Register drücken
Welcome to IPIN The ipin (International Player Identification Number) is brought to you by the International Tennis Federation, the world governing body of tennis. All players who wish to compete in ITF
RESIN APPLICATION SERVER JAVA EE 6 WEB PROFILE
RESIN APPLICATION SERVER JAVA EE 6 WEB PROFILE White paper By Reza Rahman Copyright 2011 Caucho Technology, Inc. All rights reserved. All names are used for identification purposes only and may be trademarks
Complete Java Web Development
Complete Java Web Development JAVA-WD Rev 11.14 4 days Description Complete Java Web Development is a crash course in developing cutting edge Web applications using the latest Java EE 6 technologies from
Integrated Development of Distributed Real-Time Applications with Asynchronous Communication
Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Marc Schanne International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES) 26-28 September
Java EE Web Development Course Program
Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,
Table of contents. Reverse-engineers a database to Grails domain classes.
Table of contents Reverse-engineers a database to Grails domain classes. 1 Database Reverse Engineering Plugin - Reference Documentation Authors: Burt Beckwith Version: 0.5.1 Table of Contents 1 Introduction
