SlideShare a Scribd company logo
1 of 52
Download to read offline
Andun S.L. Gunawardana
Software Engineering Intern
Application Server Team
Development Technology Group
WSO2 Lanka (Pvt) Ltd
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
Entitlement Servlet Filter Feature




   Requirement :
    Providing XACML policy based fine grained
    authorization to webapp requests, using WSO2
    Identity Server.
Entitlement Servlet Filter Feature

   Step sequence to take an Entitlement
    Decision :
Entitlement Servlet Filter Feature



   Components Added to the Carbon
    Platform :
    • Entitlement PEP Proxy Component
    • Entitlement Servlet Filter Component
    • XACML Filter Feature
    • Sample for WSO2 Application Server 5.0.1
Entitlement Servlet Filter Feature



   Components Added to the Carbon
    Platform :
    • Entitlement PEP Proxy Component
    • Entitlement Servlet Filter Component
    • XACML Filter Feature
    • Sample for WSO2 Application Server 5.0.1
Entitlement Servlet Filter Feature




   Use of Entitlement Proxy Component :
    ◦ Act as a proxy for communication between
      WSO2 IS(PDP) and PEP.
    ◦ Entitlement Servlet Filter and the Entitlement
      Mediator use this new component.
Entitlement Servlet Filter Feature

   Entitlement Proxy Component :
Entitlement Servlet Filter Feature
   Why Entitlement Proxy Component ?
    ◦ Make User Life Easy,
       User have to invoke a method in the proxy to get a entitlement
        decision.
       User don't have to implement XACML request related things to
        use a XACML policy hosted in IS. The proxy hides those
        complexity from user.
       User can use SOAP, Thrift or JSON to PDP PEP communication
        without worrying about the implementations.
    ◦ Entitlement requests can be sent either using XACML 3.0
      or XACML 2.0.
    ◦ Several PEPs can use same Proxy to communicate with
      several PDPs(WSO2 IS instances) at the same time.
Entitlement Servlet Filter Feature



   Components Added to the Carbon
    Platform :
    • Entitlement PEP Proxy Component
    • Entitlement Servlet Filter Component
    • XACML Filter Feature
    • Sample for WSO2 Application Server 5.0.1
Entitlement Servlet Filter Feature


   Use of Entitlement Servlet Filter
    Component :
    ◦ Act as the PEP.
    ◦ Checking the authorization of requests which are
      coming for webapps which are hosted in WSO2
      Application Server or Any other WebApp
      container.
Entitlement Servlet Filter Feature
   Entitlement Servlet Filter Component :
Entitlement Servlet Filter Feature


   How to use Entitlement Servlet Filter
    Component :
    ◦ The webapp have to engage the Entitlement Servlet
      filter using the web.xml.
    ◦ Necessary parameters to initialize the PEP proxy
      have to be provided via the web.xml
    ◦ The webapp must have a J2EE authentication
      mechanism.
Entitlement Servlet Filter Feature
 How to use Entitlement Servlet Filter
  Component :
Entitlement Servlet Filter Feature



   Components Added to the Carbon
    Platform :
    • Entitlement PEP Proxy Component
    • Entitlement Servlet Filter Component
    • XACML Filter Feature
    • Sample for WSO2 Application Server 5.0.1
Entitlement Servlet Filter Feature




 Entitlement Servlet Filter Feature can be found in the
  Carbon 4.0.2 P2 repo.
 Entitlement Servlet Filter Feature ships with
  Application Server 5.0.1 with a Sample to illustrate it’s
  functionality.
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
RawXSLT Mediator



   Requirement :
    ◦ Creating a performance improved XSLT
      transformation Mediator.
    ◦ Do XSLT transformations in the Binary Relay Mode of
      the WSO2 ESB.
RawXSLT Mediator



   Weaknesses of the Existing XSLT
    Mediator :
    ◦ It build AXIOM data model for each message. So bit large
      messages will add hugh performance drawback.
    ◦ To overcome that Stream Level Transformation is
      suggested, without creating AXIOM data model.
RawXSLT Mediator
   How RawXSLT Mediator Works ?
