SlideShare a Scribd company logo
How Southern California
Edison Used Service Oriented
Architecture to Integrate
Legacy Web Applications into
Its SAP NetWeaver Portal


Ted Tschopp
Southern California Edison
            © 2008 Wellesley Information Services. All rights reserved.
What We’ll Cover …

•   Introductions
•   The Problem
•   Workable Solutions – Development
•   The SOA Approach
•   Wrap-up




                                       1
About Edison International & Southern California Edison
•   Edison International, through its subsidiaries, is a generator and
    distributor of electric power and an investor in infrastructure and
    energy assets, including renewable energy. Headquartered in
    Rosemead, California, Edison International is the parent company
    of Southern California Edison—a regulated electric utility—and
    Edison Mission Group, a competitive power generation business.
•   Southern California Edison (SCE) is the largest electric utility in
    California, serving more than 13 million people in a 50,000 square-
    mile area of central, coastal and Southern California, excluding
    the City of Los Angeles and certain other cities. Based in
    Rosemead, California, the utility has been providing electric
    service in the region for more than 120 years. SCE's service
    territory includes more 180 cities. As of September 30, 2007, SCE
    had consolidated assets of approximately $27.5 billion. As of
    November 2006, SCE had approximately 15,500 employees.
                                                                          2
About Ted Tschopp

•   Senior IT Specialist/Engineer currently assigned to SAP
    Portal implementation at Southern California Edison. A
    member of the architecture, engineering, and IT security
    group specializing in web based portal and search
    technologies with almost 10 years experience working in
    large scale enterprises.
•   Specialties:
       Application architecture, design, and development in large
        scale enterprise environments, SAP, Plumtree, .NET, Java, Web
        Services and Service Oriented Architectures.




                                                                        3
About our SAP Implementation
Program Statistics - Release 1 of 4
Process Owners                                109
Deployment Locations                          195
Processes, Sub-Processes, Activities    27 / 130 / 1,083
SAP Modules and Sub-Modules                47 / 151
Release 1 Roles                               380
Legacy Systems Being Replaced in R1
                                              441
   (out of 1,040)
Development Objects                           536
End User Training Courses                     150
Active End Users /
                                        16,000 / 20,000
   Total End Users including Retirees



                                                           4
What We’ll Cover …

•   The Problem
•   Workable Solutions – Development
•   The SOA Approach
•   Wrap-up




                                       5
What We’ll Cover …

•   The Problem
       Legacy Web Applications
       Integration with SAP Portal
       Leverage Portal Features
       Demo: A Look at SCE’s Legacy Application
•   Workable Solutions – Development
•   The SOA Approach
•   Wrap-up




                                                   6
The Problem: Legacy Web Applications

•   You just spent a money on SAP
•   You also have a bunch legacy web applications
       Some will be replaced with SAP
       Some will be retired
       Some will be kept until…
       They are all different
         Different Technologies

           ASP / ASP.NET, Perl, Lotus, php, etc….

         Different Platforms

           Windows 2000/2003, Netscape Web Server, Apache, etc…




                                                                   7
The Problem: How to Integrate with the Portal

•   Links & Pop Ups
       Pros
         Quick & Easy

       Cons
         Doesn’t Leverage the Portal at All

         Not Real Integration

•   URL iViews
       Pros
         Quick & Easy

       Cons
         Not Real Integration



                                                8
The Problem: I Want to Leverage Portal Features

•   The Legacy Application Should Know Who I am
       I logged into the Portal
       Look up the personal information in the Portal
•   The Legacy Application Should Look Like My Portal
       Leverage the Custom Style Sheets of the Portal
•   Use iView’s preferences to save settings used in the
    Legacy Application




                                                           9
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
•   Wrap-up




                                       10
Workable Solutions - Development

•   Develop a WebDynPro Application
       Pros - Fully Integrated into the Portal
       Cons - Two Development Applications
           WebDynPro Application

           Data Connector

•   Develop a PDK Application
       Pros - Fully Integrated into the Portal
       Cons - Two Development Applications
           PDK Application

           Data Connector

•   If you are going to do this, you are not Integrating

                                                           11
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
•   Wrap-up




                                       12
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
       Demo: The Legacy Application
       Architecture of the Legacy Application
       The SOA Approach
       Demo: The Portal Application
       Code
•   Wrap-up



                                                 13
Demo: The Legacy Application




                               14
Architecture of the Legacy Application

•   User
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              15
Architecture of the Legacy Application

•   User
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              16
Architecture of the Legacy Application

•   User
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              17
Architecture of the Legacy Application

•   User
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              18
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
       Demo: The Legacy Application
       Architecture of the Legacy Application
       The SOA Approach
         Transforming the Legacy Application Into a Service

         Integration of the Service into the Portal

         Demo: More Code Walk Through

       Architecture of the New Application
       Demo: The Portal Application
•   Wrap-up
                                                               19
Transforming the Legacy Application Into a Service

•   Most websites can be converted quite quickly
       Web Pages become Web Services
         Most Web Pages have one Stored Procedure / Database Call

         Strip all HTML out of the page

         Normalize all data used on the page

           Don’t forget to include calculated data points

         Build up XML to encapsulate the data

       Points to watch out for
         You don’t need to make a full SOAP / WSDL service

         Don’t go crazy with normalizing the data

         If you have loops, create different levels in the XML



                                                                     20
Integration of the Service into the Portal

•   Create an XSL file to transform the Web Service into a
    nicely formatted XHTLM file
    Go get a copy of XML Cooktop (it’s Free!)
     http://www.xmlcooktop.com/
   Create an XSL file that will convert the XML file into XHTML

   Remember:

      This is not a full XHTML file. This will get inserted into the
        portal framework
      You have a full browser experience to play in

         JavaScript, AJAX, Images, CSS, etc…

         DO NOT STEP ON THE PORTALS JAVASCRIPT
GOTCHA!
          FRAMEWORK. DON’T GET FANCY!

                                                                        21
Integration of the Service into the Portal

•   Use XML Transformer to integrate the Web Service into
    the Portal
•   strSearchResultsXsl is a link to the XSL file
•   strSearchResultsXml is a URL to the XML Web
    Service




                                                            22
Integration of the Service into the Portal

•   You Can Insert Variables from the Portal using
    JavaScript and Response.Write
       This example is outputting personalization values into a drop
        down. JavaScript will insure it gets dropped in at client build
        time.
       You might need to
        get creative with your
        JavaScript




                                                                          23
Integration of the Service into the Portal

•   You Can Send Variables from the Portal back to the Web
    Service to be included in the XML sent back.
       In this case strParam is being sent back. It will contain
        strSceID.
       Each Service Call sends strSceID if it was present.
        strSceID is the username of the user logged in.




                                                                    24
Demo: More Code Walk Through with Q/A




                                        25
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
       Demo: The Legacy Application
       Architecture of the Legacy Application
       The SOA Approach
         Transforming the Legacy Application Into a Service

         Integration of the Service into the Portal

         Demo: More Code Walk Through

       Architecture of the New Application
       Demo: The Portal Application
•   Wrap-up
                                                               26
Architecture of the New Application

•   User
•   SAP Application Servers
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              27
Architecture of the New Application

•   User
•   SAP Application Servers
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              28
Architecture of the New Application

•   User
•   SAP Application Servers
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              29
Architecture of the New Application

•   User
•   SAP Application Servers
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              30
Architecture of the New Application

•   User
•   Load Balancer
•   Web Servers
       Netscape Web Servers
       Perl
•   Databases
       Sybase gets nightly updates
        from HR and IT / Security databases




                                              31
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
       Demo: The Legacy Application
       Architecture of the Legacy Application
       The SOA Approach
         Transforming the Legacy Application Into a Service

         Integration of the Service into the Portal

         Demo: More Code Walk Through

       Architecture of the New Application
       Demo: The Portal Application
•   Wrap-up
                                                               32
Demo: More Code Walk Through with Q/A




                                        33
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
•   Wrap-up




                                       34
What We’ll Cover …

•   The Problem
•   Workable Solutions - Development
•   The SOA Approach
•   Wrap-up
       Where to use this Technique
       Resources
       7 Key Points to Take Home
       Your Turn




                                       35
Wrap-up: Where to use this Technique

•   You are Solving User Problems
•   This is Simple
       This isn’t some amazing secret
       This isn’t ―Sexy‖
       But… It stands up to load
•   Places where this can be used
       Simple Web Applications
       Translating legacy portal apps into SAP Portal Apps
       External Web Services
•   Be Careful: Make sure you don’t really need a fully
    integrated solution

                                                              36
Resources

•   www.xmlcooktop.com
       Free Application for creating XSL files
•   www.tedtschopp.com/sap/
       Code and Files used in this presentation
•   sdn.sap.com
       SAP Developers Network – We got a lot of help working out the
        kinks




                                                                        37
7 Key Points to Take Home

1.   Legacy Web Pages can become Web Services
2.   Don’t use this technique as a replacement for Needed
     Development / Integration
3.   You are solving USER problems not IT problems
4.   Most of the time ―Sexy‖ IT solutions do not translate
     into ―Sexy‖ user solutions
5.   Don’t Worry About Being 100% Buzzword / Standards
     Compliant
