1 / 38

JBoss Application Platform

JBoss Application Platform. 임형준 ( hyungjun25@cnu.ac.kr ) 충남대학교 컴퓨터공학과 데이터베이스시스템 연구실 2014년 10월 21일 화요일. 목차. JBoss Review JBoss Overview JBoss Application Platform JBoss Enterprise SOA Platform JBoss Application Platform for Portal JBoss Application Platform

ayala
Télécharger la présentation

JBoss Application Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JBoss Application Platform 임형준(hyungjun25@cnu.ac.kr) 충남대학교 컴퓨터공학과 데이터베이스시스템 연구실 2014년 10월 21일 화요일

  2. 목차 • JBoss Review • JBoss Overview • JBoss Application Platform • JBoss Enterprise SOA Platform • JBoss Application Platform for Portal • JBoss Application Platform • JBoss Enterprise Middleware System • JBoss Microkernel • JBoss Application Server

  3. JBoss Overview JBoss Enterprise Middleware System (JEMS) Enterprise Platforms Enterprise Frameworks SOA Platform Application Platform for Portals JBoss Seam JBoss Hibernate JBoss jBPM JBoss Rules Application Platform Other Application Server JBoss Microkernel Java Virtual Machine Operating System Windows, Unix, Other Linux

  4. Applications JBoss Application Platform JBoss Enterprise Application Platform JBoss Seam JBoss Hibernate JBoss Application Server Java EE, Apache Tomcat, Clustering, Cache JBoss Microkernel Java Virtual Machine Operating System Windows, Unix, Other Linux

  5. Web Services JBoss Enterprise Frameworks JBoss Enterprise SOA Platform JBoss jBPM JBoss Rules JBoss ESB Transformation, Routing, Registry, Repository JBoss Enterprise Application Platform JBoss Microkernel Java Virtual Machine Operating System Windows, Unix, Other Linux

  6. Portals JBoss Application Platform for Portal JBoss Enterprise Application Platform for Portals JBoss Portal JBoss Enterprise Application Platform JBoss Microkernel Java Virtual Machine Operating System Windows, Unix, Other Linux

  7. JBoss Application Platform

  8. JBoss Enterprise Middleware System (JEMS) • Open source middleware platform for SOA-based enterprise applications and services • Plug-and-play architecture enables standardizing on JEMS products at your own pace • Focused on simplifying development Your Applications and Services JBoss App Server Apache Tomcat Hibernate JBoss Cache JBoss jBPM JBoss Portal JBoss Rules JBoss Eclipse IDE Your Platform Services #1 #1 #1 … JBoss Microkernel Multivendor Java VM, Operating System, Hardware

  9. JEMS Architecture Java Applications (EARs, WARs, JARs, JSPs, Servlets) JBoss Portal --- J2EE 1.4 Services implemented as JMX Mbeans --- Services beyond J2EE JBoss Eclipse IDE Java Applications Management API JBoss Remoting* JBoss AOP* EJB (JBoss CMP) JAXR Persistence (Hibernate*) WS4EE (JBossWS) JTA (JBossJTA) JCA (JBossJCA) RMI-IIOP (jacORB) JAX-RPC SAAJ Deployment API Clustering JSP/Servlet (Tomcat*) JMS (JBoss MQ) JDBC JNDI (JBossNS) JAAS (JBossSX) JACC Caching (JBossCache*) JAXP Workflow (JBoss jBPM**) Custom Mbeans JBoss Application Server 4.x (JMX Microkernel : JBossMX) Java Virtual Machine (Sun JVM, BEA JRockit, IBM VM, etc.) Operating System (Windows, Unix = Linux, Solaris, AIX, etc.) Hardware (CPU + Storage + Memory) * Product can run inside JBoss AS or stand-alone ** Integration as MBean under development

  10. JBoss Microkernel

  11. JMX Architecture: Microkernel • A stripped down core capable of • Loading services dynamically (classes included) • Manage services lifecycle • Provide naming and lookup • Provide an invocation bus • Decouples the services • That role in JBoss is taken by JMX MBean server • JBossMX at the core • JMX architecture provides the decoupling

  12. JMX Architecture: MBean Server • MBean Server acts as a mediator • Services are referenced via object names • MBean Server contains a registry of services JBoss:name=ServiceA Service A JBoss:name=ServiceC MBean Server Service C JBoss:name=ServiceB Service B

  13. JMX Architecture: Invocation • Invocation has no direct reference, services are loosely coupled • Kernel manages the service references in case of updates, etc. JBoss:name=ServiceA setAttribute(ObjectName, Attribute) Service A JBoss:name=ServiceC MBean Server Service C Version 1.0 lookup MBean Registry JBoss:name=ServiceC JBoss:name=ServiceC Java Reference Service C Version 1.1 JBoss:name=ServiceA ... ... ...

  14. JMX Architecture: Metadata • Service exposes its interface as metadata • No compile-time typed Java interfaces • Metadata can be extended to clarify the interface contract • Interfaces can evolve at run-time without recompilation • Attributes • Operations • Notifications JBoss:name=ServiceC Service C MBean Server getMBeanInfo JBoss:name=ServiceA Service A

  15. JMX Microkernel Architecture • All services in JBoss are JMX MBeans • Services are registered to the MBean Server • MBean Server acts as an invocation bus between the services • Decouples the services enabling hot- and redeployment of all server parts • All invocations to MBeans should go through the MBean server • GOF: Mediator pattern • Service interfaces are defined via run-time object structure • Services don’t expose Java interfaces • MBean should not expose a Java reference to itself • Instead the kernel internally handles references and uses logical object names

  16. JAR 1 RAR 3 Service Mbean (Java EE Services) Service Mbean (EJB Container) Service Mbean (Tx Manager) Microkernel DeploymentScanner SARDeployer Transaction Service Security Service EARDeployer MainDeployer Naming Service Data Sources MBean Server (JBoss Microkernel + Naming, Logging) *.xAR Custom SAR JBoss Microkernel & JMX • JBoss Microkernel • Separates a minimal functional core from extended functionality and customer-specific parts • Independent cycling and loading • Monolithic → modular • Loading services dynamically • Manage services lifecycle • Use JMX • Benefit • Easily remove the services you don’t need • Tight footprint and modular codebase and hot deploy/remove/redeploy • JBoss is a TRUE Service Oriented Architecture (SOA)

  17. JBoss Application Server

  18. JBoss Application Server • J2EE 1.4 Certified • EJB, JSP/Servlets, Web Services, Messaging, etc. • 100% Pure Java • Any hardware and OS with compliant JVM • JMX-Microkernel • Customizable middleware footprint • Enhanced performance via co-located services • Administration, Monitoring, and Management • Web-console provides real-time graphs & email alerts • Scriptability of JMX modifications and invocations • Enterprise-Ready Clustering • Simple cluster-wide deployment • Dynamic cluster composition • Fault tolerance • Silent failover • State replication (HttpSession, SFSB)

  19. JBoss AS Architecture JBoss Enterprise Application Platform JBoss Seam JBoss Hibernate EJB Containers Security Manager Transaction Manager Connection Pools JBoss Application Server JBoss Microkernel JBoss Microkernel Java Virtual Machine Message Server Servlet Engine Connectors Invokers Embedded Databases Operating System Windows, Unix, Other Linux

  20. Monitoring JBoss Enterprise Application Platform JBoss Seam JBoss Hibernate JBoss Application Server JBoss Microkernel Java Virtual Machine Operating System Windows, Unix, Other Linux

  21. DB Enterprise JavaBeans (EJB) 3.0 • Enterprise JavaBeans (EJB) • 클라이언트/서버 모델의 서버 부분에서 운영되는 자바 프로그램 컴포넌트들을 설정하기 위한 아키텍처 • Session Bean, Message Driven Bean, Entity Bean을 사용하기 위한 EJB API의 단순화 • Java Annotation, Dependency Injection • Optional Callbacks, Entity Manager API • 단순화된 영속성 기능과개선된 쿼리들 Servlet EJB Servlet EJB JBoss Application Server

  22. Application Framework • 복잡한 웹 어플리케이션 개발의 단순화 • Annotation 기반의 프로그래밍 모델 • 전통적인 J2EE 개발자의 공통적인 이슈와 불편사항 극복 • JSF, EJB 3.0, Hibernate, AJAX, Web Services, Workflow의 유연한 통합 • 단일 사용자 세션에서 동시에 복수의 작업 처리 가능 • Conversation과 Process를 위한 새로운 context 추가 Invocation Point Rich Clients Flex / Swing / .NET Web Clients JSF / AJAX Web Services EJB / JBI JBoss Seam Business Logic EJB3 / POJO / Rules Orchestration Work Flow / Page Flow / ESB Data Access Layer EJB3 / POJO / Hibernate / JCA

  23. JGroups • Toolkit for reliable multicasting • Fragmentation • Message retransmission • Ordering • Group membership, membership change notification • LAN or WAN based • Like JMS • Receive a message • Retrieve membership • Disconnect from the group • Close the channel • Be notified when members join, leave (including crashes) Group topology

  24. JBoss Cache • Reduce Database & Network Traffic • By caching frequently used objects • Less Database calls = Less Network Traffic = Faster Applications • Simplification • No interfaces to implement! • Write <10 lines of code • State Replication • Synchronous/Asynchronous/Queue based replication • Transactional changes across the cluster • TreeCacheAOP only replicates changes & not the whole object again! • Persistence • Preload from file, SleepyCat or JDBC • Defined by eviction policies • Reliability • Built on JGroups technology

  25. JBoss Cache Feature • A replicated, transactional, persistency and fine-grained cache system • Transactional or non-transactional • Non-Transactional • Replication after each modification • Transactional • Replication at TX commit • DB isolation levels supported • Support for pluggable TxManagers

  26. Clustering • 상태 복제 (State Replication)– 아래 항목에 대해 Synchronous & Asynchronous Replication 모드 지원 • HTTP Session • Stateful Session Bean • Entity Bean • Plain Old Java Bean (POJO) • 부하 분산 (Load Balancing) • HTTP Load-balancing via Apache Plug-in • EJB Load-balancing via Dynamic Proxy • Message-Driven Bean Load-balancing via Queue • 자동 장애 복구 (Silent Failover) • HTTP failover via Apache Plug-in • EJB failover via Dynamic Proxy

  27. Clustering Expression JBoss instance SFSB EJB 3 Fat Client Remoting Entity Bean JBossWeb POJO JBoss instance SFSB HTTP Thin Client Apache EJB 3 Entity Bean JBossWeb POJO

  28. JBoss Clustering Includes • Cluster • Set of nodes with a common goal - Homogeneous • Partition - Group of nodes • Not statically defined • Defined by a name • Node can join and leave as needed • Automatic cluster membership discovery • HA-Singleton • Only node is running at the same time in a cluster • Fault Tolerant – Failover • Load balancing • Replicating Resources • Stateful Session Bean Replication • Entity Bean Replication • HTTP Session Replication • JNDI Tree Replication • Farming : Distributed Cluster-wide hot deployment

  29. TreeCacheAOP SFSB Replications • After each invocation of a SFSB, if the bean changed, a message is broadcast to the cluster • The message contains the serialized state of the session bean • The broadcast operation is synchronous (blocking) with acknowledgements from all the nodes of the cluster 3. Notify to other node TreeCacheAOP 2. register 1. new 6. Notify to other node TreeCacheAOP 5. update 4. Update state SFSB Automatic TreeCacheAOPNotification

  30. Cache TreeCacheAOP Entity Bean Replications • Hibernate IS EJB 3.0 CMP • Hibernate caches are being integrated with JBossCache

  31. JBoss Remoting • Framework with a single, simple API for making network based invocations and other network related services • Like RMI • Goals • Use POJOs not APIs • No extending of UnicastRemote • No precompilation (rmic) • Protocol independent • Protocol isolation • Designed after dotNetRemoting NET Remoting - Channels and Formatters

  32. Intelligent Stub Client-Server Communication • The clients downloads an “intelligent” stub from the server and uses it to access the bean • The stub encapsulates the load balancing policy and the failover mechanism • JBoss provides load balance policies: • RoundRobin • FirstAvailable (Sticky Sessions) • FirstAvailableIdenticalAllProxies • The stubs maintains a list of server addresses which is updated on each request Client fault Node 1 RMI Dispatcher Invoke : Server Address List Node 2 : Server Address Reference

  33. four five Dynamic Cluster Definition If any node fails, the cluster will identify the failure and remove that node from the cluster definition of every node and all client proxies. All nodes in a JBoss cluster are peers. There is no central director of the cluster, which eliminates any single point of failure. To add a node to the cluster simply duplicate a drive of an existing node, give the node a unique name/IP, and connect it to the network. Now all of the nodes in the cluster and all client proxies are aware of the new cluster member. Node five is now included in all state replication operations as well. one one two five three four Cluster Definition one two three four Cluster Definition one two three four five Cluster Definition two three four five

  34. Shopping Cart Line# QTY Product Description Unit Price 1 4 Coffee Beans (1lb) $6.59 2 4 Coffee Filters #4 $1.99 :::::: :::::: :::::::::::::::::::::::::::: :::::::: 25 Coffee Mugs $2.25 State Replication Across Cluster Now all nodes in the cluster are in sync with the updated state of the shopping cart. one two five three four Replicated Objects HttpSessions Stateful Session Beans HA-JNDI tree 1 0

  35. Silent Failover via Dynamic Proxies Current Cluster Nodes one two three four Dynamic proxies are provided out-of-box in JBoss. The client application does not know or care that the server has failed-over. one two five Client Application Dynamic Proxy three four = replicated stateful object (e.g. Stateful Session Bean)

  36. Features • Server identification • A simple String identifier which allows for remoting servers to be identified and called upon • Pluggable transports • Can use different protocol transports, such as: Socket, RMI, http, etc • Pluggable data marshallers • Can use different data marshallers and unmarshallers to convert the invocation payloads into desired data format for wire transfer • Automatic discovery • Can detect remoting servers as they come on and off line • Server grouping • Ability to group servers by logical domains, so only communicate with servers within specified domains • Callbacks • Can receive server callbacks via push and pull models • Asynchronous calls • Can make asynchronous, or one way, calls to server • Local invocation • If making an invocation on a remoting server that is within the same process space, remoting will automatically make this call by reference, to improve performance

  37. Cache Persistent data Cached model configuration Secure access Transacted Acid sessions Monitor data time (dynamic insertion) Monitor Model time JBoss Architecture Clustered Remote webservice Application layer Aspect layer Service layer Remote Invokers Clustering Security Transaction ACID Cache Monitoring Persistence JBoss Microkernel (JMX) Microkernel layer

  38. 요약 • Open-Source, Zero-cost Product License • Built for Standard • Enterprise-class Reliability • Embeddable, Service-Oriented Architecture • Consistent Manageability • Middleware Services for any Java Object • Enhanced Interoperability

More Related