View
234
Download
0
Category
Preview:
Citation preview
Oracle Siebel CRM
integration with
Android Devices
Date: 19th October 2012
Santosh B. Bogam & Sajan Viswambharan
At the end of this session, the audience will get a brief on
Siebel CRM & Evolution
Android Evolution & Architecture
Android Application & Siebel REST Services Architecture
Proof-Of-Concept for Siebel-Android Integration & Technical Challenges
Objectives
Santosh B. Bogam • Manager, Deloitte Consulting India Pvt. Ltd.
• 13+ years of IT experience in delivering Siebel
CRM solutions
• 8+ years in Deloitte Consulting
• Implemented Siebel CRM engagements for
clients across Healthcare, Insurance & TMT
Industries
• Leading CRM Whitepapers initiatives
• Email: sbogam@deloitte.com
Sajan Viswambharan
Specialist Senior, Deloitte Consulting India Pvt. Ltd.
8+ Years of IT experience, Managing Siebel CRM engagements
4+ Years in Deloitte Consulting India
Extensively involved in building tools, accelerators and methods
that enable delivery of Oracle package implementation projects.
Software and Web Security Hobbyist
Email: sviswambharan@deloitte.com
Siebel is a brand owned by Oracle Corporation since 2006
History (prior to 2006) –
• Siebel CRM Systems, Inc. was a software company principally engaged in
the design, development, marketing, and support of customer relationship
management (CRM) applications.
• Siebel Systems, Inc. began in sales force automation software, then
expanded into marketing and customer service applications.
• 1993: Siebel Systems, Inc. is founded by Thomas Siebel and Patricia House.
• 1996: Siebel becomes a publicly traded company.
• 2000: Revenue surpasses the $1 billion mark.
• 2006: Oracle acquires Siebel Systems.
Oracle Siebel CRM
Oracle Siebel CRM
• helps companies differentiate their businesses to achieve maximum top-line
and bottom-line growth
• delivers a combination of transactional, analytical, and engagement capabilities
to manage all customer-facing operations
• delivers comprehensive on-premise and on demand CRM solutions that are
tailored to industry solutions with customer intelligence and pre-built integration
• provides solutions tailored to 20+ industries
Oracle Siebel CRM (contd.,)
Siebel Sales
Siebel Customer Order Management
Siebel Enterprise Marketing Suite Siebel Contact Center and Service
Siebel Partner Relationship Management
Source: Oracle
Major releases:-
• Oracle CRM On Demand
• Oracle Business Intelligence Enterprise Edition Plus (released 2007)
• Oracle Business Intelligence Applications (Siebel Analytics) (released 2007)
• Oracle Siebel 8.2 (Released in 2011)
• Oracle Siebel 8.1 (Released in 2008)
• Oracle Siebel 8.0 (Released in 2007)
• Siebel 7.8 (Released in 2005)
• Siebel 7.7 (Released in 2004)
• Siebel 7.5 (Released in 2002)
• Siebel 7.0 (Released 2001, was the first web-based version)
• Siebel 6 (also known as Siebel 2000)
• Siebel 99
• Siebel 98
• Siebel 3.0 (Release Feb 1997)
• Siebel 2.0 (Release end of 1995)
• Siebel Sales Enterprise
• Siebel Customer Relationship Management (CRM)
Oracle Siebel CRM – Evolution & Major Releases
Android – An Overview
Android is an operating system for mobile devices such as smartphones and
tablet computers.
Developed by the Open Handset Alliance led by Google.
Open Source and customizable
Provides a development kit (SDK)
Emulator support for testing
Version Release date API Level
4.1.x Jelly Bean July 9, 2012 16
4.0.x Ice Cream Sandwich October 19, 2011 14-15
3.x.x Honeycomb February 22, 2011 11-13
2.3.x Gingerbread December 6, 2010 9-10
2.2 Froyo May 20, 2010 8
2.0, 2.1 Eclair October 26, 2009 7
1.6 Donut September 15, 2009 4
1.5 Cupcake April 30, 2009 3
Objectives
• To build a proof of concept that demonstrates
Android application sync with Siebel CRM 8.2
data
Display Siebel Contact Profile data on
Android 4.0 AVD device/Android 2.3
Physical Device.
To implement and deploy REST API
services
To document the challenges faced during
implementation and share
Development Environment for Proof of Concept Operating System
• Windows 7 (32 bit)
• Also Supported on Mac OS & Linux
Android Development Setup
• Android SDK
• Eclipse 3.6 (Helios) or greater
• Eclipse JDT plugin (included in most Eclipse IDE packages)
• Eclipse Classic
• JDK 5 or JDK 6 (JRE alone is not sufficient)
• Android Development Tools (ADT) plugin
• Physical Devices : Samsung S2 (Android OS : 2.3.4)
CRM: Siebel CRM 8.2
Integration Technology used: Siebel RESTful Services Using SAI for Oracle
Fusion Middleware
Copyright © 2011 Deloitte Development LLC. All rights reserved. 18 Footer
Android :
o Knowledge of JAVA
o Knowledge of Android framework/SDK
o Multithreading and thread synchronization
Siebel Knowledge
o Oracle Fusion Middleware Deployment , Adapter Configuration &
Development
o Siebel System Architecture
o Siebel Enterprise Application Integration
Technical Skillset
• REST stands for Representational State Transfer.
• REST is an architecture style for designing networked applications. The idea is that,
rather than using complex mechanisms such as CORBA, RPC or SOAP to connect
between machines, simple HTTP is used to make calls between machines.
• RESTful applications use HTTP requests to post data (create and/or update), read data
(e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD
(Create/Read/Update/Delete) operations.
• Advantages –
Lightweight and uses standard HTTP Methods and URI Model
Uses the inherent HTTP security model, certain methods are mapped to certain URIs
that can easily be restricted by firewall configuration, unlike other XML over HTTP
messaging formats.
The major problem with SOAP/XML RPC is a tweak in the HTTP spec by adding
another layer of abstraction onto HTTP rather than using the original design. REST
uses the original HTTP design.
Request/Response Messages are simple.
Does not need any specific clients like SOAP Client and COM Clients.
What is REST ?
Siebel REST Architecture
`
The following figure provides an overview of REST Architecture
framework:-
a) Siebel CRM Fix Pack 8.1.1.7 or later. No specific patches needed for
later versions. Check for the existence of oracle-siebel-eai-
fusion_bundle.zip in SiebSrvr\classes.
b) Oracle WebLogic Server 11g Release 1.
c) Oracle JDeveloper 11g
d) JDK
e) Refer the site for documentation on REST http://docs.oracle.com/cd/E16348_01/books/SAI_OFM/SAI_OFM_REST.htm
f) For SAI Deployment for Oracle Middleware refer.
http://docs.oracle.com/cd/E14004_01/books/SAI_OFM/SAI_OFM_WhatsNew.html
Requirements: SAI with Oracle Fusion Middleware
• Android Application (“Siebel Sync”) basically acts as a Siebel REST API Client.
• Each Android application runs in its own Virtual Machine (VM).
• Application is packaged into an apk(Android Application Package) file and
signed.
• Once deployed you can see the POC Application under Apps.
Implementation Overview
Android Application UI (Touch screen) Overview
Classes Used:
EditText
EditText is a thin veneer over
TextView that configures itself to be
editable.
android.widget.EditText
TextView
Displays text to the user and
optionally allows them to edit it.
android.widget.TextView
Button Represents a push-button widget.
android.widget.Button
ImageView
Displays an arbitrary image, such as
an icon.
android.widget.ImageView
Identify the Contact Profile Data that we need to sync back to Android
Application. The fields used in the application are marked in RED.
Identify Data
• When the “Sync with Siebel” button is pressed on the touch screen, a
Siebel REST API call is triggered.
Request URL used to invoke Siebel REST API
http:// <Host>:7001/oracle-
crm/api/rest/siebel/siebel.SiebelResourceAdapterConnFactory/Contact%20IO?searchexpr=[
Id]='1-5JSND3‘
• The Siebel REST API returns the following HTTP Response.
<?xml version="1.0" encoding="utf-8"?>
<SiebelREST>
<ListOfContactIo>
<Contact>
<First_0x20_Name>Sachin</First_0x20_Name>
<Last_0x20_Name>Tendulkar</Last_0x20_Name>
<Middle_0x20_Name>Ramesh</Middle_0x20_Name>
<Birth_0x20_Date>04/24/1973</Birth_0x20_Date>
<Preferred_0x20_Communications>Cell
Phone</Preferred_0x20_Communications>
<CellularPhone>(888) 888-8888</CellularPhone>
<Email_0x20_Address>stendulkar@deloitte.com</Email_0x20_Address>
<Comment>sachin-tendulkar.jpg</Comment>
</Contact>
</ListOfContactIo>
</SiebelREST>.
Behind the Scene
1. Spawning a new thread to handle networking activities
(Better performance/security)
Detection
StrictMode is most commonly used to catch accidental disk or network access on
the application's main thread, where UI operations are received and animations
take place. Keeping disk and network operations off the main thread makes for
much smoother, more responsive applications. By keeping your application's main
thread responsive, you also prevent ANR dialogs from being shown to users.
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .
detectDiskReads() .detectDiskWrites() . detectNetwork()
// or .detectAll() for all detectable problems
.penaltyLog() .build());
Remedy
Use background Processing . Classes like Threads, Handler or AsyncTask can be
used.
Proof-Of-Concept Technical Challenges
2. Enabling Networking - java.net.SocketException: Permission denied
AndroidManifest.xml
<manifest ….
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
3. Basic Authentication while connecting to the Rest API.
httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials( new AuthScope(strHost,
strPort), new UsernamePasswordCredentials(username, password));
HttpGet httpget = new HttpGet(accessUrl);
Proof-Of-Concept Technical Challenges… Continued
Recommended