Presentation is loading. Please wait.

Presentation is loading. Please wait.

J2EE Overview.

Similar presentations


Presentation on theme: "J2EE Overview."— Presentation transcript:

1 J2EE Overview

2 최근 동향 대용량 트랜잭션에 대한 처리 요구 증대 비즈니스 로직을 위한 새로운 티어의 추가 구성의 복잡성이 증대 가벼운 서버
가벼운 클라이언트 인터넷의 발달 표준 플랫폼의 필요성

3 Component Transaction Monitor
Server-Side Component Model Business logic Business logic Services Services Naming Transactions Security Managed persistence Others …

4 J2EE (Java 2 Enterprise Edition)
Business logic 정의 Services 구현 COS (Common Object Services) Naming: The naming service for CORBA applications; allows applications to store and access references to CORBA objects. DNS (Domain Name System): The Internet's naming service; maps people-friendly names (such as into computer-friendly IP (Internet Protocol) addresses in dotted-quad notation ( ). Interestingly, DNS is a distributed naming service, meaning that the service and its underlying database is spread across many hosts on the Internet. LDAP (Lightweight Directory Access Protocol): Developed by the University of Michigan; as its name implies, it is a lightweight version of DAP (Directory Access Protocol), which in turn is part of X.500, a standard for network directory services. Currently, over 40 companies endorse LDAP. NIS (Network Information System) and NIS+: Network naming services developed by Sun Microsystems. Both allow users to access files and applications on any host with a single ID and password.

5 J2EE 플랫폼 호스팅 애플리케이션을 위한 런타임 인프라 구조 애플리케이션 구축을 위한 자바 확장 API 집합

6 J2EE Containers, Services
Applet Container Component ? Database Management System JNDI RMI-IIOP Web Container EJB Container J2SE JMS JAAS JTA JCX JDBC JAXP JMS JAAS JTA JCX JDBC JAXP JAVA Mail JAF JAVA Mail JAF Sun Microsystems, in collaboration with other industry members, have defined a Component-Based Platform called J2EE (Java2 Enterprise Edition). Its specification is detailed at The J2EE platform promotes a component-based architecture; identifying four types of containers: an applet container, an application client container, a web container, and an ejb container. Each type of container is specialized for a particular architectural tier and therefore provides slightly different service sets. The applet container hosts applet components. The standard services available to an applet are JNDI and RMI-IIOP. The application client container hosts any type of Java class - not necessarily components. The standard services available from this container are JMS, JAAS, JAXP, JDBC, JNDI and RMI-IIOP. The web container hosts servlet and JSP components. Standard services available to these components are JTA, JAAS, JMS, JavaMail, JAF, JAXP, JDBC, JCX (Java Connectors), JNDI and RMI-IIOP. The ejb container hosts enterprise java bean components (session beans, entity beans and message-driven beans). The standard services available to these components is the same as for the web components. JCBC JAXP JAAS JMS JNDI RMI-IIOP JNDI RMI-IIOP Application Client Container J2SE J2SE JNDI RMI-IIOP J2SE

7 J2EE Components session beans entity beans message driven beans
Application Client Container Applet Container Web Container EJB Container Database Management System JNDI RMI-IIOP J2SE JMS JAAS JTA JCX JDBC JAXP JCBC JAXP JAAS JMS JAVA Mail JAF session beans entity beans message driven beans servlets JSPs applets application clients The J2EE runtime environment defines the following application component types that a J2EE product must support: For the EJB container: Session Beans, Entity Beans, and Message-Driven Beans. Collectively, these components are simply referred to as Enterprise Java Beans (EJBs). They are intended to encapsulate the business logic for a J2EE application. For the web container: Servlets and JSPs. These components execute in a web server and are generally used to respond to HTTP requests from web clients. These components are typically used to generate HTML pages that form an application's user interface. They may also be used to generate XML or other format data that is consumed by other application components. For the applet container: Applets. These are GUI components that typically execute in a web browser, but can execute in a variety of other applications or devices that support the applet programming model. Applets can be used to provide a powerful user interface for J2EE applications. For the application container: Application clients. These are Java programming language programs that are typically GUI programs executing on a desktop computer. Application clients offer a user experience similar to that of native applications, and have access to all of the facilities of the J2EE middle tier. Specifically, they are defined as a class file containing a public static void main(String[]) method definition. J2EE applications generally span more than one architectural tier. For example, an application may have an interface implemented with web components and have a significant amount of business logic implemented with EJB components. Therefore, J2EE applications are typically composed of more than one type of component. Consequently, at runtime, there is often a lot of inter-container communication as well as intra-container communication between components. In each case, however, the application components never interact directly with other J2EE application components. They use the protocols and methods of the container for interacting with each other.

