Enterprise WSDL:----------------* It is Strongly types WSDL.* It is a big WSDL which contains entire schema of the organization (Detail objects like account, contact ...)* If the schema of the organization modified then we need to regenerate Enterprise WSDL.* It is suitable when we need to integrate only with one organization.

Partner WSDL:-------------* It is Loosely coupled WSDL.* It is small WSDL which contains Generic information about schema of the organiztion (It doesn't include detail object information).* If the schema of the organization modified then no need to create Partner WSDL again.* It is suitable when we need to integrate with multiple organizations (Like sandbox, production).

* We need to provide username and password for authentication while consuming WSDL which belongs to external application. (We should know their authentication details).* After generating apex classes from WSDL then in those apex classes we should provide username and encrypted password (string s=encodingutil.base64Encode(b); like this).

* If we provide WSDL to access in external application then we need to provide our authentication (username and password) to external system.

Critical Scenario:Difficulty: For call out to parse the response for the different services taking around 25, 30, 20 sec.Solution: Improved the performance by creating the POJO class for the each service, achieved around 80% performance (5,6,4,2 sec).