50

No Slide Title · yJ2EE 및 웹 서비스 개요 y오라클의 J2EE 기반 웹 서비스 지원 ... Web Service Client I D L R M I EJB Client CORBA ClientClient A P A C H E Transactions

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

J2EE 기반의웹 서비스 지원 방안 및 데모

장 성 우한국 오라클Application Server팀

발표 순서

J2EE 및 웹 서비스 개요

오라클의 J2EE 기반 웹 서비스 지원 방안

J2EE기반 웹 서비스 개발 데모

요약 및 정리

J2EE 및 웹 서비스 개요

J2EE(Java 2 Enterprise Edition)

복수 계층의 기업 애플리케이션을 개발하기 위한 자바 언어기반의 다양한 표준들을 정의

웹 서비스(Web Services) : 정의

표준을 따르면서 특정 작업을 수행하는 인터넷기반의 애플리케이션

분산 컴퓨팅 환경에서 서술되고, 공개되고, 검색되어동적으로 수행될 수 있는 컴퍼넌트 기반의

애플리케이션

웹 서비스의 구성

Web ServiceWeb Service

Web ServicesWeb ServicesDirectoryDirectory

(UDDI)(UDDI)

Client ApplicationClient Application

1. Publish

2. Find

XML Interface (WSDL)XML Interface (WSDL)

ApplicationApplicationApplication

3. 3. 검색검색

4. 4. 호출호출 ((XMLXMLProtocol - SOAP)Protocol - SOAP)

2. 2. 공개공개

XML Interface (WSDL)XML Interface (WSDL)

1. 1. 생성생성

J2EE, PL/SQL …

••SOAP: Simple Object Access ProtocolSOAP: Simple Object Access Protocol••WSDL: Web Service Description LanguageWSDL: Web Service Description Language••UDDI: Universal Discovery, Description & IntegrationUDDI: Universal Discovery, Description & Integration

웹 서비스에서의 역할 모델

서비스 제공자e-business 서비스를 제공

서비스제공자

서비스중개자

서비스 요청자필요 되어지는 서비스를찾아 수행

서비스요청자

Publish

Find

Bind

서비스 중개자서비스 등록 및 메타 정보제공

웹 서비스의 주요 특징 및 도입 효과

주요 특징– 독립성

H/W, S/W, P/L, O/S 및 기타 애플리케이션으로부터독립적임

– 개방성

표준(UDDI/SOAP/HTTP)에 근거한 상호 연동 지원

도입 효과– 상호 연동이 단순해짐

어댑터(제품별/플랫폼별)가 필요 없음

개발 용이 및 비용 절감 효과

– 표준화가 쉽게 이루어짐

향후 다른 서비스와의 연동이 쉽게 구현될 수 있음

서비스 확장 용이

웹 서비스의 현재

IT업계의 관심 증대 및 솔루션 업체간의 치열한 선점 경쟁

기술적으로는 아직 초기 단계– 기본적인 표준만이 지원되고 있음

억제 요인 존재– 기업 수준의 서비스 지원을 위한 주요 요소 미비

함수 수준의 연동만이 가능

단순한 연동 모드(Request/Reply)만을 지원

강력한 보안/인증 기능 보완 필요

트랜잭션 및 성능 향상 지원 필요

주요 고려 사항(고객 관점)– 수익 모델에 대한 고려 필요– 업무 프로세스 개선에 대한 고려 필요– 서비스 품질 확보 방안에 대한 고려 필요

웹 서비스 향후 전개 방향

관련 표준 및 벤더 동향

– 표준은 지속적으로 발전/보완될 것임

SOAP-DSIG, WSFL, WSIL, XML-Encryption, …– 솔루션 벤더들 사이의 치열한 경쟁이 계속될 것임

Oracle 9iAS, MS .NET, IBM WebSphere…

주요 적용 분야

– EAI 및 B2Bi 분야에 웹 서비스의 적용이 확대될 것으로예상됨 - CBDi Forum Review Jan 2002

– 단순 웹 서비스에서 복합 웹 서비스로의 발전이 예상됨

ebXML, RosettaNet등과의 연계

오라클의 J2EE 기반웹 서비스 지원 방안

웹 서비스에 대한 오라클의 접근 방안

웹 서비스에 대한 관점

웹 서비스는 J2EE 개발 및 수행 환경과 시너지를 이루며상호 보완적임

웹 서비스는 J2EE를 자연스럽게 확장 시켜 주는 방안임

접근 전략

기존의 J2EE 개발 및 수행 지원 솔루션의 지속적인 강화

웹 서비스 지원 모듈의 지속적인 추가 및 강화

웹 서비스 관련 표준화 활동에 적극 참여

오라클의 웹 서비스 지원 방안

