Download presentation
Presentation is loading. Please wait.
1
Michael S. Chan xLM Solutions, LLC
Extending ENOVIA SmarTeam with SOA Solutions: Develop Your Own SOA for SmarTeam Michael S. Chan xLM Solutions, LLC
2
Your own SOA solutions to extend SmarTeam
+ other business or engineering services and applications
3
Outline What? Why? How? SOA, Service, Contract, Endpoint?
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
4
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?
5
Services are provided by a Provider (Server)
What is a Service? Service 1 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) Service 2 Client Service 3
6
The Four Tenets of a Service
Service A (talk to ERP) Boundaries are explicit Services are autonomous Services share the Schema and Contract, not classes Service compatibility is based on Policy A service publishes its contracts so that clients will know how to connect to it: how to consume, or call or invoke, the service, as well as what kind of data are expected as parameters to the service. The contract also tells you what is returned by the service. Service B (talk to PLM) Client X Service C (talk to Shipping)
7
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 All three types of contracts do not need to be all present in a Service
8
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?
9
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) No need to develop a completely new SOA each time, just add to the existing SOA by adding Services
10
How? Microsoft Windows Communication Foundation (WCF)
How to Implement an SOA? Microsoft Windows Communication Foundation (WCF) A service-oriented programming model and technology for developing distributed applications How? In the Windows platforms, Microsoft has developed the Windows Communication Foundation (WCF) for developing SOA and distributed applications
11
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 CLR-Common Language Runtime
12
Hosting WCF Services Self-hosting in any managed .NET application
Hosting in a standalone Windows service 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
13
A Basic WCF Service Example
14
WCF Support in Visual Studio 2005
15
WCF Support in Visual Studio 2005
1) The template generated a project, with a default file class1.cs, and inserted the needed references to support WCF. 2) The Key references for proper WCF implementation have been added for you by the template. If you were somehow developing a service w/o using the template, or converting a current application into a WCF service, be sure to include these references. 3) Let’s change the file names to something meaningful for our purposes 3) Let’s also take a closer look at the Visual Studio 2005 template-generated file VS2005
16
WCF in VS2005 Service Contract Definition (Interface Definition)
Service Class Definition (Business Process Logic) Data Contract Definition (Custom Data Class Definition)
17
WCF in VS2005 Service Contract Data Contract
The Service and Data Contracts are the elements that will be published to the “world” These are the information needed to interface with, or consume, this service Data Contract
18
WCF in VS2005 Service Contract Definition (Interface Definition)
Service Class Definition (Business Process Logic) Data Contract Definition (Custom Data Class Definition)
19
Setup Hosting on IIS Once again, we use IIS on a Win2003 box b/c of SmarTeam’s requirements. Virtual Path: Physical path: C:\Inetpub\wwwroot\stServices
20
Tips: Setup Service Project Output Directory
21
Add Service Configuration File: STService.svc
22
STService.svc
23
Add web.config and Support for MetaData Exchange
Services Behaviors
24
Checking… So Far So Good
25
Create a Console Client (Consumer)
26
Adding a Console Client…
Add “app.config” and “BasicService.cs” to client project Add System.ServiceModel and System.Runtime.Serialization Change “Program.cs” to “ConsoleClient.cs” Add a reference to System.ServiceModel Change the program file name from Program.cs to ConsoleClient.cs Add two existing items generated by svcutil.exe: app.config and BasicService.cs Run svcutil.exe in the client project directory to create “app.config” and “BasicService.cs”
27
Building the Console Client
28
A SmarTeam SOA Service Example
29
Development Approach Modify the MySTService.BasicService service
Re-run svcutil.exe Modify or re-develop the client Debug the Service and Client
30
Obtain two names from each super class:
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
31
Using the SmarTeam Object Model and API
32
Add a New Data Contract (Custom Data Class)
33
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 Modify the WCF Service: Add SmarTeam Support > Perform Business Logic < Log off SmarTeam Close database connection Close SmarTeam session Terminate SmarTeam engine
34
Modify the Service Code
Modify the Service: add a new method to return a list of the super classes Must clean up before leaving: risk using up all the licenses
35
Console Client
36
Unblock Windows Firewall for VS2005 Remote Debugger
Service and Client Debugging Unblock Windows Firewall for VS2005 Remote Debugger
37
Debugging Your SmarTeam Service (With Visual Studio Remote Debugger)
On the remote system (where the Service is hosted)…
38
Advanced Debugging Besides sendTimeout, other parameters may also be of interest. E.g., when transferring files, maxReceivedMessageSize may need to be adjusted
39
An Example Application…
Debugging Example…
40
Other WCF Tools SvcConfigEditor.exe SvcTraceViewer.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
41
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?
42
Thank You! Questions? Try It Yourself and Have Fun!
Script example shown is available at: Michael S. Chan xLM Solutions, LLC.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.