SlideShare a Scribd company logo
1 of 51
Download to read offline
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.
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

What's hot

開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
My own sweet home!
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee
 
Asynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T WardAsynchronous OSGi – Promises for the Masses - T Ward
Asynchronous OSGi – Promises for the Masses - T Ward
mfrancis
 
Using WordPress as an Application Framework
Using WordPress as an Application FrameworkUsing WordPress as an Application Framework
Using WordPress as an Application Framework
Tom Willmot
 

What's hot (20)

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

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

Opensource development and apache software foundation
Opensource development and apache software foundationOpensource development and apache software foundation
Opensource development and apache software foundation
Eran Chinthaka Withana
 
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit
 

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

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

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

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.
  • 4.
  • 5.
  • 6.
  • 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.