달력

12025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

퍼미션 에러인듯 싶더군요.

ORACLE_HOME/bin] chmod 6751 oracle
잘돌아갑니다.
위처럼 하면

-rwxr-xr-x   1 oracle     dba        77762776 1월 29일 13:15 oracle
->>> 이렇게 권한이 바뀝니다. s로 바뀌지요. s에 대한 자세한 설명은 유닉스나 리눅스 사용 권한을 참조하세요.
-rwsr-s--x   1 oracle     dba        77762776 1월 29일 13:15 oracle


Make sure file 'oracle' has the following permissions:
cd $ORACLE_HOME/bin
6751
If not...
1. Login as oracle user
2. Shutdown (normal) the db
3. Go to $ORACLE_HOME/bin
4. Execute the following
chmod 6751 oracle
5. Check the file permissions on oracle using the following
ls -l oracle
they should be:
-rwsr-s--x
Startup the db and try connecting as dba or non-oracle user.
if this will not work:
- make sure permisions on oracle filesystems are set correctly ( set to 755)
- filesystem must be mounted with correct setuid

'DB' 카테고리의 다른 글

데이터 사전정보  (0) 2008.09.15
ORA-01031 권한이 없음  (0) 2008.09.15
Oracle 환경변수  (0) 2008.09.15
기본으로 생성되는 Role  (0) 2008.09.15
[QUERY] TABLESPACE 생성  (0) 2008.09.15
Posted by marryjane
|

Oracle 환경변수

DB 2008. 9. 15. 19:49

glogin.sql 에 추가

define _editor=vi
set pause on
set pause 'Press Any Key....'
set linesize 120
set wrap off
set sqlprompt 'Hi Dba>'

'DB' 카테고리의 다른 글

ORA-01031 권한이 없음  (0) 2008.09.15
ORA-27121 unable to determine size of  (0) 2008.09.15
기본으로 생성되는 Role  (0) 2008.09.15
[QUERY] TABLESPACE 생성  (0) 2008.09.15
[QUERY] User 생성, 수정, 삭제  (0) 2008.09.15
Posted by marryjane
|

기본으로 생성되는 Role

DB 2008. 9. 15. 19:48


오라클 데이터베이스를 생성하면 기본적으로 몇 가지의 Role이 생성 됩니다.
 
DBA_ROLES 데이터 사전을 통하여 미리 정의된 Role을 조회 할 수 있습니다.
 
SQL>SELECT * FROM DBA_ROLES;

ROLE                             PASSWORD
----------------------    -----------
CONNECT                              NO
RESOURCE                            NO
DBA                                       NO
SELECT_CATALOG_ROLE        NO
EXECUTE_CATALOG_ROLE      NO
DELETE_CATALOG_ROLE         NO
EXP_FULL_DATABASE             NO
IMP_FULL_DATABASE              NO
....

이 외에도 많이 ROLE이 존재합니다.
그 중에서 가장 많이 사용하는 3가지만 설명 하겠습니다.



◈ CONNECT
 
- 오라클에 접속 할 수 있는 세션 생성 및 테이블을 생성하거나 조회 할 수 있는  가장 일반적인 권한들로 이루어져 있습니다.

- CONNECT Role이 없으면 유저를 생성하고서도 Oracle에 접속 할 수가 없습니다.

- 아래의 명령어로 CONNECT Role이 어떤 권한으로 이루어져 있는지 확인 할 수 있습니다.


 SQL>SELECT grantee, privilege
        FROM DBA_SYS_PRIVS
        WHERE grantee = 'CONNECT';

GRANTEE     PRIVILEGE
----------- ---------------------
CONNECT     ALTER SESSION
CONNECT     CREATE CLUSTER
CONNECT     CREATE DATABASE LINK
CONNECT     CREATE SEQUENCE
CONNECT     CREATE SESSION
CONNECT     CREATE SYNONYM
CONNECT     CREATE TABLE
CONNECT     CREATE VIEW


◈ RESOURCE

 - Store Procedure나 Trigger와 같은 PL/SQL을 사용할 수 있는 권한 들로 이루어져 있습니다.

 - PL/SQL을 사용하려면 RESOURCE Role을 부여해야 합니다.
 
 - 유저를 생성하면 일반적으로 CONNECT, RESOURCE롤을 부여 합니다.

SQL>SELECT grantee, privilege
        FROM DBA_SYS_PRIVS
        WHERE grantee = 'RESOURCE';


◈ DBA

 - 모든 시스템 권한이 부여된 Role입니다.

 - DBA Role은 데이터베이스 관리자에게만 부여해야 합니다. 



'DB' 카테고리의 다른 글

ORA-27121 unable to determine size of  (0) 2008.09.15
Oracle 환경변수  (0) 2008.09.15
[QUERY] TABLESPACE 생성  (0) 2008.09.15
[QUERY] User 생성, 수정, 삭제  (0) 2008.09.15
[QUERY] Oracle User의 Object 조회  (0) 2008.09.15
Posted by marryjane
|

[QUERY] TABLESPACE 생성

DB 2008. 9. 15. 19:48

create tablespace tablespace_name
datafile filespec [autoextend_clause] size
[MINIUMUM EXTENT integer [K|M]]
[DEFAULT STORAGE]
[PERMANENT | TEMPORARY]
[ONLINE | OFFLINE]

  - 옵션절을 생략할 경우 밑줄친 옵션이 디폴트 값입니다.
   - tablespace_name : 생성할 테이블 스페이스 명
   - DATAFILE : 새로 생성하는 테이블스페이스가 사용할 데이터 파일
   - filespec : 디렉토리 경로명을 포함한 파일명
   - size : 새로 생성되는 데이터 파일의 크기

- ONLINE/OFFLINE
       ONLINE : 새로 생성되는 테이블 스페이스를 활성화 시키며, 생성 후 바로 사용할 수 있게 함
       OFFLINE : 테이블 스페이스를 비활성화 시키며, 생성 후 바로 사용할 수 없음

   - PERMANT/TEMPORARY : TEMPORARY 옵션을 사용하면 생성하는 테이블스페이스는
                                         임시 테이블스페이스가 됩니다.


* 테이블 스페이스 생성 예제

-- sysdba권한으로 접속을 합니다.
SQL> conn sys/manager as sysdba

-- 테이블스페이스 생성
SQL>CREATE TABLESPACE storm
         DATAFILE 'C:\ORACLE\ORADATA\app_data.dbf' SIZE 100M
         DEFAULT STORAGE
             (INITIAL    10K
              NEXT      10K
              MINEXTENTS 2
              MAXEXTENTS 50
              PCTINCREASE 50)

'DB' 카테고리의 다른 글

Oracle 환경변수  (0) 2008.09.15
기본으로 생성되는 Role  (0) 2008.09.15
[QUERY] User 생성, 수정, 삭제  (0) 2008.09.15
[QUERY] Oracle User의 Object 조회  (0) 2008.09.15
function sample source - oracle  (0) 2008.09.09
Posted by marryjane
|

CREATE USER TEST IDENTIFIED BY TEST;

CREATE USER user_name
IDENTIFIED [BY password | EXTERNALLY]
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESAPCE tablespace]
[QUOTA {integer [K | M] | UNLIMITIED} ON tablespace]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK} ]
[PROFILE { profile | DEFAULT} ]

- user_name : 사용자 이름

 - BY password : 사용자가 데이터베이스에 의해 인증되도록 지정하며, 데이터베이스 유저 로그온시 사용하는 비밀번호 입니다. 

 - EXTERNALLY : 사용자가 운영 체제에 의해서 인증되도록 지정합니다.

 - DEFAULT TABLESPACE는 사용자 스키마를 위한 기본 테이블 스페이스를 지정 합니다.

 - TEMPORARY TABLESPACE는 사용자의 임시 테이블 스페이스를 지정합니다.

 - QUOTA절을 사용하여 사용자가 사용할 테이블 스페이스의 영역을 할당합니다.

 - PASSWORD EXPIRE : 사용자가 SQL*PLUS를 사용하여 데이터베이스에 로그인할  때 암호를 재설정하도록 합니다.(사용자가  데이터베이스에 의해  인증될 경우에만 적합한 옵션입니다.)

 - ACCOUNT LOCK/UNLOCK :  사용자 계정을 명시적으로 잠그거나 풀 때 사용할 수  있습니다.(UNLOCK이 기본값입니다.)

 - PROFILE: 자원 사용을 제어하고 사용자에게 사용되는 암호 제어 처리 방식을 지정하는데 사용됩니다.

※ 여기선 간단한 유저생성에 대해서만 알아보고 자세한 유저관리와 PROFILE 관리는 어드민에서 설명 하겠습니다.
 


-  새로 생성한 TEST USER는 권한이 없어서 접근할 수가 없습니다.
-  모든 USER는 권한이 있고 권한에 해당하는 역할만 할 수 있습니다.
-  TEST라는 USER를 사용하기 위해서도 권한을 부여해주어야 합니다.

CREATE USER alink
IDENTIFIED BY alink


SQL> CONN SYSTEM/MANAGER
연결되었습니다.

SQL> GRANT connect, resource TO TEST ;
권한이 부여되었습니다.

SQL> CONN TEST/TEST
연결되었습니다.

* 수정

SQL>CONN SYSTEM/MANAGER       -- SYSTEM USER로 접속합니다.

SQL>ALTER USER scott IDENTIFIED BY lion;    -- scott USER의 비밀번호를 수정합니다.
 사용자가 변경되었습니다.

SQL>conn scott/lion    -- scott USER의 비밀번호가 바낀걸 확인할 수 있습니다.
접속되었습니다.


SQL>conn system/manager
접속되었습니다.

SQL>ALTER USER scott IDENTIFIED BY tiger;    -- scott USER의 비밀번호를 처음처럼 수정합니다.
 사용자가 변경되었습니다.

* 삭제

SQL> drop user user_name [cascade];
cascade 를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스, 스키마가 삭제되며 스키마객체는 물리적으로도 삭제됩니다.

'DB' 카테고리의 다른 글

기본으로 생성되는 Role  (0) 2008.09.15
[QUERY] TABLESPACE 생성  (0) 2008.09.15
[QUERY] Oracle User의 Object 조회  (0) 2008.09.15
function sample source - oracle  (0) 2008.09.09
Toad 9.0 사용후기 공모당선작  (0) 2008.08.12
Posted by marryjane
|

◈ DB에 등록된 유저의 정보 조회
 
 - dba_users 데이터 사전을 이용하시면 됩니다.
 

SQL>col username format a15
SQL>col default_tablespace format a15
SQL>col temperary_tablespace format a15
SQL>SELECT username, default_tablespace, temporary_tablespace, created
       FROM dba_users
   
USERNAME        DEFAULT_TABLESP TEMPORARY_TABLESPACE           CREATED
---------------   ---------------        ------------------------------ --------
SYS                     SYSTEM                 TEMP                                   01/03/25
SYSTEM               TOOLS                   TEMP                                   01/03/25
OUTLN                  SYSTEM                 SYSTEM                               01/03/25
DBSNMP               SYSTEM                  SYSTEM                              01/03/25
SCOTT                 SYSTEM                  SYSTEM                              01/03/25
ADAMS                 SYSTEM                  SYSTEM                               01/03/25
OEM                     OEM_REPOSITORY   TEMP                                  01/10/11
JONES                  SYSTEM                   SYSTEM                              01/03/25
CLARK                  SYSTEM                   SYSTEM                              01/03/25
BLAKE                  SYSTEM                   SYSTEM                              01/03/25
....
 
18개의 행이 선택되었습니다.
 
 
DEFAULT_TABLESPACE와 TEMPORARY_TABLESPACE는 유저를 생성할때 지정한 것이며,
이때 테이블스페이스를 지정하지 않으면 오라클은 자동적으로
DEFAULT_TABLESPACE와 TEMPORARY_TABLESPACE를 system으로 이용합니다.



◈ 유저의 Object 정보 조회
 
- user_objects 데이터 사전을 이용하시면 됩니다.
 

SQL>col object_name format a25;
SQL>SELECT object_name, object_type
        FROM user_objects
        WHERE object_type = 'INDEX';
 
OBJECT_NAME               OBJECT_TYPE
------------------------- ------------------
BIANRY_PK                         INDEX
BINARY_FK                         INDEX
BOARD_CTNT_LST_FK1        INDEX
BOARD_CTNT_LST_FK2        INDEX
BOARD_CTNT_LST_PK          INDEX
BOARD_FK1                        INDEX
BOARD_PK                         INDEX
COMMUNITY_TYPE_IDX        INDEX
COMMUNITY_TYPE_PK         INDEX
COMM_CTNT_LST_FK1         INDEX
COMM_CTNT_LST_FK2         INDEX
...
27개의 행이 선택되었습니다.    
 
object_type를 보고 싶으면
 
SQL>SELECT object_type
       FROM user_objects
       GROUP BY object_type;
 
OBJECT_TYPE
------------------
INDEX
SEQUENCE
TABLE


* 패스워드 변경

ALTER USER scott IDENTIFIED BY tiger2

'DB' 카테고리의 다른 글

