Integrate (Yourself) with the
Apache Software Foundation
Wrocław 30.11.2015
Krzysztof Sobkowiak
@ksobkowiak
The Apache Software Foundation Member, V.P. Apache ServiceMix
Senior Solution Architect at Capgemini
About me
✗ Apache Software Foundation
✗ Member
✗ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix)
✗ Contributor @ Apache Karaf, Apache CXF, Apache Camel, Apache ActiveMQ
✗ Capgemini
✗ Senior Solution Architect, Trainer
✗ JEE & OSS solutions, system integration
✗ Other Activities
✗ RoboCAP – programming & robot workshops for kids
✗ OASP – Open Application Standard Platform
Views in this presentation are my personal views and do not
necessarily reflect the views of the Apache Software Foundation.
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Outline
✗ What is it? – The Apache Software Foundation
✗ How does it work? – The Apache Way
✗ Who does the work? – Apache Projects
✗ Some sample projects? – Apache ServiceMix & Co
✗ How to start? – Contributing to ASF Projects
1.
What is it?
The Apache Software Foundation
The ASF
✗ ASF == The Apache Software Foundation
✗ Non-profit corporation
✗ 501(c)3 charity
✗ Volunteer organization
✗ Virtual world-wide organization
✗ Exists to provide the organizational, legal and financial support for various OSS
projects
The Apache Group
✗ Before the ASF there was “The Apache Group”
✗ Informal corporate structure
✗ 8 members
✗ Resumed work on NCSA httpd in Feb. 1995
✗ Choose permissive licensing
https://github.com/rbowen/presentations/blob/master/apache_way/slides.md
The ASF
Then
✗ Incorporated in 1999
✗ Started with 21 members
✗ 2 projects
✗ All servers and services donated
Now
✗ 675 members
✗ 168 TLPs
✗ 112 subprojects
✗ 47 Incubator podlings
✗ Tons of committers (literally)
✗ ~ 4500 committers,
✗ ~ 2150 PMC members,
✗ ~ 6900 signed ICLAs
✗ Very large and growing infrastructure
The ASF's Mission
What?
✗ Provide open source software to public
free of charge
✗ Let the coders code – foundation exists
to do the rest
How?
✗ Infrastructure for open source
development
✗ Legal entity for donation purposes
✗ Shelter from law suits
✗ Protection of the Apache brand
ASF – Org Chart
PMC Members
Committers
Contributors
Patchers/Buggers
Users
Development
Members
Officers
Board
Administrative
PMC's
(TLP's)
2.
How does it work?
The Apache Way
The Apache Way
✗ A method of developing software
✗ A method of running communities
✗ A method of governing a Foundation
✗ Although the term is deprecated, The Apache Way relates to how the ASF (and its
projects) work and operate
✗ Basically, the least common denominators on how PMCs operate
Basic Memes
Peer-based
Meritocracy
Consensus
decision
making
Responsible
oversight
Collaborative
development
3.
Who does this work?
Apache Projects
Apache Projects
✗ Responsible for their own code, community and direction
✗ Board provides oversight, but has no say on what code gets written, what direction
projects take, what new projects we should start etc
✗ Foundation provides support (e.g. infra, branding, press) so that projects can focus
just on their code + community
Apache Projects
✗ Over 160 top-level projects (TLPs)
✗ Diversity: Java, C, C++, Perl, …
✗ Leading technology
✗ Web servers, Java tools & stacks,
search, cloud, big data, build tools,
CMS/web framework, databases, OSGi
containers, integration frameworks,
graphics, …
✗ And end user Office suites!
✗ Over 40 projects currently in “pipeline”
Apache Projects
✗ It’s okay for projects to be in “same” space
✗ Ant/Maven, Pig/Hive, Axis/CXF...
✗ “Competing” project technology is OK
✗ If an active community following the Apache Way wants to join, great!
Apache Projects
Who pays?
✗ Apache does not pay for development
✗ Voluntary contributions only!
✗ Many (not all!) developers are paid by a third-party to work on the project
✗ Foundation bears indirect support costs
✗ Infrastructure, publicity, etc.
4.
Some sample projects?
Apache ServiceMix & Co
ASF & Integration
✗ Apache Camel – messaging and routing
✗ Apache CXF – web services (SOAP/REST)
✗ Apache ActiveMQ – message broker
✗ Apache ServiceMix – flexible integration container
Not covered here:
✗ Apache ODE – BPEL
✗ Apache Tuscany – SCA
✗ Apache Synapse – ESB
Apache ServiceMix
✗ Flexible, open-source integration container
✗ Powered by OSGi
Main features
✗ OSGi-based runtime powered by Apache Karaf
✗ Reliable messaging with Apache ActiveMQ
✗ Messaging, routing and EIP with Apache Camel
✗ SOAP/REST web services with Apache CXF
ServiceMix Architecture
ServiceMix Kernel
Apache Karaf
✗ Small OSGi based server
✗ Lightweight container where
applications, components, routes, etc.
can be deployed
✗ Modular system – install features you
need
✗ Supported runtimes
✗ Apache Felix
✗ Eclipse Equinox
Application types
✗ OSGi Blueprint, DS or plain bundles
✗ Spring DM bundles (legacy)
✗ Camel routes
✗ Business rules & processes
ServiceMix Kernel
Features
✗ Hot deployment
✗ Dynamic configuration
✗ Logging system
✗ Provisioning system (features, OBR,
KAR, EBA, ESA)
✗ Native OS integration
✗ Security integration (JAAS ldap, jdbc,→
file, …)
✗ Managed instances
✗ Versioning
✗ Service Registry
✗ Clustering (Master/Slave with jdbc or
file lock)
✗ ….
ServiceMix Kernel
Administration & monitoring
✗ Extensible Shell Console (local, remote, ssh)
✗ JMX
✗ Web Console
✗ Hawt.io
✗ Apache Karaf Decanter
Messaging & Routing
Apache Camel
✗ Open Source integration framework
✗ Implements EIP paterns (book by Gregor Hohpe)
✗ Provides word definition, grammar and language when designing integration
solutions
✗ Uses Domain Specific Languages – XML, Java, Scala,...
Messaging & Routing
Features
✗ In memory bus Alternative to JBI←→
using NMR
✗ Route objects can be XML, File,→
Stream, Bytes, …
✗ Transactional architecture
✗ Sync/Async exchanges
✗ Error and exception handling
✗ ...
Messaging & Routing
✗ More than 50 EIPs implemented
Aggregator Channel
Adapter
Channel Channel
Purger
Command
Message
Competing
Consumers
Content
Based
Content
Filter
Control Bus Correlation
ID
Content
Enricher
Datatype
Channel
Dead Letter
Channel
Detour
Composed
Message
Document
Message
Durable
Subscriber
Envelope
Wrapper
Event-Driven
Consumer
Event Message Message
Filter
Guaranteed
Delivery
Message Bus Message
Dispatcher
Message
Endpoint
Message Message BranchInvalid
Message
C
A B
D
!
E
http://camel.apache.org/enterprise-integration-patterns.html
Messaging & Routing
✗ More than 100 components
http://camel.apache.org/components.html
Messaging & Routing
✗ Many data formatters
✗ Simplify data exchange between
layers and applications
✗ Example: JAXB, Bindy,...
✗ Use marshaller (xml object) and→
unmarshaller (object xml)→
http://camel.apache.org/data-format.html
Reliable Messaging
Apache ActiveMQ
✗ A high performance, reliable message
broker
✗ Persistence for messages
✗ Bridge between broker instances
✗ Languages for client – Java, C, C++, C#,
Ruby, …
✗ Protocols – OpenWire, Stomp, AMQP, MQTT
✗ Publish/subscribe, point to point, request
and reply
✗ Clustering and Fault Tolerance
✗ ...
Reliable Messaging
Architecture
✗ Clients connect to the broker using
connectors
✗ Topics and queues created dynamically
✗ File and jdbc message stores supported
✗ Network connectors control how the
broker interacts with other brokers for
✗ discovery,
✗ replication,
✗ failover,
✗ clustering...
Web Services
Apache CXF
✗ Simplifies the creation and deployment of web services
✗ Java to WSDL
✗ WSDL to Java
✗ WS-Addressing – data exchange in
SOAP header for the routing
✗ WS-RM – message delivery guarantee
✗ DOSGi – reference implementation of
OSGi Remote Services specification
Supported standards
✗ JAX-WS SOAP Services (SOAP/XML)→
✗ JAX-RS RESTfull Services (JSON)→
✗ SOAP 1.1, 1.2, WSDL 1.1
✗ WS-Security – secures the client/server
connection
Apache ServiceMix
Additional features
✗ Business rule engine with Drools
✗ BPM engine with Activiti
✗ JPA support and XA transactions via Apache Aries
✗ JPA implementations – Apache OpenJPA, Hibernate
✗ Web support via Jetty and Pax Web
✗ IoC support via Apache Aries and Spring
✗ CDI support via Pax CDI
Clustering & Fault Tolerance
Kernel
✗ Active/Passive mode with file/jdbc lock
✗ Bundles can be installed in Active/Passive mode
Broker
✗ Master/Slave with shared file system, shared database, replicated LevelDB store
✗ Network of brokers
Clustering & Fault Tolerance
Apache Karaf Cellar
✗ Allows powerful synchronisation of multiple ServiceMix instances
✗ Leverage Hazelcast data distribution
✗ Easy to install and use: just a feature to install on each node
✗ No point of failure (each node embeds Hazelcast instance)
✗ Provides DOSGi implementation
ServiceMix Tooling
✗ Integration with InteliJ, Eclipse, Netbeans
✗ JBoss Tools Integration Stack
✗ JBoss Developer Studio
ServiceMix Demo
✗ https://github.com/sobkowiak/smx-order-service-demo/tree/33degree4charity2015
5.
How to start?
Contributing to ASF Projects
Why to Contribute? – Indivuduals
✗ Better end easy recognition of work
✗ Publicly verifiable resume
✗ Work with best programmers, with the best programming practices
✗ No managers, no boss
✗ Work on what you like when you like
✗ Discuss technical designs and issues in writing
✗ Networking opportunities
✗ Build software used by millions around the world
✗ ApacheCon
How to Contribute? – Indivuduals
✗ Apache wants voluntary contributions
✗ Documentation, Tutorials and Examples
✗ Helping others with queries and questions
✗ Issue / bug tracker triage
✗ Testing new fixes, helping reproduce problems
✗ Bug Fixes and New Features
✗ Writing add-ons and extensions
✗ Mentoring, volunteering for the Foundation
✗ Many different ways to get involved, all are important!
Start contributing
✗ Choose your project
✗ Join the mailing list or forum
✗ Check out the code
✗ Download the binary and play with it
✗ Find open issues and feature requests
✗ Ask the developers on what you can
work on
✗ Sign ICLA
✗ Filter by your interest area
✗ Filter by language
✗ Something you use
✗ Something you want to learn
✗ Using the project is very
important
✗ English
✗ A programming language
✗ Debugging
✗ Passion
✗ Perseverance
✗ Time
Require-
ments
Choosing
the right
project
How to
start?
Become a Committer
Invitation of commit access
✗ Current PMC member nominates
individual
✗ Discussions on private@ list
✗ Key ?: Do we trust this individual?
✗ PMCs are free to set own bar
Beyond a committer
✗ Once you are committer, you can then
become a
✗ PMC member
✗ foundation member
✗ Director...
✗ even President!
✗ You can nominate other foundation (or
PMC) members; can serve as mentor for
Incubating projects; vote for Board.
We are more than a group of projects
sharing a server, we are a community of
developers and users.
“
thanks!
Any questions?
You can find me at
@ksobkowiak
ksobkowiak@apache.org
krzys.sobkowiak@gmail.com
https://github.com/sobkowiak
References
✗ The Apache Software Foundation
✗ http://apache.org
✗ http://community.apache.org
✗ Apache ServiceMix
✗ http://servicemix.apache.org
✗ users@servicemix.apache.org
✗ #apache-servicemix @ irc.freenode.net
✗ Apache Karaf
✗ http://karaf.apache.org
✗ Apache Camel
✗ http://camel.apache.org
✗ Apache CXF
✗ http://cxf.apache.org
✗ Apache ActiveMQ
✗ http://activemq.apache.org
✗ Apache Aries
✗ http://aries.apache.org
✗ Apache Felix
✗ http://felix.apache.org
Credits
Special thanks to all the people who made and released these awesome resources for free:
✗ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz, Rich Bowen and
Ross Gardler
✗ Past Apache ServiceMix, Apache Karaf and Apache Camel slides by Jean-Baptiste Onofré,
Gert Vanthienen, Achim Nierbeck, Christian Schneider and Charles Moulliard
This work is licensed under the Apache License, Version 2.0
Apache, the Apache feather logo, Apache ServiceMix, Apache Karaf, Apache Camel, Apache CXF, Apache ActiveMQ and other Apache project names
mentioned in this presentation and their logos are trademarks of The Apache Software Foundation in the United States and/or other countries.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.

More Related Content

PDF
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
PDF
CamelOne 2013 Karaf A-MQ Camel CXF Security
KEY
Jug Poitou Charentes - Apache, OSGi and Karaf
ODP
Red Hat Open Day JBoss Fuse
KEY
Apache, osgi and karaf par Guillaume Nodet
PPT
OSGi & Blueprint
PDF
Experiences of SOACS
PDF
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
CamelOne 2013 Karaf A-MQ Camel CXF Security
Jug Poitou Charentes - Apache, OSGi and Karaf
Red Hat Open Day JBoss Fuse
Apache, osgi and karaf par Guillaume Nodet
OSGi & Blueprint
Experiences of SOACS
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 

What's hot (20)

PDF
WebSockets - Realtime em Mundo Conectado
PDF
Running open source PHP applications on you IBM i
PPTX
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
PPTX
PHP Installed on IBM i - the Nickel Tour
PPTX
Lecture 7: Server side programming
PDF
What's next for Java API for WebSocket (JSR 356)
PDF
10 common cf server challenges
PDF
Jahia DX 7.2 : Bye bye felix, hello karaf
PPT
Alfresco from an agile framework perspective
ODP
MySQL for Oracle DBAs
PDF
OSGi ecosystems compared on Apache Karaf - Christian Schneider
PDF
Web protocols for java developers
PDF
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
PPTX
Using Apache Camel as AKKA
PDF
DrupalCampLA 2014 - Drupal backend performance and scalability
PDF
Modular Java applications with OSGi on Apache Karaf
PDF
Asynchronous OSGi – Promises for the Masses - T Ward
PPTX
Install MariaDB on IBM i - Tips, troubleshooting, and more
PDF
Using WordPress as an Application Framework
PDF
Cloud Development with Camel and Amazon Web Services
WebSockets - Realtime em Mundo Conectado
Running open source PHP applications on you IBM i
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
PHP Installed on IBM i - the Nickel Tour
Lecture 7: Server side programming
What's next for Java API for WebSocket (JSR 356)
10 common cf server challenges
Jahia DX 7.2 : Bye bye felix, hello karaf
Alfresco from an agile framework perspective
MySQL for Oracle DBAs
OSGi ecosystems compared on Apache Karaf - Christian Schneider
Web protocols for java developers
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Using Apache Camel as AKKA
DrupalCampLA 2014 - Drupal backend performance and scalability
Modular Java applications with OSGi on Apache Karaf
Asynchronous OSGi – Promises for the Masses - T Ward
Install MariaDB on IBM i - Tips, troubleshooting, and more
Using WordPress as an Application Framework
Cloud Development with Camel and Amazon Web Services
Ad

Similar to Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity (20)

PDF
Integrate (Yourself) with the Apache Software Foundation - Full Version
PDF
Music city data Hail Hydrate! from stream to lake
PPT
Succeding with the Apache SOA stack
PDF
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
PDF
Paasta: Application Delivery at Yelp
PPTX
Java PaaS Apache Stratos
PPTX
Opensource development and apache software foundation
PPTX
Apache Stratos - Building a PaaS using OSGi and Equinox
PDF
Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31
PDF
Real time cloud native open source streaming of any data to apache solr
PPTX
An introduction to Apache Cloudstack and working on Apache projects
PDF
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
PPTX
IWSG2014: Developing Science Gateways Using Apache Airavata
PPTX
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
PPTX
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
PPTX
Cloud Foundry: Hands-on Deployment Workshop
PDF
Cloud lunch and learn real-time streaming in azure
PDF
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
PDF
TDC2018SP | Trilha Cloud - Why Apache CloudStack
PDF
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Integrate (Yourself) with the Apache Software Foundation - Full Version
Music city data Hail Hydrate! from stream to lake
Succeding with the Apache SOA stack
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
Paasta: Application Delivery at Yelp
Java PaaS Apache Stratos
Opensource development and apache software foundation
Apache Stratos - Building a PaaS using OSGi and Equinox
Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31
Real time cloud native open source streaming of any data to apache solr
An introduction to Apache Cloudstack and working on Apache projects
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
IWSG2014: Developing Science Gateways Using Apache Airavata
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Cloud Foundry: Hands-on Deployment Workshop
Cloud lunch and learn real-time streaming in azure
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
TDC2018SP | Trilha Cloud - Why Apache CloudStack
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Ad

Recently uploaded (20)

PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
STKI Israel Market Study 2025 version august
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
August Patch Tuesday
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
CloudStack 4.21: First Look Webinar slides
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Modernising the Digital Integration Hub
PDF
Hybrid model detection and classification of lung cancer
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
The various Industrial Revolutions .pptx
PPTX
O2C Customer Invoices to Receipt V15A.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
STKI Israel Market Study 2025 version august
sustainability-14-14877-v2.pddhzftheheeeee
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
NewMind AI Weekly Chronicles – August ’25 Week III
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
1 - Historical Antecedents, Social Consideration.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
August Patch Tuesday
Getting started with AI Agents and Multi-Agent Systems
Group 1 Presentation -Planning and Decision Making .pptx
CloudStack 4.21: First Look Webinar slides
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Hindi spoken digit analysis for native and non-native speakers
Modernising the Digital Integration Hub
Hybrid model detection and classification of lung cancer
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Tartificialntelligence_presentation.pptx
The various Industrial Revolutions .pptx
O2C Customer Invoices to Receipt V15A.pptx

Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity

  • 1. Integrate (Yourself) with the Apache Software Foundation Wrocław 30.11.2015 Krzysztof Sobkowiak @ksobkowiak The Apache Software Foundation Member, V.P. Apache ServiceMix Senior Solution Architect at Capgemini
  • 2. About me ✗ Apache Software Foundation ✗ Member ✗ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix) ✗ Contributor @ Apache Karaf, Apache CXF, Apache Camel, Apache ActiveMQ ✗ Capgemini ✗ Senior Solution Architect, Trainer ✗ JEE & OSS solutions, system integration ✗ Other Activities ✗ RoboCAP – programming & robot workshops for kids ✗ OASP – Open Application Standard Platform
  • 3. Views in this presentation are my personal views and do not necessarily reflect the views of the Apache Software Foundation.
  • 7. Outline ✗ What is it? – The Apache Software Foundation ✗ How does it work? – The Apache Way ✗ Who does the work? – Apache Projects ✗ Some sample projects? – Apache ServiceMix & Co ✗ How to start? – Contributing to ASF Projects
  • 8. 1. What is it? The Apache Software Foundation
  • 9. The ASF ✗ ASF == The Apache Software Foundation ✗ Non-profit corporation ✗ 501(c)3 charity ✗ Volunteer organization ✗ Virtual world-wide organization ✗ Exists to provide the organizational, legal and financial support for various OSS projects
  • 10. The Apache Group ✗ Before the ASF there was “The Apache Group” ✗ Informal corporate structure ✗ 8 members ✗ Resumed work on NCSA httpd in Feb. 1995 ✗ Choose permissive licensing https://github.com/rbowen/presentations/blob/master/apache_way/slides.md
  • 11. The ASF Then ✗ Incorporated in 1999 ✗ Started with 21 members ✗ 2 projects ✗ All servers and services donated Now ✗ 675 members ✗ 168 TLPs ✗ 112 subprojects ✗ 47 Incubator podlings ✗ Tons of committers (literally) ✗ ~ 4500 committers, ✗ ~ 2150 PMC members, ✗ ~ 6900 signed ICLAs ✗ Very large and growing infrastructure
  • 12. The ASF's Mission What? ✗ Provide open source software to public free of charge ✗ Let the coders code – foundation exists to do the rest How? ✗ Infrastructure for open source development ✗ Legal entity for donation purposes ✗ Shelter from law suits ✗ Protection of the Apache brand
  • 13. ASF – Org Chart PMC Members Committers Contributors Patchers/Buggers Users Development Members Officers Board Administrative PMC's (TLP's)
  • 14. 2. How does it work? The Apache Way
  • 15. The Apache Way ✗ A method of developing software ✗ A method of running communities ✗ A method of governing a Foundation ✗ Although the term is deprecated, The Apache Way relates to how the ASF (and its projects) work and operate ✗ Basically, the least common denominators on how PMCs operate
  • 17. 3. Who does this work? Apache Projects
  • 18. Apache Projects ✗ Responsible for their own code, community and direction ✗ Board provides oversight, but has no say on what code gets written, what direction projects take, what new projects we should start etc ✗ Foundation provides support (e.g. infra, branding, press) so that projects can focus just on their code + community
  • 19. Apache Projects ✗ Over 160 top-level projects (TLPs) ✗ Diversity: Java, C, C++, Perl, … ✗ Leading technology ✗ Web servers, Java tools & stacks, search, cloud, big data, build tools, CMS/web framework, databases, OSGi containers, integration frameworks, graphics, … ✗ And end user Office suites! ✗ Over 40 projects currently in “pipeline”
  • 20. Apache Projects ✗ It’s okay for projects to be in “same” space ✗ Ant/Maven, Pig/Hive, Axis/CXF... ✗ “Competing” project technology is OK ✗ If an active community following the Apache Way wants to join, great!
  • 22. Who pays? ✗ Apache does not pay for development ✗ Voluntary contributions only! ✗ Many (not all!) developers are paid by a third-party to work on the project ✗ Foundation bears indirect support costs ✗ Infrastructure, publicity, etc.
  • 24. ASF & Integration ✗ Apache Camel – messaging and routing ✗ Apache CXF – web services (SOAP/REST) ✗ Apache ActiveMQ – message broker ✗ Apache ServiceMix – flexible integration container Not covered here: ✗ Apache ODE – BPEL ✗ Apache Tuscany – SCA ✗ Apache Synapse – ESB
  • 25. Apache ServiceMix ✗ Flexible, open-source integration container ✗ Powered by OSGi Main features ✗ OSGi-based runtime powered by Apache Karaf ✗ Reliable messaging with Apache ActiveMQ ✗ Messaging, routing and EIP with Apache Camel ✗ SOAP/REST web services with Apache CXF
  • 27. ServiceMix Kernel Apache Karaf ✗ Small OSGi based server ✗ Lightweight container where applications, components, routes, etc. can be deployed ✗ Modular system – install features you need ✗ Supported runtimes ✗ Apache Felix ✗ Eclipse Equinox Application types ✗ OSGi Blueprint, DS or plain bundles ✗ Spring DM bundles (legacy) ✗ Camel routes ✗ Business rules & processes
  • 28. ServiceMix Kernel Features ✗ Hot deployment ✗ Dynamic configuration ✗ Logging system ✗ Provisioning system (features, OBR, KAR, EBA, ESA) ✗ Native OS integration ✗ Security integration (JAAS ldap, jdbc,→ file, …) ✗ Managed instances ✗ Versioning ✗ Service Registry ✗ Clustering (Master/Slave with jdbc or file lock) ✗ ….
  • 29. ServiceMix Kernel Administration & monitoring ✗ Extensible Shell Console (local, remote, ssh) ✗ JMX ✗ Web Console ✗ Hawt.io ✗ Apache Karaf Decanter
  • 30. Messaging & Routing Apache Camel ✗ Open Source integration framework ✗ Implements EIP paterns (book by Gregor Hohpe) ✗ Provides word definition, grammar and language when designing integration solutions ✗ Uses Domain Specific Languages – XML, Java, Scala,...
  • 31. Messaging & Routing Features ✗ In memory bus Alternative to JBI←→ using NMR ✗ Route objects can be XML, File,→ Stream, Bytes, … ✗ Transactional architecture ✗ Sync/Async exchanges ✗ Error and exception handling ✗ ...
  • 32. Messaging & Routing ✗ More than 50 EIPs implemented Aggregator Channel Adapter Channel Channel Purger Command Message Competing Consumers Content Based Content Filter Control Bus Correlation ID Content Enricher Datatype Channel Dead Letter Channel Detour Composed Message Document Message Durable Subscriber Envelope Wrapper Event-Driven Consumer Event Message Message Filter Guaranteed Delivery Message Bus Message Dispatcher Message Endpoint Message Message BranchInvalid Message C A B D ! E http://camel.apache.org/enterprise-integration-patterns.html
  • 33. Messaging & Routing ✗ More than 100 components http://camel.apache.org/components.html
  • 34. Messaging & Routing ✗ Many data formatters ✗ Simplify data exchange between layers and applications ✗ Example: JAXB, Bindy,... ✗ Use marshaller (xml object) and→ unmarshaller (object xml)→ http://camel.apache.org/data-format.html
  • 35. Reliable Messaging Apache ActiveMQ ✗ A high performance, reliable message broker ✗ Persistence for messages ✗ Bridge between broker instances ✗ Languages for client – Java, C, C++, C#, Ruby, … ✗ Protocols – OpenWire, Stomp, AMQP, MQTT ✗ Publish/subscribe, point to point, request and reply ✗ Clustering and Fault Tolerance ✗ ...
  • 36. Reliable Messaging Architecture ✗ Clients connect to the broker using connectors ✗ Topics and queues created dynamically ✗ File and jdbc message stores supported ✗ Network connectors control how the broker interacts with other brokers for ✗ discovery, ✗ replication, ✗ failover, ✗ clustering...
  • 37. Web Services Apache CXF ✗ Simplifies the creation and deployment of web services ✗ Java to WSDL ✗ WSDL to Java ✗ WS-Addressing – data exchange in SOAP header for the routing ✗ WS-RM – message delivery guarantee ✗ DOSGi – reference implementation of OSGi Remote Services specification Supported standards ✗ JAX-WS SOAP Services (SOAP/XML)→ ✗ JAX-RS RESTfull Services (JSON)→ ✗ SOAP 1.1, 1.2, WSDL 1.1 ✗ WS-Security – secures the client/server connection
  • 38. Apache ServiceMix Additional features ✗ Business rule engine with Drools ✗ BPM engine with Activiti ✗ JPA support and XA transactions via Apache Aries ✗ JPA implementations – Apache OpenJPA, Hibernate ✗ Web support via Jetty and Pax Web ✗ IoC support via Apache Aries and Spring ✗ CDI support via Pax CDI
  • 39. Clustering & Fault Tolerance Kernel ✗ Active/Passive mode with file/jdbc lock ✗ Bundles can be installed in Active/Passive mode Broker ✗ Master/Slave with shared file system, shared database, replicated LevelDB store ✗ Network of brokers
  • 40. Clustering & Fault Tolerance Apache Karaf Cellar ✗ Allows powerful synchronisation of multiple ServiceMix instances ✗ Leverage Hazelcast data distribution ✗ Easy to install and use: just a feature to install on each node ✗ No point of failure (each node embeds Hazelcast instance) ✗ Provides DOSGi implementation
  • 41. ServiceMix Tooling ✗ Integration with InteliJ, Eclipse, Netbeans ✗ JBoss Tools Integration Stack ✗ JBoss Developer Studio
  • 43. 5. How to start? Contributing to ASF Projects
  • 44. Why to Contribute? – Indivuduals ✗ Better end easy recognition of work ✗ Publicly verifiable resume ✗ Work with best programmers, with the best programming practices ✗ No managers, no boss ✗ Work on what you like when you like ✗ Discuss technical designs and issues in writing ✗ Networking opportunities ✗ Build software used by millions around the world ✗ ApacheCon
  • 45. How to Contribute? – Indivuduals ✗ Apache wants voluntary contributions ✗ Documentation, Tutorials and Examples ✗ Helping others with queries and questions ✗ Issue / bug tracker triage ✗ Testing new fixes, helping reproduce problems ✗ Bug Fixes and New Features ✗ Writing add-ons and extensions ✗ Mentoring, volunteering for the Foundation ✗ Many different ways to get involved, all are important!
  • 46. Start contributing ✗ Choose your project ✗ Join the mailing list or forum ✗ Check out the code ✗ Download the binary and play with it ✗ Find open issues and feature requests ✗ Ask the developers on what you can work on ✗ Sign ICLA ✗ Filter by your interest area ✗ Filter by language ✗ Something you use ✗ Something you want to learn ✗ Using the project is very important ✗ English ✗ A programming language ✗ Debugging ✗ Passion ✗ Perseverance ✗ Time Require- ments Choosing the right project How to start?
  • 47. Become a Committer Invitation of commit access ✗ Current PMC member nominates individual ✗ Discussions on private@ list ✗ Key ?: Do we trust this individual? ✗ PMCs are free to set own bar Beyond a committer ✗ Once you are committer, you can then become a ✗ PMC member ✗ foundation member ✗ Director... ✗ even President! ✗ You can nominate other foundation (or PMC) members; can serve as mentor for Incubating projects; vote for Board.
  • 48. We are more than a group of projects sharing a server, we are a community of developers and users. “
  • 49. thanks! Any questions? You can find me at @ksobkowiak ksobkowiak@apache.org krzys.sobkowiak@gmail.com https://github.com/sobkowiak
  • 50. References ✗ The Apache Software Foundation ✗ http://apache.org ✗ http://community.apache.org ✗ Apache ServiceMix ✗ http://servicemix.apache.org ✗ users@servicemix.apache.org ✗ #apache-servicemix @ irc.freenode.net ✗ Apache Karaf ✗ http://karaf.apache.org ✗ Apache Camel ✗ http://camel.apache.org ✗ Apache CXF ✗ http://cxf.apache.org ✗ Apache ActiveMQ ✗ http://activemq.apache.org ✗ Apache Aries ✗ http://aries.apache.org ✗ Apache Felix ✗ http://felix.apache.org
  • 51. Credits Special thanks to all the people who made and released these awesome resources for free: ✗ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz, Rich Bowen and Ross Gardler ✗ Past Apache ServiceMix, Apache Karaf and Apache Camel slides by Jean-Baptiste Onofré, Gert Vanthienen, Achim Nierbeck, Christian Schneider and Charles Moulliard This work is licensed under the Apache License, Version 2.0 Apache, the Apache feather logo, Apache ServiceMix, Apache Karaf, Apache Camel, Apache CXF, Apache ActiveMQ and other Apache project names mentioned in this presentation and their logos are trademarks of The Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.