Академический Документы
Профессиональный Документы
Культура Документы
The
Agenda
Middleware as a collection of aspects, custom middleware New Aspects EJB 3.0 JBoss: professional open source
The
A GUI with color syntax highlighting aspects in source is AO It untangles code IN YOUR HEAD EJB 2.0: programmers use interfaces and code abstract getters and setters. Intrusive programming model EJB 3.0: programmers use POJOS and annotations. Persistence by annotations, remoteness by annotations etc AS TRANSPARENT AS IT CAN BE (POJO BASED)
Professional Open Source Company
The
Transparent middleware
Impact of AO on middleware
Middleware offers services and aspects to programmers How complex is it to apply an aspect to an objects
Today middleware is mostly tangled specs A component writer in EJB KNOWS about way to much system level issues POJO based is the best we can do
The
Service layer
Remote Invokers Clustering Security Transaction ACID Cache Monitoring Persistence
Microkernel layer
The
JBoss 4 is Aspect-Oriented Middleware Architectural decisions can be made later on in the development process AOP makes iterative development more fluid
The
JBoss 4:Dynamic AO
Dynamic AOP
Transactional, ACID, Objects. Our Transactional Cache Replicated Objects. Our Distributed Cache Optimized HTTP Session Replication Remoting choose at runtime, SOAP, RMI, Sockets, IIOP Clustered Remoting invocation failover
Can become Transactional Can become Replicated Depends on Cache Configuration Goal to have transparent ACID properties Transparent Replication No application coding for inserted Objects Uses AOP Dynamic API Requires prepare step via <advisable> ALMOST COMPLETE TRANSPARENCY
The
The
The
JBossRemoting
Goals
Use POJOs not APIs No extending of UnicastRemote No precompilation (rmic) Protocol independent Protocol isolation Designed after dotNetRemoting
Features
SOAP, Fact Socket, or RMI protocols available Clustering: failover, loadbalancing
The
Remoting/Clustered Remoting
Declare POJO remoted at runtime Hooks into JBoss Remoting project (Jeff Haynie, Tom Elrod) URI based protocols (soap, socket, rmi)
// Server POJO remote = new POJO("hello"); Dispatcher.singleton.registerTarget(objName", remote); // Client POJO proxy = (POJO)Remoting.createRemoteProxy(objName", POJO.class, soap://localhost:8080");
The
Clustered Remoting
Invocation failover with any protocol Invocation loadbalancing with any protocol Leverages existing JBoss Clustering
POJO pojo = new POJO("hello"); POJO proxy = (POJO)ClusteredRemoting.registerClusteredObject( objName", pojo, "DefaultPartition", new RoundRobin(), socket://localhost:5150");
The
Setting of references can be intercepted Hook up of singleton, per VM Per call, per lifecycle Work done by Bill Burke in CVS
Observer/Observable is an aspect
Strong limitation of current J2EE. No observable pattern Message or pooling based designs. Need for JavaBeans fireChange Template code was aspectized by Adrian Brock in CVS Tight collaboration with academia on identification of new aspects for middleware. Fast time to market in JBoss
Etc etc
The
Systematic use of annotations to simplify programming Eliminate need for XML deployment descriptors Generation of interfaces if needed Systematic use of defaults Configuration on exception only Annotations IoC, utility classes No more homes, factory pattern No more abstract getter/setter
Simple defaults
Simple dependencies Simple POJO programming model
POJO persistence Entities are always local, use of new() POJO Model Inheritance and polymorphism No CMR from EJBQL to HQL back to EJBQL again Support for group-by, explicit inner and outer join, projections, bulk update and delete, dynamic queries, SQL queries Close to HQL, SQL focus, ORDBMS focus unlike JDO
Simple callbacks
Simple testing
Work in progress
The
The
The
Deployment descriptors
No xml in 3.0
The
The
Enterprise
Tactical
Developer Support
Consulting Documentation Training
Small Consultancy JBoss Group JBoss inc Professional Open Source
Developer
10/00
6/01
1/02
9/02
9/03
1/04
The
What is JBoss?
JBoss federates open source projects under the JBoss Professional Open Source model JBoss Inc. employs the lead developers of
JBoss Application Server: J2EE based Tomcat Hibernate JBossCache/JGroups: Nukes,
The
JBoss Groups people are super-smart and could help us at the technical level we needed without us having to work our way through levels of support staff. Compared with our old vendor, we get great support for relatively low cost.
Jerry Shifrin, senior engineer, network management group, MCI (formerly WorldCom)
The
CUSTOMERS
The
JBoss numbers
A large community
40,000 documentation sets sold 500 contributors over time, 20 core (JBoss Inc)
Analyst private communication CRN survey puts JBoss certified consultant at #2 in fastest growing certification with large systems integrators
The
J2EE Update
JBoss has licensed the TCK for J2EE 1.4 Work in progress Founders Program
Partners who are helping JBoss with the Certification effort
The
(JGroups)
The
The
Partner does 1st / 2nd line JBoss does expert 3rd line
Leverage installed base of JBoss Leverage existing partner channels to increase service
coverage Provide high level support with 1st line presence and 3rd line expertise.
The
Enterprise
Tactical
Aspects, J2EE 1.4 Clustering, Tomcat, Web Services Microkernel, JMX, J2EE APIs
Developer
Application Server EJB 1.0 2.0 3.0 3.2 4.0 JBoss Version
The
JMX Architecture
Microkernel design
(2/4)
Service MBean
Service MBean
MBean Server
Service MBean
The
DeploymentScanner MainDeployer
*.xAR
The
Application B
DeploymentScanner MainDeployer
SARDeployer EARDeployer
DeploymentScanner MainDeployer
*.xAR
Custom SAR
The
Load Services
Deployment Packages
Next generation routers Mars Lander syndrome hardware ships with software
managed.
Machine 3
MainDeployer
MainDeployer
Server JVM
EJB Container MBean
RemoteInvoker
JMX Microkernel
Invocation 011101010101
Port 4321
Client
Client Proxy
RemoteInvoker
Service MBean
The
An EJB Container
An EJB container is the sum of
Interceptors Plugins per container MBeans in the server
Data Source Transaction Manager
Microkernel
Bean Lock
Cache
CMP Engine
The
Synchronization
Transaction
Connection
Security
Cache
Lock
The
Security overview
The JBossSX framework includes a number of bundled login modules
Suitable for integration with standard security infrastructure
store protocols such as LDAP and JDBC Also includes standard base class implementations that help enforce the expected LoginModule to Subject usage pattern to help integrate your own authentication protocol.
The JBossSX framework includes an implementation of SRP that consists of the following elements:
An implementation of the SRP-3 handshake protocol
that is bound into the JBoss server JNDI namespace. A server side JAAS LoginModule implementation that uses the authentication cache managed by the SRP JMX
The
The
JBoss Hibernate
Hibernate
CMP is an API and XML mappings Hibernate is the actual persistence engine Hibernate caches are being integrated with JBossCache Full distributed data with OR backend on one node
The
Hibernate
Part of JBoss full-time Gavin King and Christian Bauer on board Persistence for POJOs (JavaBeans) Flexible and intuitive mapping Support for fine-grained object models Powerful, high performance queries Dual-Layer Caching Architecture (HDLCA) Support for detached objects (no DTOs) Transparent Persistence Automatic dirty checking Transitive Persistence Smart fetching and caching Smooth migration to EJB3.0
Consulting and support available as part of JBoss inc The Professional Open Source Company
Hot deployment Deployment of nested archives (EARs, SARs) Redeployment Automatic undeployment
JBoss IDE
JBoss IDE is based on Eclipse.
Series of plugins for Eclipse
The debugging and monitoring of JBoss servers and the control of their life cycle (start/stop). A very comfortable and sophisticated support for XDoclet
Support completion and generation Support for AOP (completion and generation).
An easy way to configure and deploy the packaging layout of archives (packed or exploded)
The
What Is JBossCache?
What is JBossCache?
A transactional replicated cache for JBoss with and without
Write-through (lazy or eager) Reads only access the cache (very fast on cache hits) Items not in the cache are loaded (e.g. from database) Bounded size; old items are removed by eviction policy
Feature
Transactions
All modifications done within TX, replication at TX commit. No
replication on rollback
Locking
Access to nodes serialized by locks Lock acquisition timeouts used for deadlock prevention
Replication
local: in-VM, no replication repl-async: replication done on separate thread repl-sync: replication done on user's thread, wait for all acks
The
Nukes on JBoss
Nukes on JBoss is a port of PHP postnukes
Scalability problems with Zend engine Full port to EJB/J2EE. Leverage the vast library of nukes modules
User : enables user management Html : stores files, filesystem is abstracted, stored in DB Sections : edit/publish articles FORUMS!!!!
The
The
Nukes components
The
JBoss Q&A
Website: www.jboss.org and www.jboss.com Email: marc.fleury@jboss.com
The