누가 추천해주신 wsgi(Web Server Gateway Interface)를 만들어보려구,

함께 추천해주신 파이썬책도 겸사겸사 주문했는데 아직두 발송전인듯..

인터파크는 평균 5일은 걸리는 것 같다는 ㅜㅜ


그래서 암튼 그전까지 퇴근 후 5일짜리 교육 신청함... 


주제 : 웹서비스 - WSDL & SOAP

목차 : 

1. 웹 서비스 개요

2. 웹 서비스 기반기술

3. 웹 서비스 프레임워크

4. 웹 서비스 구현

5. 웹 서비스 클라이언트 구현

6. 오픈 API와 매시업


포카칩뜯으면서 주저리 주저리 정리하고 자야지... 


------------------------------------------------------------------------------


1일차 - 웹 서비스 개요


# 웹서비스의 정의


> 웹서비스의 의미는 굉장히 다양함

> 전체 구성도


> Back-end, Front-end, Middle-ware(모바일환경에서의 push server, MQ ...)


> 정의

- 이종 시스템을 통합하고 HTTP를 통해 재사용 가능한 비즈니스 기능 공개 방법을 제공 - 서비스디자인패턴, 로버트다이뇨(2013)

- 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템 - 위키

- 기계 대 기계 상호작용을 지원하기 위해 설계된 소프트웨어 시스템 - W3C

=> 다 통합... 왠지 클라우드서비스가 생각난다..


> SOA vs ROA

- Service oriendted vs Resource Oriented

- OSGi, Open Service Gateway initiative


> SOAP/WSDL 기반에서 웹 서비스

- 클라이언트, 서비스 / 요청자, 제공자 / 서비스 컨슈머, 서비스 제공자


> 웹서비스 연관 용어

- 웹 2.0 

- Semantic Web, 웹 3.0

- Open API

- Mash-up


> 웹서비스의 등장배경

- 비지니스 관점 : 기업 내, 기업 간, 기업과 고객 간 통합된 서비스 증대 및 Time to Market

- 기술적 관점 : POP -> OOP -> COP: CBD -> SOP: SOA

                 절차지향 객체지향 컴포넌트지향 서비스지향

- 분산프로토콜 등장 : RMI(rmic.exe), RPC


> 웹서비스 사용 목적

- 웹서비스 레이어드 아키텍처


> 웹서비스 고려사항과 대안

- 마샬링, 언마샬링시 바이트스트림으로 직렬화하여 전송

- 네트워크 통신의 부분적 실패에 대비(여기서는 네트워크 통신의 장애를 말함)

- 웹서비스의 본질적인 위험요소 고려





> 웹서비스 API 스타일

- 엔터프라이즈 애플리케이션 아키텍처 패턴

- MVC Architexture

- 퍼사드(Facades[GoF]) 패턴

- RPC API(JAX-RPC) / 메세지 API(JAX-WS) / 리소스 API(JAX-RS)


> 웹서비스 API 설계 시 고려사항

- 캡슐화

- 서비스 계약 : 클라이언트와 서비스가 어떻게 상호작용 할 수 있는지 명시한 협약서

- 자율성 : 상호 결합성이 낮아야 함

- 지연시간

- 부분실패, RPC-API(proxy)

- 텍스트 기반 데이터의 바이너리 메시지 인코딩


> 테스트 개발환경 설정

- IDE 설치 및 Subversive, AnyEdit 플러그인 설치

- 빋드환경 배포, Maven

- WAS, Tomcat

- 개발 표준 설정 : 명명규칙, 소스코드 포맷, 파일 포맷 등








세미나 동영상 ....





VPN


보안성이 없는 네트워크를 보안 통신을 하는 기술


- Authenticity 상대방이 정말 상대방인지

- Integrity 데티터가 중간에 변경되지는 않았는지

- Confidentiality 누가 중간에 데이터를 훔쳐보지는 않았는지


- Remote-access

- LAN to LAN


- 전통적 양방향

- EasyVPN^TM (VPN Client가 붙고, VPN 허브 장비가 서비스를 push)



# VPN protocol, 보안

1. 암호화 알고리즘 Confidentiality 

- 대칭형(Symetric Encryption), 데이터 암호화, 3DES, AES

- 비대칭형(Asymmetric Encryption), 상대방인증, RSA


2. Hash 알고리즘 Integrity 

- 데이터에 특정 함수를 돌려서 정해진 길이의 고유 값을 생설

- Hash에서 고유값은 중복되지 않음

- hash 자체에는 보안기능이 없음

=> HMAC(Hash Message Authentication Code)

: 공유키를 넣어 Hash, MD5, SHA-1


3. DH(Diffie-Hellman) 알고리즘

: 보안이 안된 통신 채널을 통하는데도 결과적으로 둘만 알고있는 비밀 공유키를 생성하는 신기한 알고리즘

인터넷을 공유하는 떨어진 두 호스트 사이에, 같은 Hash key값을 가질 수 있을까? Shared Key!


4. Split Tuneling

- 말 그대로 터널 나누기

- 내부망 이외의 목적지로 접속 시 VPN Head-end를 통하지 않고 직접 통신을 허용 함





5. IKE/IPSec

- IPSec 

- IKE는 두 단계로 구성

데이터를 암호화 통신을 하기위해 통신을 해야하는데, 그 데이터(IKE Phase 1)도 암호화 하고 싶을때, 

 이 암호화단계를 위해 주고받는 또하나의 데이터 사용하는 방식(IKE Phase 2)