Oracle 11Oracle 11iie-Business Suitee-Business Suite

Oracle 9Oracle 9iiJDeveloperJDeveloper

Oracle9Oracle9ii Application ApplicationServerServer

ApplicationApplicationServerServer

DevelopmentDevelopmentToolsTools

ApplicationsApplications

Oracle 11i E-Business Suite(ERP)의 주요 기능에 대한 웹서비스 인터페이스 제공

Oracle9i JDeveloper는 웹 서비스의 손 쉬운 개발을 지원

Oracle9iAS가 웹 서비스의 수행 및 관리를 위한 플랫폼을 제공

E-Business Suite 11i 의 웹 서비스 지원

E-Business Suite11i 공통 스키마

수정 및 검증 로직

SOAP인터페이스

e-BusinessSuite 11i

각종 모듈들

협력사응용 프로그램

협력사 응용 프로그램을 위한 공식적인 SOAP 인터페이스 제공

Oracle JDeveloper의 웹 서비스 지원

• J2EE 개발 지원

• Java classes• Entity EJB• Session EJB• Message EJB

• 웹 서비스 개발 환경 제공

• SOAP services• SOAP proxies• WSDL 생성• Service deployment

• 테스팅 • 튜닝• 디버깅• Code Insight/Advice

• 플랫폼에 제한 받지 않는 J2EE 기반의 통합 개발 환경 제공

• 개념적 모델링 도구 내장

• UML Class Modeler• UML Activity Modeler

Database

LOBLOB XMLXML

MultimediaMultimedia

FilesFilesTable

JSPJSP ServletsServlets

JTA

JMS

JND

I

Java

Mail

RM

I

JDK Java VM (1.2, 1.3)

Oracle9iAS

EJBsEJBsSession, Entity (BMP, CMP)Session, Entity (BMP, CMP)

JDB

C

J2EE ContainerJ2EE Container

HTTPServerHTTPServer

Browser

Oracle9iAS의 J2EE 지원 구조

** 지원 버전 **JavaServer Pages 1.2Servlets 2.3Enterprise Java Beans 2.0Java Naming & Directory Interface

1.2Java Database Connectivity 2.0Java Transaction API 1.0Java Messaging Service 1.0.2J2EE Connector Architecture 1.0Java Mail 1.2Java Authentication & Authorization

Service 1.0

Oracle9iAS의 J2EE 기반 웹 서비스 지원 구조

Oracle9iAS

WSDL

UDDIUDDIRepositoryRepository

Web ServiceWeb ServiceClientClient

IDL

RMI

EJB ClientEJB Client

CORBACORBAClientClient

AAPPAACCHHEE

TransactionsTransactions MessagingMessaging Naming/Naming/DirectoryDirectory SecuritySecurity

StatelessStatelessJava ClassJava Class

StatefulStatefulJava ClassJava Class

Stateless Stateless Session EJBSession EJB

StatefulStatefulSession EJBSession EJB

Message DrivenMessage DrivenBeanBean

RMIHandler

SOAP Handler

PoolingPooling

JDBCJDBC

JMSJMS

JCAJCA

IIOPHandler

웹 서비스는 J2EE 개발 환경과 시너지를 이루며 상호 보완적임

JMSJMS

JAX-MJAX-M

AAPPAACCHHEE

MessageMessageDriven BeanDriven Bean

MessagingMessagingInfrastructureInfrastructure

Encoder/Encoder/DecoderDecoder

JAX-B BindingJAX-B Binding

SOAP SOAP ServletServlet

Oracle 9Oracle 9iiASAS

웹 서비스 메시징 지원 방안

ProxyProxy

ClientClient

MessagingMessagingInfrastructureInfrastructure

XML PayloadXML Payloadover SOAPover SOAP

(HTTP, SMTP)(HTTP, SMTP)

JAX-MJAX-M

Message Driven Beans 개발

SOAP/JAX-M 클라이언트로부터의비동기 호출

SOAP 기반의 보증 된 메시지 전달 지원 JAX-M: Java API for XML MessagingJAX-M: Java API for XML MessagingJAX-B: Java API for XML BindingJAX-B: Java API for XML Binding

웹 서비스 통합 지원 방안

Client ProxyClient Proxy

MessagingMessagingInfrastructureInfrastructure

JMSJMS

JAX-MJAX-M

AAPPAACCHHEE

MessageMessageDriven BeanDriven Bean

BBIINNDDIINNGG

Oracle 9Oracle 9iiASAS

XML PayloadXML Payloadover over ebXMLebXML,,RosettaNetRosettaNet

BusinessBusinessProcessProcessManagerManager

Data,Data,SemanticSemantic

TransformsTransforms

JCAJCA

JMSJMS