[QUERY] TABLESPACE 생성  (0) 2008.09.15
[QUERY] User 생성, 수정, 삭제  (0) 2008.09.15
function sample source - oracle  (0) 2008.09.09
Toad 9.0 사용후기 공모당선작  (0) 2008.08.12
ORA-03113: end-of-file on communication channel  (0) 2008.08.01
Posted by marryjane
|

[AIX]하드웨어명령어

OS 2008. 9. 15. 19:39

1. 제조사 
   - 회사명 = lsattr -El sys0
   - 모델명 = prtconf (하드웨어config)
 
2. OS version
   - 버전 = oslevel -r
 
3. CPU
   - Arch = prtconf
   - Hz   = lsattr -El proc0 (단위 Hz)
   - 개수 = lsdev -Cc processor (프로세서 물리적인 단위)
   - 논리개수 = bindprocessor -q (SMT 기능구현시 2배로 보임)
 
4. Memory
   - 용량 = lsattr -El sys0, prtconf
   - lsdev -C |grep mem
   - bootinfo -r
 
5. Virtual Memory
   - 용량 = lsps -a
 
6. Internal Disk
   - size = bootinfo -s hdisk(숫자) (Mb단위)
   - 개수 = lsdev -Cc disk
 
7. External Disk (SSA)
   - size = bootinfo -s hdisk(숫자) (Mb단위)
   - 개수 = lsdev -Cc pdisk , lsdev -Ct hdisk
 
8. rootvg mirror(y/n)
   - not mirror = lsvg rootvg (ACTIVE PVs = 1)
   - mirror     = lsvg rootvg (ACTIVE PVs = 2)
 
9. NIC
   - 속도, 개수 = lsparent -Ck ent
 
10. 시스템에 장착된 부품들에 위치확인
   - lscfg -vp
 
11. 시스템 parameter를 보고자 할 경우
   - lsattr -El sys0

  시스템 parameter를 변경하고자 할 경우
   - chdev -l sys0 -a parameter_name='value'

* 일반적 정보
prtconf                      = list system configuration
lscfg [-v]                  = devices (-v = verbose for microcode levels, etc)
lscfg -v                     = devices verbose (microcode level, firmware, etc)
lsdev -Cc adapter      = adapter cards
lsdev -Cc disk           = disks
lsdev -Cc processor  = CPU s
lsattr -El sys0            = serial number, model number, memory
* AIX 관련 정보
oslevel                      = AIX OS level
instfix -i |grep ML      = AIX maintenance level
lslpp -l                      = installed SW and levels
* Disk 관련 정보
lsvg -o                      = active volume groups
lsvg -p vgname          = disk drives in VG
lsvg -l vgname           = LV s in VG
lslv lvname                = LV detail
lslv -l lvname             = LV disk location
lspv                          = disks
lspv -l hdisk#             = LV s residing on a disk

* Network 관련 정보
lsdev -Cc if               = List network interfaces
netstat -rn                 = List network gateways


http://navylela.tistory.com/2

root@angeltime/]lsdev -Ccadapter   // LAN or FC card 확인
ent0      Available       Logical Host Ethernet Port (lp-hea)
ent1      Available       Logical Host Ethernet Port (lp-hea)
ent2      Available 03-00 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
ent3      Available 03-01 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
ent4      Available 04-00 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
ent5      Available 04-01 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
ent6      Available 06-00 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
ent7      Available 06-01 2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
fcs0      Available 05-00 4Gb FC PCI Express Adapter (df1000fe)
lhea0     Available       Logical Host Ethernet Adapter (l-hea)
sa0       Available 01-08 2-Port Asynchronous EIA-232 PCI Adapter
sissas0   Available 09-08 PCI-X266 Planar 3Gb SAS Adapter
sisscsia0 Available 02-08 PCI-XDDR Dual Channel Ultra320 SCSI Adapter
usbhc0    Available 0A-08 USB Host Controller (33103500)
usbhc1    Available 0A-09 USB Host Controller (33103500)
vsa0      Available       LPAR Virtual Serial Adapter

::::::::::::::::::::::::::::::::::::::  네트워크 링스 속도 확인 및 조절  ::::::::::::::::::::::::::::::::::::::::::::::

만약  LINK STATe

#smitty dev > communication > Ehternet adapter > Adapter > show & change

 ^M                                     Change / Show Characteristics of an Ethernet Adapter

Type or select values in entry fields.
Press Enter AFTER making all desired changes.
 
                                                        [Entry Fields]
  Ethernet Adapter                                    ent2
  Description                                         2-Port 10/100/1000 Base-TX PCI-Express Adapter (14104003)
  Status                                              Available
  Location                                            03-00
  Rcv descriptor queue size                          [1024]                                                                      +#
  TX descriptor queue size                           [512]                                                                       +#
  Software transmit queue size                       [8192]                                                                      +#
  Transmit jumbo frames                               no                                                                         +
  Enable hardware TX TCP resegmentation               yes                                                              +
  Enable hardware transmit and receive checksum       yes                                                             +
  Media speed                                         Auto_Negotiation                                                           +
  Enable ALTERNATE ETHERNET address                   no                                                              +
  ALTERNATE ETHERNET address                         [0x000000000000]                                               +
  Apply change to DATABASE only                       no                                                                     +
  Enable failover mode                                disable                                                                     +

'OS' 카테고리의 다른 글

vmware 하드 추가 & 마운트  (0) 2009.02.18
route - DOS  (0) 2009.02.06
nm - lib 안의 함수목록  (0) 2008.08.08
HOW-TO Glance  (0) 2008.08.06
sed - 스트림 에디터  (0) 2008.07.16
Posted by marryjane
|

본 특집은 최근 들어 국내 IT 업계의 주요 화두가 되고 있는 서비스 지향 아키텍처(Service Oriented Architecture, 이하 SOA)를 주제로, 외국 developerWorks 사이트에 게재된 글 중 국내 개발자에게 도움이 될만한 글들을 모아 소개하고 있다.

각각의 기술문서에 대한 소개에 앞서, 잠시 SOA 가 대두된 배경을 살펴보자. (참고자료: SOA 입문)

"더이상 IT 환경은 비즈니스 환경과 무관하게 계획되고, 구축되며, 운영될 수 없다!" 기업 환경이 빠르게 변화함에 따라, 기업 내 IT 환경은 기업의 생존을 위한 기본 인프라로서, 기업의 흥망성쇠에 중요한 역할을 한다. 예전의 IT 환경은 장차의 변화를 예측하고, 이에 대한 체계적인 분석을 통해 예상된 변화에 대응할 수 있도록 설계되어 구축되곤 했다. 그러나, 이러한 과정은 여러 시행착오를 거치며 실제 운용에 이르기까지 설계와 구축에 상당한 기간이 소요되었다. 또한 변화된 요구에 대해서는 능동적으로 대처하기 어려운 한계가 있다.

