This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
An Enhanced User Experience for Automobile Purchases with the
Jordan Corn – Director of Solutions Research for IT , AAA MA Ed Kilchinsky- Manager Mobile Development, AAA MA Miyuru Wanninayaka – Senior Software Engineer, Member Integration Technology Group, WSO2 Asanka Abeysinghe - Director, Solutions Architecture, WSO2
WSO2 Background
- Founded in 2005 by recognized leaders in XML, Web services technologies, standards and open source
- Primary contributors to Apache Web Services projects started in 2001 - Funded by Intel Capital & Quest Software ($11M) - Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC,
and CA - Global offices:
- Palo Alto, USA - Portsmouth, UK - Colombo, Sri Lanka
- 145+ employees and growing
WSO2 Platforms and PaaS WSO2 Carbon Enterprise Middleware Platform
WSO2 Stratos Cloud Middleware Platform
WSO2 StratosLive Java PaaS
On-premise on physical or virtualized environments
Cloud-native (multi-tenant & metered), deployed as private or public PaaS
Public Java PaaS operated by WSO2
Full suite of products – start with one, click to add more
Full benefits of cloud – from using VMs to building higher level PaaS or SaaS apps
Instant access to middleware – as-a-Service
In production at 100+ F1000 enterprises; 1B txn per day at eBay
Manage central ops, enable developers to self-provision middleware services
Pay just for what you use; flexible billing
Common Code Base • Complete middleware stack • OSGi-based componentized platform • 100% open source and standards
WSO2 support engagement model
- QuickStart - Development
Support - Development
Services - Production
Support - Turnkey
Solutions
AAA Mid-Atlantic - Part of the AAA association, serving more than 50 million members
across the United States - One of over 40 AAA clubs - Territory extends from Virginia through New Jersey - Customers include more than 3.5 million members
AAA Mid-Atlantic Products
Roadside assistance Discounts Insurance
Auto repair Maps and directions
Travel booking
Auto Buying
Driver training Retail
Business Requirements
- Deliver an iPhone auto buying app for the entire AAA Association
- Deliver an app that works for different clubs with - Different fulfillment options - Different business rules
- Provide the following functions: - Allow all users to research and compare vehicles - Present member prices to members - Allow members (in some territories) to buy cars at
guaranteed member prices
Simplified Application Flow
Enter Shopping Zip
• Specify shopping location • Intent is to allow shopping near
or away from home
Research and compare vehicles
• Select from makes/models, saved favorites, saved searches
• Study, compare, price vehicles
Contact dealers • Validate membership
number and zip code • Receive dealer
information • Transmit leads to dealers
Varies by territory
Technical Requirements
- Communication between iPhone application and WSO2 ESB should use JSON messages
- Expose services provided by multiple vendors as composite services - Minimize iPhone to ESB service calls by aggregating backend services - Expose AAA internal database as services - Monitor activity of Mobile Service Gateway
Component Architecture
Solu3on Architecture
JSON
AAA Internal Services
External Providers
Media3on Sta3s3cs
ESB Configura3on Ar3facts
Deployment Architecture
• 7 x 4GB dual core VMs • Clustered MS SQL server
Exposing Data
Data is stored in MS SQL database Stored procedures exposed as SOAP web services using WSO2 DSS 35+ backend service operations created just using XML configuration
MS SQL JDBC
WebService
Monitoring
• WSO2 BAM is used to monitor services exposed by WSO2 ESB • Push model
• Presents statistics in dashboard and as reports • Email alerts • Logging
Mediation Statistics Push
Manage Configuration
- WSO2 Governance Registry is used to store artifacts of - Shared registry instance across multiple products using registry mounts - Each product has separate registry space - Shared space to store common artifacts ( WSDLs, Schemas ) - DEV > IST > UAT > PROD migration using check-in/check-out
Mount
Mount
Mount
Complex Service Creation
Aggregated services created in ESB using Service chaining Cloning Aggregating Conditional routing Message transformation
- Primary functionality varies by geography: - Some territories partner with the Association’s primary provider of vehicle
information and guaranteed prices - Others use different partners - Others do not actually offer auto buying
- Secondary functionality varies by geography: - Cross-promotion of related products (financing, protection, insurance) - When member prices are shown varies
- The app design had to handle all cases with no sense of degradation!
Project Challenges: Overall
- Account for geographic variability - Connect to multiple partners
- Provider of vehicle data and pricing - Provider for VIN resolution - AAA National
- Allow club-specific cross-promotion and messaging - Abstract changes from the application - Manage multiple partners - Maintain close ties with major clubs and AAA National - Coordinate launch across all of AAA
Project Challenges: Technical
- Ability to create JSON API's - Ability to create reliable composite services - Ability to consume services with various message formats - Ability to create data service API's - Ability to have service monitoring capabilities - Security challenges exposing internal challenges to internet - Service response times
Results
- Success! - Store reviews have been positive - We have passed 10,000 downloads - Application is allowing members to research and purchase cars - Architecture has been extremely robust - Numerous changes have been made without app redeployment
- Port to other platforms - Android - iPad - Windows Phone
- The architecture will help us regardless of where we go!
Summary
- Reuse of existing services - Usage gateway pattern and bus architecture to build the solution - Unified API to hide the complex backend services - Lightweight API with JSON - Go to market within a shorter project cycle - Enterprise solution with scalability, high-availability and performance