This document discusses the Apache Tuscany project and Service Component Architecture (SCA). It provides an overview of SCA and how it addresses challenges in developing distributed applications. It then describes the sample TuscanySCATours travel booking application, how its individual components are constructed and wired together, and how the application can be deployed. The document agenda includes explaining SCA, Apache Tuscany, the sample application, its development process including packaging, building, testing and extending it, and deploying it to an SCA domain.
Today's Cloud environments poses new challenges for application developers: Hiding Cloud infrastructure from business logic, assembling components on heterogeneous and distributed Cloud environment, optimizing the provisioning of the required Cloud resources and moving application components around to recompose the application. This presentation will demonstrate how to use Apache Tuscany and the Service Component Architecture (SCA) to assemble an application composed of several service components (written in Java, Python and C++) and deploy it to a distributed Cloud (EC2, Eucalyptus, Google AppEngine). We will show how to take the SCA assembly and automate the provisioning and configuration of the cloud platform services required by the application components on each platform, using Apache Libcloud and Apache Deltacloud. We will also illustrate how to encapsulate Cloud infrastructure services (Data store, queueing etc) as SCA components to simplify the construction and assembly of the application, and how to move components around, rewire the application to adjust to new business and Cloud deployment conditions.
Today's Cloud environments poses new challenges for application developers: Hiding Cloud infrastructure from business logic, assembling components on heterogeneous and distributed Cloud environment, optimizing the provisioning of the required Cloud resources and moving application components around to recompose the application. This presentation will demonstrate how to use Apache Tuscany and the Service Component Architecture (SCA) to assemble an application composed of several service components (written in Java, Python and C++) and deploy it to a distributed Cloud (EC2, Eucalyptus, Google AppEngine). We will show how to take the SCA assembly and automate the provisioning and configuration of the cloud platform services required by the application components on each platform, using Apache Libcloud and Apache Deltacloud. We will also illustrate how to encapsulate Cloud infrastructure services (Data store, queueing etc) as SCA components to simplify the construction and assembly of the application, and how to move components around, rewire the application to adjust to new business and Cloud deployment conditions.
Have you ever thought that your Lambda functions could fail without you even noticing?
If the answer is YES, that’s probably because you already “burnt" yourself playing with the cloud, where errors and failures are always around the corner…
Unfortunately we can’t prevent all types of failures, but what we can do is try to spot them as soon as possible and react quickly.
In order to do that, we need good observability for our serverless applications and therefore we need to become good friends with services like CloudWatch.
If you have tried CloudWatch already, you probably know how powerful but also complex it can be…
In this talk we will approach the topic of observability for serverless applications on AWS. We will discuss best practices and how to build a good friendship with CloudWatch.
We will also present some interesting automation tools that we can use to take away most of the pain of setting up dashboards and alarms in CloudWatch, making it easier to achieve great levels of observability.
This blog serves the purpose of making comprehensive information available about LAMP, which is the acronym for Linux, Apache, MySQL, PHP/Perl/Python. It describes in detail its components as well as its advantages.
This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy).
http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009
Abstract:
Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code.
Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.
APEX richtig installieren und konfigurierenOliver Lemm
Folien zum Thema Installation von Oracle Application Express bis zur Version 20.2. Dabei werden neben den Standard Installationsschritte Hinweise gegeben was man zur optimalen von APEX und ORDS ggf. anpassen sollte.
Der Vortrag wurde auf der APEX Connect 2021 online gehalten.
This slide was used to introduce group replication at http://fossasia.org/. The document has following contents:
1) Starts with asynchronous and semi-synchronous protocols supported by MySQL replication and goes ahead to show how group replication fits into the whole high availability offering by MySQL.
2) Shows a step-by-step process from a user perspective as to how a transaction is executed in the group.
3) Shows the building blocks making the layered architecture of Group replication plugin and what the roles of these building blocks are.
4) Where (and where not) to use group replication.
Mastering Universal Theme with corporate design from Union InvestmentOliver Lemm
When creating an oracle apex application with apex 5 or higher the universal theme was introduced to be the standard User Interface for all applications.
If you wanna combine the universal theme with a corporate design the big challenge is to change the look and feel without changing the most templates, only by adjusting css and a few templates.
ASP.NET 5 is the next version of the incredibly popular ASP.NET platform and it’s one of the most significant architectural updates ever made to ASP.NET. How significant you ask? How about the ability to build cross-platform modern web apps that run on Windows, Linux and the Mac for starters. How about being able to build truly modular, lean, modern web apps that only use the system components that your application needs to use instead of using a large, monolithic library.
There are 3 major changes being introduced in ASP.NET 5 including a new file based project system, a new cloud optimized core CLR, and the unification of MVC & Web API frameworks. In this presentation you will learn about what the future holds for ASP.NET 5 and how you can begin to get ready for it.
Have you ever thought that your Lambda functions could fail without you even noticing?
If the answer is YES, that’s probably because you already “burnt" yourself playing with the cloud, where errors and failures are always around the corner…
Unfortunately we can’t prevent all types of failures, but what we can do is try to spot them as soon as possible and react quickly.
In order to do that, we need good observability for our serverless applications and therefore we need to become good friends with services like CloudWatch.
If you have tried CloudWatch already, you probably know how powerful but also complex it can be…
In this talk we will approach the topic of observability for serverless applications on AWS. We will discuss best practices and how to build a good friendship with CloudWatch.
We will also present some interesting automation tools that we can use to take away most of the pain of setting up dashboards and alarms in CloudWatch, making it easier to achieve great levels of observability.
This blog serves the purpose of making comprehensive information available about LAMP, which is the acronym for Linux, Apache, MySQL, PHP/Perl/Python. It describes in detail its components as well as its advantages.
This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy).
http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009
Abstract:
Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code.
Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.
APEX richtig installieren und konfigurierenOliver Lemm
Folien zum Thema Installation von Oracle Application Express bis zur Version 20.2. Dabei werden neben den Standard Installationsschritte Hinweise gegeben was man zur optimalen von APEX und ORDS ggf. anpassen sollte.
Der Vortrag wurde auf der APEX Connect 2021 online gehalten.
This slide was used to introduce group replication at http://fossasia.org/. The document has following contents:
1) Starts with asynchronous and semi-synchronous protocols supported by MySQL replication and goes ahead to show how group replication fits into the whole high availability offering by MySQL.
2) Shows a step-by-step process from a user perspective as to how a transaction is executed in the group.
3) Shows the building blocks making the layered architecture of Group replication plugin and what the roles of these building blocks are.
4) Where (and where not) to use group replication.
Mastering Universal Theme with corporate design from Union InvestmentOliver Lemm
When creating an oracle apex application with apex 5 or higher the universal theme was introduced to be the standard User Interface for all applications.
If you wanna combine the universal theme with a corporate design the big challenge is to change the look and feel without changing the most templates, only by adjusting css and a few templates.
ASP.NET 5 is the next version of the incredibly popular ASP.NET platform and it’s one of the most significant architectural updates ever made to ASP.NET. How significant you ask? How about the ability to build cross-platform modern web apps that run on Windows, Linux and the Mac for starters. How about being able to build truly modular, lean, modern web apps that only use the system components that your application needs to use instead of using a large, monolithic library.
There are 3 major changes being introduced in ASP.NET 5 including a new file based project system, a new cloud optimized core CLR, and the unification of MVC & Web API frameworks. In this presentation you will learn about what the future holds for ASP.NET 5 and how you can begin to get ready for it.
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
By David F. Larcker, Stephen A. Miles, and Brian Tayan
Stanford Closer Look Series
Overview:
Shareholders pay considerable attention to the choice of executive selected as the new CEO whenever a change in leadership takes place. However, without an inside look at the leading candidates to assume the CEO role, it is difficult for shareholders to tell whether the board has made the correct choice. In this Closer Look, we examine CEO succession events among the largest 100 companies over a ten-year period to determine what happens to the executives who were not selected (i.e., the “succession losers”) and how they perform relative to those who were selected (the “succession winners”).
We ask:
• Are the executives selected for the CEO role really better than those passed over?
• What are the implications for understanding the labor market for executive talent?
• Are differences in performance due to operating conditions or quality of available talent?
• Are boards better at identifying CEO talent than other research generally suggests?
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
How can we take UX and Data Storytelling out of the tech context and use them to change the way government behaves?
Showcasing the truth is the highest goal of data storytelling. Because the design of a chart can affect the interpretation of data in a major way, one must wield visual tools with care and deliberation. Using quantitative facts to evoke an emotional response is best achieved with the combination of UX and data storytelling.
Building and composing the components of a distributed application can be a challenge and complex bespoke solutions are commonplace. The Apache Tuscany runtime, and the Service Component Architecture (SCA) on which the runtime is based, simplifies the process be presenting a component based application assembly model. In this talk we look at the Tuscany travel booking application and explain how the individual components of the application are constructed using a variety of technologies including Java, BPEL, Python and Javascript. We also look at how these services are wired together using a different communication protocols such as SOAP/HTTP and JSON-RPC. The complete model can then be deployed to both stand-alone and distributed runtimes without changes to the application itself.
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyLuciano Resende
Today's cloud environments pose new challenges for application developers: hiding cloud infrastructure from business logic, assembling components on heterogeneous and distributed cloud environments, and optimizing the provisioning of the required cloud resources. This session will demonstrate how to use Apache Tuscany and the Service Component Architecture (SCA) to develop, build, and run an application composed of several service components in a distributed cloud environment. We'll illustrate how to encapsulate cloud infrastructure services as SCA components to simplify the construction and assembly of the application and how to move components around and rewire the application to adjust to new business and cloud deployment conditions.
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
There is no doubt that 2018 is the year when Progressive Web Apps will get the really broad adoption and recognition by all the involved parties: browser vendors (finally, all the major ones), developers, users. And the speed and smoothness of this process heavily depend on how correctly we, developers, use the power of new APIs. In my session based on the accumulated experience of developing and maintaining PWAs we go through the list of advanced tips & tricks, showcase best practices, learn how to avoid common pitfalls and have a look at the latest browser support and known limitations.
In this talk, I'll show you how you can build Alfresco ADF applications using the new version 3.0.0. The new ADF versions include a number of new features and some breaking changes with the past that will make your life easier, I'll show you how to take advantage of it and embrace the change.
Presentation slides used duing Apache Stratos Hangout-VI. The Slides explain, how we can design a RESTful API layer for Stratos admin operations. Talks about, #REST #Carbon #Stratos #CXF #OSGi
Using state-engine-as-sca-component-finalGuido Schmutz
Integrate a state engine (Apache Commons SCXML) as a Spring Component in Oracle SOA Suite 11g. It shows some "advanced" use cases for the Spring Component in SOA Suite 11g.
OpenSource API Server based on Node.js API framework built on supported Node.js platform with Tooling and DevOps. Use cases are Omni-channel API Server, Mobile Backend as a Service (mBaaS) or Next Generation Enterprise Service Bus. Key functionality include built in enterprise connectors, ORM, Offline Sync, Mobile and JS SDKs, Isomorphic JavaScript and Graphical API creation tool.
Alex Russell Software Engineer, Google at Fastly Altitude 2016
New browser technologies are arriving that are poised to change user and developer expectations of what’s possible on the web; particularly on slow mobile devices with flaky connections. This talk discusses how these new technologies – Service Workers, Progressive Web Apps, HTTP/2, Push, Notifications, and Web Components are being combined, e.g. in the new PRPL pattern, to transform user experiences while improving business results.
Similar to ApacheCon NA 2010 - Building Apps with Apache Tuscany (20)
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
ApacheCon NA 2010 - Building Apps with Apache Tuscany
1. IBM Software Group
1
http://tuscany.apache.org
Building Applications with Apache Tuscany
Luciano Resende
lresende@apache.org
http://lresende.blogspot.com
Jean-Sebastien Delfino
jsdelfino@apache.org
http://jsdelfino.blogspot.com
Simon Laws
slaws@apache.org
2. IBM Software Group
2
http://tuscany.apache.org
Abstract
Building and composing the components of a distributed
application can be a challenge and complex bespoke solutions are
commonplace. The Apache Tuscany runtime, and the Service
Component Architecture (SCA) on which the runtime is based,
simplify the process by presenting a component based application
assembly model. In this talk we look at the Tuscany travel booking
application and explain how the individual components of the
application are constructed using a variety of technologies
including Java, Spring, BPEL and Python. We also look at how
these services are wired together using a variety of communication
protocols such as SOAP/HTTP and JSON-RPC. The complete
model can then be deployed to both stand-alone and distributed
runtimes without changes to the application itself.
3. IBM Software Group
3
http://tuscany.apache.org
Agenda
Service Component Architecture
Apache Tuscany
TuscanySCATours, a Sample Travel Booking App
– Development Process
Packaging, Build, Test
Extending the App
o Bindings
o Spring
o BPEL
o Policies
Deploying to an SCA Domain
Getting Involved
5. IBM Software Group
5
http://tuscany.apache.org
Enterprise App Development - History
Time
Web Services
services
service Interfaces
X business logic mixed with
tech APIs
X no Components
X no policy model
Service Component
Architecture (SCA)
service Components
business logic shielded from
tech APIs
reusable components in
multiple programming languages
easy to assemble into
compositions
easy to bind to different
protocols
external policy configuration
Flexibility
Agility
ROI
Monolithic
X business logic mixed
with communication logic
X no service interfaces
X no components
X no policies
SCA and Cloud Computing
elastic composites
more componentization
portability across clouds
easy to wire, rewire,
reconfigure
policies and Provisioning
6. IBM Software Group
6
http://tuscany.apache.org
SCA Assembly Model
Composite A
Component
AService
Service Binding
Web Service
JMS
SLSB
Rest
JSONRPC
JCA
…
Reference Binding
Web Service
JMS
SLSB
Rest
JSONRPC
JCA
…
Component
B
Service Interface
- Java
- WSDL
Reference Interface
Reference
property setting
Property
promotepromote wire
Implementation
Java
BPEL
PHP
SCA composite
Spring
EJB module
…
- Java
- WSDL
9. IBM Software Group
9
http://tuscany.apache.org
Apache Tuscany
Apache Tuscany provides a component based programming model
which simplifies development, assembly and deployment and
management of composite applications.
Apache Tuscany implements SCA standards defined by OASIS
OpenCSA + extensions based on community feedback.
9
11. IBM Software Group
11
http://tuscany.apache.org
Tuscany SCA In Action
Example from Tuscany Book
http://www.manning.com/laws/
Example can be downloaded from Apache Tuscany
– http://tuscany.apache.org/sca-java-travel-sample-1x-releases.html
14. IBM Software Group
14
http://tuscany.apache.org
Map to SCA composites and components
Payment
composite
component
referenceservice
As an SCA composite:
Payment
Java
payment
Payment
creditCard
Payment
EmailGateway
Java
Email
Gateway
email
Gateway
CustomerRegistry
Java
Customer
Registry
customer
Registry
transactionFee
property
15. IBM Software Group
15
http://tuscany.apache.org
Prototype and Fill in the Blanks
• Very easy to create simple components, wire them together
and get them running
• Doing this with simple implementations allows you to get a
feel for the app without implementing all of the moving
parts in detail
• A quick way to prototype an app and define the important
components and their service interfaces
• The prototype components can then be distributed to a team
for detailed implementation and testing
16. IBM Software Group
16
http://tuscany.apache.org
Payment Java Component Implementation
@Service(Payment.class)
public class PaymentImpl implements Payment {
@Reference
protected CustomerRegistry customerRegistry;
@Reference
protected CreditCardPayment creditCardPayment;
@Reference
protected EmailGateway emailGateway;
@Property
protected float transactionFee = 0.01f;
public String makePaymentMember(String customerId, float amount) {
try {
Customer customer = customerRegistry.getCustomer(customerId);
String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee);
emailGateway.sendEmail("order@tuscanyscatours.com",
customer.getEmail(),
"Status for your payment",
customer + " >>> Status = " + status);
return status;
} catch (CustomerNotFoundException ex) {
return "Payment failed due to " + ex.getMessage();
} catch (AuthorizeFault_Exception e) {
return e.getFaultInfo().getErrorCode();
} catch (Throwable t) {
return "Payment failed due to system error " + t.getMessage();
}
}
}
20. IBM Software Group
20
http://tuscany.apache.org
Web 2.0 Bindings and Widget Components
• Web 2.0 bindings: REST, JSON, JSONRPC, DWR,
Feeds (ATOM, RSS)
• Tuscany Widget implementation representing Web components,
with Javascript dependency injection
• Other scripting implementation types
22. IBM Software Group
22
http://tuscany.apache.org
Packaging and Deployment
• Service implementations are deployed into an SCA Domain
– Represents the SCA runtime configuration
– In general heterogeneous with distributed SCA runtime Nodes.
– Defines the scope of what can be connected by SCA Wires
• SCA Domain configuration is a Domain Composite
– Final configuration for service dependencies, properties, bindings,
policies
• Implementation artifacts and their configuration added to a Domain as
Contributions
– Many packaging formats (JAR, ZIP, Folder etc.)
– Artifacts (Classes, XSD, WSDL, BPEL etc.) may be shared
between Contributions
23. IBM Software Group
23
http://tuscany.apache.org
Building Contributions with Maven
• Using Maven project layout, place composites, component
implementations, interfaces and other required artifacts together
• Use mvn eclipse:eclipse to build an Eclipse project
24. IBM Software Group
24
http://tuscany.apache.org
Developing in Eclipse
• To import an SCA contribution built using Maven into Eclipse
– Set M2_REPO
Import your contribution project previously built using mvn eclipse:eclipse
• If you're building an SCA contribution from scratch in Eclipse, add a
dependency on the Tuscany runtime Jars
An easy way to do this is to create an Eclipse user defined library that includes
all the Tuscany Jars and dependencies, and add this library to your new
contribution
26. IBM Software Group
26
http://tuscany.apache.org
Running in a Single JVM
• To test payment-java we need three more things
The creditcard-payment-jaxb contribution. This contains the
composite that defines the CreditCardPayment service that the
Payment component references
The launcher-payment-java project that loads these two
contributions into Tuscany and then calls the Payment
component
The util-launcher-common project which contains a few utilities
that we wrote for the TuscanySCATours application
27. IBM Software Group
27
http://tuscany.apache.org
Embedding Tuscany
public class PaymentLauncher {
public static void main(String[] args) throws Exception {
SCANode node = SCANodeFactory.newInstance().createSCANode(null,
locate("payment-java"),
locate("creditcard-payment-jaxb"));
node.start();
SCAClient client = (SCAClient)node;
Payment payment = client.getService(Payment.class, "Payment");
System.out.println("Payment Java test");
System.out.println("nSuccessful Payment - Status = nn" + payment.makePaymentMember("c-0", 100.00f));
System.out.println("nnFailed Payment - Status = nn" + payment.makePaymentMember("c-1", 100.00f));
node.stop();
}
The locate() operation is a utility we created for this sample which simply locates
a contribution in the sample directory structure and returns its location.
28. IBM Software Group
28
http://tuscany.apache.org
Spring Bean Component Implementation
Property
Name: transactionFee
Type: float
</bean>
</bean>
<property name="transactionFee"
value="0.5f"/>
Payment
component
type
<property name="creditCardPayment"
ref="creditCardPaymentReference"/>
<bean id="Payment"
class="com.tuscanyscatours.payment.impl.PaymentImpl">
Service
Name: Payment
Interface: payment.Payment
Reference
Name: creditCardPaymentReference
Interface:
payment.creditcard.CreditCardPayment
29. IBM Software Group
29
http://tuscany.apache.org
Payment Spring Component
Payment
CreditCard
Payment
Spring
creditcard
Java
payment
Payment
CreditCard
Payment
creditCard
Payment
transactionFee
(8082)
binding.ws
binding.ws
binding.ws
44. IBM Software Group
44
http://tuscany.apache.org
SCA - Resources
Good introduction to SCA
http://www.davidchappell.com/articles/Introducing_SCA.pdf
OASIS Open CSA – http://www.oasis-opencsa.org
V1.1 level specs
http://www.oasis-opencsa.org/sca
Open CSA Technical Committees
http://www.oasis-opencsa.org/committees
OSOA
http://osoa.org/display/Main/Home
More information on that site
http://osoa.org/display/Main/SCA+Resources