EnterpriseEnterpriseApplicationsApplications

MessagingMessagingSystemsSystems

웹 서비스 보안 지원 방안

Single Sign-On Server

WebCacheWeb

Cache

LDAPCertificatesPrivileges

Roles

ApacheApache

mod_osso

SingleSingleSign-OnSign-On

Encoded URLsEncoded URLs(Secure Cookies)(Secure Cookies)

HTTP-SHTTP-S

HTTP-SHTTP-S

FIREWALLFIREWALL

9iAS

Web Service

9iAS

Web Service

ExternalWeb Service

SOAP overSOAP overHTTP-SHTTP-S

JAAS UserManager표준 기반의 보안(JAAS,SSL, LDAP) 지원웹 서비스 사용자에 대한Single Sign-On중앙 집중 보안 관리

오라클의 웹 서비스 표준 활동

W3CW3COMGOMG

Java/J2EEJava/J2EE

RosettaNetRosettaNet

OASIS/XML.orgOASIS/XML.orgebXMLebXML WG WG

•• Web Services WGWeb Services WG(SOAP,WSDL,UDDI)(SOAP,WSDL,UDDI)

•• XMLP WGXMLP WG•• XML Schema WGXML Schema WG•• XML Query WGXML Query WG

•• XMI Metadata WGXMI Metadata WG•• Component Model WGComponent Model WG •• J2EE WebJ2EE Web

Services JSRServices JSR•• JAXM JSRJAXM JSR•• JAXM MessagingJAXM Messaging

•• Protocol/JAXPProtocol/JAXP•• Repository/JAXRRepository/JAXR•• Messaging/JAXMMessaging/JAXM

•• TPAMLTPAML•• BOPC WGBOPC WG

•• RNIF WGRNIF WG

웹 서비스 표준화 기구에의 적극적인 참여 및 지원

J2EE 기반의 웹 서비스개발 방안 데모

데모 시스템 : 프로세스 흐름도

구매자시스템

WSDLRegistry

공급자시스템

LegacyApplication

Web Service

Application

W/S

W/S

W/S

W/S

일반 직원

사용자

구매 담당자영업 담당자

1.물품 구매신청

2.물품 정보검색

5. 해당 공급자에게입찰 요청

6. 입찰 정보입력

7. 입찰 신청(응찰)

4. 입찰 요청8. 입찰 선정(낙찰)

9. 낙찰 통보 및 구매 주문

인트라넷 인터넷

W/S

10. 구매 주문입력

W/S

3. 구매 신청입력

데모 시스템 모듈 구성도 : 입찰 요청 부분

메인 메뉴 입찰 요청 검색입찰 요청

헤더 라인

구매신청

구매관리자(Static)

물품

RFQStub(Proxy 클래스)

QuoteStub(Proxy 클래스)

입찰요청

입찰관리자(Static)

응찰 입력구매 신청 검색

입찰 검색 및낙찰

입찰요청

입찰

SOAP SOAP 호출호출

SOAP SOAP 호출호출

입찰

구매자구매자 시스템시스템 공급자공급자 시스템시스템

RFQWebSvc

QuoteWebSvc

Entity EJB Java ClassStateless Session EJB JSP 연결연결 호출호출 인자전달인자전달

일반적인 웹 서비스 개발단계

애플리케이션애플리케이션모델링모델링

컴퍼넌트컴퍼넌트구축구축

SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성

JSP, XML JSP, XML ……클라이언트클라이언트

구성구성

SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성

J2EE J2EE 서버로서버로DeployDeploy튜닝튜닝 및및

최적화최적화

테스트테스트 및및디버깅디버깅

Oracle9i JDeveloper에서의웹 서비스 개발 단계

애플리케이션애플리케이션모델링모델링

컴퍼넌트컴퍼넌트구축구축

SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성

Build

Deploy

ConsumeJSP, XML JSP, XML ……클라이언트클라이언트

구성구성

SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성

J2EE J2EE 서버로서버로DeployDeploy

튜닝튜닝 및및최적화최적화

테스트테스트 및및디버깅디버깅Analyze

UML 기반 모델링 지원

Class Modeler• Model Code• Code Model

Activity Modeler• Workflow 생성• Oracle AQ를 위한

JMS/XML Messaging생성

Configuration Management• Check in Check out• WebDAV• 상호 종속성 분석

JDeveloper와 J2EE

End-to-end SupportJ2EE Framework- Business Components for Java -

기반 요소• 객체 관계형 매핑

• 검증• Caching, Locking

확장• JSP TagLibs• JSP Beans• Data Aware JavaBeans

활용• JDBC• JavaServer Pages• Java Servlets• Enterprise JavaBeans

주요 웹 서비스 타입 지원

Java 클래스를 SOAPservice로 전환

