Extending ENOVIA SmarTeam with SOA Solutions: Develop Your Own SOA for SmarTeam

Post on 10-Jan-2016

93 views 0 download

description

Extending ENOVIA SmarTeam with SOA Solutions: Develop Your Own SOA for SmarTeam. Michael S. Chan xLM Solutions, LLC. Your own SOA solutions to extend SmarTeam. + other business or engineering services and applications. Outline. What? SOA, Service, Contract, Endpoint? Why? - PowerPoint PPT Presentation

Transcript of Extending ENOVIA SmarTeam with SOA Solutions: Develop Your Own SOA for SmarTeam

Extending ENOVIA SmarTeam with SOA Solutions: Develop Your Own SOA for SmarTeam

Michael S. Chan

xLM Solutions, LLC

+other business or engineering

services and applications

Your own SOA solutions to extend SmarTeam

Outline• What?

• SOA, Service, Contract, Endpoint?• Why?

• Benefits of an SOA• How?

• Windows Communication Foundation (WCF)• A Basic WCF Service Example

• A Simple Service• An Even Simpler Client

• A SmarTeam SOA Service Example• Adding Support for SmarTeam• Debugging

What is a Service-Oriented Architecture (SOA)?

An architectural concept, style, or paradigm

Loosely coupled and distributed services provide the desired functionalities

Not a technology-driven approach

A business-driven approach

What?

• A self-contained, stateless entity that performs a certain business process

• Services are provided by a Provider (Server)

• Services are used by a Consumer (Client)

What is a Service? Service 1

Service 2

Service 3Client

Service A

Service B

Service CClient X

The Four Tenets of a Service

1. Boundaries are explicit2. Services are autonomous3. Services share the Schema and Contract,

not classes4. Service compatibility is based on Policy

(talk to ERP)

(talk to PLM)

(talk to Shipping)

Contracts• Establish explicit boundaries for the service• Three types of contracts:

• Service Contract: exposes Service behavior (methods)

• Data Contract: exposes persistent data• Message Contract: exposes custom

message structure

Why adopt an SOA?• A foundation for seamless Enterprise Information

Integration (EII)• Open standards and messaging

• A high degree of loose coupling and interoperability across platforms and technologies

• Flexibility in software and hardware selections• Independent and boundary-explicit services

• Allows for modulo development, deployment and maintenance

• Increase the ROI by developing new services and applications based on existing software and business processes

Why?

Benefits of Extending SmarTeam with an SOA• Developed SmarTeam Services are expendable and

reusable for future projects• Remote clients can run on systems with no SmarTeam

installations• Clients of various levels of complexity may connect

and consume the SmarTeam services• Different clients may consume different subsets of the

SmarTeam services• A client may be built as

• A standalone thin application• A plug-in for another software package (e.g., Outlook)• Part of a web page or site (e.g., a SharePoint web

part)

How to Implement an SOA?Microsoft Windows Communication

Foundation (WCF)

A service-oriented programming model and technology for developing distributed applications

How?

System Requirements• Microsoft Windows Communication Foundation

(WCF) in .NET Framework 3.0• Supports:

• Windows XP SP2 (add-on)• Windows Server 2003 SP1 (add-on)• Windows Server 2003 R2 (add-on)• Windows Vista• Windows Server 2008

• Microsoft Visual Studio 2005 (SPx) or 2008• May use C#, VB.NET, or other

CLR-Compatible languages

Hosting WCF Services

1. Self-hosting in any managed .NET application2. Hosting in a standalone Windows service3. Hosting in IIS ( Web Services)

• WinXP: IIS 5.1• Win2003/R2: IIS 6.0• Vista/Win2008: IIS 7.0 (Windows Activation Service)

HTTP TCP/IP Named Pipes MSMQ

*SmarTeam requirement

*

A Basic WCF Service Example

WCF Support in Visual Studio 2005

WCF Support in Visual Studio 2005

VS2005

WCF in VS2005

Service Contract Definition(Interface Definition)

Service Class Definition(Business Process Logic)

Data Contract Definition(Custom Data Class

Definition)

WCF in VS2005

ServiceContract

Data Contract

WCF in VS2005

Setup Hosting on IIS

Tips: Setup Service Project Output Directory

Add Service Configuration File: STService.svc

STService.svc

Add web.config and Support for MetaData Exchange

Services

Behaviors

Checking…

So Far So Good

Create a Console Client (Consumer)

Adding a Console Client…

Run svcutil.exe in the client project directory to create “app.config” and “BasicService.cs”

• Add “app.config” and “BasicService.cs” to client project

• Add System.ServiceModel and System.Runtime.Serialization

• Change “Program.cs” to “ConsoleClient.cs”

Building the Console Client

A SmarTeam SOA Service Example

Development Approach

Modify the MySTService.BasicService service

Re-run svcutil.exe

Modify or re-develop the client

Debug the Service and Client

Tasks for this Example

• Add a method to return a list of Super Classes in the current SmarTeam database

• Obtain two names from each super class:• Name – internal• External name – friendly

• Develop a custom data class [DataMember] for the output

Using the SmarTeam Object Model and API

Add a New Data Contract (Custom Data Class)

Modify the WCF Service: Add SmarTeam Support

• Instantiate a SmarTeam engine (FreeThreadedEngine)• Create new SmarTeam session• Initialize session with the engine• Connect session to a database• Log onto session

• Log off SmarTeam• Close database connection• Close SmarTeam session• Terminate SmarTeam engine

Perform Business Logic> <

Modify the Service Code

Console Client

Service and Client Debugging

Unblock Windows Firewall for VS2005 Remote Debugger

Debugging Your SmarTeam Service(With Visual Studio Remote Debugger)

On the remote system (where the Service is hosted)…

Advanced Debugging

Debugging Example…An Example Application…

Other WCF Tools

• SvcConfigEditor.exe• Create and modify configuration settings for WCF

services• Manage settings for WCF bindings, behaviors,

services, and diagnostics

• SvcTraceViewer.exe• Helps analyze diagnostic traces generated by WCF

listeners

SmarTeam SOA Extension Considerations• A Service should be stateless

• Create a new SmarTeam session (login,logoff) on each connection

• Client provides authentication information• How to acquire the user name and password?

Try It Yourself and

Have Fun!Thank You!

Questions?

Michael S. ChanxLM Solutions, LLC.517-410-6625mchan@xlmsolutions.com