This is the third part of the series on Enterprise SOA in SAP. The other blogs of the series can be accessed Simply ESOA – A blog series on SAP’s ESOA.
Customers need custom services in some occasions to model their business processes. In an enterprise the number of services would exponentially increase once they decide on an SOA strategy for all their business processes.
Increase in number of services generates the issue of administration and governing of services. Services might need to be switched on or off for consumption based on user needs. They need to be discovered as easily as we discover information in internet.
Grouping services based on organizational needs, publishing end points dynamically, switching services on or off etc., can be achieved through publication restrictions. Publication restrictions also publish additional information which increases ease of service discovery through Services registry.
Once a service is published, the services are available in „Services Registry”. How do we discover them?
In an ideal world service discovery should happen through a simple search which takes care of s the following characteristics of an enterprise service and many more that might come up…
- – Free text search – Searches BOs, service names, operation names, parameter names and returns the ones which match the searchs text
- – Datatype – We give a data type/message type and it returns all services which have them as input or output
- – Business process – business process name list all lifecycle services for the BP
- – By date of creation , date of publishing , based on the end point system ,
The dream list goes on.
This is far from the reality. In the real world, even for the search available for internet we need to pre-process the data in some form, to increase the speed in which results are delivered. Service discovery through service registry or through ES workplace has not matured to such mature levels. Hence pre-processing them is an absolute necessity.
Classifications are a means to this end. What is classification and how its applied in service discovery is discussed in the later part of this blog.
The technical details behind creation of publication restrictions are explained below.
Publication restrictions are created in NWA. Logon to NWA and navigate to
SOA Management – > Business Administration-> Publication restrictions.
Enter the name of publication restriction and click Next.
Choose „Add Service Definition” and search for the services to be added to the publication restriction.
Select the services to add and choose Finish.
The publication restriction is activated by default. Once activated the service is published asynchronously. Deactivating the publication restriction automatically unpublishes all the services under this restriction. The service state is also monitored at continuous intervals. Hence when new end points are added to the service, the services registry is updated appropriately.
Classification is an inherent human trait. When we want to go for a movie or shop we instinctively call certain friends, when we need advice we discuss to some friends. In a way, it’s because we have classified our friends based on some of their traits.
Caste, creed, religion and everything in these lines is another example of classification.
In classification, we start with a general node applicable to all objects under discussion and split them up based on some properties. Like humans can be considered the top node of a classification based on their belief in existence of god they can be classified as theist and atheist. Here their belief is used as an attribute. In similar ways, based on some attributes a classification hierarchy is built and moves from generic to more specific.
We can build classification hierarchies and classify services based on them. This helps in speedy discovery of services and in better organization. One specific advantage with classification is that different classification system can be built for different types of services consumers.
Classification of services is done in Services Registry.
Logon to the Services Registry. Choose Manage tab for creating a new classification. Click New to create.
Enter the name of the classification and enter the classification values. Choose Save to save this classification
Choose the tab “Classifications” tab and search for the service to be classified.
Choose a classification system and classify the service. Choose “Save” to save the classification.
This way of classification is helpful once the service is published. We can also classify them when we implement and deploy services. This is done while we develop the service in SAP NetWeaver developer studio.
Open the project which implements the service. Select the implementation bean class and right click.
Choose the option Webservices -> Create Publication information
This would create a .classifications file which would store the classification information. Select the classification and save.
This operation adds an annotation to the implementation bean class. This ensures that, when the service is deployed and published through a publication restriction, the classification is also updated for this service.
Thus services can be classified during development or after publishing through the service registry.
The next part of this service would deal with the service composition using visual composer and composing a part of a process.