SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à What I did in My Internship @ WSO2 (20)

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
Introduction to Amazon EC2 SpotIntroduction 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?
 

Dernier

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17Celine George
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWQuiz Club NITW
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxAnupam32727
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 

Dernier (20)

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITW
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 

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