30
UNIVERSITY OF MORATUWA Faculty of Engineering MN4062: Organizational Behaviour Individual Assignment Training Report WSO2 Lanka (Pvt) Ltd. Dissanayake A.Y. 120126K Department of Computer Science & Engineering Date of submission: 9 th May 2016 1

Internship Wso2

Embed Size (px)

Citation preview

Page 1: Internship Wso2

UNIVERSITY OF MORATUWA

Faculty of Engineering

MN4062: Organizational Behaviour

Individual Assignment

Training Report

WSO2 Lanka (Pvt) Ltd.

Dissanayake A.Y.

120126K

Department of Computer Science & Engineering

Date of submission: 9th May 2016

1

Page 2: Internship Wso2

Preface This document consists mainly of the complete record of the internship I had at WSO2 Lanka (pvt) Ltd as a software engineering intern from 28th October 2015 to 22th April 2016 and the information about the organization itself. The content boils down into three main chapters: Introductory description about the training establishment, description about the training I went through and a conclusion of the overall experience I had during this time period. It is imperative to have solid and sound idea about the culture of the organization. Without the a proper knowledge of the functionality and the routines of the company, it is not possible to perform effectively within any organization. Hierarchy and the structure of the company is also a very important factor when it comes to our role as a team player in an organization. While grokking these, the most vital thing is to understand the business process, technology, strategies and other standards of the organization. Hence, in the first chapter, I will provide an expansive description of these topics. The second chapter elaborates the overall experience I had during the internship period. It contains both technical experiences and the not technical experience I have gathered. Unlike the previous internship programs, we have undergone a special training program which is given to any fresh regular software engineering employee in the the company. The purpose of this is to get us prepared before joining into the actual product teams. During this time period we got to know about company culture, it’s ethics, clients, all products erc. . After the completion of that project, I was assigned to research team. There, I have implemented a 2 new systems one for Wso2Con Asia 2016 and one for USA Presidential Election. In the meantime, we were able to gather knowledge and experience on team working, effective communicating, presentations and many other life skills as well. Moreover, I got the opportunity to participate in many major events of the organization and some other jovial events as well. Most importantly, it is about the essence which I need practice in order to join and perform well in the industry as a software engineer. These facts will be expressed descriptively in the proceeding chapters. The concluding chapter contains my own notion about the internship I have experienced during the past twenty four weeks. I have assessed and evaluated the pros and cons of the organizations and how I should be adapted in order to perform at my best in the industry using my internship experience.

2

Page 3: Internship Wso2

Acknowledgements I would like to make this a privilege to send my gratitudes to each and every person who has been out there for my assistance to get the best out of this internship. This will not have turned out as one of the best professional experiences I have gathered in my life without the great contribution afforded by them from the beginning to the end of the whole 24 weeks of the internship. I would take this opportunity to thank Dr. Dr. Chathura R. De Silva, Head of the Department of Computer Science and Engineering, Faculty of Engineering, University of Moratuwa for the guidance offered and the effort made to provide us with training establishments. Moreover, I should thank Dr. Dilum Bandara who is the industrial training coordinator of the department for his immense dedication. I am really grateful to him as he made sure each and every one of us will be getting a very good training establishments for our internships and organized introductory sessions from those organization to make us more aware about their technology and guided from selecting an organization to the completion of the internship. I would also like to thank Eng.Plnr. Ananda Gamage, director of Industrial Training Division, University of Moratuwa and all staff members of Industrial Training Division for providing necessary facilities for the internship and keeping track of our work and the quality of the training provided by each training establishment. Further I like to thank officials of National National Apprentice and Industrial Training Authority who guided us to learn what is intended from this internship in the sense of an professional in the industry and examined us throughout the internship period. I am extremely grateful to Dr. Sanjiva Weerawarana, Founder, Chairman and CEO of WSO2 Lanka(pvt) Ltd offering me this invaluable opportunity to work in a globally recognized organization. I should be thankful to Selvaratnam Uthaiyashankar, Vice President of Engineering at WSO2 who conducted the interviews for me before recommending me for the internship at WSO2. I’m also grateful to Dr Srinath Perera, vice president of research at WSO2 who has been there for us guiding from the beginning to the end on how to enhance our knowledge and skills with the environment provided by WSO2 to build our career. I am thankful to Mr. Thilina Deharagoda, Director of Administration and Human resources for her assistance provided to us in order to gather a better learning and professional experience during our internship period.

3

Page 4: Internship Wso2

I am really thankful to the team member of the WSO2 Complex Event Processor, Enterprise Service Bus and Data Analytics Server teams, who guided me in my project. I would like to mention specially Mr. Vivekanandalingam Mohanadarshan, Senior software engineer, Mrs.Sachini Jayasekara, Software Engineer, Mr.Tishan Dahanayakage,Software Engineer, Mr.Niranda Perera, Software Engineer , Mr.Isuru Perera,Associate Technical Lead ,Miss. Dilini Muthumala,Software Engineer,Mr.Buddhima Wijeweera,Software Engineer, Mr.Gihan Anuruddha,Senior Software Engineer,Mrs.Sinthuja Ragendran, Associate Technical Lead and Dakshika Jayathilaka,team lead UI team who gave me an immense help during by providing me supervision during my implementation. I highly appreciate their support during the demonstration and the code reviews amidst their busy schedules. Finally I will thank each and every employees other interns including minor staff in WSO2, who had been there for and with me during this entire time sharing each others experience and thought to improve our knowledge and skills. I am grateful to everyone for making this an exhilarating time period of my career.

4

Page 5: Internship Wso2

Table of contents i. Preface ii. Acknowledgements iii. Table of contents iv. List of figures v. List of tables 1. Introduction to the training establishment 2. Training experiences 3. Conclusion Annexes References/ Bibliography [1] Handbook [2] http://sanjiva.weerawarana.org/2009/08/wso2-is-4-years-old.html [3] stackoverflow [4] wso2con [5] WS-BPEL Acronyms/ Abbreviations

5

Page 6: Internship Wso2

1. Introduction to the training establishment. 1.1. About WSO2 Lanka (pvt) Ltd The term “WSO2” is an abbreviation for the name “Webservices Oxygen”. As the name implies, WOS2 has been able to become the life breath for most entities who are in search of better solutions in web services. The organization has been founded in 2005 by pioneers in XML and web services technologies and standards as well as open source. It offers a complete SOA platform, 100% free and open source and with cloud approach through WSO2 Stratos. It also offers the only known only 100% open source PaaS in the current era. WSO2 is mainly focused on developing and producing top quality products and they have the base on the free and open source Apache software stack. Hence all of the products are released under the Apache Software License. The company consists of locally and globally recognized set of passionate software engineers, accountants, marketing experts and many other professionals who enjoy and work hard to perform their best in the industry. Most of the software engineers are committers of software projects like Axis2, Rampart, Synapse, Sandesha, Transport, Cassandra, Commons of the Apache foundation and various other software communities including Eclipse, Ruby and Rails. All the products at WSO2 are developed around one core called “core carbon framework‟ which has the base in Apache Axis2 and company encourage employees to build their own personal brand contributing these projects.

6

Page 7: Internship Wso2

In overall, there are several servers in WSO2 products which help its’ users to start with a connected businesses when it comes to web based solutions. Following are the examples for some of these:

● Identity server: Provides authentication and authorization, manage security aspects of systems in a variety of range from simple shopping application to a military system.

● Data Analytics Server: Comprehensive enterprise data analytics platform; it fuses batch and real-time analytics of any source of data with predictive analytics via machine learning

● Enterprise Service Bus : Effectively addresses integration standards and supports all integration patterns, enabling interoperability among various heterogeneous systems and business applications.

To most people, it is not clear how this process leads to a sustainable business. To provide training, support and consultancy for their products to the customers is the main business strategy of WSO2. As products are free to download, test and play with, if the customer is willing to have WSO2 support and training to bring up a business solution for them, then they are charged for that service. The company maintains a SOA developer portal called „WSO2 Oxygen Tank‟ which includes a knowledge base, articles, webinars, screencasts and tutorials which creates an online resource center for anyone who intend to try out WSO2 products without any expenses. Not only with Apache software foundation, being an open source organization, WSO2 has been able to build so many connections around the globe and some of them can be indicated as follows.

● The World Wide Web Consortium (W3C) ● Microsoft‟s InterOP Vendor Alliance InfoCard Foundation ● OASIS ● OpenID Foundation ● NBQSA Competitions ● AMQP Working Group ● SOAP, WSDL and WS-SEC standards ● OCERT and OAuth

