+ All Categories
Home > Documents > Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101...

Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101...

Date post: 26-Dec-2015
Category:
Upload: dwight-holmes
View: 215 times
Download: 2 times
Share this document with a friend
Popular Tags:
16
Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10, v0.1
Transcript
Page 1: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

Confidential and ProprietaryAAA NCNU © 2008, 2009

Enterprise Architecture

Java / Java EE 101 Training

Awareness

M. Reha, Enterprise Architecture2009-04-10, v0.1

Page 2: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

22

Agenda

> Course #1:• Introduction to the Java Programming Language• “Hello World” Java class• Encapsulation, Inheritance, Interfaces

> Course #2:• Introduction to the Java EE Platform• “Hello World” Java EE web application

> Closing• Questions• References

Page 3: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

3

Background on Java SE and Java EE

Page 4: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

44

Introduction to the Java Programming Language

> Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform.

> The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities.

> Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture.

> The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995.

> As of May 2007, in compliance with the specifications of the Java Community Process, Sun made available most of their Java technologies as free software under the GNU General Public License.

Page 5: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

5

History of the J2EE Platform

J2EE Platform:• Java Platform Edition JPE announced in May 1998• J2EE 1.2 released in December 1999 (peak of the .COM era)• J2EE 1.3 released in September 2001 (end of .COM era)• J2EE 1.4 released in November 2003• EE 5 released in May 2006• EE 6 scheduled release for the end of 2008 (approval of JCP specification)

Lots of enterprises are still on J2EE 1.3 from 2002!

The Portlet Specification was not released until October 2003.

Page 6: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

6

J2EE Platform from post .COM era (2002-2004)

J2EE 1.3 – 1.4

WebJSP

Servlet

EJBSessionEntityMDB

JAX

-R

PC

JAX

-R

JAX

B

JMX

JAA

S

JMS

Mail

JTA

JCA

J2SE 1.3 – 1.4

AW

T

Sw

ing

Java 2D

Java 3D

JavaBe

an

JDB

C

JND

I

JNI

RM

I

Application ServerContainers and Services for UI, Business, Database

SecurityAdministration and Deployment

Value Add Services (Proprietary Frameworks etc.)

Client (mostly browser based)

Web ApplicationUI: HTML, CSS/DHTML, JavaScript, AJAX, Applets, Flash

Application Logic, Business Logic, Data Access LogicEnterprise Application Integration (EAI)

Govern

ance

Standards, B

est Practices/G

uidelinesA

rchitecture Review

Boards etc.

Design PatternsMVCDAO

CommandFactory

Business DelegateBusiness Façade

DecoratorValue Object

**

SD

LC

and

Develop

men

t Tools

XP, Scrum

, RU

P, Waterfall

Eclipse, IB

M W

SAD

/RA

D, N

etBeans, JB

uilder, IntelliJC

ode Analyzers (C

heckstyle, FindBugs), U

nit Test Fram

eworks (JU

nit, TestN

G)

Open SourceStruts 1.x (MVC)

JSTL (Tag Library)MyFaces/Sun JSF RI

Apache Commons (Utility)Apache Log4j (Logging)Hibernate(Persistence)

iBatis (Persistence)iText (PDF)

POE (MS Docs)Quartz (Timer Service)

Castor (XML Framework)Apache Xerces/Xalan (XML)Apache Axis (Web Services)

SSOOSCache/EHCache (Cache)

*

Integration/MiddlewareBusiness Rule Engine

ETLMessaging/MQ

FTPWeb Services

Proprietary Scripts etc.Screen Scraping

*

Utilities and Core ServicesLogging (Wrapper)Tracing (Wrapper)

Exception FrameworkBase Classes/FrameworksAlert (like HP Open View)

Cache (Wrapper)Static Data

Security/SSO*

Page 7: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

77

J2EE Platform Observations from 2002-2004> Leveraged lots of open source libraries to fill in the J2EE specification gaps (like Web MVC

Framework, XML, Web Services). Soon there would be competing and redundant technologies such as XML, Web Services, Logging, etc.. The Enterprise and Application Architect definitely had their work cut out for them. What technologies do we use?

> Some J2EE specifications were of little value to the enterprise (for example, Entity Beans (CMP or BMP) and Stateful EJB’s…..J2EE 1.2 only supported remote Session Beans!).

> Enterprise Integration was tightly coupled and reuse of enterprise assets not fully thought out or realized.

> Application Servers often provided proprietary (and competing) technologies and frameworks (Portlets, Web, Security, etc.).

