Cloud Based System Integration

Cloud Based System Integration

Cloud Based System Integration System Integration between Salesforce.com and Web-based ERP System using Apache Camel Molnbaserad systemintegration Systemintegration mellan Salesforce.com och ett webb-baserat ERP- system med Apache Camel Henrik Johansson Mikael Söder Faculty of Health, Science and Technology Computer Science Bachelor Thesis, 15 ECTS Supervisor: Hans Hedbom Examiner: Johan Eklund 2017-06-05 Serial number: Abstract In an era of technological growth, cloud computing is one of the hottest topics on the market. This, along with the overall increased use of digital systems, requires solid integration options to be developed. Redpill Linpro recognizes this and has developed a cloud-based Integration Platform as a Service (IPaaS) solution called Connectivity Engine. New techniques like this can however seem very abstract to a customer, something which a demo application could help substantiate. To aid in this issue we have developed a web-based Enterprise Resource Planning (ERP) system as well as an Integration Application to connect the ERP system with Salesforce.com in a bidirectional integration. With the use of Connectivity Engine this can be hosted in the cloud and be easily accessible. The project has been a success for Redpill Linpro as well as the authors. A solid way to demonstrate the abilities of Connectivity Engine has been developed along with descriptive documentation for any sales representative assigned to pitch the platform. Keywords: Apache Camel, Camel, Spring Framework, Spring Boot, Integration, DevOps, OpenShift, Open Source, Salesforce, API, Continuous Integration, Integration Application, Rest- Template, JSON, Java, ERP System, CRM, ERP, REST ii Acknowledgements Special thanks to: Redpill Linpro Fredrik Svensson - Co-founder and regional manager, Redpill Linpro Pontus Ullgren - Software architect and developer, Redpill Linpro Hans Hedbom - Supervisor, Karlstad University Karlstad, June 12, 2017 Henrik Johansson and Mikael Söder iii Contents 1 Introduction 1 1.1 Motivation ....................................... 1 1.2 Specication Requirements .............................. 1 1.3 Results .......................................... 2 1.3.1 Expected .................................... 2 1.3.2 Actual ...................................... 2 1.4 Disposition ....................................... 2 2 Background 4 2.1 Open Source and Redpill Linpro ........................... 4 2.2 Tools and Techniques ................................. 4 2.2.1 Salesforce .................................... 4 2.2.2 DevOps and Continuous Integration ..................... 5 2.2.3 Connectivity Engine .............................. 7 2.2.3.1 Integration Applications ....................... 7 2.2.3.2 Devtime ............................... 7 2.2.3.3 Runtime ............................... 8 2.2.4 Integration Application ............................ 8 2.2.4.1 Apache Camel ............................ 8 2.2.5 ERP System as a Web Application ...................... 9 2.2.5.1 MVC Architecture .......................... 9 2.2.5.2 Spring Boot ............................. 10 2.2.5.3 Spring Data Java Persistence API (JPA) ............. 10 2.2.5.4 RestTemplate ............................ 11 2.2.5.5 H2 ................................... 11 2.2.5.6 MariaDB ............................... 11 2.2.5.7 Thymeleaf .............................. 11 2.3 Summary ........................................ 12 3 Project Design 13 3.1 Design Overview .................................... 13 3.2 Design of ERP System ................................. 13 3.2.1 Database .................................... 14 3.2.2 User Interface .................................. 15 3.2.3 Data from Salesforce .............................. 18 3.2.4 Local Data Handling and Salesforce Transmission .............. 19 3.3 Integration Application ................................ 20 3.3.1 Salesforce APIs ................................. 20 iv 3.3.2 Apache Camel routes ............................. 21 3.4 Summary ........................................ 22 4 Project Implementation 23 4.1 ERP System Implementation ............................. 23 4.1.1 Database and JPA Repositories ........................ 23 4.1.2 Data from Salesforce .............................. 25 4.1.2.1 Insert or Update ........................... 25 4.1.2.2 Bulk Insert .............................. 28 4.1.2.3 Delete ................................. 28 4.1.3 Local Data Operations and Salesforce Transmission ............ 29 4.1.3.1 Get All ................................ 29 4.1.3.2 Create ................................. 29 4.1.3.3 Edit .................................. 30 4.1.3.4 Delete ................................. 31 4.1.3.5 Salesforce Requests ......................... 32 4.2 Integration Application ................................ 33 4.2.1 The Salesforce Camel Component Conguration .............. 33 4.2.2 Camel Routes .................................. 34 4.2.3 JOLT Mapping ................................. 40 4.2.4 Processors .................................... 41 4.3 Deployment ....................................... 42 4.4 Use Cases ........................................ 46 4.4.1 Use Case 1 - Creating a New Contact on Salesforce ............. 46 4.4.2 Use Case 2 - Edit a Case in the ERP System ................ 47 4.4.3 Use Case 3 - Sync All Accounts from Salesforce ............... 48 4.5 Choice of Tools and Frameworks ........................... 48 4.6 Summary ........................................ 49 5 Results and Evaluation 50 5.1 Project Results ..................................... 50 5.2 Evaluation of the ERP system ............................ 50 5.3 Evaluation of the Integration Application ...................... 51 6 Conclusion 52 6.1 Project Conclusion ................................... 52 6.2 Problems ........................................ 52 6.2.1 Streaming API Random Disconnect ..................... 52 6.2.2 Table Name With MariaDB .......................... 52 6.2.3 Testing ..................................... 53 v 6.3 Final Remarks ..................................... 53 Appendix A Database tables and enums 57 A.1 Account ......................................... 57 A.1.1 Account table .................................. 57 A.1.2 Account enumerators .............................. 57 A.2 Contact ......................................... 58 A.2.1 Contact table .................................. 58 A.3 Case ........................................... 58 A.3.1 Case table .................................... 58 A.3.2 Case enumerators ................................ 58 Appendix B UML Diagrams 60 B.1 Integration Application ................................ 60 B.2 ERP System ...................................... 61 vi List of Figures 1 Project design overview ................................ 1 2 DevOps process overview. Image from SUSE, Thinking DevOps [1] ........ 5 3 CE ............................................ 7 4 MVC Architecture ................................... 9 5 Project design overview ................................ 13 6 Diagram depicting classes and dependencies between them ............. 13 7 ERP system database model ............................. 14 8 Listing of Contacts (some elds have been cut for the image to t on screen) .. 16 9 Listing of Contacts belonging to an Account (Fields have been cut for the image to t on screen) ..................................... 17 10 Edit form with format error .............................. 18 11 Diagram depicting classes and dependencies ..................... 20 12 Simple model of a Camel route. Image from Eclipse documentation [2] ...... 21 13 Conditional routing in Apache Camel. The message router directs the data based on its content. Image from Apache Camel documentation [3] ........... 37 14 Visual representation of the route by Hawtio. .................... 39 15 Screenshot of the OpenShift management application. ............... 43 16 OpenShift environment variables ........................... 44 17 Kubernetes/OpenShift containers and pods. Image from the ocial Kubernetes documentation [4]. ................................... 44 18 OpenShift ........................................ 45 vii 1 Introduction Cloud computing is one of the, if not the, most growing technology used in IT. Redpill Linpro recognizes this and have developed a cloud-based Integration Platform as a Service (IPaaS) called Connectivity Engine [5]. More about Connectivity Engine in section 2.2.3. This platform provides over 180 dierent connectors to popular applications and services as well as allow users to build their own custom components for specic requirements. We are set out to build another connector to help distinctively demonstrate the capabilities of Connectivity Engine. 1.1 Motivation A big problem with the growing use of cloud-based services and integration between dierent applications is the ability to substantiate it to a customer. The process can be hard to grasp for someone who is less technically equipped. This can scare away some customers from the approach that is cloud based integration. Redpill Linpro felt that a form of demo application to show the prospect what is actually happening would improve the sales pitch by a great deal. The idea is to connect the cloud-based Customer Relationship Management (CRM) system Salesforce (more on Salesforce follow in section 2.2.1) through Redpill Linpro's own Connectivity Engine with a simple demo Enterprise Resource Planning (ERP) system as a web application. This way the

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    68 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us