© 2007 ibm corporation international technical support organization ibm.com the power of one 2007...
TRANSCRIPT
© 2007 IBM Corporation
International Technical Support Organization
ibm.comthe power of one
2007 IBM System i5 아카데미
SOA 를 통한 System i 기존 자원의 전략 자원화
정예성IBM Rochester
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
목차SOA 개요 및 Web services 와의 관계
System i 자원의 Web services 가용화
Web services 툴로서의 WebSphere Development Studio Client (WDSC)
DB2 UDB for i5/OS 자원의 Web services 가용화
i5/OS 프로그램 자원의 Web services 가용화
PHP 어플리케이션 자원의 Web services 가용화
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
SOA 개요
Web Service
Business Logic
Service Provider
Service Client
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
SOA 와 Web Services 의 관계
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Services 개요Web services
웹을 통하여 시동되는 어플리케이션SOA 의 임플리멘테이션Business logic 만을 제공 – 유저 인터페이스는 없음Self-containedSelf-describing StatelessSynchronous/asynchronous
인터넷
웹 어플리케이션
Web Service 기타 어플리케이션
기타 어플리케이션
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Services 의 종류Business 정보 : 신속히 변화하는 데이타베이스를 접근
주식 시세환율 시세주소록지리 정보
Business 프로세스 통합예약 시스템신용 조회결제 시스템대출 서비스제품 카탈로그
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Service – 새로운 혁신자 , TransformerTCP/IP
접속방식의 혁신Web 및 HTTP
프로토콜의 혁신Browser 및 HTML
유저 인터페이스의 혁신XML
데이타 및 메세지 교환방식의 혁신Web Service
어플리케이션 접속방식의 혁신
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Services 기술적 개요
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Services 클라이언트 및 서비스 Web services 의 목표는 인터오퍼러빌리티
새로운 인터오퍼러빌리티 표준플랫폼 및 프로그래밍 언어에 대한 독립성
Microsoft .Net 클라이언트
J2EE 클라이언트
JSP 클라이언트 Java 웹 서비스
RPG 웹 서비스
Microsoft .Net 웹 서비스
SQL 웹 서비스RPG 클라이언트
Web Service 클라이언트 예 Web Service 서비스 예
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web Services 테크놀로지 스택
조회 (Discovery) UDDI, WSIL조회 (Discovery) UDDI, WSIL
기술 ( 記述 : Description) WSDL기술 ( 記述 : Description) WSDL
XML 메시징 SOAPXML 메시징 SOAP
Transport HTTP, JMS, FTP, SMTPTransport HTTP, JMS, FTP, SMTP
서비스 provider 와 requestor 와의 컨트랙트 내역은
WSDL 에 기술됨 .
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services : Transport 레이어
Broker
Provider
SOAP over
HTTP
Requestor
SOAP over
HTTPSOAP over
HTTP
HTTP 간결하면서도 안정적이며 전세계에 걸쳐 사용됨 방화벽에 의해 제지되지 않음 현재 , SOAP transport 에 가장 일반적인 형태 Synchronous 한 성격 만약 asynchronous 한 트랜잭션 지원이 요구될 경우는 JMS 를 고려하여야 함
기타 FTP, SMTP 등이 사용될 수 있음
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services : 기술 ( 記述 ) 레이어 WSDL: Web Services Definition Language
XML schema (vocabulary) 를 통하여 Web service 인터페이스를 기술
Methods Parameters 서비스 인보크하는 방법 기술
클라이언트 어플리케이션은 WDSL 을 이용하여 클라이언트 proxy 를 생성함
Web service 클라이언트 proxy 에는 서비스 인보크를 위한 코드가 들어있음
Broker
Provider
Publish WSDLLook up WSDL
Use WSDL to bind/invoke
2
3
1
Requestor
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services : 기술 ( 記述 ) 레이어 WSDL 예...<element name="sayHello"> <complexType> <sequence> <element name="name" nillable="true" type="xsd:string"/> </sequence> </complexType> </element> <element name="sayHelloResponse"> <complexType> <sequence> <element name="sayHelloReturn" nillable="true" type="xsd:string"/> </sequence> </complexType> </element> </schema> </wsdl:types>...<wsdl:service name="GreetingsBeanService"> <wsdl:port binding="intf:GreetingsBeanSoapBinding" name="GreetingsBean"> <wsdlsoap:address location="http://localhost:9080/WebServiceDemo/services/GreetingsBean"/> </wsdl:port></wsdl:service>
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services : XML 메시징 레이어 SOAP 는 XML 의 일종 SOAP 메시지에는 Remote Procedure Call (RPC) 혹은 XML
document 가 포함되어 있음
Web service Client
Web service SOAP ServerInternet
1 2 3
6 5 4
1. Web service client 는 SOAP message 를 생성하여 전송 .2. SOAP server 는 SOAP message 를 기다리고 있음 . SOAP server 는 Application Server( 예 :
WebSphere Application Server).3. SOAP server 는 SOAP message 를 처리하여 구체적인 request 를 Web service 에 넘겨줌 .4. Web service 는 해당 method 를 작동시켜 얻어진 result 를 SOAP server 에게 넘겨줌 .5. SOAP server 는 result 를 Web service client 에게 넘겨줌 .6. Web service client 가 SOAP response 를 parse 함 .
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services : Discovery, 즉 조회 및 발견UDDI: Universal Description, Discovery and Integration
Web Services 의 등록부 회사 및 서비스 유형에 따라 분류됨 Private 혹은 public 형태로 존재함 현재 몇몇 public UDDI registries 가 활동중
IBM UDDI Business Registry: https://uddi.ibm.com/ubr/registry.html
IBM UDDI Business Test Registry: https://uddi.ibm.com/testregistry/registry.html
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
System i 자원의 Web services 가용화
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
System i 자원의 Web services 가용화Web service 화가 가능한 System i 자원의 종류 :
i5/OS 명령어 , data queues, data areas, batch jobs, 등Callable programs 및 service programs i5/OS 인터렉티브 프로그램 DB2 UDB tables, views, stored procedures, 등WebSphere MQ, Domino, 등의 미들웨어
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services 를 위한 기본 요건명확히 정의된 input parameter(s)명확히 정의된 output 데이타명확히 정의된 transactional boundariesThread safe자원에 대한 read/write/use access 권한 Error recoverySOAP server connectors 및 runtime integration
Java based ( 예 : WebSphere Application Server)
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
환경 조건i5/OS 환경
Qshell, 5722SS1 Option 30Host Servers, 5722SS1 Option 12 IBM Developer Kit for Java, 5722JV1 Options 5 and 6 IBM Toolbox for Java, 5722JC15722WDS Option 31 Compiler - ILE RPG IV5722WDS Option 34 Compiler - RPG/400®가장 최근의 Group PTFs:
Cumulative Group PTF SF99540WebSphere Group PTF SF99312
Host Servers 가 active 한 상태일 것 :STRHOSTSVR *ALL
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
환경 조건클라이언트 환경
WebSphere Development Studio Client for System i V6.0.1.Firefox 1.0.7 이상 ( 혹은 유사한 인터넷 브라우져 ).
디플로이먼트 환경WebSphere Application Server - Express, Base, 혹은 ND.RPG 어플리케이션 서버 .
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Web services 툴로서의WebSphere Development Studio Client (WDSC)
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
WDSC 페키징
Eclipse Platform V3.2Eclipse Platform V3.2
IBM Rational Software Development PlatformIBM Rational Software Development Platform
WebSphere Development Studio Client 7.0
WebSphere Development Studio Client 7.0
Subset of RationalApplication Developer 7.0
Subset of RationalApplication Developer 7.0
Generic application development
System i extensions for application development
WebSphere Development Studio Client Advanced
Edition 7.0
WebSphere Development Studio Client Advanced
Edition 7.0
Rational Application Developer 7.0
Rational Application Developer 7.0
Java, HTML, Servlets, XML, JSP, JSF, Web services, Unit Test environment, database
Portal, EJB, J2EE, UML, Profiling
Application Diagram,Screen Designer
SSO, JCAWebFacing, HATS, RSE
Standard Edition Advanced Edition
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
RSE: Remote System Explorer
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
1988
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
1992CODECODE
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
2002…
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
WebSphere Development Studio Client
RSDP(Rational
Software Development Platform)
RSDP(Rational
Software Development Platform)
EclipseEclipse
WDSC
RWD
RADRSM
RMT
RFA
RSA More…
WDz
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Eclipse User Interface – Perspective
에디터에디터
뷰뷰
뷰뷰뷰뷰
뷰뷰
다양한다양한퍼스펙티브퍼스펙티브
현재현재퍼스펙티브퍼스펙티브
다양한다양한뷰뷰
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
프라퍼티 뷰를 통하여 선택된 노드의 자세한
정보를 볼 수 있음
어플리케이션다이어그램
아웃라인뷰
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
어플리케이션 다이어그램 – 프라퍼티 뷰
서비스 프로그램의프라퍼티
서브루틴 , 혹은 프로시듀어의
프라퍼티
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
웨 어플리케이션 개발 툴WAS 6.1 지원
WAS 6.1 embedded 테스트 서버
새로운 JSF 컴포넌트
새로운 웹 다이어그램 에디터
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
웹 다이어그램 에디터
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
i5/OS DB2 UDB 자원의 Web Service 화
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
DB2 UDB 를 이용한 Web Services 특장점환경적인 특장점
가장 간편한 방법중의 하나Web services technology 의 초기 습득에 유리
어플리케이션 전체의 모더나이제이션이 용이치 않을 때모더나이제이션 하지 않고도 Web services 적용 가능
기존의 SQL 자원이 풍부할 때Stored procedures 자원이 풍부할 때
기술적인 특장점 : Runtime 제공DB2 XML Extender 이용하기Direct JDBC™ connection 이용하기
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
XML 예
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
DB2 XML Extender
Network
i5/ OS
DB2 UDB for iSeries
Document Type
Defi nition (DTD)
Data Access Definition
(DAD)
XML Schema Defi nition
(XSD)
DB2 XML Extender
Application
XML Document
XML DocumentXML
Documentlocal
XML Document
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
DB2 UDB 자원의 Web Service 화WORF 프레임워크 이용거의 아무런 코딩 없이 Web service 개발 가능WDSC 를 개발 툴로 이용
WORF(DADX processor)
WebSphere Application Server
DB2 UDB for i5/OS
DB2 XML Extender
Stored Procedures for
XML
User-defined functions for
XML
SQLstatements
Storedprocedures
calls
DAD andXML documents
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
DADX File 을 이용한 DB2 UDB 자원의 Web Service 화1 단계 : Dynamic Web Project 생성
2 단계 : DB2 connection 셋업
3 단계 : SQL statement 생성
4 단계 : DADX group 컨피규어
5 단계 : DADX file 생성
6 단계 : DADX file 을 바탕으로 Web service 생성
7 단계 : Web service 테스트
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
1 단계 : Dynamic Web Project 생성1. On WDSc, select
File New Project
2. In the pop-up window select Dynamic Web Project and click Next.
3. Enter a name for the project, such as db2dadxws in our example:
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
2 단계 : DB2 connection 셋업
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
3 단계 : SQL statement 생성
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
4 단계 : DADX group 컨피규어
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
5 단계 : DADX file 생성
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
5 단계 : DADX file 생성 - 예제<?xml version="1.0" encoding="UTF-8"?>
<dadx:DADX xmlns:dadx="http://schemas.ibm.com/db2/dxx/dadx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://schemas.ibm.com/db2/dxx/dadx dadx.xsd">
.
.
</dadx:documentation>
<dadx:query>
<dadx:SQL_query>
<![CDATA[
SELECT * FROM FLGHT400.CUSTOMERS WHERE FLGHT400.CUSTOMERS.CUSTOMER_NAME LIKE :CustName
]]>
</dadx:SQL_query>
<dadx:parameter name="CustName" type="xsd:string"/>
</dadx:query>
</dadx:operation>
</dadx:DADX>
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
6 단계 : DADX file 을 바탕으로 Web service 생성
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
7 단계 : Web service 테스트
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
DADX File 을 이용한 DB2 UDB Web Service 디플로이먼트1 단계 : WSDL service address 를 해당 deployment server 에 맞도록 수정2 단계 : WAR/EAR file 을 export 한 뒤 , WebSphere Application Server for System i 에 설치3 단계 : 새로운 Web service 를 이용하여 새로운 어플리케이션을 개발하거나 기존의
어플리케이션을 리모델링
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
i5/OS 프로그램 자원의 Web Service 화
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
어플리케이션 및 데이타 모더나이제이션
RPG IV, ILE COBOL or ILE CL
User Interface DB
LogicRPG III, COBOL/400 or CL/400
DB constraints
DB triggers
Stored ProceduresGraphical
InterfaceBrowser Interface
ILE Srvpgm
Java BeanJava Bean1. 컴파일러 업그레이드2. ILE 를 이용하여 코드의
모듈화 달성3. 비지니스 환경 변화에 따른
컴포넌트 대체 즉응성 성취
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
i5/OS 프로그램 자원의 Web Service 화IBM Toolbox for Java 를 활용기본 단계
WDSC 를 이용하여 JavaBean component 생성
Input parameters 및 output results 정의Connection 생성적절한 method(s) 가동Toolbox 에 이미 다양한 JavaBeans 가
만들어져 있음인터렉티브 웹 어플리케이션에
JavaBean 이용WDSc JavaBean Web service wizard 를
이용하여 : 서버 어플리케이션 생성 클라이언트 테스트 어플리케이션
생성어플리케이션의 테스트 , 수정 , 및
디플로이
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
i5/OS 프로그램 자원의 Web Service 화
JAX-RPC Proxy
Web service client application
WS
DL
Network
SOAP over HTTP
WAS(SOAP Server)
Web service application
*PGM, *SRVPGM
Program Call
JavaBeanWeb and
Java API's
WSDLMappings
Service E
ndpoint
PCML Document
WDSC Web service wizard 가 우리를 대신하여
만들어주는 모듈
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
PHP 어플리케이션의 Web Service 화
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
PHP 어플리케이션의 Web Service 화 PHP language (www.php.net)
JavaServer Pages 와 매우 유사 HTML 에 대한 다양한 기능 두가지의 실행 모드 :
CGI Run as Apache plug-in
데이타 센트릭 , 비교적 단순한 웹 어플리케이션 개발에 유리
LinuxWindows
MySQLSQLite
PostgreSQL
PHPPython
Perl
Apache
L = Linux A = Apache web server M = MySQL P = PHP | Perl | Python
PHP 란 무엇인가 ?
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
PHP 어플리케이션의 Web Service 화
<?php class QuoteService { private $quotes = array("ibm" => 87.65, "wmt" => 45.67); function getQuote($symbol) { if (isset($this->quotes[$symbol])) { return $this->quotes[$symbol]; } else { throw new SoapFault("Server","Unknown Symbol '$symbol'."); } } } $server = new SoapServer("stockquote.wsdl"); $server->setClass("QuoteService"); $server->handle(); ?>________________________________________________________<?php $client = new SoapClient("stockquote.wsdl"); print($client->getQuote("ibm")); ?> ________________________________________________________87.65
PHP Web service provider 및 requester 예제
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
참고자료Redbooks
http://www.redbooks.ibm.com WebSphere Version 6 Web Services Handbook Development and Deployment, SG24-6461-00 Rational Application Developer V6 Programming Guide, SG24-6449-00 Building SOA-based Solutions for System i, SG24-7284-00
WebSphere Application Server for iSeries Information Center http://publib.boulder.ibm.com/infocenter/wsdoc400/index.jsp
IBM developerWorks http://www.ibm.com/developerworks/webserviceshttp://www-128.ibm.com/developerworks/db2/zones/webservices/http://www.ibm.com/developerworks/rational/products/egl/http://www-128.ibm.com/developerworks/lotus/library/nd7-webservices/http://www.ibm.com/developerworks/opensource/top-projects/php.html
© 2007 IBM Corporation
ibm.com/redbooks International Technical Support Organization
Trademarks & Disclaimers8 IBM Corporation 1994-2003. All rights reserved.References in this document to IBM products or services do not imply that IBM intends to make them available in every country.The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both:
Lotus, Freelance Graphics, and Word Pro are registered trademarks of Lotus Development Corporation and/or IBM Corporation.Domino is a trademark of Lotus Development Corporation and/or IBM Corporation.
C-bus is a trademark of Corollary, Inc. in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries.SET and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC. Other company, product and service names may be trademarks or service marks of others.
Information is provided "AS IS" without warranty of any kind.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.
Information in this presentation concerning non-IBM products was obtained from a supplier of these products, published announcement material, or other publicly available sources and does not constitute an endorsement of such products by IBM. Sources for non-IBM list prices and performance numbers are taken from publicly available information, including vendor announcements and vendor worldwide homepages. IBM has not tested these products and cannot confirm the accuracy of performance, capability, or any other claims related to non-IBM products. Questions on the capability of non-IBM products should be addressed to the supplier of those products.
All statements regarding IBM future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. Contact your local IBM office or IBM authorized reseller for the full text of the specific Statement of Direction.
Some information in this presentation addresses anticipated future capabilities. Such information is not intended as a definitive statement of a commitment to specific levels of performance, function or delivery schedules with respect to any future products. Such commitments are only made in IBM product announcements. The information is presented here to communicate IBM's current investment and development activities as a good faith effort to help with our customers' future planning.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput or performance improvements equivalent to the ratios stated here.
Photographs shown are of engineering prototypes. Changes may be incorporated in production models.
AS/400 IBM(logo)
AS/400e iSeries
e (logo) business OS/400
IBM