8 J2EE Component Deployment Modules
Java component application.xml (deployment descriptor) Java module application-client.xml (deployment descriptor) web.xml (deployment descriptor) ejb-jar.xml (deployment descriptor) ra.xml (deployment descriptor) Web module EJB module RA module Web component EJB component RA component Resource Adapter module .ear file .jar file .war file .rar file J2EE Application module J2EE components are always deployed to containers in deployment modules. Atomic-type deployment modules (i.e. Java, Web, EJB and Resource Adapter modules) package one or more J2EE components of the same component type (web, EJB, application client, or Connector) together with - 1. a deployment descriptor. The descriptor consists of two XML files which describe various characteristics and properties of the component(s) and deployment module that are necessary during deployment. One file contains information standardized by J2EE; the other is a vendor specific file for information relevant to a particular vendor's J2EE platform. Examples of the information contained in a deployment descriptor include the names of the contained components, their types e.g. entity bean, session bean etc, their subtypes if applicable - e.g. stateless session bean, or stateful session bean. It may also include dependencies a component has on other components not included in the deployment module. In this case, such dependencies need to be resolved during the deployment process. 2. other software resources. J2EE components often rely on utility classes for some of their implementation. If such classes and libraries are not part of the standard J2SE platform, or available from the particular container, then they must be packaged and deployed with component. The deployment module allows such additional resources to be packaged with the component. 3. any documentation. A component provider may wish to include help files and usage documentation along with the software component. These can be packaged into the deployment module. There is a composite-type deployment module, the Application deployment module, which can be used to package modules together to form an application. Thus the J2EE module represents the only unit of composition for a J2EE application. Deployment modules are packaged as archive files. These files can be created using the Java archive tool - JAR, or by vendor supplied deployment tools. The archive filename suffix reflects the type of deployment module. Web archives must use .war; EJB archives must use .jar; Resource Adapter archives must use .rar; and Enterprise Application archives must use .ear.

9 J2EE Technologies RMI-IIOP JNDI JDBC JTA / JTS JMS EJB
COS (Common Object Services) Naming: The naming service for CORBA applications; allows applications to store and access references to CORBA objects. DNS (Domain Name System): The Internet's naming service; maps people-friendly names (such as into computer-friendly IP (Internet Protocol) addresses in dotted-quad notation ( ). Interestingly, DNS is a distributed naming service, meaning that the service and its underlying database is spread across many hosts on the Internet. LDAP (Lightweight Directory Access Protocol): Developed by the University of Michigan; as its name implies, it is a lightweight version of DAP (Directory Access Protocol), which in turn is part of X.500, a standard for network directory services. Currently, over 40 companies endorse LDAP. NIS (Network Information System) and NIS+: Network naming services developed by Sun Microsystems. Both allow users to access files and applications on any host with a single ID and password. JMS Server-Side Component Model EJB

10 EJB Overview

11 Enterprise Java Bean Multi-tier, cross-platform, 분산 객체 등을 지원하는 자바 애플리케이션을 개발하고 배치하기 위한 자바 컴포넌트 아키텍쳐 분산객체와 트랜잭션 프로세싱 모니터 기술의 접목 컴포넌트 트랜잭션 모니터에 대한 자바 server-side 컴포넌트 모델

12 Types of Enterprise Beans
EJB Session Entity Message Stateful Stateless CMP BMP

13 Ingredients of an Enterprise JavaBean Type Definition
리모트 인터페이스 홈 인터페이스 빈 클래스 프라이머리 키 디플로이 디스크립터 EJB는 단일 단위로 묶인 자바 클래스들과 XML 파일의 집합체이다. 자바 클래스들은 정확한 규칙을 따라야 하고 콜백 메소드를 제공해야 한다.

14 Deployment Descriptor & if needed, make database table
EJB Development Steps jar ejbc DDCreator Make Deployment Descriptor Define Your Component Code javac 1 2 3 4 5 6 Client Client Stub Implement Client javac Start the Client 10 11 9 Start the Server Server Deploy component on server & if needed, make database table 7 8

