Distributed Computing Infrastructure Prepared for:
-
date post
19-Dec-2015 -
Category
Documents
-
view
215 -
download
2
Transcript of Distributed Computing Infrastructure Prepared for:
Distributed Computing Infrastructure
Prepared for:
Fiorano MQ 5, Fiorano Integrator
Fiorano MQ 5, Fiorano Integrator
Scalability. Performance. Standards.
Fiorano Software
• Founded 1995– Messaging Servers 1997
– JMS implementation 이 처음 발표된 날 – September 1998
• Over 50 Employees– 본점 : Los Gatos, CA
– 지점 : New York, London, New Delhi
• Operations – JT Ventures 에 서 펀 딩 받음– 2002 에 IPO 할 계획
Over 120 Customers
Partnerships
고객 :– AT&T Wireless
문제점 :– Cellular base stations 에 계속 된 업 데이트 필요
필요 조건 :– 보안성 , 높은 성능 , 안정된 메세징
솔루션 :– Wireless base stations 에 24 x 7 모니터링 필요– Base station 에 성능 과 상태를 리얼 타임으로 알려준다– 안정된 메세징 환경
고객 :– Pennsylvania 주
문제점 :– 경찰청 들간에 전과 기록 공유 필요성 – 경찰 , 집행유예 , 가석방 , 등
필요 조건 :– Standards-based, 보안성 , 통지
솔루션 :– JMS Distributed Application 에 높은 안정성– 여러 부서 간에 리얼 타임으로 data 공유– FioranoMQ 와 BEA WebLogic 간의 서버 통합
고객 :– Socketware™
문제점 :– E- 메일 마케팅 과 메세징 솔루션
필요 조건 :– Standards-based, 확장성 , High-Performance, 신뢰성
솔루션 :– 시간에 민감한 정보 를 즉각 deliver 함– 많은 양의 메시지 제공– 프로모션 응답 비율을 최대 100% 향상시키게 해 주는
시스템이다
What Is Messaging ?
• Software components 와 applications 간에
communication 방법
• 커뮤니케이션의 커넥션이 끊어진 경우에도 안전하게
메시지를 도착지까지 전달한다
• RMI/CORBA/E-mail 과 같은 communication
mechanisms 와 는 다르다
What is the JMS API ?
• JAVA API 는 applications 이 messaging
implementation 에서 메시지를 작성 , 보내기 , 받기 ,
그리고 읽기를 가능하게 해 준다
JMS API enables …
• 커뮤니케이션의 연결이 끊어졌을 때 메시지를
안전하게 전달하는 것 이외에도 :
• 비동기식 (Asynchronous)
• 신뢰성 (Reliable)
JMS Application Components
• JMS Provider
• JMS Clients
• Messages
• Administered objects
• Non-JMS Clients
JMS : Messaging Domains
• Point-to-Point 메세징 도메인
• Publish-Subscribe 메세징 도메인
Point to Point Messaging
• 각각에 message 는 하나에 고객을 갖고있다
• Sender 와 receiver 에 message 사이 는 시간에
구애를 받지 안는다
• Receiver 성공적으로 processing 된 message 를
승인 한다
PTP Model
모든 message 가 하나에 고객을 통해
process 될 때 PTP messaging 을 쓴다
Publish/Subscribe Messaging
• 각각 message 들은 여러 개의 destinations 이 있다
• Publisher 과 subscriber 사이에는 시간에 영향을
받지만 durable subscriber 는 예외다
Pub-Sub Model
Message 가 zero, one, 아니면 다수 에 고객간에 process 될 때 pub/sub messaging 을 쓴다
Message Consumption
• Synchronous
“Receive” method 를 불러서 destination 에 서
뿌려준다
• Asynchronous
Message Listener 를 setting 한다
JMS Application Building Blocks
• Administered Objects (connection factories and
destinations)
• Connections
• Sessions
• Message Producers / Consumers
• Messages
JMS Client Application
Administered Objects
• Connection Factories – Client 가 provider 와
connect 할 때 쓰는 object
• Destinations – Client 가 message 에 target/source
를 파악할 때 쓰는 object
• Administered Objects 는 provider 마다 다름
Connections
• JMS provider 와 virtual connection 을 encapsulate
한다
• 하나 또는 여러 개 에 session 을 만들 때 쓴다
• Queue Connection 방법과 Topic Connection 이 있다
Sessions
• Message 를 생산하고 사용할 때 Single threaded
context 를 쓴다
• Message producers, message consumers and
messages 를 만들 때 사용
• Transactional context 를 제공한다
• Queue Session and Topic Session
Message Producers
• Messages 를 destination 에 보낼 때 이용하는
object 를 session 을 통해서 만든다
• PTP 는 QueueSender interface 를 사용한다
• PubSub 는 TopicPublisher interface 를 사용한다
Message Consumers
• Destination 에 보낸 message 를 받을 때 이용하는
object 를 session 을 통해서 만든다
• JMS client 가 JMS provider 를 이용해서 destination
에 interest 를 register 할수 있 게 한다
• PTP 는 QueueReceiver 를 사용한다
• PubSub 는 TopicSubscriber interface 를 사용한다
Message Listeners
• Object that acts as an asynchronous event handler
for messages
• onMessage 기능이 제공되는 MessageListener
interface 를 사용한다
• OnMessage method 는 message 가 도착할 때 어떤
행동을 취할지 생각한다
JMS Messages
• Header
JMSDestination, JMSExpiration, JMSReplyTo
..
• Properties (optional)
• Body (optional)
TextMessage, MapMessage, BytesMessage,
StreamMessage, ObjectMessage, Message
FioranoMQ - Message Server
• Standards-based– Fully JMS 1.0.2 compliant, Pure Java
• Performance– 타 제품보다 약 10 배 정도의 속도로 확실한 메시지를 보낸다
– File-based data store
• Scalability– Scalable Connection Management (SCM)
– Fiorano Neighboring™
– Clustering & Load-balancing
FioranoMQ - Server Architecture
Security
XML Toolkit
Neighboring
AppServer IntegrationFioranoMQFioranoMQ
Server ComponentsServer Components
Administration
C++ Bindings
Message Store
Firewall
ERP Legacy
SSLTCP/IP
HTTP HTTP
ETS – Automatic Fail over Capability
FioranoMQ - Message Server
• Interoperability– C++ RTL
– XML Support
– FioranoMQ Bridge™ - IBM MQ Series & MSMQ
• Internet Support– HTTP Tunneling
– Applet/Browser Support
• Security – “Software Firewalls”
– ACE/ACL
– SSL
FioranoMQMessage Server
FioranoMQ - Info Bus
FioranoMQ – Messaging Server
• High Performance
• Hub & Spoke Architecture
• Guaranteed Message Delivery
• Publish/Subscribe
• Point-to-Point
FioranoMQ – Info Bus
• Server-less Multicast JMS
• Peer-to-Peer
• Publish/Subscribe
• High Availability
• No single point of failure
TCP/IP HTTP SSL
FioranoMQ Architecture
Performance Advantage
Unique 하고 성능이 확인된 file based data store 은 FioranoMQ 의 성능을 높여주는 Key Reason 이다 .
Non Persistent / Non Durable FioranoMQ SonicMQ x Faster1k Message, 1 Topic / 1 Publisher 1 Subscriber 1556 282.5 5.5110k Message, 1 Topic / 1 Publisher / 1 Subscriber 398.1 32 12.44
Persistent / Durable 1k Message, 1 Topic / 1 Publisher 1 Subscriber 863 20 43.1510k Message, 1 Topic / 1 Publisher / 1 Subscriber 267 97 2.75
Installation
• Windows– Installable .exe– As an NT Service
• Solaris– tar.gz archive
• License Key• Offline database 의 Directory Path 세팅
java -classpath $CLASSPATH
fiorano.jms.ex.FMP -p ../bin
Running Samples
• Publish / Subscribe
• Point-to-Point
• Repeater
• XML
• Dispatcher
Administration
• Administrator Console– Users, Groups, Topics Queues, Durable
Subscribers
– TCFs, QCFs Admin CFs
– Dispatcher, Snooper
• Administration APIs
• Creating an Admin Connection
Connection Manager
• Pluggable Architecture– Java connection management– Scalable Connection Management (SCM)
• Secure & Non-Secure
• Tested with 3,000 concurrent clients– Windows NT
– Unix
Scalable Connection Manager (SCM)
Naming Manager
• Directory Information Storage– LDAP Integration
• Support for existing network infrastructure
– RDBMS support
• Use RDBMs of choice
– XML support
• Local storage in XML format
Integration with LDAP Servers
• Pluggable interface to LDAP Servers– Netscape, etc.
• 모든 ‘ administered objects’ 를 검색– 모든 meta data objects 는 LDAP Server 에 저장될 수 있다
• LDAP 를 사용하기 위한 FioranoMQ 의 설정– Server.cfg
• Looking up Connection Factories• Setting Access Permissions
JNDI Lookup
• JMS applications 은 standard based JNDI APIs 를 이용하여 다양한 various administered objects 를 검색할 수 있다 .
• Client code 는 vendor specific implementation 에 완전히 독립적이 되어진다 .
• JNDI compliant 인 어떤 JMS vendor 에 의해서 쓰여진 code 도 그 code 자체로 쓰여질 수 있다 .
JNDI Lookup
• FioranoMQ 는 context interface 의 가장 중요한 JNDI API 를 지원한다 .
• FioranoInitialContextFactory 는 JNDI 의 interface 인 InitialContextFactory 를 실행한다 .
Tunneling Through Firewalls
• SOCKS Proxy Server– Tunnel through client & server side firewalls
– SOCKS 는 TCP 나 UDP based client and server 에 data
channel service 를 제공하는 proxy 를 생성한다 .
• HTTP Tunneling – Tunnel through client & server side firewalls
– Proxy servers 는 HTTP 에 대한 proxy tunneling 의 연장을 확실히 제공해야 한다 .
HTTP TunnelingHTTP Tunneling
Client Proxy
Server ProxyJMS Application
HTTP Connection HTTP Connection
FioranoMQSSL / Non SSL
SSL / Non SSL TCP Connection
ProxyServicing
Client Requests
JMS ApplicationHTTP Connection
FioranoMQSSL / Non SSL
SSL / Non SSL TCP Connection
HTTP Connect
Security
• User Identification & Authentication– JMS API 에 의해서 지정된 username/password
model
– Authentication & Data Protection
– Based on Digital Certificates
– SSL
Security Realms
• FioranoMQ server 의 자원을 보존하기 위한 logical and
centralized grouping of Users, Groups, and ACLs.
• User Management– Default Realm
– NT Realm
• Access Control– ACLs
Security Realms
• Setting up Realms– NT– UNIX– Permissions
• Configuration
• Administering Realms
• Limitations
Security Realms
• LDAP – 한곳에서 조직의 모든 구성원을 관리 : a LDAP
directory.– Configuration
• Caching Realm
• RDMS Realm
C++ Runtime Library
• Thin set 이나 wrapper classes 를 이용하여 C++ programs 도 JMS messaging 기능을 이용할 수 있다 .
• Pub/Sub & PTP • Compiling and running C++ programs
– Windows– Solaris
• JDKs• Multithreaded Clients• Issues
Hierarchical Topics
• 계층적인 방식에서 topic name spaces 는 다양한 destination 을 구성할 수 있는 능력을 제공한다 .
• Name Space 표시
Hierarchical Topics
• Creating Hierarchical Topics
• Looking up Hierarchical Topics
• Security Considerations
• Limitations
Logging & Trace Facilities
• 에러의 빠른 감지와 수정
• Admin Tool Integration
– Set user defined tracing levels
– Generate Log with detail log description
– 에러나 보안상의 피해가 있을 경우 instant message 를 보냄
FioranoMQ Bridges
• Integrated Message Queuing
• Architecture
AppServer Integration
FioranoMQ Bridges
• Features
– XML Based
– Choice of Connection Topologies
– 현재 발생하는 네트워크 감퇴나 정지에 강점
– Logging and Trace Options
FioranoMQ Bridges
• 메시지를 원격에 위치한 queues 에 전달
• Distributed Queues
Fiorano Repeater
• Distributed Server-to-Server Communication – Topics
– Request reply
– Store & Forward
– Clustering 을 하기 위한 dispatcher 와 같이 쓰인다
• Fault Tolerance and Failover Safety
• Configuration – XML config. file
Server-to-Server Communication
• LAN 이나 WAN 사이의 서버 연결• Fiorano Repeater
Fiorano Repeater
FioranoMQS2
FioranoMQS1
FioranoMQS3
FioranoMQS4
Repeater
FioranoMQS2
FioranoMQS1
FioranoMQS3
FioranoMQS4
Repeater
Repeater
Repeater
FioranoMQS2
FioranoMQS1
FioranoMQS3
FioranoMQS4
Repeater
Repeater
Repeater
Repeater
Fiorano Repeater
• Setup– Single Instance
– Multiple Instances
• Configuration – XML config file
– Tags and sample usage
Load Balancing
• Fiorano Dispatcher
• Configuration
#START_DISPATCHER=true
• Client 편에서는 아무런 change 를 할 필요가 없다 .
• Multiple Dispatcher Service
Fiorano Integrator
Includes all FioranoMQ features plus:
• Bridges to MSMQ, MQSeries, SQL
• XCR – Content Based Routing engine
• ETS (MQ with no single point of failure)
• Message Servlets and XSLT transformations