RawXSLT Mediator
   Improvement :
                 Requests Handled Per Second : Message Size 500B
    3,000.00


    2,500.00


    2,000.00


    1,500.00


    1,000.00


     500.00


       0.00
               n =5000,   n =2500,   n =1250,   n =625,     n =250,   n =125,   n =50,
                 c=10       c=20       c=40      c=80        c=200     c=400    c=1000
                      Normal XSLT Mediator                RawXSLT Mediator
RawXSLT Mediator
   Improvement :
                   Requests Handled Per Second : Message Size 1K
    2,000.00

    1,800.00

    1,600.00

    1,400.00

    1,200.00

    1,000.00

     800.00

     600.00

     400.00

     200.00

       0.00
               n =5000,   n =2500,   n =1250,   n =625,     n =250,   n =125,   n =50,
                 c=10       c=20       c=40      c=80        c=200     c=400    c=1000
                      Normal XSLT Mediator                RawXSLT Mediator
RawXSLT Mediator
   Improvement :
                   Requests Handled Per Second : Message Size 5K
    1,200.00


    1,000.00


     800.00


     600.00


     400.00


     200.00


       0.00
               n =5000,   n =2500,   n =1250,   n =625,     n =250,   n =125,   n =50,
                 c=10       c=20       c=40      c=80        c=200     c=400    c=1000
                      Normal XSLT Mediator                RawXSLT Mediator
RawXSLT Mediator
   Improvement :
                 Requests Handled Per Second : Message Size 10K
    600.00



    500.00



    400.00



    300.00



    200.00



    100.00



      0.00
             n =5000, c=10 n =2500, c=20 n =1250, c=40 n =250, c=200 n =50, c=1000
                     Normal XSLT Mediator          RawXSLT Mediator
RawXSLT Mediator



   Limitations of the RawXSLT Mediator :
    ◦ It can be only used in Binary Relay Mode of ESB.
    ◦ The XSLT transformation sheets have mandatory
      conditions. So flexibility of the transformation is
      limited.
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
New XPATH Parser




   Requirement :
    ◦ Create a XAPTH parser which will suite to parse
      simple XPATH expressions with better
      performance.
New XPATH Parser


   Weaknesses of the Current XPATH
    Parser :
    ◦ It reads and build full XML tree for parse XPATH
      which can be parsed without building the
      complete tree.
    ◦ That is a big performance drawback, so new
      XPATH parser is suggested which can parse
      simple XPATH expression with better
      performance using Streams of XML and on top
      of AXIOM.
New XPATH Parser
   Lets XPATH : /data/book/author/name with the
    following XML,
Entitlement Servlet Filter Feature


   New implementation of XPATH Parser:
    ◦ Create small components which are responsible
      to do simple operations to AXIOM data model.
    ◦ For Example,
      Component to return XML node if it matches some
       conditions.
      Component to return set of children of a XML node if it
       matches some conditions.
      Component to return an attribute of a XML node.
New XPATH Parser
   Using those created small components we can get a
    result of a XPATH expression,
New XPATH Parser

   New implementation of XPATH Parser:
    ◦ So the new XAPTH parser will do the following,
    ◦ When we give a XPATH expression to the parser
      it will create the component chain which will do
      the processing to get the result of the XAPTH.
    ◦ When the parsing happens, the input XML is
      passed though the component chain and output
      the result.
    ◦ To create the component chain we have analyze
      the given XPATH expression.
    ◦ For that We use Antlr Parser Generator.
New XPATH Parser
   The Syntax Tree For a XAPTH Using Antlr,
New XPATH Parser
   Improvement :
                Requests Handled Per Second : Message Size 10K
    4,000.00

    3,500.00

    3,000.00

    2,500.00

    2,000.00

    1,500.00

    1,000.00

     500.00

       0.00
               n =50,   n =100,   n =200,   n =400,   n =800,    n =2000,
               c=2000   c=1000     c=500     c=250     c=125       c=50
                         Synapse XPATH      New XPATH
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
Refactoring App Server Samples

 ◦ Adding Apache Ant Build Files to the APP Server
   samples, with more flexibility to run
   independently.
 ◦ Added run scripts to samples which will make
   the samples complete.
 ◦ Structuring samples with necessary documents.
 ◦ Creating Wiki Docs for the Samples.
 ◦ Refactored JAX-WS & JAX-RS samples to run
   with in the current platform.
