You are on page 1of 32

Oracle SOA Suite12c against

Oracle SOA Suite11g


Deloitte Consulting LLP

Contents
Introduction

Features list

1.IDEs

2.Single installer

3.JDeveloper debugging

4.OSB and Mediator in One IDE

5.New database connection types

6.Purge/partitioning improvements

10

7.Mobile service integration

11

8.ojAUDIT

12

9.Brand new: cloud adapter

13

10.Brand new: coherence adapter

15

11.Updated XSLT Mapper and New XQuery Support

17

12.Continuous integration

18

13.Brand new: Managed File Transfer (MFT)

20

14.Brand new: Enterprise Scheduler Service (ESS)

22

15.Sharing Artifact becomes easy with Graphical MDS

23

16.SensorsDesign Time @ Run Time

24

17.Fault policy editor

25

Conclusion

26

Appendix A: Acronyms

27

Appendix B: References

28

SOA 11g versus 12c

Introduction

Introduction
A key differentiator of Oracle SOA Suite 11g relative to other integration platforms has always
been the unified interface across most of the components for Oracle SOA Suite. Oracle SOA
Suite 12c takes this differentiator to another new level by integrating the remaining major
components of Oracle SOA Suite into a single unified experience.
This feature simplifies integration by eliminating the need to train developers, administrators,
architects, and others on separate components of every aspect of integration, which lowers cost
and provides a faster time to integrate.
This unification results in a single design-time experience, single run-time infrastructure, and
end-to-end monitoring and greatly simplifies the work of building, maintaining, and monitoring
distributed SOA implementations. Oracle SOA Suite 12c is integrated not only with the tools and
capabilities provided by the suite itself, but also with external systems and applications. This
enables an integrated platform from which customers can create enterprise solutions for a
heterogeneous environment. And the integration of the SOA platform includes both components
developed internally at Oracle and those brought in through acquisition.
This white paper is all about the new features of Oracle SOA 12c while presenting a comparative
study against the features of SOA Suite 11g.

SOA 11g versus 12c 1

Introduction

Features list
Both Oracle SOA Suites 12c and 11g provide capabilities you need to deliver robust, agile, and
reliable SOA solutions. The following is a list of the major capabilities of the suite across the
important areas of focus:
Services

Processes

Security

Virtualization

Orchestration

Message-level encryption

Service-level agreements

Transactional/Compensating

Field-level encryption

Message routing

BPEL and BPMN

Basic Auth

Message transformation

Business Rules

SAML

Message encryption

System integration

Fine grained authorization

Identity management

Management and Monitoring

100% Standard

Development

Unified management

WS-*

Java

Assets and Impact Analysis

REST

SCA Standard assembly

Reuse and ROI metrics

WSDL

BPEL and BPMN

Architectural standards and


enforcement

XML /XPath/XQuery/XSLT

HTML/XML/WSDL

Service Component Architecture

Unit test

Reporting and Dashboards

UDDI

Maven/Ant*

Meta-data

Continuous Integration*

Deployment

Integration

Event Oriented

Service Component Architecture


(deployment)

JCA Adapters

Complex event recognition

Web Services

Applications

HTTP/HTML

Complex event query language


(CQL)

Servers

ERP

Declarative

Custom

Streaming

* denotes features that are additional in SOA 12c.

SOA 11g versus 12c 2

Introduction

Snapshot of SOA11g vs. SOA12c features:


Features

SOA 11G

SOA 12C

Easy to Use

Web-based UI

Built-in Scheduler
Clustering and Job distribution

Deploy in cloud option

Single installer

BEPL/Mediator/OSB in One IDE

Inbuilt DB (Java DB)

Mobile service integration

Managed File Transfer (MFT)

Fault Policy
Sensors
Cloud Adapter

(Design time)

(Design time/Run time)

Following sections are meant to delve deeper into the exciting features that make Oracles
SOASuite12c stand out as best-of-breed software in the SOA and middleware space.

SOA 11g versus 12c 3

Introduction

1.IDEs
Both Oracle Service Bus and BPEL/Mediator have a common unified IDE in SOA Suite 12c as
against multiple IDEs for SOA Composite and OSB. This implies that for Oracle Service Bus
development, no longer OEPE (Eclipse), a separate IDE is needed. In fact, now an Oracle
Service Bus component can be very well bundled within an SCA composite along with a BPEL
workflow or a mediator component.
ServiceBus Development in 12c JDeveloper

