Java EE EJB SOA 2007 11 2 Java
Java Java (JJUG) Java http://www.java-users.jp/ Java JJUG 2007 Fall 11 6 ( ) http://www.javausers.jp/contents/events/ccc2007fall/
EJB SOA
EJB SOA
IT EoD
IT X-Over Development Conference 2007 9BP http://itpro.nikkeibp.co.jp/ev/xdev/index.html ( ) CIO http://itpro.nikkeibp.co.jp/article/news/20070910/ 281528/
EoD(Ease of Development) EoD Java
// OO OOA/D(Object-Oriented Analysis/Design)
UML DSL(Domain Specific Language) Java+JavaEE
IT
IT
EJB SOA
() ( )
Mommy, I want to go home Writing Effective Use Cases
(1)
(2)
:ATM 1. ATM 2. ATM 3. ATM 4. ATM 5. ATM 6. ATM 7. ATM 8. ATM 1. ATM 2. ATM 3. ATM 4. ATM 5. ATM
1 SECI
2
3 (Responsibility-Driven Design)
(1)
(2) SuD(System Under Discussion)
UML (main flow) (alternative flow) (exception flow)
() () () () () ()
EJB SOA EJB&SOA
EJB SOA EJB&SOA
( )
(1)
(2)
() 4
(actor) (boundary object) (control object) (entity object) ( ) ( )
( :GUI, Web) 1
() CLI (Command Line Interface) CUI (Character User Interface) GUI (Graphical User Interface) Web UI (Web User Interface) API
1
3 3
UML
(+) UI(+ ) ( ) ( ERP )
(component) UML (artifact) UML (module) UML (SimpleModeling)
UI Component UI Service Component Application Component Entity Component Comunication Component
Presentation Module UI Component Service Component Application Module Application Component Domain Module Entity Component Comunication Component
UI Component Service Component Application Component Entity Component Commnication Component
EJB SOA EJB&SOA
SOA Service Oriented Architecture BPEL Web
EJB&Web
Java ( ) JAX-WS Glassfish Apache Axis JBoss WS WSDL(Web Service Description Language) Java(POJO-Plain Old Java Object)
Java 1: WSDL Java(POJO) 2:EJB EJB Web XML
1:
2:EJB
EJB&Web 1: 2:EJB EJB+ Web (e.g. TCP/IP)
EJB SOA 2 EJB SOA XMLEJB
EJB SOA
JavaSOA EJB EJB+SOA
JavaEE
JavaEE
Java EE Java Enterprise Edition (JEE) Java 2 Enterprise Edition 1.4 Java Enterprise Edition 5 (J2EE JEE) Web Web Servlet, JSP, JSF EJB (Session Bean, Entity Bean, Message Bean) (Transaction Processing) ()
/Java+Java EE
JavaEE
JavaEE
JavaEE (1) GUI MIDlet Web JSP JSF Web (Struts) (Velocity)
JavaEE (2) EJB Session Bean (Stateless/Stateful) Entity Bean Message Bean JDBC JCA(Java Connector Architecture) XML ERP Web
(+) UI(+ ) ( ) ( ERP )
JavaEE
/ JavaEE
Web
JavaEE
For [] Who [ ] The [ ] is a [] That [ ] Unlike [] Our product [ ]
AND IT OR XOR
<<actor>> <<actor>> <<actor>> <<actor>>
/ <<resource>> : [] <<resource>> : [ ] <<resource>> : [ ] <<resource>> : [ ] <<resource>> : [ ] <<resource>> : [ ] <<process>> <<process>> <<process>> <<event>> : <<event>> : <<event>> : <<event>> : <<actor>> : <<actor>> : <<actor>> : <<actor>> : <<actor>> : <<actor>> :
/(+) <<business>> <<event>> <<event>> <<event>> <<resource>> <<resource>> <<extend>> <<extend>>
/
<<actor>> : : <<event>> : : <<resource>> : : <<actor>> <<actor>> <<resource>> <<resource>> : : : : <<actor>> : : <<event>> : :
/ For [ ] Who [ ] The [ ] is a [ ] That [ Web ] Unlike [ ] Our product [ ]
/
/
/
/ 1 UC01 2 UC02
/
/ : : : : : : : : : <<create>> Create :
/ <<UI Module>> UI <<Application Module>> <<Domain Module>> UI <<UI Component>> UI SI <<Application Component>> FI <<Entity Component>> <<event>> <<resource>> UI <<UI Component>> UI <<Party Component>> FA <<actor>> <<Party Component>> FA <<actor>> SI <<Proxy Component>>
/ <<UI Module>> UI <<Application Module>> <<Domain Module>> <<interface>> UI (req : ) : (req : ) : <<UI Component>> UI <<Application Component>> FI <<Entity Component>> <<event>> <<resource>> <<UI Component>> UI <<interface>> SI <<Party Component>> <<interface>> (req : ) : (req : ) : (req : ) : FA <<actor>> UI (req : ) : (req : ) : (req : ) : <<Party Component>> <<document>> <<document>> <<document>> <<document>> FA <<actor>> <<document>> <<document>> <<document>> <<document>> <<interface>> SI <<Proxy Component>> (req : ) : (req : ) : (req : ) : <<document>> <<document>> <<document>> <<document>> <<document>> <<document>>
/ : : UI : SI : FI 1: () : void 1.1: () : void : <<resource>> : <<resource>> : 1.1.1: createsession() : Session <<create>> : 1.1.1.1: Create () 1.1.2: collect List() : void 1.1.2.1: 19() 1.1.3: 20() <<destroy>> 1.1.4: Destroy () 2: 22() 2.1: 23() 2.1.1: 24() <<create>> : 2.1.1.1: Create () 2.1.2: 26() 2.1.2.1: 27() 2.1.3: 28() <<destroy>> 2.1.4: Destroy () 3: 30() 3.1: 31() 3.1.1: 33() <<create>> : 3.1.1.1: Create () 3.1.2: 35() <<create>> 3.1.2.1: Create () <<event>> : 3.1.3: 36()