Projects Within Internship
  Main Projects:
  Entitlement Servlet Filter Feature
  RawXSLT Mediator for WSO2 ESB
  New XPATH Parser for WSO2 ESB

 Other Projects:
  Refactoring WSO2 Application Server Samples
  Test Automation Hackathon
Test Automation Hackathon

 ◦ Wrote number of test cases to WSO2 ESB.
   Mediators, Endpoints,VFS Tranport
 ◦ Added improvement to Clarity Test Framework.
   REST Support
   Failover Test Support
   Load Balance Endpoint Test Support
 ◦ Added a alternative mechanism to check ESB logs
   using custom Mediator. This required because
   ESB’s Log Reading Functionality is broken.
Projects Within Internship
    Related Links :
     ◦ http://www.insightforfuture.blogspot.com/2012/09/xacml-policy-definition-
       pointpdp-proxy.html
     ◦ http://www.insightforfuture.blogspot.com/2012/07/providing-xacml-fine-
       grained.html
     ◦ http://www.insightforfuture.blogspot.com/2012/07/providing-xacml-fine-
       grained_22.html
     ◦ http://docs.wso2.org/wiki/display/AS501/Entitlement+Servlet+Filter+Sample
     ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/components/id
       entity/org.wso2.carbon.identity.entitlement.proxy/
     ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/components/id
       entity/org.wso2.carbon.identity.entitlement.filter/
     ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/features/identi
       ty/xacml/org.wso2.carbon.identity.xacml.filter.feature/
     ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/products/as/5.
       0.1/modules/samples/product/EntitlementFilter/
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
WSO2 Specific

 ◦   Application Server
 ◦   ESB
 ◦   Identity Server
 ◦   Carbon Platform
 ◦   Clarity Framework
 ◦   Source Code Management
 ◦   Release Cycle
 ◦   Support Strategy
 ◦   Developer Studio
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
Technologies

 ◦   JAVA : In-depth Use, Libraries
 ◦   SOAP
 ◦   XACML
 ◦   XPATH/XSLT
 ◦   JSP
 ◦   OSGI
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
Products & Tools

 ◦   Apache Axis2     ◦   Sonar
 ◦   Apache Synapse   ◦   FindBugs
 ◦   Apache Tomcat    ◦   JConsole
 ◦   Saxon            ◦   JMeter
 ◦   Antlr            ◦   JProfiler
 ◦   AXIOM            ◦   TCPMon
 ◦   Intellij IDEA    ◦   Bamboo
 ◦   Maven            ◦   JIRA
 ◦   Ant              ◦   SVN
 ◦   SOAP UI
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
Software Engineering Principles

 ◦   Service Oriented Architecture
 ◦   Cloud Computing
 ◦   Agile Development Process
 ◦   Customer Requirement Analysis
 ◦   Documentation
 ◦   Software Evolution
 ◦   Testing and Quality Assurance
 ◦   Providing Support to Customers
What I Learn at WSO2

 •   WSO2 Specific
 •   Technologies
 •   Products & Tools
 •   Software Engineering Principals
 •   Best Practices
Best Practices

 ◦   Code Quality
 ◦   Developer Testing
 ◦   Performance Testing
 ◦   Documentation
 ◦   Version Controlling
 ◦   Discussing Ideas
Thank You

More Related Content

What's hot

What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9Gal Marder
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011bobmcwhirter
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Ontico
 
Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsSerge Smetana
 
Rails Application Optimization Techniques & Tools
Rails Application Optimization Techniques & ToolsRails Application Optimization Techniques & Tools
Rails Application Optimization Techniques & Toolsguest05c09d
 
