the art of heavy lifting in the enterprise worldwith oracle coherence and oracle weblogic

51
Art of Heavy Lifting in the Enterprise World With Oracle Coherence and Oracle Weblogic Deniz Seçilir (@denizsecilir) Yusuf Uğur Soysal (@yusufsoysal)

Upload: deniz-secilir

Post on 27-Jul-2015

96 views

Category:

Software


6 download

TRANSCRIPT

Page 1: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Deniz Seçilir (@denizsecilir)Yusuf Uğur Soysal (@yusufsoysal)

Page 2: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Agenda

Benefits of Using Oracle Weblogic and Coherence

Turkcell CRM Infrastructure – Use of Coherence and Weblogic Servers

Turkcell VAS Infrastructure – Use of Coherence and Weblogic Servers

Q/A

Page 3: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

9 countries65.8 million subscribesLeadership in the region

Turkcell Group – Regional Leader

Page 4: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell Group – Regional Leader

9 countries65.8 million subscribesLeadership in the region

Turkcell TurkeyKazakhstan

Ukraine Azerbaijan

Georgia Belarus

Moldova Northern Cyprus

Turkcell Europe

34.711.7

10.14.3

2.01.71.1

0.40.3

Turkcell Group: Subscribers in Q212 (million)

Listed on the NYSE and the ISE since July

2000

0.5 million net additions in Q212

Page 5: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

More About Turkcell

Creates employment for more than 50.000 people in TurkeyThe first and only Turkisy company listed on NYSEComplies with ISO9001, EU and US regulationsMassive tax contribution to the Turkish govermentCorporate social responsibility projects on education, culture and sports

Page 6: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell Technology

We are an energetic team having more than 18 years of experience combined with an ongoing commitment to innovation.

Page 7: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

About Turkcell Technology

More than 10 years of experience in Turkcell ICT

TTECH Center put into service

Team of 400+ people with 17 customers in 17 countries

TTECH company formed with 44 engineers

First out of group customers

Our innovation is driven by our customer’s challenges and we are passionate in differentiating our customer’s businesses.

20092008 201220071994 - 2006

Page 8: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Our Customers

TTECH’s solutions are market proven and serve more than 100 million customers in 17 countries

Page 9: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Our Competencies

Mobile Marketing

SIM Asset & Services Management

Value Added Services & Enablers

Roaming Solutions

CRM & Channel Management

Business Support Solutions

Mobile Internet

Mobile Financial Services

Mobile Terminal Applications

Mobile Marketing

PACKAGED SOLUTIONS

RoamingSIM

VAS

CUSTOM SERVICES

MFS

BSS

BI

CRM MI

TerminalMobile App

Page 10: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Our Partners

Page 11: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

International Memberships

Turkcell Technology has become the only associate partner of the Data Warehouse Global Leaders Group from the telecommunication sector in the EMEA region.

The GSMA represents the interests of the worldwide mobile communications industry.

CISQ works to build software quality standards and incorporates with the leading technology organizations worldwide and global initiative sponsored by Software Engineering Institute Carnegie Mellon University and OMG.

Page 12: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Meet Us

Page 13: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Why Use a Grid System

• Efficient use of resources• Dynamic, scalable data

capacity• Single, consistent view of data

• Load balancing• High availability• Process data where they are

Page 14: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

How We Choosed Oracle Coherence?

Page 15: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Why We Choosed Oracle Coherence

• Scalability, Availability, Performance

• Support & Price

• Ease of Integration, Ease of Management

• Multiple Client Support

• Distributed Query Execution

Page 16: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

TCMP, Under The Hood

• Tangosol Cluster Management Protocol (TCMP)• TCMP enhances UDP• Scalable

• UDP Multicast• Membership Management• Multicast is not required

• UDP used for• Very fast and scalable• TCMP guarantees packet order and delivery• TCP/IP connections do not need to be

maintained

Page 17: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Ease of Integration, Ease of Management

• Configuration Management

• Simple Cache Api

• Weblogic Console / EM Console Integration

Page 18: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Distributed Caching: Service Catalog Data

SCMEAPP SERVER 1

Client

Client

APP SERVER 2

Client

Client

APP SERVER 3

Client

Client

Page 19: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Distributed Caching: Service Catalog Data

SCME

APP SERVER 2

APP SERVER 1Client

APP SERVER 3

Client

Cac

heC

ache

Cac

heClient

Client

Client

Client

Page 20: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Distributed Caching: Service Catalog Data

SCME

APP SERVER 2

APP SERVER 1Client

APP SERVER 3

Client

Client

Client

Client

Client

MASTER SERVER

Page 21: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Our New Catalog System, CPCM

• Module that contains complete list of products like tariffs, tariff options, services, packets, campaigns etc.1 – Catalog Management

• Price elements attached to the offers2 – Price Management

• Business rules associated with the products3 – Rule Management

• A management module responsible for technical resources installed with products 4 – Resource Management

• Product specifications5 – Profile Management

• Historic data about products and requests6 – Version Management

Page 22: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

CPCM Architecture

CPCM Core Application

Hibernate Second Level

Cache

Weblogic Application Servers

Maps cached manualy

Page 23: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Coherence*Web

• HTTP session-management module (built-in feature of Coherence)

• Supports wide range of application servers• Does not require any changes to the application• Allows session state to be managed in the various

caching topologies• Allows storage of session data outside of Java EE

application server• Heterogeneous applications running on mixed

hardware/OS/application servers can share common user session data.

Page 24: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell CRM Domain Topology

Page 25: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell CRM Domain Topology – Web Apps

