SlideShare una empresa de Scribd logo
1 de 17
Internship @ WSO2
P.P. Prabhath Suminda Pathirana
CSE, UOM
What I have done in these 24
weeks


Task 1

Writing test cases for migrating Axis2 from
Apache XMLSchema1 to Apache
XMLSchema2
What is Apache XMLSchema?
Apache XMLSchema is a lightweight Java object model
that can be used to manipulate and generate XML schema
representations. You can use it to read XML Schema (xsd)
files into memory and analyze or modify them, or to create
entirely new schemas from scratch.


Versions

    1.4.x - The version which axis2 is using

    2.0 - A major revision that takes advantage of
    the facilities of Java 1.5.
Considerations


    We cannot just migrate from 1.x to 2.0 because
    both have same namespaces and different APIs

    Many core modules of Axis2 uses XMLSchem1
    libraries and there are no tests has written to
    cover those usages.

    So the starting point of this migration we had to
    write tests cases for XMLSchema usage in
    Axis2 and then do the migration.
Progress


    I wrote test cases to cover XMLSchema1
    usages in axis2 for all the modules like kernel,
    codegen,etc.


    Now migration can be started directly.
Task2 - Writing integration tests
for WSO2 ESB.

    Added test coverage for
     − Iterate Mediator
     − Clone Mediator
     − Store Mediator
     − DB Lookup Mediator
     − Message Stores
     − Sevaral Patch automations

    Wrote test utilities for clarity framework to
    capture wire messages and generate SOAP
    messages of predifined sizes.
Task 3 - Performance improvements for
Axis2's POJO web services


• What is a POJO Web Service?

                       myService.aar
Current service invocation method


                                   Load service implementation
                                   class through java reflection   Service
                                  Check method and parameters
                                    needed through reflection
          Request
                      RPC
 Client
 Client              Message          Invoke service method
          Response
                     Receiver
                                        Serialize output




  In this method response time become considerably high due to
                       reflection overhead
Solution

Deployment Time

                                          myService
                          Deploy




myService.
                                       Support Classes
   aar            Axis2

                                         Op1Wrapper
                            Generate
                                                 Op2Wrapper

                                         Op3Wrapper

                                             MyServiceReciever
Solution Ct.

                                               SayHelloWrapper
Run Time
                                                    SayHelloParser()
                                                     SayHelloParser()

                                                                           Service

         Request: sayHello();
                                RPC Delegate
                                                   SayHelloEcecutor()
                                                    SayHelloEcecutor()
Client
Client                            Message
                                  Receiver
          Response: Hello


                                                   SayHelloSerializer()
                                                    SayHelloSerializer()
Demo
Performance Comparison

   n (c=20)   Current Method   New Method
              (req/second)     (req/second)
   100        602.9            1492.69
   1000       2345.09          2619.91
   10000      5636.28          6669.06
   50000      5842.15          6828.96


   n (c=50)   Current Method   New Method
              (req/second)     (req/second)
   100        794.12           2,368.15
   1000       3,183.93         4,590.14
   10000      5,639.33         6,608.76
   50000      5842.15          6828.96
Faced Challenges
• We did not had a detailed architecture design but a high
  level design at the start. So architecture had to be evolve
  with the project.
• We had to choose a byte code manipulation library to
  generate the code. So I had to play with different
  libraries as ASM, JavaAssist and choose one of them.
• Generated code cannot be debugged. They are in
  bytecode and no source available. So finding a simple
  error takes a lot of time.
• Java StaX was used to parse XML. So generating code
  for it is complex than generating for a high level library
  like Axiom
What I have learnt?

 Technologies

• Java       • XML          • SOAP     • JavaAssist   • ASM          • Jquery
• TestNG     • Reflection   • Stax     • ByteCode     • XML Unit     • Axiom

 Products

 • Axis2     • Syna    • WSO2        • Clarity        • WSO2 AS      • WSO2
               pse       ESB           Framework                       Carbon
 • Tomcat

 Tools

 • Eclipse   • Idea     • SOAP UI        • Jmeter      • JavaBench     • TCP
                                                                         Mon
 • Maven     • Ant      • Subversion     • Asmifire    • Jetty         • Jira
 • Find      • Sonar
   Bugs
What I have learnt? Ct.

• Experience of working on large brown field
  projects
• Software testing methodologies
• How to maintain good code quality
• How a organization operates
• Contributing to open source products
• Soft Skills
Questions
Thank you!

