A Guide to Creating C++ Service-Based and SOA Applications

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    A Guide to Creating C++ Service-Based and SOA Applications - Presentation Transcript

    1. WHITE PAPER A Guide to Creating C++ Service-Based and SOA Applications www.roguewave.com
    2. WHITE PAPER Abstract This paper describes how to develop and host high performance C++ and Java Web services using Eclipse-based XML, SOAP, and WSDL productivity tools for transforming new and existing C++ applications for use in Service-Oriented Architectures (SOA). It will cover the following topics: » Arguments for integrating C++ in service-oriented applications » » Challenges of integrating C++ with Web services » Building C++ Web services » Accelerating C++ service development » » Rogue Wave® Hydra features A step-by step example » Evolution: From Web services to SOA The focus is on Rogue Wave® Hydra, a complete integrated development environment (IDE) and framework for C++ and Java applications in a high performance, SOA environment. Arguments for integrating C++ in Service-Oriented Applications C++ is still in wide use today – and not only in legacy systems. New software products, operating systems and large e-commerce businesses continue to write in C++ due to its performance advantages. The cost of replacing a legacy system can be prohibitively high. Extending a legacy system’s value through integration and distributed computing is often more attractive than a rewrite. As business requirements change at an increasing pace, it is less and less common for application development to occur in a homogeneous technology environment. Service-oriented architectures have been used to combine applications written in different technologies into an integrated, flexible architecture. Java is a common service language, however, rewriting legacy code may not always be an option. Requirements for high performance, low latency and efficient memory usage often drive the need for development of services in C++. These services can be integrated by calling from other C++ services (when performance is a requirement) or from Web services when interoperability with other languages is needed. Hydra supports these two options plus a third - hosting both C++ and Java services in the same process. « 2» www.roguewave.com
    3. WHITE PAPER Challenges of Integrating C++ with Web Services Most web service and SOA tools are focused on Java and Microsoft .NET, making it difficult to address systems created outside of these environments. Integrating C++ applications using Web services can be challenging for several reasons: » Web services require foundation pieces not supplied by C++ platform/libraries, including critical protocol implementations such as HTTP and SOAP. » Since C++ is a “compile time” language it is difficult to map it with dynamic systems like Web services. » C++ is a very high performance language, but writing scalable, threaded infrastructure code can be very complicated and time-consuming. Building C++ Web Services Using a framework like Rogue Wave® Hydra provides an alternative to heavyweight middleware like CORBA or custom, hand-written approaches. By providing an intuitive Eclipse-based IDE and framework based on standards such as HTTP, SOAP, WSDL, and XML, development costs are reduced and it is possible to rapidly modify applications as business needs change. Developers can quickly transform a monolithic application into C++ service-based or SOA applications that can natively interact with all other parts of the technology infrastructure. Hydra’s Eclipse-based IDE provides a modern, highly productive development environment including code generation, debugging, testing and deployment. Code generation technology provides a customized, service-specific programmatic interface built upon a scalable, distributed runtime for executing services and communicating with other systems. The Hydra runtime hosts C++ and Java services and handles the details of threading, networking, XML parsing, and Web services. This approach separates the business logic code from the underlying communication framework, ensuring long-term flexibility and compatibility. In addition, a large number of Hydra runtimes can be distributed across a network for highly scalable applications. Hydra support the SOA approach by making it easy to create Web services from both new and existing business processes. Once exposed through a Web service, these processes can interact with other Web services anywhere on the network, regardless of the technology that underlies these services. «3» www.roguewave.com
    4. WHITE PAPER Hydra also supports the Service Component Architecture (SCA) standard, a widely-supported industry standard for SOA applications and frameworks. Message formats in Hydra are based on the SOAP protocol, a widely accepted, easy-to-use mechanism for transferring messages over a network. As shown below, to use Hydra, developers supply a standard Web Services Description Language (WSDL) file or create a new one using the graphical WSDL designer in Eclipse. Hydra automatically generates a skeleton service that handles the details of protocols, standards and networking to ensure interoperability. Developers then drop in new or existing C++ business logic to create a ready-to-deploy service that is deployed to the Hydra runtime for hosting. Accelerating C++ Service Development There are several advantages to using a framework to develop C++ services. These include: » Application quality. The reliable technology of a well-established framework such as Rogue Wave® Hydra delivers proven scalability and performance, freeing you to focus on your business logic rather than the infrastructure of your service-oriented application. » Efficient evolution. The modular design of Hydra enables you to quickly adapt the application as your business needs change, allowing you to modify only the areas that require adjustment. » Faster time-to-market. Hydra improves developer productivity so you can deliver effective service- oriented applications on schedule and on budget. » Cost savings. With Hydra, you can achieve the flexibility of service-oriented applications while leveraging your existing investments where it makes sense, drastically reducing the need to rewrite, test and optimize proven application logic. «4» www.roguewave.com
    5. WHITE PAPER Rogue Wave® Hydra Features: Features in Detail FEATURE DESCRIPTION C++ and Java service The Eclipse-based IDE allows for the creation of both C++ and Java projects, generation including all the files necessary to support a service: a WSDL document, skeleton source files to implement the service, and an SCA composite file to describe the service components. Service code can be regenerated if a WSDL is modified. DEVELOPMENT C++ and Java debugging Services can be easily debugged using the native toolchain (for C++) and Eclipse (for Java) tools. High-speed XML parsing Rogue W ave® Hydra supports t he Service Data Object ( SDO) specification, which addresses cross-platform data compatibility issues in SOA development. High performance is achieved through low memory usage and optimization for very large XML documents. Database connectivity Rogue Wave® Hydra utilizes both the Service Data Object (SDO) specification and t he enterprise-class database support of SourcePro DB to p rovide a data source-independent database representation. Multi-language service Provides t he ability f or C++, Java, and BPEL services t o directly i nvoke each interaction other in-memory, providing high performance service interaction. Content-based routing Parallel message p rocessing w ith t he ability t o guarantee o rder o f execution. DEPLOYM ENT Routing rules are simple to configure and customize. Load balancing Load balancing is customizable, from the standard round-robin approach t o balancing using rules customized for specific business needs. High availability Rogue Wave® Hydra provides several types of high availability support, and can be customized t o support additional variants. Persistence and r estoration of messages is supported, as is message replay. Broad transport support Provides out-of-the-box support for HTTP(S), JMS, AJP13, Objectivity/DB and provides the ability to support additional transports. Configurable parallelism Execute multiple instances of a service across threads, processes or servers and ADMINISTRATION change configuration without changing application code. Eclipse-based administration The Eclipse-based IDE reduces time required t o configure and m anage tools multiple runtime instances, and provides a convenient view of Rogue Wave® Hydra runtime status. Service-level instrumentation Feed real-time business or system information to business intelligence (BI) or systems management applications . «5» www.roguewave.com
    6. WHITE PAPER A Simple Step-by-Step Example This example takes you through the process of creating a C++ Web service, a WSDL file that defines the Web service, and how to test it using the Eclipse Web Services Explorer. The basic steps are: 1. Start Eclipse 2. Create a Hydra C++ (or Java) Project 3. Generate or Import a WSDL 4. Implement a method 5. Build, Deploy, Start 6. Test using Eclipse client 1. Start Eclipse No setup required. Simply start Eclipse.exe bundled with the Hydra evaluation copy, which already contains the necessary plugins. An evaluation copy of Hydra can be obtained from: http://www.roguewave.com/downloads www.roguewave.com «6»
    7. WHITE PAPER 2. Create a Hydra C++ (or Java) Project Select File | New | Hydra C++ Service Project, and use the Wizard. Code generators create C++ and Java code and project artifacts like SCA composite files. 3. Generate or Import a WSDL Select a compiler, then import an existing WSDL, or let the Eclipse-based graphical editor generate a new WSDL from a visual design. «7» www.roguewave.com
    8. WHITE PAPER 4. Implement a method A working Web service is created. A one line change is all that is needed for “Hello World”. 5. Build, Deploy, Start a. Build “All”, right click on Project name to deploy; b., specify the “Agent” configured and; c., start the agent. «8» www.roguewave.com
    9. WHITE PAPER 6. Test using Eclipse client Test using any SOAP client, or use the dynamically generated one provided by Eclipse. Try it yourself. Download the Rogue Wave® Hydra evaluation from http://www.roguewave.com/downloads and follow the setup instructions. Evolution: From Web Services to SOA Building C++ Web services is the first and most fundamental step toward moving C++ applications toward a SOA. The next and larger challenge is to deliver SOA applications that are technologically agnostic and language independent. To forward this effort, the OASIS Open CSA finalized the first full version of the SCA specification for C++ and Java in 2007, with the support of dozens of application development tool vendors including Rogue Wave Software, IBM, Sun Microsystems Inc., SAP, and Oracle. «9» www.roguewave.com
    10. WHITE PAPER The key elements of the SCA specification offer the possibility of creating composite SOA applications using reusable SOA components in any technology: » Decoupling of application logic from the details of its invoked service calls » Multiple language support, including C++ and Java, as well as orchestration via BPEL » Support for One-Way, Asynchronous, Call-Return, and Notification communications » Binding services via SOAP-based Web services, JMS, or other protocols » Data defined via Service Data Objects (SDO). The SDO API is available in both C++ and Java The SCA standard has the ability to increase flexibility for composite applications, incorporating reusable components in a SOA programming style. Business logic programming specific to platforms, infrastructure, plumbing, policies and protocols are can be dispensed with, boosting developer productivity. Rogue Wave® Hydra supports the SCA standard for C++ services as well as Java services in an integrated development environment and application hosting environment. Summary This paper details the benefits of C++ Web services development and takes the reader step-by-step through a simple example. It also highlights the challenges faced when developing Web services in C++ generally and illustrates how developers can save considerable development time and effort, while producing code that is robust and easily maintainable. Lastly, some advanced C++ Web services features are discussed. USA 1-800-487-3217 FRANCE +33 (0)1 30 09 78 78 GERMANY +49 (0)6103 59340 Copyright © 2009, Rogue Wave Software, Inc. All Rights Reserved. Rogue Wave is UK +44 8450 549950 a registered trademark of Rogue Wave Software, Inc. All other trademarks are the www.roguewave.com property of their respective owners.

    + Seb GRSeb GR, 3 weeks ago

    custom

    58 views, 0 favs, 0 embeds more stats

    A quick walkthrough C++ Service-Based and SOA Appli more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 58
      • 58 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories