עבור לתוכן

כמה שאלות על WebService והשימוש שלו

Featured Replies

פורסם

שלום לכולם לאחרונה שמעתי על המושג הזה WebService

ועניין אותי אם אני יכול לנצל אותו לגבי מה שאני רוצה לבצע:

אני רוצה לשלוח הודעה לתוכנה שבניתי בכול פעם שמשתמש נכנס לאתר שלי

ובהתאם לכך להדליק נורת לד שמחוברת ליציאת המדפסת שלי.

בעיקרון את התיקשורת עם היציאת מדפסת והדלקת הלד כבר בניתי ואכן

אני מצליח לשלוט על הלד בעזרת המחשב (השתמשתי בסיפרייה בשם inpoutx64 אשר נותנת לי ליצור תקשורת עם היציאת מדפסת בWindows 7) הבעיה היא עכשיו היא איך אני שולח מדף אינטרנט מידע לתוכנה שבניתי בכול פעם שניכנס משתמש לאתר.

חיפשתי מידע באינטרנט ומצאתי דבר שניקרא WebService לאחר חקירה

קטנה מצאתי גם את הכלי של מיקרוסופט שנקרא: Microsoft Visual Web Developer

לבסוף כתבתי את התוכנה הבאה:

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Runtime.InteropServices

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="[url]http://tempuri.org/"[/url])> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Function HelloWorld() As String
MsgBox("Hello World!")
Return "Hello World"
End Function

<WebMethod()> _
Public Sub TurnLED(ByVal LEDNumber As Integer)
PortAccess.Output(&H378, 2 ^ LEDNumber)
End Sub

Public Class PortAccess
<DllImport("inpout32.dll", EntryPoint:="Out32")> _
Public Shared Sub Output(ByVal address As Integer, ByVal value As Integer)
End Sub
End Class
End Class

הרצתי אותה, נכנסתי לאתר ונכנסתי למתודה, הקשתי את מספר הלד שאני רוצה להדליק והכול עובד כמו שצריך!

השאלה שלי היא האם בכלל הכיוון שלי נכון בקשר למה שאני רוצה לבצע? האם השימוש ב-Webservice הוא הנכון? והאם יש שיטה יותר טובה / יותר מקובלת לבצע זאת? ולאחר שבניתי את התוכנה הזו למשל, איך אני יכול לשלב אותה עם דף PHP פשוט שכתבתי?

אני יודע שבעיקרון אני יכול פשוט מאוד להפנות את המשתמש לדף שמדליק את הלד, אבל לפני זה אני צריך

לעלות את התוכנה לשרת וזאתי הבעייה בדיוק ממה שהבנתי Visual WebDeveloper עושה לי הכול דיי

לבד (ואפילו מריץ את השרת על המחשב שלי) אבל אם אני רוצה להעלות את מה שהכנתי לאתר

ורק לגרום לתוכנה שכתבתי לרוץ במחשב שלי (והשרת יריץ רק את הדף asmx, אך איך הוא יודע ליצור את ההתקשורת עם התוכנה במחשב שלי?)

פורסם

אתה מעלה המון נקודות ובעיות, אך לא באופן מסודר מספיק. אני מקווה לענות לך על הכל:

1. יש לך אפליקציה (לא משנה אם זה dll קובץ הרצה או אפילו webservice - לא משנה!!!). אתה רוצה להעיל פונקציות באפליקציה בעזרת webservice אחר. ישנן 2 פתרונות לבעיה:

1א. הפתרון שאתה ביצעת - בdll שמקושר לwebservice אתה טוען פונקציות ואתה מבצע קריאה למתודת web שמייישמת את הקריאה אליה :HelloWorld()

1ב. לא מה שעשית - משתמש באובייקט com שינהל לך את הכל.

הכיוון שלך נכון. אבל או שתצטרך לבצע קריאה - ז"א שהאפליקציה והwebservice server הם על אותו מחשב, או שתנסה את שיטה 1ב ואז הניהול הוא על בסיס מערכת ההפעלה.

לשילוב webservice בphp חפש בספריה של php.

http://php.net/manual/en/refs.webservice.php

אין הבדל בשימוש בPHP או ASP - למעט ההדל בשפות.

ורק לגרום לתוכנה שכתבת לרוץ במחשב אחר - האם שני המחשבים על אותה רשת?

פורסם
  • מחבר

שלום ותודה רבה על התשובה...!

בעיקרון השרת והמחשב שאמור להריץ את התוכנה הם אינם באותה הרשת,

השרת מרוחק, והמחשב שלי הוא זה שיריץ את התוכנה שאמורה להדליק את הלדים.

אם כן, אני אצטרך להישתמש בשיטה 1ב, אך מה ז"א להישתמש באובייקט com?

חשבתי בהתחלה לכתוב פשוט את הדף ב-ASP .Net ולהישתמש ב-TcpClient כדי להיתחבר למחשב שלי (והמחשב שלי יריץ את הTcpListener)

בכדי להיתחבר, אבל אני משער שזו לא דרך נכונה.

פורסם

תראה - הכל אפשרי. זו שאלה של צורך

1. למה שהמחשב שמדפיס לא יהיה גם המחשב שמארח IIS?

2. אם תממש תקשורת ב tcp - איך תוכל להבטיח שאתה יודע מה קורה על המחשב המדפיס?

פורסם
  • מחבר

1. אתה מתכוון שהמחשב שמריץ את האתר ומתחברים אליו יהיה גם זה שהתוכנה תרוץ עליו?

בעיקרון, אני לא רוצה להריץ את השרת על המחשב שלי, בגלל שהוא לא כול הזמן יהיה דלוק, ההתחברות

אליו תיהיה הרבה יותר איטית מהשרת שכבר יש לי, אני רוצה שהאתר תמיד יהיה זמין.

2. כן שיערתי שזה רעיון פחות טוב, רק חשבתי כי אני יותר מתנסה עם המחלקות הללו.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים