Your SlideShare is downloading. ×
Art of Heavy Lifting in the Enterprise World With Oracle Coherence and Oracle Weblogic
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Art of Heavy Lifting in the Enterprise World With Oracle Coherence and Oracle Weblogic

415
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
415
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Art  of  Heavy  Li.ing  in  the  Enterprise  World  With  Oracle  Coherence  and  Oracle  Weblogic   Deniz  Seçilir  (@denizsecilir)   Yusuf  Uğur  Soysal  (@yusufsoysal)  
  • 2. 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  
  • 3. Turkcell  Group  –  Regional  Leader   9  countries   65.8  million  subscribes   Leadership  in  the  region  
  • 4. Turkcell  Group  –  Regional  Leader   9  countries   65.8  million  subscribes   Leadership  in  the  region   Turkcell  Group:  Subscribers  in  Q212  (million)   Turkcell  Europe   0.3   Listed  on  the   0.5  million  net   Northern  Cyprus         Moldova       0.4   1.1   addiaons  in  Q212     NYSE  and  the   1.7    Belarus       Georgia       2.0   ISE  since  July   Azerbaijan       Ukraine         4.3   10.1   2000   Kazakhstan       11.7   Turkcell  Turkey   34.7  
  • 5. More  About  Turkcell   !   Creates  employment  for  more   than  50.000  people  in  Turkey   !   The  first  and  only  Turkisy  company   listed  on  NYSE   !   Complies  with  ISO9001,  EU  and  US   regulaTons   !   Massive  tax  contribuTon  to  the   Turkish  goverment   !   Corporate  social  responsibility   projects  on  educaTon,  culture  and   sports  
  • 6. Turkcell  Technology  We  are  an  energeTc  team  having  more  than  18  years  of  experience  combined  with  an  ongoing  commitment  to  innovaTon.  
  • 7. About  Turkcell  Technology   Our  innovaTon  is  driven  by  our  customer’s  challenges  and  we  are   passionate  in  differenaaang  our  customer’s  businesses.   More  than  10   TTECH  Center   Team  of  400+   years  of   put  into  service   people  with  17   experience  in   customers  in   Turkcell  ICT   17  countries       1994  -­‐  2006   2007   2008   2009    2012   TTECH  company   First  out  of   formed  with  44   group   engineers   customers  
  • 8. Our  Customers  TTECH’s  soluTons  are  market  proven  and  serve  more  than  100  million  customers  in  17  countries  
  • 9. Our  Competencies   §  Mobile  MarkeTng   §  CRM  &  Channel  Management   §  SIM  Asset  &  Services  Management   §  Business  Support  SoluTons   §  Value  Added  Services  &  Enablers   §  Mobile  Internet   §  Roaming  SoluTons   §  Mobile  Financial  Services   §  Mobile  Terminal  ApplicaTons   Mobile   Markeang   Roaming   BSS   CRM   MI   SIM   Terminal   MFS   BI   Mobile  App   VAS   CUSTOM  SERVICES   PACKAGED  SOLUTIONS  
  • 10. Our  Partners  
  • 11. Internaaonal  Memberships   The  GSMA  represents  the  interests  of  the  worldwide  mobile   communicaaons  industry.   Turkcell  Technology  has  become  the  only  associate  partner   of  the  Data  Warehouse  Global  Leaders  Group  from  the   telecommunicaaon  sector  in  the  EMEA  region.     CISQ  works  to  build  so.ware  quality  standards   and  incorporates  with  the  leading  technology   organizaaons  worldwide  and  global  iniaaave   sponsored  by  So.ware  Engineering  Insatute   Carnegie  Mellon  University  and  OMG.  
  • 12. Meet  Us  
  • 13. Why  Use  a  Grid  System  •  Efficient  use  of  resources   •  Load  balancing  •  Dynamic,  scalable  data   •  High  availability   capacity   •  Process  data  where  they  are  •  Single,  consistent  view  of  data  
  • 14. How  We  Choosed  Oracle  Coherence?  
  • 15. Why  We  Choosed  Oracle  Coherence   •  Scalability,  Availability,  Performance   •  Support  &  Price   •  Ease  of  Integraaon,  Ease  of  Management   •  Mulaple  Client  Support   •  Distributed  Query  Execuaon  
  • 16. TCMP,  Under  The  Hood   •  Tangosol  Cluster  Management  Protocol  (TCMP)   •  TCMP  enhances  UDP   •  Scalable   •  UDP  Mulacast   •  Membership  Management   •  Mulacast  is  not  required   •  UDP  used  for   •  Very  fast  and  scalable   •  TCMP  guarantees  packet  order  and  delivery   •  TCP/IP  connecaons  do  not  need  to  be   maintained
  • 17. Ease  of  Integraaon,  Ease  of  Management   •  Configuraaon  Management   •  Simple  Cache  Api   •  Weblogic  Console  /  EM  Console  Integraaon  
  • 18. Distributed  Caching:  Service  Catalog  Data   Client Client APP SERVER 1 SCME Client Client APP SERVER 2 Client Client APP SERVER 3
  • 19. Distributed  Caching:  Service  Catalog  Data   Cache Client Client APP SERVER 1 SCME Cache Client Client APP SERVER 2 Cache Client Client APP SERVER 3
  • 20. Distributed  Caching:  Service  Catalog  Data   Client Client SCME MASTER SERVER APP SERVER 1 Client Client APP SERVER 2 Client Client APP SERVER 3
  • 21. Our  New  Catalog  System,  CPCM   •  Module  that  contains  complete  list  of  products  like  1  –  Catalog  Management     tariffs,  tariff  opTons,  services,  packets,  campaigns  etc.   •  Price  elements  adached  to  the  offers  2  –  Price  Management   •  Business  rules  associated  with  the  products  3  –  Rule  Management   •  A  management  module  responsible  for  technical  4  –  Resource  Management     resources  installed  with  products     •  Product  specificaTons  5  –  Profile  Management   •  Historic  data  about  products  and  requests  6  –  Version  Management      
  • 22. CPCM  Architecture         Maps  cached   manualy     CPCM  Core  Applicaaon   Hibernate   Second  Level   Cache   Weblogic Application Servers
  • 23. Coherence*Web         •  HTTP  session-­‐management  module  (built-­‐in   feature  of  Coherence)   •  Supports  wide  range  of  applicaaon  servers   •  Does  not  require  any  changes  to  the  applicaaon   •  Allows  session  state  to  be  managed  in  the  various   caching  topologies   •  Allows  storage  of  session  data  outside  of  Java  EE   applicaaon  server   •  Heterogeneous  applicaaons  running  on  mixed   hardware/OS/applicaaon  servers  can  share   common  user  session  data.  
  • 24. Turkcell  CRM  Domain  Topology        
  • 25. Turkcell  CRM  Domain  Topology  –  Web  Apps        
  • 26. Coherence*Web  is  easy  to  use         •   Modify  web.xml  and  weblogic.xml   •   Deploy  coherence-­‐web-­‐spi.war   •   Configure  Coherence  Cluster  
  • 27. Use  Coherence*Web  When         • You  don’t  want  to  loose  sessions  while  restarang/ maintaining  your  applicaaon   • Your  applicaaon  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   exisang  Coherence  cluster   • You  want  to  share  session  state  across  EAR  files  and   applicaaon  servers  
  • 28. GALATA     Oracle  CEP       Processing  big  amount  of  data   ConTnuous  data  flow   Latency  in  miliseconds   Different  Data  Sources   User-­‐defined  windows  for  evaluaTon   Complex  Event  Paderns  
  • 29. GALATA         •  800,000  events  per  second   •  50  simultaneous  campaign/offer  capability   •  Responsiveness  under  1  second   •  With  scalable  architecture,  ready  to  expand  on  0-­‐ day  
  • 30. GALATA         +1 +1 +1 +5 +5 +5 +20 +20 +20
  • 31. Turkcell  SMS  Proxy  -­‐  Columbus         MO & MT SMS & MMS Forwarding   Support Different Procotols Bunch of B. Rules Delivery Reports Encrypted Messages Charging
  • 32. Turkcell  SMS  Proxy  -­‐  Columbus  
  • 33. Columbus  Topology  
  • 34. Columbus  Coherence  Usage   •  Minimize  database  access   •  Calculate  distributed  TPS   •  Quickly  merge  incoming  messages   •  Match  delivery  reports  across  cluster  
  • 35. Columbus  Distributed  TPS   •  Flexible  licence  control   •  Balance  the  load  on  SMSC   •  Reliable  traffic  for  SMSC   •  Minimize  network  traffic  –  if  necessary   •  Must  be  very  fast  
  • 36. Columbus  Distributed  TPS   +1 +1
  • 37. Columbus  Distributed  TPS  
  • 38. Columbus  Distributed  TPS   •  Create  a  NamedCache   •  Put  iniaal  values   •  Increment  /  decrement  when  needed   •  Check  current  value   KEY   INITIAL  VALUE   MT  TPS   0   MO  TPS   0  
  • 39. 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); }  
  • 40. 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; } // ... }  
  • 41. Columbus  –  Merging  Messages   •  Treat  different  messages  as  one   •  Data  may  not  be  available  on  one  server   •  Should  be  processed  as  it  is  available  
  • 42. Columbus  –  Merging  Messages  
  • 43. 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   VALUE   MessageRef#1   Part#1  -­‐>  Part#2  -­‐>  ...   MessageRef#2   Part#4  -­‐>  ...  
  • 44. 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 }  
  • 45. 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; }  
  • 46. 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; }  
  • 47. 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); } }  
  • 48. 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  
  • 49. Columbus  –  Matching  Delivery  Reports   0 01 1101 1000
  • 50. Columbus  –  Matching  Delivery  Reports   Message  ID   Message   Confirmaaon  ID   Message  ID   #M1   Message#1   #C1   Message#2   #M2   Message#2   #C2   Message#3   #M3   Message#3   #C3   Message#1  
  • 51. Thank  You   deniz.secilir@turkcell.com.tr  (@denizsecilir)  yusuf.soysal@turkcellteknoloji.com.tr  (@yusufsoysal)