Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Integrate (Yourself) with the
Apache Software Foundation
Wrocław 30.11.2015
Krzysztof Sobkowiak
@ksobkowiak
The Apache Sof...
About me
✗ Apache Software Foundation
✗ Member
✗ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix)
✗ Contributor @...
Views in this presentation are my personal views and do not
necessarily reflect the views of the Apache Software Foundatio...
Outline
✗ What is it? – The Apache Software Foundation
✗ How does it work? – The Apache Way
✗ Who does the work? – Apache ...
1.
What is it?
The Apache Software Foundation
The ASF
✗ ASF == The Apache Software Foundation
✗ Non-profit corporation
✗ 501(c)3 charity
✗ Volunteer organization
✗ Virt...
The Apache Group
✗ Before the ASF there was “The Apache Group”
✗ Informal corporate structure
✗ 8 members
✗ Resumed work o...
The ASF
Then
✗ Incorporated in 1999
✗ Started with 21 members
✗ 2 projects
✗ All servers and services donated
Now
✗ 675 me...
The ASF's Mission
What?
✗ Provide open source software to public
free of charge
✗ Let the coders code – foundation exists
...
ASF – Org Chart
PMC Members
Committers
Contributors
Patchers/Buggers
Users
Development
Members
Officers
Board
Administrati...
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
✗ ...
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 wh...
Apache Projects
✗ Over 160 top-level projects (TLPs)
✗ Diversity: Java, C, C++, Perl, …
✗ Leading technology
✗ Web servers...
Apache Projects
✗ It’s okay for projects to be in “same” space
✗ Ant/Maven, Pig/Hive, Axis/CXF...
✗ “Competing” project te...
Apache Projects
Who pays?
✗ Apache does not pay for development
✗ Voluntary contributions only!
✗ Many (not all!) developers are paid by a...
4.
Some sample projects?
Apache ServiceMix & Co
ASF & Integration
✗ Apache Camel – messaging and routing
✗ Apache CXF – web services (SOAP/REST)
✗ Apache ActiveMQ – messa...
Apache ServiceMix
✗ Flexible, open-source integration container
✗ Powered by OSGi
Main features
✗ OSGi-based runtime power...
ServiceMix Architecture
ServiceMix Kernel
Apache Karaf
✗ Small OSGi based server
✗ Lightweight container where
applications, components, routes, e...
ServiceMix Kernel
Features
✗ Hot deployment
✗ Dynamic configuration
✗ Logging system
✗ Provisioning system (features, OBR,...
ServiceMix Kernel
Administration & monitoring
✗ Extensible Shell Console (local, remote, ssh)
✗ JMX
✗ Web Console
✗ Hawt.i...
Messaging & Routing
Apache Camel
✗ Open Source integration framework
✗ Implements EIP paterns (book by Gregor Hohpe)
✗ Pro...
Messaging & Routing
Features
✗ In memory bus Alternative to JBI←→
using NMR
✗ Route objects can be XML, File,→
Stream, Byt...
Messaging & Routing
✗ More than 50 EIPs implemented
Aggregator Channel
Adapter
Channel Channel
Purger
Command
Message
Comp...
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...
Reliable Messaging
Apache ActiveMQ
✗ A high performance, reliable message
broker
✗ Persistence for messages
✗ Bridge betwe...
Reliable Messaging
Architecture
✗ Clients connect to the broker using
connectors
✗ Topics and queues created dynamically
✗...
Web Services
Apache CXF
✗ Simplifies the creation and deployment of web services
✗ Java to WSDL
✗ WSDL to Java
✗ WS-Addres...
Apache ServiceMix
Additional features
✗ Business rule engine with Drools
✗ BPM engine with Activiti
✗ JPA support and XA t...
Clustering & Fault Tolerance
Kernel
✗ Active/Passive mode with file/jdbc lock
✗ Bundles can be installed in Active/Passive...
Clustering & Fault Tolerance
Apache Karaf Cellar
✗ Allows powerful synchronisation of multiple ServiceMix instances
✗ Leve...
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 progr...
How to Contribute? – Indivuduals
✗ Apache wants voluntary contributions
✗ Documentation, Tutorials and Examples
✗ Helping ...
Start contributing
✗ Choose your project
✗ Join the mailing list or forum
✗ Check out the code
✗ Download the binary and p...
Become a Committer
Invitation of commit access
✗ Current PMC member nominates
individual
✗ Discussions on private@ list
✗ ...
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/s...
References
✗ The Apache Software Foundation
✗ http://apache.org
✗ http://community.apache.org
✗ Apache ServiceMix
✗ http:/...
Credits
Special thanks to all the people who made and released these awesome resources for free:
✗ Past Apache Way slides ...
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
Upcoming SlideShare
Loading in …5
×

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

243 views

Published on

This is a talk from the 33rd Degree 4charity 2015 (http://2015.33degree.org/) conference

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 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. 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. 3. Views in this presentation are my personal views and do not necessarily reflect the views of the Apache Software Foundation.
  4. 4. 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
  5. 5. 1. What is it? The Apache Software Foundation
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. ASF – Org Chart PMC Members Committers Contributors Patchers/Buggers Users Development Members Officers Board Administrative PMC's (TLP's)
  11. 11. 2. How does it work? The Apache Way
  12. 12. 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
  13. 13. Basic Memes Peer-based Meritocracy Consensus decision making Responsible oversight Collaborative development
  14. 14. 3. Who does this work? Apache Projects
  15. 15. 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
  16. 16. 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”
  17. 17. 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!
  18. 18. Apache Projects
  19. 19. 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.
  20. 20. 4. Some sample projects? Apache ServiceMix & Co
  21. 21. 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
  22. 22. 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
  23. 23. ServiceMix Architecture
  24. 24. 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
  25. 25. 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) ✗ ….
  26. 26. ServiceMix Kernel Administration & monitoring ✗ Extensible Shell Console (local, remote, ssh) ✗ JMX ✗ Web Console ✗ Hawt.io ✗ Apache Karaf Decanter
  27. 27. 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,...
  28. 28. 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 ✗ ...
  29. 29. 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
  30. 30. Messaging & Routing ✗ More than 100 components http://camel.apache.org/components.html
  31. 31. 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
  32. 32. 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 ✗ ...
  33. 33. 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...
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. ServiceMix Tooling ✗ Integration with InteliJ, Eclipse, Netbeans ✗ JBoss Tools Integration Stack ✗ JBoss Developer Studio
  39. 39. ServiceMix Demo ✗ https://github.com/sobkowiak/smx-order-service-demo/tree/33degree4charity2015
  40. 40. 5. How to start? Contributing to ASF Projects
  41. 41. 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
  42. 42. 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!
  43. 43. 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?
  44. 44. 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.
  45. 45. We are more than a group of projects sharing a server, we are a community of developers and users. “
  46. 46. thanks! Any questions? You can find me at @ksobkowiak ksobkowiak@apache.org krzys.sobkowiak@gmail.com https://github.com/sobkowiak
  47. 47. 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
  48. 48. 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.

×