WSO2 has its’ branch offices in USA and Sri Lanka and it has customers throughout the world. The office in USA is at Bloomington. Those are the the latest establishments of the organization. Those are still in their growing stages regarding the technical development activities. The branches in Sri Lanka acts as the main research and development center of WSO2. It currently

7

Page 8: Internship Wso2

operates from the offices located at the address: 20, Palm Grove, Colombo 03 and Trace Building, Maradana, Sri Lanka. WSO2 is still a young player in the industry with an age of 9 years, yet it has been able to make an impact which confronts the industrial giants who have been in the arena for many years, with a great challenge. In the current situation, ,many of the customers are beginning to admire the high performance and light-weight solutions that WSO2 provides with comparison to IBM, Oracle and Microsoft. WSO2 has achieved its’ position as one of the top open source SOA organizations with a small team size. I can undoubtedly say that WSO2 has instigated a revolutionary step in open source software in Sri Lankas’ software industry and proved to world its’ value and capabilities. 1.1.1 Culture of the organization Culture is strongly bonded with the term “Open source, Open culture” within the organization and in the outside relationships. Everything is open and welcome to everyone, employees and and customers. Some of the aspects of this culture are as follows:

● Flat hierarchy: ○ First come first serve basis in almost every thing. ○ Calling by the first name from CEO to the maintenance staff. ○ Decision making done with the approval of all the parties involved in the event

and communication is transparent to the entire organization, so that any interested party can give their opinion as well.

● Using WSO2 properties:

○ If an employee is given a WSO2 asset(Laptop, tablet PC, book, etc.) for private use, it is employees’ responsibility to maintain it properly.

○ These assets will have to be return to the company when leaving or upon request. ○ Assets such as web services, internet bandwidth, servers, user credentials,

libraries should be used with care. ○ No asset can be used for personal purposes.

● Collaborative work

○ Each and every employee is responsible for helping each other. ○ Employees should respect each other. ○ They should avoid speaking in native languages when there is a person who does

not speak that language.

8

Page 9: Internship Wso2

● Every employee should adhere to Unlawful Harassment Policy (annex 1) and act

accordingly.

● Flexible working hours ○ The constraint on working hours is almost zero. Employees are able to keep their

own working hours. This promotes employees’ freedom at work. They do not need to work in fixed hours unless during urgent events

○ It is mandatory to attend to the meetings, code reviews, discussions and conferences sharp at time.

○ If employees have to work overnight, dinner and transport will be provided by the company upon their request.

● Vacations and leaves

○ Employees have the freedom to have vacation plans and leaves as they want. ○ Merchandise holidays are company holidays as well. ○ Engineering employees can work from home. ○ Official holidays are there at the end of the year.

● Food and beverages are freely available for employees.

1.2. History of WSO2 Though WSO2 does not have an official inception day, it has declared its birthday as 04 th of August 2005 because lots of important things happened around that day including incorporation of USA company, incorporation of Sri Lankan company, incorporation of UK company and finalizing funding. At first the company came up with the name “Serendib Systems” and later changed to WSO2 because of a request from an investor [2]. Those initial investments setted a financially strong foundation for the company, so it gradually started its developments step by steps with a group of talented, skillful people to bring the core carbon framework into its functional state. As a result of their commitment during the initial bitter times, WSO2 culminated as a strong competitor who keeps abreast with giants in the middleware industry who have been there for a long time.

WSO2 first product was WSO2 Tungsten Web services application server and it was released in August 2006. By the end of 2006 WSO2 released an alpha version of its’ Enterprise Services Bus, WSO2 ESB. They have initiated WSO2 Carbon project and it was the first fully

9

Page 10: Internship Wso2

componentized service-oriented architecture (SOA) framework built on the OSGi specification combining all core features of previous products in the industry. Currently WSO2 has created a competitive environment for Oracle and IBM companies who are having similar kind of products. 1.3. Vision of WSO2 WSO2 has been prevailed persistently with a firm and clear vision for the future improvements regarding products, customers, employees and growth of technologies. Vision of WSO2 can be boiled down to following main four categories. 1.3.1. Reinvent the technology At the time when WSO2s’ inception, the industry was ruled by giants such as Oracle and IBM. But WSO2 kept strong in its’ belief that they can reinvent the technology so that in order to achieve the benefits that current industrial giants did not possess. With the advantage of starting a project from scratch, WSO2 has put the full effort to build up Carbon platform, which is currently considered as one of the most advanced middleware platform. In order to refrain from foreseeable pitfalls, the platform was designed to defend issues and increase the performance. By adopting OSGi (Open Services Gateway initiative) framework, components of framework enables lean, high performance approach with self-consistency across the platform and provide pluggable behavior. With the help of that approach users will be able to use the components what they actually require and invent their own solutions for their needs. In addition to being able to customize the products, WSO2 provides opportunity for building multi-tenancy, elasticity, instant provisioning, monitoring the performance and make the platform as a service (PaaS) in public and private clouds. Likewise, WSO2 is playing a major role in cloud computing, which is an emerging field in computer based world. 1.3.2. Reinvent the business relationship Despite the technology at WSO2 has cutting edge aspects, the core value is recognized as the quality of the business relationship with the customer. So WSO2 has taken radical steps to a customer-oriented company. All product software created in WSO2 are 100% open source, built in under a fully open and transparent development process. For this purpose, the personnel use wso2.org mailing lists and the ASF mailing list. There are no any license fees or trial version that expires within a period, as

10

Page 11: Internship Wso2

all the products are released under the Apache License 2.0 which means that there is no any restriction on the products. There is no community license or evaluation license. Each and every user use the same version of product and they will get the same functionalities. The value WSO2 brings to products uniquely is the relationship build with customers in customizing the products to meet the maximum efficiency for the customers’ context. Through the high quality training, support, consulting services, 24x7x365 production support, or an entire solution, WSO2 suffices its’ main objective to provide high quality expertise to each customers’ unique needs. 1.3.3. Reinvent the support model Only marketing is not sufficient for a business to be successful and prevail in the industry. It also requires to have very strong and sensitive customer support service which can understand the responsibility of running the system. Deviating from the conventional supporting systems, WSO2 uses an online support system, which allows users to direct the issues to the best source of expertise including WSO2 developers on the product or committers to the open source project. With that kind of a system, WSO2 provides the chance for the users to interact with the most suitable person as soon as possible directly. WSO2 does not have a separate group of people called “Support Engineers” in the premise, but uses engineers who actually contributed in the development as they are the people who are most familiar with the products. Hence they will know where exactly is the problems occur and figure out exact solutions for the issues that customer requires solutions for. When required, WSO2 provide hot fixes, patches, and service packs to make the system up and running well. Except for the production support, WSO2 does not ask customers to pay for bundle of services with even a little amount of value. Instead WSO2 gives opportunity for customers to purchase the most appropriate service they need. That would let the customer to maximize the value of return on investment as well. WSO2 believes that the successful customers are the best way to make the company a successful one among rest of the companies in global middleware market. 1.3.4. Create a great place to work With the incomparable experience, the CEO and co-founder of WSO2, Dr. Sanjiva Weerawarana always pursued after goals not only like reinventing the technology, creating business relationships and improve support model for enterprise software, but also bringing Silicon Valley-style entrepreneurialism to Sri Lanka. As a result the heart of WSO2 development and operations is centralized in Colombo, Sri Lanka.

11

Page 12: Internship Wso2

With close relationships with the top local universities and building creative spirit and global leadership in open source technologies, WSO2 has been able to achieve its’ position as a paradise for local innovators. WSO2 was able to actualize the dream of creating Apache committers from Sri Lankans, which was earlier considered a way out of league target. WSO2 encouraged personal development of its employees up to a state where they get to leave the company for doctoral studies abroad. These employees are also encouraged to return to WSO2 or to instigate new entrepreneurial companies in Sri Lanka, or to find employment in other organizations where they can invest their talents to make Sri Lanka and the whole world a better place to live. WSO2 has that one and only vision that is not in the rat race after money or fame. It has built a sustainable business that benefits both customers and the company with employees and finally adding value to Sri Lanka and the whole world. This is truly admirable and it make a charismatic place for true innovators. 1.4. WSO2 business model This organization is offering a 100% FOSS (Free and Open Source Software) products and those can be downloaded at freely by any intended user and they can do whatever changes they want in those systems. Thereafter they can use famous building tools like Maven to build customized version of that product. This process makes customer to try on WSO2 products before they bring it into the business. This strategy sets WSO2 completely apart from the giants in the industry like IBM or Oracle, where the customer has to pay even before getting the product. Through an enterprise system customers expect a great performance, low risk, good quality and availability of 24x7x365 support, where WSO2 identified as the opportunity to earn the income. Selling software support, providing training, on-site and off-site consultancy for the product stack will bring the revenue for WSO2. In addition to that some client projects are also carried out. This innovative business model enables WSO2 to compete with industrial giants like IBM, Oracle and Microsoft who were there for long time and get the preference of customers. 1.5. Organizational structure of WSO2

12

Page 13: Internship Wso2

Within the premise, WSO2 maintains a very flat and informal hierarchical structure and everyone is treated equally regardless of their maturity. This structure can be divided into sub sections as follows.

● Leadership ● Advisors ● Engineering ● Marketing ● Sales ● Operations

1.6. Products and service of WSO2 Every single product of WSO2 is 100% open source products and base on open standards. These product are base on the concept of SOA. The main advantage of WSO2 products is those are built on a common foundation - WSO2 Carbon, a modular, reconfigurable, elastic, OSGi-based architecture. This creates a strong stable base for building large-scale enterprise applications, as well as integrating with legacy and existing applications. (Annex 2) This structure allows WSO2 products to have the following characteristics.

● High customizability. ● High flexibility. ● Consistency among products. ● Ability to integrate with large number of legacy and package apps.

WSO2 product can be categorized according to the following structure. 16.1. Middleware platforms 1.6.1.1. WSO2 Carbon platform This is the core of many of the WSO2 products. It is a lean, complete, OSGi-based platform which includes more than 175 components – OSGi bundles or Carbon features. The WSO2 Carbon core framework functions as “Eclipse for servers” and includes common capabilities shared by all WSO2 products, such as built-in registry, user management, transports, security, logging, clustering, caching and throttling services, co-ordination, and a GUI framework.

13

Page 14: Internship Wso2

1.6.1.2 Data services WSO2 Data Services Server comes under this category. This provides unprecedented data access and straightforward integration with business processes, mashups, gadgets, business intelligence and mobile applications. it also supports secure and managed data access across federated data stores, data service transactions, and data transformation and validation using a lightweight, developer friendly, agile development approach. 1.6.1.3. Connectivity services This category consist of Application Server and the Message Broker.

● Application Server: It allows business logic and data to be processed across the entire IT ecosystem.

● Message Broker: This enables applications to exchange communications asynchronously or publish messages for timely access by many subscribers.

1.6.2. Mobile platforms Under this category, WSO2 has Enterprise Mobility Manager. This is a is a comprehensive platform that helps solve mobile computing challenges enterprises face in the present when dealing with both corporate owned, personally enabled devices and employee owned devices as part of a bring your own device (BYOD) program. 1.6.3. Development tools WSO2 Developer Studio is a complete Eclipse-based SOA development environment for the WSO2 Carbon platform. Using that, developers can define a project representing a complete Composite Application (C-App) spanning multiple products and features. Developer Studio, immensely simplifies creation of artifacts with graphical editors and management of the links and dependencies between these services. Developers can develop, debug and deploy composite applications and Web services on-premises and in the cloud from one environment. 1.9. Contribution from WSO2 to the society

14

Page 15: Internship Wso2

It is not a secret that WSO2 has been able instigate a new era of software industry here in Sri Lanka. It has enable Sri Lankan professionals to contribute in globally recognized projects in Apache Software Foundation in large scale. Unlike the most conventional software companies in Sri Lanka, which act as branches or affiliations of foreign software companies, WSO2 has managed to create its’ own brand and establish it the industry. The annual event, WSO2Con brings together expertise from the world and makes it an opportunity for Sri Lankan professionals to meet with them and exchange ideas. Selected student participants get the opportunity to take part in this event for a very low price whereas the actual tickets are not in a affordable price range for students. Moreover, regarding the education in Sri Lanka, WSO2 encourages its’ employees to engage in further studies in renowned universities outside Sri Lanka. In addition to that, many top level employees in WSO2 provide mentorships for student projects in local universities and provides internships, so that undergraduates can get exposure to the industry. WSO2 also sponsors the events organized by universities. It has also initiated many CSR projects. 2. Training experience. 2.1. Beginning of the internship at WSO2 On 28th October 2015, I stepped first into the WSO2 office as fresh intern. From the beginning, it has been a new and exciting experience for me, since I have never been in such an environment before. We were welcomed by Mr Charitha Bandara-Lead, Administration and HR and Ms Pramila Rajapaksa, senior manager of human resources and administration. First we started 3 days training program. That programme start with introductory session to get to know each other including their passion and brief summery of themselves. To get familiar with the company culture and other traditions of the company, Mr Charitha conducted an introductory session on the culture, hierarchy and other technical and non technical information which will be useful for us in the upcoming period. He introduced us to the people who can supervise us during the training program. After this session we were given our first job. It was to wander around the office, find information about the WSO2 products, culture, hierarchical structure and events then prepare group presentations on them. We got to know senior staff as well through the different activities like “1st time run assassins”which is like a treasure hunt. There were several session on harassment, email etiquette etc. Mr Waruna De Silva introduced