Page 26: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Coherence*Web is easy to use

• Modify web.xml and weblogic.xml

• Deploy coherence-web-spi.war

• Configure Coherence Cluster

Page 27: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Use Coherence*Web When

•You don’t want to loose sessions while restarting/maintaining your application

•Your application works with large HTTP session state objects

•You run into memory constraints, due to storing HTTP session object data

•You want to off-load HTTP session storage to an existing Coherence cluster

•You want to share session state across EAR files and application servers

Page 28: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

GALATAOracle CEP

Processing big amount of data

Continuous data flow

Latency in miliseconds

Different Data Sources

User-defined windows for evaluation

Complex Event Patterns

Page 29: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

GALATA

• 800,000 events per second

• 50 simultaneous campaign/offer capability

• Responsiveness under 1 second

• With scalable architecture, ready to expand on 0-day

Page 30: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

GALATA

+1 +1 +1

+5+5 +5

+20+20+20+20

Page 31: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell SMS Proxy - Columbus

SMS & MMS Support

MO & MTForwarding

DifferentProcotols

DeliveryReports

Charging

EncryptedMessages

Bunch ofB. Rules

Page 32: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Turkcell SMS Proxy - Columbus

Page 33: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Topology

Load Balancer

Page 34: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Coherence Usage

• Minimize database access• Calculate distributed TPS• Quickly merge incoming messages• Match delivery reports across cluster

Page 35: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

• Flexible licence control• Balance the load on SMSC• Reliable traffic for SMSC• Minimize network traffic – if necessary• Must be very fast

Page 36: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

+1

+1

Page 37: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

Page 38: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

• Create a NamedCache• Put initial values• Increment / decrement when needed• Check current value

KEY INITIAL VALUEMT TPS 0MO TPS 0

Page 39: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

public boolean increment() { Boolean result = Boolean.TRUE; if (limitMt != null) { result = executeIncrementTask(MT_INDEX); } return result;}

private Boolean executeIncrementTask(int indx) { ChangeTPLimitTask task = new ChangeTPLimitTask(); return (Boolean) this.storedMap.invoke(indx, task);}

Page 40: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus Distributed TPS

public class ChangeTPLimitTask extends AbstractProcessor implements PortableObject { private Boolean result = Boolean.FALSE; @Override public Object process(Entry entry) { try { Limit limit = (Limit) entry.getValue(); if( limit != null ) {

result = limit.increment();}

entry.setValue(limit); } catch( Exception e ) { // handle somehow } return result; }

// ...

}

Page 41: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

• Treat different messages as one• Data may not be available on one server• Should be processed as it is available

Page 42: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

Page 43: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

• Create a NamedCache• Create a list per message reference• Add new message part to list• Process message once all message parts are arrived

KEY VALUEMessageRef#1 Part#1 -> Part#2 -> ...MessageRef#2 Part#4 -> ...

Page 44: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

ConcatInfo concatInfo = createConcatInfo();MergeMoConcatTask task = new MergeMoConcatTask(concatInfo);task = (MergeMoConcatTask) this.storedMap.invoke(concatInfo.getMessageReference(), task);

if( task.isFirstPiece() ) { // do things related to first piece of concat} else if( task.getAllPieces() != null && task.getAllPieces().size() > 0 ) { // do things when all pieces are found}

Page 45: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

public class MergeMoConcatTask extends AbstractProcessor implements PortableObject {

private ConcatInfo concatPiece; private boolean firstPiece = false; private List<ConcatInfo> allPieces = null;

public MergeMoConcatTask() { // for reflection purposes }

public MergeMoConcatTask(ConcatInfo concatPiece) { this.concatPiece = concatPiece; }

Page 46: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

@Override public Object process(Entry entry) { try { List<ConcatInfo> value = (List<ConcatInfo>) entry.getValue(); ConcatInfo firstConcat = null;

if( value == null ) { this.firstPiece = true; value = new ArrayList<ConcatInfo>(); firstConcat = this.concatPiece; } else { firstConcat = value.get(0); value = new ArrayList<ConcatInfo>(value); }

value.add(this.concatPiece);

if( value.size() == firstConcat.getConcatCount() ) { // we have all elements this.allPieces = value; }

entry.setValue(value); } catch( Exception e ) { // handle somehow }

return this; }

Page 47: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Merging Messages

public boolean isFirstPiece() { return firstPiece; }

public List<ConcatInfo> getAllPieces() { return allPieces; }

@Override public void readExternal(PofReader reader) throws IOException { concatPiece = (ConcatInfo) reader.readObject(0); firstPiece = reader.readBoolean(1); allPieces = (List<ConcatInfo>) reader.readCollection(2, new ArrayList<ConcatInfo>()); }

@Override public void writeExternal(PofWriter writer) throws IOException { writer.writeObject(0, concatPiece); writer.writeBoolean(1, firstPiece); writer.writeCollection(2, allPieces); }}

Page 48: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Matching Delivery Reports

• Should know which message has arrived• Match delivery reports to the message that it belongs• Should be processed as it is available

Page 49: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Matching Delivery Reports

1000

1101

001

10001101001

Page 50: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Columbus – Matching Delivery Reports

Message ID Message

#M1 Message#1

#M2 Message#2

#M3 Message#3

Confirmation ID Message ID

#C1 Message#2

#C2 Message#3

#C3 Message#1

Page 51: The Art of Heavy Lifting in the Enterprise WorldWith Oracle Coherence and Oracle Weblogic

Thank You

[email protected] (@denizsecilir)[email protected] (@yusufsoysal)