그러나, 최근의 비즈니스 환경은 외부의 변화 및 내부의 요구사항에 대한 보다 빠른 대응을 필요로 하고 있다. 이는 기업의 성공적인 운영을 위해 예측되어진 변화외에 예측하지 못했던 변화에 대해서도 발빠르게 대응할 수 있는 능력이 강하게 요구되고 있으며, 기업의 인프라로서 IT 환경 또한 기업의 판단에 따른 비즈니스 변화에 대해 발빠르게 대처할 수 있도록 요청되고 있다. 그러나 기존의 방식으로 비즈니스 환경의 변화요구에 맞게 IT 환경을 재구성하기에는 너무 많은 시간과 비용이 소요된다. 따라서, 기존의 IT 패러다임으로는 이러한 변화에 제대로 대응할 수 없으며, 이로 인해 다른 기업과의 경쟁에서 뒤처지는 경우를 어렵지 않게 볼 수 있다. 이에 따라 IT 환경에 대한 새로운 패러다임이 강하게 요구되었으며, 이에 SOA 가 제시되었다.

SOA 의 가장 큰 특징은 바로 반복사용이 가능한 서비스이다. 웹서비스에 근간하여 기업내의 각 업무단위를 독립적이고 반복사용이 가능한 형태인 서비스라는 컴포넌트로 구현하여, ESB(Enterprise Service Bus)를 통해 이를 유연하게 연결함으로써 결과물을 산출한다. 웹서비스의 유연한 연결방식을 바탕으로, 각각의 서비스는 필요에 따라 새로운 형태로 연결되어 구성이 될 수 있으며, 이러한 변경을 통해 비즈니스 환경이나 요구사항의 변화에 발빠르게 대처할 수 있는 것이다. 즉, SOA 는 내부의 단위 업무를 서비스로 정의하고 이를 조합하여 ESB로 연결함으로써 하나의 애플리케이션을 구성한다. (이를 컴포지트 애플리케이션 이라고 한다.) 이렇게 구성된 애플리케이션은 기존 애플리케이션과는 달리 이미 정의된 서비스들을 조합하여 필요한 기능을 구현하며, 새로운 기능의 추가나 개선은 개발된 서비스중 일부를 변경하거나 재조합함으로써 구현할 수 있다.
바로 이러한 SOA 를 통해 기업은 비로소 외부의 변화에 빠르게 대응할 수 있으며, 내부의 새로운 요구사항을 적극적으로 수용할 수 있게 되는 것이다.

우선, 아래의 시리즈는 일반론적인 관점에서 SOA에 대한 고찰과 접근방식을 설명하고 있다. 첫번째 글에서 기업에서 SOA 를 적용하고 할 때의 다양한 구축 패턴을 비교하여 각각의 장점에 대해 살펴보며, 이를 기반으로 두번째 글에서 분석 및 설계과정을 통해 서비스를 구성하는 방법에 대해 살펴보고 있다.


좀더 체계적인 구축방법론은 아래의 기사들을 통해 살펴볼 수 있다. 아래의 기사들에서 저자는 SOA 를 구축하는 새로운 프로세스와 방법론을 설명하고, 성숙도 모델을 제시하여 각 기업의 성숙도 레벨을 평가하는 방법에 대해 설명하고 있다.


본격적인 SOA 프로그래밍 모델에 대한 설명은 아래 9편의 시리즈 글를 통해 살펴볼 수 있다. 이 시리즈를 통해 여러가지 새로운 SOA 관련 프로그래밍 모델을 살펴볼 수 있으며, 기업내에서 SOA를 어떻게 구축하여 활용할 수 있는지에 대해 설명하고 있다.


지금까지 조금은 지루한 내용었다면, 잠깐 쉬어가는 의미에서 관련 전문가 인터뷰를 살펴보자. 다음 글은 IBM에서 근무하는 기술전문가와의 인터뷰를 통해 SOA 에 대한 실질적인 이해의 면모를 잠깐이나마 살펴볼 수 있으며, IBM의 차세대 사용자 인터페이스의 추축이 되는 IBM WebSphere Portal 및 Workplace 를 통한 SOA 구축에 대해 알아볼 수 있다.


마지막으로 SOA 의 반패턴 연구를 통해, 일반적인 상황에서 발생하기 쉬운 오류들을 분석하여 이미 경험된 실수를 반복하지 않고 이를 피할 수 있는 방법을 살펴본다.


이상에서 developerWorks 에서 게시된 글을 통해 서비스 지향 아키텍처(SOA) 전반에 대해 살펴보았다. 위의 글을 읽으면서 일부 독자들은 여전히 부족한 무엇인가를 느꼈으리라 생각된다. 그 이유중의 하나는 서비스 지향 아키텍처는 여전히 성장하고 있으며, 계속해서 보완되고 있다는 점도 빠질 수 없을 것이다. 이러한 부족함을 메워나가기 위해 한국 developerWorks 는 웹사이트내 "SOA와 웹서비스" 영역을 통해, 이후에도 더 많은 서비스 지향 아키텍처(SOA)와 관련된 문서들을 국내 개발자들에게 제공할 것이다. 독자 여러분의 많은 성원을 기대한다.

'java' 카테고리의 다른 글

java의 excel 컨트롤 - jxl, poi  (0) 2008.09.16
jxl 을 이용하여 images 가져오기  (0) 2008.09.16
SOA와 웹서비스 입문 (한글) - IBM developerworks  (0) 2008.09.10
Junit의 TestSuite  (0) 2008.09.02
Connection Pool - DBCP  (0) 2008.09.01
Posted by marryjane
|

developerWorks 웹 서비스 존에는 수 백 개의 기술자료, 튜토리얼, 팁이 포함되어 있으며, 개발자들이 웹 서비스 관련 애플리케이션을 만드는데 일조하고 있습니다. 하지만 이 새로운 주제를 시작하는 사용자들에게는 오히려 이 많은 정보들이 부담스러울 수 있습니다. 이 페이지는 웹 서비스를 시작할 방법을 모색하는 개발자들을 위한 장소입니다. 기본적인 웹 서비스 기술이 포함되어 있으며, developerWorks의 관련 기술자료, 튜토리얼과 팁, IBM 교육 서비스, 웹 캐스트, 워크샵, IBM 제품들로 연결됩니다.
  서비스 지향 아키텍쳐(SOA)

