Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
웹 서비스(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 개발 및 수행 지원 솔루션의 지속적인 강화
웹 서비스 지원 모듈의 지속적인 추가 및 강화
웹 서비스 관련 표준화 활동에 적극 참여
오라클의 웹 서비스 지원 방안
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
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
웹 서비스 표준화 기구에의 적극적인 참여 및 지원
데모 시스템 : 프로세스 흐름도
구매자시스템
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 …}
Oracle9i JDeveloper에서의웹 서비스 개발 단계
애플리케이션애플리케이션모델링모델링
컴퍼넌트컴퍼넌트구축구축
SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성
Build
Deploy
ConsumeJSP, XML JSP, XML ……클라이언트클라이언트
구성구성
SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성
J2EE J2EE 서버로서버로DeployDeploy
튜닝튜닝 및및최적화최적화
테스트테스트 및및디버깅디버깅Analyze
Oracle9i JDeveloper에서의웹 서비스 개발 단계
애플리케이션애플리케이션모델링모델링
컴퍼넌트컴퍼넌트구축구축
SOAP/WSDL SOAP/WSDL 매핑매핑 생성생성
Build
Deploy
ConsumeJSP, XML JSP, XML ……클라이언트클라이언트
구성구성
SOAP/WSDL SOAP/WSDL Proxy Proxy 생성생성
J2EE J2EE 서버로서버로DeployDeploy
튜닝튜닝 및및최적화최적화
테스트테스트 및및디버깅디버깅Analyze
Java Applications 튜닝 지원
Profiler– 어디서 프로그램이 시간을 낭비하고 있는지?– 어디서 프로그램의 메모리가 누수 되고 있는지?
CodeCoach– 어떻게 성능을 향상시킬 수 있는지?– 어떻게 코드의 품질을 향상시킬 수 있는지?
Debugger– 프로그램 deadlock이 어떻게 걸렸는지?– 언제 null pointer 상황이 발생하는지?
요약 및 정리
웹 서비스에 대한 고찰– 현재 웹 서비스 관련 표준, 기술 및 제품들은 초기 단계에
있지만 지속적으로 발전해 나갈 것임– 수익 모델, 업무 프로세스 개선 방안, 서비스 품질 확보
방안에 대한 다양한 고려 필요
오라클의 웹 서비스 지원 방안– 기본 전략
J2EE 개발 환경의 지속적인 강화
웹 서비스 지원 모듈의 추가 및 강화– 구체적 지원 방안
Oracle9iAS: 웹 서비스 수행 및 관리 위한 플랫폼 제공
Oracle9i JDeveloper: 웹 서비스의 손 쉬운 개발 지원
Oracle 11i E-Business Suite(ERP): 주요 기능에대한 웹 서비스 인터페이스 제공