Apache Kafka DC Meetup: Replicating DB Binary Logs to Kafka
Apache Kafka DC Meetup: Replicating DB Binary Logs to KafkaApache Kafka DC Meetup: Replicating DB Binary Logs to Kafka
Apache Kafka DC Meetup: Replicating DB Binary Logs to KafkaMark Bittmann
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance TuningMinh Hoang
 
Jvm Performance Tunning
Jvm Performance TunningJvm Performance Tunning
Jvm Performance Tunningguest1f2740
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Applicationguest1f2740
 
When Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torqueboxrockyjaiswal
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey J On The Beach
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의Terry Cho
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
 
Practicing Continuous Deployment
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deploymentzeeg
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on InfinispanLance Ball
 

What's hot (20)

What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
 
Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails Applications
 
Rails Application Optimization Techniques & Tools
Rails Application Optimization Techniques & ToolsRails Application Optimization Techniques & Tools
Rails Application Optimization Techniques & Tools
 
Apache Kafka DC Meetup: Replicating DB Binary Logs to Kafka
Apache Kafka DC Meetup: Replicating DB Binary Logs to KafkaApache Kafka DC Meetup: Replicating DB Binary Logs to Kafka
Apache Kafka DC Meetup: Replicating DB Binary Logs to Kafka
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Jvm Performance Tunning
Jvm Performance TunningJvm Performance Tunning
Jvm Performance Tunning
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
 
When Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torquebox
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey
 
Ruby 2.4 Internals
Ruby 2.4 InternalsRuby 2.4 Internals
Ruby 2.4 Internals
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
 
20140925 rails pacific
20140925 rails pacific20140925 rails pacific
20140925 rails pacific
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Practicing Continuous Deployment
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deployment
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
 

Similar to What I did in My Internship @ WSO2

Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Amazon Web Services
 
Oracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityOracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityLudovico Caldara
 
Building Continuous Application with Structured Streaming and Real-Time Data ...
Building Continuous Application with Structured Streaming and Real-Time Data ...Building Continuous Application with Structured Streaming and Real-Time Data ...
Building Continuous Application with Structured Streaming and Real-Time Data ...Databricks
 
Nyc big datagenomics-pizarroa-sept2017
Nyc big datagenomics-pizarroa-sept2017Nyc big datagenomics-pizarroa-sept2017
Nyc big datagenomics-pizarroa-sept2017delagoya
 
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...HostedbyConfluent
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5Peter Lawrey
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...MLconf
 
VMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld 2013: Extreme Performance Series: vCenter of the UniverseVMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld 2013: Extreme Performance Series: vCenter of the UniverseVMworld
 
Applying Java 8 Idioms to Existing Code
Applying Java 8 Idioms to Existing CodeApplying Java 8 Idioms to Existing Code
Applying Java 8 Idioms to Existing CodeC4Media
 
Netty 4-based RPC System Development
Netty 4-based RPC System DevelopmentNetty 4-based RPC System Development
Netty 4-based RPC System DevelopmentAllan Huang
 
Web services Hand_Out
Web services Hand_OutWeb services Hand_Out
Web services Hand_OutKumar Gupta
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemDatabricks
 
Jmeter interviewquestions
Jmeter interviewquestionsJmeter interviewquestions
Jmeter interviewquestionsgirichinna27
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admJeffrey Nunn
 
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogicRakuten Group, Inc.
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxthaond2
 
Day 4 - Cloud Migration - But How?
Day 4 - Cloud Migration - But How?Day 4 - Cloud Migration - But How?
Day 4 - Cloud Migration - But How?Amazon Web Services
 

Similar to What I did in My Internship @ WSO2 (20)

Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 SpotIntroduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot
 
Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot Introduction to Amazon EC2 Spot
Introduction to Amazon EC2 Spot
 
Oracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityOracle Drivers configuration for High Availability
Oracle Drivers configuration for High Availability
 
Building Continuous Application with Structured Streaming and Real-Time Data ...
Building Continuous Application with Structured Streaming and Real-Time Data ...Building Continuous Application with Structured Streaming and Real-Time Data ...
Building Continuous Application with Structured Streaming and Real-Time Data ...
 