(1) IKE Phase1 : IKE Phase 2를 준비하는 단계, 상대방을 검증하는 작업을 수행, 


(2) IKE Phase 2 :  상대방을 검증하는 작업을 수행하지 않음


- Tunnel == SA (Security Assosation), 양 끝의 호스트들이 각각 SA를 생성


<염두해야 할 것?>

- 넌 누구니? 

- key는?

- 어떻게 할까?(SA)


 (2-1) IKE Main Mode


 -------phase 1 작업 시작-----------

  a. 어떻게 할까? Transform Set, 어떤 암호화 방식을 쓸까? 어떤 해쉬방식을 쓸까?

  b. key는 어떻게 할까? DH사용

  c. 넌 누구니? 실제 암호화!

 -------phase 1 작업 끝, phase 작업 2t 시작-------------

  d. phase 1 작업이 끝나면 터널이 생성됨. phase1 tunnel == IKE tunnel 

  e. 넌 누구니? phase1에서 했으므로 여기선 안해도됨

  f. key는? 사용자에 선택에 따라, 할수도 있고, 

      (PFS(Perfect forward security) : phase 1과 2에서 다른 keyr값을 사용하는 방식)

   PFS는 default로 켜져있기때문에 phase2에서는 보통 Key교환이 새로 이루어 짐

  g. How? IPSec은 어떻게해서 데이터를 전송할까?

  h. 이때 생기는 터널이 IPSec 터널

 -------phase 2 작업끝------------------------------------


  (2-2) Aggressive

  - 넌 누구니, key는, 어떻게 할까를 하나로 때려박아용 (기존에 key부분을 노출시키지 않던 방식에서 해당 부분은 한번에 묶어서 노출함)



- 실제 추가적인 사용자 인증이나 IP 할당은? IKE Extensions기능을 사용

  a. Extened Authentication (Xauth) - 사용자인증

  b. Mode Config - IP 자동할당

  c. Dead Peer Detection(DPD) - 상대방의 생사여부를 확인


- IKE Extention은 IKE phase 1.5에 해당 




#  SSL VPN ?

- 넷스케이프에서 개발한 보안 통신 프로토콜

- 웹서버와 브라우저 간에 보안 터널생성

- 인증 암호화 무결성 지원

- 대부분의 브라우저 및 SSL VPN 클라이언트에서 구현

- 포트 443을 통해 Https:// 통신 (TCP 443)


1. 구현방법

- Clientless : 클라이언트 없이

- Thin Client : 클라이언트를 쪼~끄만걸 빠는 방식 (쪼그만 클라우드)

- Client-Based : Full 클라이언트를 방식(뭐든 다 써야할때..)




2. 고려사항

- 접속 전 : 레지스트리검사, 파일유무 검사, OS 버전 검사

- 접속 후 : Cookie, URL 히스토리, Cache, 다운로드 파일은?


.. 가상키보드,,,VDI 등 제공...



# Remote-Access VPN 디자인 가이드 

:  인입장비(방화벽, VPN)를 가지고 제어


- 과거 : FW, VPN을 수평적으로 배치하여 서로의 단점이 발생

- 개선된 디자인 : VPN, 방화벽 역할 분리, IPSec, SSL을 분리하여 운영

- 최근 추세 :  목표가 하나이므로 VPN, IPSec, SSL을 하나로 통합








'Network/Infra' 카테고리의 다른 글

로드밸런싱 서버, 캐시 서버  (0) 2015.12.27
스토리지 프로토콜?  (0) 2015.08.13
[SDN] Ryu_OpenFlow 1.3 REST 연동  (0) 2015.05.11
[SDN] Ryu_OpenFlow 1.3 트래픽모니터  (0) 2015.05.10
[SDN] Ryu_OpenFlow 1.3 스위칭허브  (0) 2015.05.03

# 유클리디안 거리점수


: 그럼  제곱 제곱 제곱이 되는뎅.....

 말이 안되는 알고리즘인뎅...? 2^ ==> 제곱으로 속도가 떨어지는거지???? 


... 유사도 계산 시 나타낼  수 있는 범위를 0~1로 잡고(정규화), 실수로 표현한다.

하.. 이게 왜. 효육적이지? 실수로 가면 속도가..........................................


제곱은 알고리즘에서..for로 처리하니깐.. ~~~



# 피어슨 상관점수

: 1, 0, -1

- 0이라는 기준을 잡는 조건은?

- 평균? 상관계수? 


- 전체적인 상관관계를 나타낼 수 있찌만 두 객체간의 유사도는 측정할 수가 없다는 단점이 있다.

- 궂이 이 이론을 사용하는 이유는 ? 두 객체간 상관관계의 판별로만 사용한다. 


# 유사도 계산을 할때는 

 1. 피어슨이 1위

 2. 유클리디안이 2위

 3. 3위는 기타 많은 것들이 있당...?


# 예를들어

 1 : 객체간의 양의 상관관계가 나오면 함께 파는게 낫다.

 0 : 객체간에 0의 상관관계가 나오면 

 -1: 객체간의 -1의 상관관계가 나오면 함께팔지않는게 낫다.

'Development > Data Science' 카테고리의 다른 글

[집단지성] 4.7 클릭학습 개념  (0) 2015.05.14
[집단지성] 군집화  (0) 2015.05.09
[집단지성] 4. 검색과 랭킹 - 6. 유입 링크 사용하기  (0) 2015.05.04
집단지성  (0) 2015.04.21

+ Recent posts