Presentation on theme: "XML-based web services with the java 2 platform, Enterprise edition (j2EE) by anis karimpour-fard."— Presentation transcript:
XML-based web services with the java 2 platform, Enterprise edition (j2EE) by anis karimpour-fard
Overview Web services smart web services jboss References
Web services What are web services Major challenges in building web services Web service development technology Web services standard Implementing web services Development tips Conclusion
The business wanted to do transaction with the customer, so application web was created. The e-business wanted to integrate their processes with other e-business, so the web service was created.
Web services are a new breed of Web application. They are self-contained, self- describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions, which can be anything from simple requests to complicated business processes...Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service.
Web service provide an application integration technology that can be successfully used over the internet.
Build client-tier connectivity to allow applets, applications, business partners, and web browsers connect and make use of a web service. implement the web service Including any workflow logic, data transformation logic, business logic, and data access logic. This is the functionality behind the web service that performs work on behalf of the clients. connect to back-end system which may include one or more databases, existing enterprise information systems, business partners that publish their own web services, and a shared context repository for user information shared across many systems. Major challenges in building web services
Major subsystems and protocols in a J2EE-based with web services environment
Type of clientExamplesHow this client connects Business partners Distributors, resellers, large customers XML-based web services technologies (SOAP, UDDI, WSDL, ebXML) Thin clientsWeb browsers, PDA, Wireless devices Lightweight protocol (HTTP) Thick clientsApplets, applications, existing systems Heavyweight protocol (IIOP)
web services development model with J2EE relies on the following four standard technologies: XML technologies. The use of XML standards is very important in the overall scheme of the web services universe. Java technologies. A critical component of this is the Java API for XML Parsing (JAXP). The future will bring a few new JAX* APIs, mainly for dealing with the XML data formats and services. These future JAX* APIs will allow for greater ease and speed in development.
TCP/IP The universal networking protocol. Everything from pagers to mobile phones to laptops to mainframes can communicate through TCP/IP. HTML The universal user interface. You can use HTML tags to render data on just about any device you can think of. What do these technologies have in common? They're all open, cross- platform standards. It's openness that makes the Web possible; that openness is also the foundation for Web services.
BUSINESS PARTNER CONNECTIVITY Business partner can use different programming languages, middleware, and hardware. When request comes to j2ee web service deployment the following order of operations takes place: 1) The XML document is received by a Java servlet 2) The servlet processes the incoming XML-based request. 3) The servlet then calls one or more Enterprise JavaBeans(EJB) components to perform business data processing. 4) The EJB components perform their processing, possibly calling external systems. 5) the EJB components returns data to the servlet. 6) the servlet then marshals this return value into an XML document. 7) The servlet return XML to the client on a response –
Processing a business partner request
Web Service Standard UDDI (Universal Description, Discovery, and Integration) Before a partner can make a web service call to a business, it must first locate a business with the service needed, discover the call interface and semantics, and write or configure software on their end to collaborate with the service. Thus we need a vehicle to publish our web service. In another word A business registry standard for indexing web services, so that their descriptions can be located by development tools and applications.
JAXR To support the functionality of UDDI on the Java platform, the Java APIs for XML Registries (JAXR) is a API specification that developers can use to access registries. JAXP enables enterprise developers to add essential XML functionality to their Java applications, in areas such as e-commerce, enterprise application integration, and dynamic web publishing,
WSDL For a business to discover a service it wants to use, it needs to understand the call syntax and semantics prior to actually making a call. The WSDL (Web Services Description Language) specification is an XML document which describes the interface, semantics, and administrative of a call to the web service.
Implementing web service 1) service provider creates a web service 2) the service provider uses WSDL to describe the service to (UDDI registry). 3) the service provider registers the service (in a UDDI registry and /or ebXML registry or repository).
4) another service or user locates and requests the registered service by querying UDDI and/or ebXML registry(ies). 5) the requesting service or user writes an application to bind the registered service using SOAP(in the case of UDDI) and/or ebxml. 6) data and messages are exchanged as XML over HTTP.
Development Tips : 1: Request a service Web service has the same issues as distributed services Requested service is consider heavy weight operations Local operation is much cheaper than distributed operation 2: Control issue With Web service you are tapping into software modules that are not under your control. Plan for the time when it does not work.( The system worked in the last few month and now is updated to new version.)
3: RPC-style architectures Do not expect instance response because web service support Asynchronous response RPC-style architecture Synchronous response RPC-style architecture Messaging you wont be able to count on the reliability of many services you call because the they arent under your control. Provide backup plans for important process
Conclusion 1) Reduce cost 2) Improve quality 3) Increase function 4) Web service are here to stay 5) plenty of challenge and creative opportunities as only a few development tools are available at this time. 6) Few standard available 7) companies like IBM, SUN and Microsoft believes the next revolution in computer science will be web services.
Smart web service provide high level of customization and personalization context awareness, multinet capabilities, quality of service, fully open interface software device can sense 1) who you are 2) where you are 3) what kind of device you are using 4) what kind of network 5) your preference (the context can will be share different devices and different model interaction at real time.)
jboss JBoss is an application server written in Java that can host business components developed in Java.
What are the benefits of jboss? dynamic "hot" deploy dynamic proxies JMX ( fully modular design that enables you to replace virtually every component of the server.)
JBoss supports: 1. stateless session beans 2. stateful session beans 3. BMP entity beans 4. CMP entity beans 1,2 and 3 are standard features you can reasonably expect an application server to provide. It's the quality of a CMP implementation and the developer tools around it that differentiate application servers. JBoss supplies JAWS (Just Another Web Storage) to allow developers map EJBs to relational data storage.
JBoss does not implement the servlet specification (or the JSP specification). Instead, they have integrated with two other open-source projects - Jakarta Tomcat and Jetty to get this. You can run JBoss with either Jetty or Tomcat integrated within the same VM (which means a huge performance boost since all calls are now local to the VM and there is no network io) or in separate VMs
JBoss Pros 1. The install process is very easy and more importantly self-contained. JBoss does not use the registry (on Windows) or any other platform-specific mechanism for configuration. All information is stored in text files. 2. JBoss has built-in SOAP support (via the ZOAP integration). 3. JBoss has been JMX enabled right from the start and was built with management in mind from the ground up. 4.JBoss is very resource friendly. It takes only a couple of seconds to start up (and EJBs deploy quickly too) and will comfortably run on a machine with 128 MB RAM. This is great for development
JBoss Cons 1. There is no support for clustering. There are two methods for scaling application servers: horizontal scaling and vertical scaling. JBoss supports vertical scaling of hardware only. Horizontal scaling involves deploying multiple application server instances. Vertical scaling means deploying a (single) larger, more powerful machine that can support more users, with a higher throughput or service time, with almost linear scaling.
2. Parts of the documentation are missing and / or out of date. This especially impacts new / weak developers since they only have the documentation to go on and are not in a position to start trawling through source code. 3.Compared to BEA, the JBoss developer community is small.
References Sun micro system J2 Platform enterprise edition(J2EE) JBOSS organization