15

Page 16: Internship Wso2

us a product and architecture of the company. In the session of “How to do a proper presentation” by Zaithoon Bin Ahamed-Lead Marketing Officer introduced us to basic steps of presentation introduce us a basic and very useful steps of presentation preparation, creating contents , proper delivery and appearance. In the session of personal branding we learned how to have good social and cultural relationship. And also touch us not to be a duplicate of another person and try to be yourself. Within that session we got to know what sanjiva is expecting from us as a employees using his talk at the wso2Con 2015. After that we were lead to Mr. Dinesh Edirisinghe, Assistant administration officer to get our laptops to be used during the training period. During the first day at the office we configured our laptops so that they can be used in training and development purposes. I installed Ubuntu 14.04 operating system and installed other required software packages. After those initiatives, we have been assigned to Dr. Srinath Perera, VP, Research. From there on we had to work under his supervision in research teams. At the beginning he provided us with some knowledge about the technologies we need to understand before working with the product teams. He introduced the products, what are they for and how the development process goes in WSO2. He told us that there will be different procedure for us unlike the previous batches from Department of Computer Science and Engineering. 2.2. Beginning of 1st Project- US Election Analytic System 2.2.1 Collect tweets from twitter API At the afternoon he arrange meeting and explained us our 1st task to implement a “US Election 2016 analytic system ” . He told us to use wso2 3 major products

1. Enterprise Service Bus(ESC) 2. Complex Event Processor(CEP) 3. Data Analytic Server(DAS)

And he assigned us Mr. Chanuka Dissanayake,Software Engineer to get more helps and It was our job to report our progress as we complete each task. 1st task of our project is to collect tweets from twitter API and pass them to CEP and DAS(Figure 2.1).

16

Page 17: Internship Wso2

Figure 2.1 Initial design of 1st project

There was 2 members in our team and we both together have to do this task. So 1st we get to know about ESB and connectors of ESB through documentation within first few days we could able to get tweets from twitter API through twitter connector and custom inbound endpoint and pass them to CEP and DAS servers as cloned streams through http receivers. After passing data to the CEP we used siddhi event tables to store data to the mySQL database which is locally placed. And in DAS we use persisted event stream to store data to the analytic databases in DAS. Then we wrote jaggery script and get the data from database and display. With that we finished our first task and started our next task after held meeting with Dr Srinath. 2.2.2 Write analytic script to tweets At the second meeting we go separate tasks. There was 2 major use cases which can be handle using CEP and DAS. they are

1. Community map using d3 library 2. Implement tweet ranking algorithm using CEP and selection algorithm based on minor

research. I was assigned to CEP and Dinali was assigned to work on d3 scripts for community map. First I wrote custom siddhi stream processor to CEP. This make much complicated because rank should be depend on current time. And also need to remove duplicate events while replacing the maximum rank to the event. So I have to recalculate events ranks which are inside the window to the current time time. So I used following(Figure 2.2) optimized algorithm for my implementation.

17

Page 18: Internship Wso2

Figure 2.2 After That I began the research part to find constant parameters and best suited algorithm to protect behavior of tweets which when we take top 200 window tweets must be updated as far as

18

Page 19: Internship Wso2

possible and also should keep 80th percentiles of tweets for a long time period near 24 hours from following (Figure 2.3 )algorithms.

Figure 2.3

For the plotting I use python..After that I wrote blog post including graphs and results summaries such as bellows.

Figure 2.4

Figure 2.5

Then we apply them to tweets as well as links in tweets and created a dynamically moving tweets list using javascripts and jaggery.

19

Page 20: Internship Wso2

Figure 2.6

Figure 2.7

For the to tweet link selection I have to design a flowchart to minimized the http request count and optimized the server side wait as following(Figure xxx).

20

Page 21: Internship Wso2

