This is a talk from the Open Source Day 2015 (http://opensourceday.com/start-osd-2015/) conference in Warsaw, Poland, 23.04.2015. This talk is about the Apache Software Foundation and Apache ServiceMix
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
1. Integrate (Yourself) with the Apache Software Foundation
Krzysztof Sobkowiak
V.P. Apache ServiceMix & ASF Member
2. Who am I?
➢ Member
➢ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix)
➢ Contributor @ Apache Karaf, Apache CXF, Apache ActiveMQ,
Apache Camel
Apache Software
Foundation
Apache Software
Foundation
➢ Senior Solution Architect, Trainer
➢ Java enterprise solutions, system integration
CapgeminiCapgemini
➢ RoboCAP – programming & robot workshops for kids
➢ OASP – Open Application Standard Patform
Other activitiesOther activities
3. Who am I?
DisclaimerDisclaimer
Views in this presentation are my personal views and does not
necessarily reflect the views of Apache Software Foundation
4. Outline
➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
5. The ASF – What is it?
➢ Informal corporate structure
➢ 8 members
➢ Resumed work on NCSA httpd in Feb. 1995
➢ Chose permissive licensing
The Apache GroupThe Apache Group
➢ ASF = The Apache Software Foundation
➢ Non-profit corporation founded in 1999
➢ Initially 21 members
➢ Volunteer organization
➢ Virtual world-wide organization
The Apache Software
Foundation
The Apache Software
Foundation
6. Structure of the ASF
FoundationFoundation Top Level Projects (TLPs)Top Level Projects (TLPs)
➢ ASF Members
➢ Cross-project community
➢ Board
➢ Elected by ASF members annually
➢ Manage and oversee the corporation, its
assets and resources
➢ Technical authority assigned to PMCs
➢ Officers
➢ Oversee the day-to-day affairs
➢ Elected by the board
➢ ASF Members
➢ Cross-project community
➢ Board
➢ Elected by ASF members annually
➢ Manage and oversee the corporation, its
assets and resources
➢ Technical authority assigned to PMCs
➢ Officers
➢ Oversee the day-to-day affairs
➢ Elected by the board
➢ Users
➢ Contributors
➢ Committers
➢ Project Management Committee (PMC)
➢ Technical management
➢ Establish rules, report to board
➢ has a Chair appointed by the board (VP) -
eyes and ears of the board (oversight only)
➢ Oversee legal aspects and community
health
➢ Users
➢ Contributors
➢ Committers
➢ Project Management Committee (PMC)
➢ Technical management
➢ Establish rules, report to board
➢ has a Chair appointed by the board (VP) -
eyes and ears of the board (oversight only)
➢ Oversee legal aspects and community
health
8. The ASF's Mission
➢ Provide open source software to public free of charge
➢ Let the coders code – foundation exists to do the rest
What?What?
➢ Infrastructure for open source development
➢ Legal entity for donation purposes
➢ Shelter from law suits
➢ Protection of the Apache brand
How?How?
9. Apache's Tagline
We are more than a group of projects sharing a server, we are a community of developers and users.
http://people.apache.org/map.html
Challenges and advantages arise
from this !!
10. Outline
➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
11. The Apache Way
Meritocracy
Those who do,
decide
Peer-based
Participate as
individuals
Oversight
Responsible and
independent
Collaboration
Public and
asynchronous
Decisions
Made by
consensus
12. Outline
➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
13. 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 thirty projects currently in “pipeline”
https://projects-new.apache.org/
➢ 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!
14. Apache Projects
➢ 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.
Who pays?Who pays?
16. Outline
➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
17. ServiceMix
What is it?What is it?
➢ Flexible, open-source integration container
➢ Powered by OSGi
Main featuresMain 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
18. ServiceMix
The beginningThe beginning
➢ Started in 2005 to implement the Java Business Integration specification
➢ Decoupling of the components (business, technical) by using XML messages
➢ Define a model to package/deploy applications (SU/SA)
➢ Transport layer → Normalized Message Router
https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.1/html-single/JBI_Development_Guide/images/jbi_architecture.jpg
20. ServiceMix Kernel
Apache KarafApache 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 typesApplication types
➢ OSGi Blueprint, DS or plain bundles
➢ Spring DM bundles (legacy)
➢ Camel routes
➢ Business rules & processes
21. ServiceMix Kernel
FeaturesFeatures
➢ 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)
➢ ….
http://karaf.apache.org/images/karaf2.png
23. Messging and Routing
Apache CamelApache Camel
➢ Open Source integration framework
➢ Implements EIP paterns (book by Gregor Hohpe)
➢ Provides word definition, grammar and language when when
designing integration solutions
➢ Uses Domain Specific Languages – XML, Java, Scala,...
➢ 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
➢ ...
24. Messging and 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
26. Messging and 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
28. Web Services
Apache CXFApache CXF
➢ Simplifies the creation and deployment of web services
➢ Java to WSDL
➢ WSDL to Java
➢ 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
➢ WS-Addressing – data exchange in SOAP header for the routing
➢ WS-RM – message delivery guarantee
➢ DOSGi – reference implementation of OSGi Remote Services
specification
29. Reliable Messaging
Apache ActiveMQApache 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
➢ ...
https://access.redhat.com/documentation/en-US/Fuse_Message_Broker/5.4/html/Getting_Started/files/FuseMBStartedKeyJMS.html
30. Reliable Messaging
ArchitectureArchitecture
➢ 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...
http://activemq.apache.org/images/BrokerDiagram.png
31. ServiceMix
Additional featuresAdditional 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
32. Clustering & Fault Tolerance
KernelKernel
➢ Active/Passive mode with file/jdbc lock
➢ Bundles can be installed in Active/Passive mode
BrokerBroker
➢ Master/Slave with shared file system, shared database, replicated LevelDB
store
➢ Network of brokers
Apache Karaf CellarApache 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
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQD7T4OSzA_2Vv-qJIEtiXp4PzIXki7Pq0W396k5z2Asfksh5sV
35. Outline
➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
36. Contributing to ASF – Individuals
Why?Why? How?How?
➢ 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
➢ 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
➢ 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!
➢ 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!
37. Contributing to ASF – Companies
Why?Why? How?How?
➢ Recognition as company contributing to open
source
➢ Attract better people to come and join
➢ Make sure the technologies you use sustain
➢ Contributing developers
➢ Having in-house expertise
➢ Making sure you can influence the directions
➢ Free training for your developers in all aspects of
development, management, QA and maintenance
➢ Pooling the developers to work on a project
important to the company
➢ Recognition as company contributing to open
source
➢ Attract better people to come and join
➢ Make sure the technologies you use sustain
➢ Contributing developers
➢ Having in-house expertise
➢ Making sure you can influence the directions
➢ Free training for your developers in all aspects of
development, management, QA and maintenance
➢ Pooling the developers to work on a project
important to the company
➢ Provide testimonials about the OSS your
enterprise uses
➢ Allow staff members to work on OSS
libraries/applications used by your company
➢ Push changes to OSS back
➢ Host ASF club meetings on your premises
➢ Extract out and make open source the
libraries/applications developed in-house
➢ Free up the paid software/services for OSS
communities
➢ Contributing is easier than you think!
➢ Provide testimonials about the OSS your
enterprise uses
➢ Allow staff members to work on OSS
libraries/applications used by your company
➢ Push changes to OSS back
➢ Host ASF club meetings on your premises
➢ Extract out and make open source the
libraries/applications developed in-house
➢ Free up the paid software/services for OSS
communities
➢ Contributing is easier than you think!
38. My Journey
➢ First PR to Apache Karaf – PR#8 17.01.2013
➢ First discussion in Apache Karaf – 11.11.2013
➢ First patch in Apache ServiceMix – SM-2219 30.12.2013
➢ First discussion in Apache ServiceMix – 07.01.2014
➢ Involvement in designs discussions, implementations, dev/user
mailing lists, fixing bugs
➢ In the meantime getting elected as a committer – 04.2014
➢ First commit in Apache ServiceMix – 11.04.2014
http://svn.apache.org/r1585169
https://git1-us-west.apache.org/repos/asf?p=servicemix.git;a=commit;h=f7f0a603
http://git-wip-us.apache.org/repos/asf/servicemix/commit/f9dd4365
➢ Being a release manager and getting elected into PMC – 07.2014
➢ Nominated to be a PMC chair – 02.2015
➢ Electing to be a member of ASF – 04.2015
39. Start contributing
Choosing the right projectChoosing the right project How do I start?How do I start?
➢ English
➢ A programming language
➢ Debugging
➢ Passion
➢ Perseverance
➢ Time
➢ Filter by your interest area
➢ Filter by language
➢ Something you use
➢ Something you want to learn
➢ Using the project is very
important
➢ 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
RequirementsRequirements
40. Become a committer (and not only)
Invitation of commit
access
Invitation of commit
access
➢ Current PMC member nominates individual
➢ Discussions on private@ list
➢ Key ?: Do we trust this individual?
➢ PMCs free to set own bar
Beyond a committerBeyond 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.
41. ➢ Thank you!
➢ Any questions?
➢ @Ksobkowiak
➢ ksobkowiak(at)apache.org
➢ krzys.sobkowiak(at)gmail.com
That's it
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.
43. ➢ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz and Ross Gardler
➢ Past Apache ServiceMix and Apache Karaf slides by Jean-Baptiste Onofré, Gert Vanthienen and
Charles Moulliard
Credits
This work is licensed under the Apache License, Version 2.0