> Lots of programming models to learn.> Governance was often over looked causing lots of inconsistencies in architecture and duplication of

code/frameworks.> Most development methodologies were still very “water fall”. XP was just taking off.> Development Tools needed improving.> Generally there was very high TCO for 1st generation (MVC-1) and 2nd generation (MVC-2)

applications.> De-facto Standard Application Servers: WebLogic, WebSphere, and some Oracle.> Increasing frustration with J2EE standard (some of it was justified and some was not).

Page 8: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

8

J2EE Web 1.5/2.0 Application Architecture (2005-present)

J2EE Application Server (now some open source)

EE 5

J2SE 5Java, Ruby, Groovy, Python, Scala

Utilities and Core Services

Logging/Tracing (Wrapper)Exception Framework

Base Classes/FrameworksAlert (like HP Open View)

Cache (Wrapper)Static Data

Security/SSO*

Open SourceStruts2 (MVC)

Apache Commons (Utility)iBatis (Persistence)

iText (PDF)POE (MS Docs)

Quartz (Timer Service)Apache Axis (Web Services)OSCache/EHCache (Cache)

*

Object Model

Application Domain Model

Web Application

Open JDK

SpringDI

AOPSpringMVC

WebFlowSecurity

PresentationHTML, CSS, JavaScript, AJAX

JSF, SpringMVC, JSP, Servlets, JSTLFacelets, Seam, Spring WebFlow

BusinessPOJO (via Spring or Session)

Message Driven BeansTimer BeansWeb Services

Data AccessJDBC, SQL, SP

JPA/Hibernate/TopLink/iBatis

Client (not just browser based anymore)

Struts2 Framework

Rails/Grails Framework

GWT Framework

Business Rule Engine

SOAESB, BPM

WS-*UDDIWSDLXML

OLTP DB Legacy SystemsAnd

Legacy DBOr DW

EAIJCAETL

JMS/MQ

Page 9: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

99

Observations from 2005-2007> Move away from Struts 1.x or proprietary frameworks to newer web frameworks like JSF (plus

Facelets, Seam, and Ajax4Jsf) or Struts2 or SpringMVC (with WebFlow).> Move toward annotation based configuration (versus mass of XML configuration files).> Less Open Source required (due to maturity of EE specification, Spring, and open source application

servers like JBoss, Glassfish, Tomcat 5/6). Apache Foundation, Spring, Craig McClanahan (JSF), Rod Johnson(String/EJB3), Gavin King(Hibernate/JPA) were really influencing and pushing the Java/J2EE platform forward.

> Spring getting lots of traction in the industry (dependency injection (simple but powerful!), POJO based for simpler programming model, AOP (for security, transactions, tracing, etc), wrappers for integration with EJB, WS, etc.).

> NetBeans IDE is becoming a viable and powerful IDE (Eclipse finally has some competition). Eclipse Foundation followed suite and also released Eclipse Europa. No need to buy a J2EE IDE now.

> Rather then reinvent we must reuse in the Enterprise, move from vertical applications to Enterprise wide applications => SOA and leverage full Web Service stack, ESB, BPM.

> New EE web applications can be built much quicker and with much less code. My last project, using JSF and Spring and iBatis, was built with 50% less code, delivered on time (actually over delivered by adding more features requested from our customer), and was 25% under budget.

> Google influence => Google Web Toolkit, Google Docs, Google Maps, etc.> Sun and Microsoft finally working together (WS-* in 2006) => that is a good thing for everybody!

Page 10: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

10

Course #1 – Java SE 101

Page 11: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

1111

“Hello World” in the Java Programming Language

Object

Data / State

Behavior / Operations

HelloWorld

private String message;private Font font;

public sayHello();

Name of ObjectIn Java == Object.java

or a Class

The Objects internal data

or state

The Objects behavior or operations

Page 12: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

1212

“Hello World” in the Java Programming Language

Page 13: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

1313

More “Hello World” in the Java Programming Language

HelloWorld

public sayLoudHellIo();

Extends the behavior of HelloWorld

private String message;

public sayHello();

BaseHello

Page 14: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

1414

More “Hello World” in the Java Programming Language

Page 15: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

15

Course #2 – Java EE 101

Page 16: Confidential and Proprietary AAA NCNU © 2008, 2009 Enterprise Architecture Java / Java EE 101 Training Awareness M. Reha, Enterprise Architecture 2009-04-10,

1616

References

Anonymous. 2009. Wikipedia. Retrieved April 10, 2009

from http://www.wikipedia.com


Recommended