Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4/21/10 Page 1


Published on

  • Be the first to comment

  • Be the first to like this

4/21/10 Page 1

  1. 1. SOA Development and Deployment B. Ramamurthy
  2. 2. Topics <ul><li>We looked at a design of a basic SOA. </li></ul><ul><ul><li>We essentially designed the layers: enterprise, process, intermediary, basic layers. </li></ul></ul><ul><ul><li>We also discovered the services in these layers. </li></ul></ul><ul><li>In this lecture we will look at: </li></ul><ul><ul><li>Components of a web services software </li></ul></ul><ul><ul><li>Framework needed to develop, deploy and consume web services </li></ul></ul>
  3. 3. Develop and deploy SOA <ul><li>Language and a platform (Java on Windows, Java on Linux, or Java on Solaris) </li></ul><ul><li>IDE for development (Netbeans, Eclipse, BEA Weblogic, IBM’s Websphere, Oracle JDevloper) </li></ul><ul><li>Application Server/Container for deployment (Apache’s Tomcat, IBM’s Axis, Sun’s JWS, Sun’s Glassfish, Oracle’s IAS) </li></ul><ul><li>Build tools (Apache Ant, Unix Make utility) and project management tools (Apache Maven) </li></ul><ul><li>Web server for web clients (Microsoft’s IIS, Netscape, Mozilla Firefox) </li></ul><ul><li>Testing tools such as JUnit or NUnit testers that are usually packaged with an IDE </li></ul><ul><li>And then there are standards WC3’s, WS-I, WS-* </li></ul>
  4. 4. Your Choice <ul><li>{Linux, Java 5 EE, Glassfish, Ant, Maven, command line} </li></ul><ul><li>{Linux, Java 5 EE, Glassfish, Ant, Eclipse} </li></ul><ul><li>{Windows, Java 5 EE, Java Web Server (JWS), Ant, Netbeans} </li></ul><ul><li>{Windows, .NET C#, Visual Studio .NET, its build tools} </li></ul><ul><li>{Open source stack: Linux, Apache, MySQL, PHP: LAMP; no particular IDE} </li></ul>
  5. 5. Application Architecture SOAP over HTTP Client Stub WS Runtime (APIs) Transport WSDL/ Endpoint impl Proxy WS Runtime (APIs) Transport
  6. 6. Develop/Deploy (DD) Cycle (server side) <ul><li>Devlop/deploy cycle uses wscompile and wsdeploy tools to create “artifacts” </li></ul><ul><li>Wscompile is invoked on a service endpoint interface or WSDL to generate artifacts specified by Java-WS specs and a model file. </li></ul><ul><li>A model is a Java-WS representation of a web service generated by wscompile, usually in .xml.gz file. </li></ul><ul><li>Artifacts generated by wscompile are bundled together to form a war file along with a deployment descriptor (raw WAR file). Raw WAR file contains portable artifacts. </li></ul><ul><li>wsdeploy tool takes this raw WAR file as an input, processes it and generates a WAR file (cooked WAR file) which can be deployed in a servlet container, exposing web service and associated WS to a client. Cooked WAR file contains implementation-specific artifacts. </li></ul>
  7. 7. Develop/ Deploy Cycle Service Endpoint Interface WSDL wscompile Portable artifacts Model wsdeploy Deployment Descriptors Cooked WAR Deployed in a container
  8. 8. Invocation Model (client side) or Invoke Cycle WSDL wscompile Portable artifacts Implementation -specific artifacts Client Invoke web service Client code
  9. 9. wscompile <ul><li>Tool to generate client-side and server-side artifacts (support files) required by Java-WS. </li></ul><ul><li>It can run from the shell using </li></ul><ul><li>wscompile [options] config_file </li></ul><ul><li>Ex: </li></ul><ul><li>wscompile –gen –classpath lib/foo.jar;/bar.jar – generated config.xml </li></ul><ul><li>Ant task for wscompile is somewhat like this: </li></ul><ul><li><wscompile </li></ul><ul><li>gen = true </li></ul><ul><li>base = “${build}” </li></ul><ul><li>classpath = “xyz.jar” </li></ul><ul><li>config = “config.xml’> </li></ul>
  10. 10. cinfig.xml <ul><li>Configuration file is the primary source of information for wscompile tool. </li></ul><ul><li>The xml file has elements for service, wsdl, modelfile etc. </li></ul><ul><li>End point definitions for server and port number are also specified. </li></ul>
  11. 11. wsdeploy tool <ul><li>wsdeploy tool is used to generate a WAR file that can be deployed in a container such as Tomcat, J2EE Glasfish, JBoss. </li></ul><ul><li>It takes a raw WAR file that contains a service endpoint interface, a service endpoint implementation, any value types, any service-specific exceptions, a model file, a deployment descriptor and generates an implementation-specific cooked WAR file. </li></ul><ul><li>This generates serializers, ties, runtime descriptors, other files needed for runtime deployment. </li></ul><ul><li>You will use an ant task to generate the war. </li></ul>
  12. 12. Apache Ant Tool <ul><li>Ant tool is an XML based build tool. </li></ul><ul><li>Ant requires its config files to be specified in XML format. </li></ul><ul><li>Config file build.xml has general commands for ant tool. </li></ul><ul><li>Ant tool is used for build, deploy, and run java applications. </li></ul><ul><li>See these tutorial for more information on ant: </li></ul><ul><li>Ant Book Chapter: </li></ul><ul><li> </li></ul>
  13. 13. Lets Review Basics with Netbeans <ul><li>Java class </li></ul><ul><li>Java Application </li></ul><ul><li>Develop and execute Java program with Netbeans IDE </li></ul><ul><li>Simple WS and WS client </li></ul><ul><li>Lets study the client semantics </li></ul><ul><li>Lets understand ports, end points and WSDL </li></ul>
  14. 14. Netbeans documents <ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li>Also look at the help available within the IDE. </li></ul>
  15. 15. Summary <ul><li>We learned how to create a simple web service, develop and deploy it and consume it in different types of clients. </li></ul><ul><li>This exercise forms the basis for the composite SOA application you will be building for this course. </li></ul>