Service-Oriented Architecture(SOA(서비스 지향 아키텍쳐))는 정의가 잘된 인터페이스와 서비스들 간 콘트랙트(contracts)를 통해, 서비스라고 하는 애플리케이션의 다양한 기능 단위를 상호 연관시키는 컴포넌트 모델입니다. 인터페이스는 하드웨어 플랫폼, 운영 체계, 프로그래밍 언어에 독립적인 방식으로 정의됩니다. 따라서 다양한 시스템들에 구현된 어떤 서비스라도 일반적이고 통합된 방식으로 인터랙팅 할 수 있습니다.

특정 구현에 얽매이지 않은 중립적인 인터페이스를 가졌기 때문에 서비스들간 약결합(loose coupling)으로 알려져 있다. 약결합 시스템의 장점은 기민성과 각 서비스의 내부 구조 및 구현의 변화에 대응할 수 있는 능력을 꼽을 수 있습니다. 반면 강결합(tight-coupling)은 애플리케이션의 다양한 컴포넌트들이 기능과 형식면에서 밀접하게 연관되어 있어 애플리케이션 일부나 전체를 변경할 때 까다롭습니다.

약결합 시스템의 필요성은 비즈니스 애플리케이션이 변화하는 환경에 빠르게 적응해야 하는 데서 기인했습니다. 정책, 주력 비즈니스, 비즈니스 포커스, 파트너쉽, 산업 표준, 비즈니스의 본질에 영향을 미치는 관련 요소들은 늘 변화하기 마련입니다. 우리는 이러한 환경에 유연하게 대처할 수 있는 비즈니스를 온 디맨드 비즈니스(On demand business)로 명명하고 있습니다.

서비스 지향 아키텍쳐는 새로운 것은 아니고, 다만 지난 십년 동안 출현했던 강결합 객체 지향 모델에 대한 대안 모델이라 할 수 있습니다. SOA 기반 시스템이 개별 서비스가 객체 지향 디자인으로 구현될 수도 있다는 것을 배제하지 않는 반면, 전체 디자인은 서비스 지향입니다. 시스템 내에 객체를 허용하기 때문에 SOA는 객체 기반 이지만 전체가 객체 지향은 아닙니다. 그 차이는 인터페이스에 있습니다. 초기 SOA 시스템의 고전적인 예는 Common Object Request Broker Architecture (CORBA)인데 이는 SOA와 비슷한 개념을 정의하고 있습니다.

하지만, 오늘날 SOA는 eXtensible Markup Language (XML)에 기반하여 진보했다는 점에서 차별됩니다. Web Services Definition Language (WSDL)라고 하는 XML 기반 언어로 된 인터페이스를 설명하게 되면서, 서비스는 CORBA의 Interface Definition Language (IDL)보다 동적이고 유연한 인터페이스 시스템으로 옮겨가게 되었습니다.

웹 서비스가 SOA를 구현할 수 있는 유일한 방법은 아닙니다. 앞서 설명했던 CORBA도 하나의 방법이고, 따라서 IBM의 MQseries 같은 메시지 지향 미들웨어도 마찬가지 입니다. 하지만 아키텍쳐 모델이 되기 위해서는 서비스 디스크립션 그 이상이 필요합니다. 전체 애플리케이션이 서비스들 간 워크플로우를 어떻게 수행하는지에 대한 정의를 내려야 합니다. 뿐만 아니라 비즈니스 연산 대 비즈니스에서 사용되는 소프트웨어 연산 사이의 변형 포인트를 찾아야 합니다. 따라서 SOA는 비즈니스의 상용 프로세스를 기술 프로세스와 연관시킬 수 있어야 하고, 둘 사이에서 워크플로우 관계를 매핑해야 합니다. 예를 들어, 공급자 역할을 하는 것은 비즈니스 프로세스이고 새롭게 공급된 것을 추가하여 부품 데이터베이스를 업데이트 하는 것은 기술 프로세스이다. 따라서 워크플로우는 SOA 디자인에서 중요한 역할을 합니다.

더욱이, 동적 비즈니스의 워크플로우에는 부서들 간 작동 뿐만 아니라, 다른 외부 파트너들의 작동이 포함되어 있어 여러분에게는 제어권이 없습니다. 서비스 레벨 계약과 운영 정책의 형태로, 서비스들 간 관계가 발생하는 방법에 대한 정책을 정의해야 합니다.

마지막으로, 계약 조건에 따라 프로세스를 수행한다는 신뢰 속에서 이 모든 것이 작동되어야 합니다. 따라서, 보안, 신용, 신뢰성 있는 메시징은 어떤 SOA에서든 중요한 역할을 합니다.

참고자료:



위로


  서비스 지향 아키텍쳐의 활용

SOA의 필요성은 비즈니스 IT 시스템들이 비즈니스 변화에 대해 보다 민첩하게 대처해야 한다는 필요성에서 생겨났습니다. 확정적인 관계를 받아들이지만 융통성 있는 스팩 구현으로 IT 시스템들은 기존 시스템들의 기능을 활용할 수 있고, 앞으로의 변화에 대응할 수 있습니다.

예를 들어, 500개의 국제적인 점포망을 소유하고 있는 의류 소매 조직은 패션에 발맞추기 위해서 디자인을 자주 바꾸어야 합니다. 스타일과 컬러 뿐만 아니라 재질, 제조, 운송 부분 까지도 변경해야 합니다. 소매업체와 제조자 간 시스템이 호환되지 않는다면, 한 공급자에서 또 다른 공급자로의 변경은 매우 복잡한 소프트웨어 프로세스가 될 수 있습니다. WSDL 인터페이스는 융통성이 있기 때문에 각 기업들이 그들의 기존 시스템을 유지하도록 하고, 대신 WSDL 인터페이스에 맞추어 새로운 서비스 레벨 계약을 체결하도록 합니다. 소프트웨어 애플리케이션을 모두 재구현 할 필요가 없습니다. 이것은 비즈니스의 수평적 변화로서 파트너와 모든 비즈니스 작동을 변경하는 것입니다. 비즈니스 인터페이스는 약간 변경되고 내부 작동까지는 변경될 필요가 없기 때문에 외부적으로 협업할 수 있는 것입니다.

또 다른 형태는 내부 변화(internal change)입니다. 소매업체가 체인 소매점 내에 장소를 빌려 부띠크 판매자에게 제공하기로 결정할 수 도 있습니다. 이것은 점포 내 점포(store-in-store) 비즈니스 모델입니다. 이 기업의 대부분의 비즈니스 기능은 같지만 이제는 새로운 내부 소프트웨어로 임대 계약을 맺어야 합니다. 내부적으로 소프트웨어 시스템은 정비중이더라도 기존 공급자의 시스템과의 인터랙팅에 심각한 영향을 주지 않고 이를 수행해야 합니다. 이 경우 SOA 모델은 그대로 보존되는 반면 내부 구현이 변합니다. SOA 모델에 새로운 상(aspect)이 추가되어 임대 계약에 대한 새로운 책임이 추가되지만, 일반적인 소매 관리 시스템은 변화가 없습니다.

