I have been asked to design a solution to create a set of custom web services based on Informatica MDM API's and then expose these Custom Web services per a defined format(PIM) for the Consumer to use these Custom Web Services. I have a WSDL for the MDM API's.
I have been provided a web service provider interface for MDM management operations. These interface operations and data type definitions align with the PIM model used by the Consumer integration stream.
Based on this information Can you Please suggest me what is the approach to take to start designing the Custom Web services and developing them?
I am under a very tight time frame. So any quick response would be appreciated.
The task you have been asked is to do is called "Service Design". This task needs more of functional thinking. Forget the technical aspects for the moment.
You are exposing web service, that means you are providing service to consumer(s).
Ask your self:
1. Why service?
2. What service has to do? Try to clissify your service. As standard, service can be Utility, entity or task service.
3. What data is needed to perform <answer from question2>?
4. Is there a response is returned after performing <answer from question2>?
5. How service is exposed? : which data type : XSD, JSON .. ?, transport : HTTP, HTTPS, JMS ... ?
5. Non-functional requirements (Max message size, response time, number of requests per second, secirty..). This is advanced level. Normally this should be defined by the Solution Architect (or the person who is responsible for the overall architecture of system and identified the service)
Couple of suggestions:
1. Do not provide service particular for a customer. This is traditional application to application coupling. Strictly antipattern. So
" These interface operations and data type definitions align with the PIM model used by the Consumer integration stream. "
DO NOT DO IT.
2. Do not reveal the internal subsystem details to consumer. Do they really need to know those? In you case Informatica or pther provider system.
3. If you were able to classify your service from <question2>, use the appropriate data model from MDM. DO NOT extract the service interface and WSDLs as it is from MDM. It gives 360 degree view of particular entitiy (for example customer) which is normally very very big WSDL with several operation which are not required.
4. Visualise as much as possible in a modelling software and analyse well to fulfill the <answer from question2>
5. User service versioning
Regards, Sujeeth Pakala
SCJP, SCWCD, SCBCD, ICAD, XML Master Basic, Certified SOA Professional