SOA 11g versus 12c 4

Introduction

2.Single installer
To kick-start exploration and development with SOA12c, it now takes just about 30 minutes to
create your very first Hello World process. Oracle has created a single quick-start package
installer, which will install the following at one go:

IDE:JDeveloper12c

IntegratedWeblogicServer

SOASuiteServer(ServiceBusincluded)

JavaDBthatactsastheinternalSOADB

EnterpriseManagerFMWControl

Whereas in SOA 11g, separate installers for JDeveloper, WeblogicServer, Database, RCU, and
SOA Suite are required for setting up the development environment.
This helps the developer and technical architect to play around the product, assess its merits,
and perform POCs and feasibility studies without the requirement of extra hardware (server,
memory, or admin) or the need for maintaining the server and associated admin jobs.

SOA 11g versus 12c 5

Introduction

3.JDeveloper debugging
A new feature in Oracle SOA Suite 12c is introduced to debug SOA and OSB applications at
design time within the IDE. With the help of this, the code can be debugged before deploying,
which helps save lot of development efforts by the development team.
Earlier in 11g, the following development cycle used to be followed:

BuildCodeinJDeveloper

Deployittotheserver

TestitintheEMConsoleanddebugitusingflowtraces

If there are any issues while testing, we would have to repeat all the above steps. But, with the
new feature of SOA Debugger in 12c, we can add code breakpoints either at Composite or
BPEL or Service Bus Pipeline or even at Activity levels and troubleshoot them in Debug Mode.
During debugging, the value of variable or XML element can also be changed.

Two red arrows pointing to different directions in the above diagram signify that the breakpoints
are added to Service and Component for both Request and Response.

SOA 11g versus 12c 6

Introduction

4.OSB and Mediator in One IDE


In SOA Suite 11g, OSB and Mediator were a separate entities altogether in terms of installation
as well as development environment and IDE, whereas in 12c, OSB is a part of SOA Suite and
can be a part of the SCA composite developed in the same IDE.

Oracle Mediator provides a lightweight framework to mediate between various components


within a composite application, such as business processes, human workflows, and so on, using
a Web Service Description Language (WSDL) document as an interface. Mediator converts data
to facilitate communication between different interfaces exposed by different components that
are wired to build an SOA Composite Application.
With 12c, some new features have been added in Mediator like Translate from Native Action,
Override Using Action, etc.
For example, when the value of the process/input element in the request message is long (i.e.,
longer than six characters), we want this value to be sent in UPPERCASE to the BPEL process.
If the value is shorter, then nothing should be done. In order to achieve this, the override feature
of Oracle Mediator can be utilized.
Why mediator is placed along with OSB in 12c: It is all about product packaging and
technologically speaking it is a redundant component; however, from the product life cycle
perspective, Oracle did not want to remove the Mediator component as it will help 11g users
migrate their services.
When to use mediator or OSB: To have a very lightweight routing mechanism with features like
re-sequencing, one can go for mediator, and for heavy routing mechanism and minimal
branching, one can go for OSB.

SOA 11g versus 12c 7

Introduction

Mediator is a tiny light-weight service bus; it is limited to simple mediator functionality for the
implementation of the VETRO (Validate, Enrich, Transform, Route, and Operate) pattern. It
supports message transformation with XSLT and is also capable of performing re-sequencing of
the messages.
Whereas, OSB is a large and powerful stand-alone Service Bus. It has extended functionality for
enterprise-wide integrations like Message Throttling, Service Pooling, and Reliable Messaging. It
supports message transformation with XSLT and XQuery.

SOA 11g versus 12c 8

Introduction

5.New database connection types


SOA Suite 12c added two new database connection types when creating database connections:
JavaDB and JDE World.

JavaDB(Derby)ItisusedtorunSOASuiterepository,whichisusedfortheintegrated
server.ItisadevelopmentdatabasethatallowsonetostartdevelopmentwithSOASuite
withouttheneedtoruntheRCU.JavaDerbyDatabaseisafilebaseddatabaseandthatmakesit
reallyfasttouse.

JDE(JDEdwards)WorldWiththisconnection,onecanhaveeasyaccesstothedatainthe
JDEdwardsdatabase.

These two database connection types were not there in the earlier versions of SOA (e.g., SOA
11g). This is a new feature in SOA Suite 12c.

SOA 11g versus 12c 9

Introduction

6.Purge/partitioning improvements
In this release of SOA Suite, the ongoing maintenance cost is going to get reduced due to the
improved purge and partitioning features.

AutopurgeofSOADBenabledbydefaultfornewcustomers

ImprovedperformanceduetoconsolidationofAuditandFlowInstancedata.

IntervalPartitioningacceleratespurgingbytargetingtables/instanceswithinatimerange.

SOA 11g versus 12c 10

Introduction

7.Mobile service integration


In this release of SOA Suite, a REST binding has been introduced in JDeveloper to simplify
mobile enablement by exposing traditional SOAP services, Enterprise Java Beans (EJBs), JCA
Adapters connecting back-end applications, or any other underlying implementation through
REST/JSON.

Mobile integration is going to get better with the improved REST and JSON Support in 12c.

OnecanexposeanyserviceorreferenceasREST

ThereisawizardtoconfigureRESTInterface

ChoicetouseXMLorJSON

Mapoperationstoexistingservicesandbindings

AutogenerationoftestpayloadsandURLs

SOA 11g versus 12c 11

Introduction

8.ojAUDIT
JDeveloper provides a tool for auditing task, which is called an ojAudit. By default, one can find
this tool in the <oracle_home>/jdeveloper/jdev/bin directory.
It is a tool used to run an audit profile against a specific application, project, or even a specific
file using command line or directly with Jdeveloper.
This is not a new feature in 12c; it was already available in 10g and 11g. In SOA 12c, GUI is
different and a few more profiles are added to the Auditing framework.

SOA 11g versus 12c 12

Introduction

9.Brand new: cloud adapter


Besides mobile enablement, one of the new directions of the industry is cloud computing. SOA
Suite 12c offers configuration-driven Cloud Adapter for reduced complexity of integration with
key SaaS and PaaS platforms.
Oracle Cloud Adapters enable seamless and simplified connectivity with cloud applications
through its intuitive design-time wizards and rich processing options in contrast to exposing
complex WSDL interfaces for the original SaaS service (Salesforce.com for example). The cloud
adapter configuration wizard engages users with an extremely simplified view of the business
object catalog from the SaaS application from where they could browse and select one or more
objects of interest for executing CRUD style interactions.

Most importantly, all of the nuances of integrating with cloud applications, such as session
management, handling the complex WSDL, and security are addressed within the adapter itself.
Users are not exposed to these complexities and instead can focus on fulfilling the business
requirement at hand. With all these tasks delegated to the adapter, the likelihood of manual
errors is significantly eliminated; development cycles are reduced and maintenance costs are
also lowered.
The cloud adapters have support for inbound and outbound integration, secure connection, and
session management. It has a graphical API discovery, uses declarative modeling through

SOA 11g versus 12c 13

Introduction

wizards, and supports optimization of API requests (for example, it can combine operations into
a single request to the cloud service).

The Salesforce.com adapter has the same global features as described above, but also has
support for standard and custom Salesforce objects, SOAP API using Partner WSDL and
Enterprise WSDL, and Salesforces own Query Language (SOQL) and Search Language
(SOSL). The adapter uses the Oracle Credential Store Framework to store user credential and
supports the adapter diagnostic framework for reporting and alerting.

SOA 11g versus 12c 14

Introduction

10.Brand new: coherence adapter


One of the new adapters shipped with SOA Suite 12c is the Coherence Adapter. This JCA
adapter makes it easy for a Service Bus business service or an SOA composite application to
interact with a Coherence memory grid. Fully declaratively and with very little trouble, data can
be put on a cache and read from that cache. The cache is accessed like a big map: using a key,
an object is saved to and retrieved from the cache. The cache is accessible across service
executions and process instances, as well as across cluster nodes. Coherence provides
replicated and distributed (partitioned) data management and caching services on top of a
reliable, highly scalable peer-to-peer clustering protocol. The Coherence Adapter is a JCA 1.5compliant resource adapter for Oracle Coherence. Objects in the cache can either be of XML or
POJO (Plain Old Java Object) type. The Coherence adapter enables you to perform useful
coherence operations such as adding an item to a Coherence cache, obtaining an item from a
Coherence cache, removing an item, and querying from a Coherence cache.
A Coherence Cache is typically used to reuse results: values that have been calculated before at
potentially some cost to the back-end system. By reusing them, the results are obtained much
faster and without any load on the enterprise resources that would otherwise have to reproduce
them. Using values from the cache may actually mean saving money in the case that calculating
the result involves invoking paid for services.