Más contenido relacionado

La actualidad más candente

whats new in java 8
whats new in java 8 whats new in java 8
whats new in java 8 Dori Waldman
 
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
 
Ruby/rails performance and profiling
Ruby/rails performance and profilingRuby/rails performance and profiling
Ruby/rails performance and profilingDanny Guinther
 
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
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Ontico
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011bobmcwhirter
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance TuningMinh Hoang
 
What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9Gal Marder
 
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
 
High performance network programming on the jvm oscon 2012
High performance network programming on the jvm   oscon 2012 High performance network programming on the jvm   oscon 2012
High performance network programming on the jvm oscon 2012 Erik Onnen
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersJean-Paul Azar
 

La actualidad más candente (20)

JavaOne 2011 Recap
JavaOne 2011 RecapJavaOne 2011 Recap
JavaOne 2011 Recap
 
whats new in java 8
whats new in java 8 whats new in java 8
whats new in java 8
 
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
 
Ruby/rails performance and profiling
Ruby/rails performance and profilingRuby/rails performance and profiling
Ruby/rails performance and profiling
 
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
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9
 
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
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
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
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
 
Ruby 2.4 Internals
Ruby 2.4 InternalsRuby 2.4 Internals
Ruby 2.4 Internals
 
20140925 rails pacific
20140925 rails pacific20140925 rails pacific
20140925 rails pacific
 
High performance network programming on the jvm oscon 2012
High performance network programming on the jvm   oscon 2012 High performance network programming on the jvm   oscon 2012
High performance network programming on the jvm oscon 2012
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced Producers
 

Destacado

PAPAMARKOS KP Chief Engineer's CV data and certification
PAPAMARKOS  KP Chief Engineer's CV data and certificationPAPAMARKOS  KP Chief Engineer's CV data and certification
PAPAMARKOS KP Chief Engineer's CV data and certificationKostas Papamarkos
 
The right to be punished
The right to be punishedThe right to be punished
The right to be punishedSpringer
 
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015Harry Ramza
 
Peningkatan profesionalitas tutor keaksaraan
Peningkatan profesionalitas tutor keaksaraanPeningkatan profesionalitas tutor keaksaraan
Peningkatan profesionalitas tutor keaksaraanyahyanursidik
 
Study guide security council rotaract global mun 2015
Study guide security council rotaract global mun 2015Study guide security council rotaract global mun 2015
Study guide security council rotaract global mun 2015Adrian Dan Pop
 
Pembentangan SDP Kumpulan 2
Pembentangan SDP Kumpulan 2Pembentangan SDP Kumpulan 2
Pembentangan SDP Kumpulan 2Benz TR
 
中部リウマチ Tcz tb上昇 20150831
中部リウマチ Tcz tb上昇 20150831中部リウマチ Tcz tb上昇 20150831
中部リウマチ Tcz tb上昇 20150831Yuji Hirano
 
Tinda diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Prov...
Tinda  diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Prov...Tinda  diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Prov...
Tinda diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Prov...Mr.Allah Dad Khan
 
Seo services in ahmedabad
Seo services in ahmedabadSeo services in ahmedabad
Seo services in ahmedabadpooja patel
 
Arum diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Provin...
Arum diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Provin...Arum diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Provin...
Arum diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Provin...Mr.Allah Dad Khan
 
Nuclear rocket engine reactor
Nuclear rocket engine reactorNuclear rocket engine reactor
Nuclear rocket engine reactorSpringer
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planningahmad bassiouny
 
Knowledge Management and Artificial Intelligence
Knowledge Management and Artificial IntelligenceKnowledge Management and Artificial Intelligence
Knowledge Management and Artificial IntelligenceAndrejkovics Zoltán
 
Pengertian kebudayaan menurut para ahli
Pengertian kebudayaan menurut para ahliPengertian kebudayaan menurut para ahli
Pengertian kebudayaan menurut para ahlijoko46
 

Destacado (20)

Internship Wso2
Internship Wso2Internship Wso2
Internship Wso2
 
PAPAMARKOS KP Chief Engineer's CV data and certification
PAPAMARKOS  KP Chief Engineer's CV data and certificationPAPAMARKOS  KP Chief Engineer's CV data and certification
PAPAMARKOS KP Chief Engineer's CV data and certification
 
The right to be punished
The right to be punishedThe right to be punished
The right to be punished
 