내부 변화에 대한 개념을 확대시키기 위해 IT 관리자들은 다른 방식으로 사용될 수 있는 새로운 소프트웨어 구성 방법을 찾을 수 있습니다. 이를 테면, 광고용 임대 포스터 공간이 이에 해당됩니다. 유연한 SOA 모델에서 생성된 새로운 비즈니스 제안은 이 새로운 디자인에 재적용 됩니다. 이것은 SOA 모델의 새로운 결과물이고, 전에는 불가능했던 새로운 기능이라 할 수 있습니다.

수직적 변화 역시 가능합니다. 소매업자가 자신의 옷을 판매하던 방식에서 매장내매장 모델을 통해 독점적인 임대 공간으로 옮길 수 있다. 수직적 변화의 경우 SOA 모델의 중대한 재구성이 수반되어야 합니다. 아마도 새로운 시스템, 소프트웨어, 프로세스, 관계들이 필요합니다. 이 경우 SOA 모델의 장점은 애플리케이션과 프로그램의 관점이 아닌 비즈니스 기능과 프로세스의 관점에서 작용하여 비즈니스 기능에 기반하여 추가되고, 변경되고 제거되어야 할 것이 무엇인지를 명확하게 구분할 수 있게 됩니다. 소프트웨어 시스템은 비즈니스 프로세스에 맞춰 구성될 수 있습니다.

주지하듯이, 변화와, 이 변화를 받아들이는 SOA 시스템의 능력은 가장 중요한 요소입니다. 개발자에게 그와 같은 변화는 그들의 작업 내부 또는 외부에서 발생할 수 있습니다. 인터페이스가 정의되는 방법과 서로 인터랙팅 하는 방법에 관한한 그렇습니다. 오히려 개발자 보다는 SOA 모델에 대부분의 변화를 일으키는 것은 아키텍트의 역할 입니다. 개발자들이 서비스로 정의된 기능 단위를 만드는데 초점을 맞춘다면 아키텍트와 모델러는 그 단위를 조합하는 것과 Universal Modeling Language (UML)를 통해 일반적으로 표현하는 것과 Model-Driven Architecture (MDA)로 기술하는 것에 초점을 맞추고 있습니다.

참고자료:



위로


  SOA의 컴포넌트 기술

SOA는 그 자체로 소프트웨어가 함께 놓이는 방식에 대한 추상적 개념입니다. 소프트웨어 형태로 존재하기 위해서는 XML과 웹 서비스로 구현된 보다 구체적인 개념과 기술에 의존합니다. 또한, 보안, 정책 관리, 신뢰성 있는 메시징, 계정 시스템 등이 효과적으로 작동해야 합니다. 분산 트랜잭션 프로세싱과 분산 소프트웨어 상태 관리를 통해 이 부분을 향상시킬 수 있습니다.

SOA 서비스와 웹 서비스의 차이는 디자인에 있습니다. SOA 개념은 서비스가 특별하게 인터랙팅 하는 방식을 정확하게 정의하지 않습니다. 단지 서비스들이 서로를 인식하고 인터랙팅 하는 방법만 정의합니다. 프로세스가 수행되는 방법 전략을 정의하는 것과 실제로 수행되는 방법 전략에는 차이가 있습니다. 반면 웹 서비스는 서비스들간 메시징이 인터랙팅 되는 방식에 대한 특정 가이드라인을 제시하고 있습니다. SOA 모델의 전략적 구현은 HTTP를 통해 전달되는 SOAP 메시지에서 일반적으로 볼 수 있습니다. 따라서 웹 서비스는 SOA가 구현되는 방식의 일부라고 할 수 있습니다.

SOA는 웹 서비스로 제한되어 있습니다. WSDL로 서비스 인터페이스를 직접 구현하고 XML 메시지와 통신하는 다른 프로토콜은 SOA에 포함될 수 있습니다. CORBA와 IBM의 MQ 시스템들은 SOA에 참여하여 WSDL로 작동하는 새로운 기능을 사용하고 있습니다. 두 서비스가 데이터를 교환하려 한다면 같은 메시징 프로토콜을 사용해야 하지만 데이터 인터페이스는 같은 정보 교환을 허용합니다.

모든 메시징을 적절하게 제어하고 보안, 정책, 계정 등을 적용하려면 SOA 아키텍쳐의 그림에 들어갈 새로운 비즈니스 객체가 필요합니다. 이것은 Enterprise Service Bus f(ESB)이고, 제어 서비스들 간 모든 메시지의 흐름과 통역을 맡고 있으며 모든 가능한 메시징 프로토콜을 사용합니다. ESB가 절대적으로 필요한 것은 아니지만 SOA에서 비즈니스 프로세스를 적절하게 관리하는 중요한 컴포넌트입니다. ESB는 그 자체로 하나의 엔진이거나 많은 피어와 하위 피어들로 구성된 분산 시스템일 수도 있습니다. 개념상으로 Message Queue와 분산 트랜잭션 컴퓨팅 같은 이전 컴퓨터 과학 개념에서 나온 store-and-forward 메커니즘에서 진화한 것입니다.

개발자 측면에서 그들이 사용하는 툴은 SOA의 기능에 대해 인지하고 있어야 하고 개발자가 SOA 객체를 사용하여 효과적으로 작업할 수 있도록 해야 합니다. SOA 모델의 디자인 프로세스, 서비스와 서비스 객체의 개발, SOA 애플리케이션의 테스팅이 이에 해당합니다. 따라서 개발자 툴은 Service-Oriented Application Design/Development (SOAD)를 위한 준비를 해야 합니다.

참고자료:



위로


  SOA와 다른 기술의 연관 방법

SOA는 다양한 많은 기술들과 인터랙팅 할 수 있지만 여기에서는 중요한 역할을 하는 컴포넌트의 캡슐화와 집합에 대해서 이야기 하겠습니다. 앞서 언급했지만, SOA 서비스는 단순한 객체, 복잡한 객체, 객체들의 집합, 많은 객체들을 포함하고 있는 프로세스, 다른 프로세스들을 포함하는 프로세스, 하나의 결과를 내는 애플리케이션의 전체 집합 등 이 모든 것이 될 수 있습니다. 서비스 밖에서는 하나의 엔터티로 보이지만 내부에서는 필요한 만큼의 복합적 레벨을 포함할 수 있습니다. 퍼포먼스의 관점에서 보면 대부분의 SOA 서비스들은 단순한 객체의 세분성으로까지는 내려가지 않고 큰 컴포넌트의 중간 정도에 더 잘 맞습니다.