SOA 11g versus 12c 15

Introduction

10g does not have the Coherence feature, whereas in 11g we can achieve coherence by using
OSB. We need to configure the coherence cluster at the Weblogic server level and use "Result
Caching" feature of OSB Business Service.
Oracle has introduced a Coherence Adapter in SOA Suite 12c to achieve Coherence. The
Coherence Adapter allows seamless integration with Oracle Coherence, the industry-leading
in-memory data grid solution that enables organizations to predictably scale mission-critical
applications by providing fast access to frequently used data. In many cases, data in back-end
applications or databases does not change very often. Retrieving data like this by directly
accessing these systems every time is too costly. The coherence adapter provides the ability to
push the data to the coherence cache and access it directly from the cache when needed.

SOA 11g versus 12c 16

Introduction

SOA 11g versus 12c 17

Introduction

11.Updated XSLT Mapper and New


XQuery Support
With this release of SOA Suite, XQuery Mapper has been introduced and can be used within
BPEL workflows.
The XQuery mapper has support for XPath 2.0 and custom user-defined functions. The mapper
is really user friendly and has been made consistent with the XSLT mapper interface. The
mapper also has an integrated Test framework and is built for reuse in both SOA and Service
Bus. The updated XSLT mapper now has a better support for complex style sheets with multiple
templates, user-defined functions, and recursive functions with the feature of looking at the XSLT
execution sequence.
The developer can choose between XSLT and Xquery depending on the transformation
requirements.
In 11g, Xquery was only a part of OSB and not SCA composites.

SOA 11g versus 12c 18

Introduction

12.Continuous integration
It is a software engineering practice that attempts to improve quality and reduce the time taken
to deliver software by applying small and frequent quality control efforts. It is characterized by
these key practices:

Aversioncontrolsystemisusedtotrackchanges.

Alldeveloperscommittothemaincodeline,headandtrunk,everyday.

Theproductisbuiltoneverycommitoperation.

Thebuildmustbeautomatedandfast.

Thereshouldbeautomateddeploymenttoaproductionlikeenvironment.

Automatedtestingshouldbeenabled.

Resultsofallbuildsarepublished,sothateveryonecanseeifanyonebreaksabuild.

Deliverablesareeasilyavailablefordevelopers,testers,andotherstakeholders.

Oracle Fusion Middleware 12c provides support for enterprises that adopt continuous integration
techniques to develop applications on the Oracle Fusion Middleware platform. Specifically, it
provides the following:

IntegrationwithcommonversioncontrolsystemsfromthedevelopmenttoolOracleJDeveloper

TheabilitytobuildprojectsfromthecommandlineusingMaven,abuildandproject
managementsystem,sothatthebuildcanbescriptedandautomated
SOA 11g versus 12c 19

Introduction

TheabilitytocreatenewprojectsfromMavenarchetypes

Theabilitytoparameterizeprojectssothatbuildscanbetargetedtodifferentenvironments,such
asTest,QA,SIT,andproduction

TheabilitytoincludetestingofprojectsintheMavenbuildlifecycle

TheabilitytopopulateaMavenrepositorywithOracleprovideddependenciesfromanexisting
localOraclehomesoftwareinstallationdirectory

TheabilitytorunMavenbuildsunderthecontrolofacontinuousintegrationserverlikeHudson

Comprehensivedocumentationaboutsettingupyourbuildorcontinuousintegration
environment,orboth,tousewithOracleFusionMiddleware

Although this was a more or less common practice for integration projects but this time, Oracle is
formalizing and recommending the process.
Following choices are available for version control, continuous integration, and other
components that enterprises typically use in this kind of environment. Many of these components
are free and open source, and others are commercial products.

Open Source

ApacheSubversionforversioncontrol

ApacheMavenforbuildorprojectmanagement

ApacheHudsonasthecontinuousintegrationserver

Proprietary

ApacheArchivaastheMavenRepositoryManager

SOA 11g versus 12c 20

Introduction

13.Brand new: Managed File Transfer


(MFT)
The 12c release of Oracle Fusion Middleware brings us a brand new feature called Managed
File Transfer abbreviated as MFT.
MFT is its own product in the FMW 12c family and runs on its own managed server. It is
intended for receiving and sending large files (through 500+ GB) and is a solution for removing
binary files from an SOA transaction, i.e., the SOAP message does not contain the binary file
any more.
There is a growing problem with FTP in the enterprise. FTP can have a lack of control, visibility,
security, and reliability. Such problems can be the uncontrolled proliferation of FTP servers and
clients, no global visibility into exchange of crucial data files (including customer data), and that
they are not integrated with enterprise security standards.
MFT is a simple and secure end-to-end managed file gateway. The main purpose of MFT is
transferring files between a source and one or more targets. The core is based on an
embedded sFTP/SSH service and is optimized for large files and supports HA cluster, PGP
encryption, auditing, and monitoring of files. Transfers are easily extensible using the
preprocessing/postprocessing framework.

SOA 11g versus 12c 21

Introduction

It integrates with (s) FTP, File, B2B, ODI, health care and SOA, B2B, and webservices (support
for inline payload, attachment, and pass-by reference). MFT runs as an application on WebLogic
12c and has a lightweight Web-based design time interface to easily build, edit, and deploy
end-to-end transfers and a run time interface to monitor running/failed transfer instances.

SOA 11g versus 12c 22

Introduction

14.Brand new: Enterprise Scheduler


Service (ESS)
SOA Suite 12c release brings another new product to the FMW 12c family: Enterprise Scheduler
Service abbreviated as ESS is part of the SOA Suite license and with it one can schedule jobs
(using job metadata modeling). Jobs can be created and scheduled through the EM, but there is
also a Java API. Now, the question arises, does this replace Quartz? No, SOA Suite still uses it
internally (e.g., wait activity in BPEL).
ESS 12c: Schedule Jobs using EM

ESS 12c can call Enterprise JavaBeans (EJB), PL/SQL (procedures/functions), Java, and
WebServices (SCA/SB and Sync/Async with OWSM). It also keeps track of dependency
management, conflict resolution, prioritization, clustering, processor allocation, and throttling.
It supports the scheduling of SCA Composites and SB Proxy services. It has prebuild jobs for
initiating, activating, and deactivating SOA and Service Bus components (e.g., activate DB
adapter between a specific time frame). It can schedule bulk error notifications to the dashboard
(in EM) or to other alerting channels and bulk operations for fault management. With this fault
recovery management, it can automatically disable adapters and re-process faults in a controlled
way.
It is automatically installed as part of SOA Suite, Service Bus, and MFT. Deployment is optional
in SOA Suite and Service Bus but required in MFT. This means that there is no separate license
required to use ESS. It is a part of the same SOA Suite License. One thing to take into account
is that ESS only supports weblogic and Oracle DB in 12c. ESS can be deployed to SOA/Service
Bus cluster or a separate cluster in domain using the domain configuration wizard.
SOA 11g versus 12c 23

Introduction

15.Sharing Artifact becomes easy with


Graphical MDS
In Oracle SOA Suite 12c, a graphical tool is provided to publish, search, and consume files from
MDS (Meta-Data Store). Point to note here is that one can publish the files to MDS Design Time
Repository from JDeveloper itself.
In earlier versions like SOA 11g, to add the file to design time repository, we manually need to
transfer the file to file system, run some commands, and then make some changes in the code
to refer to the MDS file. But, with the advent of SOA Suite 12c, all this has become graphical. It is
very simple to publish the file to design time repository by right clicking on the file; this changes
the required references in the code automatically.

SOA 11g versus 12c 24

Introduction

16.SensorsDesign Time @ Run


Time
Sensors are a known feature of the SOA Suite 11g. It is used to mark a variable or data field to
be traced at run time. So, at run time, one can see the values of this field or variable for a
running instance, but also one can search for running instances (e.g., find the running instance
of which the field order id has a value AB12345).
In SOA Suite 11g, these sensors had to be defined at design time. In the SOA Suite 12c, it is
also possible to define or change them at run time: Design Time at Run Time (DT@RT). This
functionality is added to the existing SOA Composer application, which is already used to
change other run time metrics like the Rule Engine and Domain Values Maps (DVMs).

