610 likes | 732 Views
Distributed Computing Infrastructure. Prepared for:. 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
E N D
Distributed Computing Infrastructure Prepared for:
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 할 계획
고객: • 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
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 - ServerArchitecture ERP Legacy SSL TCP/IP FioranoMQ Server Components Security Administration C++ Bindings AppServer Integration Neighboring Message Store ETS – Automatic Fail over Capability XML Toolkit Firewall HTTP HTTP
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
FioranoMQ Architecture • FioranoMQ – Messaging Server • High Performance • Hub & Spoke Architecture • Guaranteed Message Delivery • Publish/Subscribe • Point-to-Point TCP/IP HTTP SSL FioranoMQ Message Server • FioranoMQ – Info Bus • Server-less Multicast JMS • Peer-to-Peer • Publish/Subscribe • High Availability • No single point of failure FioranoMQ - Info Bus
Performance Advantage Unique하고 성능이 확인된 file based data store은 FioranoMQ의 성능을 높여주는 Key Reason이다.
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
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 Tunneling HTTP Tunneling Client Proxy Server Proxy FioranoMQ SSL / Non SSL JMS Application SSL / Non SSL TCP Connection HTTP Connection HTTP Connection Proxy Servicing Client Requests HTTP Connect FioranoMQ SSL / Non SSL JMS Application SSL / Non SSL TCP Connection HTTP Connection
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