Your SlideShare is downloading. ×
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
WSO2 Internship Report
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WSO2 Internship Report

1,059

Published on

This report contains the training details and project details that I have done in the internship at WSO2

This report contains the training details and project details that I have done in the internship at WSO2

Published in: Engineering, Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,059
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNIVERSITY OF MORATUWA Faculty of Engineering Non-GPA Module 3992: Industrial Training TRAINING REPORT WSO2 Lanka (pvt) Ltd. From 18.11.2013 to 09.05.2014 Wickramarathna D.G.U.I 100590G Department of Computer Science and Engineering Date of Submission: 12th May 2014
  • 2. Page | ii PREFACE This document is presented at the end of the internship period I had from 18th November 2013 to 09th May 2014 at WSO2 Lanka (pvt) Ltd, No 20, Palm Grove, Colombo 03 as a trainee software engineer. Document is arranged as three main chapters that explain the different aspect of the training experience I have gained through my internship period. The first chapter is about the detailed information about the training establishment, it is essential to have a good understanding about functionalities of the company, the procedure, the organizational hierarchy, culture of the company in order to getting things done in the correct way. To give maximum contribution while learning from the company I have to have a good understanding on the business activities, technologies, standards and strategies they follow. The second chapter is dedicated for the experience I had in internship. This chapter has main three categories as the training experience I had in fast track program, QA portal intern project and the experience in the product team. In the fast track program section describes the new technologies that I have learnt and experienced such as XML,Web services, Axis2, WSO2 products and etc. and some implementation of those technologies as exercises. QA portal project section includes my experience in the implementation of QA portal project, the technologies I have used , planning of the project and etc. Working with product team section includes the detailed information about the product team I worked with the WSO2 CEP and the my contribution to the team during my internship. Also it includes the technical experience I gained in developing my component and the detailed description about the component that I have developed. In addition to this technical experience second chapter includes the non technical experience I have gained in my internship period. In the third chapter I have discussed the effectiveness and personal feelings towards the training program and the internship in WSO2, and also it includes how good WSO2 as a training establishment.
  • 3. Page | iii ACKNOWLEDGEMENT On my report about internship, it’s my privilege to thank all the people who contributed to make this internship period a great and unforgettable experience in my life. If not for the commitment of them from arranging the training establishment to the end of entire 6 months period, it would not be this much effective. First of all I would like to thank Dr Chandana Gamage the head of the department of Computer Science and Engineering for the effort taken to provide us with training establishment. And I should specially thank Dr Dilum Bandara, industrial coordinator of us who put a lot of effort to find training establishment for all the students in the department of Computer Science and Engineering. And following an very effective and fair procedure to select training establishment for students. And also I would like to thank all the staff members of the Department of Computer Science and engineering, who contributing by visiting our training establishment and evaluating our experiences. Also I’m grateful to Mr Nihal Wijewickrama , the director of Industrial training division, University of Moratuwa and all the staff members of Industrial training division and NAITA (National Apprentice and Industrial Training Authority) officials for providing opportunity to have a great internship period and examine the quality of training. I should be very thankful to Dr Sanjiwa Weeravarana, CEO and Founder of WSO2 for giving us this invaluable opportunity to work in a globally recognized company with in friendly environment with its unique culture.Then I would like to thank Mr. Shammi Jayasinghe, Mr. Dushan Abeyruwan and Mr. Afkam Azeez, Director of Architecture at WSO2 who interviewed me and selecting me for internship at WSO2. Then I should specially thank Mr Samisa Abeysinghe, Who is the Vice President of training at WSO2 and overall coordinator of our training program. Thank you very much for all the effort you taken for making training program successful by organizing various activities, assigning projects for us and selecting us for various product teams.
  • 4. Page | iv Also I should be very grateful to Mr Sriskandaraja Suhothayan, who was my supervisor and the Tech lead of WSO2 CEP for giving me a such important project and guide me, advice me to successfully complete the project. And I should thank Mr Mohandarshan Vivekanandalingam and Mr Lasantha Fernando for giving me a great support in completing the project and also I should thank other CEP team members Mr. Rajiv Sampath, Mr Sajith Ravindra, Ms Seshika Fernando and Ms Dilini Muthumala for their supporting me in various way. Then I would like to thank Ms. Udeshika Rathnaweera, Director of HR and Administration, Ms. Pramila Rajapakshe, Senior Manager of HR and Administration and Ms. Maryam Carder, Senior Manager of HR and Administration who looked at all needs of interns and make WSO2 better place for interns in so many ways. I would like to thank Mr Nirodha Gallage, Ms Evanthika Amarasiri ,tech lead of QA team for the support they gave me. And also I should thank Dr Srinath Perera,Director of research, Mr Jaminda Batuvanthudava, Director of Engineering, Mr Maduka Udantha, Mr Amal Gunathilaka, Mrs Thilini Ishaka, Mr Nandika Jayawardana,Mr Hasitha Aravinda for giving so many help during this 24 weeks. Also I should thank Mr KrishanthanThangarajah and Mrs Zaithoon Bin Ahamed for conducting workshop for interns which are very helpful for us to learn so many thing. Also I would like to thank Mr Anushka Samaranayake, Mr Buddhi Mihara, Mr Indika Rowell and Mr Lahiru Halkevla, fellow interns from other institutes for the support they gave us through the internship program.Also I should thankful for my fellow interns from Department of Comuputer Science and Engineering for all the help. Finally I should thank each and every member of WSO2 family in technical, non technical, and support staff for the great support they have given to us all.
  • 5. Page | v Table of Content 1. Introduction to the Training establishment .............................................................................. 1 1.1 WSO2 Inc.......................................................................................................................... 1 1.2 History of WSO2................................................................................................................ 3 1.3 WSO2 Vision ..................................................................................................................... 3 1.3.1 Reinvent the technology ............................................................................................... 3 1.3.2 Reinvent the business relationship ................................................................................ 4 1.3.3 Reinvent the Support ................................................................................................... 4 1.3.4 Create a great place to work......................................................................................... 5 1.4 WSO2 Business model........................................................................................................ 6 1.5 Support and Service Model ................................................................................................ 6 1.5.1 Community support..................................................................................................... 7 1.5.3 Development support................................................................................................... 7 1.5.4 Quick start program (QSP) .......................................................................................... 8 1.5.5 Production support...................................................................................................... 8 1.5.6 Turnkey packages........................................................................................................ 8 1.6 Organizational Structure.................................................................................................... 9 1.6.1 Employee hierarchy..................................................................................................... 9 1.6.2 Communication ..........................................................................................................10 1.7 WSO2 Team .....................................................................................................................11 1.8 WSO2 Product and services ..............................................................................................14 1.9 Strength and weaknesses...................................................................................................15 1.9.1 Strengths....................................................................................................................15 1.9.2 Weakness ...................................................................................................................16 1.10 Service to Sri Lanka society.............................................................................................17 1.11 Suggestions to improve....................................................................................................18 2. Training experience................................................................................................................18 2.1 Fast Track for Interns.......................................................................................................19 2.1.1 Development environment...........................................................................................19 2.1.2 XML ..........................................................................................................................20 2.1.3 Apache Axis2 web service............................................................................................22 2.1.4 Web Service................................................................................................................25
  • 6. Page | vi 2.2 Intern Project (QA Portal ) ...............................................................................................28 2.2.1 Learning outcome from the project .............................................................................34 2.2.2. Further improvements in QA portal ...........................................................................34 2.3 Working with product team ..............................................................................................35 2.3.1 WSO2 CEP (Complex Event Processor).......................................................................35 2.3.1.1 Architecture ........................................................................................................35 2.3.2 Building ‘Carbon’ platform.........................................................................................36 2.3.4 Event Simulator..........................................................................................................38 2.3.4.1 Implementation of Event Simulator carbon component .............................................38 2.3.4.2 Event Simulator Feature ..........................................................................................45 2.3.4.3 Event Simulator Final product..................................................................................45 2.3.4.4 Event Simulator Future improvements .....................................................................49 2.4 Non technical experience...................................................................................................50 3. Conclusion.............................................................................................................................51 3.1 Experience........................................................................................................................51 3.2 WSO2 as a training establishment .....................................................................................52 Annexes..................................................................................................................................... liv References................................................................................................................................ lvii Abbreviation ............................................................................................................................ lvii
  • 7. Page | vii List of figures Figure 1.1- Company Logo………………………………………………………………1 Figure 1.2-Employee hierarchy………………………………………………………....10 Figure 2.1-XSLT result page…………………………………………………………….22 Figure 2.2-TCP MON architecture………………………………………………….......24 Figure 2.3-Web service architecture in the web server…………………………….......25 Figure 2.4-QA Portal use case diagram………………………………………………....29 Figure 2.5-QA portal ER diagram……………………………………………………....30 Figure 2.6-QA Portal architecture………………………………………………………33 Figure 2.7-Carbon Component Structure………………………………………………37 Figure 2.8-Event Simulator Architecture…………………………………………….....47 Figure 2.9-Event simulator send single event…………………………………………...48 Figure 2.10- Event Simulator send multiple events…………………………………….48 Figure 2.11-Event Simulator file configuration………………………………………...49
  • 8. 1. Introduction to the Training establishment 1.1 WSO2 Inc Figure 1.1 Company logo The name WSO2 stands for Web Service Oxygen, since it truly inspired with the Web Services and finding enterprise solution in the web space. WSO2 was founded in August 2005 by pioneers in XML (Extensible Markup Language) and Web Service technologies following Open Source standards and it focused on providing SOA (Service oriented architecture) solutions for professional developers . This SOA platform with the cloud approach through WSO2 Stratos is the world’s only 100% open source PaaS (Platform as a Service) by recent times. WSO2 is mainly focused on developing and producing top class product which are based on the free and open source Apache software stack. Those all products are released under the Apache Software licence. WSO2 has a team of locally and globally recognized professional software engineers who are passionate with open source software development. Most of them are committers of software projects like Axis2,Synapse, Rampart, Sandesha,Transport, Cassandra, Commons of the Apache software foundation and various other open source communities including Eclipse,Ruby and Rails. WSO2 product are developed on one core called “core carbon framework” which uses Apache Axis 2 as the base engine. Company encourage employees to build their own personal brand contributing these projects. Currently WSO2 is offering 12 product servers as web based solution which are perfectly designed to meet the business solution. One key advantage of WSO2 products is instead of forcing customers to adapt their system to wso2 middleware platform WSO2 adjust to their system. All WSO2 products can be adjust to different customer environment by just adding or dropping its feature. And StratoLive provide all the services of these products 100% free in the cloud environment.
  • 9. Page | 2 Even though WSO2 produces 100% free and open source products WSO2 has made sustainable business.The business strategy of WSO2 is providing training, support, development and consultancy for their products. As all the products are free available any one can download and use them. If customer is interest and satisfy with using wso2 product they are willing to have wso2 support and consultancy to bring up a business solution for them , then wso2 charges for that services. And also apart from wso2 support company maintains a SOA developer portal call “WSO2 Oxygen Tank” which includes knowledge base, articles, webinars, screencasts, tutorials and presentations which creates free online resource center for anyone who is interest in wso2 products. Being an open source middleware company WSO2 has built so many connections around the world apart from having great connection with Apache software foundation. Following are some of those ● SOAP, WSDL and WS-SEC standards ● OCERT and OAuth ● The World Wide Web Consortium (W3C) ● OpenID Foundation ● Microsoft‟s InterOP Vendor Alliance ● OASIS As a Global company WSO2 has three main offices in Sri Lanka, USA and UK and having customers worldwide. The office in UK is mainly focus for marketing and developing the customer relations. US office is contributing to the development of products. Sri Lankan branch is acts as main research and development center for wso2 which is situated in No 20, Palm Grove, Colombo 03. Even though wso2 has just about 8 years of experience in the industry it has shown an immense growth and still growing. Sometimes customers have admired the performance and lightweight solution that wso2 has come up with compared to industry giants like IBM, Oracle and Microsoft. WSO2 has stated as one of the top ten open source SOA companies in the world with a comparatively little in team size. Most importantly WSO2 has been able to emerge the Sri
  • 10. Page | 3 Lanka among other countries in the world in software industry while bringing lot of opportunities and remarking the Sri Lankan contribution to the open source software industry. 1.2 History of WSO2 WSO2 was founded by Dr Sanjiwa Weerawarna with the Co-founder Paul Fremantle in August 2005. And WSO2 has officially declared its birthday as 04th August in 2005. Around these days incorporation of all three branches has happened. At the first co-founders of WSO2 has named it as “Serandib system” and has later changed due to a request of an investor. After having initial investments and the funds of the investors company grows and they were able to release the core carbon platform with the lot of effort and sacrifices of the group of very skillful and talented people. Because of the sacrifices they did to overcome the hard times now WSO2 has become one of the best middleware company in the world which competing with the giants like IBM and Oracle who were at the business for long time. 1.3 WSO2 Vision WSO2 has a very clear vision regarding its progress, products and the customers. Vision of WSO2 is created with collaboration of following main categories. 1.3.1 Reinvent the technology Even though middleware industry is obtain by the giants like Oracle and IBM when the WSO2 was founded WSO2 had the belief that middleware can be reinvented in better way. A way that is simpler and straightforward from start to finish. So WSO2 had the advantage that they could start from the scratch and make full benefit of hindsight. WSO2 put their full effort to build up the award winning Carbon platform which is considered as most advanced middleware platform available today. By adopting the OSGI (Open Services Gateway initiative) framework,WSO2 component model enables lean, high performance approach with self consistency across the platform and provide pluggable behavior which is fully customizable carbon platform can be
  • 11. Page | 4 adopt to the customers environment rather than customer environment adapt to the middleware platform. Beyond being able to customize the product this advanced platform provide multi tenancy , elasticity, instant provisioning , monitoring the performance and make the platform as a service (PaaS) in private and public cloud. In that manner WSO2 is playing a great role in cloud computing too. 1.3.2 Reinvent the business relationship Although technology is the leading edge of the WSO2, It has identify the core value to the customer is quality of business relationship. So WSO2 has taken the radical steps to orient themselves to the customer. All the softwares are 100% free and open source and built under open and transparent development process at wso2.org and apache software foundation. That means there are no license fees, registration, no limited trial versions as all products are released under Apache License 2.0 which means there are no restriction on using or developing products. And no special license like Community license or dual license. Any one can experience the code as well as the product. The unique value of the WSO2 provides in the relationship with customer is customizing the products to meet what the each customer requires through the high quality training, support, consulting service, 24x7x365 production support or complete unique solution will give to the customer 1.3.3 Reinvent the Support For a successful business in the software industry marketing section is not just enough it is essential to have a very good customer support service too. WSO2 has a online support system that can be used to direct the customer issue to the best source of expertise with WSO2 developers on the product or committers to the open source product. WSO2 doesn’t have “support engineers” instead of them WSO2 support let the user to quickly interact with the best person in the world to solve their issue. They are the people who build the product they knows
  • 12. Page | 5 every nook and corner of the product and can give the exact solution that customer requires. When required WSO2 provides hot fixes, patches, service packs to keep the system running well. Beyond the production support, WSO2 does not force customers to pay for bundle of services for a little value instead customers have freedom to purchase the service they need. They would let the customer to maximize the value of return on investment as well. WSO2 believes that satisfied and successful customers are the best way to make WSO2 as a successful company in middleware industry. 1.3.4 Create a great place to work WSO2 development and operations are mainly going in Sri Lanka. After years in IBM research CEO and co-founder Dr. Sanjiva Weeravarna had a dream not only to reinvent the technology, business relationship and support model but also to bring the Silicon Valley style entrepreneurialism to Sri Lanka. Maintaining close relationship with the top local universities and building creative spirit and global leadership in open source technologies, WSO2 has become the best place for local innovators. WSO2 made being a Apache committer is a reality to Sri Lankans. WSO2 encourage their employees without any hesitation to develop their personal brand and even to leave the company for doctoral studies abroad. These employees are encouraged to return WSO2 or to lay foundation to new companies or to find employment in other organizations where they can give their talent and fullest contribution to make Sri Lanka and world a better place. The Vision of WSO2 is not based on financial values but in gaining sustainable benefits with both customers and the company with employees. And to emphasize the Sri Lankan name in the world software industry. And I believe WSO2 will be able to get the real values of Sri Lankan brains to do innovative things in open source world and will be the hotbed for local innovators. And will be able to become the world’s no 1 middleware company in recent future.
  • 13. Page | 6 1.4 WSO2 Business model WSO2 offers 100% FOSS (Free and Open Source) products , which can be downloaded at free of charge and by any person and also the source code is available. Any person can modify the source and utilize it with build tool like maven to customize the product as they wish.Therefore wso2 giving their product free of charge there should be a different but feasible business model to build a sustainable company. WSO2 has a very unique and feasible business model, they attract the middleware market by giving their products free while customers has to pay for other companies product even before they use it. But in an enterprise system customer expects a great performance, low risk , high efficiency and 24x7x365 support service where WSO2 identified as the opportunity to earn money. Charge in software support, on site and off site consultancy and training for the product stack that is based on SOA and web services will bring the revenue for WSO2.In addition to that some client projects are also carried out. With this unique business model WSO2 is able to compete with the giants like IBM,Oracle and Microsoft in middleware industry and being preferred by the customer within several years. 1.5 Support and Service Model Categories of support offering by the WSO2 are listed below ● Community support ● Evaluation support (Consultation) ● Development support ● Training ● Onsite training (lectures,seminars,conference and etc) ● Off site training (webinars,podcast,Self paced training etc.) ● Production support
  • 14. Page | 7 There are also Quick start and Cloud start supporting service which are designed to bring customers more familiar with WSO2 products. 1.5.1 Community support Community support is done through the online website like stackoverflow. WSO2 allows users to post question in public.Once someone has asked a question under wso2 tag, WSO2 puts full effort to solve those issues so that answering these question will benefit to the community who interest in WSO2 products. And also they maintain product documentation and knowledge base library. 1.5.2 Evaluation support This service is designed to help customers in selecting technologies,product selections, strategies in early stage of middleware projects specially if there are to meet advance technology challenges.For some qualified customers these supports are given free of charge.In this support WSO2 offers support with middleware architecure consulting,Developing request for Information/proposal and proof of concept implementation. 1.5.3 Development support This support WSO2 experts directly assist the customers or clients engineering team during development.In here WSO2 help migrate,integrate,optimize and manage the enterprise middleware deployment by efficiently getting direct access to experts in product that customer consume. Following are the key benefit that customer get through this supporting system. ● Communication through confidential forum with guaranteed response time ● Integrating with other middleware and infrastructure products ● Provide selected pre-production patches ● Developing custom product features ● WSO2 carbon studio support, including assistance, issue resolution and development
  • 15. Page | 8 Through this process developing WSO2 engineers are exposed to well recognized engineers throughout the world. 1.5.4 Quick start program (QSP) This program helps customers to get start with the WSO2 products with in considerably lesser amount of time. This will bring world class expert developers and architects on-site to work collaboratively with customer’s team. Through this WSO2 will be able to clarify the customer needs very well and provide necessary guidance to meet their requirements. For this process WSO2 provide two on-site engineers and one off-site engineer in one week. 1.5.5 Production support Production support is to secure critical application of the customers where a failure of a system in production will have an immediate economic impact on the organization.Because of this critical nature WSO2 has designed a support mechanism that guarantee WSO2 middleware infrastructure enables the client application to be available 24x7x365 according to guidelines in Annex A1.In addition to that custmers who take production support will be elegibe to have the latest feature upgrades, product patches and service packs. 1.5.6 Turnkey packages Apart from the main 12 WSO2 products on Carbon platform they also offers a set of turnkey solution packages with 24 hours support and enterprise level maintenance on the entire client system, installing monitoring and maintenance.These products are useful for customers integration problem, security and identity problems, governance problems and more, to reduce the complexities of deploying business solution.
  • 16. Page | 9 Following are some examples of turnkey packages ● WSO2 Security and Identity gateway ● WSO2 FIX Gateway ● WSO2 SAP Message gateway ● WSO2 Mobile service gateway ● WSO2 App Factory All the above products are based on award winning Carbon platform. So that it can be customized as components to meet customer’s requirements and provide optimize solution. 1.6 Organizational Structure WSO2 maintaining a very flat and informal structure. In the company every one considered as equal no matter what the position, how old . This system creates team spirit and anyone can directly speak with anyone. 1.6.1 Employee hierarchy This employee hierarchy is apply in purpose of HRM (Human Resource Management) . But in decision making even an intern can take part if considerable fact have in hand. This is very helpful in fast decision making at the agile software development process because employees will get the opportunity of applying perfect solution in right time. Figure 1.2 shows the employee hierarchy of the WSO2
  • 17. Page | 10 Figure 1.2 – Employee hierarchy 1.6.2 Communication WSO2 maintains a transparent mail list which they believe the best way to fix any issue very fast. This transparency allows anyone who has knowledge to reply and answer immediately to any issue coming from the mailing list. So that requester as well as all the subscribers shares this knowledge. This produce maximum output and lowers the confusion. WSO2 mailing list use not only for technical purpose but also for non technical purposes as well. ● Support- dev - This mail list focus on the support for developers ● Training - To discuss things related to training inside WSO2 or outside where employees can participate ● Infrastructure - Any matter regarding network, WSO2 servers and etc. goes here ● Operation - Any issue regarding daily operations of the company and requesting/replacing hardware component goes here ● Vacation - Any type of leaves taken should be informed in here ● Marketing - Discuss matter regarding market strategy and etc . CEO VP Finance Account manager VP Engineering Directors Architects Tech leads Engineers VP Marketing Managers Team members VP Sales Sales team Director of HR and Administration Admin staff Support staff
  • 18. Page | 11 ● News - Any news regarding the industry that seems useful for the company are posted here ● Club - Entertaining events, trips, jokes and other stuff goes here Through these mailing lists anyone in the company will have the opportunity to discuss any issue, difficulties facing and sharing the knowledge. There is no need to follow the hierarchy to reply the mails and solve the issues. 1.7 WSO2 Team WSO2’s secret of being a successful company is the company consist of best people for each field. It has experts in any field. Following is the current team of employees contributing their full commitment to the company. Leadership - WSO2 is leaded by very experienced and talented people who maintain the company global scale success. ● Mr Sanjiva Weerawarana, PhD, Founder, Chairman and CEO ● Mr Paul Fremantle, PhD, Co-Founder and CTO ● Mr Jonathan Marsh, VP Business Development and Product Design ● Ms Monica Pal, VP Marketing ● Mr Lavi de Silva, VP Global Sales ● Mr Samisa Abeysinghe, VP Training ● Mr Selvarathnam Uthaiyashankar - VP Engineering ● Mr Devaka Randeniya, Senior Director of Sales ● Mr Paul Broekhoven, Director, European Sales ● Ms Padmika Dissanaike, VP Finance ● Ms Puny Navaratne, VP of Legal ● Ms Hasmin Abdul Cader, Director, Marketing ● Mr Asanka Abeysinghe, Director, Solutions Architecture ● Mr Mahesh Markus, Director, Support ● Mr Afkham Azeez – Director, Architecture ● Ms Udeshika Ratnavira, Senior Manager, Administration and HR
  • 19. Page | 12 Advisors - WSO2 has world class personalities who guide the company through their experience and valuable insight on the industry are as follows. ● Mr Larry Augustin – Investor/Advisor ● Mr Geir Magnusson Jr. – VP Engineering, Joost ● Mr Brian Behlendorf – Founder & CTO, Collabnet ● Mr Tom O‟Reilly – Founder, O‟Reilly Media ● Mr Patrick Grady – Chairman & CEO, Rearden Commerce ● Mr Tony Pizi – CIO Platform Engineering, Deutsche Bank Teams The Engineering team - Engineering team is the largest team in the WSO2. The engineers who work on the research ,design, development and testing are categorized into this category. This large team can be sub categorized according to the technology group and the different product that they are working on. Following list shows the each technical group(TG) with the products they have. Developing TG ● Application server ● Tooling ● Jaggery server Solution TG ● App Factory ● API Manager Data TG ● Data Service server ● Business Activity Monitor
  • 20. Page | 13 ● Complex Event Processor ● Business Rules server Integration TG ● Enterprise Service Bus ● Identity server ● Message Broker ● Governance Registry ● Business Process server ● Elastic Load balancer Foundation TG ● Carbon ● Stratos The sales team - Sales team deals with the customer and maintaining the connection between customer and the developers. The marketing team - Marketing team works on marketing the WSO2 products in the software industry by means of sponsorship, advertising campaign, organizing conference, workshop, webinars and etc. Most of the events are organized by the marketing with the help of whole wso2 team. The finance team - Finance team takes care of accounts, income, expenditure and budget of the company The HR and administration team - Provides vital administration and human resource work like recruiting employees, salary payments and etc.
  • 21. Page | 14 1.8 WSO2 Product and services All the WSO2 products are built on the enterprise middleware called WSO2 Carbon platform. Targeting the major business issues existing in the middleware industry today WSO2 introduces a set of products which are customizable according to the user requirements. A high level view of categorizing WSO2 products attached with Annex , A2 . Following are the list of products and brief description about them. ● WSO2 Application Server - for service hosting ● WSO2 Enterprise Service Bus - for mediation services ● WSO2 Message Broker for messaging services ● WSO2 Data Services Server for managing data sources and data access ● WSO2 Governance Registry and repository - for managing WSDL, schemas, policies, life cycles and versioning ● WSO2 Gadget Server for portal services ● WSO2 Web Services Frameworks for C, C++ and PHP – provide simple APIs for ● implementing web services and web service clients ● WSO2 Identity Server - for authentication, single sign-on and access control ● WSO2 Business Process Server(BPEL) ● WSO2 Business Rules Server (JSR-94) ● WSO2 Complex Event Processing Server ● WSO2 Business Activity Monitor (JMX) ● WSO2 Mashup Server Reach the position of one of the top middleware companies in the world with in several years is the best fact to show the performance of the WSO2. WIth the commitment of best minds in the country WSO2 has achieved lots of landmarks[2] and will be achieve in the future too. In addition to that WSO2 has won following highly recognition awards in the industry. ● Kuppinger Cole European Identity Award 2011 - WSO2 was recognized for the innovative features of its open source, multi-tenant WSO2 Identity as a Cloud Service
  • 22. Page | 15 ● SD Times 100 Award - For the fourth consecutive year, WSO2 was recognized as one of the “top leaders and innovators” in the software industry by the editors of SD TIMES. ● Red Herring Asia 100 Award - WSO2 was awarded the Red Herring Asia 100 Award in 2006 for being one of the most promising private technology companies in Asia. ● InfoWorld Best Open Source Software (Bossie) Award - WSO2 was named InfoWorld 2009 Best of Open Source Software (Bossie) Award winner and recognized for delivering WSO2 Carbon ● National Best Quality Software Awards (NBQSA) - WSO2 walked away with: -WSO2 Enterprise Service Bus :Gold Award under Infrastructure & Tools Category and Overall Gold Award. -WSO2 Gadget Server: Silver Award under Research & Development Category. -WSO2 Data Services Server: Bronze Award under Infrastructure & Tools Category. 1.9 Strength and weaknesses 1.9.1 Strengths Carbon platform - Award winning Carbon platform is the backbone of all WSO2 products. It provides a complete middleware platform to make components on top of it.This innovative product uses a componentized framework which the user can just use the component they want and pay for the service they use.This flexibility gave the chance to WSO2 to present the first PaaS - WSO2 Stratos.From this approach every development has concerned with local and cloud support. The architecture of carbon platform is carefully designed to meet the challenges that could occur due to business matters. Highly skilled and dedicated team - This is the key for the strength in WSO2. WSO2 engineering team consist of high skilled software architects, software engineers and developers having so many experience and technical knowledge in contributing to global industry. WSO2
  • 23. Page | 16 highers a people who have smarter way of thinking since they come from the university. And WSO2 having committers for all products it get from the ASF to get the benefit of using it. Various people coming from various background and fields use and share their experience and skill to add values to the company in every way they can. They just not only develop but share their knowledge and experience by writing blogs, conducting sessions,talks and presentations. Flexible working culture- Another unique thing in WSO2 comparing with other companies it doesn’t force employees specially engineers to work in particular working hours employees have flexible working hours. It has made very friendly connection between company and the employee; they enjoy the freedom at work. With this friendly manner the responsibility and the dedication of the employee towards the company has increased. They have every luxury of working in the office and also the can working from home if they needed. Employees voluntarily work as they have the dedication as heart feeling that they have to give the fullest commitment to the company. Being an Open Source company - Being an open source company souce code of every WSO2 product is exposed to the rest of the world. So anyone can use this source codes and try them,identify the weaknesses, find bugs and fix them.And they can customize the source as they wish and use them without any charge.This creates a large community for the WSO2 from outside the company and the customers to attract. 1.9.2 Weakness It’s hardly find any weakness in the company that I could identify. One thing that I faced is in some point when I’m trying the some WSO2 products the lack of information in the provided docs.Its not a weakness but something need to improve. Even though there are so many documentations, articles, and blogs are maintained in the WSO2 Oxygen Tank[5] still there are some lack of informations and the lack of samples for different scenarios in some of products. WSO2 has already identified this issue and encourage the staff to keep complete documentations and they have the specific group for technical writers for the support as well.
  • 24. Page | 17 Another thing that needs to be improved is being a world class software company which has a huge brand in software industry WSO2 has a great reputation in the software industry in the Sri Lankan as well as the World. But it seems to me that general public of Sri Lanka has rarely heard of WSO2, what WSO2 is, what it does. 1.10 Service to Sri Lanka society WSO2 was able to create a new path for Sri Lankan software industry. While other software companies works as the branch of foreign software companies WSO2 is formed as a Sri Lankan software company lead by Dr Sanjiva Weeravarna, the founder and the CEO of WSO2.In collaboration with ASF it gives more opportunity to Sri Lankan to contribute to more global project and get the return back to the WSO2.And develop their personal brand as well. WSO2 encourages and help their employees to do the higher studies as doctorial in abroad and create more opportunities to serve the country after they have completed their studies. WSO2 conducting many CSR projects as well. Conducting workshops, Seminars, sponsoring for the events in universities and also apart from technological aspects they organize WSO2 blood donation camps to donate to the blood bank. Annually WSO2 organize their big event called WSO2-Con. This big conference bring the experts to Sri Lanka and provide facilities for Sri Lankan professionals to meet them and share technical and non technical experiences. These are just several examples of the services that WSO2 is providing to the Sri Lankan society. This kind of contribution to the country shows the true aspect of WSO2 and it always try to emerge the name of the country. Surely they will be able to put the WSO2 and the Sri Lanka on top of the middleware industry in the world in near future.
  • 25. Page | 18 1.11 Suggestions to improve As mention in 1.9.2 improving documentations with more samples and detailed description will be very helpful to understand the product, how the product use, in what business problems that product can use to solve them. And also the new developers as well as the customers will be very beneficial from this. Providing many sample scenarios would be very helpful to understand the different aspects and use cases of a particular product. And keeping the documents and articles up to date in the Oxygen tank is very important. 2. Training experience On 18th of November 2013 we joined with the WSO2 as interns. We stepped into the main office of WSO2 in 20, Palm Grove, Colombo 03 and were warmly welcome by Pramila Rajapaksha , senior manager of HR & admin. Then we were given laptops to use in the internship period after confirming our details. There after we had a session to introduce the WSO2 to us and our self to the company. In this session we were informed about the WSO2 culture ,the flat hierarchy, how to deal with the people,how we should behave within the company. Do’s and dont’s. Mr Samisa Abeysinghe is the VP of training and in charge of our training program who gave us the introduction of the training program. How it is scheduled what are the areas that we are going to cover and also he pointed out how to use the WSO2 mailing list appropriately to get the fullest benefit out of it. Internship program consist with three main aspects. ● Follow the Fast track ● Internship project ● Working with product teams
  • 26. Page | 19 2.1 Fast Track for Interns Fast track was designed by Mr Samisa with the suggestion from different product teams. This is the training program which is given to the new employees as well. Main aspect of this fast track is to introduce the basic technologies that are use in developing WSO2 products and get familiar with different WSO2 products. This is very helpful that we are introduced to a so many technologies and also very beneficial in working with the product team. 2.1.1 Development environment Ubuntu - Since an open source company most of the WSO2 employees are using Ubuntu, an open source linux based OS and I also started to work in Ubuntu environment, it was very different from the familiar Windows OS that I have been working in the past.Lots of things have to configure from the terminal other than a UI. Installing Java, Maven, Ant, Eclipse, Intellij idea and etc were installed by following online tutorial because installing procedure is mainly command line based. And then setting up environmental variable is differ from the Window instead of UI Ubuntu has .bashrc file which should be edit in specific manner to set up the environmental variables. Eclipse - In the fast track period I used Eclipse Juno as the IDE which is very popular IDE and it has many more plugins, which includes the WSO2 developer studio plugin as well. SVN - The primary mechanism of version controlling that have been used at WSO2. We are given svn space for check in our training works and the projects. But now WSO2 is moving to the Git from SVN. Maven - Maven is widely used open source software project management tool by Apache. Almost all the WSO2 projects are managed using Maven. With the pom.xml that describes the software project being built, its dependencies on other external modules, packages and components and the build order. That makes the project build process easy. Maven dynamically download java libraries and Maven plug-ins from remote repositories by reading the pom.xml at build time. Maven provides built in support for retrieving files from the Maven2 Central Repository and other Maven repositories.
  • 27. Page | 20 Following are the key areas that I have covered in the Fast track 2.1.2 XML XML , the Extensible Markup language is a markup language that we can create our own tags. Self descriptive XML is designed to carry data or store data not to display data and it is widely used for the representation of arbitrary data structure , for example in web service. In WSO2 , XML is used in every product , SOAP is one of the application which has been developed using XML syntax which is highly use in WSO2 products in implementation of web services. I have completed the following exercises using java libs and eclipse regarding to XML. First I built a simple XML structure “interns.xml” using XML tags which is consist with the interns personal data. And parse the build xml file to read the data. XML Parser Parsing a XML file means, XML parser converts the XML document into an object which can use to extract the datas of xml file using programming language. There are three main XML parsers that are widely used. ● DOM Parser ● SAX Parser ● STAX Parser DOM Parser - Document Object Model (DOM) parser loaded the whole xml document into the memory and converts the xml file into DOM object. DOM contains method to traverse trees, access, insert and delete the nodes. Using DOM parser I have implement a java class to read the data of “intern.xml” and print them. Since DOM parser creates an in memory tree representation of XML file it requires more memory, if the xml file is too large parsing may take long time or may not be able to load it completely causing “OutOfMemoryError”. But if the XML file is small DOM parser is quite fast.And another advantage of DOM parser is it enables the random access, it can access to any element in the xml file because it completely loaded to the memory.
  • 28. Page | 21 SAX Parser - SAX stands for Simple API for XML Parsing, this is an event based XML parsing and it parse xml file step by step. This is much suitable for large xml file.SAX trigger event when it encounter an opening tag, closing tag, element or attribute and the parsing works accordingly. SAX parser is recommend to use in java to read larger XML file since it doesn’t load xml file completely but load small parts. But disadvantage is that SAX parser doesn’t allowed random access it cannot access anywhere in the xml file at any time as we wish because its event based mechanism. I have implemented a java class using SAX parser and study these behaviors. STAX Parser - Streaming API for XML (STAX) parser is the optimized parser which is designed as a median of the above parsers, it use the mechanism call pull parsing. XSD validation XSD is used for validate a xml file . XSD or XML schema describes the structure of the xml file it defines the legal building blocks of an XML document.I have created “interns.xsd” which is the structure of the “intern.xml” file. And using DOM validation a given xml file can be validate with a certain XSD . I implement a java class call “DOMValidator” to validate the “intern.xml” file with the “intern.xsd” Transform with XSLT XSL stands for Extensible Stylesheet Language, and is a stylesheet language for XML document. XSLT stands for XSL transformation. Using XSL we can apply style sheet for particular XML file. XSLT is widely used for purposes other than XSL, like generating HTML web pages from XML data. As an exercise I have created a XSL for “intern.xml” which is named as “internsStyleSheet.xsl” and implemented a “XSLTtest.java” class to transform “intern.xml” data using “internStyleSheet.xsl” to a html page. Figure 2.1 shows the result html page.
  • 29. Page | 22 Figure 2.1 XSLT result page 2.1.3 Apache Axis2 web service As WSO2 name implies “web service oxygen”, WSO2 mainly concern on using web services efficiently to solve business problem. So we need to have a good understanding and practice in web services. Apache Axis2 is a java based implementation of both client and server side of the web service. Fundamental architecture of the Axis2 engine is shown in Annex A3 . This engine actually covers the most fundamentals of all WSO2 product that we should know. Axis 2 enables to perform following tasks easily. ● Create a web service out of a plain java class ● Send SOAP messages ● Receive and process SOAP messages ● Create implementation classes for both the server and client using wsdl ● Retrieve the WSDL for a service ● Create or utilize the services that take advantage of the various WS-* standards like WS- Security,WS-addressing and etc
  • 30. Page | 23 In order to understand the how web services works, how messages pass through the Axis2 engine I have implemented a service called order processing service.Axis2 provide several ways to implement a service. ● Building the service using AXIOM’s ● Deploying using Plain Old Java Objects (POJO) ● Generating the service using Axis2 Databinding Framework (ADB) ● Generating the service using XMLBeans. I used POJO and AXIOM methods to implement the “order processing service “ this order processing service is that it can store the details about clothes and using a client it can order list of clothes, add clothes, and get the total price of order. It doesn’t matter which method we use to implement the service, there is a specific structure of a service. “OrderProcessing.java” is the java class which has the logic of the service this is where all the processing happens. “service.xml” is the service descriptor which defines the class to be used by the service and the appropriate message services.
  • 31. Page | 24 Then create the ” .aar” file of this service and then deploy the “.aar” file by using Axis2 web administration application or by copying it to the Axis2 service directory. Then I implemented the clients for the services that I have created for test the services.There are two major Message Exchanging Patterns between client and service ● In-out : The client sends a SOAP message to the server, which process the message and send response back ● In-Only : The client sends a message to the server without expecting a response Here in the service “addItem is a In-Only method and the “orderItems” is a In-Out method. In order to create a client there are different methods too. In AXIOMS service I created the client that accesses the service directly. Here client is just a simple java class where EndPointReference is targeted to particular service. Other method is client is generated from the WSDL file which is automatically generated when the service is deployed. Using wsdl2java utility it can generate a stub class using WSDL file and this stub class contains all the method that can be used to invoke the service.Using stub class client can be created. TCPMON TcpMon is very useful debug tool which can use to monitor the message pass along in TCP based conversation. Where this has many benefit when developing web services Figure 2.2 TCP MON architecture As shown in the figure 2.2 TCPMON can be used as an intermediary between client and the service in this web service case. We can set a listening port in TCPMON and it shows the packets and messages that come to that port and redirect them to the end. Using this feature we can monitor the messages.
  • 32. Page | 25 And also TCPMON can be used as a request sender for Web service in order to check the web service methods work properly, the request soap messages can be pasted into the send screen and sent directly to the server. 2.1.4 Web Service As WSO2 products are based on SOA and web service, the knowledge about the web service is essential in this training program. I have followed the guidelines that are given in the Fast track Web services are application components which communicate using open protocol , and using web service, application can publish its function and message to the out side. Mostly in web service it uses XML to code and to decode data and SOAP to transport the data. The figure 2.3 shows how the architecture of the web service inside the web server. Figure 2.3 Web service architecture in the web server In my case TOM CAT server act as the App server or servlet engine which manipulate the life cycles of services. and also Tom Cat has the HTTP Core which is the web server. Axis2 act as the SOAP engine.
  • 33. Page | 26 WSDL WSDL stands for web service description language which describe web service. It is written in XML.WSDL specifies the location of the service and the operations the service expose. WSDL uses following major elements to describe the web service. types - types element contains the data types definition used in the web service message - element is the typed definition of the data being communicated portType - this element describe the operations that can be performed ,and the message that are involved in a web service . this happens to be the most important WSDL element binding - this element defines the data format and protocol for each port type Deploying a web service in a server like Axis2 the WSDL file for the particular web service is automatically generated and this WSDL file can be used to generate the client for the service. Another aspect in creating a web service is we can create WSDL file first and in Axis2 there is a utility call “wsdl2java” using this tool we can generate the structure of the service where we can code the logic inside the structure. SOAP SOAP stands for Simple Object Access Protocol. It is a communication protocol to communicate between applications.And this Platform independent , language independent XML based message format is created to communicate between application over HTTP , and it provides a way to communicate between applications running on different operating systems with different technologies and programming language. Web services are communicating through SOAP messages. SOAP is based on XML ,SOAP itself is a XML document which containing following main elements Envelope - This element identifies the XML document as a SOAP message, and is the root element of the the SOAP message.
  • 34. Page | 27 Header - This element contains application specific information about the SOAP message Body - body element is the actual SOAP message which contains the call and response information Fault - This element contains the error and status information Following is the structure of the SOAP message
  • 35. Page | 28 2.2 Intern Project (QA Portal ) After completing the Fast track we were assigned into intern project. The project teams and the project was assigned randomly so I was assigned to the QA portal project along with Sudheera, Dammina, Maduranga,Ahsan and Vishmi. Users of the QA portal are the WSO2 quality assurance team. QA team is testing WSO2 products in order to check whether functionalities of the products are working well or not. And if they find bugs and issues in their testing procedure they raise jira issue for the developers concern to fix it. In their testing procedure QA team write test case for the test plan that they are working in. Currently QA team maintains a spreadsheet that has the details of the test plan, test result for the testing build.They manually enter the details to the spreadsheet.In order to record the test cases and test results more efficiently and accurately the requirement of a QA portal arise. Mr Samisa Abeysinghe who was the mentor of the intern project given us the requirements and the details of the QA portal, And we discussed with the QA team to identify the detailed user requirements, what they really needed. In the planning of the QA portal first thing was to identify the use cases according to the user requirement and design use case diagrams. We identify four users for the QA portal and different use cases among each of user. As the team suggested I should have to divide the different task among all of us and assign each members to different task. There are four users that we have identified, Admin, QA Engineer, QAA engineer and normal user. Figure 2.4 shows the use cases for QA engineer and for QAA engineer. Use case diagrams show the different tasks that user can do using QA portal.
  • 36. Page | 29 Figure 2.4 QA Portal use case diagram After planning the use cases, one of the most important tasks in the project is designing the data model. I myself designed the data model, the ER diagram with the help of team members. Designing data model is very crucial because whole project should build according to the data model.Data Model which is the ER diagram is used to create the database of the project. After series of discussions and modification we came across the final design of the data model which is shown in figure 2.5.
  • 37. Page | 30 Figure 2.5 QA portal ER diagram After designing the ER diagram we design the wireframe diagrams and the data flow diagrams. Wireframe diagrams show the sketch of the user interface of the QA portal. And data flow diagrams show how data flows between different wireframes and the database. After designing phase we started to implement the QA portal, QA portal is basically a jaggery app which is run on the jaggery server. We used jaggery, java script languages to implement the QA portal. And Mysql to access the database. In implementing QA portal we used following WSO2 products. ● WSO2 Data service server ● WSO2 Jaggery server ● WSO2 Application server
  • 38. Page | 31 WSO2 Data service server - WSO2 DSS provides simple, easy to use platform for integrating data stores, creating composite data views and hosting data. We created the Mysql database schema according to the designed data model and integrate it with the DSS. Using DSS we can create data services to access the database with CRUD(create,read,update,delete) operations.QA portal directly invoke the data services to access the database.When it integrate with the database DSS automatically generate the data services for basic CRUD operation for each table in the database. In order to perform different operations like join operations we had to implement data service and create queries for them. In generating the data services it automatically generate the CRUD style operations with a SOAP style web services but in our project since we used REST style service, in order to access the service queries we had to write resources.Following is an example of a query and particular resource.
  • 39. Page | 32 I used above query in the “WSO2_QAP_TEST_CASE_DataService” to insert the test case values to “WSO2_QAP_TEST_CASE” table in the database.Following are the important elements and attributes in the query. <query id> - “query id” is used to identify the query from the resource and operation <sql> - this is where Mysql query which is execute in the database is written.In the above example it is a Mysql query to insert the values to the Test case table <param> - this element contains the input parameters for the SQL query that are pass from the resource in this query there are five parameters pass to the sql query as input parameters <result> - In result element has the elements according to the table column name as well which are the results from the execution of the query. Since this is a Insert query it doesn’t return any values .But queries like view would result values. This is the resource for above query method - Since the aspect of invoking this resource is to insert the value here I used resource method as “POST” because it doesn’t return back. This method can be “GET” , “PUT”,”DELETE” accordingly.
  • 40. Page | 33 path - this is the path the URL for invoking this particular resource from the outside request it should be data service path + resource path.Input parameters also can be send from the path call-query - this is where resource reference to the query and this element contains the input parameters to the query as well. Data service contains series of queries and resources based on the functionality, from simple query to very complex queries which join several tables. And we create data services as per each table in the database. Response from the resource invoke will be a json string containing the requested details. Jaggery and Jaggery server - Jaggery is a javascript framework that has been developed by the WSO2, which can be used to write all part of the web applications and services. QA portal project is a jaggery application which runs on the jaggery server. WSO2 Application server - WSO2 Application server brings together a number of WSO2 products and open source projects into a single server.It accomadates the hosting,deployment and management of various applications. In the QA portal project we would have to use Data service server for implementing data services and the Jaggery server for host the QA portal jaggery app. But instead of using separate server WSO2 Application server provides the facility to host data services and the qa portal app since it has the DSS component and jaggery server app with it. Figure 2.6 shows the architecture of the QA portal Figure 2.6 QA Portal architecture
  • 41. Page | 34 2.2.1 Learning outcome from the project In the QA portal project it helped me to learn and gain experience in several aspects. As in a real software development process gathering user requirement is done by discuss with the QA team, the user of the QA portal. It is a new experience which I have not experience in the university project. And the user requirements can be changed during the implementation and we had to adapt to the new requirements. And also we had to work under deadline. In technological aspects I have learnt several technologies and had a good experience in working with them.Following are some of the technical experience that I have gained from this project. ● Experience in designing complex data model as in QA portal ● Implementing database schema and integrate the database with WSO2 Data service server. ● Working with data services and queries, and invoking RESTful services using json. ● Implementing the QA portal app using jaggery is a new experience since this is the first time I have used the jaggery framework , and also I learnt javascript, jquery as well. ● Using of WSO2 application server, deploying application and etc. ● Javascript, Jquery, Json 2.2.2. Further improvements in QA portal QA portal should be integrated with the test automation framework. Auto test cases that are created should be assign for test cases that has been created before. And after running the test automation, the test automation results should be added to the database as well. And can be view in QA portal.
  • 42. Page | 35 2.3 Working with product team After fast track and the intern project we are divided into working with product teams. I was assigned to WSO2 CEP team. 2.3.1 WSO2 CEP (Complex Event Processor) Event processing is a method of tracking and analyzing streams of data and deriving a conclusion from them. Complex Event processing process combined data from multiple sources to infer events that suggest more complicated circumstances.And it identify meaningful events and respond as quickly as possible. WSO2 CEP is a lightweight,easy to use and open source server.Which identifies the most meaningful events within the event cloud, and analyze them in real time.And it is built as extremely high performing and largely scalable. As other products WSO2 CEP also built on the WSO2 Carbon platform which is based on the OSGI framework enabling better modularity for service oriented architecture. 2.3.1.1 Architecture Annex A4 shows the WSO2 CEP architecture with its components and the Event flow Input Event Adapter - The events that are coming to the CEP is received by the Input Event Adapter. CEP supports most common implementation by default but can plug custom adaptors for specific use case. Event Builder - Event Builder converts the event received by the input event adapter (in XML,JSON,Text,Map and WSO2Event formats) to event streams to send to the Event processor to process. Event Stream manager - Event stream manager manages all the event streams in the system.It is the central for all events as well. Event Stream manager stores the stream definitions in the governance registry and other components like Event Builder, Event Processor, Event formatter interact with Event Stream manager to retrieve stream definitions and event streams.
  • 43. Page | 36 Event Processor - This is the core event processing unit of the CEP. It manages different execution plans and process events based on logic with the help of different Siddhi engine.Event processor gets stream of events from the Event Stream manager and process the events and create new event streams as output and send them back to the Event stream manager. Event Formatter - Basically Event Formatter does the opposite of Event Builder, it converts the event of event streams into different formats such as XML,JSON,Text and WSO2Event. Output Event Adapter - Output event adapter publishes events to external systems and dumps data to databases for future analysis. This also has different adapter implementations most common ones are available default but can implement custom adapters for specific use cases. This is the basic architecture of WSO2 CEP and how the event process flow happens. There are so many different scenarios that the WSO2 CEP can be used. WSO2 CEP used by many customers around the world as a business solution like big data handling in stock exchange, Loan payment processing and etc. 2.3.2 Building ‘Carbon’ platform As mentioned WSO2 Carbon is the platform of all products. It consist with OSGI bundles which has interdependencies among the components. Before working in the carbon platform we need to build the carbon platform so the maven dependencies which are used in the developing will be downloading in building process. Completely successfully building a Carbon is quite a challenge since all the developers from different products teams are committing new stuffs, and busy with releases so there might be breaks. Building carbon needs following prerequisites 1. Linux 2. Oracle Java 1.6 3. Apache Maven 3.0.5 4. Subversion After check out from the Carbon source from the SVN ,There is a svn structure and sequence to build the carbon. Orbit, Kernel and Platform
  • 44. Page | 37 Orbit - This is the directory which consists with third party library which are required for Carbon core. In building Orbit it import third party libraries and convert them into OSGI bundles. Kernel - This is the Carbon core , it is the foundation for all the carbon products and has the implementation that are common to all Carbon products, such as clustering,transport security,logging etc. Platform - Platform contains all the carbon components for WSO2 products, and there is a complex build sequence in platform too.Annex A5 shows the WSO2 Carbon Platform . After building the carbon platform , all the maven dependencies are downloaded to the local repository it will be helpful to write new carbon component. 2.3.3 Carbon component In this componentized carbon platform contains the different carbon components which are use in one to several WSO2 products.In order to add a new functionality , component to the products it needs to be create as a carbon component it is the basic building block in this carbon platform. Carbon component is consist with main two sub components Server component- This is the back end of the carbon component it does all the processing UI component - This is the front end component which is the user interface. Apart from these components it has service stub which connect the front end and back end together. Following is the structure of carbon component Figure 2.7 Carbon Component Structure
  • 45. Page | 38 2.3.4 Event Simulator Event Simulator is the component that I was assigned to implement by the WSO2 CEP team. It is a brand new feature that I have to implement from the scratch and it would be a challenge as well as very helpful to learn rather than patching for an existing feature. Event simulator is a debugging and monitoring tool which will be very useful for users as well as the developers of WSO2 CEP. In implementing I created the Event Simulator carbon component. 2.3.4.1 Implementation of Event Simulator carbon component As mentioned carbon component has two main sub components , Event Simulator carbon component has the back end and front end components as well , following is the directory structure of the Event simulator carbon component. Here back end component consist with two modules Admin and Core modules. Core - org.wso2.carbon.event.simulator.core Core module is where all the processing happens in the Event simulator. Logic of the component is inside here. Following is the directory structure and the java classes of Core module.
  • 46. Page | 39 Here “EventSimulator” interface is exposed to the outside by OSGI register service in the “EventSimulatorDS” class. “CarbonEventSimulator” is the implementation of the interface where all the core code is written. “CSVDeployer” class is another important class which is triggered when new file is uploaded to the deployment directory in my case it should be CSV file. And file details can be retrieved using this class. Here component.xml file contains the following details about the CSVDeployer class, deploying directory and the file extension of required file to upload in to the deployment directory.
  • 47. Page | 40 When building the source using Maven, pom.xml file is called it reference to the parent pom files, dependencies, plug-ins, source files and etc. Following is the part of pom.xml file. Parent tag contains the details to reference to the parent pom.xml following the details of the core module. dependency tag contains the details of different dependencies which are used in this module. These dependencies are also OSGI bundles which are expose as OSGI services. And also this whole module is export package for the OSGI bundle. Admin - org.wso2.carbon.event.simulator.admin Admin module acts as a bridge to the core and to the front end UI. Admin module is exposed as a web service which is invoked by the front end using service stub. Following is the directory structure and the classes of Admin module
  • 48. Page | 41 Here “EventSimulatorAdminService” has the methods to access the exposed method in “EventSimulator” interface. This class is used as the service class for the “EventSimulatorAdminService” web service using this web service the service stub is generated which is used by the front end UI to invoke the different operations/methods in the Admin service. services.xml is the contains the target class (EventSimulatorAdminService) to expose as a web service and the which methods should be exposed as operations. Following is the services.xml code. <Parameter name=”ServiceClass” > reference the service class as EventSimulatorAdminService class. <opereation> are the methods that are exposed in the web service operation name should be the method name.
  • 49. Page | 42 UI - org.wso2.carbon.event.simulator.ui UI module is in the front end component which has the user interface. This module is very much like a web application module. I used Java script and JSP to implement the Event Simulator UI. UI doesn’t directly interact with the back end core instead it used EventSimulatorAdminService web service. In order to invoke the methods in web service it uses the service stub which is generated using the WSDL file of web service. Following is the directory structure of the UI module.
  • 50. Page | 43 In EventSimulatorUIUtils class EventSimulatorAdminServiceStub is implemented. “CSVUploaderclient” and “CSVUploadExecutor” class are used to upload the file . In component.xml class following configuration has to be done. <menu> tag contains the details of the link in carbon server navigator panel.The index.jsp page the homepage to be appear when click the link. <FileUploadConfig> - is mapps the CSVUploadExecutor class
  • 51. Page | 44 Service stub - org.wso2.carbon.event.simulator.stub Service stub is used by the UI as a client to invoke the “EventSimulatorAdminService” web service. Following is the directory structure of the stub. EventSimulatorAdminService.wsdl file is the description wsdl file of EventSimulatorAdminService web service. Using this wsdl file it generates the stub class. pom.xml file contains all the configurations to convert the wsdl file into java class and export package to OSGI bundle. Here it uses wsdl2java maven-antrun-plugin to convert the wsdl file to java stub class.
  • 52. Page | 45 2.3.4.2 Event Simulator Feature After Event Simulator carbon component is built it has to be released as a feature, This feature can be installed into the carbon product or in this case the WSO2 CEP, using Feature manager. In a carbon feature consist three sections , ● Server feature ● UI feature ● Composite feature Following is the directory structure of Event Simulator feature Server feature pom.xml contains the bundle dependencies of Core and Admin module. UI feature contains the bundle dependencies of UI and stub modules. And composite feature have dependencies from generated new server and UI features. 2.3.4.3 Event Simulator Final product After completing the Event Simulator component and the feature I successfully completed the project that I have assigned. And also I was able to contribute to the recent WSO2 CEP 3.1.0 release with the Event Simulator 1.0.0 version which is already using by the customers as well.
  • 53. Page | 46 Need of an Event Simulator Event Simulator can be used as a debugging and monitoring tool in different aspects for both users and the developers of CEP. Specially to debug Execution plan, Event Output adapter and Event Formatters. Following is one of scenario where Event Simulator can be useful. Debug an Execution plan After creating an Execution plan if we want to check whether it gives the correct output , whether to check it is working well or not. In that case we should have to send event streams through the execution plan according to the import stream in the execution plan. In order to execute such a scenario currently we have to implement an external event source (client) to send events to CEP, and then have to configure Input Event Adapters, Event Builders . This is a bit of time consuming work for a simple debug. In such a scenario we can use the Event Simulator to simply create events and send them through the execution plan. Underlying Architecture and Event flow Figure 2.8 shows the position of the Event Simulator in CEP architecture and the flow of events. Event Simulator gets the stream definitions from the Event Stream manager and according to the user perspective which will be described later, Event Simulator creates events and send them back to the stream manager where it connects all other component such as Execution plan, Event Formatter, Output event adapter as stream is defined.
  • 54. Page | 47 Figure 2.8 - Event Simulator Architecture Use cases of Event Simulator Event Simulator has mainly two use cases. ● Send Single Event ● Send Multiple Events
  • 55. Page | 48 Send Single Event Figure 2.9 Event simulator send single event Event Simulator has sending single event capability, First selecting the Event Stream definition which have to create events. And it generates the form with input fields according to the stream definition attributes as shown in figure 2.9. Then user can input the appropriate values to the input fields and by just clicking the send button, it create the event and send them to the components (Execution plan, Event Adapters, Event Formatter) defined in the event stream. Send Multiple Events Figure 2.10 Event Simulator send multiple events
  • 56. Page | 49 Event Simulator can be used to send multiple events as well.In order to create multiple events it uses CSV files which has the event details. Using the UI user can upload a CSV file which has the event details, and this CSV file need to be containing event details line by line for an event and all the details should be according to a one stream definition. After uploading, the uploaded files are shown in the UI as in the figure 2.10. Then the file has to be configured for the target event stream Clicking the configure button will pop up Event Mapping Configuration window as figure 2.11 Figure 2.11 Event Simulator file configuration Figure 1-Event Simulator file configuration After configuring the file ,user can create and send multiple events by clicking the play button, these events are sent to components (Execution plan, Event Adapters, Event Formatter) defined in the event stream. 2.3.4.4 Event Simulator Future improvements Event Simulator is planned to record the event streams that are going through the Event Builder and these streams of events are saved into a CSV file and can be reused to send events.
  • 57. Page | 50 2.4 Non technical experience In addition to the technical experience I got from WSO2 I have experienced so many non technical social experiences as well. WSO2 doesn’t treat interns as outsiders they treated us like a part of WSO2 family. Every facility, events that are given to the employees are given to us too. WSO2 Con 2014 Asia WSO2 Con is the annual conference held by the WSO2, we all interns are selected to this valuable opportunity. WSO2 Con 2014 was held in the water’s edge, Battaramulla. Theme of the WSO2 Con Asia 2014 was “Connected business”. It has been held for three days the first day was tutorials session that I participated the tutorials about javascript world and the Turning events and Big data into insight with WSO2 CEP and WSO2 BAM. Then the following two days had special keynotes, presentations, tech talks and etc. And there was a networking session organized in the evening in both days. Where all enjoyed and had great fun with tasty foods, dancing, listening to music and etc. WSO2 year-end party WSO2 organize an annual year end party where all are enjoying and celebrate the success throughout the year. This time end of the 2013 Year end party it was named as year-end dance was held on Cinnamon Lakeside hotel. Every employees participated in the occasion and it had several events as well. Sports Activity WSO2 provide several sports facilities for their employees. This is very much helpful them to release stresses hang out with others and enjoy the work rather than getting stressed. WSO2 has basketball court, Gym, pool table, table tennis table, carom, cricket, hockey and etc.
  • 58. Page | 51 WSO2 has organized a pool tournament which I have won the championship with my partner Nadeeshan. And we participated in a bowling tournament in the Excel World where all the interns enjoyed well in their final day of internship. There are lot more activities that we have participate,learn and enjoyed.Such as award ceremony, WSO2 planning meetup, CEP team outing They were great experience that I have gain in my life. I felt so happy that I’ve been the part of WSO2 family that makes fame to our country in the field of software industry. 3. Conclusion 3.1 Experience My internship period can be divided into 3 main periods ● Fast track training period ● QA portal project ● Event Simulator project in CEP team In these three periods I got opportunity to learn so many new technologies that I haven’t experienced before. In the fast track I studied so many new technologies and practices them. Then those technologies that I have learnt can be able to applied in a practical scenario in QA portal project and Event Simulator project. Some of technologies that I have learnt are XML, Web services, Axis2, REST.JSON, SOAP, OSGI framework, javascript, jquery ,JSP,SVN and etc. And also I learnt how to apply the knowledge that learnt from university to real world application. I got to know how the actual software development process happens in a real worlds in the industry and was able to work with it and had a very good experience. Other than all the technical knowledge and experience I learnt how to behave in a professional way, how to collaborate with the fellow employees, how to be an effective team player, how to get help from others, email ethics and etc..Although working in the industrial environment is totally different from the university environment I was able to adopt it very quickly with the great support from
  • 59. Page | 52 the employees of WSO2. With all of these experiences this was one of the greatest experiences I gained in my whole life 3.2 WSO2 as a training establishment I can highly recommend WSO2 as a great training establishment that gives a complete exposure to the global software industry in a modern company background. WSO2 has a special training program which gives a great technical knowledge in very practical manner and also the other social knowledge which is needed to be a professional software engineer. WSO2 took 24 students as interns, highest number of interns recruited by any company. I think reason for this is WSO2 has all the facilities to provide good training program for all of them and they have large number of product teams and employees who can supervise each one of us. I believe they have provided great and valuable internship program for all 24. And also WSO2 consider this as a future investment too. The training program fast track program they have provide for interns is the same program that they provide for new employees. So if they recruit an intern as an employee in future they wouldn’t give the fast track for them. This shows the quality of the program.Also interns have opportunity to take part in the product teams in actual software development process. As my experience I was able to contribute to the WSO2 CEP 3.1.0 release with my new feature. Most important thing is the support that give by all the employees to the interns. WSO2 culture is made with helping to each other. Although we are working in a one product team all the product has dependencies so they all are connected so we have to deal with other product teams as well, this WSO2 culture has make all employees are willing to help. In my experience when I have an issue and ask it from a fellow team members they not only help to fix the issue but they explain background in it and the basics of the scenario and all of these things that we should have to learn as an intern. An additionally they organize technical and non technical training session for the interns. This is very good opportunity to get to know some of giants in the software industry, Interns are invited to all the events that WSO2 organize such as year end party, award ceremony, WSO2 planning meetup, sports events, team outing and lot more events where interns can hang out with all the employees from CEO, directors,architectures to all other employees. And we can learn so many thing from their knowledge and experience.
  • 60. Page | 53 I can’t imagine any kind of negative feedback on my 6 months of training at WSO2, because I gained maximum advantage from the internship at WSO2 in technical aspect as well as non technical aspect. I think WSO2 will continue this training program in future as well because I don’t see anything is missing or should be improved in the training program. As conclusion, I can say WSO2 provided very valuable and great internship to me and as well as my fellow interns. And I can recommend WSO2 as one of the perfect place for anyone to work as an employe or an intern.
  • 61. Page | liv Annexes A1 A2 WSO2 Product overview
  • 62. Page | lv A3 Axis2 Engine Architecture A4 WSO2 CEP Architecture and Event Flow
  • 63. Page | lvi A5 WSO2 Carbon platform structure
  • 64. Page | lvii References 1. http://wso2.com/ 2. http://axis.apache.org/axis2/java/core/ 3. http://jaggeryjs.org/ 4. https://docs.wso2.org/display/CEP310/About+CEP 5. http://www.w3schools.com/webservices/ws_wsdl_ports.asp 6. https://sites.google.com/a/wso2.com/training-knowledge-base/xml?pli=1 7. http://wso2.com/library/tutorials/2014/03/how-to-write-a-wso2-carbon-component/ Abbreviation API – Application Programming Interface ASF – Apache Software Foundation VP – Vice President UI – User Interface IDE – Integrated Development Environment CEP – Complex Event Processor OSGI- Open Service Gateway Initiative PaaS – Platform as a Service SOA – Service Oriented Architecture SVN – Subversion XML – Extensible markup language XSLT – Extensible Style sheet Language Transform QA – Quality assurance CEO- Chief Executive Officer WSDL – Web Service Description Language SOAP – Simple Object Access Protocol FOSS –Free and Open Source TG – Technical Group OS – Operating System DOM – Data Object Model SAX – Simple API for XML STAX – Streaming API for XML XSD – XML Schema Definition
  • 65. Page | lviii POJO – Plain Old Java Object TCP – Transmission Control Protocol HTTP- Hypertext Transfer Protocol DSS – Data Service Server AS- Application Server REST – Representational State Transfer CSV- Comma Separated Value BAM – Business Activity Monitor

×