– Stateless와 Stateful 모두 지원

Enterprise Java Beans를SOAP service로 전환

– Stateless & Stateful SessionEJB

– Messaging EJB– Entity EJB는 지원 안 함

PL/SQL, Java StoredProcedure를 SOAP service로 전환

D E M O N S T R A T I O ND E M O N S T R A T I O N

Modeling and ImplementingModeling and ImplementingWeb ServicesWeb Services

Oracle9i JDeveloper에서의웹 서비스 개발 단계

애플리케이션애플리케이션모델링모델링

컴퍼넌트컴퍼넌트구축구축

SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성

Build

Deploy

ConsumeJSP, XML JSP, XML ……클라이언트클라이언트

구성구성

SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성

J2EE J2EE 서버로서버로DeployDeploy

튜닝튜닝 및및최적화최적화

테스트테스트 및및디버깅디버깅Analyze

SOAP/WSDL 자동 매핑

public class TrackService// public boolean getStatus// public boolean setStatus …// public boolean getHistory…// private void changeStatus …}

Java 구현SOAP Descriptor 매핑

WSDL 매핑

<?xml version = '1.0'?><definitions ...><types>...</types><message> ...</message><portType> <operation name=getStatus> <input message=...> <output message=...> </operation> ...

웹 서비스 선언

public class TrackingService/*** @webservice*/ public boolean getStatus// public boolean setStatus// private void changeStatus …}

Web Service Publishing

WSDL 자동 생성

웹 서비스 연결 에디터

SOAP Server연결을 모델링

UDDI서비스

브라우징의기반을 제공

SOAP 서비스 브라우저

사용 가능한 SOAP서비스를 브라우징

서비스의 등록 및 해지

등록된 서비스로부터WSDL 생성

D E M O N S T R A T I O ND E M O N S T R A T I O N

Deploying Web ServicesDeploying Web Services

Oracle9i JDeveloper에서의웹 서비스 개발 단계

애플리케이션애플리케이션모델링모델링

컴퍼넌트컴퍼넌트구축구축

SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성

Build

Deploy

ConsumeJSP, XML JSP, XML ……클라이언트클라이언트

구성구성

SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성

J2EE J2EE 서버로서버로DeployDeploy

튜닝튜닝 및및최적화최적화

테스트테스트 및및디버깅디버깅Analyze

JSP, Servlet, XML Web Services Clients

웹 서비스를 찾아서…

애플리케이션에 접목시켜 줌

Web Service Proxy

Wizard가 SOAPclient를 자동 생성

WSDL 기반의 생성

Java SOAP proxies

D E M O N S T R A T I O ND E M O N S T R A T I O N

Consuming Web ServicesConsuming Web Services

Oracle9i JDeveloper에서의웹 서비스 개발 단계

애플리케이션애플리케이션모델링모델링

컴퍼넌트컴퍼넌트구축구축

SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성

Build

Deploy

ConsumeJSP, XML JSP, XML ……클라이언트클라이언트

구성구성

SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성

J2EE J2EE 서버로서버로DeployDeploy

튜닝튜닝 및및최적화최적화

테스트테스트 및및디버깅디버깅Analyze

Web Service Debugging 지원

Threads, stack, heap, data 등을 추적

Java Applications 튜닝 지원

Profiler– 어디서 프로그램이 시간을 낭비하고 있는지?– 어디서 프로그램의 메모리가 누수 되고 있는지?

CodeCoach– 어떻게 성능을 향상시킬 수 있는지?– 어떻게 코드의 품질을 향상시킬 수 있는지?

Debugger– 프로그램 deadlock이 어떻게 걸렸는지?– 언제 null pointer 상황이 발생하는지?

Oracle9i JDeveloper Profilers

• Execution SamplingProfiler

Event Profiler

Memory Profiler

D E M O N S T R A T I O ND E M O N S T R A T I O N

Debugging aDebugging aWeb ServiceWeb Service

요약 및 정리

웹 서비스에 대한 고찰– 현재 웹 서비스 관련 표준, 기술 및 제품들은 초기 단계에

있지만 지속적으로 발전해 나갈 것임– 수익 모델, 업무 프로세스 개선 방안, 서비스 품질 확보

방안에 대한 다양한 고려 필요

오라클의 웹 서비스 지원 방안– 기본 전략

J2EE 개발 환경의 지속적인 강화

웹 서비스 지원 모듈의 추가 및 강화– 구체적 지원 방안

Oracle9iAS: 웹 서비스 수행 및 관리 위한 플랫폼 제공

Oracle9i JDeveloper: 웹 서비스의 손 쉬운 개발 지원

Oracle 11i E-Business Suite(ERP): 주요 기능에대한 웹 서비스 인터페이스 제공