Nyc big datagenomics-pizarroa-sept2017
Nyc big datagenomics-pizarroa-sept2017Nyc big datagenomics-pizarroa-sept2017
Nyc big datagenomics-pizarroa-sept2017
 
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
 
VMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld 2013: Extreme Performance Series: vCenter of the UniverseVMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld 2013: Extreme Performance Series: vCenter of the Universe
 
Applying Java 8 Idioms to Existing Code
Applying Java 8 Idioms to Existing CodeApplying Java 8 Idioms to Existing Code
Applying Java 8 Idioms to Existing Code
 
Netty 4-based RPC System Development
Netty 4-based RPC System DevelopmentNetty 4-based RPC System Development
Netty 4-based RPC System Development
 
Web services Hand_Out
Web services Hand_OutWeb services Hand_Out
Web services Hand_Out
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
 
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
 
Jmeter interviewquestions
Jmeter interviewquestionsJmeter interviewquestions
Jmeter interviewquestions
 
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago adm
 
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptx
 
Day 4 - Cloud Migration - But How?
Day 4 - Cloud Migration - But How?Day 4 - Cloud Migration - But How?
Day 4 - Cloud Migration - But How?
 

Recently uploaded

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 

Recently uploaded (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 

What I did in My Internship @ WSO2

  • 1. Andun S.L. Gunawardana Software Engineering Intern Application Server Team Development Technology Group WSO2 Lanka (Pvt) Ltd
  • 2. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 3. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 4. Entitlement Servlet Filter Feature  Requirement : Providing XACML policy based fine grained authorization to webapp requests, using WSO2 Identity Server.
  • 5. Entitlement Servlet Filter Feature  Step sequence to take an Entitlement Decision :
  • 6. Entitlement Servlet Filter Feature  Components Added to the Carbon Platform : • Entitlement PEP Proxy Component • Entitlement Servlet Filter Component • XACML Filter Feature • Sample for WSO2 Application Server 5.0.1
  • 7. Entitlement Servlet Filter Feature  Components Added to the Carbon Platform : • Entitlement PEP Proxy Component • Entitlement Servlet Filter Component • XACML Filter Feature • Sample for WSO2 Application Server 5.0.1
  • 8. Entitlement Servlet Filter Feature  Use of Entitlement Proxy Component : ◦ Act as a proxy for communication between WSO2 IS(PDP) and PEP. ◦ Entitlement Servlet Filter and the Entitlement Mediator use this new component.
  • 9. Entitlement Servlet Filter Feature  Entitlement Proxy Component :
  • 10. Entitlement Servlet Filter Feature  Why Entitlement Proxy Component ? ◦ Make User Life Easy,  User have to invoke a method in the proxy to get a entitlement decision.  User don't have to implement XACML request related things to use a XACML policy hosted in IS. The proxy hides those complexity from user.  User can use SOAP, Thrift or JSON to PDP PEP communication without worrying about the implementations. ◦ Entitlement requests can be sent either using XACML 3.0 or XACML 2.0. ◦ Several PEPs can use same Proxy to communicate with several PDPs(WSO2 IS instances) at the same time.
  • 11. Entitlement Servlet Filter Feature  Components Added to the Carbon Platform : • Entitlement PEP Proxy Component • Entitlement Servlet Filter Component • XACML Filter Feature • Sample for WSO2 Application Server 5.0.1
  • 12. Entitlement Servlet Filter Feature  Use of Entitlement Servlet Filter Component : ◦ Act as the PEP. ◦ Checking the authorization of requests which are coming for webapps which are hosted in WSO2 Application Server or Any other WebApp container.
  • 13. Entitlement Servlet Filter Feature  Entitlement Servlet Filter Component :
  • 14. Entitlement Servlet Filter Feature  How to use Entitlement Servlet Filter Component : ◦ The webapp have to engage the Entitlement Servlet filter using the web.xml. ◦ Necessary parameters to initialize the PEP proxy have to be provided via the web.xml ◦ The webapp must have a J2EE authentication mechanism.
  • 15. Entitlement Servlet Filter Feature  How to use Entitlement Servlet Filter Component :
  • 16. Entitlement Servlet Filter Feature  Components Added to the Carbon Platform : • Entitlement PEP Proxy Component • Entitlement Servlet Filter Component • XACML Filter Feature • Sample for WSO2 Application Server 5.0.1
  • 17. Entitlement Servlet Filter Feature  Entitlement Servlet Filter Feature can be found in the Carbon 4.0.2 P2 repo.  Entitlement Servlet Filter Feature ships with Application Server 5.0.1 with a Sample to illustrate it’s functionality.
  • 18. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 19. RawXSLT Mediator  Requirement : ◦ Creating a performance improved XSLT transformation Mediator. ◦ Do XSLT transformations in the Binary Relay Mode of the WSO2 ESB.
  • 20. RawXSLT Mediator  Weaknesses of the Existing XSLT Mediator : ◦ It build AXIOM data model for each message. So bit large messages will add hugh performance drawback. ◦ To overcome that Stream Level Transformation is suggested, without creating AXIOM data model.
  • 21. RawXSLT Mediator  How RawXSLT Mediator Works ?
  • 22. RawXSLT Mediator  Improvement : Requests Handled Per Second : Message Size 500B 3,000.00 2,500.00 2,000.00 1,500.00 1,000.00 500.00 0.00 n =5000, n =2500, n =1250, n =625, n =250, n =125, n =50, c=10 c=20 c=40 c=80 c=200 c=400 c=1000 Normal XSLT Mediator RawXSLT Mediator
  • 23. RawXSLT Mediator  Improvement : Requests Handled Per Second : Message Size 1K 2,000.00 1,800.00 1,600.00 1,400.00 1,200.00 1,000.00 800.00 600.00 400.00 200.00 0.00 n =5000, n =2500, n =1250, n =625, n =250, n =125, n =50, c=10 c=20 c=40 c=80 c=200 c=400 c=1000 Normal XSLT Mediator RawXSLT Mediator
  • 24. RawXSLT Mediator  Improvement : Requests Handled Per Second : Message Size 5K 1,200.00 1,000.00 800.00 600.00 400.00 200.00 0.00 n =5000, n =2500, n =1250, n =625, n =250, n =125, n =50, c=10 c=20 c=40 c=80 c=200 c=400 c=1000 Normal XSLT Mediator RawXSLT Mediator
  • 25. RawXSLT Mediator  Improvement : Requests Handled Per Second : Message Size 10K 600.00 500.00 400.00 300.00 200.00 100.00 0.00 n =5000, c=10 n =2500, c=20 n =1250, c=40 n =250, c=200 n =50, c=1000 Normal XSLT Mediator RawXSLT Mediator
  • 26. RawXSLT Mediator  Limitations of the RawXSLT Mediator : ◦ It can be only used in Binary Relay Mode of ESB. ◦ The XSLT transformation sheets have mandatory conditions. So flexibility of the transformation is limited.
  • 27. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 28. New XPATH Parser  Requirement : ◦ Create a XAPTH parser which will suite to parse simple XPATH expressions with better performance.
  • 29. New XPATH Parser  Weaknesses of the Current XPATH Parser : ◦ It reads and build full XML tree for parse XPATH which can be parsed without building the complete tree. ◦ That is a big performance drawback, so new XPATH parser is suggested which can parse simple XPATH expression with better performance using Streams of XML and on top of AXIOM.
  • 30. New XPATH Parser  Lets XPATH : /data/book/author/name with the following XML,
  • 31. Entitlement Servlet Filter Feature  New implementation of XPATH Parser: ◦ Create small components which are responsible to do simple operations to AXIOM data model. ◦ For Example,  Component to return XML node if it matches some conditions.  Component to return set of children of a XML node if it matches some conditions.  Component to return an attribute of a XML node.
  • 32. New XPATH Parser  Using those created small components we can get a result of a XPATH expression,
  • 33. New XPATH Parser  New implementation of XPATH Parser: ◦ So the new XAPTH parser will do the following, ◦ When we give a XPATH expression to the parser it will create the component chain which will do the processing to get the result of the XAPTH. ◦ When the parsing happens, the input XML is passed though the component chain and output the result. ◦ To create the component chain we have analyze the given XPATH expression. ◦ For that We use Antlr Parser Generator.
  • 34. New XPATH Parser  The Syntax Tree For a XAPTH Using Antlr,
  • 35. New XPATH Parser  Improvement : Requests Handled Per Second : Message Size 10K 4,000.00 3,500.00 3,000.00 2,500.00 2,000.00 1,500.00 1,000.00 500.00 0.00 n =50, n =100, n =200, n =400, n =800, n =2000, c=2000 c=1000 c=500 c=250 c=125 c=50 Synapse XPATH New XPATH
  • 36. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 37. Refactoring App Server Samples ◦ Adding Apache Ant Build Files to the APP Server samples, with more flexibility to run independently. ◦ Added run scripts to samples which will make the samples complete. ◦ Structuring samples with necessary documents. ◦ Creating Wiki Docs for the Samples. ◦ Refactored JAX-WS & JAX-RS samples to run with in the current platform.
  • 38. Projects Within Internship Main Projects: Entitlement Servlet Filter Feature RawXSLT Mediator for WSO2 ESB New XPATH Parser for WSO2 ESB Other Projects: Refactoring WSO2 Application Server Samples Test Automation Hackathon
  • 39. Test Automation Hackathon ◦ Wrote number of test cases to WSO2 ESB.  Mediators, Endpoints,VFS Tranport ◦ Added improvement to Clarity Test Framework.  REST Support  Failover Test Support  Load Balance Endpoint Test Support ◦ Added a alternative mechanism to check ESB logs using custom Mediator. This required because ESB’s Log Reading Functionality is broken.
  • 40. Projects Within Internship  Related Links : ◦ http://www.insightforfuture.blogspot.com/2012/09/xacml-policy-definition- pointpdp-proxy.html ◦ http://www.insightforfuture.blogspot.com/2012/07/providing-xacml-fine- grained.html ◦ http://www.insightforfuture.blogspot.com/2012/07/providing-xacml-fine- grained_22.html ◦ http://docs.wso2.org/wiki/display/AS501/Entitlement+Servlet+Filter+Sample ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/components/id entity/org.wso2.carbon.identity.entitlement.proxy/ ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/components/id entity/org.wso2.carbon.identity.entitlement.filter/ ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/features/identi ty/xacml/org.wso2.carbon.identity.xacml.filter.feature/ ◦ http://wso2.org/svn/browse/wso2/carbon/platform/branches/4.0.0/products/as/5. 0.1/modules/samples/product/EntitlementFilter/
  • 41. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 42. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 43. WSO2 Specific ◦ Application Server ◦ ESB ◦ Identity Server ◦ Carbon Platform ◦ Clarity Framework ◦ Source Code Management ◦ Release Cycle ◦ Support Strategy ◦ Developer Studio
  • 44. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 45. Technologies ◦ JAVA : In-depth Use, Libraries ◦ SOAP ◦ XACML ◦ XPATH/XSLT ◦ JSP ◦ OSGI
  • 46. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 47. Products & Tools ◦ Apache Axis2 ◦ Sonar ◦ Apache Synapse ◦ FindBugs ◦ Apache Tomcat ◦ JConsole ◦ Saxon ◦ JMeter ◦ Antlr ◦ JProfiler ◦ AXIOM ◦ TCPMon ◦ Intellij IDEA ◦ Bamboo ◦ Maven ◦ JIRA ◦ Ant ◦ SVN ◦ SOAP UI
  • 48. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 49. Software Engineering Principles ◦ Service Oriented Architecture ◦ Cloud Computing ◦ Agile Development Process ◦ Customer Requirement Analysis ◦ Documentation ◦ Software Evolution ◦ Testing and Quality Assurance ◦ Providing Support to Customers
  • 50. What I Learn at WSO2 • WSO2 Specific • Technologies • Products & Tools • Software Engineering Principals • Best Practices
  • 51. Best Practices ◦ Code Quality ◦ Developer Testing ◦ Performance Testing ◦ Documentation ◦ Version Controlling ◦ Discussing Ideas