SOA 11g versus 12c 25

Introduction

17.Fault policy editor


In SOA Suite 11g, Fault Policies were added so that one could easily intervene when a
SOAP/BPEL fault was thrown. But one could only create them in source mode; there was no
graphical editor.
In SOA Suite 12c, Oracle has added this long awaited request. With the Fault Policy Editor, one
can now design and edit Fault Policies. Besides, in the already existing functionality, a lot of new
features are added.

GraphicaleditorforcreatingFaultpolicies,Alerts,Actions,andPropertySets.

NewDefaultactionsforinvokingaWSandenqueuedata(JMS).

AlertscanbedefinedtosendfaulttoJMS,Email,orLogfile.

AlertscanbeassignedtoactionsiftypeofAlertisdesiredtobetriggered.

FaultPoliciescanbecoupled,usingtheCompositeBindingdialog,todifferentlevels:

Composite

Component

Referencebindingand

Servicebinding

12c Composite: Fault Policy Editor

SOA 11g versus 12c 26

Introduction

Conclusion
The rapid adoption of cloud-based applications by the enterprise, combined with organizations
desire to integrate applications with mobile technologies, is dramatically increasing application
integration complexity. Oracle SOA Suite 12c, the latest version of the industrys most complete
and unified application integration and SOA solution, meets this challenge. With simplified cloud,
mobile, and on-premises integration capabilities, all within a single platform, Oracle SOA Suite
12c delivers faster time to integration, increased productivity, and lower TCO.
Oracle SOA Suite 12c and its associated products, Oracle MFT, Oracle Cloud and Application
Adapters, B2B, and health care integration, offer the industrys most highly integrated platform
for solving the rapidly increasing challenges of integrating with cloud applications, mobile
applications, and the Internet of Things. Rather than introducing new toolsets for each new
integration challenge, Oracle SOA Suite 12c expands on the proven principles, practices, and
tools of on-premise application integration to embrace this new world. Enterprises that choose
Oracle SOA Suite 12c to connect with SaaS providers, business partners, and the explosion of
new automated sensors, will avoid the accidental architecture of separate proprietary silos
and will deliver business-critical solutions faster, with less effort, and with greatly reduced longterm maintenance costs.

SOA 11g versus 12c 27

Introduction

Appendix A: Acronyms
Acronym

Definition
SOA

Service Oriented Architecture

OSB

Oracle Service Bus

SCA

Service Composite Architecture

BPEL

Business Process Execution Language

BPM

Business Process Management

B2B

Business-to-Business

ERP

Enterprise Resource Planning

IDE

Integrated Development Environment

ROI

Return On Investment

JSON

Java Script Object Notation

CRUD

Create Read Update Delete

REST

Representational State Transfer

WSDL

Web Service Description Language

SOAP

Simple Object Access Protocol

JCA

JavaEE Connector Architecture

FTP

File Transfer Protocol

SAML

Security Assertion Markup Language

ESS

Enterprise Scheduler Service

MFT

Managed File Transfer

MDS

Meta Data Store

XSLT

Extensible Stylesheet Language


Tranformations

SOA 11g versus 12c 28

Introduction

Appendix B: References
http://www.oracle.com/technetwork/middleware/soasuite/overview/wp-soa-suite-whats-new-12c2217186.pdf
http://www.oracle.com/us/products/middleware/soa/oracle-soa-suite-ds-066430.pdf
https://docs.oracle.com/middleware/1213/soasuite/index.html
http://www.oracle.com/technetwork/middleware/soasuite/downloads/index.html

SOA 11g versus 12c 29

About Deloitte
Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited, a UK private company limited by guarantee (DTTL), its network of
member firms, and their related entities. DTTL and each of its member firms are legally separate and independent entities. DTTL (also
referred to as Deloitte Global) does not provide services to clients. Please see www.deloitte.com/about for a detailed description of
DTTL and its member firms. Please see www.deloitte.com/us/about for a detailed description of the legal structure of Deloitte LLP and its
subsidiaries. Certain services may not be available to attest clients under the rules and regulations of public accounting.
Copyright 2015 Deloitte Development LLC. All rights reserved.
Member of Deloitte Touche Tohmatsu Limited