SOA는 XML과 WSDL을 제외하고는 언어 스팩이 아닙니다. WSDL을 생성하고 인터랙팅 할 수 있는 한 어떤 프로그래밍 언어로도 구현될 수 있습니다. SOAP 그 자체는 절대적 필요조건은 아니지만 일반적인 메시징 시스템입니다. 따라서 SOA의 멤버 서비스들은 WSDL을 지원하는 다양한 프로그래밍 언어와 플랫폼에서 구현될 수 있습니다.

Common Object Broker Request Architecture (CORBA) 기반 애플리케이션은 SOA에 인터페이싱을 하기위한 많은 필수 컴포넌트들이 있습니다. CORBA의 Interface Description Language (IDL)은 개념적으로는 WSDL과 비슷하지만 정확하지 않기 때문에 WSDL로 우선 매핑되어야 합니다. 게다가 프로세스와 정책 관리 같은 SOA의 고급 프로토콜이 사용되어야 합니다. 서비스로 표현되는 CORBA 컴포넌트가 SOA 서비스와 인터랙팅 해야 할 경우입니다. CORBA 모델 내에서는 모든 개별적인 하위 컴포넌트들은 전과 같이 작동할 수 있습니다.

Object Management Group이 제안하고 다양한 IBM Rational 제품들을 사용하여 구현된 Model-Driven Architecture (MDA)는 보다 추상적인 레벨에서는 SOA의 개념과 강력한 상관관계를 갖고 있습니다. MDA는 어떤 소프트웨어 프로세스든 모델과 메타모델로 정의될 수 있다는 개념에 기반합니다. 따라서 MDA는 플랫폼 상에서 실행될 수 있는 실행파일로 컴파일 될 수 있는 소프트웨어 애플리케이션으로 컴파일 된 모델을 만듭니다. MDA는 서비스 개념과 객체 개념을 구별하지 않지만 모델이 다른 모델의 하위세트로 구성되는 것을 허용합니다. SOA의 핵심 컴포넌트인 BPEL 내의 프로세스 집합과 비슷한 개념입니다.

SOA와 웹 서비스는 프로그래밍 언어에 독립적이지만 그 중에서도 자바가 많이 쓰이고 있습니다. 정의가 잘 된 자바 인터페이스와 풍부한 자바로 구현된 다양한 프로토콜은 자바 개발자들이 모델을 구현할 때 도움이 됩니다. 여기에서 자바는 각 서비스의 기능 개발에 중요한 역할을 하고 데이터 객체들과, 서비스 내에서 논리적으로 캡슐화 된 다른 객체들의 인터랙션을 조작합니다.

SOA와 웹 서비스의 또 다른 핵심 관계는 자율 컴퓨팅과 그리드 컴퓨팅의 개념입니다. 자율 컴퓨팅 개념은 분산 서비스 아키텍쳐의 관리에 적용되고, 특히 정책과 서비스 레벨 계약을 관리하는데 도움이 됩니다. 게다가 SOA 시스템의 전체적 안정성에도 기여합니다.

그리드 컴퓨팅은 두 가지 레벨의 SOA 시스템에 작용합니다. 분산 컴퓨팅 형태로 되어있는 그리드는 분산 특징과 서비스들과의 인터랙션을 활용하여 SOA 애플리케이션을 전산적으로 지원합니다. 이러한 방식으로, 그리드 서비스는 개별 서비스들이 구현될 수 있는 프레임웍이 되는 것입니다. 따라서 SOA 애플리케이션은 그리드 서비스의 소비자가 될 수 있습니다.

그리드 자체는 SOA에서 구현 될 수도 있습니다. 이 경우 각 운영 체계 서비스들은 전체 SOA 애플리케이션을 구성하는 멤버가 되는 것입니다. 따라서 그리드의 개별 컴포넌트들은 웹 서비스를 사용하여 통신하고 SOA의 형태로 인터랙팅 합니다. 요약하면, 그리드 시스템은 SOA 그 자체가 될 수도 있고, 그 상단에 구현된 애플리케이션 레벨의 SOA 모델을 제공합니다.

참고자료:



위로


  애플리케이션에서 SOA 활용하기

SOA를 활용할 부분은 소프트웨어 개발 프로세스 뿐만 아니라 비즈니스 개발 프로세스도 포함됩니다. 특정 소프트웨어 서비스를 구현할 수 있는 네 가지 SOA 채택 레벨이 있습니다. 이 모두가 비즈니스 모델을 온 디맨드 시스템으로 변형하는 것입니다. 자세한 정보는 The Four levels of SOA Adoption 기술자료를 참조하십시오.

첫 번째 레벨은 가장 간단합니다. 개별 서비스를 구현하는 것이 이 레벨에 포함되어 있습니다. New to Web services에 자세한 자료가 소개되어 있습니다.

두 번째 레벨에서, 서비스를 만들 수 있고 비즈니스 기능들을 SOA에 통합할 수 있습니다. 애플리케이션 통합, 정보 통합, 프로세스 통합, 전체 시스템 통합 등의 여러 통합 단계가 있습니다. Migrating to a Service-Oriented Architecture를 참조하시기 바랍니다.

세 번째 레벨은 자신의 엔터프라이즈 IT 인프라를 SOA 모델로 변형하는 것입니다. 네 번째 채택 레벨은 비즈니스 모델을 온 디맨드로 변형하는데 초점을 맞추고 있습니다.

IT 실무자 관점에서, SOA 애플리케이션을 구현하기 위해서는 일반적으로 네 가지 단계를 거쳐야 합니다: 구현, 전개, 사용, 관리. 구현 단계에서는 비즈니스 모델 또는 프로세스, 소프트웨어 모델과 SOA 모델을 정의합니다. 그런 다음, 일반적인 인터페이스로 재사용 할 수 있는 서비스를 만듭니다.

전개 단계에서는 구현된 서비스들을 실행 및 관리 환경으로 배치하는 것입니다. 사용 단계에서는 앞서 정의된 SOA와 소프트웨어 모델에 따라 애플리케이션을 조립하고 소프트웨어 품질과 퍼포먼스, 확장성 같은 비 기능적 사항들을 테스트합니다. 이 정도 진행되면 전개되어 사용자들이 사용할 수 있습니다. 마지막 관리 단계에서는 보안과 사용을 감시 및 관리하고 서비스 레벨 계약과 정책과 비교하여 퍼포먼스를 비교합니다.