Then I finish that part and move to write a script to select party of the user when displaying it in community graph. That function is the most cost and critical function in our system because we need to have historical analysis for selection party of user. For that we need to visit user’s twitter account and get his historical tweets and decide a party based on hashtags which he had

21

Page 22: Internship Wso2

mentioned and getting the top percentage as a party.. For that I use following algorithm which took least time.

Figure 2.9 After deciding party of user ,the tweets are directly stored in analytic tables. Then using sparks scripts choose node tables and edge tables separately and feed them to d3 library through REST API. Following i is the final view of community graph(Figure 2.10). Generating graph using d3 is done by Dinali and writing sparks script part done by Chehara and myself.

22

Page 23: Internship Wso2

Figure 2.10

Then I move to the sentimental analysis part. That also include few research parts which we should compare.I wrote RSS reader as CEP extension and extract top 10 full texts of news articles and extract their titles. Our intention is to apply sentiments on those text chunks which has extracts from google news through google news ranking algorithm and searching through candidate full name. While we doing that we design to display news items on election 2016 for every 15 time as a new ticker as following.

I selected several method which are commonly used for sentiment analysis and then with the help of Yudhanjaya Wijeratne,Marketing Officer selected the 10 articles with the human read and put some sentiment scores. Then we run all sentimental analysis algorithms through that article and get results

23

Page 24: Internship Wso2

and plot them as following (Figure 2.11) using python script. Then took the algorithm which had most close result to human assign ranks.

Figure 2.11

Figure 2.12

24

Page 25: Internship Wso2

After that I implemented it as CEP extension and then display the result as bar chart using vizgramma library as follows(Figure 2.13). I put top 3 news item per day as tooltip.

My next task is to implement an extension which could count unique users for each party for 24 hours. For that I use unique counting time batch window which return me the most lates count for each user. That part is display as following as real time updating counter using jaggery and js.

25

Page 26: Internship Wso2

My next task is to create wordcloud.

2.3 Implement wso2Con track monitor for wso2Con 2016 (under project works this can move to anex)

26

Page 27: Internship Wso2

27

Page 28: Internship Wso2

2.4 Code Reviews Notes Some I got to know in code review

● There were several coding guidelines that we should adhere with. Because in the product teams, the code quality is required, practicing according to these guidelines were very important. Eclipse IDE users should use code cleanup template and code formatting template prepared for WSO2 standards.

● There were coding standards we should practise. These are as follows.

28

Page 29: Internship Wso2

○ Comments: Regarding the Doc comments, All classes and all methods/functions MUST have doc comments. There each parameter, return type and assumptions made should be clearly explained.Regarding the line comments, In case we have complex logic, we have to explain it and the rationale for using that methodology.

○ When logging, we should make it a habit to log then and there with ample local information and context. We need to remember that logs are for users. So those need to be meaningful, readable and also spelling and grammar should be correct. We have to use correct log level, for an example, not to log errors as warnings or vice versa. Before throwing any exception, it is required to log the error otherwise there is no use in logging as that point of the code will not be reached.

○ There are several considerations when implementing our logic. We should make our code readable first. It is required to use meaningful variable names as compilers are able to handle very long variable names. Variables should be declared in locality only when required. The underscore character should be used only when declaring constants, and should not be used anywhere else in Java code. Important thing about function/method names is they should be self descriptive. One should be able explain a function/method using a single sentence without conjunctions (that is no and/or in description). We should use status variables to capture status and return at the end whenever possible. In case of

returning a collection, the program must return an empty collection and not null (or NULL). We should not use interfaces to declare constants. Use a final class with public static final attributes and a private constructor. It is a good practice to always use braces to surround code blocks ({}) even if it is a single line. There are many other simple rules and those can be put forward as follows.

■ Break code into multiple lines if it exceeds 100 columns. ■ Align method parameters, exception etc. in order to improve readability.

Use the settings in your IDE to do this. ■ Be sure to define, who should catch an exception when throwing one. ■ Be sure to catch those exceptions that you can handle. ■ Do not use string literals in the code, instead declare constants and use

them, constant names should be self descriptive. ■ Use constants already defined whenever possible, check to see if

someone already declared one, specially in base libs, like Axis2. It is strongly recommended to run FindBugs on any new code or modified code, and commit only after fixing any bugs reported by FindBugs. It is recommended to use the IntellijIDEA (FindBugs-IDEA) or Eclipse FindBugs plugin to do this.

29

Page 30: Internship Wso2

30