Centre for Conflict Management and Transformation (CCMT) Newsletter
Centre for Conflict Management and Transformation (CCMT) NewsletterCentre for Conflict Management and Transformation (CCMT) Newsletter
Centre for Conflict Management and Transformation (CCMT) Newsletter
 
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015
Opening Speech ICMA 2015 by President of PPI-UKM 2014 - 2015
 
Peningkatan profesionalitas tutor keaksaraan
Peningkatan profesionalitas tutor keaksaraanPeningkatan profesionalitas tutor keaksaraan
Peningkatan profesionalitas tutor keaksaraan
 
Study guide security council rotaract global mun 2015
Study guide security council rotaract global mun 2015Study guide security council rotaract global mun 2015
Study guide security council rotaract global mun 2015
 
Gladaveckan
GladaveckanGladaveckan
Gladaveckan
 
Pembentangan SDP Kumpulan 2
Pembentangan SDP Kumpulan 2Pembentangan SDP Kumpulan 2
Pembentangan SDP Kumpulan 2
 
Nieuwsbrief creative counseling sjoukje drenth bruintjes september 2015
Nieuwsbrief creative counseling sjoukje drenth bruintjes september 2015Nieuwsbrief creative counseling sjoukje drenth bruintjes september 2015
Nieuwsbrief creative counseling sjoukje drenth bruintjes september 2015
 
中部リウマチ Tcz tb上昇 20150831
中部リウマチ Tcz tb上昇 20150831中部リウマチ Tcz tb上昇 20150831
中部リウマチ Tcz tb上昇 20150831
 
Tinda diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Prov...
Tinda  diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Prov...Tinda  diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Prov...
Tinda diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Prov...
 
Seo services in ahmedabad
Seo services in ahmedabadSeo services in ahmedabad
Seo services in ahmedabad
 
Arum diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Provin...
Arum diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Provin...Arum diseases  A lecture on  ToT training of FFS  By Mr Allah Dad Khan Provin...
Arum diseases A lecture on ToT training of FFS By Mr Allah Dad Khan Provin...
 
Nuclear rocket engine reactor
Nuclear rocket engine reactorNuclear rocket engine reactor
Nuclear rocket engine reactor
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planning
 
Knowledge Management and Artificial Intelligence
Knowledge Management and Artificial IntelligenceKnowledge Management and Artificial Intelligence
Knowledge Management and Artificial Intelligence
 
Rpp frais xii
Rpp frais xiiRpp frais xii
Rpp frais xii
 
Siti khodijah
Siti khodijahSiti khodijah
Siti khodijah
 
Pengertian kebudayaan menurut para ahli
Pengertian kebudayaan menurut para ahliPengertian kebudayaan menurut para ahli
Pengertian kebudayaan menurut para ahli
 

Similar a My internship presentation at WSO2

Node.js Performance Case Study
Node.js Performance Case StudyNode.js Performance Case Study
Node.js Performance Case StudyFabian Frank
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011Lance Ball
 
Building Distributed Systems in Scala
Building Distributed Systems in ScalaBuilding Distributed Systems in Scala
Building Distributed Systems in ScalaAlex Payne
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)Rick Hightower
 
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)Rick Hightower
 
Advanced Server Integration with Data and Direct
Advanced Server Integration with Data and DirectAdvanced Server Integration with Data and Direct
Advanced Server Integration with Data and DirectSencha
 
Introducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaIntroducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaApurva Mehta
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵Amazon Web Services Korea
 
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache KafkaKafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafkaconfluent
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task QueueRichard Leland
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandboxElaine Van Bergen
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoTareque Hossain
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileAmazon Web Services Japan
 
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Rackspace Academy
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandboxElaine Van Bergen
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and AkkaYung-Lin Ho
 

Similar a My internship presentation at WSO2 (20)

Node.js Performance Case Study
Node.js Performance Case StudyNode.js Performance Case Study
Node.js Performance Case Study
 
Wt unit 3 server side technology
Wt unit 3 server side technologyWt unit 3 server side technology
Wt unit 3 server side technology
 
Wt unit 3 server side technology
Wt unit 3 server side technologyWt unit 3 server side technology
Wt unit 3 server side technology
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011
 
Building Distributed Systems in Scala
Building Distributed Systems in ScalaBuilding Distributed Systems in Scala
Building Distributed Systems in Scala
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
 
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
 
Advanced Server Integration with Data and Direct
Advanced Server Integration with Data and DirectAdvanced Server Integration with Data and Direct
Advanced Server Integration with Data and Direct
 
Introducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache KafkaIntroducing Exactly Once Semantics To Apache Kafka
Introducing Exactly Once Semantics To Apache Kafka
 
Typesafe spark- Zalando meetup
Typesafe spark- Zalando meetupTypesafe spark- Zalando meetup
Typesafe spark- Zalando meetup
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache KafkaKafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
Kafka Summit NYC 2017 - Introducing Exactly Once Semantics in Apache Kafka
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task Queue
 
Ceilosca
CeiloscaCeilosca
Ceilosca
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandbox
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
 
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandbox
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

My internship presentation at WSO2

  • 1. Internship @ WSO2 P.P. Prabhath Suminda Pathirana CSE, UOM
  • 2. What I have done in these 24 weeks Task 1 Writing test cases for migrating Axis2 from Apache XMLSchema1 to Apache XMLSchema2
  • 3. What is Apache XMLSchema? Apache XMLSchema is a lightweight Java object model that can be used to manipulate and generate XML schema representations. You can use it to read XML Schema (xsd) files into memory and analyze or modify them, or to create entirely new schemas from scratch. Versions  1.4.x - The version which axis2 is using  2.0 - A major revision that takes advantage of the facilities of Java 1.5.
  • 4. Considerations  We cannot just migrate from 1.x to 2.0 because both have same namespaces and different APIs  Many core modules of Axis2 uses XMLSchem1 libraries and there are no tests has written to cover those usages.  So the starting point of this migration we had to write tests cases for XMLSchema usage in Axis2 and then do the migration.
  • 5. Progress  I wrote test cases to cover XMLSchema1 usages in axis2 for all the modules like kernel, codegen,etc.  Now migration can be started directly.
  • 6. Task2 - Writing integration tests for WSO2 ESB.  Added test coverage for − Iterate Mediator − Clone Mediator − Store Mediator − DB Lookup Mediator − Message Stores − Sevaral Patch automations  Wrote test utilities for clarity framework to capture wire messages and generate SOAP messages of predifined sizes.
  • 7. Task 3 - Performance improvements for Axis2's POJO web services • What is a POJO Web Service? myService.aar
  • 8. Current service invocation method Load service implementation class through java reflection Service Check method and parameters needed through reflection Request RPC Client Client Message Invoke service method Response Receiver Serialize output In this method response time become considerably high due to reflection overhead
  • 9. Solution Deployment Time myService Deploy myService. Support Classes aar Axis2 Op1Wrapper Generate Op2Wrapper Op3Wrapper MyServiceReciever
  • 10. Solution Ct. SayHelloWrapper Run Time SayHelloParser() SayHelloParser() Service Request: sayHello(); RPC Delegate SayHelloEcecutor() SayHelloEcecutor() Client Client Message Receiver Response: Hello SayHelloSerializer() SayHelloSerializer()
  • 11. Demo
  • 12. Performance Comparison n (c=20) Current Method New Method (req/second) (req/second) 100 602.9 1492.69 1000 2345.09 2619.91 10000 5636.28 6669.06 50000 5842.15 6828.96 n (c=50) Current Method New Method (req/second) (req/second) 100 794.12 2,368.15 1000 3,183.93 4,590.14 10000 5,639.33 6,608.76 50000 5842.15 6828.96
  • 13. Faced Challenges • We did not had a detailed architecture design but a high level design at the start. So architecture had to be evolve with the project. • We had to choose a byte code manipulation library to generate the code. So I had to play with different libraries as ASM, JavaAssist and choose one of them. • Generated code cannot be debugged. They are in bytecode and no source available. So finding a simple error takes a lot of time. • Java StaX was used to parse XML. So generating code for it is complex than generating for a high level library like Axiom
  • 14. What I have learnt? Technologies • Java • XML • SOAP • JavaAssist • ASM • Jquery • TestNG • Reflection • Stax • ByteCode • XML Unit • Axiom Products • Axis2 • Syna • WSO2 • Clarity • WSO2 AS • WSO2 pse ESB Framework Carbon • Tomcat Tools • Eclipse • Idea • SOAP UI • Jmeter • JavaBench • TCP Mon • Maven • Ant • Subversion • Asmifire • Jetty • Jira • Find • Sonar Bugs
  • 15. What I have learnt? Ct. • Experience of working on large brown field projects • Software testing methodologies • How to maintain good code quality • How a organization operates • Contributing to open source products • Soft Skills