15 Evolution of EJB Standard
EJB 1.0 defines: Session and entity beans Client and developer’s view of EJBs EJB roles EJB 1.1 Introduces declarative (XML-based) deployment descriptors EJB 2.0 Introduces message-driven beans Enriches and standardizes support for persistence of entity beans Complex database mapping, complex relationships Adds local interfaces Supports network interoperability among EJB servers Mandatory IIOP Since the first release (1.0) of the EJB standard in 1997, which specified the basic rules and assumptions for EJB architectures, the EJB specification has evolved. In revision 1.1, XML became the mandatory, standard language for defining EJB deployment descriptors. Several major changes were introduced in EJB 2.0: Message-driven beans were added. Standard support for persistence of entity beans were defined. This included the support for complex database mappings and complex relationships between entity beans. Local interfaces were defined. EJB container vendors were mandated to support the IIOP protocol.

16 EJB Container, Server EJB Container EJB Server 컴포넌트를 위한 실행환경
컨테이너를 위한 실행환경

17 Session, Entity Beans 클라이언트의 확장 다른 빈들과 상호 작용하는 작업이나 워크플로우를 구현
Session Bean Entity Bean 클라이언트의 확장 다른 빈들과 상호 작용하는 작업이나 워크플로우를 구현 퍼시스턴스를 가지며 사람,장소,물건 등을 나타낸다. 데이터베이스의 row와 1:1매핑

18 Stateful, Stateless Session Stateful Stateless 세션 상태가 저장됨
클라이언트 수 = Bean Instance수 클라이언트 컨텍스트가 관리됨 스와핑이 일어남 (상태가 저장됨) 세션 상태가 저장 안됨 하나의 Bean Instance가 여러 client에 대응 클라이언트 컨텍스트가 관리 안됨 스와핑이 일어나지 않음

19 Stateless Instance Life Cycle

20 Stateful Instance Life Cycle
메모리가 아닌 Secondary Storage로의 저장

21 CMP, BMP Entity CMP BMP EJB Container가 Bean의 Persistency관리
SQL구문에 대한 제어가 필요 없음 기능상의 제약을 가져올 수 있음 DB관련 optimization이 불가능 Persistency를 위한 코딩이 필요 SQL질의에 대한 제어가 가능 복잡한 기능 구현이 가능

22 Life Cycle of an Entity Instance

23 WSA Overview

24 Borland Enterprise Server
The SMART Platform Web Enablement Integration and High speed Advanced Frameworks The World Market W3C OMG J2EE Web Edition VisiBroker AppServer

25 Borland Enterprise Server, Web Edition
Borlandization QA & Support Open Source Apache Tomcat VisiBroker Web Engine Load balancing Fault-tolerance Failover

26 Borland Enterprise Server, Web Edition
Tomcat JDataStore Pure O/R Java Database IIOP Open Source Apache Web Engine Stateful Session Management Database operations Web Edition Borland IDEs Console

27 Borland Enterprise Server, VisiBroker Edition
Tomcat JDataStore Pure O/R Java Database VisiBroker C++ IIOP Web Engine Stateful Session Management Database operations Console Java Internet Firewall Gatekeeper Http/SOAP

28 Borland Enterprise Server, AppServer Edition
Web Edition Borland Web Engine Tomcat AppServer Edition Servlets JSP™ RMI/IIOP™ JDBC™ Java IDL™ JavaMail™ JMS™ JNDI™ JTA™ JTS™ & JAF JAAS™ JAXP™ JCA™ Console VisiBroker Edition VisiBroker Java C++ J2EE 1.3 Complaint

29 Borland Enterprise Server, AppServer Edition Partitioning (ASAP)
Partition Based Architecture Partitions = “virtual application servers” running within one server instance Applications can run securely and independently in a partition Applications can be scaled locally or across the net Applications can be individually managed The only architecture designed to run enterprise applications in production environments

30 Borland Enterprise Server – AppServer Edition
Web Edition VisiBroker AppServer J2EE 1.3 Compliant Includes VisiBroker Edition; seamless integration of J2EE and CORBA services Enterprise Java Beans 2.0 Java Connector Architecture Java Messaging Service (via SonicMQ) Servlet 2.3 and JSP 1.2 support Java Authentication and Authorization Security Includes VisiBroker Edition

31 Borland Enterprise Server
Web-WAS-DB구성 iPlanet Web Server Web Container Web Container Borland Enterprise Server JSP JSP Partition Partition Servlet Servlet EJB Container Client Beans Client Beans EJB EJB EJB EJB Container EJB EJB JDBC Data Base 장비 DBMS

32 Component의 종류 구체적 (도메인 종속적) Application Component(도메인 컴포넌트) 통합 개발 환경
Business Component(특정 비즈니스 컴포넌트) Business Component(공용 비즈니스 컴포넌트) Infrastructure Component(시스템 기반 서비스/유틸리티) 일반적 (범용적)

33 Q & A


Download ppt "J2EE Overview."

Similar presentations


Ads by Google