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 - Open Source Day 2015

808 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015

  1. 1. Integrate (Yourself) with the Apache Software Foundation Krzysztof Sobkowiak V.P. Apache ServiceMix & ASF Member
  2. 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. 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. 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. 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. 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
  7. 7. The ASF by Numbers 9 Board Members ASF
  8. 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. 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. 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. 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. 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. 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. 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?
  15. 15. Apache Projects
  16. 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. 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. 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
  19. 19. ServiceMix Architecture SMX
  20. 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. 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
  22. 22. ServiceMix Kernel AdministrationAdministration ➢ Extensible Shell Console (local, remote, ssh) ➢ JMX ➢ Web Console ➢ Hawt.io
  23. 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. 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
  25. 25. Messging and Routing ➢ More than 100 components http://camel.apache.org/components.html
  26. 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
  27. 27. Messging and Routing
  28. 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. 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. 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. 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. 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
  33. 33. Federated SOA with Apache ServiceMix Java Magazin 7.2014
  34. 34. ServiceMix Tooling ➢ Integration with InteliJ, Eclipse, Netbeans ➢ JBoss Tools Integration Stack ➢ JBoss Developer Studio
  35. 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. 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. 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. 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. 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. 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. 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.
  42. 42. ➢ 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 References ➢ 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
  43. 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

×