이상은 SOA의 개념적인 단계입니다. 이 단계와 실제 환경의 단계를 비교하면 SOA 애플리케이션 생성에 개입된 다양한 역할들이 있습니다. 같은 일 또는 여러 팀 멤버, 심지어는 여러 팀들 내에서 역할이 주어집니다. 역할 개념은 Rational Unified Process (RUP)으로 구별되는 역할로 표현됩니다.

RUP 역할에는 프로젝트 매니저, 분석가, 아키텍트, 모델러, 개발자, 테스터, 개발 및 운영자 등이 있습니다. SOA는 개념상의 SOA 모델을, SOA 모델과 IT 인프라의 리소스와 비교하여 테스트하는 SOA Modeler 역할을 추가하여 거의 동일하게 매핑하고 있습니다. 개발자는(사용 단계의) 어셈블러로서의 부차적인 역할을 합니다. 개별 서비스들을 이용하여 정의된 모델에 따라 실제 SOA 애플리케이션을 구현하는 것입니다. 이러한 역할들은 SOA를 사용하는 엔터프라이즈 내에 존재하고 있습니다.

참고자료:



위로


  SOA 기술력 개발하기

정보 분석가, 소프트웨어 아키텍트, 소프트웨어 개발자, 소프트웨어 품질 분석가, 시스템 관리자 등 역할에 따라 기술이 다릅니다. SOA의 개념은 이 모든 역할까지 확장됩니다. 따라서 각 역할이 어떻게 작동하는지에 대해서는 이해해야 합니다. 그 다음에는 각 역할이 갖춰야 하는 기술 개념에 익숙해져야 합니다.

정보 분석가와 소프트웨어 아키텍트는 모델 중심 아키텍쳐와 UMM 2.0을 이해해야 합니다. 소프트웨어 개발자와 프로그래머는 웹 서비스와 MQ 그리고 기타 프로토콜의 프로그램 방식의 인터페이스, 보안 인터랙션 방식, 워크플로우 프로세싱 개념을 자세히 알아야 합니다. 품질 분석가와 시스템 관리자는 SOA 프로세스 모델 대 실제 SOA 기능 아키텍쳐 구현에 대한 이해도를 높여야 합니다. 개별 서비스들이 분산 애플리케이션의 전체 퍼포먼스에 미치는 영향에 대해서도 알고 있어야 합니다. 시스템 관리자는 애플리케이션 보안과 신용 모델이 어떻게 작동하는지, 그리고 애플리케이션이 운영 체계와 네트워크 시스템에 영향을 미치는 정책에 어떤 영향을 미치는 지도 알아야 합니다.

참고자료:



위로


  SOA에 활용할 수 있는 IBM 툴과 제품들

IBM은 SOA 기반 IT 시스템들을 구현, 전개, 관리하는데 필요한 툴, 교육, 서비스를 제공한 첫 벤더입니다. 서비스의 구현, 전개, 사용 관련한 툴을 포함하여 전체 수명 주기의 모든 측면을 아우르고 있으며 다양한 레벨의 SOA를 채택하고 있습니다. 각 레벨은 하위 채택 레벨과 소프트웨어를 포함하고 있습니다. 모든 수명주기 단계가 모든 채택 레벨에 필요한 것은 아닙니다. 프로세스의 범위가 다르기 때문입니다. 마지막으로 On Demand Business Transformation의 네 번째 레벨은 비즈니스 지향이며, 하위 레벨에 소프트웨어가 포함되어 있습니다.

웹 서비스 구현의 첫 번째 SOA 채택 레벨에서 그림 1에 나타난 툴은 간단한 웹 서비스의 생성과 운영에 도움이 됩니다.

그림 1. 개별 웹 서비스 구현하기 vs 핵심 컴포넌트
Figure 1. Implementing Individual Web services -- Core Components

두 번째 레벨인 서비스 지향 통합에서 툴은 다중의 서비스들을 발견하고 이들과 인터랙팅하고, SOA 모델의 기초를 만드는 수단을 제공하는 것으로 옮겨가고 있습니다. 그림 2a는 레벨 2 채택의 핵심 컴포넌트이지만, 그림 2b는 레벨 2에 도움이 되는 추가 컴포넌트 입니다.

그림 2a. 서비스 지향 통합 vs 핵심 컴포넌트
Figure 2a. Service Oriented Integration -- Core Components

그림 2b. 서비스 지향 통합 vs 추가 컴포넌트
Figure 2b. Service Oriented Integration -- Add-on Components

레벨 2인 엔터프라이즈 중심의 IT 변형에서 IBM은 광범위한 SOA와 웹 서비스 제품을 제공하여 모든 IT 시스템 기능들을 사용할 수 있도록 하고, SOA 시스템의 엔터프라이즈 중심의 관리용 프레임웍을 제공합니다. 그림 3a는 레벨 2 채택의 핵심 컴포넌트와 그림 3b의 추가 컴포넌트입니다.

그림 3a. 엔터프라이즈 중심의 IT 변형 vs 핵심 컴포넌트
Figure 3a. Enterprise Wide IT Transformation -- Core Components

그림 3b. 엔터프라이즈 중심의 IT 변형 vs 추가 컴포넌트
Figure 3b. Enterprise Wide IT Transformation -- Add-on Components

참고자료:


'java' 카테고리의 다른 글

jxl 을 이용하여 images 가져오기  (0) 2008.09.16
SOA 기술자료 특집 - IBM developerworks  (0) 2008.09.10
Junit의 TestSuite  (0) 2008.09.02
Connection Pool - DBCP  (0) 2008.09.01
ZK - Ajax but no JavaScript  (0) 2008.08.29
Posted by marryjane
|

특정문자로 뒤에서부터 substring 하는 function

CREATE OR REPLACE FUNCTION LAST_FIELD (
    V_FIELD IN VARCHAR2,
    V_DELIMITER IN VARCHAR2
) RETURN VARCHAR2
IS
    format_field VARCHAR2(100);
/******************************************************************************
   NAME:       LAST_FIELD
   PURPOSE:   

   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2008-09-09          1. Created this function.

   NOTES:

   Automatically available Auto Replace Keywords:
      Object Name:     LAST_FIELD
      Sysdate:         2008-09-09
      Date and Time:   2008-09-09, 오전 10:16:36, and 2008-09-09 오전 10:16:36
      Username:         (set in TOAD Options, Procedure Editor)
      Table Name:       (set in the "New PL/SQL Object" dialog)

******************************************************************************/
BEGIN
    format_field := TRIM(SUBSTR(V_FIELD, INSTR(V_FIELD, V_DELIMITER, -1) +1));
    RETURN format_field;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            NULL;
        WHEN OTHERS THEN
            RAISE;
END LAST_FIELD;

Posted by marryjane
|