6.   Don’t step on the Portal Framework
7.   You don’t need to be a Fortune 200 company to take
     advantage of these techniques
                                                             38
Your Turn!




               How to contact me:
                  Ted Tschopp
             Ted.Tschopp@sce.com
                                    39

More Related Content

Portal / BI 2008 Presentation by Ted Tschopp

  • 1. How Southern California Edison Used Service Oriented Architecture to Integrate Legacy Web Applications into Its SAP NetWeaver Portal Ted Tschopp Southern California Edison © 2008 Wellesley Information Services. All rights reserved.
  • 2. What We’ll Cover … • Introductions • The Problem • Workable Solutions – Development • The SOA Approach • Wrap-up 1
  • 3. About Edison International & Southern California Edison • Edison International, through its subsidiaries, is a generator and distributor of electric power and an investor in infrastructure and energy assets, including renewable energy. Headquartered in Rosemead, California, Edison International is the parent company of Southern California Edison—a regulated electric utility—and Edison Mission Group, a competitive power generation business. • Southern California Edison (SCE) is the largest electric utility in California, serving more than 13 million people in a 50,000 square- mile area of central, coastal and Southern California, excluding the City of Los Angeles and certain other cities. Based in Rosemead, California, the utility has been providing electric service in the region for more than 120 years. SCE's service territory includes more 180 cities. As of September 30, 2007, SCE had consolidated assets of approximately $27.5 billion. As of November 2006, SCE had approximately 15,500 employees. 2
  • 4. About Ted Tschopp • Senior IT Specialist/Engineer currently assigned to SAP Portal implementation at Southern California Edison. A member of the architecture, engineering, and IT security group specializing in web based portal and search technologies with almost 10 years experience working in large scale enterprises. • Specialties:  Application architecture, design, and development in large scale enterprise environments, SAP, Plumtree, .NET, Java, Web Services and Service Oriented Architectures. 3
  • 5. About our SAP Implementation Program Statistics - Release 1 of 4 Process Owners 109 Deployment Locations 195 Processes, Sub-Processes, Activities 27 / 130 / 1,083 SAP Modules and Sub-Modules 47 / 151 Release 1 Roles 380 Legacy Systems Being Replaced in R1 441 (out of 1,040) Development Objects 536 End User Training Courses 150 Active End Users / 16,000 / 20,000 Total End Users including Retirees 4
  • 6. What We’ll Cover … • The Problem • Workable Solutions – Development • The SOA Approach • Wrap-up 5
  • 7. What We’ll Cover … • The Problem  Legacy Web Applications  Integration with SAP Portal  Leverage Portal Features  Demo: A Look at SCE’s Legacy Application • Workable Solutions – Development • The SOA Approach • Wrap-up 6
  • 8. The Problem: Legacy Web Applications • You just spent a money on SAP • You also have a bunch legacy web applications  Some will be replaced with SAP  Some will be retired  Some will be kept until…  They are all different  Different Technologies  ASP / ASP.NET, Perl, Lotus, php, etc….  Different Platforms  Windows 2000/2003, Netscape Web Server, Apache, etc… 7
  • 9. The Problem: How to Integrate with the Portal • Links & Pop Ups  Pros  Quick & Easy  Cons  Doesn’t Leverage the Portal at All  Not Real Integration • URL iViews  Pros  Quick & Easy  Cons  Not Real Integration 8
  • 10. The Problem: I Want to Leverage Portal Features • The Legacy Application Should Know Who I am  I logged into the Portal  Look up the personal information in the Portal • The Legacy Application Should Look Like My Portal  Leverage the Custom Style Sheets of the Portal • Use iView’s preferences to save settings used in the Legacy Application 9
  • 11. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach • Wrap-up 10
  • 12. Workable Solutions - Development • Develop a WebDynPro Application  Pros - Fully Integrated into the Portal  Cons - Two Development Applications  WebDynPro Application  Data Connector • Develop a PDK Application  Pros - Fully Integrated into the Portal  Cons - Two Development Applications  PDK Application  Data Connector • If you are going to do this, you are not Integrating 11
  • 13. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach • Wrap-up 12
  • 14. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach  Demo: The Legacy Application  Architecture of the Legacy Application  The SOA Approach  Demo: The Portal Application  Code • Wrap-up 13
  • 15. Demo: The Legacy Application 14
  • 16. Architecture of the Legacy Application • User • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 15
  • 17. Architecture of the Legacy Application • User • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 16
  • 18. Architecture of the Legacy Application • User • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 17
  • 19. Architecture of the Legacy Application • User • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 18
  • 20. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach  Demo: The Legacy Application  Architecture of the Legacy Application  The SOA Approach  Transforming the Legacy Application Into a Service  Integration of the Service into the Portal  Demo: More Code Walk Through  Architecture of the New Application  Demo: The Portal Application • Wrap-up 19
  • 21. Transforming the Legacy Application Into a Service • Most websites can be converted quite quickly  Web Pages become Web Services  Most Web Pages have one Stored Procedure / Database Call  Strip all HTML out of the page  Normalize all data used on the page  Don’t forget to include calculated data points  Build up XML to encapsulate the data  Points to watch out for  You don’t need to make a full SOAP / WSDL service  Don’t go crazy with normalizing the data  If you have loops, create different levels in the XML 20
  • 22. Integration of the Service into the Portal • Create an XSL file to transform the Web Service into a nicely formatted XHTLM file Go get a copy of XML Cooktop (it’s Free!) http://www.xmlcooktop.com/  Create an XSL file that will convert the XML file into XHTML  Remember:  This is not a full XHTML file. This will get inserted into the portal framework  You have a full browser experience to play in  JavaScript, AJAX, Images, CSS, etc…  DO NOT STEP ON THE PORTALS JAVASCRIPT GOTCHA! FRAMEWORK. DON’T GET FANCY! 21
  • 23. Integration of the Service into the Portal • Use XML Transformer to integrate the Web Service into the Portal • strSearchResultsXsl is a link to the XSL file • strSearchResultsXml is a URL to the XML Web Service 22
  • 24. Integration of the Service into the Portal • You Can Insert Variables from the Portal using JavaScript and Response.Write  This example is outputting personalization values into a drop down. JavaScript will insure it gets dropped in at client build time.  You might need to get creative with your JavaScript 23
  • 25. Integration of the Service into the Portal • You Can Send Variables from the Portal back to the Web Service to be included in the XML sent back.  In this case strParam is being sent back. It will contain strSceID.  Each Service Call sends strSceID if it was present. strSceID is the username of the user logged in. 24
  • 26. Demo: More Code Walk Through with Q/A 25
  • 27. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach  Demo: The Legacy Application  Architecture of the Legacy Application  The SOA Approach  Transforming the Legacy Application Into a Service  Integration of the Service into the Portal  Demo: More Code Walk Through  Architecture of the New Application  Demo: The Portal Application • Wrap-up 26
  • 28. Architecture of the New Application • User • SAP Application Servers • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 27
  • 29. Architecture of the New Application • User • SAP Application Servers • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 28
  • 30. Architecture of the New Application • User • SAP Application Servers • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 29
  • 31. Architecture of the New Application • User • SAP Application Servers • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 30
  • 32. Architecture of the New Application • User • Load Balancer • Web Servers  Netscape Web Servers  Perl • Databases  Sybase gets nightly updates from HR and IT / Security databases 31
  • 33. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach  Demo: The Legacy Application  Architecture of the Legacy Application  The SOA Approach  Transforming the Legacy Application Into a Service  Integration of the Service into the Portal  Demo: More Code Walk Through  Architecture of the New Application  Demo: The Portal Application • Wrap-up 32
  • 34. Demo: More Code Walk Through with Q/A 33
  • 35. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach • Wrap-up 34
  • 36. What We’ll Cover … • The Problem • Workable Solutions - Development • The SOA Approach • Wrap-up  Where to use this Technique  Resources  7 Key Points to Take Home  Your Turn 35
  • 37. Wrap-up: Where to use this Technique • You are Solving User Problems • This is Simple  This isn’t some amazing secret  This isn’t ―Sexy‖  But… It stands up to load • Places where this can be used  Simple Web Applications  Translating legacy portal apps into SAP Portal Apps  External Web Services • Be Careful: Make sure you don’t really need a fully integrated solution 36
  • 38. Resources • www.xmlcooktop.com  Free Application for creating XSL files • www.tedtschopp.com/sap/  Code and Files used in this presentation • sdn.sap.com  SAP Developers Network – We got a lot of help working out the kinks 37
  • 39. 7 Key Points to Take Home 1. Legacy Web Pages can become Web Services 2. Don’t use this technique as a replacement for Needed Development / Integration 3. You are solving USER problems not IT problems 4. Most of the time ―Sexy‖ IT solutions do not translate into ―Sexy‖ user solutions 5. Don’t Worry About Being 100% Buzzword / Standards Compliant 6. Don’t step on the Portal Framework 7. You don’t need to be a Fortune 200 company to take advantage of these techniques 38
  • 40. Your Turn! How to contact me: Ted Tschopp Ted.Tschopp@sce.com 39

Editor's Notes

  1. Official blurb about SCE and EIX. Included to keep Corporate Communications people happy.
  2. About Me